<?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>16401</bug_id>
          
          <creation_ts>2007-12-11 09:25:52 -0800</creation_ts>
          <short_desc>[GTK] GObject/C DOM binding</short_desc>
          <delta_ts>2010-01-13 06:09:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>33590</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>21392</dependson>
    
    <dependson>22528</dependson>
    
    <dependson>27410</dependson>
    
    <dependson>27424</dependson>
    
    <dependson>27425</dependson>
    
    <dependson>27426</dependson>
    
    <dependson>27427</dependson>
    
    <dependson>27428</dependson>
    
    <dependson>27429</dependson>
    
    <dependson>27430</dependson>
    
    <dependson>27431</dependson>
    
    <dependson>27432</dependson>
    
    <dependson>27433</dependson>
    
    <dependson>27434</dependson>
    
    <dependson>27435</dependson>
    
    <dependson>27436</dependson>
    
    <dependson>28042</dependson>
    
    <dependson>28096</dependson>
    
    <dependson>28097</dependson>
    
    <dependson>28098</dependson>
    
    <dependson>28099</dependson>
    
    <dependson>28101</dependson>
    
    <dependson>28102</dependson>
    
    <dependson>28103</dependson>
    
    <dependson>28104</dependson>
    
    <dependson>28105</dependson>
    
    <dependson>28106</dependson>
    
    <dependson>28107</dependson>
    
    <dependson>28109</dependson>
    
    <dependson>28110</dependson>
    
    <dependson>28111</dependson>
    
    <dependson>28228</dependson>
          <blocked>16686</blocked>
    
    <blocked>20586</blocked>
    
    <blocked>20896</blocked>
    
    <blocked>20897</blocked>
    
    <blocked>20898</blocked>
    
    <blocked>26302</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alp Toker">alp</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>a9016009</cc>
    
    <cc>adam</cc>
    
    <cc>andrew</cc>
    
    <cc>christian</cc>
    
    <cc>cosimoc</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>donsoto</cc>
    
    <cc>gustavo</cc>
    
    <cc>i.am.dumb</cc>
    
    <cc>jason.ribeiro</cc>
    
    <cc>jmalonzo</cc>
    
    <cc>kevin</cc>
    
    <cc>lkcl</cc>
    
    <cc>mbarnes</cc>
    
    <cc>sam</cc>
    
    <cc>sascha.dewald</cc>
    
    <cc>sbillaudelle</cc>
    
    <cc>sean</cc>
    
    <cc>tvignaud</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>xfdbse</cc>
    
    <cc>zuh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>63938</commentid>
    <comment_count>0</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-11 09:25:52 -0800</bug_when>
    <thetext>The GTK+ port needs a public API binding of the DOM. The COM binding generator is a reasonable starting point. The details of how to map the DOM to GObject have yet to be discussed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85777</commentid>
    <comment_count>1</comment_count>
      <attachid>22247</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-07-11 06:27:49 -0700</bug_when>
    <thetext>Created attachment 22247
Beginnings of the generator script

Just a start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88918</commentid>
    <comment_count>2</comment_count>
      <attachid>22894</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-20 07:19:51 -0700</bug_when>
    <thetext>Created attachment 22894
adds javascript-execution and eval to DOM model

        about = &quot;&lt;html&gt;&lt;body id=&apos;body&apos;&gt;&lt;/body&gt;&lt;/html&gt;&quot;
        self._browser.load_string(about, &quot;text/html&quot;, &quot;iso-8859-15&quot;, &quot;about:&quot;)

        self.show_all()

    def js_test(self):

        main_frame = self._browser.get_main_frame()
        print dir(main_frame)
        ctx = main_frame.gjs_get_global_context()
        print dir(ctx)
        doc = ctx.get_by_name(&quot;document&quot;)
        print doc, dir(doc)
        doc.fred = 5
        print doc.fred
        win = doc.get_by_name(&quot;window&quot;)
        print win, dir(win)
        print doc.get_by_name(&quot;fred&quot;)
        print doc.get_by_name(&quot;joe&quot;)
        #doc.eval(&quot;para = document.createTextNode(&apos;Some content.&apos;);&quot;)
        ctx.eval(&quot;console.error(&apos;hello&apos;);&quot;)
        doc.execute(&quot;document.getElementById(&apos;body&apos;).appendChild(document.createTextNode(&apos;Some content.&apos;));&quot;)
        #doc.execute(&quot;document.appendChild(document.createTextNode(&apos;Some content.&apos;));&quot;)
        #doc.execute(&quot;para2 = document.createTextNode(&apos;Some content.&apos;);&quot;)
        #para = doc.get_by_name(&quot;para&quot;)
        #print &quot;para&quot;, para, para.get_string()
        #doc.execute(&quot;document.appendChild(para);&quot;)

    def _set_title(self, title):
        self.props.title = title

    def _loading_start_cb(self, view, frame):
        main_frame = self._browser.get_main_frame()
        if frame is main_frame:
            self._set_title(_(&quot;Loading %s - %s&quot;) % (frame.get_title(),frame.get_uri()))
        self._toolbar.set_loading(True)

    def _loading_stop_cb(self, view, frame):
        # FIXME: another frame may still be loading?
        self._toolbar.set_loading(False)
        self.js_test()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88962</commentid>
    <comment_count>3</comment_count>
      <attachid>22894</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-08-20 16:05:50 -0700</bug_when>
    <thetext>Comment on attachment 22894
adds javascript-execution and eval to DOM model

This patch does not seem to be for WebKit.  Why is it here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88966</commentid>
    <comment_count>4</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-20 16:23:03 -0700</bug_when>
    <thetext>because i am a donut? :)  working a bit quick - i worked it out 2 mins _after_ posting :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89009</commentid>
    <comment_count>5</comment_count>
      <attachid>22920</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-21 10:19:22 -0700</bug_when>
    <thetext>Created attachment 22920
adds beginnings of WebKitEvent class, for &quot;browser event&quot; notification

event notification - of browser events - as a signal on a WebKitFrame.
not sure of direction to take - haven&apos;t had any feedback or advice -
so am just proceeding anyway.
it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89021</commentid>
    <comment_count>6</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-21 13:16:46 -0700</bug_when>
    <thetext>if anyone&apos;s curious, the attachment for the generator script goes here:
WebCore/bindings/scripts/CodeGeneratorGObject.pm
and you add this:

DerivedSources/gdom%.h: DerivedSources/gdom%.cpp;

DerivedSources/gdom%.cpp: %.idl $(SCRIPTS_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorGObject.pm
    $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/xml --include $(WebCore)/svg --outputDir &quot;$(GENSOURCES)&quot; --defines &quot;$(FEATURE_DEFINES_JAVASCRIPT)&quot; --generator GObject $&lt;

to WebCore/GNUmakefile.am
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89173</commentid>
    <comment_count>7</comment_count>
      <attachid>22953</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-23 14:11:17 -0700</bug_when>
    <thetext>Created attachment 22953
progress on generator script

* SVG is missed out
* TargetEventNode needs review
* gdom*private.cpp and gdom*private.h need to be added to GNUmakefile.am
  technique deployed needs review
* rgb colour class needs creation or review: am returning uint32 for now.
etc.
etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89174</commentid>
    <comment_count>8</comment_count>
      <attachid>22954</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-23 15:41:38 -0700</bug_when>
    <thetext>Created attachment 22954
progress on generator script

* now has private gobject functions in makefile
* actually links the library (gosh) so no missing compile dependencies
* TODO: derive parent gobject and use it - presently everything&apos;s a GOBJECT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89458</commentid>
    <comment_count>9</comment_count>
      <attachid>23016</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-27 01:02:08 -0700</bug_when>
    <thetext>Created attachment 23016
working access to DOM model from pywebkitgtk!

it works! i&apos;m amazed :)
TODO: lots of the custom functions
TODO: add properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89519</commentid>
    <comment_count>10</comment_count>
      <attachid>23038</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-27 12:57:56 -0700</bug_when>
    <thetext>Created attachment 23038
property getting added, with stubs for setting.

added in property &quot;getting&quot; as well, now.

&quot;custom&quot; properties missed out and a number of other types as well, but it&apos;s a good start.

will test property &quot;setting&quot; later.

at present you have to do this, to make the whole thing useable and compile (i don&apos;t know where to put the files in the Makefile).  just after the gdom bindings are auto-generated, ctrl-z the build and do this:

 cp -aux DerivedSources/gdom*.h WebKit/gtk/webkit/; cp WebCore/bindings/gdom/*.h /usr/local/include/webkit-1.0/webkit/; cp -aux DerivedSources/gdom*.h /usr/local/include/webkit-1.0/webkit/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89737</commentid>
    <comment_count>11</comment_count>
      <attachid>23068</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-29 07:28:14 -0700</bug_when>
    <thetext>Created attachment 23068
property getting added, property set strings added, hash-map added

this works, and is useable!
still have the slightly horrible hack for compilation
required, though - to copy the files from DerivedSources/
into /usr/local/includes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89762</commentid>
    <comment_count>12</comment_count>
      <attachid>23068</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-08-29 15:50:10 -0700</bug_when>
    <thetext>Comment on attachment 23068
property getting added, property set strings added, hash-map added

Could you remove all the generated files from the patch itself?  While obviously we&apos;d like to be able to look at what is being generated, they generated content makes it hard to identify the non-autogenerated content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89773</commentid>
    <comment_count>13</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-30 00:42:00 -0700</bug_when>
    <thetext>there are no auto-generated files included in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89774</commentid>
    <comment_count>14</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-30 00:50:37 -0700</bug_when>
    <thetext>Index: WebCore/bindings/gdom/GDOMHTMLElementWrapperFactory.cpp

*sigh* yes - no it&apos;s not auto-generated, it&apos;s hand-created, _copied_
from the auto-generated JSHTMLElementWrapperFactory.cpp.

next version, if you don&apos;t make the changes yourself, might say
something like, &quot;this file was created cut-and-paste global-search-replace
from JSHTMLElementWrapperFactory.cpp.  at some point, it might be
useful to auto-generate it, although now that the work is done it
really doesn&apos;t actually matter too much.&quot;

even better would be for webkit to have some templates such that the
JSHTMLElementWrapperFactory, GDOMHTMLElementWrapperFactory, OBJCHTMLElementWrapperFactory, FutureBindingHTMLElementWrapperFactory, PythonHTMLElementWrapperFactory can all benefit from the same very necessary functionality.

all of the bindings need a mapping system.


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89781</commentid>
    <comment_count>15</comment_count>
      <attachid>23081</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-30 12:47:53 -0700</bug_when>
    <thetext>Created attachment 23081
added LANGUAGE_GOBJECT

i was accidentally using LANGUAGE_JAVASCRIPT which was fine
until i noticed that HTMLInputElement didn&apos;t have a setSelectionRange
function being auto-generated for the glib bindings.

so... it&apos;s been necessary to add LANGUAGE_GOBJECT.
kind-of inevitable, really.

several functions added in to support pyjamas-desktop, which is,
perhaps as to be expected, turning out to be quite a comprehensive
test tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89783</commentid>
    <comment_count>16</comment_count>
      <attachid>23082</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-30 14:57:59 -0700</bug_when>
    <thetext>Created attachment 23082
bug-fixing LANGUAGE_GOBJECT

a number of functions got deleted by no longer being
#ifdef LANGUAGE_JAVASCRIPT.  added them back in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89803</commentid>
    <comment_count>17</comment_count>
      <attachid>23089</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-31 10:19:31 -0700</bug_when>
    <thetext>Created attachment 23089
add_event_listener for element events; added defaultView

* thanks to darin for the pointer, added add_event_listener 
  (TODO: add remove_event_listener)
* added property &quot;defaultView&quot; to GdomDOMDocument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89828</commentid>
    <comment_count>18</comment_count>
      <attachid>23093</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-31 17:05:32 -0700</bug_when>
    <thetext>Created attachment 23093
big tidyup, no manual compile intervention required

more copyright notices added, big cleanup to get auto-install
of header files etc.

independent testing greatly appreciated, to make sure i haven&apos;t
missed anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89831</commentid>
    <comment_count>19</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-08-31 17:19:56 -0700</bug_when>
    <thetext>review comments - kept here so as not to lose them, TBD tomorrow:

lkcl: and you appear to have slipped some tabs in to the patch along the way ;-)

WebKit/gtk/webkit/EventListenerWindow.h -- is that an API header?
API headers cannot do that

privgdomEventTargetNode.h would make more sense with the suffix of Private, like is done with other private headers

why the lower-case prefix on the file names?  that doesn&apos;t fit our style guidelines

you also appear to use GDOM and Gdom... consistencey would be good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89856</commentid>
    <comment_count>20</comment_count>
      <attachid>23096</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-01 03:41:12 -0700</bug_when>
    <thetext>Created attachment 23096
respect file conventions, remove tabs

addressed mark&apos;s concerns and queries:
removed rather a lot of tabs
changed file names from lower case
etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89873</commentid>
    <comment_count>21</comment_count>
      <attachid>23103</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-01 13:13:10 -0700</bug_when>
    <thetext>Created attachment 23103
resolve conflict in latest svn with webkitwebframe.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89874</commentid>
    <comment_count>22</comment_count>
      <attachid>23104</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-01 13:19:40 -0700</bug_when>
    <thetext>Created attachment 23104
add webkitevent.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89905</commentid>
    <comment_count>23</comment_count>
      <attachid>23115</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-02 08:15:14 -0700</bug_when>
    <thetext>Created attachment 23115
added start of XMLHttpRequest handling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90062</commentid>
    <comment_count>24</comment_count>
      <attachid>23146</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-03 14:20:54 -0700</bug_when>
    <thetext>Created attachment 23146
tidyup and adding correct access to DOMWindow

gdom_dom_window_get_private() was accidentally returning NULL
because it was on the TODO list to support GdomDOMWindow. oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90178</commentid>
    <comment_count>25</comment_count>
      <attachid>23173</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-04 12:04:48 -0700</bug_when>
    <thetext>Created attachment 23173
use &quot;detail&quot; on signals

on EventListenerXMLHttpRequest, EventListenerNode and EventListenerWindow,
use browser-event::xxxxx &quot;detail&quot; for close, load, resize etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90921</commentid>
    <comment_count>26</comment_count>
      <attachid>23366</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-12 07:16:13 -0700</bug_when>
    <thetext>Created attachment 23366
updated ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90924</commentid>
    <comment_count>27</comment_count>
      <attachid>23367</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-12 07:28:53 -0700</bug_when>
    <thetext>Created attachment 23367
lkcl-review, coding standards</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91022</commentid>
    <comment_count>28</comment_count>
      <attachid>23367</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-09-12 21:42:03 -0700</bug_when>
    <thetext>Comment on attachment 23367
lkcl-review, coding standards

This is looking good and needs a little more work before we can start to think about getting it landed.

These are some of my comments from a first pass review, starting with the trivial / easiest issues to fix.

Build fix:
The &apos;KJS&apos; namespace was renamed to &apos;JSC&apos; recently. Simple search-and-replace in CodeGeneratorGObject.pm gets it building again.

Coding style:
void: No need for the &apos;void&apos; in function prototypes like webkit_event_new(void) except in publicly installed C headers. It doesn&apos;t matter if the auto-generated C++ sources have the &apos;void&apos; (since this lets you share the same prototype string with the .h public headers and generated .cpp)  but it shouldn&apos;t be used in hand-written code.

includes: #include &lt;glib-object.h&gt; not #include &quot;glib-object.h&quot;

indentation: There are a few places (eg. webkitwebframe.cpp) where 4-space indentation isn&apos;t adhered to. It&apos;s good to get into the habit of getting this right whenever submitting code to the bug tracker so reviewers can get directly to the technical stuff.

Trailing whitespace: There are needless spaces at the ends of lines in both hand-written and auto-generated code that shouldn&apos;t be there.

Core API changes:
webkitevent.h/WebKitEvent: We try to avoid generic type names in the core WebKit/GTK+ public API since &apos;WebKit.Event&apos; will be ambiguous when &apos;Gdk.Event&apos; is imported in many OO language bindings. So this could become either WebKitWebEvent, could go into the Gdom namespace or even somehow be merged with GdomEvent (I haven&apos;t investigated enough to see if this last suggestion would make sense though).

Special-cases for lower_case_conversion:
decamelize() is great, but sometimes we&apos;ll want to special-case certain character sequences to avoid awkward function names. Right now we get gdom_x_path_exception_to_string() but what we really want is gdom_xpath_exception_to_string(). Some cases I noticed: XPath, WebKit, gdom_htmlbr_element_get_type, gdom_htmld_list_element_get_type

_init functions vs. constructors:
There are some generated functions like gdom_wheel_event_init_wheel_event(). These should probably be mapped to GObject constructors, ie. gdom_wheel_event_new().

G_PARAM_*:
webkitprivate.h defines WEBKIT_PARAM_READABLE and WEBKIT_PARAM_READWRITE replacements for G_PARAM_READABLE and G_PARAM_READWRITE which tell GObject that it doesn&apos;t need to copy the input strings to g_param_spec(). It&apos;s probably worth reusing this (or copying equivalents into gdomprivate.h or similar).

Build system:

The large lists in these files should be auto-generated by the build system:
gdom.h
gdomdefines.h
GDOMHTMLElementWrapperFactory.cpp

(1) The GObject DOM build should be split out into a new automake intermediate library separate from libwebkit_1_0_la and libWebCore_la and (2) the gdom public headers should be installed under a new prefix in the destination directory eg.:

libgdom_ladir = $(prefix)/include/webkit-1.0/gdom
libgdom_la_HEADERS = \
	$(gdomgtk_h_api) \
	WebKit/gtk/webkit/gdom.h 

# Convenience libraries
noinst_LTLIBRARIES = \
	libJavaScriptCore.la \
	libWebCore.la \
	libgdom.la

The rationale for this is twofold:

(1) It&apos;ll be helpful for both WebKit hackers and application developers to immediately see the separation between the hand-written core WebKit/GTK+ API
(2) Other WebKit ports using GObject but not GTK+ or the WebKit/GTK+ API layer will still be able to share the same DOM binding to some extent.

Private* C++ sources and headers:
As far as I can tell, the PrivateGdom*.cpp generated files are redundant. The code generated into PrivateGdomElement.cpp could just as well go into GdomElement.cpp for example, right?

The PrivateGdom*.h files also look fairly empty right now, but I imagine that private headers for each DOM class could still end up being useful, depending on how you go about merging the Private*.cpp implementations.

Getting rid of the Private*.cpp sources will help reduce compile time and reduce the size of the lists of generated files in the build system. Do let me know if I&apos;ve got something wrong here -- there may be a good rationale for these privates that I&apos;ve missed.

Filenames:

This one is open to discussion, but I think the best naming convention for the generated header files (and probably also the generated .cpp implementations) is &apos;gdom-html-menu-element.h&apos; instead of &apos;GdomHTMLMenuElement.h&apos;. You can use the same algorithm used in the code generator to generate these filenames. The hyphens deviate from our existing headers a little but they&apos;re important for clarity when it comes to the kind of type names you get in the DOM. I don&apos;t think you need to change this yet since it&apos;ll be even more of a pain to maintain the build system while working on the patch, but we&apos;ll need to remember to re-visit this point later.

Exception codes:
The ExceptionCodes are currently discarded. At some point we&apos;ll want to store these error codes (like the JS bindings do with setDOMException()) and allow for retreival following the call. Again, this isn&apos;t a top priority and can be dealt with when the other issues are fixed.

String management:
First off, you need to use WebCore::String::fromUTF8() rather than WebCore::String() any place a const gchar* is passed in since GObject strings deal in UTF-8.

There is a major problem with const gchar* as a return value. As far as I can tell, GStringConvert() returns g_strdup()&apos;ed strings which need to be manually g_free()&apos;ed by the caller. First of all, this code shouldn&apos;t be duplicated in every generated file, but moreover, we try to return strings that the caller doesn&apos;t have to free manually and gdom breaks that convention.

Potential ways of solving this:
(*) Keep around a single CString and replace it each time a function returns a string. Not good because after two subsequent DOM function calls returning strings, the first will become invalid.
(*) Simple GC. Keep around the CStrings or references to the g_strdup() result and free them in an idle handler.
(*) AtomicStrings are probably easier to cache than Strings, so they could have a more efficient special-case?

The good news is that most strings are accessed via GObject properties rather than const gchar* returns, of which there are only 33:

$ grep -h -A1 &apos;WEBKIT_API const gchar \*&apos; DerivedSources/Gdom*.h | egrep -v -- &apos;--|WEBKIT_API&apos;
gdom_character_data_substring_data (GdomCharacterData *thiz, gulong offset, gulong length);
gdom_css_primitive_value_get_string_value (GdomCSSPrimitiveValue *thiz);
gdom_css_style_declaration_get_property_value (GdomCSSStyleDeclaration *thiz, const gchar *property_name);
gdom_css_style_declaration_remove_property (GdomCSSStyleDeclaration *thiz, const gchar *property_name);
gdom_css_style_declaration_get_property_priority (GdomCSSStyleDeclaration *thiz, const gchar *property_name);
gdom_css_style_declaration_item (GdomCSSStyleDeclaration *thiz, gulong index);
gdom_css_style_declaration_get_property_shorthand (GdomCSSStyleDeclaration *thiz, const gchar *property_name);
gdom_css_variables_declaration_get_variable_value (GdomCSSVariablesDeclaration *thiz, const gchar *variable_name);
gdom_css_variables_declaration_remove_variable (GdomCSSVariablesDeclaration *thiz, const gchar *variable_name);
gdom_css_variables_declaration_item (GdomCSSVariablesDeclaration *thiz, gulong index);
gdom_document_query_command_value (GdomDocument *thiz, const gchar *command);
gdom_dom_application_cache_item (GdomDOMApplicationCache *thiz, gulong index);
gdom_dom_core_exception_to_string (GdomDOMCoreException *thiz);
gdom_dom_selection_to_string (GdomDOMSelection *thiz);
gdom_dom_window_prompt (GdomDOMWindow *thiz, const gchar *message, const gchar *default_value);
gdom_element_get_attribute (GdomElement *thiz, const gchar *name);
gdom_element_get_attribute_ns (GdomElement *thiz, const gchar *namespace_uri, const gchar *local_name);
gdom_event_exception_to_string (GdomEventException *thiz);
gdom_html_anchor_element_to_string (GdomHTMLAnchorElement *thiz);
gdom_html_canvas_element_to_data_url (GdomHTMLCanvasElement *thiz, const gchar *type);
gdom_media_list_item (GdomMediaList *thiz, gulong index);
gdom_node_lookup_prefix (GdomNode *thiz, const gchar *namespace_uri);
gdom_node_lookup_namespace_uri (GdomNode *thiz, const gchar *prefix);
gdom_range_exception_to_string (GdomRangeException *thiz);
gdom_range_to_string (GdomRange *thiz);
gdom_storage_key (GdomStorage *thiz, gulong index);
gdom_storage_get_item (GdomStorage *thiz, const gchar *key);
gdom_xml_http_request_exception_to_string (GdomXMLHttpRequestException *thiz);
gdom_xml_http_request_get_all_response_headers (GdomXMLHttpRequest *thiz);
gdom_xml_http_request_get_response_header (GdomXMLHttpRequest *thiz, const gchar *header);
gdom_xml_serializer_serialize_to_string (GdomXMLSerializer *thiz, GdomNode *node);
gdom_x_path_exception_to_string (GdomXPathException *thiz);
gdom_x_path_ns_resolver_lookup_namespace_uri (GdomXPathNSResolver *thiz, const gchar *prefix);

If we can&apos;t figure out a smart approach for string management, we can use the dumb GC approach for now and open a new bug for UTF-8 DOM string optimisations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91032</commentid>
    <comment_count>29</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-09-13 04:55:48 -0700</bug_when>
    <thetext>Also, the GDOM* C++ classes (and PrivateInt*.h) don&apos;t seem to serve much of a purpose at first glance unless I missed something.

If you look at WebCore/bindings/objc/DOM.mm you can see that the ObjC binding happily creates platform objects directly without this indirection, and it should be possible to construct the GObject wrappers directly in a similar fashion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91057</commentid>
    <comment_count>30</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-13 08:36:58 -0700</bug_when>
    <thetext>alp, hi, great!  thanks for the comments - much appreciated.  lots to be getting on with :)

ok - first things: little bit of explanation.

the Private*, PrivateInt* and Gdom*props.h headers were created to avoid major, major headaches in the generation and use of #includes.  a number of times i ended up with circular #include dependencies, and the only way to break them was to split the header files.

one of the key purposes of splitting the headers is to keep the internal class implementations separate from their use (e.g. in webkitwebview.cpp).  so, although things are declared as a typedef GdomDOMdocuement for example, they&apos;re never actually dereferenced - hence the Private header files contain the actual structs. i also liked the idea of keeping the stuff that was stored _in_ the Gobject separate as well (the classes that all derive down to GdomDOMObject) - hence the private cpp file.

but... yes... you&apos;re right: it&apos;s a superfluous requirement - more of a style thing.  but the header files: absolutely not.  it was hell getting those right :)

regarding the trailing white space: yep, more than likely.  many of the hand-edited files started life off as auto-generated and modified or borrowed :)

regarding the strings thing: yep :)  i just... guessed at the best function, relied on the compiler to tell me where i was going wrong.  if there&apos;d been any comments in the code &quot;don&apos;t use this, use this&quot; i&apos;d have gone &quot;oh, look, i&apos;m supposed to use this&quot; ... :)

decamelise: yehh, i just cut/paste your original work, alp :)  i fell afoul of the h2defs.py codegen for pywebkitgtk, too, over the x_path_blah things.  urgh.

GStringConvert originally began life as a macro, and, after running into KURL and other strings, quickly turned into a class.  not having created _any_ files in WebCore/bindings/gdom at the time, i avoided it.... that&apos;s my excuse :)

the string GC thing sounds... _really_ messy.  samba avoids the issue entirely by having talloc - a system of memory allocation which remains permanent-per-context.  when you destroy the group of objects with which the talloc context is associated, you know it&apos;s safe to destroy the talloc context. 

apache has something similar, with &quot;pools&quot;.

in both cases, the only &quot;free()ing&quot; you do is at the global level, when you free the entire talloc (or the entire pool).

the only reason i returned the strings at all as g_alloc()ed was because i anticipated that there might be conventions for dealing with strings in glib/gobjects - &quot;caller frees return results&quot;.

[certainly in DCE/RPC applications, which is the mother-of-all RPC systems, the convention is &quot;caller frees return results&quot;.  it _has_ to be that way, because of the client-server divide.  then if you remove the RPC middle layer, and link the client-bit-of-code to the server-bit-of-code in one monolithic app, the application still behaves correctly, memory-wise.]

in python - specifically the codegen stuff - the .defs file can specify &quot;caller owns result&quot; - something like that - or &quot;callee owns result = false&quot;.  indicating that code must be auto-generated to free up the return result when it&apos;s no longer needed.

now, if there&apos;s a safe way to return a pointer to e.g. the underlying unicode string, rather than make a copy of it as utf-8, then heck, i&apos;ll do that!  glib does support unicode strings (er... he said...)

pffh, i&apos;ve no idea what i&apos;m talking about - i&apos;m neither a webkit not a glib expert :)

the separate library-space thing i _really_ like - for exactly the reasons you say: namely that the gdom bindings really don&apos;t have anything to do with gtk.  which is great.

to make it abundantly clear, i&apos;d love to see pywebkitqt make use of the glib bindings (yes i&apos;m serious!)  i&apos;ve been toying with the idea of _not_ adding to pywebkitgtk but instead creating pywebkitgdom.  aside from anything, pywebkitgtk  is really small, and it&apos;s a bit cheeky to turn it from a 50k to a 300k monster!

so, a pywebkitqt4 could easily import pywebkitgdom.  the interface between the two would be a bit iffy, though, even if it was in only two or three places (like it is in webkitwebview.cpp) hmmm...

more later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91062</commentid>
    <comment_count>31</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-13 08:57:33 -0700</bug_when>
    <thetext>&gt; Also, the GDOM* C++ classes (and PrivateInt*.h) don&apos;t seem 
&gt; to serve much of a purpose at first glance unless I missed something.

&gt; If you look at WebCore/bindings/objc/DOM.mm you can see that the ObjC binding
&gt; happily creates platform objects directly without this indirection, and it
&gt; should be possible to construct the GObject wrappers directly in a similar
&gt; fashion.

alp, imagine i&apos;m sitting in front of you, so you can see how wide
my eyes are, with this big comic 1000-yard stare on my face like the
top of my head is about to come off and bits of brain go into the
sky and rain down over a 50 metre radius.

the speed and intensity with which i got this stuff going was scarily
quick.  much of the decisions were made... how-to-say... on auto-pilot.
to do the GdomDOMObject stuff i cut/paste large sections of JS* code,
and followed whatever styling - from both the ObjC _and_ the JS stuff -
worked best.

the Gdom* classes i had to create, following the exact same reasoning
from the JS classes.  it was a looong ten days ago.... oh, christ, i
remember now.

it&apos;s coming back... yes.  the hash-map thing.  references.  the Gdom*
classes store a ref.  this is absolutely essential.  and, you need
a virtual base class in the lowest-level thing - GdomDOMObject - to
be able to call in to find out the GOBJECT_TYPE.

otherwise, you end up creating the wrong type of &quot;wrapper&quot;.

that&apos;s the whole point of the GDOM*ElementFactory thing - and the
whole point of the JS*ElementFactory - exactly the same issue.

what happens otherwise is that if you call e.g. gdom_create_text_node()
and add it to the DOM with gdom_node_add_child(parent, textnode), and
you then get it back with gdom_document_get_element_by_id(), if you
_don&apos;t_ have the DOMObjectCache that GdomDOMObject refers to, whilst
gdom_create_text_node() creates a GDOM_TEXT_NODE,
gdom_document_get_element_by_id() returns .... a GDOM_NODE!!!

because that&apos;s the return result - a base class - that 
gdom_document_get_element_by_id() returns!

which of course is completely unacceptable - and, worse, you end
up with _two_ different types of GObjects - one a GDOM_NODE
and another a GDOM_TEXT_NODE - pointing to exactly the same
underlying c++ object!

so, i had to cut/paste the JS*ElementFactory code, pretty much verbatim.

so, the hash map avoids the problem of returning different
glib objects that represent the same c++ object; the pure
virtual function GDOMObject::get_gobj_type() makes sure that
you construct the _correct_ type of glib object even when
you&apos;re down in things like gdom_document_get_element_by_id();
the toGDOM functions actually do the heavy-lifting in that
regard (copying cut/paste the style of all the toJS functions);
it&apos;s all utterly hair-raising and i&apos;m now going downstairs to
watch some mindless tv to let my brain cool down :)

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91109</commentid>
    <comment_count>32</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-14 03:15:27 -0700</bug_when>
    <thetext>&gt; Core API changes:
&gt; webkitevent.h/WebKitEvent: We try to avoid generic type names in the core
&gt; WebKit/GTK+ public API since &apos;WebKit.Event&apos; will be ambiguous when &apos;Gdk.Event&apos;
&gt; is imported in many OO language bindings. So this could become either
&gt; WebKitWebEvent, could go into the Gdom namespace or even somehow be merged with
&gt; GdomEvent (I haven&apos;t investigated enough to see if this last suggestion would
&gt; make sense though).

WebKitEvent - or WebKitWebEvent as it&apos;s now known - is a slight hack,
being on the boundary between gtk and glib.  ideally, WebKitWebEvent
should not exist, because it is a manual .... err.... actually, i can&apos;t
find evidence of it being used anywhere :)

i think i already replaced it with GdomEvent....

so... webkitevent.h and webkitwebevent.h die.

we need webkitwebevent.cpp though: it&apos;s the interface-boundary to
creating the three (currently three) types of events - including
xmlhttprequest event notification, required for async ajax.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91116</commentid>
    <comment_count>33</comment_count>
      <attachid>23409</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-14 04:44:00 -0700</bug_when>
    <thetext>Created attachment 23409
updated fixing review requests

removed spaces
removed webkitevent.h
removed webkit_web_event* from webkitevent.cpp
renamed webkitevent.cpp to webkitwebevent.cpp
removed tabs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91118</commentid>
    <comment_count>34</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-14 05:07:03 -0700</bug_when>
    <thetext>&gt; Special-cases for lower_case_conversion:
&gt; decamelize() is great, but sometimes we&apos;ll want to special-case certain
&gt; character sequences to avoid awkward function names. Right now we get
&gt; gdom_x_path_exception_to_string() but what we really want is
&gt; gdom_xpath_exception_to_string(). Some cases I noticed: XPath, WebKit,
&gt; gdom_htmlbr_element_get_type, gdom_htmld_list_element_get_type

alp, um... i had to mention it, eventually, but... me and perl don&apos;t
get along too well - we&apos;re not best of friends.  me and regular expressions
_really_ don&apos;t get along :)

... can i possibly leave this one to you?  if you give me _one_ example
i can do the rest.  i do need a matching camelize() too because i think
sometimes i run the decamelize backwards.

l.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91119</commentid>
    <comment_count>35</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-14 05:45:21 -0700</bug_when>
    <thetext>&gt; _init functions vs. constructors:
&gt; There are some generated functions like gdom_wheel_event_init_wheel_event().
&gt; These should probably be mapped to GObject constructors, ie.
&gt; gdom_wheel_event_new().

i no unnerstaan.

ok - explanation time.

the way that the code is set up, there is no way for external code
(users of the library) to call gdom_xxxxxx_xxxx_new().  none.  not
a single one. this is thoroughly deliberate. the only entry point is
through webkitweb*.cpp.  yes, i realise this will have to change
(in order to support webkit-glib as an &quot;independent&quot; library).

... quick hunt through source code to find if i end up making a
GdomFrame... no.  huh.  ok...

i think... the sensible thing to do would be to create a manual
GdomFrame, which _does_ have a gdom_frame_new() constructor etc.
which takes in the Frame, etc.  looking closely, it&apos;d be virtually
identical to webkitwebframe.cpp - except with no mention of
&quot;Gtk&quot; anywhere.

anyway.

there&apos;s zero public access to the gdom_xxx_new() functions.
not even webkitwebframe.cpp or webkitwebview.cpp or even
the new event handling webkitwebevent.cpp call them: they
all use &quot;toGDOM()&quot; which is the equivalent of &quot;toJS&quot;.

in fact, now i remember: i *entirely* removed the gdom_xxxx_new()
functions.  the *only* place where gdom gobjects get created is
in WebCore/bindings/gdom/GDOMBinding.cpp create_gdom_object().

note the use of the virtual function, GDOMObject::get_gobj_type()

the only way to get the that create_gdom_object() function is
via a toGDOM() function - of which there are... 300 or so, 297
of which are auto-generated.  create_gdom_object is even _static_
to GDOMBinding.cpp.

in this way, it&apos;s absolutely cast-iron guaranteed that the glib
objects will be &quot;managed&quot; (by the hash-map); that a c++ object which
has already had a glib wrapper created around it gets the same
glib object back, even if a glib object of a different type (base
class) is being requested; that all the ref()s are handled correctly.

if i were to let people do gdom_xxx_new() calling, those guarantees
would no longer be in place.

additionally, once you have that initial &quot;Frame&quot;, there&apos;s no _need_
to go calling any gdom_xxx_new() functions, because of all the
getter functions and the creater functions - and the constructors
in the DOM model and the IDL files.

so, the glib bindings would do well to have a manually-coded GdomFrame,
which WebKitWebView either derives from or has as a member, thus making
it even clearer that the glib gdom bindings are independent of gtk; providing
that single-entry choke point into the gdom functions n stuff.

so - although it would be a good idea to map
gdom_wheel_event_init_wheel_event to gdom_wheel_event_new() - there
doesn&apos;t actually exist a gdom_wheel_event_new() to map _to_ :)

... not that i entirely understand what you mean by &quot;map&quot;, so i apologise
if this explanation is particularly long and pointless, but i hope it
helps at least explain some of the very-quickly-made design decisions.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91120</commentid>
    <comment_count>36</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-14 06:10:43 -0700</bug_when>
    <thetext>&gt; First off, you need to use WebCore::String::fromUTF8() rather than
&gt; WebCore::String() 

done.

&gt; webkitprivate.h defines WEBKIT_PARAM_READABLE and WEBKIT_PARAM_READWRITE
&gt; replacements for G_PARAM_READABLE and G_PARAM_READWRITE which tell GObject that
&gt; it doesn&apos;t need to copy the input strings to g_param_spec(). It&apos;s probably
&gt; worth reusing this (or copying equivalents into gdomprivate.h or similar).

done.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91127</commentid>
    <comment_count>37</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-14 11:06:36 -0700</bug_when>
    <thetext>const gchar strings.

i asked on gtk-devel list and got a reply which explains, so now i know a little bit what you&apos;re referring to.  &quot;const gchar string&quot; means &quot;thou shalt not free the return result&quot;.

all other strings, the convention is defined by the library itself, but it&apos;s usually &quot;caller frees return result&quot;.

i&apos;d much prefer that the convention for glib be &quot;caller frees return result&quot;.

even in the case of const properties, by stripping off the &quot;const&quot; on the return result.

that way, what the e.g. pywebkitgtk can be told is &quot;all strings into your domain, you&apos;re responsible for free()ing&quot;.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91133</commentid>
    <comment_count>38</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-14 13:20:27 -0700</bug_when>
    <thetext>pyjd.py:378: Warning: g_param_spec_internal: assertion `!(flags &amp; G_PARAM_STATIC_NAME) || is_canonical (name)&apos; failed

using WEBKIT_PARAM_READABLE and WEBKIT_PARAM_READWRITE causes a segfault in g_param_specstring() when g_object_new() is called (!)

trying just G_PARAM_READABLE....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91135</commentid>
    <comment_count>39</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-14 13:34:14 -0700</bug_when>
    <thetext>i&apos;ve screwed something up :)
tomorrow&apos;s debugging session will involve tracking down a
segfault that ends in g_param_spec_string() of all places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91136</commentid>
    <comment_count>40</comment_count>
    <who name="Christian Persch (GNOME) (away; not reading bugmail)">chpe</who>
    <bug_when>2008-09-14 14:17:43 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; pyjd.py:378: Warning: g_param_spec_internal: assertion `!(flags &amp;
&gt; G_PARAM_STATIC_NAME) || is_canonical (name)&apos; failed
&gt; 
&gt; using WEBKIT_PARAM_READABLE and WEBKIT_PARAM_READWRITE causes a segfault in
&gt; g_param_specstring() when g_object_new() is called (!)

That means that the property name was not canonical:

 * Parameter names need to start with a letter (a-z or A-Z). Subsequent
 * characters can be letters, numbers or a &apos;-&apos;.
 * All other characters are replaced by a &apos;-&apos; during construction.
 * The result of this replacement is called the canonical name of the
 * parameter.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91195</commentid>
    <comment_count>41</comment_count>
      <attachid>23409</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-15 03:38:29 -0700</bug_when>
    <thetext>Comment on attachment 23409
updated fixing review requests

take off &quot;review&quot; status for now, have to rework things fix some segfaults.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91202</commentid>
    <comment_count>42</comment_count>
      <attachid>23436</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-15 06:34:08 -0700</bug_when>
    <thetext>Created attachment 23436
more review fixing

* created libgdom.la
* created WebKit/gtk/gdom directory
* removed const around gchar* (to give pywebkitgtk a change to free the string)
* resolved segfault (somehow....)
* created WebKit/gtk/gdom/GStringConvert.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91209</commentid>
    <comment_count>43</comment_count>
      <attachid>23440</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-15 07:35:41 -0700</bug_when>
    <thetext>Created attachment 23440
merged PrivateGdom*.cpp into Gdom*.cpp

works fine.  no real need.  header files separate is the key priority.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91211</commentid>
    <comment_count>44</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-15 08:21:25 -0700</bug_when>
    <thetext>ok.  chasing through python-gobject, a string property in the &quot;getter&quot; functions is passed to &quot;PyString_AsString()&quot; - not &quot;PyString_FromString()&quot;.

PyString_AsString &quot;takes over&quot; the string data.
PyString_FromString makes a copy.

in other words, the convention is &quot;caller responsible for freeing&quot;.

in other words, the last thing i want to do is to make the gdom bindings return &quot;unmodifiable&quot; copies of strings for which the library itself is responsible.

removing &quot;const gchar*&quot; and making it &quot;gchar*&quot;, and then specifying &quot; (caller-owns-return #t)&quot; makes sure that pywebkitgtk takes responsibility for the memory.  hmm, looks like codegen.py could do with an optimisation by using AsString and then _not_ free()ing the string it&apos;s been passed, but that&apos;s another story.

talking to people on the gtk-devel-mailing list:

http://mail.gnome.org/archives/gtk-devel-list/2008-September/msg00080.html

one person says, basically, that GC is really fraught with difficulties.

overall, i get the impression that a simple convention &quot;caller responsible
for freeing&quot; not only makes everybody&apos;s lives easier, but is also expected.

certainly python-gobject and pygtk&apos;s codegen that looks like it&apos;s the case.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91221</commentid>
    <comment_count>45</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-15 11:04:37 -0700</bug_when>
    <thetext>alp, hi,

i&apos;m going slightly off my head, revisiting this stuff, strings-wise, but i _think_ i&apos;m in the clear on properties.  g_value_from_string() returns the string contained in a GValue. const gchar*.  not copied.  that gets passed (now) to WebCore::CString::fromUTF8().  that accepts const char*, so _it&apos;s_ happy.  GdomAttr.cpp setValue() accepts a CString so it&apos;s happy, too.  GValue is taken care of by gobject, so it&apos;s all good.

setting: err.... i think i messed up, here: i think i should be using g_value_take_string()....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91370</commentid>
    <comment_count>46</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-09-16 09:47:08 -0700</bug_when>
    <thetext>Can you please name the generated files with a format that matches our coding style?  &quot;GdomBarInfo.h&quot; doesn&apos;t match our naming conventions, and should probably be GDOMBarInfo.h.  If these files are to be part of the WebKit GTK API then they should match the GTK naming convention, which I believe does not use upper-case letters at all.  Alp may be able to provide suggestions about what the right naming scheme is here.

The changes in FrameLoaderClientGtk.cpp look bogus.  Why are they in this patch?

Why does GDOMObject.h have a commented out &apos;namespace WebCore&apos;?  Why does it have a function named get_gobj_type which doesn&apos;t match our naming conventions?

The includes in webkitwebframe.cpp should be sorted per our style conventions.  They also shouldn&apos;t have the &quot;gdom/&quot; prefix.  The private header files should be have Private as a suffix to match the convention used elsewhere in the project (PrivateGdomDOMWindow.h -&gt; GDOMWindowPrivate.h).  It&apos;s not clear to me why some of the files have &quot;Int&quot; in their name.  Is that short for &quot;Internal&quot;?  If so, the file should use that as a suffix in place of Private, such as GDOMWindowInternal.h.

There are commented-out printf&apos;s in webkitwebevent.cpp which shouldn&apos;t be there.

PrivateIntGdomEventTargetNode.h lacks a license header, and the Apple Inc. copyright line lacks the &quot;All rights reserved.&quot; note that should be present.  The file also uses strange formatting for the include guard.  Please see existing code for an example of the style that should be used.

The code in GStringConvert.h lacks a license header.  I&apos;m not sure what the point of the GStringConvert class is.  It seems like it could easily be implemented using a simple overloaded function rather than the strange class + macro combination.  The &quot;extern C&quot; around a C++ class doesn&apos;t make a lot of sense either.  The header includes in this file also need sorted.

Do the values for FEATURE_DEFINES_GDOM and FEATURE_DEFINES_JAVASCRIPT ever differ?  If not, is there any point in having both?

GDOMHTMLElementWrapperFactory.cpp says that &quot;THIS FILE IS DERIVED FROM AN AUTOMATICALLY GENERATED FILE.&quot;  what file is it derived from, and why is it being checked in if it is a generated file?

GDOMBinding.cpp has some FIXME&apos;s, TODO&apos;s and a lot of commented-out code that should be cleaned up before this can be landed.

Some of the IDL file changes do not look correct.  I would think that the GObject bindings would want to match the behaviour of the Obj-C DOM bindings rather than JS in the cases that they differ.  Many of these instances are due to behavioral peculiarities of JS, especially attributes such as ConvertNullToNullString and toString functions.



All in all, this is looking like a good start, but it needs a lot more polish and refinement before it can be landed.  I&apos;ve primarily commented on style issues.  Hopefully Sam will be able to take a look at the implementation details once the patch is cleaned up and easier to follow, and Alp and other GTK developers can provide feedback on the new API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91371</commentid>
    <comment_count>47</comment_count>
      <attachid>23440</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-09-16 09:47:21 -0700</bug_when>
    <thetext>Comment on attachment 23440
merged PrivateGdom*.cpp into Gdom*.cpp

Marking as r- based on my comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91420</commentid>
    <comment_count>48</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-16 13:02:37 -0700</bug_when>
    <thetext>&gt; Can you please name the generated files with a format that matches
&gt; our coding style?  &quot;GdomBarInfo.h&quot; doesn&apos;t match our naming conventions,
&gt; and should probably be GDOMBarInfo.h.

 someone make a firm decision, tell me what to do,
 i&apos;ll go with it.  alp recommended gdom-xxx-xxx-xxx.h

&gt; If these files are to be part of the WebKit GTK API

they&apos;re not part of the webkit gtk api.
they&apos;re entirely independent of the GTK api.  they _happen_ to be _used_ by
the GTK api, as a first example usage - and i am investigating how the QT
api should use them, too (pending someone writing a qt bindings).

they&apos;re &quot;glib&quot; bindings, not &quot;gtk&quot; bindings.

creation of a Glib object around both WebCore::Frame and WebCore::Page
will allow their use in other widget sets.


&gt; Alp may be able to provide suggestions about what
&gt; the right naming scheme is here.

 yep - he did - but they break the webkit coding conventions.


&gt; The changes in FrameLoaderClientGtk.cpp look bogus.

 without that simple fix, any frames opened up in
 any page will instantly cause a segfault.

&gt; Why are they in this patch?

because i need to get something working and useable,
the patch is 7,000 lines long, i&apos;m too low on disk space
to have several copies of webkit checked out using git
to manage several revisions of the patch - one to send
to you and one to have something that actually &quot;works&quot;.

it&apos;s the &quot;working solution&quot;. nasty as hell, but it works.
if someone can fix #20403 i won&apos;t need that nasty fix.


&gt; Why does GDOMObject.h have a commented out &apos;namespace WebCore&apos;?

i believed it necessary at some point in the development cycle,
and was oscillating between it being there and not.

it&apos;s gone.

&gt;  Why does it have a function named get_gobj_type which
&gt; doesn&apos;t match our naming conventions?

pick a name - any name, i&apos;ll use it.

&gt; The includes in webkitwebframe.cpp should be sorted per our style conventions.

done.  i think.
 
&gt; They also shouldn&apos;t have the &quot;gdom/&quot; prefix.

 yeahh, i was going to convert to &lt;gdom/NNNNN.h&gt; to make it
 unequivocably clear that the glib bindings have absolutely
 nothing to do with being part of the gtk port.

&gt;  The private header files should
be have Private as a suffix to match the convention used elsewhere in the
project (PrivateGdomDOMWindow.h -&gt; GDOMWindowPrivate.h).  It&apos;s not clear to me
why some of the files have &quot;Int&quot; in their name.  Is that short for &quot;Internal&quot;? 

 yep.

&gt; If so, the file should use that as a suffix in place of Private, such as
GDOMWindowInternal.h.

 ok. ... ahhh ... wait - i think that interferes with the pattern matching
 in WebCore/GNUMakefile.am - specifically:

    DerivedSources/gdom/PrivateGdom%.h: DerivedSources/gdom/Gdom%.cpp;

 etc.

 if someone can come up with a suitable pattern-match that works,
 without make thinking that the &quot;*Internal*&quot; files have make rules,
 and can come up with a suitable match also for the &quot;*Private*.h&quot;
 rules, then the names of the files can change.


&gt; There are commented-out printf&apos;s in webkitwebevent.cpp which shouldn&apos;t be
&gt; there.

gone.

&gt; PrivateIntGdomEventTargetNode.h lacks a license header,

 whoops, sorted.

&gt; and the Apple Inc. copyright line lacks the &quot;All rights reserved.&quot; note that should be present. 

 then that means that somewhere there is another file
 missing it, from which the text was cut and paste.
 in amongst two weeks of very intense programming, i could
 not say which one it is.

&gt; The file also uses strange formatting for the include guard.  Please see
&gt; existing code for an example of the style that should be used.

it&apos;s auto-generated, it&apos;s perl, and it&apos;s easier to append &quot;__INT_&quot; than it is to write yet another perl function which makes the perl code - already unreadable - yet more complex.

if you _really_ want me to make the auto-generator more complex,
please state so clearly and i will be happy to do it.


&gt; The code in GStringConvert.h lacks a license header.

added.

&gt;  I&apos;m not sure what the
&gt; point of the GStringConvert class is.  It seems like it could easily be
&gt; implemented using a simple overloaded function rather than the strange class +
&gt; macro combination. 

 huh.  so it could :)

&gt; The &quot;extern C&quot; around a C++ class doesn&apos;t make a lot of
sense either.

 yep - and it&apos;s not needed, either.  at some point, there was a bit of
 a mess involving extern &quot;C&quot;s... :)


&gt;  The header includes in this file also need sorted.

 done

&gt; Do the values for FEATURE_DEFINES_GDOM and FEATURE_DEFINES_JAVASCRIPT ever
differ?

 most definitely they do.

&gt;  If not, is there any point in having both?

 most definitely there is.

 1) LANGUAGE_GOBJECT=1

 look at which functions are &quot;custom&quot;; look at which functions in
 the idls are defined for objc and which for 

 2) SVG.

 see #20586.  i&apos;m _not_ adding svg supoprt until this patch is accepted.
 it&apos;s far too much additional work.

&gt; GDOMHTMLElementWrapperFactory.cpp says that &quot;THIS FILE IS DERIVED FROM AN
&gt; AUTOMATICALLY GENERATED FILE.&quot;  what file is it derived from, and why is it
&gt; being checked in if it is a generated file?

because it&apos;s not an auto-generated file.

if someone else - i.e. not me - would like to write some
perl code or other code which auto-generates that file,
they are welcome to do it.  i&apos;m not a perl coder, but i&apos;m
very good at cut/paste from examples of perl code.


&gt; GDOMBinding.cpp has some FIXME&apos;s, TODO&apos;s and a
&gt; lot of commented-out code that
&gt; should be cleaned up before this can be landed.

 i&apos;m leaving the TODOs in for future reference, for
 another patch, for additional functionality e.g. SVG.

 i _can_ remove the remainder of the FIXMEs and
 TODOs if you like but that would mean that future
 developers will find it more difficult to track down
 issues.

&gt; Some of the IDL file changes do not look correct.
&gt; I would think that the GObject bindings would want to match
&gt; the behaviour of the Obj-C DOM bindings
&gt; rather than JS in the cases that they differ.
&gt; Many of these instances are due
&gt; to behavioral peculiarities of JS, especially attributes such as
&gt; ConvertNullToNullString and toString functions.

i&apos;m.... i&apos;ll be absolutely brutally honest, here: i&apos;m really
not ... how do i put this best...

imagine that there is a good way to say &quot;no, i&apos;m not going
to make any further changes, additions or enhancements or
even compliance to standards&quot; without causing offense, and
then taking that as being said - repeatedly and clearly -
throughout the next few sentences.

i&apos;ve reached my limit - unpaid work-wise - on amount of time and
effort to spend on adding extra functionality.

if you can find some money, somewhere, i&apos;ll do the additional work.

otherwise, the only circumstances under which i will make additional
changes is if there is a serious bug.  memory leak, simple coding
standards changes, style conventions etc - i&apos;ve no problem with that.

i&apos;m missing the use of &quot;Location&quot; property setting (because it&apos;s
a custom function) and i&apos;m not even adding _that_, and i need it
in pyjamas-desktop, and i&apos;m _still_ not going to add it, until
after this patch goes through.

a 7,500 line patch is enough.

i&apos;ve done free software projects which resulted in nearly 150,000
lines of additional code being added - three years work, entirely
wasted (because of people&apos;s egos).  i&apos;m not doing that again.

so - no more changes.  what&apos;s there &quot;works&quot;.  if it&apos;s not
javascript standards compliant (because i #ifdef LANGUAGE_GOBJECT&apos;d
in a function called open(CString) when LANGUAGE_JAVASCRIPT
does open(WebCore::class) - tough.  it works, it avoided many issues
which can be fixed...

_later_.

not now.

&gt; All in all, this is looking like a good start,

 thanks.

&gt; but it needs a lot more polish
&gt; and refinement before it can be landed. 

 that&apos;s ok.  extra functionality, changes to various workarounds
 which can be planned for later patches - not ok.  sorry.

&gt; I&apos;ve primarily commented on style issues.

 very helpful, thank you.  i believe i&apos;ve dealt with most
 of them as i&apos;ve written this, and left 

&gt; Hopefully Sam will be able to take a look at the
&gt; implementation details once the patch is cleaned up
&gt; and easier to follow, and Alp and other
&gt; GTK developers can provide feedback on the new API.

 yaay.

 well, unfortunately, the auto-generator is always going
 to be a bit of a mess: i&apos;m not a perl programmer, as i
 mentioned above, but i&apos;m extremely good at cut/paste
 and &quot;getting results&quot; through extremely rapid development
 cycles.

 i&apos;m sorry about the extra functionality thing.  i&apos;m
 working on this for a personal project - unfunded - and
 am under extreme financial pressure.  many of the decisions
 made can be revisited and refined - but if it came to
 a choice between &quot;significant extra functionality needed
 to land the patch&quot; and &quot;walking away&quot;, i walk away.
 there&apos;s enough extra work on the list already: i&apos;m holding
 back _several_ bug reports and features until it&apos;s landed,
 simply because there&apos;s so much involved, i don&apos;t want to
 riddle the webkit database with stuff that could change.

 landing this patch - with functionality &quot;as-is&quot; - means
 that there&apos;s a stake in the ground to move forward from.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91428</commentid>
    <comment_count>49</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-16 13:33:32 -0700</bug_when>
    <thetext>&quot;WebCore/html/HTMLOptionElement.idl&quot;

#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
                 attribute  [ConvertNullToNullString] DOMString            text
                     setter raises(DOMException);
#else
        readonly attribute  DOMString            text;
#endif

in the gobject bindings, i&apos;m ignoring entirely the &quot;ConvertNullToNullString&quot;, and making use of the fact that the #ifdef makes the attribute writeable rather than read-only.

some of the pyjamas-desktop code required write access to the text (equivalent to setting &quot;innerHTML&quot;).

at _some point in the future_ - after the patch has been landed,
revisiting the &quot;ConvertNullToNullString&quot; and other idl modifiers,
should be examined.

... but _not_ right now.  what&apos;s there &quot;works&quot; - pyjamas-desktop,
and pywebkitgtk &quot;work&quot;.  there&apos;s no need to fix what isn&apos;t broken.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91430</commentid>
    <comment_count>50</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-16 13:37:08 -0700</bug_when>
    <thetext>--- WebCore/html/HTMLEmbedElement.idl   (revision 36459)
+++ WebCore/html/HTMLEmbedElement.idl   (working copy)
@@ -30,7 +30,7 @@
         ImplementationUUID=93e0407a-8380-4ff0-978d-f773f2dee6a3
     ] HTMLEmbedElement : HTMLElement {
                  attribute [ConvertNullToNullString] DOMString align;
-#if defined(LANGUAGE_JAVASCRIPT)
+#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
                  attribute [ConvertNullToNullString] DOMString height;
 #else
                  attribute [ConvertFromString] long height;
@@ -38,7 +38,7 @@
                  attribute [ConvertNullToNullString] DOMString name;
                  attribute [ConvertNullToNullString] DOMString src;
                  attribute [ConvertNullToNullString] DOMString type;
-#if defined(LANGUAGE_JAVASCRIPT)
+#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
                  attribute [ConvertNullToNullString] DOMString width;
 #else
                  attribute [ConvertFromString] long width;



exact same functionality as javascript is required.  an int width
and an int height is of absolutely no use.

pyjamas-desktop needs to be able to set width and height to what
_javascript_ does - not objectiveC.

i.e. &quot;100%&quot;.  &quot;10em&quot;.  &quot;20px&quot;.

the integer-only parameters are no use to anyone wishing to maintain line-for-line javascript equivalent functionality, which is what pyjamas-desktop is about: ripping out the javascript and replacing it with exact-equivalent code, written in python instead of javascript.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91432</commentid>
    <comment_count>51</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-16 13:42:27 -0700</bug_when>
    <thetext>--- WebCore/xml/XMLHttpRequest.idl  (revision 36459)
+++ WebCore/xml/XMLHttpRequest.idl  (working copy)
@@ -62,9 +62,13 @@
             raises(DOMException);

         // void send();
-        // void send(in DOMString data);
+#if defined(LANGUAGE_GOBJECT)
+        void send(in DOMString data)
+            raises(DOMException);
+#else
         [Custom] void send(in Document data)
             raises(DOMException);
+#endif

this one was a pain.  i went to considerable effort to try and use Document,
added glib bindings around TextDocument, other documents, HTMLDocument,
and tried _really_ hard to create a Document from scratch using the glib
bindings.

in the end, i gave up - i believe it&apos;s because i haven&apos;t yet added
&quot;gobject&quot; property setting (i have strings, ints, floats etc. just not
glib objects).

so i went for the simplest possible option - pass in a text &quot;string&quot;.

so _in the future_, this needs to be revisited.

but _not now_.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91433</commentid>
    <comment_count>52</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-16 13:47:02 -0700</bug_when>
    <thetext>--- WebCore/page/DOMWindow.idl  (revision 36459)
+++ WebCore/page/DOMWindow.idl  (working copy)
@@ -155,7 +155,7 @@
         [DoNotCheckDomainSecurity, Custom] void postMessage(in DOMString message, in DOMString targetOrigin)
             raises(DOMException);

-#if defined(LANGUAGE_JAVASCRIPT)
+#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
         // Global constructors
         attribute StyleSheetConstructor StyleSheet;
         attribute CSSStyleSheetConstructor CSSStyleSheet;

i&apos;ve added this in as a reminder that, at some point _in the future_,
the gobject auto-generator code will need to auto-generate &quot;constructors&quot;.
i believe this was part of the problem i had in doing creation of a
document - not having some of these functions.

although it will be straightforward to add constructors, i&apos;m not doing
it for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91438</commentid>
    <comment_count>53</comment_count>
      <attachid>23488</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-16 14:19:53 -0700</bug_when>
    <thetext>Created attachment 23488
updated for many of mrowe&apos;s comments

mark, hi,
attached - updated to reflect the coding standards and
many other issues you kindly raised.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91516</commentid>
    <comment_count>54</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-09-17 14:09:35 -0700</bug_when>
    <thetext>So, I&apos;m going to propose a strategy to avoid burning out lkck and getting this feature landed as rapidly as possible.

lkck, what would you think about modifying the patch so it doesn&apos;t touch the WebKit public API layer at all? Those changes can be left as a patch in bug #16686 and landed when we&apos;re nearer to having a stable DOM binding.

This would mean moving functions like webkit_web_frame_get_dom_document() into libgdom.la for now (or maybe making a temporary helper class like WebKitDomHelper in libgdom.la, dunno).

Part of the problem is that as soon as this shows up in the main API, we&apos;ll have to start freezing and won&apos;t have much room for changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91520</commentid>
    <comment_count>55</comment_count>
      <attachid>23508</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-17 14:28:05 -0700</bug_when>
    <thetext>Created attachment 23508
massively (oversimplified, unfortunately) reduced patch

ok - after talking to mark, given that the target
functionality requires a 250k patch, here is a
_reduced_ patch (80k) which provides no actual useable
functionality but provides &quot;a start&quot;.

the only functionality added is &quot;Node&quot; - GdomNode.

to ensure that memory corruption, memory leaks, lost
ptrRefs and thus segfaults do not occur, GdomDOMObject -
and the methodology copied directly almost word-for-word
cut-and-paste from JSBindings.cpp into GDOMBindings.cpp
is absolutely essential, and cannot be &quot;cut&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91622</commentid>
    <comment_count>56</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-18 04:29:00 -0700</bug_when>
    <thetext>alp - great idea.  the only places where changes are made anyway is _three_ extra functions.

three.

not one thousand five hundred.

three.

1) webkit_web_frame_get_xml_http_request
2) webkit_web_frame_get_dom_window
3) webkit_web_frame_get_dom_document

that&apos;s it.

everything else is entirely &quot;additions&quot; that have no impact, no consequence, no effect and no modification of or to the webkit gtk code in any way, shape or form.

the entire code added - including those three functions - has no impact, no effect, no additions, modifications or enhancements _at all_ in any way, shape or form to the webkit &quot;core&quot;.

more later i have work to do.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91638</commentid>
    <comment_count>57</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-18 09:07:34 -0700</bug_when>
    <thetext>+WEBKIT_API gboolean
+webkit_web_frame_add_event_listener(WebKitWebFrame* frame,
+                                     const gchar          *name);

4 functions, not 3.  that would go into GdomFrame, as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91639</commentid>
    <comment_count>58</comment_count>
      <attachid>23531</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-18 09:10:40 -0700</bug_when>
    <thetext>Created attachment 23531
remainder of patch bringing gdom patch up to full functionality

thanks to git, and git branches, i can keep track of different revisions.
here&apos;s the &quot;remainder&quot; of the patch which provides the full functionality.
apply attachment-23508 first, then this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91665</commentid>
    <comment_count>59</comment_count>
      <attachid>23535</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-18 13:42:48 -0700</bug_when>
    <thetext>Created attachment 23535
updated massively-reduced functionality patch

removed, as requested, #ifdef&apos;d code.
the #ifdef&apos;d code and the associated comments is a reminder to
put in absolutely critical and essential functionality.
the removal of this #ifdef&apos;d code has been replaced with a
description outlining exactly why the functionality which has
not been completed is utterly essential for correct operation
of the bindings code.

this replacement patch is functionally useless, providing nothing
but &quot;Node&quot;.  there is no way to test it (through the gtk webkit port)
because there is no &quot;link&quot; in to the webkit_web_*() gtk bindings.

this replacement patch is provided, as requested, on the basis
that it will make it easier to assess the code in stages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91809</commentid>
    <comment_count>60</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-19 13:08:57 -0700</bug_when>
    <thetext>DerivedSources/gdom/gdom%.cpp: %.idl $(SCRIPTS_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorGObject.pm

best that can be done, given this, without having 300 (400 if you include
SVG at some point) makefile rules, is:

gdom-Attr.cpp.

i can auto-generate the headers gdom-attr.h, gdom-attr-private.h.

it&apos;s the matching against % that .... </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91811</commentid>
    <comment_count>61</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-19 13:17:21 -0700</bug_when>
    <thetext>DerivedSources/gdom/gdom%.h: DerivedSources/gdom/gdom%.cpp;

can&apos;t do the header files, either.

libgdom_la_HEADERS = \
        $(libgdom_h_api) \

$libgdom_h_api =  DerivedSources/gdomAttr.h .....

DerivedSources/gdom/gdom%.h: DerivedSources/gdom/gdom%.cpp;

DerivedSources/gdom/Gdom%.cpp: %.idl $(SCRIPTS_BINDINGS) $(WebCore)/bindings/scripts/CodeGeneratorGObject.pm
    $(PERL) -I$(WebCore)/bindings/scripts $(WebCore)/bindings/scripts/generate-bindings.pl --include $(WebCore)/dom --include $(WebCore)/html --include $(WebCore)/css --include $(WebCore)/page --include $(WebCore)/xml --include $(WebCore)/svg --outputDir &quot;$(GENSOURCESGDOM)&quot; --defines &quot;$(FEATURE_DEFINES_GDOM)&quot; --generator GObject $&lt;



so... unless someone could come up with a solution, or you&apos;re
happy to rename all idl files from Attr.idl and BarInfo.idl to
attr.idl and bar-info.idl, the names either have to stick
GdomAttr.h, perhaps be gdom-Attr.h and gdom-BarInfo.h, or have
a post-processing stage which, for the purposes of placing
them into /usr/include/webkit-1.0/gdom, performs a rename at
that time rather than a straight copy.

oh - and a rename.  i&apos;ll attach a text-converter which will
be capable of performing the rename, post-processing the
text to replace gdom/GdomAttr.h with gdom/gdom-attr.h written
in python cos i like python and it took me 10 mins rather
than 30 plus aggro in perl :)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91812</commentid>
    <comment_count>62</comment_count>
      <attachid>23579</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-19 13:18:25 -0700</bug_when>
    <thetext>Created attachment 23579
converts upper-case GdomXyzAbc to gdom-xyz-abc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91882</commentid>
    <comment_count>63</comment_count>
      <attachid>23535</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-20 01:26:31 -0700</bug_when>
    <thetext>Comment on attachment 23535
updated massively-reduced functionality patch

removed review request, patch soon to be obsoleted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92768</commentid>
    <comment_count>64</comment_count>
      <attachid>23812</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-09-25 12:02:48 -0700</bug_when>
    <thetext>Created attachment 23812
last patch - end of current available time and resources 

this patch is what is currently working and fully functional,
sufficient to be &quot;useable&quot; for many projects.

there is no more &quot;free&quot; time available for me to work on
this, any more.

contracting or any other kind of payment will result in further
work.

at some point in the future i may choose to work on this,
to meet my own needs and requirements: should that occur,
i will ensure that, like as with this patch, that you
receive what i have written.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95540</commentid>
    <comment_count>65</comment_count>
      <attachid>24395</attachid>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2008-10-16 09:36:37 -0700</bug_when>
    <thetext>Created attachment 24395
DOM patch updated to version 37602

A few changes to make the patch work with recent SVN.

What&apos;s preventing this patch from being landed? I would really appreciate someone to summarize the open issues. I may put some work into it in the following days, but it&apos;s hard for me to determine what must still be done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95546</commentid>
    <comment_count>66</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-16 10:33:16 -0700</bug_when>
    <thetext>(In reply to comment #65)
&gt; Created an attachment (id=24395) [edit]
&gt; DOM patch updated to version 37602
&gt; 
&gt; A few changes to make the patch work with recent SVN.
&gt; 
&gt; What&apos;s preventing this patch from being landed? I would really appreciate
&gt; someone to summarize the open issues. I may put some work into it in the
&gt; following days, but it&apos;s hard for me to determine what must still be done.

Please read back over the review comments I have left on a previous version of the patch.  There are many issues which have not yet been addressed and which need to be addressed before this can be landed.  In general though, this patch is trying to do far too much at once which makes it very hard to get right without going through many iterations, and it also makes it a lot of work to review.  An initial cut at the bindings that supports a subset of the functionality would be much quicker to clean up and get into a usable state, and would make it simple for others to finish off the work in parallel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95561</commentid>
    <comment_count>67</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-16 12:27:02 -0700</bug_when>
    <thetext>mark, hi,

all of the issues you raised i have either completed, explained
the roadblocks and/or reasoning why they have, will or cannot
be completed, or raised further questions,

so i - and others - are awaiting responses to those issues.

the patch as it stands is ... how-to-say... &quot;feature-complete&quot;.
&quot;self-consistent&quot;.  &quot;is useable for production-ready purposes&quot;.
&quot;is ready for release&quot;.

so, _yes_ there&apos;s a lot of code ... but... if there&apos;s a lot
of code - tough luck.  it does the job, it&apos;s useable, and i&apos;m
disinclined - and have not yet received any incentive - to
do additional work to produce what will effectively be non-functional
and non-useful patches, just so that apple employees can get
their heads round the work.

you and others in apple are _paid_ to work on this - you therefore
have all the time in the world to sit down and work on understanding
it.


issues such as _how_ the code is to be used - such as the interface -
have _not_ been finalised, and discussions on how the code is to
be used have not proceeded.  alp raised the issue that the three
functions which have been added to WebKitWebView are not really
appropriate an interface, and i agree with him.

alp suggested *leaving out* those three functions, and i have
mentioned previously that i agree that that&apos;s a very good way
forward.

then, for anyone who does want to use this work, they can just
add in a temporary patch of only a few lines of code, and they&apos;re
off.

so, again, we&apos;re awaiting responses to the issues.

i did attempt a &quot;partial approach&quot;.  it consumed large amounts
of my time and disrupted the maintenance of the &quot;real&quot; patch.

so, if given a choice between whether you, and others at apple, should
spend time and effort during well-paid working hours, to learn how
this patch works, or whether i should be asked to &quot;dumb down&quot; what&apos;s
been done into chunks of non-useful work, when i&apos;ve got £25,000 of
debt hanging over my head, i&apos;ll choose... apple employees doing their
job and learning something new and exciting in the process!


the approach that i recommend that you take, due to the size of the
patch, is to accept it &quot;as-is&quot;.  once that has been done, then i will
be _more_ than happy to raise bugreports and guide others and/or even
do additional work to address the issues.

by removing the (three) function that make it &quot;operational&quot;, you
will be *stopping* the casual developer from assuming that the API
has been finalised, without hindering the interested developers
from cleaning up the work.

there is absolutely no reason why this decision should not be taken,
and there are many many reasons why it _should_ be taken.

not least is the simple fact that the sheer number of issues
that need to be addressed are _far_ too many to keep discussing
in one bugreport.

it&apos;s simply unmanageable.

so from a purely _practical_ perspective, accept the damn patch and
let&apos;s get on and make some damn progress.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95571</commentid>
    <comment_count>68</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-10-16 13:19:57 -0700</bug_when>
    <thetext>(In reply to comment #67)
&gt; mark, hi,
&gt; 
&gt; all of the issues you raised i have either completed, explained
&gt; the roadblocks and/or reasoning why they have, will or cannot
&gt; be completed, or raised further questions,
&gt; 
&gt; so i - and others - are awaiting responses to those issues.

What issues do you believe are outstanding?  It is unclear.

&gt; 
&gt; the patch as it stands is ... how-to-say... &quot;feature-complete&quot;.
&gt; &quot;self-consistent&quot;.  &quot;is useable for production-ready purposes&quot;.
&gt; &quot;is ready for release&quot;.

As Mark noted, the reviewers have deemed that the patch needs further work.   For instance, there is commented and #ifdefed out code that needs to be addressed and the changes to the IDL files which are incorrect, both of which have been pointed out in previous reviews.

&gt; 
&gt; so, _yes_ there&apos;s a lot of code ... but... if there&apos;s a lot
&gt; of code - tough luck.  it does the job, it&apos;s useable, and i&apos;m
&gt; disinclined - and have not yet received any incentive - to
&gt; do additional work to produce what will effectively be non-functional
&gt; and non-useful patches, just so that apple employees can get
&gt; their heads round the work.
&gt; 
&gt; you and others in apple are _paid_ to work on this - you therefore
&gt; have all the time in the world to sit down and work on understanding
&gt; it.

We understand what it does, it simply is not yet up to the standards of the WebKit project.  We pride ourselves on our code quality and readability and thus code that simply passes the &quot;functional&quot; test is not necessarily sufficient for committing.  Our processes for review help us keep this high standard so we follow them for all code added to the tree.

&gt; 
&gt; issues such as _how_ the code is to be used - such as the interface -
&gt; have _not_ been finalised, and discussions on how the code is to
&gt; be used have not proceeded.  alp raised the issue that the three
&gt; functions which have been added to WebKitWebView are not really
&gt; appropriate an interface, and i agree with him.
&gt; 
&gt; alp suggested *leaving out* those three functions, and i have
&gt; mentioned previously that i agree that that&apos;s a very good way
&gt; forward.
&gt; 
&gt; then, for anyone who does want to use this work, they can just
&gt; add in a temporary patch of only a few lines of code, and they&apos;re
&gt; off.

Decisions about the API are not relevant to these review comments.

&gt; 
&gt; so, again, we&apos;re awaiting responses to the issues.
&gt; 
&gt; i did attempt a &quot;partial approach&quot;.  it consumed large amounts
&gt; of my time and disrupted the maintenance of the &quot;real&quot; patch.
&gt; 
&gt; so, if given a choice between whether you, and others at apple, should
&gt; spend time and effort during well-paid working hours, to learn how
&gt; this patch works, or whether i should be asked to &quot;dumb down&quot; what&apos;s
&gt; been done into chunks of non-useful work, when i&apos;ve got £25,000 of
&gt; debt hanging over my head, i&apos;ll choose... apple employees doing their
&gt; job and learning something new and exciting in the process!
&gt; 
&gt; 
&gt; the approach that i recommend that you take, due to the size of the
&gt; patch, is to accept it &quot;as-is&quot;.  once that has been done, then i will
&gt; be _more_ than happy to raise bugreports and guide others and/or even
&gt; do additional work to address the issues.

This is not an option.  The patch needs to be reviewed, as all patches are, before they can be landed.  If you would like to expedite this process, you can take Marks advice and pare down the scope of this patch.

&gt; 
&gt; by removing the (three) function that make it &quot;operational&quot;, you
&gt; will be *stopping* the casual developer from assuming that the API
&gt; has been finalised, without hindering the interested developers
&gt; from cleaning up the work.
&gt; 
&gt; there is absolutely no reason why this decision should not be taken,
&gt; and there are many many reasons why it _should_ be taken.
&gt; 
&gt; not least is the simple fact that the sheer number of issues
&gt; that need to be addressed are _far_ too many to keep discussing
&gt; in one bugreport.
&gt; 
&gt; it&apos;s simply unmanageable.
&gt; 
&gt; so from a purely _practical_ perspective, accept the damn patch and
&gt; let&apos;s get on and make some damn progress.
&gt; 

On a personal note, I wrote the majority of the Objective-C bindings long before I was employed by Apple.  The approach that I took was to generate a few core classes to begin with, and incrementally add more generated source files once the core functionality was in place.  This made the review process nice and quick due to the small size of the patches.  It also made it easier for me to address comments as they were made, and learn from them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95603</commentid>
    <comment_count>69</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-16 14:19:20 -0700</bug_when>
    <thetext>dear sam,

the work done is extensive, comprehensive, and is &quot;too much&quot; for &quot;the system&quot;
to cope with.  can i therefore recommend that, in order to make progress
manageable, that pride takes a back seat?

unless paid - cash - i will not be expending further effort to split this
patch down into (non-functional) &quot;bite-sizes&quot;.  you&apos;re paid _money_ to work
on this code - to ask me to effectively hand-hold you through understanding
of the functionality is demeaning to both of us.

regarding the outstanding issues: they are documented, here, post-review.
every issue requested to be addressed _is_ addressed.

that they cannot be conveniently found only serves to emphasis just how
important it is that this code _be_ landed, and the outstanding issues
addressed _after_ it has been landed.

addressed one issue at a time.

in convenient bugreport-sized chunks.

it&apos;s not possible to issue bug-reports within bug-reports and, until
this code is landed, you will not receive my cooperation, time or energy
_unless_...

unless i am paid cash to do further work.

then i&apos;ll be _delighted_ to help, and will do as _many_ bite-sized
patches as it takes and is required.

no money - no work.  it&apos;s too much.  sorry.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95626</commentid>
    <comment_count>70</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-16 15:22:52 -0700</bug_when>
    <thetext>(In reply to comment #69)
&gt; dear sam,
&gt; 
&gt; the work done is extensive, comprehensive, and is &quot;too much&quot; for &quot;the system&quot;
&gt; to cope with.  can i therefore recommend that, in order to make progress
&gt; manageable, that pride takes a back seat?

It&apos;s a matter of code quality.  If the code is not up to our usual standards and it is landed anyway, it becomes an ongoing maintenance burden that *we* as a project have to shoulder.

&gt; unless paid - cash - i will not be expending further effort to split this
&gt; patch down into (non-functional) &quot;bite-sizes&quot;.  you&apos;re paid _money_ to work
&gt; on this code - to ask me to effectively hand-hold you through understanding
&gt; of the functionality is demeaning to both of us.

You misunderstand what the review process is about.  It is about proactively avoid bugs and bringing the quality of the code up to a reasonable standard.  We are completely capable of reading and understanding the code.  It is because we understand the code we&apos;ve been able to point out the many outstanding issues in your patch.

&gt; regarding the outstanding issues: they are documented, here, post-review.
&gt; every issue requested to be addressed _is_ addressed.

That is simply not true.  The coding style still does not match our well-documented guidelines.  Files are missing license headers, and are not named according to our conventions.  The patch contains many instances of commented-out code. The ref-counting of wrapped objects is incorrect.  There are changes to IDL files which are simply wrong.  All of these issues have been raised before.

&gt; that they cannot be conveniently found only serves to emphasis just how
&gt; important it is that this code _be_ landed, and the outstanding issues
&gt; addressed _after_ it has been landed.

As we have stated before, all patches must meet the minimum standard for review before they are landed.  This patch is not yet at that standard, so it will *not* be landed until it is brought up to that standard.  It&apos;s as simple as that.

&gt; addressed one issue at a time.
&gt; 
&gt; in convenient bugreport-sized chunks.
&gt; 
&gt; it&apos;s not possible to issue bug-reports within bug-reports and, until
&gt; this code is landed, you will not receive my cooperation, time or energy
&gt; _unless_...
&gt; 
&gt; unless i am paid cash to do further work.
&gt; 
&gt; then i&apos;ll be _delighted_ to help, and will do as _many_ bite-sized
&gt; patches as it takes and is required.
&gt; 
&gt; no money - no work.  it&apos;s too much.  sorry.

Asking for payment before you will address review comments is completely inappropriate.  If you don&apos;t feel inclined to do the work unless someone pays you, that&apos;s fine, but please stop saying that we should bypass our review process for your pet patch.  A great number of developers contribute to the project, many without compensation, and every one of them follows the same process for refining their patches before they can be landed.  There&apos;s no requirement that you contribute to this project, and if you&apos;re unwilling to do so without payment then perhaps this project isn&apos;t for you.

In short, if you&apos;re not willing to address the issues that we&apos;ve raised about the patch to sufficient degree to get the patch landed, then at least refrain from taking the discussion in this bug even further off topic than it already is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95644</commentid>
    <comment_count>71</comment_count>
    <who name="Kevin Kubasik">kevin</who>
    <bug_when>2008-10-16 16:17:25 -0700</bug_when>
    <thetext>Ok, as someone who really does want to see this functionality exposed, let me propose the following. We can agree that a lot of work has gone into this patch, and it is a lot to ask that one person finish everything that needs to be done, and pro-bono none the less. 

I am not overly familiar with the patch, or the inner workings of webkit, however, I do know how to use an editor, and am more than willing to take care of the cosmetic issues (license headers, code formatting, file naming etc.) if someone else is willing to look at the more technical aspects that I&apos;m not as comfortable with. 

So how&apos;s about it? Are we willing to meet in the middle somewhere and get a _very_ cool feature into WebKit?

(In reply to comment #70)
&gt; (In reply to comment #69)
&gt; &gt; dear sam,
&gt; &gt; 
&gt; &gt; the work done is extensive, comprehensive, and is &quot;too much&quot; for &quot;the system&quot;
&gt; &gt; to cope with.  can i therefore recommend that, in order to make progress
&gt; &gt; manageable, that pride takes a back seat?
&gt; 
&gt; It&apos;s a matter of code quality.  If the code is not up to our usual standards
&gt; and it is landed anyway, it becomes an ongoing maintenance burden that *we* as
&gt; a project have to shoulder.
&gt; 
&gt; &gt; unless paid - cash - i will not be expending further effort to split this
&gt; &gt; patch down into (non-functional) &quot;bite-sizes&quot;.  you&apos;re paid _money_ to work
&gt; &gt; on this code - to ask me to effectively hand-hold you through understanding
&gt; &gt; of the functionality is demeaning to both of us.
&gt; 
&gt; You misunderstand what the review process is about.  It is about proactively
&gt; avoid bugs and bringing the quality of the code up to a reasonable standard. 
&gt; We are completely capable of reading and understanding the code.  It is because
&gt; we understand the code we&apos;ve been able to point out the many outstanding issues
&gt; in your patch.
&gt; 
&gt; &gt; regarding the outstanding issues: they are documented, here, post-review.
&gt; &gt; every issue requested to be addressed _is_ addressed.
&gt; 
&gt; That is simply not true.  The coding style still does not match our
&gt; well-documented guidelines.  Files are missing license headers, and are not
&gt; named according to our conventions.  The patch contains many instances of
&gt; commented-out code. The ref-counting of wrapped objects is incorrect.  There
&gt; are changes to IDL files which are simply wrong.  All of these issues have been
&gt; raised before.
&gt; 
&gt; &gt; that they cannot be conveniently found only serves to emphasis just how
&gt; &gt; important it is that this code _be_ landed, and the outstanding issues
&gt; &gt; addressed _after_ it has been landed.
&gt; 
&gt; As we have stated before, all patches must meet the minimum standard for review
&gt; before they are landed.  This patch is not yet at that standard, so it will
&gt; *not* be landed until it is brought up to that standard.  It&apos;s as simple as
&gt; that.
&gt; 
&gt; &gt; addressed one issue at a time.
&gt; &gt; 
&gt; &gt; in convenient bugreport-sized chunks.
&gt; &gt; 
&gt; &gt; it&apos;s not possible to issue bug-reports within bug-reports and, until
&gt; &gt; this code is landed, you will not receive my cooperation, time or energy
&gt; &gt; _unless_...
&gt; &gt; 
&gt; &gt; unless i am paid cash to do further work.
&gt; &gt; 
&gt; &gt; then i&apos;ll be _delighted_ to help, and will do as _many_ bite-sized
&gt; &gt; patches as it takes and is required.
&gt; &gt; 
&gt; &gt; no money - no work.  it&apos;s too much.  sorry.
&gt; 
&gt; Asking for payment before you will address review comments is completely
&gt; inappropriate.  If you don&apos;t feel inclined to do the work unless someone pays
&gt; you, that&apos;s fine, but please stop saying that we should bypass our review
&gt; process for your pet patch.  A great number of developers contribute to the
&gt; project, many without compensation, and every one of them follows the same
&gt; process for refining their patches before they can be landed.  There&apos;s no
&gt; requirement that you contribute to this project, and if you&apos;re unwilling to do
&gt; so without payment then perhaps this project isn&apos;t for you.
&gt; 
&gt; In short, if you&apos;re not willing to address the issues that we&apos;ve raised about
&gt; the patch to sufficient degree to get the patch landed, then at least refrain
&gt; from taking the discussion in this bug even further off topic than it already
&gt; is.
&gt; 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95647</commentid>
    <comment_count>72</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-16 16:21:37 -0700</bug_when>
    <thetext>(In reply to comment #71)
&gt; I am not overly familiar with the patch, or the inner workings of webkit,
&gt; however, I do know how to use an editor, and am more than willing to take care
&gt; of the cosmetic issues (license headers, code formatting, file naming etc.) if
&gt; someone else is willing to look at the more technical aspects that I&apos;m not as
&gt; comfortable with. 
&gt; 
&gt; So how&apos;s about it? Are we willing to meet in the middle somewhere and get a
&gt; _very_ cool feature into WebKit?

Sure, I&apos;d love to see the Gtk port gain this feature so it&apos;d be great if someone wanted to pick up the in-progress patch and polish it up for review.  Addressing the cosmetic issues may help get you familiar enough with the patch that you can work on the more technical aspects, and if you feel so inclined  you could discuss them with someone on IRC who could assist you with resolving the the issues.   Alternatively you could post the cleaned up patch back to this bug and let someone else tackle the remaining work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95650</commentid>
    <comment_count>73</comment_count>
    <who name="Kevin Kubasik">kevin</who>
    <bug_when>2008-10-16 16:27:46 -0700</bug_when>
    <thetext>That&apos;s great to hear! I&apos;ll probably be around on the IRC this evening or tomorrow afternoon as I try to clean things up. The coding standards are easy enough to see, and while I can probably guess the file naming conventions,any concrete documentation on that would be helpful. 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95710</commentid>
    <comment_count>74</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 00:16:21 -0700</bug_when>
    <thetext>kevin: GREAT.  (because even completing cosmetic changes, now, is too much time)

mark: if there were additional cosmetic changes, you should have said so
_three weeks_ ago.

i began the process of removing comments which indicated that future
work and investigation would be needed - and, to be honest, began to
get quite pissed off that i was being requested to do so.

there has been a hell of a lot done and there is still a hell of a lot
_to_ be done, and expecting code to &quot;look perfect&quot; - disallowing people
from being able to leave reminders to themselves and to others - doesn&apos;t
engender a particularly strong desire to continue with the work.

i don&apos;t have any pets.

i addressed cosmetic changes and other changes; explained why
issues that you raised _could_ not be addressed, asked you if
that was ok .... and have not received a response.

please re-read the comments, post-review in each case, and provide
additional advice or acceptance of the issues, so that we can
proceed.

i would be very surprised if you&apos;ve had any patches to webkit that
have totalled 200k and 7,000 lines.

it&apos;s therefore outside of everybody&apos;s comfort zone.

you&apos;re therefore going need to make some allowances and run by
a slightly different set of rules.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95712</commentid>
    <comment_count>75</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 00:22:06 -0700</bug_when>
    <thetext>&gt; of the cosmetic issues (license headers, code formatting, file naming etc.) if
&gt; someone else is willing to look at the more technical aspects that I&apos;m not as
&gt; comfortable with. 

 be delighted to act as backup.

 btw a bugtracker really *is* needed to be used - even just to address
 the review issues - one bug per issue, so they&apos;re not forgotten.
 (normally, a single bugreport is sufficient).

 </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95721</commentid>
    <comment_count>76</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-17 02:45:06 -0700</bug_when>
    <thetext>(In reply to comment #74)
&gt; i would be very surprised if you&apos;ve had any patches to webkit that
&gt; have totalled 200k and 7,000 lines.
&gt; 
&gt; it&apos;s therefore outside of everybody&apos;s comfort zone.
&gt; 
&gt; you&apos;re therefore going need to make some allowances and run by
&gt; a slightly different set of rules.

Luke, your condescending tone is getting tiresome.  I had been hoping after reading previous comments that it was purely miscommunication, but it&apos;s reached the point that it is clearly intentional. 

I&apos;ll try once more to help you to understand why our processes are they way they are, and why this patch does not get special treatment.

The matter of patch review and our standard for the quality of patches that we will land is not up for debate.  The size of the patch itself is not inherently a problem, as we have many regular contributors that rework large areas of code in patches larger than this.  The reviewers and regular contributors to WebKit are clearly able to comprehend changes to a large code base, after all they regularly work on a project containing over half a million lines of code.

The big difference between the patches that these developers contribute and your patch is that these developers are very familiar with how to contribute code to WebKit.  They have a deep understanding of the code that they are working with. They understand what quality is expected of the code that they write.  They contribute changes in chunks where it possible to do so.  They follow our coding style guidelines.  You&apos;re new to the project, and have not yet had a chance to learn how the project works, and how best to contribute, so it&apos;s understandable that your first patches may require a little iteration to be ready to be landed.

I understand that the review process can seem a little hostile and rough at first, that it can be easy to take review comments personally at times, and that it can be frustrating for someone to ask you to make further changes before accepting a contribution that you have expended a lot of effort on.  The goal is simply to ensure that issues with patches are addressed before they&apos;re landed, that the developer improves their skills, and learns how to contribute effectively to the project.  Smaller patches lead to quicker reviews with fewer comments that need to be addressed.  This accelerates the learning process for new developers, as they can quickly iterate on their initial patches to address reviewer feedback.  This quick iteration in turn leads to the contributor getting a feel for the process of submitting a patch to WebKit, and in my experience,  greatly improves the quality of their subsequent patches. 

We have found that asking developers to make a little extra effort up front pays off substantially in terms of the long-term health of the project, which can be seen by the incredible speed at which development on WebKit progresses.

If you&apos;re not willing to work within the same framework as all of the other contributors to WebKit then you will find it very hard to contribute to the project.  If you feel the need to debate this further, I feel that it would be better for everyone involved in the WebKit project if you were to simply walk away.





Let&apos;s please keep the discussion in this bug to technical issues about the patch from here on in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95728</commentid>
    <comment_count>77</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 04:37:24 -0700</bug_when>
    <thetext>(In reply to comment #76)
&gt; Luke, your condescending tone is getting tiresome.  I had been hoping after
&gt; reading previous comments that it was purely miscommunication, but it&apos;s reached
&gt; the point that it is clearly intentional. 

 it&apos;s nothing of the sort.

 i think ahead - a lot - and then i assume that people will be able to
 keep up, and fill in the gaps.
 
 so, i&apos;ve reached the conclusion - without necessarily explaining everything -
 that the most _convenient_ way forward is to relax some of the requirements,
 and to try a different approach.

 if you&apos;re unable or unwilling to try a different approach, and are unable
 to work out for yourself that a different approach will work, then i cannot
 be of further assistance to you, and will wait here patiently until you
 have exhausted all approaches (that i have already anticipated will be
 problematic and/or not work).

 


&gt; I&apos;ll try once more to help you to understand why our processes are they way
&gt; they are, and why this patch does not get special treatment.

 i understand the process.  i do not have an issue with the process.
 i respect the process.  i appreciate the process.  and, i have read every
 word, below, to ensure that i am not missing anything.
 

&gt; I understand that the review process can seem a little hostile and rough at
&gt; first, that it can be easy to take review comments personally at times,

 i have considerable experience with non-egoistic code development,
 so i am not taking it &quot;personally&quot;.

 what i _do_ have a problem with is when the ball is dropped.

 i&apos;ve answered every single one of the issues raised by review, and you
 haven&apos;t even _looked_ at my responses, to say either &quot;no, i insist&quot; or
 &quot;oh - i see, yes, we&apos;re not going to be able to deal with that&quot; or
 &quot;hmm, i see... well, we&apos;re going to let that one pass and we&apos;ll raise
  a separate bugreport about it, to make sure it&apos;s not forgotten&quot;.


 &gt; and
&gt; that it can be frustrating for someone to ask you to make further changes
&gt; before accepting a contribution that you have expended a lot of effort on.  

 i don&apos;t mind making changes that are non-disruptive to the functionality.
 simple things that make the work easier to maintain.

 i _do_ mind making changes that disrupt the contribution&apos;s future
 maintainability.  for example, removing reminders of issues that will at
 some point need to be addressed, or removing code that was copied from
 another location, which has justifiable reasons for being there, but
 because now it&apos;s being added for exactly the same reasons, somehow it&apos;s
 now not ok.

&gt; goal is simply to ensure that issues with patches are addressed before they&apos;re
&gt; landed, that the developer improves their skills, and learns how to contribute
&gt; effectively to the project.  Smaller patches lead to quicker reviews with fewer
&gt; comments that need to be addressed.  This accelerates the learning process for
&gt; new developers, as they can quickly iterate on their initial patches to address
&gt; reviewer feedback.  This quick iteration in turn leads to the contributor
&gt; getting a feel for the process of submitting a patch to WebKit, and in my
&gt; experience,  greatly improves the quality of their subsequent patches. 

 well, unfortunately, in this instance, the amount of work required to
 create &quot;working&quot; code - self-consistent and _useful_ code - was considerably
 higher than a &quot;single small&quot; patch.

 there _was_ no way to make a &quot;smaller patch&quot; and still provide
 &quot;useful and working functionality&quot;.

&gt; If you&apos;re not willing to work within the same framework as all of the other
&gt; contributors to WebKit then you will find it very hard to contribute to the
&gt; project.  If you feel the need to debate this further, I feel that it would be
&gt; better for everyone involved in the WebKit project if you were to simply walk
&gt; away.

 i already have.  if someone pays me money, i will be absolutely _delighted_
 to work within the framework as all of the other contributors to webkit.

 if someone does _not_ pay me money, and i work on this project further,
 working within the framework that all of the other contributors to webkit
 do, then i will end up bankrupt, on the streets, and unable to pay for
 food to put into my mouth.

 you can&apos;t ask me to do that.


 my gift to you is to provide working code that opens up webkit&apos;s reach in
 a really exciting way.

 if you are unable to appreciate or accept that gift, by asking that it be
 supplied in a specific way, by asking for _more_ from me - that&apos;s not really
 ok, is it?

 if you&apos;re willing to read my review-responses, and respond to them, we
 can move forward.

 if you&apos;re not, then i trust that you will work out all of the issues,
 yourself, and, when you re-encounter the issues i&apos;ve _already_ faced
 (and answered), i trust that you will find appropriate solutions and,
 if you can&apos;t, will have the good sense to ask my advice.



&gt; Let&apos;s please keep the discussion in this bug to technical issues about the
&gt; patch from here on in.


 great.

 good idea.

 now.

 have you read my comments and responses to the reviews?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95733</commentid>
    <comment_count>78</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2008-10-17 06:23:09 -0700</bug_when>
    <thetext>(In reply to comment #74)
&gt; i would be very surprised if you&apos;ve had any patches to webkit that
&gt; have totalled 200k and 7,000 lines.
&gt; 
&gt; it&apos;s therefore outside of everybody&apos;s comfort zone.
&gt; 
&gt; you&apos;re therefore going need to make some allowances and run by
&gt; a slightly different set of rules.

I, for one think your stance in this is becoming ridiculous. You&apos;re basically saying that, since you are not following a good process for writing the patch (which would be incrementally adding new work), that the WebKit project has to cope with it.

Notice that I, for one, am pretty frustrated myself about WebKit/GTK+, since it just seems to be stalled, and I have a 6-months-old patch which is nor landed nor replied to officially. That doesn&apos;t justify being unreasonable as you have been, in my opinion.
 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95734</commentid>
    <comment_count>79</comment_count>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2008-10-17 07:57:41 -0700</bug_when>
    <thetext>(In reply to comment #66)
&gt; (In reply to comment #65)
...
&gt; Please read back over the review comments I have left on a previous version of
&gt; the patch.  There are many issues which have not yet been addressed and which
&gt; need to be addressed before this can be landed.  In general though, this patch
&gt; is trying to do far too much at once which makes it very hard to get right
&gt; without going through many iterations, and it also makes it a lot of work to
&gt; review.  An initial cut at the bindings that supports a subset of the
&gt; functionality would be much quicker to clean up and get into a usable state,
&gt; and would make it simple for others to finish off the work in parallel.

I suppose you&apos;re referring here to comment #46. In order to concentrate
on technical issues, as you wisely suggest in a later comment, let me go
through the points you made there. I&apos;ll mark the issues as follows:

(A) Already addressed issue.
(O) Open, serious issue, which probably requires further work.
(E) Easy to fix, probably something Kevin can do in his current clean-up
job (by the way, thanks for the offer!)

&gt;From comment #46:

&gt; Can you please name the generated files with a format that matches our coding
&gt; style?  &quot;GdomBarInfo.h&quot; doesn&apos;t match our naming conventions, and should
&gt; probably be GDOMBarInfo.h.  If these files are to be part of the WebKit GTK API
&gt; then they should match the GTK naming convention, which I believe does not use
&gt; upper-case letters at all.  Alp may be able to provide suggestions about what
&gt; the right naming scheme is here.

(E) As far as I see, generated files are still being named using the
Gdom prefix instead of GDOM, which is inconsistent with the convention
used for the JavaScript files (they use &quot;JS&quot; not &quot;Js&quot; as prefix). This
must be corrected.

(E) This is also a problem for identifiers in general: they sometimes
start with GDOM and sometimes with Gdom. I propose to use GDOM
consistently. This would probably also imply renaming GdomDOMObject to
GDOMObject, because GDOMDOMObject would look sort of funny.

&gt; The changes in FrameLoaderClientGtk.cpp look bogus.  Why are they in this
&gt; patch?

(O) As Luke states in comment #48, these changes were needed for the
patch to run at all (he didn&apos;t receive any answer to that, by the way).
The way it looks, there seems to be a refcounting problem somewhere,
either introduced, or exposed by the patch. Unfortunately, I&apos;m too much
of a WebKit novice to be able to debug this.

&gt; Why does GDOMObject.h have a commented out &apos;namespace WebCore&apos;?  Why does it
&gt; have a function named get_gobj_type which doesn&apos;t match our naming conventions?

(A) No commented out namespace anymore. The function was renamed to
getGobjType, so this was addressed.

&gt; The includes in webkitwebframe.cpp should be sorted per our style conventions. 
&gt; They also shouldn&apos;t have the &quot;gdom/&quot; prefix.  The private header files should
&gt; be have Private as a suffix to match the convention used elsewhere in the
&gt; project (PrivateGdomDOMWindow.h -&gt; GDOMWindowPrivate.h).  It&apos;s not clear to me
&gt; why some of the files have &quot;Int&quot; in their name.  Is that short for &quot;Internal&quot;? 
&gt; If so, the file should use that as a suffix in place of Private, such as
&gt; GDOMWindowInternal.h.

(A) Includes are now sorted, and &quot;Internal&quot; and &quot;Private&quot; are being used
as stated. This part was addressed.

(E) I still see quite a few includes with a gdom/ prefix, though. This
must be fixed.

&gt; There are commented-out printf&apos;s in webkitwebevent.cpp which shouldn&apos;t be
&gt; there.

(E) There are still three commented print statements in the patch. 

&gt; PrivateIntGdomEventTargetNode.h lacks a license header, and the Apple Inc.
&gt; copyright line lacks the &quot;All rights reserved.&quot; note that should be present. 
&gt; The file also uses strange formatting for the include guard.  Please see
&gt; existing code for an example of the style that should be used.

(E) This wasn&apos;t addressed at all. Also, there are more instances where
the Apple copyright lacks the &quot;all rights reserved&quot; sentence.

&gt; The code in GStringConvert.h lacks a license header.  I&apos;m not sure what the
&gt; point of the GStringConvert class is.  It seems like it could easily be
&gt; implemented using a simple overloaded function rather than the strange class +
&gt; macro combination.  The &quot;extern C&quot; around a C++ class doesn&apos;t make a lot of
&gt; sense either.  The header includes in this file also need sorted.

(A) GStringConvert is now a set of overloaded functions. This being the
case, (E) the name shouldn&apos;t be capitalized, though. There is now a
license header.

&gt; Do the values for FEATURE_DEFINES_GDOM and FEATURE_DEFINES_JAVASCRIPT ever
&gt; differ?  If not, is there any point in having both?

(O) I cannot address this so easily.

&gt; GDOMHTMLElementWrapperFactory.cpp says that &quot;THIS FILE IS DERIVED FROM AN
&gt; AUTOMATICALLY GENERATED FILE.&quot;  what file is it derived from, and why is it
&gt; being checked in if it is a generated file?

This file now contains a yelling comment stating that

+ * THIS FILE IS DERIVED BY HAND FROM AN AUTOMATICALLY GENERATED FILE.
+ * IT IS NOT AN AUTO-GENERATED FILE IT WAS CREATED MANUALLY *FROM*
+ * AN AUTO-GENERATED FILE.

(E) We probably should restate this comment to make it more friendly.
(O) Also, even if the file can probably be generated, would people agree
with keeping it in the current for for the time being before we can
write a generator?

&gt; GDOMBinding.cpp has some FIXME&apos;s, TODO&apos;s and a lot of commented-out code that
&gt; should be cleaned up before this can be landed.

(E) This seems to still be the case. Luke has stated elsewhere that he
wants all of these comments and pieces of dead code as reminders, but we
probably have to remove them in order for the patch to be accepted.

By the way, are TODO or FIXME remarks completely banned from WebKit? Are
they acceptable in any form? I can&apos;t find any project documentation
covering this point.

&gt; Some of the IDL file changes do not look correct.  I would think that the
&gt; GObject bindings would want to match the behaviour of the Obj-C DOM bindings
&gt; rather than JS in the cases that they differ.  Many of these instances are due
&gt; to behavioral peculiarities of JS, especially attributes such as
&gt; ConvertNullToNullString and toString functions.

(O) Luke has answered to this issue in a number of further comments, but
I don&apos;t see any replies to them. A good deal of communication seems to
have happened outside of Bugzilla, so it is hard for me to determine the
status of this issue.


So, provided Kevin manages to get rid of the &quot;easy&quot; problems, four large
issues remain:

1. Refcounting problems.
2. Equivalence of FEATURE_DEFINES_GDOM and FEATURE_DEFINES_JAVASCRIPT.
3. Keeping GDOMHTMLElementWrapperFactory.cpp as a manually edited file.
4. Changes to the IDL files.

Any additional problems I&apos;m missing? Could people please post their
thoughts on the open issues so that we can make some progress? I&apos;ll try
to look into issue 4 and see if I can understand what&apos;s going on, but
cannot promise anything for the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95737</commentid>
    <comment_count>80</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 09:22:29 -0700</bug_when>
    <thetext>&gt; I suppose you&apos;re referring here to comment #46. In order to concentrate
&gt; on technical issues, as you wisely suggest in a later comment, let me go
&gt; through the points you made there. I&apos;ll mark the issues as follows:

 yaay!  thank you!
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95741</commentid>
    <comment_count>81</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 09:29:48 -0700</bug_when>
    <thetext>comments #48, #49, #50, #51 and #52 answer review issues, raise queries
regarding review issues and/or provide justifications as to why review
issues _cannot_ be addressed.

mark, please kindly respond to the comments in #48 to #52.  thank you.

[please be aware: unfortunately, sufficient time has elapsed since the code
 was written, such that i am unable, without considerable effort, to provide
 effortless and timely answers, should there be any queries regarding my
 responses in #48 to #52.  however, i will do my best to answer, as long as
 it does not take up significant time].

l.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95748</commentid>
    <comment_count>82</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 09:41:48 -0700</bug_when>
    <thetext>&gt; (O) As Luke states in comment #48, these changes were needed for the
&gt; patch to run at all (he didn&apos;t receive any answer to that, by the way).

 yes, i didn&apos;t.  (that is the key reason why i was annoyed)

&gt; The way it looks, there seems to be a refcounting problem somewhere,
&gt; either introduced, or exposed by the patch.

 well, if i remove the code from GDOMBinding.cpp which is designed to
 help debug refcounting problems, we can&apos;t FIND OUT, CAN WE!!!

 :)

 and yes, at the request of the reviewers, i have been forced to remove it,
 because it had &quot;#ifdef 0&quot; around it.

 explanations in the code from which it was cut-and-paste - from JSBindings -
 state that the code is [even #ifdef&apos;d out there] necessary to check for
 refcounting errors.

 leaving that aside:

 i am reasonably confident that, having used RefPtr in the right places,
 and having done ref increasing in the constructors, and ref decreasing
 in the destructors, i am reasonably confident that there are not any
 refcount errors.

 certainly, the code can be utilised for exceptionally large and
 complex applications for prolonged periods of time, and
 &quot;nothing bad happens&quot;, leading me to conclude, empirically, that at least
 there are no _zero_ referencing errors or _negative_ referencing errors.

 whether there are any &quot;over&quot; referenced errors, resulting in memory leaks,
 will need some investigation.

 
 i forget, unfortunately, how and where the refcounting is increased and
 decreased.  certainly, the code to do both is auto-generated by the gobject
 bindings perl module, so you will need to run it and then look in
 ....

 damn i&apos;ve even forgotten the name of the directory where the generated
 sources go.



</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95768</commentid>
    <comment_count>83</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-17 13:50:37 -0700</bug_when>
    <thetext>(In reply to comment #79)
&gt; I suppose you&apos;re referring here to comment #46. In order to concentrate
&gt; on technical issues, as you wisely suggest in a later comment, let me go
&gt; through the points you made there.

Thanks for taking the time to summarise this.

&gt; &gt; The changes in FrameLoaderClientGtk.cpp look bogus.  Why are they in this
&gt; &gt; patch?
&gt; 
&gt; (O) As Luke states in comment #48, these changes were needed for the
&gt; patch to run at all (he didn&apos;t receive any answer to that, by the way).
&gt; The way it looks, there seems to be a refcounting problem somewhere,
&gt; either introduced, or exposed by the patch. Unfortunately, I&apos;m too much
&gt; of a WebKit novice to be able to debug this.

It looks as though this is an attempt to work around an issue tracked by bug 20403.  The correct solution here is probably to finish off the fix for bug 20403 and remove this code from FrameLoaderClientGtk.cpp.

&gt; 
&gt; &gt; Why does GDOMObject.h have a commented out &apos;namespace WebCore&apos;?  Why does it
&gt; &gt; have a function named get_gobj_type which doesn&apos;t match our naming conventions?
&gt; 
&gt; (A) No commented out namespace anymore. The function was renamed to
&gt; getGobjType, so this was addressed.

Minor issue: getGobjType doesn&apos;t follow the naming conventions outlined in the coding style guidelines, due to the same capitalization inconsistency that &quot;Gdom&quot; has in some places in this patch.

&gt; &gt; Do the values for FEATURE_DEFINES_GDOM and FEATURE_DEFINES_JAVASCRIPT ever
&gt; &gt; differ?  If not, is there any point in having both?
&gt; 
&gt; (O) I cannot address this so easily.

The reason that I asked this is that the Mac port uses the same variable in its Makefile (WebCore/DerivedSources.make) for the defines of both JS and Obj-C bindings.  It should be easy to unify them for GDOM too.  Is the only difference that at the moment the GDOM binding lacks SVG support?  At the very least this shouldn&apos;t require duplication of assignments for each possible feature define.  The common values could be assigned to a FEATURE_DEFINES variable, with FEATURE_DEFINES_JAVASCRIPT taking its value and adding LANGUAGE_JAVASCRIPT, ENABLE_SVG, etc, and FEATURE_DEFINES_GDOM only adding LANGUAGE_GDOM.  Another alternative would be to have FEATURE_DEFINES include all features that are enabled, and FEATURE_DEFINES_GDOM be the result of stripping out any values that mention SVG from the FEATURE_DEFINES variable.

&gt; 
&gt; &gt; GDOMHTMLElementWrapperFactory.cpp says that &quot;THIS FILE IS DERIVED FROM AN
&gt; &gt; AUTOMATICALLY GENERATED FILE.&quot;  what file is it derived from, and why is it
&gt; &gt; being checked in if it is a generated file?
&gt; 
&gt; This file now contains a yelling comment stating that
&gt; 
&gt; + * THIS FILE IS DERIVED BY HAND FROM AN AUTOMATICALLY GENERATED FILE.
&gt; + * IT IS NOT AN AUTO-GENERATED FILE IT WAS CREATED MANUALLY *FROM*
&gt; + * AN AUTO-GENERATED FILE.
&gt; 
&gt; (E) We probably should restate this comment to make it more friendly.

The comment could be as simple as:
  // FIXME: This file should be auto-generated in the future &lt;https://bugs.webkit.org/show_bug.cgi?id=some-bug-number&gt;.

It should be moved below the license header though.

&gt; (O) Also, even if the file can probably be generated, would people agree
&gt; with keeping it in the current for for the time being before we can
&gt; write a generator?

It would definitely be preferable to generate this automatically, but it&apos;s not clear what the right way to do this would be at this point.  The Obj-C binding currently has this hard-coded, so that seems fine as a first step for this patch.

&gt; &gt; GDOMBinding.cpp has some FIXME&apos;s, TODO&apos;s and a lot of commented-out code that
&gt; &gt; should be cleaned up before this can be landed.
&gt; 
&gt; (E) This seems to still be the case. Luke has stated elsewhere that he
&gt; wants all of these comments and pieces of dead code as reminders, but we
&gt; probably have to remove them in order for the patch to be accepted.
&gt; 
&gt; By the way, are TODO or FIXME remarks completely banned from WebKit? Are
&gt; they acceptable in any form? I can&apos;t find any project documentation
&gt; covering this point.

A grep through WebCore will show that we have numerous FIXMEs in the code.  The typical form of the FIXME in our code is like what I suggested above: a short description of the issue that needs to be addressed, and a link to a bug about addressing that issue in the future.  FIXMEs are not an excuse to leave commented-out code in the tree.  New code should follow the consistent style I have mentioned, rather than a mismatch of styles such as the following:

 153 #if 0 /* XXX TODO - see #20586 */

 463             return NULL; /* TODO - see #20586 */

 513         return NULL; /* XXX hmmm... */

 29 /* TODO: make a GdomEventListener class, to be returned here */

 3412 #FEATURE_DEFINES_GDOM += ENABLE_SVG_USE=1 # big TODO!

&gt; &gt; Some of the IDL file changes do not look correct.  I would think that the
&gt; &gt; GObject bindings would want to match the behaviour of the Obj-C DOM bindings
&gt; &gt; rather than JS in the cases that they differ.  Many of these instances are due
&gt; &gt; to behavioral peculiarities of JS, especially attributes such as
&gt; &gt; ConvertNullToNullString and toString functions.
&gt; 
&gt; (O) Luke has answered to this issue in a number of further comments, but
&gt; I don&apos;t see any replies to them. A good deal of communication seems to
&gt; have happened outside of Bugzilla, so it is hard for me to determine the
&gt; status of this issue.

I do recall discussing this with him on IRC.  I&apos;ll look back over his comments shortly and add my thoughts to this bug. 

&gt; So, provided Kevin manages to get rid of the &quot;easy&quot; problems, four large
&gt; issues remain:
&gt; 
&gt; 1. Refcounting problems.

There are two issues here: the ref-counting problems tracked in bug 20403, which sound as though they need to be addressed before these bindings will function without crashing, and the ref-counting problems within the patch itself.

&gt; 2. Equivalence of FEATURE_DEFINES_GDOM and FEATURE_DEFINES_JAVASCRIPT.

I don&apos;t think this is a large issue that would be especially difficult to address.

&gt; 3. Keeping GDOMHTMLElementWrapperFactory.cpp as a manually edited file.

Nor this.

&gt; 4. Changes to the IDL files.
&gt; 
&gt; Any additional problems I&apos;m missing? Could people please post their
&gt; thoughts on the open issues so that we can make some progress? I&apos;ll try
&gt; to look into issue 4 and see if I can understand what&apos;s going on, but
&gt; cannot promise anything for the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95773</commentid>
    <comment_count>84</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-17 14:13:02 -0700</bug_when>
    <thetext>(In reply to comment #82)
&gt; &gt; The way it looks, there seems to be a refcounting problem somewhere,
&gt; &gt; either introduced, or exposed by the patch.
&gt; 
&gt;  well, if i remove the code from GDOMBinding.cpp which is designed to
&gt;  help debug refcounting problems, we can&apos;t FIND OUT, CAN WE!!!

&gt;  and yes, at the request of the reviewers, i have been forced to remove it,
&gt;  because it had &quot;#ifdef 0&quot; around it.
&gt; 
&gt;  explanations in the code from which it was cut-and-paste - from JSBindings -
&gt;  state that the code is [even #ifdef&apos;d out there] necessary to check for
&gt;  refcounting errors.

The equivalent code in JSDOMBindings.cpp is not wrapped in #if 0.  It is code that is compiled in and actively used.  For this code to be useful in the GDOM bindings it too needs to be actively used.  Having it #if&apos;d out does not accomplish that.  It should either be left in and actively used, or removed and replaced with a FIXME about adding such functionality in the future.

&gt;  i am reasonably confident that, having used RefPtr in the right places,
&gt;  and having done ref increasing in the constructors, and ref decreasing
&gt;  in the destructors, i am reasonably confident that there are not any
&gt;  refcount errors.

I&apos;ve not looked at code generated by the bindings script, but from inspection of the script itself and the hand-written code I can see several errors.

 678         push(@cBody, &quot;    m_impl.get()-&gt;deref();\n&quot;);

Explicitly calling deref() on a reference held in a RefPtr is a sure sign that ref-counting is being handled incorrectly.  A RefPtr will automatically call deref() when it is destroyed, so by calling deref explicitly you&apos;re decrementing the ref-count on this object twice.

I don&apos;t think the generated bindings code should be calling ref() or deref() explicitly at all.  Managing the lifetimes of the wrapped objects via a RefPtr is almost certainly sufficient.

The manual calls to ref() and deref() in GDOMBinding.cpp also hint at ref-counting being handled incorrectly, and perhaps indicate why you believed it was necessary to deref() from within the generated code.

 506     text-&gt;document()-&gt;ref(); 

If a manual ref() were required here, which it&apos;s not, ref&apos;ing the document is definitely not correct here.


There is some documentation at &lt;http://webkit.org/coding/RefPtr.html&gt; on how to use RefPtr and PassRefPtr to efficiently handle our reference counted objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95778</commentid>
    <comment_count>85</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-17 14:42:07 -0700</bug_when>
    <thetext>(In reply to comment #50)
&gt; --- WebCore/html/HTMLEmbedElement.idl   (revision 36459)
&gt; +++ WebCore/html/HTMLEmbedElement.idl   (working copy)
&gt; @@ -30,7 +30,7 @@
&gt;          ImplementationUUID=93e0407a-8380-4ff0-978d-f773f2dee6a3
&gt;      ] HTMLEmbedElement : HTMLElement {
&gt;                   attribute [ConvertNullToNullString] DOMString align;
&gt; -#if defined(LANGUAGE_JAVASCRIPT)
&gt; +#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
&gt;                   attribute [ConvertNullToNullString] DOMString height;
&gt;  #else
&gt;                   attribute [ConvertFromString] long height;
&gt; @@ -38,7 +38,7 @@
&gt;                   attribute [ConvertNullToNullString] DOMString name;
&gt;                   attribute [ConvertNullToNullString] DOMString src;
&gt;                   attribute [ConvertNullToNullString] DOMString type;
&gt; -#if defined(LANGUAGE_JAVASCRIPT)
&gt; +#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
&gt;                   attribute [ConvertNullToNullString] DOMString width;
&gt;  #else
&gt;                   attribute [ConvertFromString] long width;
&gt; 
&gt; 
&gt; 
&gt; exact same functionality as javascript is required.  an int width
&gt; and an int height is of absolutely no use.
&gt; 
&gt; pyjamas-desktop needs to be able to set width and height to what
&gt; _javascript_ does - not objectiveC.
&gt; 
&gt; i.e. &quot;100%&quot;.  &quot;10em&quot;.  &quot;20px&quot;.

The width and height properties of the DOM specification are defined as being longs, so that is what they should be exposed to all bindings as.  JavaScript is a special case as there is the requirement for compatibility with the millions of real-world web pages that were coded to the initial implementations of the DOM in browsers that did not adhere to the spec.

It&apos;s worth noting that setting the .width or .height properties of a HTMLEmbedElement to &quot;10em&quot;, &quot;10en&quot;, or any other value followed by a CSS unit is unlikely to do what you think.

&gt; the integer-only parameters are no use to anyone wishing to maintain
&gt; line-for-line javascript equivalent functionality, which is what
&gt; pyjamas-desktop is about: ripping out the javascript and replacing it with
&gt; exact-equivalent code, written in python instead of javascript.

That may be what your project is about, but it&apos;s not what DOM bindings in WebKit are about.  DOM bindings are about exposing the standard WebKit DOM to client applications, not about exposing JavaScript&apos;s somewhat warped interpretation of the DOM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95780</commentid>
    <comment_count>86</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-17 14:44:05 -0700</bug_when>
    <thetext>(In reply to comment #52)
&gt; --- WebCore/page/DOMWindow.idl  (revision 36459)
&gt; +++ WebCore/page/DOMWindow.idl  (working copy)
&gt; @@ -155,7 +155,7 @@
&gt;          [DoNotCheckDomainSecurity, Custom] void postMessage(in DOMString
&gt; message, in DOMString targetOrigin)
&gt;              raises(DOMException);
&gt; 
&gt; -#if defined(LANGUAGE_JAVASCRIPT)
&gt; +#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
&gt;          // Global constructors
&gt;          attribute StyleSheetConstructor StyleSheet;
&gt;          attribute CSSStyleSheetConstructor CSSStyleSheet;
&gt; 
&gt; i&apos;ve added this in as a reminder that, at some point _in the future_,
&gt; the gobject auto-generator code will need to auto-generate &quot;constructors&quot;.
&gt; i believe this was part of the problem i had in doing creation of a
&gt; document - not having some of these functions.
&gt; 
&gt; although it will be straightforward to add constructors, i&apos;m not doing
&gt; it for this patch.

Constructors are JavaScript language concept.  They&apos;re not something that other bindings need to worry about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95784</commentid>
    <comment_count>87</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-17 14:53:01 -0700</bug_when>
    <thetext> #if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
        [DontEnum] DOMString toString();
 #endif

toString() is also a JavaScript language concept that other bindings need to worry about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95792</commentid>
    <comment_count>88</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 16:09:36 -0700</bug_when>
    <thetext>(In reply to comment #87)
&gt;  #if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
&gt;         [DontEnum] DOMString toString();
&gt;  #endif
&gt; 
&gt; toString() is also a JavaScript language concept that other bindings need to
&gt; worry about.

 i do keep explaining - but it&apos;s been a while so i will explain it again: javascript is the language that i am targetting as providing _direct_ one-for-one, concept-for-concept, function-for-function, class-for-class, attribute-for-attribute equivalence (as closely as possible).

 this approach allows developers who are _expecting_ to see javascript, _understand_ javascript and program regularly in javascript to _not_ get any nasty surprises when they are presented with the glib bindings, and other language bindings to those.

 the same thing goes for the &quot;constructors&quot; (if i can get my head round why they&apos;re used).

 the same thing also goes for the suggestion that you made that i should provide only &quot;integer&quot; input to setWidth() and other functions, because that&apos;s what ObjC does.

 the answer&apos;s &quot;no - absolutely not&quot;.  people who expect to pass in &quot;3em&quot;, &quot;10px&quot;, &quot;50%&quot; will get a nasty shock.

 and yes, i really really _do_ need toString() because it&apos;s actually _used_ in the pyjamas-desktop DOM.py module.

 remember, i&apos;m translating the javascript (by hand, unfortunately) in pyjamas into DIRECT and IDENTICAL function calls (in python) that end up calling the webkit-glib bindings.

 if i get *any* discrepancies (such as not having toString), then all of a sudden i&apos;m screwed, because there&apos;s a difference between the pyjamas code (javascript compiler) and the pyjamas-desktop code (webkit-based).

 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95797</commentid>
    <comment_count>89</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 16:37:17 -0700</bug_when>
    <thetext>&gt; &gt; (O) As Luke states in comment #48, these changes were needed for the
&gt; &gt; patch to run at all (he didn&apos;t receive any answer to that, by the way).
&gt; &gt; The way it looks, there seems to be a refcounting problem somewhere,
&gt; &gt; either introduced, or exposed by the patch. Unfortunately, I&apos;m too much
&gt; &gt; of a WebKit novice to be able to debug this.
&gt; 
&gt; It looks as though this is an attempt to work around an issue tracked by bug
&gt; 20403.  The correct solution here is probably to finish off the fix for bug
&gt; 20403 and remove this code from FrameLoaderClientGtk.cpp.

 #20403 is done.  solved. [but has been languishing for some weeks, even though it&apos;s been noted as &quot;the correct solution&quot;]

the hack-attempt has already been removed.  the last-updated patch _should_ reflect that.  apologies if it&apos;s still included.  let&apos;s hope people aren&apos;t working on out-of-date patches (!)


&gt; &gt; 
&gt; &gt; &gt; Why does GDOMObject.h have a commented out &apos;namespace WebCore&apos;?  Why does it
&gt; &gt; &gt; have a function named get_gobj_type which doesn&apos;t match our naming conventions?
&gt; &gt; 
&gt; &gt; (A) No commented out namespace anymore. The function was renamed to
&gt; &gt; getGobjType, so this was addressed.
&gt; 
&gt; Minor issue: getGobjType doesn&apos;t follow the naming conventions outlined in the
&gt; coding style guidelines, due to the same capitalization inconsistency that
&gt; &quot;Gdom&quot; has in some places in this patch.

 i&apos;ve read the guidelines - i don&apos;t understand what i&apos;m missing.

 btw i started off with GDOM as the prefix and it blew up the pygtk auto-generator.  i posted a bugreport about that and they said that there was absolutely zero intention of fixing pygtk&apos;s codegen.py.

 so, you _can_ go and replace Gdom with GDOM, and it will screw things up for people, further down the line.


&gt; &gt; &gt; Do the values for FEATURE_DEFINES_GDOM and FEATURE_DEFINES_JAVASCRIPT ever
&gt; &gt; &gt; differ?  If not, is there any point in having both?
&gt; &gt; 
&gt; &gt; (O) I cannot address this so easily.
&gt; 
&gt; The reason that I asked this is that the Mac port uses the same variable in its
&gt; Makefile (WebCore/DerivedSources.make) for the defines of both JS and Obj-C
&gt; bindings.  It should be easy to unify them for GDOM too.  Is the only
&gt; difference that at the moment the GDOM binding lacks SVG support?

 pretty much.

&gt;  At the very
&gt; least this shouldn&apos;t require duplication of assignments for each possible
&gt; feature define.  The common values could be assigned to a FEATURE_DEFINES
&gt; variable, with FEATURE_DEFINES_JAVASCRIPT taking its value and adding
&gt; LANGUAGE_JAVASCRIPT, ENABLE_SVG, etc, and FEATURE_DEFINES_GDOM only adding
&gt; LANGUAGE_GDOM.  Another alternative would be to have FEATURE_DEFINES include
&gt; all features that are enabled, and FEATURE_DEFINES_GDOM be the result of
&gt; stripping out any values that mention SVG from the FEATURE_DEFINES variable.

 i _may_ be wrong about this:

 i wouldn&apos;t recommend that _at the moment_, because the person who will be expected to create the SVG bindings in the future may choose to implement a _small_ subset of the SVG bindings, to begin with.

 if the above paragraph translates into &quot;when someone comes to adding SVG bindings, then they will either have to implement them all or not at all&quot;, then it should be clear as to why that is undesirable.


 
&gt; &gt; 
&gt; &gt; &gt; GDOMHTMLElementWrapperFactory.cpp says that &quot;THIS FILE IS DERIVED FROM AN
&gt; &gt; &gt; AUTOMATICALLY GENERATED FILE.&quot;  what file is it derived from, and why is it
&gt; &gt; &gt; being checked in if it is a generated file?
&gt; &gt; 
&gt; &gt; This file now contains a yelling comment stating that
&gt; &gt; 
&gt; &gt; + * THIS FILE IS DERIVED BY HAND FROM AN AUTOMATICALLY GENERATED FILE.
&gt; &gt; + * IT IS NOT AN AUTO-GENERATED FILE IT WAS CREATED MANUALLY *FROM*
&gt; &gt; + * AN AUTO-GENERATED FILE.
&gt; &gt; 
&gt; &gt; (E) We probably should restate this comment to make it more friendly.
&gt; 
&gt; The comment could be as simple as:
&gt;   // FIXME: This file should be auto-generated in the future
&gt; &lt;https://bugs.webkit.org/show_bug.cgi?id=some-bug-number&gt;.

 yaay.
 
&gt; It should be moved below the license header though.
&gt; 
&gt; &gt; (O) Also, even if the file can probably be generated, would people agree
&gt; &gt; with keeping it in the current for for the time being before we can
&gt; &gt; write a generator?
&gt; 
&gt; It would definitely be preferable to generate this automatically, but it&apos;s not
&gt; clear what the right way to do this would be at this point.  The Obj-C binding
&gt; currently has this hard-coded, so that seems fine as a first step for this
&gt; patch.

 yaay!  (whew)
 
&gt; &gt; &gt; GDOMBinding.cpp has some FIXME&apos;s, TODO&apos;s and a lot of commented-out code that
&gt; &gt; &gt; should be cleaned up before this can be landed.
&gt; &gt; 
&gt; &gt; (E) This seems to still be the case. Luke has stated elsewhere that he
&gt; &gt; wants all of these comments and pieces of dead code as reminders, but we
&gt; &gt; probably have to remove them in order for the patch to be accepted.
&gt; &gt; 
&gt; &gt; By the way, are TODO or FIXME remarks completely banned from WebKit? Are
&gt; &gt; they acceptable in any form? I can&apos;t find any project documentation
&gt; &gt; covering this point.
&gt; 
&gt; A grep through WebCore will show that we have numerous FIXMEs in the code.  The
&gt; typical form of the FIXME in our code is like what I suggested above: a short
&gt; description of the issue that needs to be addressed, and a link to a bug about
&gt; addressing that issue in the future.  FIXMEs are not an excuse to leave
&gt; commented-out code in the tree.  New code should follow the consistent style I
&gt; have mentioned, rather than a mismatch of styles such as the following:
&gt; 
&gt;  153 #if 0 /* XXX TODO - see #20586 */
&gt; 
&gt;  463             return NULL; /* TODO - see #20586 */
&gt; 
&gt;  513         return NULL; /* XXX hmmm... */
&gt; 
&gt;  29 /* TODO: make a GdomEventListener class, to be returned here */
&gt; 
&gt;  3412 #FEATURE_DEFINES_GDOM += ENABLE_SVG_USE=1 # big TODO!

 whoops :)

&gt; &gt; &gt; Some of the IDL file changes do not look correct.  I would think that the
&gt; &gt; &gt; GObject bindings would want to match the behaviour of the Obj-C DOM bindings

 no.  definitely not.  i had to re-activate ... i think it was... XMLHTTPRequest.open(String) because i couldn&apos;t find a way to create a Text Document (there was no global constructor for one, and i hadn&apos;t put in the equivalent of the &quot;Global Attributes&quot; in _order_ to make one).

 simplest solution: pass in a text string rather than a WebCore::(Text)Document.

 so on a case-by-case basis, there are _going_ to be differences, and at no time - as of yet - have i found that i needed to copy the ObjC bindings behaviour (IDL-wise), but have, in each case, found that the JS bindings are a better fit.

 of course, that may change: each case has its own set of issues to work around.



&gt; &gt; &gt; rather than JS in the cases that they differ.  Many of these instances are due
&gt; &gt; &gt; to behavioral peculiarities of JS, especially attributes such as
&gt; &gt; &gt; ConvertNullToNullString and toString functions.

 ConvertNullToNullString: agreed.  (well, i haven&apos;t used it, and pyjamas-desktop hasn&apos;t blown up.  so i don&apos;t need it).

 toString: disagree.  _definitely_ need this one.

&gt; &gt; (O) Luke has answered to this issue in a number of further comments, but
&gt; &gt; I don&apos;t see any replies to them. A good deal of communication seems to
&gt; &gt; have happened outside of Bugzilla, so it is hard for me to determine the
&gt; &gt; status of this issue.
&gt; 
&gt; I do recall discussing this with him on IRC.  I&apos;ll look back over his comments
&gt; shortly and add my thoughts to this bug. 
&gt; 
&gt; &gt; So, provided Kevin manages to get rid of the &quot;easy&quot; problems, four large
&gt; &gt; issues remain:
&gt; &gt; 
&gt; &gt; 1. Refcounting problems.
&gt; 
&gt; There are two issues here: the ref-counting problems tracked in bug 20403,
&gt; which sound as though they need to be addressed before these bindings will
&gt; function without crashing,

 no.

 1) the crashes caused by #20403 have been demonstrated and proven to have absolutely nothing to do with the bindings.  at all.  nothing.

 2) #20403 has been solved.

&gt; and the ref-counting problems within the patch
&gt; itself.

 there have been _no_ ref-counting problems encountered. see earlier comment:
 i would be utterly shocked if there were &quot;negative&quot; refcounting bugs,
 because of the amount of time i&apos;ve spent running pyjamas-desktop apps.

 without crashes of any kind (esp. since i patched in the solution #20403)

 i would equally be surprised if there were memory leaks, but you can clearly
 see, if you examine an auto-generated file, that each and every &quot;add ref&quot;
 is matched by a corresponding &quot;dec ref&quot;.

 so, although it&apos;s not _proven_, with test code, this &quot;refcounting problem&quot;
 sounds much like an imaginary invention - a bogeyman in the closet :)



&gt; &gt; 2. Equivalence of FEATURE_DEFINES_GDOM and FEATURE_DEFINES_JAVASCRIPT.
&gt; 
&gt; I don&apos;t think this is a large issue that would be especially difficult to
&gt; address.
&gt; 
&gt; &gt; 3. Keeping GDOMHTMLElementWrapperFactory.cpp as a manually edited file.
&gt; 
&gt; Nor this.

 whew.  small project for someone, at some point.  i&apos;d recommend that
 the auto-generation be done at around the same time that DOMExceptions
 are re-added to the rest of the code.

 re-adding in the DOMExceptions (that i ripped out, so as to get a first
 version), would be an utter pain to do manually.

 much better to auto-generate a replacement for DOMHTMLElementWrapperFactory.cpp

 btw - this _should_ be raised as a separate bugreport.

&gt; &gt; 4. Changes to the IDL files.
&gt; &gt; 
&gt; &gt; Any additional problems I&apos;m missing? Could people please post their
&gt; &gt; thoughts on the open issues so that we can make some progress? I&apos;ll try
&gt; &gt; to look into issue 4 and see if I can understand what&apos;s going on, but
&gt; &gt; cannot promise anything for the moment.

 i wouldn&apos;t make the differences without very good reasons and justification.

 XMLHTTPRequest open(String) is a good starting point: it&apos;s simply too much additional work to provide the functionality of TextDocument, when just enabling the use of open(String) instead of open(TextDocument) will do just as well, if not better.

 each of the differences is pretty obvious and straightforward, and i believe i&apos;ve answered and explained them all.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95801</commentid>
    <comment_count>90</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 16:52:51 -0700</bug_when>
    <thetext>(In reply to comment #85)
&gt; (In reply to comment #50)
&gt; &gt; --- WebCore/html/HTMLEmbedElement.idl   (revision 36459)
&gt; &gt; +++ WebCore/html/HTMLEmbedElement.idl   (working copy)
&gt; &gt; @@ -30,7 +30,7 @@
&gt; &gt;          ImplementationUUID=93e0407a-8380-4ff0-978d-f773f2dee6a3
&gt; &gt;      ] HTMLEmbedElement : HTMLElement {
&gt; &gt;                   attribute [ConvertNullToNullString] DOMString align;
&gt; &gt; -#if defined(LANGUAGE_JAVASCRIPT)
&gt; &gt; +#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
&gt; &gt;                   attribute [ConvertNullToNullString] DOMString height;
&gt; &gt;  #else
&gt; &gt;                   attribute [ConvertFromString] long height;
&gt; &gt; @@ -38,7 +38,7 @@
&gt; &gt;                   attribute [ConvertNullToNullString] DOMString name;
&gt; &gt;                   attribute [ConvertNullToNullString] DOMString src;
&gt; &gt;                   attribute [ConvertNullToNullString] DOMString type;
&gt; &gt; -#if defined(LANGUAGE_JAVASCRIPT)
&gt; &gt; +#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
&gt; &gt;                   attribute [ConvertNullToNullString] DOMString width;
&gt; &gt;  #else
&gt; &gt;                   attribute [ConvertFromString] long width;
&gt; &gt; 
&gt; &gt; 
&gt; &gt; 
&gt; &gt; exact same functionality as javascript is required.  an int width
&gt; &gt; and an int height is of absolutely no use.
&gt; &gt; 
&gt; &gt; pyjamas-desktop needs to be able to set width and height to what
&gt; &gt; _javascript_ does - not objectiveC.
&gt; &gt; 
&gt; &gt; i.e. &quot;100%&quot;.  &quot;10em&quot;.  &quot;20px&quot;.
&gt; 
&gt; The width and height properties of the DOM specification are defined as being
&gt; longs, so that is what they should be exposed to all bindings as. 

 wrong.  absolutely wrong.  if in the &quot;real world&quot;, because of javascript - exactly as you say - people pass in things OTHER than integers, then the DOM specification can take a hike!

&gt; JavaScript
&gt; is a special case as there is the requirement for compatibility with the
&gt; millions of real-world web pages that were coded to the initial implementations
&gt; of the DOM in browsers that did not adhere to the spec.

 and thus this is EXACTLY the reason why the glib bindings MUST, i repeat,
 MUST, i repeat MUST provide EXACTLY the same functionality.

 how are we supposed to tell people, &quot;if you port your application from javascript to use a high-level-language that binds to webkit-glib bindings, you can do everything you expect to be able to do in javascript.... oh, _except_ you can&apos;t use &quot;20px&quot;, you _have_ to specify &quot;20&quot;, and you can&apos;t use &quot;100%&quot;, you have to work out the percentage yourself&quot;.

no, no, no and no.




&gt; It&apos;s worth noting that setting the .width or .height properties of a
&gt; HTMLEmbedElement to &quot;10em&quot;, &quot;10en&quot;, or any other value followed by a CSS unit
&gt; is unlikely to do what you think.

 ... how intriguing.

i&apos;ve never _used_ em or en in any apps, but _have_ used px and %, and found them to work in all cases where they&apos;re used, and found them to work as expected.

  
&gt; &gt; the integer-only parameters are no use to anyone wishing to maintain
&gt; &gt; line-for-line javascript equivalent functionality, which is what
&gt; &gt; pyjamas-desktop is about: ripping out the javascript and replacing it with
&gt; &gt; exact-equivalent code, written in python instead of javascript.
&gt; 
&gt; That may be what your project is about,

 it&apos;s &quot;my&quot; project, it&apos;s _a_ project that i happen to be
 working on, at present.

 let&apos;s reinterpret this sentence, and go from there:

&gt; That may be what that one example project is about,

 yes, it&apos;s one example - that demonstrates why it is necessary to follow
 javascript&apos;s lead, rather than a rigid (and ignored) standard.

 the _very fact_ that people have ignored the DOM specification _immediately_ says that the glib bindings MUST expose EXACTLY the same functionality as javascript.

 NOT the rigid and non-adhered to standard.

&gt; but it&apos;s not what DOM bindings in
&gt; WebKit are about.  DOM bindings are about exposing the standard WebKit DOM to
&gt; client applications,

 which is useless, as demonstrated by the warped javascript _real world_
 interpretation.

 be pragmatic.


&gt; not about exposing JavaScript&apos;s somewhat warped
&gt; interpretation of the DOM.

 javascript _is_ the standard.

 it wins.

 de-facto.

 there&apos;s no putting the genie back in the bottle - it&apos;s too late.

 javascript wins.  get the standard updated.

 plus, the reason _why_ people specify &quot;75%&quot;, &quot;20px&quot;, &quot;10em&quot; etc is because _only_ being able to specify an integer is bloody useless!

 being able to specify &quot;75%&quot; is a _damn_ good idea.

 so - following JS bindings it is.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95802</commentid>
    <comment_count>91</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-17 16:55:20 -0700</bug_when>
    <thetext>(In reply to comment #88)
&gt; (In reply to comment #87)
&gt; &gt;  #if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
&gt; &gt;         [DontEnum] DOMString toString();
&gt; &gt;  #endif
&gt; &gt; 
&gt; &gt; toString() is also a JavaScript language concept that other bindings need to
&gt; &gt; worry about.
&gt; 
&gt;  i do keep explaining - but it&apos;s been a while so i will explain it again:
&gt; javascript is the language that i am targetting as providing _direct_
&gt; one-for-one, concept-for-concept, function-for-function, class-for-class,
&gt; attribute-for-attribute equivalence (as closely as possible).

In that case, your objective is not the same as the objectives of the DOM bindings in WebKit.  As I have stated, they are designed to wrap the standard WebKit DOM, and only to expose quirks to JavaScript where they are required for compatibility with other browsers.

&gt;  this approach allows developers who are _expecting_ to see javascript,
&gt; _understand_ javascript and program regularly in javascript to _not_ get any
&gt; nasty surprises when they are presented with the glib bindings, and other
&gt; language bindings to those.

The DOM is not JavaScript.  I don&apos;t think the argument that a developer expects to see JavaScript semantics from a non-JavaScript DOM binding holds much weight.  We&apos;ve had no complaints of this nature, about the Objective-C DOM bindings in the many years that they have been part of the project. 

&gt; the same thing goes for the &quot;constructors&quot; (if i can get my head round why
&gt; they&apos;re used).

Are you seriously arguing that you must have something that you don&apos;t understand?  The JavaScript constructors are used only for gaining access to the prototype object, a JavaScript concept, which simply does not make sense for other DOM bindings.

&gt; the same thing also goes for the suggestion that you made that i should
&gt; provide only &quot;integer&quot; input to setWidth() and other functions, because that&apos;s
&gt; what ObjC does.
&gt; 
&gt;  the answer&apos;s &quot;no - absolutely not&quot;.  people who expect to pass in &quot;3em&quot;,
&gt; &quot;10px&quot;, &quot;50%&quot; will get a nasty shock.

As I have already stated, people that try and set .width or .height &quot;3em&quot; will already get a nasty shock, even from JavaScript.  It does not do what you think that it does.

&gt;  and yes, i really really _do_ need toString() because it&apos;s actually _used_ in
&gt; the pyjamas-desktop DOM.py module.

This argument doesn&apos;t carry much weight, as it could be used to get *any* change in to WebKit.  It can be generalised to: &quot;I&apos;ve written some code in another project that depends on my work-in-progress patch, therefore you have to accept this change in to WebKit in order to not break that code.&quot;

All of the objects that provide a .toString() function to JavaScript there are native DOM methods to return the same data.  Applications using the native DOM bindings can simply use the appropriate methods to retrieve this information.


&gt;  remember, i&apos;m translating the javascript (by hand, unfortunately) in pyjamas
&gt; into DIRECT and IDENTICAL function calls (in python) that end up calling the
&gt; webkit-glib bindings.
&gt; 
&gt;  if i get *any* discrepancies (such as not having toString), then all of a
&gt; sudden i&apos;m screwed, because there&apos;s a difference between the pyjamas code
&gt; (javascript compiler) and the pyjamas-desktop code (webkit-based).

I think you need to keep in mind that DOM bindings in WebKit do not exist solely for the benefit of your project.  Your project, as the first user of the DOM bindings, certainly influences what the initial cut will support, but it in no way defines what they *must* support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95807</commentid>
    <comment_count>92</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-10-17 17:15:00 -0700</bug_when>
    <thetext>&gt; I don&apos;t think the generated bindings code should be calling ref() or deref()
&gt; explicitly at all.  Managing the lifetimes of the wrapped objects via a RefPtr
&gt; is almost certainly sufficient.

 then why did the code crash, without them (without the ref and deref), and why are the ObjC bindings using the ref and deref technique, which i am copying, verbatim?

 btw i&apos;ve taken a quick look at the GDOMBindings.cpp, i believe i may have spotted an error, in the toGDOM(Element*) implementation.  comparing each call of ref(), there are a couple that are inconsistent: one calls doc-&gt;ref() which i don&apos;t think it should.

 ... but... i copied this technique from JSBindings and ObjC bindings - why should these bindings be different?

&gt; There is some documentation at &lt;http://webkit.org/coding/RefPtr.html&gt; on how to
&gt; use RefPtr and PassRefPtr to efficiently handle our reference counted objects.

 thank you.  although i remember, clearly, your very helpful explanations
 on IRC some weeks back, i&apos;ll read it over the next day or two to ensure i
 haven&apos;t missed anything.


 .... well ... y&apos;know... it&apos;s been long enough so i honestly can&apos;t say.

 it&apos;s probably worthwhile someone taking out the ref()s in GDOMBindings.cpp, commenting out that deref auto-generator line in GObject.pm, and testing a pyjamas-desktop app with pywebkitgtk.  (which may prove to be a shorter way to do a test than to write some c code, although a &quot;hello world&quot; direct use of the glib functions _would_ be really useful, and cool to see).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95808</commentid>
    <comment_count>93</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-17 17:19:29 -0700</bug_when>
    <thetext>(In reply to comment #89)
&gt; &gt; Minor issue: getGobjType doesn&apos;t follow the naming conventions outlined in the
&gt; &gt; coding style guidelines, due to the same capitalization inconsistency that
&gt; &gt; &quot;Gdom&quot; has in some places in this patch.
&gt; 
&gt;  i&apos;ve read the guidelines - i don&apos;t understand what i&apos;m missing.

&quot;&quot;&quot;
Use CamelCase. Capitalize the first letter of a class, struct, protocol, or namespace name. Lower-case the first letter of a variable or function name. Fully capitalize acronyms.

Use full words, except in the rare case where an abbreviation would be more canonical and easier to understand.
&quot;&quot;&quot;

I&apos;m not entirely sure which category &quot;gobj&quot; falls in.  I suspect it may be an abbreviation of g_object, in which case GObject would be how it is mapped to our naming conventions.

&gt;  btw i started off with GDOM as the prefix and it blew up the pygtk
&gt; auto-generator.  i posted a bugreport about that and they said that there was
&gt; absolutely zero intention of fixing pygtk&apos;s codegen.py.
&gt; 
&gt;  so, you _can_ go and replace Gdom with GDOM, and it will screw things up for
&gt; people, further down the line.

You have used both Gdom and GDOM within the same patch.  I&apos;m also not convinced that an external, third-party tool should be dictating to our naming conventions either.  I&apos;m sure that issue is fixable within that tool or in a script that wraps the tool.

&gt; &gt;  At the very
&gt; &gt; least this shouldn&apos;t require duplication of assignments for each possible
&gt; &gt; feature define.  The common values could be assigned to a FEATURE_DEFINES
&gt; &gt; variable, with FEATURE_DEFINES_JAVASCRIPT taking its value and adding
&gt; &gt; LANGUAGE_JAVASCRIPT, ENABLE_SVG, etc, and FEATURE_DEFINES_GDOM only adding
&gt; &gt; LANGUAGE_GDOM.  Another alternative would be to have FEATURE_DEFINES include
&gt; &gt; all features that are enabled, and FEATURE_DEFINES_GDOM be the result of
&gt; &gt; stripping out any values that mention SVG from the FEATURE_DEFINES variable.
&gt; 
&gt;  i _may_ be wrong about this:
&gt; 
&gt;  i wouldn&apos;t recommend that _at the moment_, because the person who will be
&gt; expected to create the SVG bindings in the future may choose to implement a
&gt; _small_ subset of the SVG bindings, to begin with.
&gt; 
&gt;  if the above paragraph translates into &quot;when someone comes to adding SVG
&gt; bindings, then they will either have to implement them all or not at all&quot;, then
&gt; it should be clear as to why that is undesirable.

I&apos;m not sure why you think it translates to that.  One way to incrementally flesh out support is to have the scripts generate code for the entire feature, but only compile the files that are completely implemented.  I think we do that in some places in the Obj-C DOM in one or two places.

&gt; &gt; &gt; &gt; rather than JS in the cases that they differ.  Many of these instances are due
&gt; &gt; &gt; &gt; to behavioral peculiarities of JS, especially attributes such as
&gt; &gt; &gt; &gt; ConvertNullToNullString and toString functions.
&gt; 
&gt;  ConvertNullToNullString: agreed.  (well, i haven&apos;t used it, and
&gt; pyjamas-desktop hasn&apos;t blown up.  so i don&apos;t need it).
&gt; 
&gt;  toString: disagree.  _definitely_ need this one.

See my previous comment for why this is untrue.

&gt; &gt; There are two issues here: the ref-counting problems tracked in bug 20403,
&gt; &gt; which sound as though they need to be addressed before these bindings will
&gt; &gt; function without crashing,
&gt; 
&gt;  no.
&gt; 
&gt;  1) the crashes caused by #20403 have been demonstrated and proven to have
&gt; absolutely nothing to do with the bindings.  at all.  nothing.
&gt; 
&gt;  2) #20403 has been solved.

Ok.  I was under the impression that the reason your workaround for that issue was in a previous version of the patch was that it was required in order to function.  Bug 20403 does not appear to have been solved to me: Darin signed off on the concept of your fix, but some minor revisions were requested and you have yet to post the updated patch that makes them.

&gt; &gt; and the ref-counting problems within the patch
&gt; &gt; itself.
&gt; 
&gt;  there have been _no_ ref-counting problems encountered. see earlier comment:
&gt;  i would be utterly shocked if there were &quot;negative&quot; refcounting bugs,
&gt;  because of the amount of time i&apos;ve spent running pyjamas-desktop apps.
&gt; 
&gt;  without crashes of any kind (esp. since i patched in the solution #20403)
&gt; 
&gt;  i would equally be surprised if there were memory leaks, but you can clearly
&gt;  see, if you examine an auto-generated file, that each and every &quot;add ref&quot;
&gt;  is matched by a corresponding &quot;dec ref&quot;.
&gt; 
&gt;  so, although it&apos;s not _proven_, with test code, this &quot;refcounting problem&quot;
&gt;  sounds much like an imaginary invention - a bogeyman in the closet :)

There are problems.  I called out each individually in an earlier comment, so I am not going to waste my time doing so again.  The fact that you convinced the incorrect code to work does not make the code correct.  The incorrect use of ref-counting absolutely must be addressed before the change can be landed. 


&gt; &gt; &gt; 4. Changes to the IDL files.
&gt; &gt; &gt; 
&gt; &gt; &gt; Any additional problems I&apos;m missing? Could people please post their
&gt; &gt; &gt; thoughts on the open issues so that we can make some progress? I&apos;ll try
&gt; &gt; &gt; to look into issue 4 and see if I can understand what&apos;s going on, but
&gt; &gt; &gt; cannot promise anything for the moment.
&gt; 
&gt;  i wouldn&apos;t make the differences without very good reasons and justification.
&gt; 
&gt;  XMLHTTPRequest open(String) is a good starting point: it&apos;s simply too much
&gt; additional work to provide the functionality of TextDocument, when just
&gt; enabling the use of open(String) instead of open(TextDocument) will do just as
&gt; well, if not better.
&gt; 
&gt;  each of the differences is pretty obvious and straightforward, and i believe
&gt; i&apos;ve answered and explained them all.

You have indeed outlined why you made the changes that you did.  However, as I have pointed out several times now, the reasons that you made the changes in many cases do not align with the WebKit project&apos;s vision for native bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95809</commentid>
    <comment_count>94</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-10-17 17:25:10 -0700</bug_when>
    <thetext>(In reply to comment #92)
&gt; &gt; I don&apos;t think the generated bindings code should be calling ref() or deref()
&gt; &gt; explicitly at all.  Managing the lifetimes of the wrapped objects via a RefPtr
&gt; &gt; is almost certainly sufficient.
&gt; 
&gt;  then why did the code crash, without them (without the ref and deref), and why
&gt; are the ObjC bindings using the ref and deref technique, which i am copying,
&gt; verbatim?

The Objective-C bindings do not use RefPtr&apos;s as until relatively recently it was not valid for an Objective-C object to directly contain a non-POD C++ type.

&gt;  btw i&apos;ve taken a quick look at the GDOMBindings.cpp, i believe i may have
&gt; spotted an error, in the toGDOM(Element*) implementation.  comparing each call
&gt; of ref(), there are a couple that are inconsistent: one calls doc-&gt;ref() which
&gt; i don&apos;t think it should.
&gt; 
&gt;  ... but... i copied this technique from JSBindings and ObjC bindings - why
&gt; should these bindings be different?

It would seem that you have copied from both the JS bindings and the Objective-C bindings, and ended up using a mismatch of manual reference counting and automated reference counting.  You should do one or the other, not both.  In this case the automated approach is the best approach.  Understanding how reference counting works, and how our types that automate reference counting behave, will help prevent these sorts of issues in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95983</commentid>
    <comment_count>95</comment_count>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2008-10-20 05:21:13 -0700</bug_when>
    <thetext>(In reply to comment #94)
&gt; (In reply to comment #92)
...
&gt; &gt;  ... but... i copied this technique from JSBindings and ObjC bindings - why
&gt; &gt; should these bindings be different?
&gt; 
&gt; It would seem that you have copied from both the JS bindings and the
&gt; Objective-C bindings, and ended up using a mismatch of manual reference
&gt; counting and automated reference counting.  You should do one or the other, not
&gt; both.  In this case the automated approach is the best approach.  Understanding
&gt; how reference counting works, and how our types that automate reference
&gt; counting behave, will help prevent these sorts of issues in the future.

I&apos;ll try my hand at converting the patch to RefPtr and PassRefPtr in the following days. Unfortunately, my time is pretty limited right now, so, if someone is quicker than me at completing this task, I won&apos;t mind it, really.

By the way, many thanks for the replies. The status of the patch is much clearer now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100792</commentid>
    <comment_count>96</comment_count>
      <attachid>25618</attachid>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2008-11-30 15:30:44 -0800</bug_when>
    <thetext>Created attachment 25618
DOM patch updated to version 38852

So, as I said, my time is quite limited these days, but I managed to make some progress with the patch. This version is not yet ready for review, but I wanted to share it because there are some issues I&apos;d like to discuss.

First of all, what I did so far: With the previous patch, three memory blocks were being allocated to wrap a single core DOM object: the *public* structure for the wrapping GObject, the *private* structure for the wrapping GObject, and an additional C++ wrapper object. I got rid of the additional C++ wrappers altogether, which means that the private GObject structures now point directly to the core objects. I removed all classes, both generated and manually written, related to these wrapper objects. This not only helps with efficiency, but makes the patch easier to read, because the naming scheme used for the C++ wrappers made them very easy to confuse with the corresponding GObject classes.
Additionally, while doing this, I refactored the code in many places to be more consistent, both in naming and behavior, with the rest of WebKitGtk.

The first question I have is related to the GObject private structures. At this time, they contain only a pointer to the wrapped core object. We could also get rid of them and put this pointer directly in the main (public) wrapper GObject. The changes necessary for doing this are trivial now, and this would let us with just one allocated block per wrapped object, which would be valuable, since DOM wrappers may happen to be created in large quantities. I don&apos;t know however, what effect this may have for ABI compatibility in the future.

I also started checking the use of RefPtr and friends in the patch, and I currently have an issue I don&apos;t know how to solve. In file GDOMBinding.cpp, a number of functions called toGDOM are defined that are intended to wrap core DOM objects into GObjects. Since these function actually take ownership of the references they receive, they should use PassRefPtr&apos;s as parameters. Problem is, when I change the parameters, which currently are raw pointers, to PassRefPtr, the compiler is not able to resolve the calls any more, complaining that they are ambiguous. What should I do in this case? Giving the functions different names based on the argument types doesn&apos;t look like an option, because deciding which one to call (this is mainly done by generated code) is not trivial. Any suggestions here would be greatly appreciated.

Finally, I would like to rename all files, manual and generated, according to the conventions used by the rest of WebKitGtk. This is no problem, but I&apos;m wondering about the GDOM prefix. I see no reason to have a different prefix for the DOM related objects. They belong to WebKitGTK as much as anything else, and, in my opinion, should use the same naming convention. Would people agree with this? Should I just change everything to use the WebKit (or webkit_ dpending on the case) prefix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100810</commentid>
    <comment_count>97</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-01 02:25:52 -0800</bug_when>
    <thetext>(In reply to comment #96)
&gt; Created an attachment (id=25618) [review]
&gt; DOM patch updated to version 38852
&gt; 
&gt; So, as I said, my time is quite limited these days,

 martin, it&apos;s great that you&apos;ve taken the time to work on this.
 
 what do you think of the idea of discussing the work that you
 intend to carry out before going ahead, to check whether the
 work fits with the future plans and direction that is needed?

 in many cases, you would be able to guess correctly, but in others
 it would perhaps take up your valuable time unnecessarily, yes?


&gt; but I managed to make some
&gt; progress with the patch.

 great!  can i ask you a favour?  could you produce a diff of the diff?
 i.e. using the original patch as the baseline, prepare a patch with changes
 from the original patch into the attachment 25618 patch?

 otherwise it&apos;s virtually impossible to follow along
 (which is why this 7,000 lines of complex work should be committed to
  webkit svn and then worked on, collaboratively, via webkit svn to fix
  the remaining issues).

 alternatively, martin, would you like to collaborate on this via a shared
 revision control system?

 i believe i&apos;ve mentioned that i&apos;m using github.org


&gt; First of all, what I did so far: With the previous patch, three memory blocks
&gt; were being allocated to wrap a single core DOM object: the *public* structure
&gt; for the wrapping GObject, the *private* structure for the wrapping GObject, and
&gt; an additional C++ wrapper object. I got rid of the additional C++ wrappers
&gt; altogether, which means that the private GObject structures now point directly
&gt; to the core objects.

 mmm... i made them that way to follow along with the conventions advised
 by various documentation and howtos that i trustingly read, but also because
 if there is anything _else_ that needs to be stored in the private gobject
 structure, the wrapper is needed.

 for example, at some point, the exception handling is going to be added back
 in (see functions in JS wrappers, they take _two_ arguments: c++ webkit obj
 and an exception object), and it will _not_ be added to the webkit webcore
 c++ objects: the only place therefore available to store and retrieve it is:

 the gobject private data.

 so - sorry to have to be the one to tell you this, but it has to stay.

&gt; but makes the patch easier to read, because the naming scheme used for the C++
&gt; wrappers made them very easy to confuse with the corresponding GObject classes.

 then we pick a better one.

&gt; Additionally, while doing this, I refactored the code in many places to be more
&gt; consistent, both in naming and behavior, with the rest of WebKitGtk.

 great - but...

 the glib / gobject patch has nothing to do with and has zero dependency on
 WebkitGtk.
 
&gt; The first question I have is related to the GObject private structures. At this
&gt; time, they contain only a pointer to the wrapped core object.

 that&apos;s right.  later they will have an exception class handling object, too.


&gt; I also started checking the use of RefPtr and friends in the patch, and I
&gt; currently have an issue I don&apos;t know how to solve. In file GDOMBinding.cpp, a
&gt; number of functions called toGDOM are defined that are intended to wrap core
&gt; DOM objects into GObjects. Since these function actually take ownership of the
&gt; references they receive, they should use PassRefPtr&apos;s as parameters. Problem
&gt; is, when I change the parameters, which currently are raw pointers, to
&gt; PassRefPtr, the compiler is not able to resolve the calls any more, complaining
&gt; that they are ambiguous.

 don&apos;t know - i&apos;ll have to take a look - but it will be on the code that
 i&apos;m using, and used to, unless you can submit me a patch that diffs against
 this:

   http://github.com/lkcl/webkit/tree/16401.master

 not being funny or anything, but it&apos;s just _way_ too much work, otherwise,
 to be manually re-doing such massive diffs, without a common revision control
 system.


&gt; What should I do in this case? Giving the functions
&gt; different names based on the argument types doesn&apos;t look like an option,
&gt; because deciding which one to call (this is mainly done by generated code) is
&gt; not trivial.

 no, it isn&apos;t :)

 which is why i stopped work until someone paid me to continue.

&gt; Any suggestions here would be greatly appreciated.
&gt; 
&gt; Finally, I would like to rename all files, manual and generated, according to
&gt; the conventions used by the rest of WebKitGtk.

 ok - two things to emphasise: first, this is a good idea, second, this patch
 has _nothing_ to do with WebKitGtk&apos;s functionality.

 this patch is a _gobject_ patch that _happens_ to be utilised, in the first
 instance, by WebKitGtk as the first port.

 other ports - the qt and the wxWidgets - are perfectly at liberty to utilise
 the webkit-gobject bindings, by #including &lt;glib.h&gt;

 they DO NOT i repeat DO NOT have to #include &lt;gtk.h&gt;.


&gt; This is no problem, but I&apos;m
&gt; wondering about the GDOM prefix.

 yeah, i don&apos;t like it, either.

&gt; I see no reason to have a different prefix for
&gt; the DOM related objects. They belong to WebKitGTK 

 no, they don&apos;t.  that&apos;s why alp suggested that the functionality go into
 its own library - libwebkitglib.la - to strongly emphasise this.

&gt; as much as anything else,
&gt; and, in my opinion, should use the same naming convention. Would people agree
&gt; with this? Should I just change everything to use the WebKit (or webkit_
&gt; dpending on the case) prefix?

 yep, i agree.

 _despite_ the fact that the naming convention is identical to that chosen
 by webkit&apos;s gtk port.

 it would be much better for the webkit gtk port to take a prefix of
 &quot;WebkitGtk&quot;, and for the webkit-glib code to take a prefix of &quot;Webkit&quot;.



</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100811</commentid>
    <comment_count>98</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-01 03:00:20 -0800</bug_when>
    <thetext>&gt; &gt; as much as anything else,
&gt; &gt; and, in my opinion, should use the same naming convention. Would people agree
&gt; &gt; with this? Should I just change everything to use the WebKit (or webkit_
&gt; &gt; dpending on the case) prefix?
&gt; 
&gt;  yep, i agree.
&gt; 
&gt;  _despite_ the fact that the naming convention is identical to that chosen
&gt;  by webkit&apos;s gtk port.
&gt; 
&gt;  it would be much better for the webkit gtk port to take a prefix of
&gt;  &quot;WebkitGtk&quot;, and for the webkit-glib code to take a prefix of &quot;Webkit&quot;.


 for webkitmm, it looks like there isn&apos;t any choice (unless a separate
 library, webkitgobjectmm is created).   for the same reason,
 webkitmm really needs to be renamed to webkitgtkmm

 name gdom has to go.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100821</commentid>
    <comment_count>99</comment_count>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2008-12-01 04:58:43 -0800</bug_when>
    <thetext>(In reply to comment #97)
&gt;  great!  can i ask you a favour?  could you produce a diff of the diff?
&gt;  i.e. using the original patch as the baseline, prepare a patch with changes
&gt;  from the original patch into the attachment 25618 [review] patch?

All patches are available from this page, you should be able to do this yourself in a minute. Am I missing something here?

&gt;  alternatively, martin, would you like to collaborate on this via a shared
&gt;  revision control system?
&gt; 
&gt;  i believe i&apos;ve mentioned that i&apos;m using github.org

I would be, yes. Never used git, but I guess I can quickly learn the basics. Still, it&apos;d be better to get this landed in some form, so that we can start contributing smaller patches.

&gt;  mmm... i made them that way to follow along with the conventions advised
&gt;  by various documentation and howtos that i trustingly read, but also because
&gt;  if there is anything _else_ that needs to be stored in the private gobject
&gt;  structure, the wrapper is needed.
&gt; 
&gt;  for example, at some point, the exception handling is going to be added back
&gt;  in (see functions in JS wrappers, they take _two_ arguments: c++ webkit obj
&gt;  and an exception object), and it will _not_ be added to the webkit webcore
&gt;  c++ objects: the only place therefore available to store and retrieve it is:

That&apos;s just fine. The private structures can remain if they are needed, that&apos;s why I asked before removing them. But we had a public structure, pointing to a private structure, pointing to a C++ object that finally pointed to the core object. If more data has to be stored, it can be stored in the private structure, just like the classes in GtkWebKit do. The structures are available now and have a sane, consistent naming convention. We can use them if necessary.

&gt;  then we pick a better one.

This is already done, and, as far as I can tell, is consistent with other classes in WebKitGtk.

&gt;  the glib / gobject patch has nothing to do with and has zero dependency on
&gt;  WebkitGtk.

Of course, this code doesn&apos;t depend on WebKitGtk. Still, it has a lot to do with it. In particular, being also GObject based, it should follow the same or very similar coding conventions. I see no reason to depart from coding conventions that are already established and known to work.

[...]
&gt;  ok - two things to emphasise: first, this is a good idea, second, this patch
&gt;  has _nothing_ to do with WebKitGtk&apos;s functionality.
&gt; 
&gt;  this patch is a _gobject_ patch that _happens_ to be utilised, in the first
&gt;  instance, by WebKitGtk as the first port.
&gt; 
&gt;  other ports - the qt and the wxWidgets - are perfectly at liberty to utilise
&gt;  the webkit-gobject bindings, by #including &lt;glib.h&gt;
&gt; 
&gt;  they DO NOT i repeat DO NOT have to #include &lt;gtk.h&gt;.

This is all absolutely clear to me, although I&apos;m not so sure that the Qt or WxWidgets port would like to use this; maybe the Clutter port, which is also GObject based. I agree with you that we don&apos;t want the DOM classes to depend on WebKitGtk. But we do want WebKitGtk to depend on the DOM classes in some way, and, for this reason, we should make sure that the GDOM classes follow the same conventions, whenever possible.

&gt; &gt; This is no problem, but I&apos;m wondering about the GDOM prefix.
&gt; 
&gt;  yeah, i don&apos;t like it, either.
&gt; 
&gt; &gt; I see no reason to have a different prefix for
&gt; &gt; the DOM related objects. They belong to WebKitGTK 
&gt; 
&gt;  no, they don&apos;t.  that&apos;s why alp suggested that the functionality go into
&gt;  its own library - libwebkitglib.la - to strongly emphasise this.

OK, let me correct my assertion: both WebKitGtk and the GObject DOM classes are GObject-based bindings for WebKit functionallity. And they are closely related, since the GDOM classes will be used to manipulate a DOM that will often be displayed through a WebKitGtk widget.

&gt; &gt; as much as anything else,
&gt; &gt; and, in my opinion, should use the same naming convention. Would people agree
&gt; &gt; with this? Should I just change everything to use the WebKit (or webkit_
&gt; &gt; dpending on the case) prefix?
&gt; 
&gt;  yep, i agree.
&gt; 
&gt;  _despite_ the fact that the naming convention is identical to that chosen
&gt;  by webkit&apos;s gtk port.
&gt; 
&gt;  it would be much better for the webkit gtk port to take a prefix of
&gt;  &quot;WebkitGtk&quot;, and for the webkit-glib code to take a prefix of &quot;Webkit&quot;.

Well, I don&apos;t know to what extent it is necessary or useful to make this differenciation. I see the need for separate libraries, because other GObject-based ports, such as the Clutter port, may want to depend on the DOM classes but not on WebKitGtk.  If we want all names to reflect this, I don&apos;t know, Actually, the WebKit (or webkit_) prefix refers to WebKit as a whole. given that both WebKitGTk and the DOM classes are wrapping WebKit functionality, I don&apos;t see a problem if they use the same GObject namespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100834</commentid>
    <comment_count>100</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-12-01 09:03:32 -0800</bug_when>
    <thetext>(In reply to comment #96)
&gt; Created an attachment (id=25618) [review]
&gt; I also started checking the use of RefPtr and friends in the patch, and I
&gt; currently have an issue I don&apos;t know how to solve. In file GDOMBinding.cpp, a
&gt; number of functions called toGDOM are defined that are intended to wrap core
&gt; DOM objects into GObjects. Since these function actually take ownership of the
&gt; references they receive, they should use PassRefPtr&apos;s as parameters. Problem
&gt; is, when I change the parameters, which currently are raw pointers, to
&gt; PassRefPtr, the compiler is not able to resolve the calls any more, complaining
&gt; that they are ambiguous. What should I do in this case? Giving the functions
&gt; different names based on the argument types doesn&apos;t look like an option,
&gt; because deciding which one to call (this is mainly done by generated code) is
&gt; not trivial. Any suggestions here would be greatly appreciated.

Can you provide a bit more detail about what you tried here, and what errors you ran in to?  There will be no need to give each variant of the function a distinct name.  A simpler workaround if you can&apos;t convince the PassRefPtr approach to work would be to use a raw pointer.  PassRefPtr is a matter of optimization, not correctness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100890</commentid>
    <comment_count>101</comment_count>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2008-12-01 15:01:19 -0800</bug_when>
    <thetext>(In reply to comment #100)
&gt; Can you provide a bit more detail about what you tried here, and what errors
&gt; you ran in to?  

Sure. The functions are declared as follows:

  gpointer toGDOM(WebCore::CSSValue* node);
  gpointer toGDOM(WebCore::Document* node);
  gpointer toGDOM(WebCore::Element* node);
  gpointer toGDOM(WebCore::Event* node);

There are more, but you get the idea. These functions actually wrap the node object into a GObject and return it. If I change them to

  gpointer toGDOM(PassRefPtr&lt;WebCore::CSSValue&gt; node);
  gpointer toGDOM(PassRefPtr&lt;WebCore::Document&gt; node);
  gpointer toGDOM(PassRefPtr&lt;WebCore::Element&gt; node);
  gpointer toGDOM(PassRefPtr&lt;WebCore::Event&gt; node);

I get error messages such as the following (this is just the first file that fails):

DerivedSources/gdom/GdomAttr.cpp: In function ‘void gdom_attr__get_property_fn(GObject*, guint, GValue*, GParamSpec*)’:
DerivedSources/gdom/GdomAttr.cpp:198: error: call of overloaded ‘toGDOM(WebCore::Element*)’ is ambiguous
./WebCore/bindings/gdom/GDOMBinding.h:61: note: candidates are: void* WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::Element&gt;)
./WebCore/bindings/gdom/GDOMBinding.h:63: note:                 void* WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::EventTarget&gt;)
./WebCore/bindings/gdom/GDOMBinding.h:64: note:                 void* WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::EventTargetNode&gt;)
./WebCore/bindings/gdom/GDOMBinding.h:66: note:                 void* WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::Node&gt;)

The offending code looks as follows

197:  PassRefPtr&lt;WebCore::Element&gt; ptr = gself-&gt;ownerElement();
198:  g_value_set_object (value, WebKit::toGDOM(ptr.get()));

Line 198 fails with the messages above. When the toGDOM functions are declared with raw pointer parameters, it compiles and runs properly.

&gt; There will be no need to give each variant of the function a
&gt; distinct name.  A simpler workaround if you can&apos;t convince the PassRefPtr
&gt; approach to work would be to use a raw pointer.  PassRefPtr is a matter of
&gt; optimization, not correctness.

Leaving the raw-pointer parameters is probably the solution, but I&apos;m not sure if calling the toGDOM functions as shown above is the right way to do it. In particular, the local PassRefPtr variable looks suspicious to me, but it&apos;s hard for me to tell if this is OK in this particular case. I&apos;d really appreciate some help here.

By the way, should I ask these type of questions somewhere else? (IRC?, mailing list?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100906</commentid>
    <comment_count>102</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-12-01 16:05:58 -0800</bug_when>
    <thetext>(In reply to comment #101)
&gt; DerivedSources/gdom/GdomAttr.cpp: In function ‘void
&gt; gdom_attr__get_property_fn(GObject*, guint, GValue*, GParamSpec*)’:
&gt; DerivedSources/gdom/GdomAttr.cpp:198: error: call of overloaded
&gt; ‘toGDOM(WebCore::Element*)’ is ambiguous
&gt; ./WebCore/bindings/gdom/GDOMBinding.h:61: note: candidates are: void*
&gt; WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::Element&gt;)
&gt; ./WebCore/bindings/gdom/GDOMBinding.h:63: note:                 void*
&gt; WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::EventTarget&gt;)
&gt; ./WebCore/bindings/gdom/GDOMBinding.h:64: note:                 void*
&gt; WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::EventTargetNode&gt;)
&gt; ./WebCore/bindings/gdom/GDOMBinding.h:66: note:                 void*
&gt; WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::Node&gt;)

Ok, I can see why this would be ambiguous.  Element* is implicitly convertible to each of PassRefPtr&lt;Element&gt;, PassRefPtr&lt;EventTarget&gt;, PassRefPtr&lt;EventTargetNode&gt;, and PassRefPtr&lt;Node&gt; so it&apos;s not clear which should be selected.

&gt; The offending code looks as follows
&gt; 
&gt; 197:  PassRefPtr&lt;WebCore::Element&gt; ptr = gself-&gt;ownerElement();
&gt; 198:  g_value_set_object (value, WebKit::toGDOM(ptr.get()));
&gt; 
&gt; Line 198 fails with the messages above. When the toGDOM functions are declared
&gt; with raw pointer parameters, it compiles and runs properly.

Calling .get() on ptr just gives you back the same underlying pointer that gself-&gt;ownerElement() returned, which would then be implicitly converted to a new PassPrefPtr instance.  This would lead to the object being ref&apos;d twice rather than once (the ref would still be balanced as the local PassRefPtr would deref when it goes out of scope).

To resolve the ambiguity you could pass ptr to toGDOM rather than ptr.get();, since then no implicit type conversion will be required.  However, it&apos;s probably a better idea to leave toGDOM taking a raw pointer instead.

&gt; &gt; There will be no need to give each variant of the function a
&gt; &gt; distinct name.  A simpler workaround if you can&apos;t convince the PassRefPtr
&gt; &gt; approach to work would be to use a raw pointer.  PassRefPtr is a matter of
&gt; &gt; optimization, not correctness.
&gt; 
&gt; Leaving the raw-pointer parameters is probably the solution, but I&apos;m not sure
&gt; if calling the toGDOM functions as shown above is the right way to do it. In
&gt; particular, the local PassRefPtr variable looks suspicious to me, but it&apos;s hard
&gt; for me to tell if this is OK in this particular case. I&apos;d really appreciate
&gt; some help here.

As I mentioned above there is a problem with the usage of PassRefPtr in the code snippet you pasted.  Besides that, in existing code a local PassRefPtr is only used when storing the return value of a function returning a PassRefPtr before handing it off to a function accepting a PassRefPtr.  Using it in this different manner doesn&apos;t feel quite right to me.

&gt; By the way, should I ask these type of questions somewhere else? (IRC?, mailing
&gt; list?)

Both #webkit and the webkit-dev mailing list would be a reasonable place to ask this sort of question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100988</commentid>
    <comment_count>103</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 01:47:38 -0800</bug_when>
    <thetext>(In reply to comment #99)
&gt; (In reply to comment #97)
&gt; &gt;  great!  can i ask you a favour?  could you produce a diff of the diff?
&gt; &gt;  i.e. using the original patch as the baseline, prepare a patch with changes
&gt; &gt;  from the original patch into the attachment 25618 [review] [review] patch?
&gt; 
&gt; All patches are available from this page, you should be able to do this
&gt; yourself in a minute. Am I missing something here?

 yes: 1) lack of disk space 2) the inconvenience 3) we&apos;re working from different
 reference points.


&gt; &gt;  alternatively, martin, would you like to collaborate on this via a shared
&gt; &gt;  revision control system?
&gt; &gt; 
&gt; &gt;  i believe i&apos;ve mentioned that i&apos;m using github.org
&gt; 
&gt; I would be, yes. Never used git, but I guess I can quickly learn the basics.
&gt; Still, it&apos;d be better to get this landed in some form,

 ahh... slight fly in the ointment, there: &quot;in some form&quot; must still be
 &quot;useful&quot;.  as in, it must still actually do the job it&apos;s intended.

 at _no time_ can &quot;in some form&quot; _not_ provide the full functionality
 and satisfy all of the requirements that the code currently meets.

 which is why, mark, i did not provide a &quot;dumbed-down&quot; version.
 [i expect you, as a paid employee of apple, to be able to get
 the time to follow].


&gt; so that we can start contributing smaller patches.

 xxxxing tell me about it.

&gt; &gt;  mmm... i made them that way to follow along with the conventions advised
&gt; &gt;  by various documentation and howtos that i trustingly read, but also because
&gt; &gt;  if there is anything _else_ that needs to be stored in the private gobject
&gt; &gt;  structure, the wrapper is needed.
&gt; &gt; 
&gt; &gt;  for example, at some point, the exception handling is going to be added back
&gt; &gt;  in (see functions in JS wrappers, they take _two_ arguments: c++ webkit obj
&gt; &gt;  and an exception object), and it will _not_ be added to the webkit webcore
&gt; &gt;  c++ objects: the only place therefore available to store and retrieve it is:
&gt; 
&gt; That&apos;s just fine. The private structures can remain if they are needed, that&apos;s
&gt; why I asked before removing them.

&gt; But we had a public structure,

 a c interface where the headers are transparent.

&gt; pointing to a
&gt; private structure,

 the glib interface struct where the c++ object is presently stored,
 and in the future, the exception object will also be stored.

&gt; pointing to a C++ object

 that&apos;s an absolutely necessary wrapper object that contains the
 pure virtual function getGObjType(), and is tied in to the
 DOM Object cache in GDOMBinding.cpp

 without that pure virtual function, the whole system collapses as
 you cannot correctly typecast an object back to its proper c++
 core object.

 i&apos;ve explained this a number of times, but to reiterate: the issue
 that&apos;s faced is illustrated by the following pseudo-code:

 n = doc.createElement(&quot;div&quot;)
 n.id = &quot;testid&quot;
 body = doc.getElementsByTagName(&quot;body&quot;)[0]
 body.appendChild(n)

 not_same_n_but_it_should_be = doc.getElementByid(&quot;testid&quot;)

 assert(not_same_n_but_it_should_be == n) /* ERROR THROWN! */

 the reason why this would fail - if you removed that
 &quot;pointing to a c++ object&quot; is because doc.getElementById()
 returns Node*.

 so, if you naively return a Node*, then a *separate* Gobject
 is returned - which, underneath, points to the same core c++
 object (typecast down to a Node*)...

 ... you see where this is going?

 so, when the createElement() function was called, an HTMLDivElement
 was created, and a Gobject of type GDOM_TYPE_HTML_DIV_ELEMENT was
 created.

 this goes into the GDOMBinding DOMObject cache.
 
&gt; that finally pointed to the core object.

 i purely and simply followed, verbatim, the examples shown in the
 tutorials found online, and followed what was _necessary_ to provide
 the required functionality.

 correctly.

 so - sorry, but it has to stay as-is.

 this wouldn&apos;t have ended up being coded as it is without a
 damn good reason.



&gt; &gt;  the glib / gobject patch has nothing to do with and has zero dependency on
&gt; &gt;  WebkitGtk.
&gt; 
&gt; Of course, this code doesn&apos;t depend on WebKitGtk. Still, it has a lot to do
&gt; with it.

 this may come as a surprise, but it has very little to do with WebKitGtk.

 the entry-points - the links between webkit-gdom and webkit-gtk is 
 currently about four or five functions, and it _should_ be only one
 or two.

&gt; In particular, being also GObject based, it should follow the same or
&gt; very similar coding conventions. I see no reason to depart from coding
&gt; conventions that are already established and known to work.

 acknowledged.

&gt; [...]
&gt; &gt;  ok - two things to emphasise: first, this is a good idea, second, this patch
&gt; &gt;  has _nothing_ to do with WebKitGtk&apos;s functionality.
&gt; &gt; 
&gt; &gt;  this patch is a _gobject_ patch that _happens_ to be utilised, in the first
&gt; &gt;  instance, by WebKitGtk as the first port.
&gt; &gt; 
&gt; &gt;  other ports - the qt and the wxWidgets - are perfectly at liberty to utilise
&gt; &gt;  the webkit-gobject bindings, by #including &lt;glib.h&gt;
&gt; &gt; 
&gt; &gt;  they DO NOT i repeat DO NOT have to #include &lt;gtk.h&gt;.
&gt; 
&gt; This is all absolutely clear to me, although I&apos;m not so sure that the Qt or
&gt; WxWidgets port would like to use this;

 yehh... they might not - but the alternative is to go through seven kinds
 of hell adding yet _another_ set of bindings, bringing the total to five
 if QObject is used and... what does wxWidgets have - that&apos;d be six.

&gt; maybe the Clutter port, which is also
&gt; GObject based. I agree with you that we don&apos;t want the DOM classes to depend on
&gt; WebKitGtk. But we do want WebKitGtk to depend on the DOM classes in some way,

 yes.

 the dependency can be reduced to about two functions and two glib-based
 objects.

 a glib wrapper around a pointer to the virtual base class WebCore::Page
 (let&apos;s call it WebkitWebPage)

 and another one around WebCore::Frame (which already exists in gdom);
 WebkitWebFrame should have a pointer to a GdomFrame, and should take in
 a pointer to a WebkitWebPage as well.

 in this way, it&apos;s possible for other ports - qt and wxwidgets - to
 create their own WebkitWebPage and their own GdomFrame, set up the
 links between the two, and you&apos;re done.

 it&apos;s not &quot;QObject-y&quot;.  it&apos;s not &quot;wxWidget-y&quot;.  but it works, and those
 ports could then replace the functionality, at their leisure, with
 QObject-y DOM bindings and wxWidget-y DOM bindings.


&gt; and, for this reason, we should make sure that the GDOM classes follow the same
&gt; conventions, whenever possible.

 yes.

 ... what are they?
 
&gt; &gt; &gt; This is no problem, but I&apos;m wondering about the GDOM prefix.
&gt; &gt; 
&gt; &gt;  yeah, i don&apos;t like it, either.
&gt; &gt; 
&gt; &gt; &gt; I see no reason to have a different prefix for
&gt; &gt; &gt; the DOM related objects. They belong to WebKitGTK 
&gt; &gt; 
&gt; &gt;  no, they don&apos;t.  that&apos;s why alp suggested that the functionality go into
&gt; &gt;  its own library - libwebkitglib.la - to strongly emphasise this.
&gt; 
&gt; OK, let me correct my assertion: both WebKitGtk and the GObject DOM classes are
&gt; GObject-based bindings for WebKit functionallity. And they are closely related,
&gt; since the GDOM classes will be used to manipulate a DOM that will often be
&gt; displayed through a WebKitGtk widget.

 i should reiterate: the sole link is via one function.  once you have a
 pointer to what is now called &quot;GdomDocument&quot;, WebkitGtk&apos;s role is OVER.

 finished.

 oh.  other than event handling.

 so, there&apos;s an event link (i gave it a signal name of &quot;browser-event&quot;)
 and there&apos;s a way to get a GdomDocument.

 NOTHING else.

 sure, things like window.open() might get called, and things like
 window.alert(), or other such interaction...

 but it&apos;s NOT &quot;triggered&quot; by gtk, or by any gtk interaction, and not by
 any gtk functions, and not by any WebkitGtk functionality.

 gtk&apos;s role is _extremely_ limited to some _very_ specific roles that have,
 other than the passing in and out of a pointer to a Frame, a Page, a
 Document and some event handling, absolutely nothing to do with the
 webkit-glib DOM bindings.



 
&gt; &gt; &gt; as much as anything else,
&gt; &gt; &gt; and, in my opinion, should use the same naming convention. Would people agree
&gt; &gt; &gt; with this? Should I just change everything to use the WebKit (or webkit_
&gt; &gt; &gt; dpending on the case) prefix?
&gt; &gt; 
&gt; &gt;  yep, i agree.
&gt; &gt; 
&gt; &gt;  _despite_ the fact that the naming convention is identical to that chosen
&gt; &gt;  by webkit&apos;s gtk port.
&gt; &gt; 
&gt; &gt;  it would be much better for the webkit gtk port to take a prefix of
&gt; &gt;  &quot;WebkitGtk&quot;, and for the webkit-glib code to take a prefix of &quot;Webkit&quot;.
&gt; 
&gt; Well, I don&apos;t know to what extent it is necessary or useful to make this
&gt; differenciation. I see the need for separate libraries, because other
&gt; GObject-based ports, such as the Clutter port, may want to depend on the DOM
&gt; classes but not on WebKitGtk.  If we want all names to reflect this, I don&apos;t
&gt; know, Actually, the WebKit (or webkit_) prefix refers to WebKit as a whole.

 yes, and as such, webkit/gtk is causing inconvenience, having &quot;taken over&quot;
 that namespace.  pywebkitgtk does the same thing - it&apos;s called itself
 &quot;webkit&quot; not &quot;webkitgtk&quot; or &quot;gtk.webkit&quot;.

&gt; given that both WebKitGTk and the DOM classes are wrapping WebKit
&gt; functionality, I don&apos;t see a problem if they use the same GObject namespace.

 ack.


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100989</commentid>
    <comment_count>104</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 01:59:04 -0800</bug_when>
    <thetext>(In reply to comment #101)
&gt; (In reply to comment #100)
&gt; &gt; Can you provide a bit more detail about what you tried here, and what errors
&gt; &gt; you ran in to?  
&gt; 
&gt; Sure. The functions are declared as follows:
&gt; 
&gt;   gpointer toGDOM(WebCore::CSSValue* node);
&gt;   gpointer toGDOM(WebCore::Document* node);
&gt;   gpointer toGDOM(WebCore::Element* node);
&gt;   gpointer toGDOM(WebCore::Event* node);
&gt; 
&gt; There are more, but you get the idea. These functions actually wrap the node
&gt; object into a GObject and return it. If I change them to
&gt; 
&gt;   gpointer toGDOM(PassRefPtr&lt;WebCore::CSSValue&gt; node);
&gt;   gpointer toGDOM(PassRefPtr&lt;WebCore::Document&gt; node);
&gt;   gpointer toGDOM(PassRefPtr&lt;WebCore::Element&gt; node);
&gt;   gpointer toGDOM(PassRefPtr&lt;WebCore::Event&gt; node);
&gt; 
&gt; I get error messages such as the following (this is just the first file that
&gt; fails):
&gt; 
&gt; DerivedSources/gdom/GdomAttr.cpp: In function �void
&gt; gdom_attr__get_property_fn(GObject*, guint, GValue*, GParamSpec*)�:
&gt; DerivedSources/gdom/GdomAttr.cpp:198: error: call of overloaded
&gt; �toGDOM(WebCore::Element*)� is ambiguous
&gt; ./WebCore/bindings/gdom/GDOMBinding.h:61: note: candidates are: void*
&gt; WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::Element&gt;)
&gt; ./WebCore/bindings/gdom/GDOMBinding.h:63: note:                 void*
&gt; WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::EventTarget&gt;)
&gt; ./WebCore/bindings/gdom/GDOMBinding.h:64: note:                 void*
&gt; WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::EventTargetNode&gt;)
&gt; ./WebCore/bindings/gdom/GDOMBinding.h:66: note:                 void*
&gt; WebKit::toGDOM(WTF::PassRefPtr&lt;WebCore::Node&gt;)
&gt; 
&gt; The offending code looks as follows
&gt; 
&gt; 197:  PassRefPtr&lt;WebCore::Element&gt; ptr = gself-&gt;ownerElement();
&gt; 198:  g_value_set_object (value, WebKit::toGDOM(ptr.get()));

 this is exactly what the javascript code does.

 the pointer is stored in a RefPtr&lt;WebCore::Element&gt; in the &quot;internal&quot;
 c++ class that has GDOMObject as its base: a private member called m_impl.

 perhaps the solution to satisfy mark&apos;s concerns is as simple a matter of
 removing the calls to ref() and deref() - i&apos;ll see what effect that has.

 the calls to ref() and deref() were added from copying the style of
 the ObjC bindings DOMObject cacheing.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100991</commentid>
    <comment_count>105</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-12-02 02:25:10 -0800</bug_when>
    <thetext>(In reply to comment #104)
&gt; &gt; The offending code looks as follows
&gt; &gt; 
&gt; &gt; 197:  PassRefPtr&lt;WebCore::Element&gt; ptr = gself-&gt;ownerElement();
&gt; &gt; 198:  g_value_set_object (value, WebKit::toGDOM(ptr.get()));
&gt; 
&gt;  this is exactly what the javascript code does.
&gt; 
&gt;  the pointer is stored in a RefPtr&lt;WebCore::Element&gt; in the &quot;internal&quot;
&gt;  c++ class that has GDOMObject as its base: a private member called m_impl.

The JavaScript bindings do not create a local PassRefPtr to pass in to toJS, as the code quoted above does.

What you describe relates to how the wrapper holds the reference to the wrapped object.  Holding it as a RefPtr is indeed what the JavaScript bindings do, and what most (all?) bindings layers should do.  The Objective-C bindings don&apos;t do this for historical reasons.

&gt;  perhaps the solution to satisfy mark&apos;s concerns is as simple a matter of
&gt;  removing the calls to ref() and deref() - i&apos;ll see what effect that has.

Using ref() and deref() manually without a specific need to do so is a good indication that reference counting is being handled incorrectly.  The latest iteration of the patch still appears to have problems in this area.

One part of the patch doesn&apos;t quite make sense to me:  what is the relationship between the generated &quot;_${className}Private&quot; structures and _GdomDOMObjectPrivate?  They both contain members named coreObject, but only the former uses a RefPtr for this purpose.  This seems as though it could lead to confusion.

&gt;  the calls to ref() and deref() were added from copying the style of
&gt;  the ObjC bindings DOMObject cacheing.

The Objective-C bindings manually ref and deref raw pointers because their existence predates compiler support for storing non-POD C++ objects as members of Objective-C classes.  The compiler has since grown support for this feature, but we&apos;ve not had a chance to update the Obj-C DOM bindings to use RefPtrs.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100992</commentid>
    <comment_count>106</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 02:38:08 -0800</bug_when>
    <thetext>(In reply to comment #105)
&gt; &gt;  the pointer is stored in a RefPtr&lt;WebCore::Element&gt; in the &quot;internal&quot;
&gt; &gt;  c++ class that has GDOMObject as its base: a private member called m_impl.
&gt; 
&gt; The JavaScript bindings do not create a local PassRefPtr to pass in to toJS, as
&gt; the code quoted above does.

 well... i didn&apos;t want to admit this, because i really _do_ want to encourage
 martin&apos;s involvement, but as things stand i&apos;ve not been able to merge in
 your contributions, martin, because, due to the size of the patch, finding
 them is too time-consuming.

 so, i&apos;m still using  http://github.com/lkcl/webkit/tree/16401.master

 the reason i mention that, mark, is because i&apos;m still working with
 toGDOM(WebCore::{insertclassname}*) - as is done in the JSBindings.

&gt; What you describe relates to how the wrapper holds the reference to the wrapped
&gt; object.  Holding it as a RefPtr is indeed what the JavaScript bindings do, and
&gt; what most (all?) bindings layers should do.  The Objective-C bindings don&apos;t do
&gt; this for historical reasons.

 ok - well, i&apos;ve removed the manual calls to ref() and unref() and there
 doesn&apos;t appear to be any collateral damage.

 
&gt; &gt;  perhaps the solution to satisfy mark&apos;s concerns is as simple a matter of
&gt; &gt;  removing the calls to ref() and deref() - i&apos;ll see what effect that has.
&gt; 
&gt; Using ref() and deref() manually without a specific need to do so is a good
&gt; indication that reference counting is being handled incorrectly.  The latest
&gt; iteration of the patch still appears to have problems in this area.

 i had corrected the ref and unrefs to match up - however, given that
 the gdom private c++ objects (all those that derive from GDOMObject)
 all have a RefPtr to the underlying webcore c++ object, it looks like
 the ref() and unref() calls are completely unnecessary.

 and your descriptions of the way things work - and of the historical
 objc workings - would seem to bear that out.

 
&gt; One part of the patch doesn&apos;t quite make sense to me:  what is the relationship
&gt; between the generated &quot;_${className}Private&quot; structures and
&gt; _GdomDOMObjectPrivate?  They both contain members named coreObject, but only
&gt; the former uses a RefPtr for this purpose.  This seems as though it could lead
&gt; to confusion.

 lemme take a look and get back to you.

 thx.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100993</commentid>
    <comment_count>107</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-12-02 02:40:13 -0800</bug_when>
    <thetext>(In reply to comment #106)
&gt;  the reason i mention that, mark, is because i&apos;m still working with
&gt;  toGDOM(WebCore::{insertclassname}*) - as is done in the JSBindings.

If you&apos;d bothered to read my previous comment (comment #102) you&apos;ll see that is exactly the approach that I recommended be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100995</commentid>
    <comment_count>108</comment_count>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2008-12-02 03:33:24 -0800</bug_when>
    <thetext>(In reply to comment #103)
&gt;  that&apos;s an absolutely necessary wrapper object that contains the
&gt;  pure virtual function getGObjType(), and is tied in to the
&gt;  DOM Object cache in GDOMBinding.cpp
&gt; 
&gt;  without that pure virtual function, the whole system collapses as
&gt;  you cannot correctly typecast an object back to its proper c++
&gt;  core object.

Let me address only this point because I have to leave in a few minutes. I read your comments in the code about the &quot;absolutely necessary getGObjType() virtual method&quot;, and spent quite some time checking all code paths were it was involved. It turns out that this method returns exactly the same GObject type that is stored in the wrapping GObject. After checking the code quite thoroughly, I found that, in practice, all getGObjType() was being used for, was to carry information from the top of the toGDOM functions to the bottom of those same functions. I changed the toGDOM functions to wrap the core objects into GObjects right from the start, and so I could get rid of getGObjType() alltogether.

Just look at the relevant portions (you surely know were to find them, no need to compare) or, even better, run it. It runs here for sure, so certainly getGObjType() was not so absolutely necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100996</commentid>
    <comment_count>109</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 03:41:56 -0800</bug_when>
    <thetext>i did.(In reply to comment #107)
&gt; (In reply to comment #106)
&gt; &gt;  the reason i mention that, mark, is because i&apos;m still working with
&gt; &gt;  toGDOM(WebCore::{insertclassname}*) - as is done in the JSBindings.
&gt; 
&gt; If you&apos;d bothered to read my previous comment (comment #102)

 i did.

&gt; you&apos;ll see that is
&gt; exactly the approach that I recommended be used.

 this is a complex area which is difficult to understand: even with the
 (simple) fix of removing ref() and unref() and even in the evidence of
 an (empirical) test not blowing up, i still don&apos;t fully get why it doesn&apos;t
 fall over.

 so, your explanations have helped to bring about a tentative experiment
 that has succeeded - and you should be proud of that rather, than critical.

 please stick to our agreement of six or so weeks ago, it will make everyone&apos;s
 lives easier.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100997</commentid>
    <comment_count>110</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 04:11:22 -0800</bug_when>
    <thetext>(In reply to comment #108)
&gt; (In reply to comment #103)
&gt; &gt;  that&apos;s an absolutely necessary wrapper object that contains the
&gt; &gt;  pure virtual function getGObjType(), and is tied in to the
&gt; &gt;  DOM Object cache in GDOMBinding.cpp
&gt; &gt; 
&gt; &gt;  without that pure virtual function, the whole system collapses as
&gt; &gt;  you cannot correctly typecast an object back to its proper c++
&gt; &gt;  core object.
&gt; 
&gt; Let me address only this point because I have to leave in a few minutes.

 ok - well, these archives are forever - they&apos;re not going away, they&apos;ll
 be here when you&apos;re back :)

&gt; I read
&gt; your comments in the code about the &quot;absolutely necessary getGObjType() virtual
&gt; method&quot;, and spent quite some time checking all code paths were it was
&gt; involved. It turns out that this method returns exactly the same GObject type
&gt; that is stored in the wrapping GObject.

 ah... ah... um... if it _exists_ yet.

&gt; After checking the code quite
&gt; thoroughly, I found that, in practice, all getGObjType() was being used for,
&gt; was to carry information from the top of the toGDOM functions to the bottom of
&gt; those same functions. I changed the toGDOM functions to wrap the core objects
&gt; into GObjects right from the start, and so I could get rid of getGObjType()
&gt; alltogether.

 if that works, in both the usage cases, i&apos;ll genuinely be dead impressed.

 it&apos;s been so damn long i wish this hadn&apos;t been left for so damn long,
 because i&apos;m struggling to remember the two usage cases.

 the first is clear: there are, what... 150 or more &quot;new&quot; object
 instantiations through GDOMBinding.cpp and from there in many
 cases to GDOMHTMLElementWrapperFactory.cpp (all of which you&apos;ve
 replaced with wrapXxxxXxxx functions).


 the code path that particularly has me concerned is the one where the object
 is NOT in the cache, and DOM.getElementById(&quot;...&quot;),
 DOM.getElementsByTagName(...) etc. are used.

 the WebCore c++ functions return a Node*.  the object is _actually_ an
 (e.g.) HTMLDivElement*, and GDOMBindings.cpp goes to a hell of a lot of
 switch statement trouble to make damn sure that the right gobject is
 created.

 you know what?
 
 i think you&apos;re right - i think it&apos;s those switch statements that do the
 correct work.

 _great_.

&gt; Just look at the relevant portions (you surely know were to find them, no need
&gt; to compare) or, even better, run it.

 *freaks out slightly* :)

&gt; It runs here for sure, so certainly
&gt; getGObjType() was not so absolutely necessary.

 i&apos;ll find out soon enough and get back to you.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100998</commentid>
    <comment_count>111</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 04:25:05 -0800</bug_when>
    <thetext>(In reply to comment #106)
&gt; &gt; One part of the patch doesn&apos;t quite make sense to me:  what is the relationship
&gt; &gt; between the generated &quot;_${className}Private&quot; structures and
&gt; &gt; _GdomDOMObjectPrivate?  They both contain members named coreObject, but only
&gt; &gt; the former uses a RefPtr for this purpose.

 ahh, not quite: a closer look shows that the _GdomDOMObjectPrivate struct
 contains an internal gdom class; _${className}Private contains a
 WebCore::{className}.


 so the purposes are different.

 i&apos;m _hoping_ that martin&apos;s work means that _GdomDOMObjectPrivate can go
 away, as the _${className}Private might be able to, as well.

 will let you know once i&apos;ve overcome my fear of creating another branch
 in the git repository.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101002</commentid>
    <comment_count>112</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 07:39:03 -0800</bug_when>
    <thetext>martin - i&apos;ve just started looking at the patch you created, and i can&apos;t use it and test it because there is critical functionality missing. specifically: it&apos;s missing the toString calls, which are absolutely essential for the project i&apos;m working on (pyjamas-desktop) to actually be useful to anyone.

i&apos;ll have to add them back in, and i will supply two patches: one for everyone else, and one specifically for you (so you can add them in on top of what you already have).


i know why you removed them.

mark: i realise that you&apos;re is advocating that certain functionality is &quot;not to be used&quot;, unfortunately, the justification is at best unreasonable and at worst flawed.

if there was no &quot;legacy&quot; of javascript&apos;s expected functionality, you would be at liberty to dictate the progress and functionality.

however, given that users coming from the javascript environment are going to expect certain functions to exist WITH ABSOLUTELY NO REGARD WHATSOEVER FOR WHATEVER STANDARDS MAY OR MAY NOT EXIST, you cannot unfortunately tell one group of developers &quot;yes if you use javascript it&apos;s ok, you can have functions like toString&quot; and then turn round and say to another group of developers &quot;no, you&apos;re not allowed that, even though you&apos;re used to that functionality and blatant disregard for the W3C standards&quot;.

the glib gdom bindings are not the place to &quot;fight&quot; for w3c standardisation.

if you want the glib gdom bindings, and all other bindings, to not have a toString function or anything else that&apos;s not in the W3C standards, take it up with every single javascript developer in the world and get them to stop using those functions and the functionality that&apos;s not in the standards.  take it up with microsoft, firefox, the developers of opera, and, most importantly, get it removed from webkit&apos;s javascript bindings.

we both know that&apos;s not going to happen, but the reason i mention it is to illustrate that it&apos;s unreasonable to make the glib / gdom bindings &quot;suffer&quot; because a particular standard has been over-ruled by a real world one.

that _also_ having been said: Gecko / XUL has toString, and offers it to
the language bindings.

bottom line: you really _can&apos;t_ tell the glib / gdom bindings that they MUST rigidly adhere to an &quot;unreal&quot; standard.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101003</commentid>
    <comment_count>113</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 07:56:25 -0800</bug_when>
    <thetext>(In reply to comment #109)
&gt; i did.(In reply to comment #107)
&gt; &gt; (In reply to comment #106)
&gt; &gt; &gt;  the reason i mention that, mark, is because i&apos;m still working with
&gt; &gt; &gt;  toGDOM(WebCore::{insertclassname}*) - as is done in the JSBindings.
&gt; &gt; 
&gt; &gt; If you&apos;d bothered to read my previous comment (comment #102)
&gt; 
&gt;  i did.

 additionally, whilst i appreciate that it&apos;s really frustrating to have
 so much to deal with, with this patch - keeping its functionality useable
 and stable _and_ complete _and_ fixing the issues - there is a solution
 which would help solve the frustration of having to look every single time
 through such a large patch, having to look every single time for answers
 in amongst so many comments, and it&apos;s this:

 you land the patch.

 as-is.

 no questions.  no quibbles.  no ifs.  no buts.

 _then_ you - and i - and everyone else - submits _small_ individual patches
 that deal with the remaining issues.

 each individual issue is then isolated, and can be discussed conveniently.

 alternatively, we continue this excruciatingly awkward process where
 approximately... twenty separate and distinct technical issues are
 dealt with in over 110 messages that nobody really wants to search through
 to keep up-to-date.

 in other words, we need a bugtracker and a revision control system because
 apple won&apos;t let us use the existing bugtracker and revision control system.

 if apple won&apos;t let us use the existing bugtracker and revision control system,
 then apple can&apos;t complain when things get frustrating and unwieldy, can they?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101008</commentid>
    <comment_count>114</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 08:56:03 -0800</bug_when>
    <thetext>(In reply to comment #110)
&gt; &gt; After checking the code quite
&gt; &gt; thoroughly, I found that, in practice, all getGObjType() was being used for,
&gt; &gt; was to carry information from the top of the toGDOM functions to the bottom of
&gt; &gt; those same functions. I changed the toGDOM functions to wrap the core objects
&gt; &gt; into GObjects right from the start, and so I could get rid of getGObjType()
&gt; &gt; alltogether.
&gt; 
&gt;  if that works, in both the usage cases, i&apos;ll genuinely be dead impressed.

 martin, you&apos;re a genius: it worked.

         main_frame = self._browser.get_main_frame()
        set_main_frame(main_frame)

        gdoc = main_frame.get_gdom_document()

        body = gdoc.get_elements_by_tag_name(&quot;body&quot;).item(0)
        h = gdoc.create_element(&quot;div&quot;)
        h.append_child(gdoc.create_text_node(&quot;hello world&quot;))
        body.append_child(h)
        h.set_attribute(&apos;id&apos;, &quot;hello world&quot;)

        h1 = gdoc.get_element_by_id(&quot;hello world&quot;)

        print h, h1

 h == h1.  success.

 so - that leaves toString to be added back in; ref() and deref() to be
 removed (which i tested earlier and will test again);
 that should be everything.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101009</commentid>
    <comment_count>115</comment_count>
      <attachid>25671</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-02 09:10:31 -0800</bug_when>
    <thetext>Created attachment 25671
patch for martin to add

martin, this is for you to add on top of what you already have, to reintroduce the toString, Location and getSelection that you left out.

i&apos;m not sure about the Window properties yet (described as &quot;constructors&quot;). they may prove useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102553</commentid>
    <comment_count>116</comment_count>
      <attachid>26025</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-15 03:40:50 -0800</bug_when>
    <thetext>Created attachment 26025
add gdom_event_target_node_dispatch_event()

this function is necessary in order to be able to simulate events, like this:

doc = webkit_web_frame_get_dom_window(frame);
mouseevent = dom_document_create_event(doc, &quot;MouseEvent&quot;);
gdom_mouse_event_init_mouse_event (mouseevent, gchar * type,
gboolean can_bubble, gboolean cancelable, GdomDOMWindow * view, glong
detail, glong screen_x, glong screen_y, glong client_x, glong
client_y, gboolean ctrl_key, gboolean alt_key, gboolean shift_key,
gboolean meta_key, gushort button, GdomEventTargetNode *
related_target);

and finally:

gdom_event_target_node_dispatch_event(doc, mouseevent)

to actually send off the event as if a real mouse event had occurred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103913</commentid>
    <comment_count>117</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-31 07:52:27 -0800</bug_when>
    <thetext>(In reply to comment #91)
&gt; (In reply to comment #88)
&gt; &gt; (In reply to comment #87)
&gt; &gt; &gt;  #if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
&gt; &gt; &gt;         [DontEnum] DOMString toString();
&gt; &gt; &gt;  #endif
&gt; &gt; &gt; 
&gt; &gt; &gt; toString() is also a JavaScript language concept that other bindings need to
&gt; &gt; &gt; worry about.
&gt; &gt; 
&gt; &gt;  i do keep explaining - but it&apos;s been a while so i will explain it again:
&gt; &gt; javascript is the language that i am targetting as providing _direct_
&gt; &gt; one-for-one, concept-for-concept, function-for-function, class-for-class,
&gt; &gt; attribute-for-attribute equivalence (as closely as possible).
&gt; 
&gt; In that case, your objective is not the same as the objectives of the DOM
&gt; bindings in WebKit.  As I have stated, they are designed to wrap the standard
&gt; WebKit DOM, and only to expose quirks to JavaScript where they are required for
&gt; compatibility with other browsers.

 and, logically by extension, webkit being a browser engine, all applications
 _based_ on webkit thus being browsers, &quot;quirks to Javascript&quot; must be &quot;exposed&quot;
 without fail and without exception on _all_ bindings, such that all
 applications work from the same &quot;standard&quot;.

 even if it&apos;s a damn stupid one that&apos;s dictated by real-world stupidity
 rather than a clean design from W3C.


&gt; The DOM is not JavaScript. 

 i&apos;m fully aware of that.  however, that has nothing to do with the
 DOM _standard_ being over-ridden by IE5, IE6, IE7, IE8, Firefox, Mozilla
 all getting that DOM standard completely wrong, thus forcing the
 DOM standard - as viewed through the eyes of Javascript Bindings - to
 be subtly different.

&gt; I don&apos;t think the argument that a developer expects
&gt; to see JavaScript semantics from a non-JavaScript DOM binding holds much
&gt; weight. 

 well the fact that you don&apos;t see that means that the pyjamas-desktop project
 must be terminated, as there is absolutely zero point in proceeding to use
 webkit (the best and currently only reasonable and viable option to providing
 python bindings to a fully-functioning DOM model).

 so - thank you: the fact that you are unable to see that means that apple
 is responsible for destroying the progress of free software development.


&gt; We&apos;ve had no complaints of this nature, about the Objective-C DOM
&gt; bindings in the many years that they have been part of the project. 

 i would consider that to be an indication that no serious objective-c
 DOM project has ever been developed - certainly not one that covers
 almost 100% of the functionality of the DOM model.

 the pyjamas-desktop project covers quite literally absolutely every
 corner of the DOM model: when porting pyjamas to pyqt4, that failed
 because of limitations in pyqt4.  when porting it to pygtk2, that failed
 even quicker, due to more significant limitations.  when porting it to
 python-pykde, _that_ turned out to have really subtle limitations
 (c++ RTTI has been disabled, and the equivalent of the HashMap in
 JSBindings.cpp and GDOMBindings.cpp utterly relies on RTT) and so _that_
 port failed as well.

 due to the nature of what pyjamas-desktop is, it squeezes every corner of
 its underlying technology until the pips squeak.

 
&gt; &gt; the same thing goes for the &quot;constructors&quot; (if i can get my head round why
&gt; &gt; they&apos;re used).
&gt; 
&gt; Are you seriously arguing that you must have something that you don&apos;t
&gt; understand?  The JavaScript constructors are used only for gaining access to
&gt; the prototype object, a JavaScript concept, which simply does not make sense
&gt; for other DOM bindings.
&gt; 
&gt; &gt; the same thing also goes for the suggestion that you made that i should
&gt; &gt; provide only &quot;integer&quot; input to setWidth() and other functions, because that&apos;s
&gt; &gt; what ObjC does.
&gt; &gt; 
&gt; &gt;  the answer&apos;s &quot;no - absolutely not&quot;.  people who expect to pass in &quot;3em&quot;,
&gt; &gt; &quot;10px&quot;, &quot;50%&quot; will get a nasty shock.
&gt; 
&gt; As I have already stated, people that try and set .width or .height &quot;3em&quot; will
&gt; already get a nasty shock, even from JavaScript.  It does not do what you think
&gt; that it does.

 i don&apos;t care!  if they get a nasty shock from javascript, and they then get the _same_ nasty shock from the gobject bindings _great_.

 bug-for-bug.  feature-for-feature.  nasty-shock-for-nasty-shock.
 as the guardians of webkit, it&apos;s not our job to &quot;care&quot; what happens.

&gt; &gt;  and yes, i really really _do_ need toString() because it&apos;s actually _used_ in
&gt; &gt; the pyjamas-desktop DOM.py module.
&gt; 
&gt; This argument doesn&apos;t carry much weight, as it could be used to get *any*
&gt; change in to WebKit. 

 i don&apos;t know how to respond to this.

 you seem unable to accept reasonable real-world usage as justification
 for providing specific functionality, without which the project i&apos;m working
 on - the only example and _the_ leading free software example - is dead.

 gecko&apos;s language bindings provide toString.

 python-pykde, KHTMLPart&apos;s language bindings provide toString.

 webkit&apos;s javascript language bindings provide toString.

 why are you &quot;dictating&quot; that the webkit gobject bindings should _not_ have toString, when you are being _specifically_ told that a project _needs_ that functionality?


&gt; It can be generalised to: &quot;I&apos;ve written some code in
&gt; another project that depends on my work-in-progress patch, therefore you have
&gt; to accept this change in to WebKit in order to not break that code.&quot;

 it&apos;s not about &quot;breaking&quot; that code - that &quot;code&quot; is DEAD without it.

&gt; All of the objects that provide a .toString() function to JavaScript there are
&gt; native DOM methods to return the same data.

 so what?

&gt;  Applications using the native DOM
&gt; bindings can simply use the appropriate methods to retrieve this information.


 so, i must write some code, &quot;if in pyjamas-desktop, the library being used equals webkit, and the object does not have a toString function, then detect what type it is and then from there work out the quotes appropriate method quotes&apos; else if the library being used is python-gecko, call the toString function, else if the library is python-pykde, call the toString function&quot;.

 not going to happen.

 please ask the gecko developers to remove toString from their language
 bindings, and see how far you get.

 please also ask the KDE KHTML developers to remove toString from their
 language bindings, and see how far you get.


&gt; &gt;  remember, i&apos;m translating the javascript (by hand, unfortunately) in pyjamas
&gt; &gt; into DIRECT and IDENTICAL function calls (in python) that end up calling the
&gt; &gt; webkit-glib bindings.
&gt; &gt; 
&gt; &gt;  if i get *any* discrepancies (such as not having toString), then all of a
&gt; &gt; sudden i&apos;m screwed, because there&apos;s a difference between the pyjamas code
&gt; &gt; (javascript compiler) and the pyjamas-desktop code (webkit-based).
&gt; 
&gt; I think you need to keep in mind that DOM bindings in WebKit do not exist
&gt; solely for the benefit of your project.

 i&apos;m well aware of that.

&gt;  Your project, as the first user of the
&gt; DOM bindings, certainly influences what the initial cut will support, but it in
&gt; no way defines what they *must* support.

 mark.

 you are being dictatorial, unreasonable, and deliberately obstructive.

 why do you _care_ whether there is a toString function that some NONEXISTENT
 projects may or may not use, ESPECIALLY when the ONLY project - that obviously happens to be the first - is TELLING you it needs that function, and is TELLING you that all OTHER language bindings provide that function?

 why do you _care_ about _deliberately_ sticking to the W3C DOM standards, when you&apos;re being told that to do so will result in failure of a project?

 is there something that you&apos;re not telling us?  are you being _paid_ or being instructed by your employer to be deliberately obstructive, and to delay or otherwise scupper the usefulness of the gobject DOM bindings?  because that&apos;s the only possible explanation that i can think of that makes any sense.

 the other possibility is that you&apos;re being obstructive just for the sake of it,  to gain some feeling of power or something.

 instead of dictating what should or should not be in the gobject bindings, which you have _no_ experience of using and the use of which is _not_ in your area of expertise, you should be encouraging this first project that uses them to be successful, as the leader and pathfinder.

 i am perfectly happy to listen to your advise and to learn from your expertise in the inner workings of webkit - your expertise and knowledge of the ref-counting and other technical areas has been absolutely invaluable, and in many other areas as well.

 however, for you to respond to reasonable justification for specific features
 with &quot;that could be a justification to put _anything_ into webkit&quot; is
 completely unprofessional.

 it&apos;s called &quot;moving the goalposts&quot;, so that you &quot;win&quot;.

 you want to &quot;win&quot; - and be a bully while you&apos;re at it.

 i&apos;m sorry to have to be pointing these things out - i really wish i didn&apos;t
 have to be the one to draw these conclusions.  but anyone reviewing these
 records will be able to draw the same conclusions, and likewise wonder why
 you&apos;re being unreasonably obstructive.

 l.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103930</commentid>
    <comment_count>118</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2008-12-31 13:53:01 -0800</bug_when>
    <thetext>mark, hi,

after reviewing and reading what HTMLAppletElement and HTMLEmbedElement are, they are fairly low-priority HTML elements, and so the impact of them being int or strings is minimal.

the reason why i had been so insistent that they be kept - according to the
de-facto standard that is &quot;javascript&quot; - is because i thought for quite some
time that these were offsetWidth and offsetHeight, of HTMLElement!

so, my case for insisting that the de-facto javascript standard be followed,
even though users will shoot themselves in the foot by doing so, still
applies - and even though we&apos;ve been talking somewhat at cross-purposes
(for which i apologise) - _but_, given that it&apos;s _not_ HTMLElement
(thank god) that you&apos;re talking about, but two specific low-key elements,
i don&apos;t care enough about those to press the point.

the number of developers using DOM bindings on those elements is going to
be pretty small.  so - who cares.


toString is a different matter.

the algorithm that you describe - namely to identify those elements where toString is offered, followed by identifying the alternate functions - i know
of a place where that algorithm is already implemented...

... it&apos;s in a project called... WEBKIT.

making every single developer who uses webkit bindings (and expects
toString to exist) _reimplement_ the functionality that _already_ exists
is... petty at best.  i can continue to think of lots of ways to say this:
none of them really get us anywhere, and leave us both wasting time
that would be better spent developing code and serving users.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103931</commentid>
    <comment_count>119</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2008-12-31 14:12:41 -0800</bug_when>
    <thetext>&gt;  however, for you to respond to reasonable justification for specific features
&gt;  with &quot;that could be a justification to put _anything_ into webkit&quot; is
&gt;  completely unprofessional.

I disagree, and I believe it is you who is being unprofessional. I, too, believe your rationale could be used to put anything into webkit. I could write a personal project today which wanted to use a completely insane and non-standard way of handling javascript calls and do just like you are doing, even yelling in (repeated) sentences like you do: &apos;a project which already exist is TELLING you they NEED it&apos;.

So what if my project needs it? So what if pyjamas-desktop needs it? We need to figure out if it is the correct and best way of doing things for WebKit and the bulk of its users, not for your own pet project.
 
I also feel you are being very unprofessional by implying all the time that the bindings you are pushing are a real project, while the Objective-C bindings must be a simple toy (and you have been doing that with other parts of the work, too). The Objective-C bindings exist far longer, and have been used for much longer, and in more projects, so I can&apos;t see how you came to the conclusion that they are toyish.

&gt;  i&apos;m sorry to have to be pointing these things out - i really wish i didn&apos;t
&gt;  have to be the one to draw these conclusions.  but anyone reviewing these
&gt;  records will be able to draw the same conclusions, and likewise wonder why
&gt;  you&apos;re being unreasonably obstructive.

I draw the exact opposite conclusions. Why are _you_ being so unreasonable?

I, for one, am against doing anything to the GObject DOM bindings that deviates from the standard. Where we deviate from the standard, it should be because we&apos;re following a proven de-facto standard, to keep compatibility, not because your personal project needs it, so stop invoking your project as a parameter, pretty please.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103961</commentid>
    <comment_count>120</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-01-01 05:33:37 -0800</bug_when>
    <thetext>gustavo,

i do not know who you are, and so i let your unhelpful comments slide,
the first time (#78).  now i cannot ignore them.

mark and i made an agreement to keep to technical issues - however,
unfortunately, there have been an increasing number of personal accusations
and unprofessional non-technical comments made as &quot;justifications&quot; for
blocking technical and strategic progress, and i cannot any longer keep
silent by ignoring them.


your comments are as unhelpful to the professional development and progress
of webkit glib dom bindings as mark&apos;s comments have been (except for the
technical advice comments he&apos;s been giving, which have been incredibly helpful
and valuable, and have helped the development and progress of the webkit glib
bindings enormously).

i will point out these things and then we will move on.

&gt; So what if my project needs it? So what if pyjamas-desktop needs it? We need to
&gt; figure out if it is the correct and best way of doing things for WebKit and the
&gt; bulk of its users, not for your own pet project.

 the description of the only full and complete project which uses the webkit
 glib dom bindings as &quot;my own pet project&quot; is as insulting and unhelpful as
 when mark also referred to it as &quot;my own pet project&quot;.

 i think it would be a good idea for you to publicly apologise for making
 an accusation that i indulge in &quot;pet projects&quot;.

 also: where are the &quot;other users&quot;?

 tell me where the &quot;other users of webkit glib / dom bindings&quot; are?

 in essence what you&apos;re saying is that pyjamas-desktop is &quot;not worth
 respecting&quot;.  it is &quot;nothing&quot;.

 what you are saying is that, having worked on the glib / dom bindings,
 you are going to wait for _another_ project to come along (not
 pyjamas-desktop) and you are going to listen to and respect them
 enormously, and follow _their_ lead, _their_ advice...

 ... but not any advice or experience that comes from me.

 is that right?


&gt; I also feel you are being very unprofessional by implying all the time that the
&gt; bindings you are pushing are a real project,

 ... and you&apos;re saying that the bindings are not???
 (no of course you&apos;re not - but it just reads that way)

&gt; while the Objective-C bindings must be a simple toy

 to draw that conclusion is faulty logic.  i said &quot;i doubt whether any projects
 that use the objective-c bindings hammer those bindings - make as _full_ use
 of them - as pyjd makes use of the glib/gobject bindings&quot;.

 i anticipate that someone with more experience than i in the objective-c
 bindings will correct me, specifically in the areas of the usage of
 &quot;to string&quot; conversion of elements, and in the areas of functionality of
 HTMLAppletElement and HTMLEmbedElement, specifically the width and height
 properties.

 in the three short weeks in which i developed the webkit-glib bindings,
 due to the nature of what pyjamas-desktop is and does,
 pyjamas-desktop pushed pretty much _every_ single button there is to
 push in webkit.

 what other webkit-related projects do you know of that do that?

 more to the point, what other webkit-related projects have you -
 personally - got _specific_ and _direct_ experience with, that
 involve the glib / dom bindings _and_ absolutely hammer the
 stuffing out of the webkit-glib API?
 

&gt; (and you have been doing that with other parts of the
&gt; work, too). 

 i&apos;m sorry to hear that you were able to draw that perception.

&gt; The Objective-C bindings exist far longer, and have been used for

 to give you a specific example: when i ported pyjamas-desktop onto
 pykhtml / pykde, in under _six hours_ i encountered a very subtle bug
 that has been present in KDE&apos;s python KHTMLPart bindings that has been
 there for a _long_ time.

 nobody - not _anyone_ - not even the developer of PyKHTML
 (see http://paul.giannaros.org/pykhtml/) had spotted the bug.

 as pyjd is effectively a widget set API, it _hammers_ the underlying
 DOM model technology like you would not (and clearly do not) believe.


&gt; much longer, and in more projects, so I can&apos;t see how you came to the
&gt; conclusion that they are toyish.

 i&apos;m sorry to hear that you perceived that i have drawn this conclusion.

 please consider correcting any impression that i have insulted and
 disrespected the webkit developers by implying that i consider such
 incredibly valuable work to be &quot;a toy&quot;.

 the objective-c bindings were an absolutely invaluable guiding light
 in the development of the glib bindings, and i have an enormous amount
 of respect for the technical ability of the developers who wrote that
 code.

 if i did not have so much respect for their code, there is no way that
 i would have been able to have written the glib bindings in such an
 incredibly short amount of time.

 i would have been spending my time &quot;objecting&quot; to various absolutely
 critical design decisions.

 
&gt; &gt;  i&apos;m sorry to have to be pointing these things out - i really wish i didn&apos;t
&gt; &gt;  have to be the one to draw these conclusions.  but anyone reviewing these
&gt; &gt;  records will be able to draw the same conclusions, and likewise wonder why
&gt; &gt;  you&apos;re being unreasonably obstructive.
&gt; 
&gt; I draw the exact opposite conclusions. Why are _you_ being so unreasonable?

 let&apos;s look at the word &quot;un&quot;-reasonable.

 i have given &quot;good reasoned&quot; - reasonable - arguments for following the
 lead of javascript, as a de-facto standard, rather than following one
 which people _try_ to stick to (W3C) - and often fail.

 those arguments have been ignored - and, instead of putting &quot;reasoned&quot;
 and &quot;reasonable&quot; support for the dictats given, &quot;un&quot;-reasoned
 &quot;unreasonable&quot; and logically unsupportable arguments have been given
 instead, such as the one that you also support.

 i am left somewhat amazed.


&gt; I, for one, am against doing anything to the GObject DOM bindings that deviates
&gt; from the standard. Where we deviate from the standard, it should be because
&gt; we&apos;re following a proven de-facto standard,

 hooray!  i absolutely whole-heartedly agree with you!

 _fantastic_!

 now.

 here&apos;s the thing.

 the javascript bindings are a de-facto standard.

 if you believe otherwise, please explain, providing examples and reasonable
 justification, as to why you believe that the JS bindings are not a
 de-facto standard.

 if you agree with me that the javascript bindings are a de-facto standard,
 please state so clearly.



&gt; to keep compatibility,

 hooray!  yes!  exactly!  well done!

&gt; not because
&gt; your personal project needs it, so stop invoking your project as a parameter,
&gt; pretty please.

 once again, i have to point out several things:

 1) describing pyjamas-desktop as a &quot;my personal project&quot; is insulting.
   
    you will work out best how to apologise for saying so.

 2) as the javascript bindings are a de-facto standard, and pyjamas-desktop
    is a port of a javascript compiler which utilises javascript DOM bindings
    and utilises pretty every single damn function and feature _of_ the
    javascript DOM bindings, it is simple logic which leads me to be
    advocating that the glib DOM bindings should support exactly the same
    functionality:

    pyjamas uses JS   DOM  ---&gt;  firefox, IE, safari provide JS DOM bindings
    pyjd    uses Glib DOM  ---&gt;  XUL, PyKHTML, webkit provide ...

    wait..... webkit _doesn&apos;t_ provide full DOM bindings, because
    mark rowe and gustavo norono silva have absolutely no respect for
    my opinion and expertise, believe that i am indulging in
    &quot;pet projecting&quot;, thus dismissing out-of-hand the entire project
    and are going to &quot;wait until someone else comes along with a
    quotes non-pet quotes project&quot;.

    in other words, gustavo norona silva, you don&apos;t trust me, and you
    have no respect for my work.

    ... do you?
 
 3) any use of a sentence which has the words &quot;pretty please&quot; in it, between
    people who have _zero_ prior context or conversational interaction,
    is wildly inappropriate for a technical forum.

    ESPECIALLY one which will be a permanent record of the development of
    a strategically important free software project such as this one.


so.

let&apos;s draw some conclusions, and let&apos;s rewrite what you&apos;ve written,
justavo, so that it is more appropriate, and then i will respond to that.

&gt; &gt;  however, for you to respond to reasonable justification for specific features
&gt; &gt;  with &quot;that could be a justification to put _anything_ into webkit&quot; is
&gt; &gt;  completely unprofessional.

&gt; luke, i do not know who you are, and i have never spoken to you before,
&gt; but the way that you are coming across does unfortunately look as
&gt; unprofessional as you are saying that mark is being.  i trust that you
&gt; have good reasons for saying what you are, but surely there must be
&gt; better ways to say it?

 gustavo, thank you for responding - yes it&apos;s most unfortunate that this
 highly strategically important free software opportunity is fast becoming
 a bun-fight with an apple employee.
 
 i realise that i&apos;m not entirely at ease, sometimes, with communication of
 highly technical issues: it often takes several rounds for me to get it
 right, and i have had financial pressures to deal with that haven&apos;t helped
 my frame of mind.

 i apologise for this, and trust that you will make allowances.

 yes there are very good reasons for pressing this point, and i seem to
 be making a bit of a hash of explaining them.  it doesn&apos;t help that mark&apos;s
 attitude is an adversarial one, where he is working to &quot;knock down&quot;
 rather than &quot;cooperate&quot;.

 it&apos;s this that is what i regard as unprofessional on his part, especially
 as an employee and representative of the billion-dollar corporation called
 &quot;apple&quot;.

 if i appear unprofessional, myself, it&apos;s because i am reacting out of
 surprise, being completely caught off-guard at being treated so badly.


&gt; regarding your rationale, i have to agree with mark that it _does_
&gt; look as if it could be used to &quot;put anything into webkit&quot; as mark
&gt; unfortunately puts it, and i would welcome a clarification from you
&gt; on this.  it certainly looks, on the face of things, like you are
&gt; seeking the addition of a non-standard way to handle javascript calls,
&gt; and if that is the case then mark is perfectly justified, in my
&gt; opinion, in ensuring that that does not happen.

 ah - i&apos;m glad that you raised this, because it is most certainly _not_
 the case that i am looking to &quot;extend&quot; the bindings &quot;beyond&quot; what
 _existing_ de-facto standards already provide.

 if you look beyond the shouting, you will see that &quot;toString&quot; and also
 the properties of HTMLEmbedElement and HTMLAppletElement are part of a
 &quot;de-facto&quot; javascript standard which has been &quot;forced&quot; onto webkit&apos;s
 JS bindings, against apple&apos;s will.

 my take on this is that once something is &quot;forced&quot; into the de-facto
 Javascript bindings standard, it&apos;s really too late: it must _become_
 part of that de-facto standard, and thus must become part of other
 language bindings at all.

 all or not at all.

 and given that &quot;not at all&quot; is not possible, it must be &quot;all&quot;.

 to do otherwise is... well... you think of a word to describe it,
 because i can&apos;t think of one that mark is willing to accept.


&gt;So what if my project needs it? So what if pyjamas-desktop needs it? We need to
&gt;figure out if it is the correct and best way of doing things for WebKit and the
&gt;bulk of its users, not for your own pet project.

&gt; in saying tha &quot;pyjamas desktop needs it&quot;, unfortunately you haven&apos;t
&gt; clearly said _why_ pyjamas-desktop needs these features.  either that,
&gt; or i am misunderstanding something, for which i apologise.
&gt; We need to figure out if it is the correct and best way of doing things
&gt; for WebKit and the bulk of its users, as well as for the project that
&gt; you&apos;re working on.  pyjamas-desktop and the invaluable work you&apos;ve done
&gt; in adding python bindings to the DOM model in pywebkitgtk is the only
&gt; example that uses the webkit-glib dom bindings _right now_ but we need
&gt; to think ahead.

 yes, i absolutely agree with you - and that&apos;s exactly the perspective
 from which i have been thinking.  i did not think it necessary to emphasise
 this, as i considered that, given that glib/gobject has multiple language
 bindings autogenerators it would be implicit.... you get what i&apos;m trying
 to say, i hope - but i apologise for not being clear.

 again, the real key here is in the fact that the javascript DOM features
 make the javascript bindings an over-riding de-facto standard, and i believe
 that it would be a serious mistake to attempt to make the W3C standard
 the &quot;lead&quot;.

 pyjamas-desktop is just the one [and currently the only] example where,
 if you do _not_ have webkit&apos;s glib DOM bindings be as identical as possible
 to the webkit JS bindings, then pyjamas-desktop becomes _very_ very awkward
 if not impossible to do.

 however i do appreciate that it is _only_ an example, but to ignore that
 example, instead of learning from the difficulties it has encountered,
  _does_ strike me as being a little bit... odd.

 surely, other projects (which don&apos;t yet exist!) should be learning from
 this, and going, &quot;hmmm.... that&apos;s really interesting - we should be watching
 out for that, and making sure that apple _don&apos;t_ push the W3C standards
 over-and-above the de-facto Javascript standard, because we might run into
 the same difficulties that this guy lkcl is describing that his obscure
 project we&apos;ve never heard of is running into&quot;.



.... gosh, this is taking up an enormous amount of my time.

i&apos;m going to leave it there, and i trust that you can see what i am
trying to do by rewriting what you&apos;ve said, and i trust that you
can see how much easier it is to answer things in the rewritten
style.

no longer do i have to tiresomely &quot;counteract&quot; every single statement
and sentence that you make (except the one about javascript being
a de-facto standard! :)

instead i can focus on clarification of my points, and can clear
up any misunderstandings, and, through successive iterations we
work _together_ on the glib bindings, instead of working
_against_ each other.

yes?


i will leave it up to you as to whether you would like to continue
the rewrite, following the far-less-inflammatory style - one which
leaves an opening and an opportunity for discussion, rather than
one which i would not expect to come from an experienced free
software developer with an &quot;@gnome.org&quot; email address.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103962</commentid>
    <comment_count>121</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-01-01 06:38:13 -0800</bug_when>
    <thetext>IHTMLStyle.toString:
http://msdn.microsoft.com/en-us/library/aa768820(VS.85).aspx

IDOMTextNode.toString:
http://msdn.microsoft.com/en-us/library/aa704073(VS.85).aspx

IHTMLElement.toString:
http://msdn.microsoft.com/en-us/library/aa752332(VS.85).aspx

IHTMLElementCollection.toString:
http://msdn.microsoft.com/en-us/library/aa703933(VS.85).aspx

IHTMLSelectElement.toString:
listed in wine-dev&apos;s mshtml.idl file - so we know it exists - but it&apos;s not actually listed in the msdn online documentation.  IHTMLSelectElement has _five_ extensions (1-5 _and_ an Ex!) so it doesn&apos;t surprise me that the docs are out-of-date.

IOmNavigatorElement.toString:
http://msdn.microsoft.com/en-us/library/aa703735(VS.85).aspx

IHTMLLocation.toString:
http://msdn.microsoft.com/en-us/library/aa703648(VS.85).aspx

IHTMLWindow2.toString:
http://msdn.microsoft.com/en-us/library/aa741504(VS.85).aspx

IHTMLDocument2.toString:
http://msdn.microsoft.com/en-us/library/aa752636(VS.85).aspx

IHTMLCommentElement.toString:
exists in wine-dev mshtml.idl so we know it exists but it is not listed in the msdn documentation.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103963</commentid>
    <comment_count>122</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-01-01 06:49:53 -0800</bug_when>
    <thetext>relevant sections for XUL / Gecko.  note the warnings at the top of each and every one of these pages: the 1.9 documentation _is_ relevant (as they define the interfaces)

http://www.xulplanet.com/references/xpcomref/ifaces/nsIScriptError.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIMsgIdentity.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIException.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIMsgAccount.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIDOMRange.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsISupportsPRUint32.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIMsgIncomingServer.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsISupportsString.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIDOMToString.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIJSID.html#method_toString
http://www.xulplanet.com/references/objref/Location.html#method_toString
http://www.xulplanet.com/references/objref/Selection.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIAtom.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsISelection.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIPrefLocalizedString.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIStackFrame.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIDOMLocation.html#method_toString
http://www.xulplanet.com/references/xpcomref/ifaces/nsIDOMDOMConstructor.html#method_toString
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103964</commentid>
    <comment_count>123</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-01-01 07:12:41 -0800</bug_when>
    <thetext>example useage of PyKDE&apos;s KHTMLPart document.toString() function:

http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg09577.html

unfortunately, the discussion centres around how the function causes a segfault!

but the documentation on Document.toString&apos;s existence, in the KDE HTML DOM model bindings, is here:
http://developer.kde.org/documentation/library/3.3-api/khtml/html/classDOM_1_1Document.html

hmmm.. that seems a bit out-of-date, here&apos;s a more up-to-date one:
http://api.kde.org/3.5-api/kdelibs-apidocs/khtml/html/classDOM_1_1Document.html#fa3edf3819e0dc6ccf120e5e5d462ccf

there&apos;s also a kde 4.x and a kde 4.1 version.

there is however also a toHTML() function in DOMNode, which is listed as &quot;deprecated&quot; - presumably someone decided that calling toString &quot;toHTML&quot; was a bad idea.

ah!  finally!  i found a by-function-name reference:
http://api.kde.org/4.0-api/kdelibs-apidocs/khtml/html/functions_0x74.html

which shows that the two occurrences of toString() are in DOM::Document
and DOM::Range:

http://api.kde.org/4.0-api/kdelibs-apidocs/khtml/html/classDOM_1_1Range.html#2358111339856f9a61bf0456d03daf3a

also, it looks like DOM::Node.toHTML _didn&apos;t_ get deprecated, after all,
and is still there:
http://api.kde.org/4.x-api/kdelibs-apidocs/khtml/html/classDOM_1_1Node.html#249840ef6631b425d7ced51397545b32


so, overall, KDE&apos;s KHTMLPart interface has a limited supply of &quot;toString&quot; functions [which make it a far-from-ideal candidate as a target for
pyjd but that&apos;s another story] but it _does_ actually _have_ the most
important toString functions - the ones for DOM::Document and DOM::Range.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103966</commentid>
    <comment_count>124</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-01-01 07:19:56 -0800</bug_when>
    <thetext>from the quoted references to &quot;toString&quot; which can clearly be shown
to exist in all the major browser engines - not specifically limited
to &quot;javascript&quot; but to all the major browser engines&apos; generic language
bindings - it can be concluded that leaving out &quot;toString&quot; because it
&quot;isn&apos;t in the W3C specification&quot; would be a serious mistake.

that, given the prevalent support for &quot;toString&quot; in all other
competitor products to webkit, users of webkit DOM bindings
_would_ find it irritatingly odd that &quot;toString&quot; is missing.

i have to be honest with you, i was a bit surprised to find that
IE&apos;s MSHTML.idl definition file supports it! :)

wine&apos;s reverse-engineered version of mshtml.idl is here:
    http://source.winehq.org/source/include/mshtml.idl

this illustrates why i have been advocating that javascript&apos;s
bindings should be the guiding light.

i trust that i no longer have to go through such extreme lengths
to demonstrate the case for javascript&apos;s de-facto standard being
authoritative over the W3C &quot;non-real-world&quot; standard.  there are
over 300 objects, 1500 functions and tens of thousands of
properties, and that&apos;s _without_ the SVG canvas bindings and
without having enabled HTML5 video support (which i haven&apos;t
tried yet).

to have to go through &quot;justifying&quot; every single difference would
be tedious in the extreme.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103967</commentid>
    <comment_count>125</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-01-01 07:36:48 -0800</bug_when>
    <thetext>http://msdn.microsoft.com/en-us/library/aa703907(VS.85).aspx

    HRESULT IHTMLEmbedElement::get_width(VARIANT *p);
    HRESULT IHTMLEmbedElement::put_width(VARIANT v);

Parameters

    p
        Pointer to a variable of type VARIANT of type VT_I4 or VT_BSTR that receives one of the values listed in Possible Values.
    v
        VARIANT of type VT_I4 or VT_BSTR that specifies one of the values listed in Possible Values.

Possible Values

    width	Integer that specifies the width of the object in pixels.
    percentage	Not applicable to C++.

Return Value

    Remarks

        This property is an integer value. Although an HTML author can specify the width as a percentage, this property always specifies the width in pixels in C++.


oh look!  in IE, they have encountered exactly the same pain as webkit, and chose to deal with it by allowing IHTMLEmbedElement.width to be set to _either_ a string _or_ an integer.


i won&apos;t go through all of the properties for IE&apos;s HTMLEmbedElement and HTMLAppletElement - i&apos;m wasting enough time on this as it is.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103969</commentid>
    <comment_count>126</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-01-01 07:39:41 -0800</bug_when>
    <thetext>KDE&apos;s HTMLAppletElement setHSpace(DOMString &amp;string) function:
http://api.kde.org/4.0-api/kdelibs-apidocs/khtml/html/classDOM_1_1HTMLAppletElement.html#8b2abf2ea0476bb40af513232240f107

KDE&apos;s HTMLAppletElement setHSpace(long value) function:
http://api.kde.org/4.0-api/kdelibs-apidocs/khtml/html/classDOM_1_1HTMLAppletElement.html#3c84c8400913f971db4c58a87a99e2c5

again - KDE supports _both_ long _and_ string setting for hspace.  vspace is the same.

KDE does not appear to _have_ an HTMLEmbedElement (either that or i can&apos;t find it) - i presume that embedding is done in some alternative KDE-specific way: KHTMLPart is after all an &quot;embedded&quot; part, itself.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103971</commentid>
    <comment_count>127</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-01-01 07:46:11 -0800</bug_when>
    <thetext>Documentation for XUL&apos;s HTMLAppletElement:
http://www.xulplanet.com/references/objref/HTMLAppletElement.html

interesting.  hspace and vspace are PRInt32s.

Documentation for HTMLEmbedElement:
http://www.xulplanet.com/references/objref/HTMLEmbedElement.html

even _more_ interesting: width and height are String properties.

no information is given on exactly what values are supported in these
strings.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109237</commentid>
    <comment_count>128</comment_count>
      <attachid>27549</attachid>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-10 20:12:44 -0800</bug_when>
    <thetext>Created attachment 27549
DOM patch with lots of fixes, updated to revision 40813

My colleague Jim and I are highly interested in seeing DOM bindings added to WebKit/GTK.  Over the last couple of weeks, we&apos;ve extensively cleaned up and enhanced the last patch posted here (posted by Martin Soto in comment #96 on 11/30) in an effort to resolve all outstanding issues.  Here is a list of the major changes we&apos;ve made, followed by a list of potentially open questions.

- We&apos;ve updated the patch to build with a current WebKit (revision 40813, corresponding to the latest nightly build).

- In the last patch, each wrapper GObject pointed to a private structure which in turn pointed to a native C++ WebKit object.  (Comments on this thread show that there was previously yet one more level of indirection which Martin has already removed.)  These pointers were duplicated at each level of the inheritance hierarchy.  For example, a GdomHTMLButtonElement pointed to a native HTMLButtonElement, but the parent class GdomHTMLElement and all other parent classes also contained pointers to the native object.  This was unnecessary and wasteful.

With our changes, each wrapper GObject simply contains an opaque void * which actually points to the native C++ object.  We&apos;ve eliminated the duplicate pointers in the inheritance hierarchy as well as the private structure.  Comments in this thread indicate that the private structure was created in case we might need to store extra data there in some future version of the code.  We doubt that will be necessary, but if we do need a private structure at some point we can simply update the void * to point to it without breaking binary compatibility with applications that use DOM objects.

Because we&apos;ve eliminated the private structure, we can&apos;t use a C++ smart pointer to point to the native C++ object, and so we call ref() manually when a GObject wrapper is initialized and call deref() when it&apos;s finalized.  As some reviewers pointed out, the existing code called ref() on some smart pointers in some cases, which was unnecessary; we&apos;ve eliminated that wherever it happened in the code.

- The W3C DOM specifies that certain methods may raise exceptions.  In the last patch, DOM exceptions were not made available in any way to an application using the GObject wrapper layer.  The usual way to report errors in GObject is through a parameter of type GError ** at the end of a method&apos;s parameter list.  (In fact, Vala&apos;s bindings generator can automatically generate exceptions in Vala when calling a GObject method that takes a GError **).   With our changes, whenever a DOM method raises an exception, the corresponding GObject method has a GError **.  If an exception occurs, the returned GError contains a textual description of the error as reported by the DOM code.

- In the last patch, each DOM attribute was exposed as a GObject property, but not via GObject getter/setter methods. In GTK it&apos;s actually common to expose properties in both ways; for example, GTKWidget has both a &quot;name&quot; property and methods gtk_widget_get_name() and gtk_widget_set_name().  We feel that GObject properties alone are inadequate for exposing DOM attributes, both because they are relatively inefficient (they are accessed via a string name provided at runtime) and also because there&apos;s no way to report error information when a caller gets or sets a property.

With our changes, each DOM attribute is exposed both as a property and via getter/setter methods.  When the DOM specifies that getting or setting the attribute may raise an exception, the corresponding getter/setter method takes a GError ** for error reporting.  We&apos;re not particularly attached to using GObject properties at all, and can remove them if you like; that would significantly reduce code size (especially in the generated code).  It&apos;s up to you.

- The last patch contained some support for reporting DOM events to the GObject caller.  The event interface was different from that specified by the DOM and the implementation was incomplete (there was no way to unregister an event listener).  In our patch we&apos;ve removed all the event code, simply because events raise various design issues and we&apos;d prefer to deal with them in a subsequent iteration.  As various commenters have mentioned, the patch is large enough as it is and removing the event code seemed like a good way to reduce its size.

- We&apos;ve eliminated IDL changes which caused the GObject binding to behave like JavaScript in some special cases.  All GObject calls now behave like the static Objective-C binding.

- gdom.h previously included a large hard-coded list of files; we now autogenerate this.  The makefiles also included large hard-coded lists of GObject wrapper sources; these are now generated dynamically (just like the lists of JObject wrapper sources to be built).

- By removing events, autogenerating file lists and performing miscellaneous code cleanup we&apos;ve reduced the size of the patch from over 5500 lines to under 3500 lines.

- We&apos;ve eliminated the separate defines FEATURE_DEFINES_GDOM and FEATURE_DEFINES_JAVASCRIPT in the makefiles.

- With the last patch, header files were installed in two places: in include/webkit-1.0/gdom and in include/webkit-1.0/webkit.  We now install them only in include/webkit-1.0/gdom.

- Where possible, we&apos;ve renamed source and header files to have all-lowercase names as is conventional in GTK.  The autogenerated wrapper files still have CamelCase names because we use implicit makefile rules to generate these from .idl files, which also have CamelCase names, and GNU make doesn&apos;t allow us to perform a lowercasing transformation inside the implicit the rule.  So the autogenerated filenames don&apos;t quite fit the GTK convention; we don&apos;t think this is a significant problem.

- The last patch included a function named GStringConvert; this name didn&apos;t fit the coding conventions.  We&apos;ve renamed it to gdom_gstring_convert().

- There were some lines of the form #include &quot;gdom/xxx.h&quot;.  We&apos;ve changed these to look like #include &quot;xxx.h&quot;; the makefiles now include the gdom directory in the include path if necessary.

- Some #includes used angle brackets unnecessarily as pointed out by Alp in comment 28; we&apos;ve fixed this.

- The Apple copyright lacked the text &quot;All rights reserved&quot; in some source files; we&apos;ve fixed this.

- The Perl generator script contained lots of tabs; we&apos;ve replaced them with spaces.

== open questions ==

Here are design decisions that potentially remain open along with their current status.  We&apos;re happy to change any of these in the code to satisfy the consensus of the WebKit team.

1. How should GObject DOM classes be named?  To represent the DOM interface called Element, we could use any of the following:  GdomElement (the current choice); GDOMElement; WebKitElement; WebKitDOMElement.

We don&apos;t have a strong opinion here.  It&apos;s slightly unusual for a single GTK package to contain classes with two different prefixes, and so if we use the Gdom or GDOM prefix we&apos;ll need to play some tricks in order to autogenerate Vala bindings for the webkit-1.0 package, which will contain some classes prefixed with WebKit (e.g. WebKitWebFrame) and others prefixed with Gdom/GDOM.  (We&apos;ve actually done this, and can share our Vala bindings generator script if you like.)

If we use names such as WebKitElement or WebKitDOMElement then Vala bindings should be automatic.  If we use WebKitElement without the word DOM, then API documentation which shows a sorted list of classes will show DOM classes interspersed with other WebKit classes; this might be confusing.  On the other hand, the WebKitDOM prefix will lead to long names such as WebKitDOMHTMLBlockquoteElement.

If we use either the Gdom, GDOM or WebKitDOM prefix we might want to remove duplicate occurrences of the word DOM; for example, we could replace GdomDOMObject with GdomObject.  We have not done this at this point.

2. Should a DOM attribute be exposed both via getter/setter methods and via a property, or only via getter/setter methods?  As mentioned above, we currently have both getters/setters and properties but are willing to take the property code away if desired.

3. How does a string returned by a DOM function get freed?  Currently the caller is responsible for freeing.  In comment 28 Alp suggested other possible mechanisms such as some sort of garbage collection.  We believe that the existing caller-frees policy is the way to go; it is the usual mechanism in GObject classes and will play well with higher-level language bindings.

===

We&apos;re looking forward to having these bindings in WebKit!  Please let me know if there&apos;s anything more we can do to help out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109256</commentid>
    <comment_count>129</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-02-10 22:29:01 -0800</bug_when>
    <thetext>Adam, thanks for taking the time to work on this feature.  Hopefully some of those working on the GTK port API (Christian, Xan, Holger?) can comment on the API aspects of this patch.  I&apos;ll try and find time to look over the patch myself later this week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109267</commentid>
    <comment_count>130</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-11 01:20:00 -0800</bug_when>
    <thetext>(In reply to comment #128)

Hi, thanks for picking up this!

&gt; == open questions ==
&gt; 
&gt; Here are design decisions that potentially remain open along with their current
&gt; status. �We&apos;re happy to change any of these in the code to satisfy the
&gt; consensus of the WebKit team.
&gt; 
&gt; 1. How should GObject DOM classes be named? �To represent the DOM interface
&gt; called Element, we could use any of the following: �GdomElement (the current
&gt; choice); GDOMElement; WebKitElement; WebKitDOMElement.
&gt; 
&gt; We don&apos;t have a strong opinion here. �It&apos;s slightly unusual for a single GTK
&gt; package to contain classes with two different prefixes, and so if we use the
&gt; Gdom or GDOM prefix we&apos;ll need to play some tricks in order to autogenerate
&gt; Vala bindings for the webkit-1.0 package, which will contain some classes
&gt; prefixed with WebKit (e.g. WebKitWebFrame) and others prefixed with Gdom/GDOM.
&gt; �(We&apos;ve actually done this, and can share our Vala bindings generator script if
&gt; you like.)
&gt; 
&gt; If we use names such as�WebKitElement or WebKitDOMElement�then Vala bindings
&gt; should be automatic. �If we use WebKitElement without the word DOM, then API
&gt; documentation which shows a sorted list of classes will show DOM classes
&gt; interspersed with other WebKit classes; this might be confusing. �On the other
&gt; hand, the WebKitDOM prefix will lead to long names such as
&gt; WebKitDOMHTMLBlockquoteElement.
&gt; 
&gt; If we use either the Gdom, GDOM or WebKitDOM prefix we might want to remove
&gt; duplicate occurrences of the word DOM; for example, we could replace
&gt; GdomDOMObject with GdomObject. �We have not done this at this point.

When this has come up before I&apos;ve said that I prefer consistency and making life easier for bindings in general, even if the price to pay is longer type names for C hackers. IMHO C/GObject hackers are already used to boilerplate and complexity that is only there for the benefit of the bindings, and they usually solve this with macros and code completion :)

&gt; 
&gt; 2. Should a DOM attribute be exposed both via getter/setter methods and via a
&gt; property, or only via getter/setter methods? �As mentioned above, we currently
&gt; have both getters/setters and properties but are willing to take the property
&gt; code away if desired.

I think we should have both. AFAIK explicit getter/setter methods predate the property system, and are only retained for compatibility and performance reasons, but I&apos;m pretty sure many bindings will construct their getter/setters from the property directly, maybe overriding them with the direct access functions IF they exist (this is what the Java bindings do IIRC), or providing both the same way C does. Also properties have other benefits, like notify functions, mass set/get, etc.

&gt; 
&gt; 3. How does a string returned by a DOM function get freed? �Currently the
&gt; caller is responsible for freeing. �In comment 28 Alp suggested other possible
&gt; mechanisms such as some sort of garbage collection. �We believe that the
&gt; existing caller-frees policy is the way to go; it is the usual mechanism in
&gt; GObject classes and will play well with higher-level language bindings.

Completely agree. Anything else would probably be a nightmare for bindings.

&gt; 
&gt; ===
&gt; 
&gt; We&apos;re looking forward to having these bindings in WebKit!  Please let me know
&gt; if there&apos;s anything more we can do to help out.
&gt; 


Some small nitpicks from the patch, style issues:

You are using NULL all over the place,  I think &apos;0&apos; is preferred for stuff that goes into WebCore/ (we use, or try to use, NULL for C-ish files that go into WebKit/gtk/ though...)

+gpointer GDOMObjectCache::getDOMObject(void* objectHandle)
+{
+    gpointer ret = domObjects().get(objectHandle);
+    return ret;
+}

No need for the variable.

+gpointer toGDOM(HTMLCollection* collection)
+{
+    if (!collection)
+        return NULL;

(...)

Is it a valid usage of the function to pass NULL? If not you should use g_return_val_if_fail() IMHO.


- The g_dom_string_convert methods seems pretty generic, maybe you could change the gdom_ prefix for something else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109270</commentid>
    <comment_count>131</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-11 02:21:08 -0800</bug_when>
    <thetext>(In reply to comment #128)
&gt; Created an attachment (id=27549) [review]
&gt; - In the last patch, each DOM attribute was exposed as a GObject property, but
&gt; not via GObject getter/setter methods. In GTK it&apos;s actually common to expose
&gt; properties in both ways; for example, GTKWidget has both a &quot;name&quot; property and
&gt; methods gtk_widget_get_name() and gtk_widget_set_name(). �We feel that GObject
&gt; properties alone are inadequate for exposing DOM attributes, both because they
&gt; are relatively inefficient (they are accessed via a string name provided at
&gt; runtime) and also because there&apos;s no way to report error information when a
&gt; caller gets or sets a property.

BTW, one way of dealing with this would be to add a property to the base class of the DOM objects that would hold the error, so you could do something like g_object_get (object, &quot;dom-property&quot;, &amp;dom, &quot;dom-error&quot;, &amp;error, NULL); I guess you&apos;d define it so that it only holds the first error reported, to match the semantics of exceptions (meaning that if you try to access several properties at the same time you&apos;ll only get the first error in case there&apos;s several..). Of course setter/getter functions are easier because you can only access one property at a time :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109273</commentid>
    <comment_count>132</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-02-11 04:14:52 -0800</bug_when>
    <thetext>(In reply to comment #128)
&gt; Created an attachment (id=27549) [review]
&gt; DOM patch with lots of fixes, updated to revision 40813
&gt; 
&gt; My colleague Jim and I are highly interested in seeing DOM bindings added to
&gt; WebKit/GTK. 

 fantastic!

&gt; - We&apos;ve updated the patch to build with a current WebKit (revision 40813,
&gt; corresponding to the latest nightly build).

 great!
 
&gt; - In the last patch, each wrapper GObject pointed to a private structure which
&gt; in turn pointed to a native C++ WebKit object.  (Comments on this thread show
&gt; that there was previously yet one more level of indirection which Martin has
&gt; already removed.)  These pointers were duplicated at each level of the
&gt; inheritance hierarchy.  For example, a GdomHTMLButtonElement pointed to a
&gt; native HTMLButtonElement, but the parent class GdomHTMLElement and all other
&gt; parent classes also contained pointers to the native object.  This was
&gt; unnecessary and wasteful.

 yehh, but it worked, and got everyone who was interested in glib/gobject
 bindings &quot;from here to there&quot; :)

&gt; With our changes, each wrapper GObject simply contains an opaque void * which
&gt; actually points to the native C++ object.  We&apos;ve eliminated the duplicate
&gt; pointers in the inheritance hierarchy as well as the private structure.
&gt;  Comments in this thread indicate that the private structure was created in
&gt; case 

 no, not &quot;in case&quot;, it WILL be necessary.  as i did not understand at
 the time what &quot;exec&quot; was for, i removed all instances - several thousand -
 where the &quot;exec&quot;ution context was being used.

 it is NECESSARY not &quot;a nice lovely optional idea&quot; to have a pointer to
 the exception context.

&gt; we might 

 WILL, not might.

&gt; need to store extra data there in some future version of the
&gt; code.

&gt;  We doubt that will be necessary,

 i cannot help you with your doubt.  perhaps if you say &quot;would someone
 be kind enough to explain&quot; then perhaps mark, myself or alp will help
 put you right.


&gt;  but if we do need a private structure
&gt; at some point we can simply update the void * to point to it without breaking
&gt; binary compatibility with applications that use DOM objects.

 great.

&gt; Because we&apos;ve eliminated the private structure, we can&apos;t use a C++ smart
&gt; pointer to point to the native C++ object, and so we call ref() manually when a
&gt; GObject wrapper is initialized and call deref() when it&apos;s finalized.

 ahh... the use of ref() and deref() were a key reason why the existing
 patch was not accepted.  mark cited &quot;use of ref() and deref() typically
 indicate broken code and/or broken design&quot;.


&gt;  As some
&gt; reviewers pointed out, the existing code called ref() on some smart pointers in
&gt; some cases, which was unnecessary; we&apos;ve eliminated that wherever it happened
&gt; in the code.

 good luck :)
 
&gt; - The W3C DOM specifies that certain methods may raise exceptions.  In the last
&gt; patch, DOM exceptions were not made available in any way to an application
&gt; using the GObject wrapper layer. 

 that&apos;s correct.  that&apos;s why there was the &quot;exec&quot; argument, propagated
 literally thousands of times, which i removed (not understanding what it
 was for, and looking to simplify the initial work).

 the javascript bindings choose to store this pointer to exec in the
 private struct.

&gt; The usual way to report errors in GObject is
&gt; through a parameter of type GError ** at the end of a method&apos;s parameter list.

 ahh, thank you.

&gt;  (In fact, Vala&apos;s bindings generator can automatically generate exceptions in
&gt; Vala when calling a GObject method that takes a GError **).   With our changes,
&gt; whenever a DOM method raises an exception, the corresponding GObject method has
&gt; a GError **.  If an exception occurs, the returned GError contains a textual
&gt; description of the error as reported by the DOM code.

 hmm, i wonder how python-pygobject does it.

&gt; - In the last patch, each DOM attribute was exposed as a GObject property, but
&gt; not via GObject getter/setter methods.

 really?  oh.  i thought i had added everything.  oh well.

&gt; With our changes, each DOM attribute is exposed both as a property and via
&gt; getter/setter methods.

 great!

 oo, that would be much better.

&gt;  When the DOM specifies that getting or setting the
&gt; attribute may raise an exception, the corresponding getter/setter method takes
&gt; a GError ** for error reporting.  We&apos;re not particularly attached to using
&gt; GObject properties at all, and can remove them if you like; that would
&gt; significantly reduce code size (especially in the generated code).  It&apos;s up to
&gt; you.

 so that the VALA bindings and the PYTHON bindings can provide exact
 concept-for-concept functionality as the de-facto JAVASCRIPT standard
 as well as the W3C DOM standard, it would make sense to ensure that,
 given that the DOM raises exceptions, also therefore, gobject should
 raise exceptions, yes?


&gt; - The last patch contained some support for reporting DOM events to the GObject
&gt; caller. 

 yes.  event handling is absolutely essential for the gobject bindings
 to be useful.

 * using the python-bindings-to-gobject-bindings, every single event type
 without exception and without fail is captured and processed by the
 &quot;event preview&quot; method, and much more.

 * when the mouse goes outside of the window, there are instances where
 it can be detected that, unless you manually generate a specific mouse
 event, then when the mouse returns into the window, your state machine
 and your application will be utterly confused.

 so not only is it necessary to have event handling but also it is necessary
 to have event _generation_.

 for example event generation would allow developers to create emulated
 keyboards and emulated mouse / touchscreen devices - written in VALA
 or PYTHON (not javascript) or plain c (using the gobject bindings, direct).

 receipt of mouse and/or keyboard events from the device of their choice
 (such as a wii remote)


&gt; The event interface was different from that specified by the DOM and
&gt; the implementation was incomplete (there was no way to unregister an event
&gt; listener).  In our patch we&apos;ve removed all the event code, simply because
&gt; events raise various design issues and we&apos;d prefer to deal with them in a
&gt; subsequent iteration.

 which unfortunately makes the patch useless for anyone who wishes to
 generate or listen to events.

 as you noticed with the much-duplicated-pointers &quot;broken&quot; design,
 a &quot;broken&quot; design which provides specific functionality, even if it&apos;s
 in a &quot;broken design&quot; way, is _much_ more useful than something that
 just... throws out a whole stack of options because it&apos;s not &quot;perfect&quot;,
 yes?

 with a &quot;broken&quot; design, at least people can carry on using the patch,
 even though it&apos;s &quot;broken&quot;, and can help _contribute_.

 if you&apos;ve ripped out that entire functionality, i cannot help you
 easily, to contribute to this patch, because i would first have to
 understand what you&apos;ve done, and _then_ add back in the event handling...
 
 

&gt;  As various commenters have mentioned, the patch is large
&gt; enough as it is and removing the event code seemed like a good way to reduce
&gt; its size.

 the patch provides specific functionality - a complete and comprehensive
 set of functionality - that matches the W3C and the de-facto JAVASCRIPT
 standard functionality.

 without _every_ single one of the features, the patch is utterly useless.

 so you&apos;ve implemented all but 1% of the W3C standard and the de-facto
 JAVASCRIPT standard.

 thus, anyone who needs that last 1% is... screwed.  


&gt; - We&apos;ve eliminated IDL changes which caused the GObject binding to behave like
&gt; JavaScript in some special cases.  All GObject calls now behave like the static
&gt; Objective-C binding.

 as pointed out, this is an execptionally bad idea.

 what you are doing is getting the gobject bindings to conform to the strict
 W3C standard instead of to the de-facto JAVASCRIPT standard.

 the static Objective-C bindings are the _only_ bindings in the world that
 conform to the strict W3C standard.

 actually, as the Objective-C bindings also provide things that are on the
 IE6 list, that are specifically mentioned in the W3C standard as being
 supported only by IE, contrary to the W3C standard, they don&apos;t even do that.
 
 examples of such include offset-width.

 offset-width is NOT a W3C standard, it is a de-facto standard.

 by the logic being dictated, here, offset-width must be REMOVED from
 webkit, yes?

 no.

 because it&apos;s _useful_.  it&apos;s part of the de-facto standard, now.

 i went to a lot of trouble to highlight that _every single one_ of those
 modifications has corresponding equivalents in the competitor products
 to webkit.

 MSHTML.  KHTMLPart.  Gecko.  they all provide the de-facto standard
 bindings as shown in the original patch.

 indicating that it&apos;s actually the objective-c bindings that are borked.


&gt; - gdom.h previously included a large hard-coded list of files; we now
&gt; autogenerate this. 

 hoooraaay! :)

&gt; The makefiles also included large hard-coded lists of
&gt; GObject wrapper sources; these are now generated dynamically (just like the
&gt; lists of JObject wrapper sources to be built).

 yessss, brilliant :)
 
&gt; - By removing events, 

 if i say &quot;that&apos;s not good&quot;, you understand that that&apos;s an understatement
 of the first order, yes?

&gt; autogenerating file lists and performing miscellaneous
&gt; code cleanup we&apos;ve reduced the size of the patch from over 5500 lines to under
&gt; 3500 lines.

 excellent.


&gt; - We&apos;ve eliminated the separate defines FEATURE_DEFINES_GDOM and
&gt; FEATURE_DEFINES_JAVASCRIPT in the makefiles.

 that&apos;s also not good.
 
&gt; - With the last patch, header files were installed in two places: in
&gt; include/webkit-1.0/gdom and in include/webkit-1.0/webkit.  We now install them
&gt; only in include/webkit-1.0/gdom.

 *thinks*.... that&apos;s probaby a good idea.

&gt; - Where possible, we&apos;ve renamed source and header files to have all-lowercase
&gt; names as is conventional in GTK.  The autogenerated wrapper files still have
&gt; CamelCase names because we use implicit makefile rules to generate these from
&gt; .idl files, which also have CamelCase names, and GNU make doesn&apos;t allow us to
&gt; perform a lowercasing transformation inside the implicit the rule.  So the
&gt; autogenerated filenames don&apos;t quite fit the GTK convention; we don&apos;t think this
&gt; is a significant problem.

 likewise.

 it also simplifies the code auto-generation process.
 
&gt; - The last patch included a function named GStringConvert; this name didn&apos;t fit
&gt; the coding conventions.  We&apos;ve renamed it to gdom_gstring_convert().

 it is an &quot;internal&quot; function.  its purpose has nothing to do with gobject.
 to make that clear, i gave it UpperCase naming.

 you would do well to rename it back to a more suitable UpperCase
 naming, picking one that is more suited to WebKit c++ coding conventions
 than glib / gobject ones.

 the function should NOT be utilised or exposed as part of the gobject
 glib gdom bindings.  i repeat.  it is a PRIVATE and INTERNAL function.


&gt; - There were some lines of the form #include &quot;gdom/xxx.h&quot;.  We&apos;ve changed these
&gt; to look like #include &quot;xxx.h&quot;; the makefiles now include the gdom directory in
&gt; the include path if necessary.

 _great_

&gt; - Some #includes used angle brackets unnecessarily as pointed out by Alp in
&gt; comment 28; we&apos;ve fixed this.

 _great_.
 
&gt; - The Apple copyright lacked the text &quot;All rights reserved&quot; in some source
&gt; files; we&apos;ve fixed this.
&gt; 
&gt; - The Perl generator script contained lots of tabs; we&apos;ve replaced them with
&gt; spaces.

 i&apos;m not a perl hacker :)
 
&gt; == open questions ==
&gt; 
&gt; Here are design decisions that potentially remain open along with their current
&gt; status.  We&apos;re happy to change any of these in the code to satisfy the
&gt; consensus of the WebKit team.
&gt; 
&gt; 1. How should GObject DOM classes be named?  To represent the DOM interface
&gt; called Element, we could use any of the following:

&gt;  GdomElement (the current choice);

 fine.

&gt; GDOMElement;

 do not do this.  stick to SingleCapitalLetters.  the python-pygobject
 bindings auto-generator goes horribly horribly wrong if you have
 MULTIPLECapitalLetters.

 i&apos;ve spoken to the developers of python-pygobject: they are aware of
 the issue and, given that it is a convention to have SingleCapitalLetters
 they have ABSOLUTELY NO INTENTION of supporting MULTIPLECapitalLetters.

 the reason cited is that the code in python-pygobject is complex enough
 as it is without having to support non-standard conventions.


&gt; WebKitElement;

 fine.  also already discussed with martin, who believes that it is
 a good choice.

 although it overlaps the gtk-utilised namespace (e.g. WebKitWebFrame)
 there&apos;s never really going to be a clash, thanks to the prefix
 _actually_ being &quot;WebKitWeb&quot; not just &quot;WebKit&quot;.


&gt; WebKitDOMElement.

 WebKitDomElement is fine, MultipleCAPITALLetters is not.

 starting to get a bit long, though.  not that that matters when it
 comes to auto-generated code / bindings: an extra step can always be
 added to rip off the unnecessary prefix, in the VALA bindings and
 PYTHON bindings.


&gt; We don&apos;t have a strong opinion here.  It&apos;s slightly unusual for a single GTK
&gt; package to contain classes with two different prefixes, and so if we use the
&gt; Gdom or GDOM prefix we&apos;ll need to play some tricks in order to autogenerate
&gt; Vala bindings for the webkit-1.0 package, which will contain some classes
&gt; prefixed with WebKit (e.g. WebKitWebFrame) and others prefixed with Gdom/GDOM.
&gt;  (We&apos;ve actually done this, and can share our Vala bindings generator script if
&gt; you like.)

 yes please, that would be fantastic.
 
&gt; If we use names such as WebKitElement or WebKitDOMElement then Vala bindings
&gt; should be automatic.  If we use WebKitElement without the word DOM, then API
&gt; documentation which shows a sorted list of classes will show DOM classes
&gt; interspersed with other WebKit classes; this might be confusing.  On the other
&gt; hand, the WebKitDOM prefix will lead to long names such as
&gt; WebKitDOMHTMLBlockquoteElement.
&gt; 
&gt; If we use either the Gdom,

 fine.

&gt; GDOM

 _definitely_ don&apos;t do this.

&gt; or WebKitDOM

 will cause problems.

&gt; prefix we might want to remove
&gt; duplicate occurrences of the word DOM; for example, we could replace
&gt; GdomDOMObject with GdomObject.  We have not done this at this point.

 not recommended.  it will then be hard to both conceptually and coding-wise
 map between the two.  and all auto-generators will have unnecessary
 complications, not just the CodeGeneratorGobject.pm but everyone else,
 too.


 
&gt; 2. Should a DOM attribute be exposed both via getter/setter methods and via a
&gt; property, or only via getter/setter methods?  As mentioned above, we currently
&gt; have both getters/setters and properties but are willing to take the property
&gt; code away if desired.

 i recommend leaving both in.

 python-pygobject, the gobject-to-python autogenerator, is _much_ happier
 when using the getter/setter method, as it exposes the properties via
 a dictionary interface on the python object that&apos;s bound to the gobject object.

 _removing_ the getters/setters and properties would make life fricking
 awkward.

 and, worse, would then make the bindings non-conformant i.e. they would
 no longer &quot;look like&quot; the javascript equivalents.

 i.e. this in javascript:

 if (node.offsetwidth &gt; 10)
 {
   ....
 }

 can translate into:

 if node.offsetwidth &gt; 10:
   ....


 whereas _without_ the getter/setter properties, it would have to be:

 if node.get_offset_width() &gt; 10:
   ....

 which would be.... ugly as hell.


 and if you wanted to _make_ a getter/setter interface, you can&apos;t, because
 you don&apos;t have a convenient list of properties available.

 overall, removal of the getter/setter properties xxxxs everything up.




&gt; 3. How does a string returned by a DOM function get freed?  Currently the
&gt; caller is responsible for freeing.

 yes.  this is the standard gobject convention: caller responsible for
 freeing.

 python-pygobject happily auto-generates code that conforms to the gobject
 convention.

&gt;  In comment 28 Alp suggested other possible
&gt; mechanisms such as some sort of garbage collection.  We believe that the
&gt; existing caller-frees policy is the way to go; it is the usual mechanism in
&gt; GObject classes and will play well with higher-level language bindings.

 agreed.

&gt; ===
&gt; 
&gt; We&apos;re looking forward to having these bindings in WebKit!

 lots of people are :)

&gt;  Please let me know
&gt; if there&apos;s anything more we can do to help out.

  thank you - i will take you literally at your word, there, and dive right in:

 * conforming to the de-facto standards rather than the absolute to-the-letter
   W3C standards, which _nobody_ actually sticks to (not even webkit),
   would be very helpful.

 * adding back in the event handling, which i know you removed for what
   you believed were good reasons [you could have contacted me and
   asked my advice], would be very helpful.  

 * picking a CamelCase prefix instead of a CAPITALISEDATTHEFront prefix
   would be very helpful.  martin and i both agreed that &quot;WebKit&quot; would
   be a perfectly reasonable and acceptable prefix.

 * keeping the getter/setter properties would be very helpful.

i think those are the main things.

overall i&apos;m absolutely delighted that you&apos;ve chosen to help out with
the webkit glib bindings.  i do have to point out however - and i trust
that you will take this at face value - that by following the strict
W3C standard rather than the de-facto javascript standard you are
expressing a lack of experience and a lack of _comprehensive_ knowledge
of DOM usage and DOM-based application development.

do not take that personally: it&apos;s a clear and simple fact that can
logically deduced from the patch that you&apos;ve submitted.  actually,
it&apos;s not quite true: you _may_ have comprehensive and significant
experience of DOM usage and DOM-based application development, but
if so, you&apos;re not using it as part of the VALA bindings on top of
the submitted gobject patch.


it is clear that the application that you are developing in VALA is
not yet a significantly comprehensive one.  the lack of event handling is particularly key to being able to deduce this.

* the VALA application cannot set up responders / event / preview callbacks
to resize, load, mouse and keyboard events.

* the VALA application cannot handle AJAX asynchronous events, which is
  a _real_ significant omission.

* the VALA application cannot &quot;create&quot; events - or, it can _create_ them,
  but cannot &quot;fire them&quot; into the infrastructure.


there is a good reason why the SUGAR team dropped webkit and went with
Gecko to create Hulahop, and that&apos;s because, although completely
undocumented, the language/generic-interface bindings to Gecko are
comprehensive, complete, and conform to the de-facto standards.

the point i&apos;m making is that if you would like to help, you would do well
to help ensure that the webkit glib / gobject bindings conform to ALL
the relevant de-facto standards, thus making them useful to a much wider
cross-developer base.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109274</commentid>
    <comment_count>133</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-02-11 04:21:07 -0800</bug_when>
    <thetext>(In reply to comment #131)
&gt; (In reply to comment #128)
&gt; &gt; Created an attachment (id=27549) [review] [review]

&gt; &gt; are relatively inefficient (they are accessed via a string name provided at
&gt; &gt; runtime) and also because there&apos;s no way to report error information when a
&gt; &gt; caller gets or sets a property.
&gt; 
&gt; BTW, one way of dealing with this would be to add a property to the base class
&gt; of the DOM objects that would hold the error, so you could do something like
&gt; g_object_get (object, &quot;dom-property&quot;, &amp;dom, &quot;dom-error&quot;, &amp;error, NULL); I guess
&gt; you&apos;d define it so that it only holds the first error reported, to match the
&gt; semantics of exceptions (meaning that if you try to access several properties
&gt; at the same time you&apos;ll only get the first error in case there&apos;s several..). 


 that would be very neat!  except... does it conform to the standard
 expected method that language-binding auto-generators use to handle
 execptions?

 _do_ the auto-generating language-binders (such as python-pygobject)
 actually _deal_ with exceptions / errors at _all_??

 http://www.mail-archive.com/pygtk@daa.com.au/msg12995.html

 apparently, yes (although that&apos;s just the beginning of where it will
 have been introduced - public api and usage api not yet investigated).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109276</commentid>
    <comment_count>134</comment_count>
      <attachid>27558</attachid>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-11 05:07:42 -0800</bug_when>
    <thetext>Created attachment 27558
Vala bindings generator

Here&apos;s an archive containing a few metadata files and a Makefile that can generate Vala bindings for the GObject DOM binding built using my last patch.  Some of the files here are derived from vapi/packages/webkit-1.0 in the Vala sources.  The Makefile has to generate the bindings in a 2-stage process since the DOM classes have a different prefix than other WebKit/GTK classes.

I agree that Python bindings are important and that it would be wise to choose a prefix that makes python-pygobject happy.  Given this, I now think that reasonable candidates for the name of a class representing the DOM Element interface are

GdomElement
WebKitElement
WebKitDomElement

With either of the last two, we could use vanilla Vala bindings generation rather than the 2-stage process in this Makefile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109280</commentid>
    <comment_count>135</comment_count>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2009-02-11 06:06:17 -0800</bug_when>
    <thetext>(In reply to comment #128)
&gt;...
&gt; My colleague Jim and I are highly interested in seeing DOM bindings added to
&gt; WebKit/GTK.  Over the last couple of weeks, we&apos;ve extensively cleaned up and
&gt; enhanced the last patch posted here (posted by Martin Soto in comment #96 on
&gt; 11/30) in an effort to resolve all outstanding issues.  Here is a list of the
&gt; major changes we&apos;ve made, followed by a list of potentially open questions.

First of all, I&apos;d like to thank you for taking over. I&apos;m writing my PhD thesis right now and simply haven&apos;t found the time to keep this work going. By the way, I must have a few things at home that I didn&apos;t manage to publish so far. If I find something interesting, I&apos;ll make it available here later today or tomorrow, just in case there are some bits and pieces you can use. Of course, also, it would be nice to get this patch integrated, so that we can easily contribute smaller patches

Some additional (random) comments:

&gt; - In the last patch, each wrapper GObject pointed to a private structure which
&gt; in turn pointed to a native C++ WebKit object.  (Comments on this thread show
&gt; that there was previously yet one more level of indirection which Martin has
&gt; already removed.)  These pointers were duplicated at each level of the
&gt; inheritance hierarchy.  For example, a GdomHTMLButtonElement pointed to a
&gt; native HTMLButtonElement, but the parent class GdomHTMLElement and all other
&gt; parent classes also contained pointers to the native object.  This was
&gt; unnecessary and wasteful.

I also wanted to remove this level of indirection but didn&apos;t know if it was necessary for some reason (ABI stability?). Indeed, virtual machines and interpreters (Python comes to mind) often add a level of indirection of their own, so being as lean as possible on the GObject side is always a plus.

&gt; ...
&gt;  We doubt that will be necessary, but if we do need a private structure
&gt; at some point we can simply update the void * to point to it without breaking
&gt; binary compatibility with applications that use DOM objects.

Sounds great.

&gt; GObject wrapper is initialized and call deref() when it&apos;s finalized.  As some
&gt; reviewers pointed out, the existing code called ref() on some smart pointers in
&gt; some cases, which was unnecessary; we&apos;ve eliminated that wherever it happened
&gt; in the code.

I did this same change in my (unpublished) code and it worked in all of my tests. I went as far as loading arbitrary pages from the Internet and then traversing their DOM using Python, so it seemed to be quite robust.

&gt; ...
&gt; With our changes, each DOM attribute is exposed both as a property and via
&gt; getter/setter methods.  When the DOM specifies that getting or setting the
&gt; attribute may raise an exception, the corresponding getter/setter method takes
&gt; a GError ** for error reporting.  We&apos;re not particularly attached to using
&gt; GObject properties at all, and can remove them if you like; that would
&gt; significantly reduce code size (especially in the generated code).  It&apos;s up to
&gt; you.

When are properties actually useful? They are unconfortable to use even in Python. For widgets, software such as Glade benefits from them, but they don´t seem to be so useful in the DOM. I wouldn&apos;t regret it if they dissapeared.

&gt; - The last patch contained some support for reporting DOM events to the GObject
&gt; caller.  The event interface was different from that specified by the DOM and
&gt; the implementation was incomplete (there was no way to unregister an event
&gt; listener).  In our patch we&apos;ve removed all the event code, simply because
&gt; events raise various design issues and we&apos;d prefer to deal with them in a
&gt; subsequent iteration.  As various commenters have mentioned, the patch is large
&gt; enough as it is and removing the event code seemed like a good way to reduce
&gt; its size.

This is a good idea for the moment. Events are very important, but we need to get them right. Dedicating an iteration to them seems like the way to go.

&gt; [Many clean-up actions described]

While we&apos;re on it, I noticed that the original patch uses the WebKit namespace in some cases and the WebCore namespace in some other cases. Shouldn&apos;t this be unified as well?

&gt; - Where possible, we&apos;ve renamed source and header files to have all-lowercase
&gt; names as is conventional in GTK.  The autogenerated wrapper files still have
&gt; CamelCase names because we use implicit makefile rules to generate these from
&gt; .idl files, which also have CamelCase names, and GNU make doesn&apos;t allow us to
&gt; perform a lowercasing transformation inside the implicit the rule.  So the
&gt; autogenerated filenames don&apos;t quite fit the GTK convention; we don&apos;t think this
&gt; is a significant problem.

Yes, I also ran into this problem. I don&apos;t think it is really bad if the generated files use camel case, and it simplifies quite a few things. 

&gt; == open questions ==
&gt; 
&gt; Here are design decisions that potentially remain open along with their current
&gt; status.  We&apos;re happy to change any of these in the code to satisfy the
&gt; consensus of the WebKit team.
&gt; 
&gt; 1. How should GObject DOM classes be named?
&gt; ...

I would be for putting everything under the WebKit GObject &quot;namespace&quot;. This is not just some DOM, it&apos;s the WebKit DOM, and its classes are in the WebCore C++ namespace together with the rest of WebKit. This way, WebKitElement should do, as it&apos;s guaranteed not to conflict with anything wrapped out of the WebCore namespace.


That&apos;s it. Once again, I&apos;m glad that you guys stepped in. I&apos;m also looking forward to seeing this patch integrated!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109282</commentid>
    <comment_count>136</comment_count>
    <who name="Wouter Bolsterlee">uws+webkit</who>
    <bug_when>2009-02-11 06:12:03 -0800</bug_when>
    <thetext>(In reply to comment #135)
&gt; When are properties actually useful? They are unconfortable to use even in
&gt; Python. For widgets, software such as Glade benefits from them, but they don´t
&gt; seem to be so useful in the DOM. I wouldn&apos;t regret it if they dissapeared.

GObject features notify:: signals, which allows you to attach callback functions that are invoked when a property changes. But perhaps there are other mechanisms for that.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109285</commentid>
    <comment_count>137</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-02-11 06:17:35 -0800</bug_when>
    <thetext>(In reply to comment #134)
&gt; Created an attachment (id=27558) [review]
&gt; Vala bindings generator
&gt; 
&gt; Here&apos;s an archive containing a few metadata files and a Makefile that can
&gt; generate Vala bindings for the GObject DOM binding built using my last patch.

 _brilliant_.  it will be interesting to look at that.

 if you would like me to investigate porting pyjamas-desktop to Vala,
 i _will_ however need a full set of DOM bindings - compliant with the
 _full_ de-facto DOM standard (not the to-the-letter W3C standard).

 code that does this:

 def setWidth(node, width):
    try:
       type = node.type
    except GobjectPropertyError:
       type = None
    if type == &apos;embed&apos;:
       if isinstance(width, str):
          if width[-2:] == &apos;px&apos;:
              width = int(width[:-2])
          else:
              # assume it&apos;s an int
              try:
                 width = int(width)
              except:
                 raise &quot;Your user probably tried setting width = &apos;5%&apos; or &apos;5em&apos; which is not in the W3C standard nor the de-facto javascript-led standard.&quot;

    # finally, we can get down to actually setting the width,
    # after detecting and converting it from (possibly a) string
    # to an int, thanks to mark rowe of apple insisting that users of
    # language bindings to webkit must be responsible for ensuring
    # compliance to standards, rather than making life easier by
    # conforming to de-facto javascript-driven standards

    gdom_node_set_property(node, &quot;width&quot;, width) # something like this.

and the equivalent in VALA, is out of the question.

this is of course quite clearly ridiculous, and, worse, imposes a
run-time performance penalty on applications, as they detect and
protect users from expecting the framework to conform to de-facto
javascript-driven standards and the users get a nasty shock and
find otherwise.

repeat for toString (the other de-facto javascript-driven standard
function)

so if the vala bindings can provide the _full_ de-facto javascript-driven
standard functionality, i can look at expanding the usefulness of the
vala bindings by providing higher-level abstraction classes, and a
port of pywebkitgtk&apos;s &quot;runner&quot; infrastructure (see demobrowser.py)
to allow people to write generic apps, in VALA, that perform DOM model
manipulation.





&gt; Some of the files here are derived from vapi/packages/webkit-1.0 in the Vala
&gt; sources.  The Makefile has to generate the bindings in a 2-stage process since
&gt; the DOM classes have a different prefix than other WebKit/GTK classes.
&gt; 
&gt; I agree that Python bindings are important and that it would be wise to choose
&gt; a prefix that makes python-pygobject happy.  Given this, I now think that
&gt; reasonable candidates for the name of a class representing the DOM Element
&gt; interface are

 ok - just to point out: it&apos;s not a &quot;DOM Element&quot; interface, it&apos;s a &quot;DOM&quot;
 interface.  &quot;DOM Element&quot; is a (substantial) sub-portion of the &quot;DOM&quot;
 interface.

 there is much more in the DOM W3C standard (and the de-facto javascript-driven)
 standard than just &quot;DOM Elements&quot;

 sorry to be pedantic about this, but it&apos;s important to clarify.

 do you _mean_ &quot;just rename that part of the gobject bindings which refers
 solely, specifically and exclusively to DOM Elements, leaving out DOM Window,
 DOM Frame, DOM Node, DOM Events&quot;, or did you mean to say:

&quot;Given this, I now think that reasonable candidates for the name of a
class representing the DOM interface are:

  Gdom
  WebKit
  WebKitDom

&quot;

 assuming yes, carry on :)

&gt; With either of the last two, we could use vanilla Vala bindings generation
&gt; rather than the 2-stage process in this Makefile.

 it looks like &quot;WebKit&quot; is the most sensible choice, overall.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109286</commentid>
    <comment_count>138</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-11 06:22:19 -0800</bug_when>
    <thetext>(In reply to comment #136)
&gt; (In reply to comment #135)
&gt; &gt; When are properties actually useful? They are unconfortable to use even in
&gt; &gt; Python. For widgets, software such as Glade benefits from them, but they don�t
&gt; &gt; seem to be so useful in the DOM. I wouldn&apos;t regret it if they dissapeared.
&gt; 
&gt; GObject features notify:: signals, which allows you to attach callback
&gt; functions that are invoked when a property changes. But perhaps there are other
&gt; mechanisms for that.
&gt; 

Another very important point is that they allow automatic binding generation through gobject-introspection with the right semantics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109287</commentid>
    <comment_count>139</comment_count>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2009-02-11 06:23:34 -0800</bug_when>
    <thetext>(In reply to comment #132)
&gt; (In reply to comment #128) 
&gt; &gt; Because we&apos;ve eliminated the private structure, we can&apos;t use a C++ smart
&gt; &gt; pointer to point to the native C++ object, and so we call ref() manually when a
&gt; &gt; GObject wrapper is initialized and call deref() when it&apos;s finalized.
&gt; 
&gt;  ahh... the use of ref() and deref() were a key reason why the existing
&gt;  patch was not accepted.  mark cited &quot;use of ref() and deref() typically
&gt;  indicate broken code and/or broken design&quot;.

I don&apos;t think anyone is being so religious regarding this issue. Thing is, apparently random ref() and deref() thrown around the code don&apos;t look like something that is likely to be robust. The strategy taken by Adam, on the other hand, is quite sound, namely, you ref objects once when they are wrapped and deref them once when the wrapper is destroyed. It is as easy as that. Also, the reason you must use explicit ref() and deref() instead of a vanilla RefPtr is that the pointer is inside a C structure.

As I said in my previous comment, I tested this strategy at home and it worked really well. It seems to be the most maintainable of the options available and any problems with code readability should be solvable with a few well placed comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109289</commentid>
    <comment_count>140</comment_count>
    <who name="Martín Soto">donsoto</who>
    <bug_when>2009-02-11 06:30:04 -0800</bug_when>
    <thetext>(In reply to comment #136)
&gt; GObject features notify:: signals, which allows you to attach callback
&gt; functions that are invoked when a property changes. But perhaps there are other
&gt; mechanisms for that.

Good point. I have one question, though: there will be a lot of situations where properties will change their values &quot;underneath the feet&quot; of the GObject wrappers. Does it mean that all properties we define have to take this case into account and connect events to the DOM in order to listen for changes and fire the corresponding signal? Sounds a bit nasty...

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109291</commentid>
    <comment_count>141</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-02-11 06:32:50 -0800</bug_when>
    <thetext>&gt; When are properties actually useful? They are unconfortable to use even in
&gt; Python. For widgets, software such as Glade benefits from them, but they don�t
&gt; seem to be so useful in the DOM. I wouldn&apos;t regret it if they dissapeared.

 i mentioned this earlier, but will repeat it here so that it is clearer,
 martin.  automated property detection in higher-level abstract classes.

 when providing an abstraction layer on top of python-pygobject bindings,
 for example, which is what pyjamas-desktop is (it&apos;s a port of GWT to python
 _and_ webkit).

 all that is needed, to replace javascript code:

 if (node.offsetWidth &gt; 20)
 {
    Window.alert(&quot;width &gt; 20&quot;);
 }

 is this:

 if node.offsetWidth &gt; 20:
    ui.Window.alert(&quot;width &gt; 20&quot;)

 that&apos;s it.  done.  finished.

 underneath, that node.offsetWidth does something like this:

 def __getattr__(self, property_name):
    return gdom_node_get_property(property_name)

 that&apos;s all.  nothing to it.  dead.  simple.

 if you REMOVE property-getting/setting, it gets xxxxing AWFUL:

 def __getattr__(self, property_name):
   s = &quot;gdom_node_get_%s&quot; % property_name
   return eval(s)

 that&apos;s the best &quot;simple&quot; case i can think of, and it&apos;s pretty bad.
  here&apos;s the much much worse-case scenario:

 def __getattr__(self, property_name):
   t = gdom_node_get_type(self, &quot;type&quot;) # argh!  can&apos;t even get the node type!
   if t == &quot;element&quot;:
      if property_name == &apos;width&apos;:
          return gdom_element_get_width()
      elif property_name == &apos;height&apos;:
          return gdom_element_get_height()
      ...
      ...
   elif t == &apos;....&apos;
      ...
      ....

   ...
   ...
   ...
   ...

 this will be about a _thousand_ lines long, and require a _nightmare_
 maintenance task as the DOM model is expanded.

 and that&apos;s just &quot;get&quot;.  what about &quot;set&quot;?

 yes, you could auto-generate this... but from what?  from the original
 IDL file??

 you can&apos;t auto-generate it from the .defs file because the information
 has been lost by that point as to which bits were properties and which
 bits were truly functions.

 apologies for spelling it out like this but i hope it&apos;s clearer as to
 why it is so damn important that properties be available as properties.

 if you&apos;re doing a &quot;simple language thing&quot; - great, good luck, go for it,
 you will have no need for and no purpose for which getter/setter properties
 are useful.

 if however you&apos;re providing an abstraction layer on top of language
 bindings on top of  the glib/gobject bindings, then having exactly the
 same access to properties in exactly the same way that javascript has
 access to properties is utterly essential.

 l.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109294</commentid>
    <comment_count>142</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-11 06:34:03 -0800</bug_when>
    <thetext>(In reply to comment #137)

To be clear, in my comment #134 I was just using the Element interface as an arbitrary example.  Once we choose a prefix, we&apos;ll certainly use it with all DOM interfaces; if we choose WebKit, we&apos;ll have WebKitElement, WebKitNode, WebKitHTMLElement and so on.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109295</commentid>
    <comment_count>143</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-02-11 06:39:08 -0800</bug_when>
    <thetext>(In reply to comment #138)
&gt; Another very important point is that they allow automatic binding generation
&gt; through gobject-introspection with the right semantics.

 *nods vigorously*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109296</commentid>
    <comment_count>144</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-02-11 07:10:29 -0800</bug_when>
    <thetext>(In reply to comment #93)
&gt; (In reply to comment #89)
&gt; &gt; &gt; Minor issue: getGobjType doesn&apos;t follow the naming conventions outlined in the
&gt; &gt; &gt; coding style guidelines, due to the same capitalization inconsistency that
&gt; &gt; &gt; &quot;Gdom&quot; has in some places in this patch.
&gt; &gt; 
&gt; &gt;  i&apos;ve read the guidelines - i don&apos;t understand what i&apos;m missing.
&gt; 
&gt; &quot;&quot;&quot;
&gt; Use CamelCase. Capitalize the first letter of a class, struct, protocol, or
&gt; namespace name. Lower-case the first letter of a variable or function name.
&gt; Fully capitalize acronyms.
&gt; 
&gt; Use full words, except in the rare case where an abbreviation would be more
&gt; canonical and easier to understand.
&gt; &quot;&quot;&quot;

&gt; I&apos;m not entirely sure which category &quot;gobj&quot; falls in.  I suspect it may be an
&gt; abbreviation of g_object, in which case GObject would be how it is mapped to
&gt; our naming conventions.

 ohhh, i see.  ok, now i understand.  it wasn&apos;t the camel case that was
 the issue, it was the abbreviation of the naming.

 that&apos;s the bit i didn&apos;t quite follow.  apologies.


&gt; &gt;  btw i started off with GDOM as the prefix and it blew up the pygtk
&gt; &gt; auto-generator.  i posted a bugreport about that and they said that there was
&gt; &gt; absolutely zero intention of fixing pygtk&apos;s codegen.py.
&gt; &gt; 
&gt; &gt;  so, you _can_ go and replace Gdom with GDOM, and it will screw things up for
&gt; &gt; people, further down the line.
&gt; 
&gt; You have used both Gdom and GDOM within the same patch.  I&apos;m also not convinced
&gt; that an external, third-party tool should be dictating to our naming
&gt; conventions either.  I&apos;m sure that issue is fixable within that tool or in a
&gt; script that wraps the tool.

 fortunately, the consensus is to use &quot;WebKit&quot; as the prefix, thus
 side-stepping this issue, thank goodness.

 as i mentioned before, the python-pygobject auto-generator, h2defs.py,
 is sufficiently complex that the developers have made it clear that
 any interfaces that do not conform to the StandardConvention will NOT
 be supported.

 leaving a rather awkward pre-processing step, just like the vala bindings.

 fortunately, using WebKit as the prefix (or WebKitDom) keeps everybody
 happy, with WebKit being the &quot;preferred&quot; choice.

 
&gt; &gt; &gt;  At the very
&gt; &gt; &gt; least this shouldn&apos;t require duplication of assignments for each possible
&gt; &gt; &gt; feature define.  The common values could be assigned to a FEATURE_DEFINES
&gt; &gt; &gt; variable, with FEATURE_DEFINES_JAVASCRIPT taking its value and adding
&gt; &gt; &gt; LANGUAGE_JAVASCRIPT, ENABLE_SVG, etc, and FEATURE_DEFINES_GDOM only adding
&gt; &gt; &gt; LANGUAGE_GDOM.  Another alternative would be to have FEATURE_DEFINES include
&gt; &gt; &gt; all features that are enabled, and FEATURE_DEFINES_GDOM be the result of
&gt; &gt; &gt; stripping out any values that mention SVG from the FEATURE_DEFINES variable.
&gt; &gt; 
&gt; &gt;  i _may_ be wrong about this:
&gt; &gt; 
&gt; &gt;  i wouldn&apos;t recommend that _at the moment_, because the person who will be
&gt; &gt; expected to create the SVG bindings in the future may choose to implement a
&gt; &gt; _small_ subset of the SVG bindings, to begin with.
&gt; &gt; 
&gt; &gt;  if the above paragraph translates into &quot;when someone comes to adding SVG
&gt; &gt; bindings, then they will either have to implement them all or not at all&quot;, then
&gt; &gt; it should be clear as to why that is undesirable.
&gt; 
&gt; I&apos;m not sure why you think it translates to that.  One way to incrementally
&gt; flesh out support is to have the scripts generate code for the entire feature,
&gt; but only compile the files that are completely implemented.  I think we do that
&gt; in some places in the Obj-C DOM in one or two places.

 oh right.  that works.

&gt; &gt; &gt; &gt; &gt; rather than JS in the cases that they differ.  Many of these instances are due
&gt; &gt; &gt; &gt; &gt; to behavioral peculiarities of JS, especially attributes such as
&gt; &gt; &gt; &gt; &gt; ConvertNullToNullString and toString functions.
&gt; &gt; 
&gt; &gt;  ConvertNullToNullString: agreed.  (well, i haven&apos;t used it, and
&gt; &gt; pyjamas-desktop hasn&apos;t blown up.  so i don&apos;t need it).
&gt; &gt; 
&gt; &gt;  toString: disagree.  _definitely_ need this one.
&gt; 
&gt; See my previous comment for why this is untrue.

 i did.  but to double-check that i have read it, a cross-reference
 would be appreciated (we&apos;re up to comment #144 so far, so it&apos;s
 difficult to make absolutely sure).

 when you get to it, could you kindly review the references to
 de-facto standards implementations of toString in all other
 competitor products to webkit?

 for convenience, the researched evidence presented is in
 comments numbered #121 to #127.

 comments #121 to #124 are specific research on &quot;toString&quot;, indicating
 that even wine&apos;s implementation of MSHTML provides &quot;toString&quot;, and it
 does so by using Gecko&apos;s &quot;toString&quot; function.

 if the wine developers had attempted to use webkit&apos;s glib / gobject
 bindings to do the job, they would FAIL, and would give up, and
 abandon webkit, because  &quot;toString&quot; is &quot;not part of the standard&quot;.

 it&apos;s not in the W3C standard, it&apos;s part of the de-facto standard, as
 shown by the evidence presented.



&gt; &gt; &gt; There are two issues here: the ref-counting problems tracked in bug 20403,
&gt; &gt; &gt; which sound as though they need to be addressed before these bindings will
&gt; &gt; &gt; function without crashing,
&gt; &gt; 
&gt; &gt;  no.
&gt; &gt; 
&gt; &gt;  1) the crashes caused by #20403 have been demonstrated and proven to have
&gt; &gt; absolutely nothing to do with the bindings.  at all.  nothing.
&gt; &gt; 
&gt; &gt;  2) #20403 has been solved.
&gt; 
&gt; Ok.  I was under the impression that the reason your workaround for that issue
&gt; was in a previous version of the patch was that it was required in order to
&gt; function.  Bug 20403 does not appear to have been solved to me: Darin signed
&gt; off on the concept of your fix, but some minor revisions were requested and you
&gt; have yet to post the updated patch that makes them.

 i&apos;m happily maintaining a branch of webkit, for a client, and they&apos;re
 happy with it.  my apologies for dropping the ball on #20403.


&gt; &gt; &gt; and the ref-counting problems within the patch
&gt; &gt; &gt; itself.
&gt; &gt; 
&gt; &gt;  there have been _no_ ref-counting problems encountered. see earlier comment:
&gt; &gt;  i would be utterly shocked if there were &quot;negative&quot; refcounting bugs,
&gt; &gt;  because of the amount of time i&apos;ve spent running pyjamas-desktop apps.
&gt; &gt; 
&gt; &gt;  without crashes of any kind (esp. since i patched in the solution #20403)
&gt; &gt; 
&gt; &gt;  i would equally be surprised if there were memory leaks, but you can clearly
&gt; &gt;  see, if you examine an auto-generated file, that each and every &quot;add ref&quot;
&gt; &gt;  is matched by a corresponding &quot;dec ref&quot;.
&gt; &gt; 
&gt; &gt;  so, although it&apos;s not _proven_, with test code, this &quot;refcounting problem&quot;
&gt; &gt;  sounds much like an imaginary invention - a bogeyman in the closet :)
&gt; 
&gt; There are problems.  I called out each individually in an earlier comment, so I
&gt; am not going to waste my time doing so again.

 i would ask you kindly to provide a link to which of the 144 comments
 in this thread that is, but see below.

&gt;  The fact that you convinced the
&gt; incorrect code to work does not make the code correct.  The incorrect use of
&gt; ref-counting absolutely must be addressed before the change can be landed. 

 ok - fortunately, adam&apos;s work involves removal of all c++ objects - entirely.
 thus making it _essential_ that ref() and deref() are utilised.

 so, fortunately, this issue can be dropped.  three people have now
 worked on this issue, and three people have all used ref() and
 deref().  two of them exclusively used ref() and deref() (martin and adam).

 so, i am quite happy to let them continue discussions with you on
 resolving and addressing this issue.


&gt; &gt; &gt; &gt; 4. Changes to the IDL files.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Any additional problems I&apos;m missing? Could people please post their
&gt; &gt; &gt; &gt; thoughts on the open issues so that we can make some progress? I&apos;ll try
&gt; &gt; &gt; &gt; to look into issue 4 and see if I can understand what&apos;s going on, but
&gt; &gt; &gt; &gt; cannot promise anything for the moment.
&gt; &gt; 
&gt; &gt;  i wouldn&apos;t make the differences without very good reasons and justification.
&gt; &gt; 
&gt; &gt;  XMLHTTPRequest open(String) is a good starting point: it&apos;s simply too much
&gt; &gt; additional work to provide the functionality of TextDocument, when just
&gt; &gt; enabling the use of open(String) instead of open(TextDocument) will do just as
&gt; &gt; well, if not better.
&gt; &gt; 
&gt; &gt;  each of the differences is pretty obvious and straightforward, and i believe
&gt; &gt; i&apos;ve answered and explained them all.
&gt; 
&gt; You have indeed outlined why you made the changes that you did.  However, as I
&gt; have pointed out several times now, the reasons that you made the changes in
&gt; many cases do not align with the WebKit project&apos;s vision for native bindings.

 that vision is a broken vision, one in which webkit fails to be utilised
 for many projects, and gecko is utilised instead as the only other viable
 option, thanks to its compliance with de-facto up-to-date standards.

 i trust that you will review the evidence presented in comments #121-#127
 and that the webkit vision will be updated accordingly, so that the
 webkit vision for native bindings includes conformance to de-facto standards
 as part of the vision.

 strict adherence to W3C standards as part of the webkit project vision
 will result in the need to rip out non-W3C-compliant features such as
 &quot;offsetWidth&quot; and &quot;offsetHeight&quot;.

 i trust that the webkit team are reasonable people whom, when presented
 with good evidence, will be happy to work with people who would like to
 see webkit&apos;s vision and webkit&apos;s usefulness expanded.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109297</commentid>
    <comment_count>145</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-02-11 07:14:18 -0800</bug_when>
    <thetext>adam,

when removing all of the &quot;differences&quot; between javascript and gobject
bindings, did you also remove the XMLHttpRequest open() function as a
string rather than as a TextDocument?

if you did so, then there is no way to utilise XMLHTTPRequest and therefore
no way to do AJAX using the glib / gobject bindings.

why? because you can&apos;t _get_ at the TextDocument interface, because it&apos;s
not properly exposed via the glib / gobject bindings.

i spent several days trying to get that one right, and in the end i gave
up and re-activated the XMLHttpRequest.open(string) function and disabled
the XMLHttpRequest.open(TextDocument*) function.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109298</commentid>
    <comment_count>146</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-02-11 07:15:21 -0800</bug_when>
    <thetext>(In reply to comment #142)
&gt; (In reply to comment #137)
&gt; 
&gt; To be clear, in my comment #134 I was just using the Element interface as an
&gt; arbitrary example.  Once we choose a prefix, we&apos;ll certainly use it with all
&gt; DOM interfaces; if we choose WebKit, we&apos;ll have WebKitElement, WebKitNode,
&gt; WebKitHTMLElement and so on.

 :) ok - just checking :)


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109306</commentid>
    <comment_count>147</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-11 08:47:45 -0800</bug_when>
    <thetext>(In reply to comment #145)
&gt; adam,
&gt; 
&gt; when removing all of the &quot;differences&quot; between javascript and gobject
&gt; bindings, did you also remove the XMLHttpRequest open() function as a
&gt; string rather than as a TextDocument?

Actually you mean the XMLHttpRequest send() function.  A bit of background: the W3C XMLHttpRequest draft specification (http://www.w3.org/TR/2008/WD-XMLHttpRequest-20080415/) includes several overloaded versions of send():

  void send();
  void send(in DOMString data);
  void send(in Document data);

In WebKit&apos;s XMLHttpRequest.idl, the first two of these are commented out, although the underlying WebKit XMLHttpRequest object actually supports all three of these.  I believe that the WebKit team has commented out overloaded functions wherever they occur in IDL files because certain language bindings can&apos;t handle overloads.  C, in particular, doesn&apos;t allow overloaded functions, so if all three send() methods were exposed today, the GObject bindings would fail to compile.

So only send(in Document data) is available at the moment.  You might be able to use that to do AJAX now: from any Document object you can get a DOMImplementation, which you could possibly use to construct new Document objects containing arbitrary text.  I haven&apos;t tried that myself, however.

The current patch does not include any changes to XMLHttpRequest.idl.  If you&apos;d like that IDL file to expose a different overload of send(), I&apos;d suggest you take that up in an independent bug report; that change would affect other language bindings and is essentially independent of the GObject changes here.

The best solution here would be to uncomment overloaded functions in the IDL and make the language bindings generators smart enough to map them into non-overloaded functions using alternate names when necessary.  We could either (a) have the bindings generators derive alternate names automatically, e.g. send_DOMString() and send_Document(), and/or (b) add IDL attributes that suggest alternate names.  I&apos;d love to see that happen, but I think that&apos;s beyond the scope of this first GObject/DOM iteration.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109307</commentid>
    <comment_count>148</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-02-11 09:02:47 -0800</bug_when>
    <thetext>(In reply to comment #136)
&gt; (In reply to comment #135)
&gt; &gt; When are properties actually useful? They are unconfortable to use even in
&gt; &gt; Python. For widgets, software such as Glade benefits from them, but they don´t
&gt; &gt; seem to be so useful in the DOM. I wouldn&apos;t regret it if they dissapeared.
&gt; 
&gt; GObject features notify:: signals, which allows you to attach callback
&gt; functions that are invoked when a property changes. But perhaps there are other
&gt; mechanisms for that.

This would require that the WebCore DOM notify the GObject bindings when a DOM property changes.  It&apos;s unlikely that we&apos;d be able to do this without a substantial performance impact on DOM operations, even when no-one is listening for notifications.  The DOM itself supports mutation events that are fired when attributes are added, removed or modified, but as they have a measurable performance impact even if unused we have chosen not to support them at this time (they&apos;re #if&apos;d out in the code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109308</commentid>
    <comment_count>149</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-02-11 09:07:02 -0800</bug_when>
    <thetext>(In reply to comment #147)
&gt; The best solution here would be to uncomment overloaded functions in the IDL
&gt; and make the language bindings generators smart enough to map them into
&gt; non-overloaded functions using alternate names when necessary.  We could either
&gt; (a) have the bindings generators derive alternate names automatically, e.g.
&gt; send_DOMString() and send_Document(), and/or (b) add IDL attributes that
&gt; suggest alternate names.  I&apos;d love to see that happen, but I think that&apos;s
&gt; beyond the scope of this first GObject/DOM iteration.

The solution taken by the JS bindings is to implement a custom (eg, hand-written) binding for XMLHttpRequest::send, which is indicated by the [Custom] annotation in the IDL.  The custom binding then detects the type of the argument and acts accordingly.  It may be possible for the GObject bindings to do something similar.  I agree that this should be left to a follow-up change after the core functionality goes in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109310</commentid>
    <comment_count>150</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-11 09:18:24 -0800</bug_when>
    <thetext>(In reply to comment #148)
&gt; (In reply to comment #136)
&gt; &gt; GObject features notify:: signals, which allows you to attach callback
&gt; &gt; functions that are invoked when a property changes. But perhaps there are other
&gt; &gt; mechanisms for that.
&gt; 
&gt; This would require that the WebCore DOM notify the GObject bindings when a DOM
&gt; property changes.  It&apos;s unlikely that we&apos;d be able to do this without a
&gt; substantial performance impact on DOM operations, even when no-one is listening
&gt; for notifications.  The DOM itself supports mutation events that are fired when
&gt; attributes are added, removed or modified, but as they have a measurable
&gt; performance impact even if unused we have chosen not to support them at this
&gt; time (they&apos;re #if&apos;d out in the code).
&gt; 

That&apos;s a good point. We still could use gobject properties and get the other mentioned benefits though, we only need to NOT notify changes and document why we don&apos;t do it. I think that&apos;s easy doable, we just need to not use g_object_set (or variants) internally and make our setters not call g_object_notify (which I take it is what&apos;s going on right now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109314</commentid>
    <comment_count>151</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-11 09:36:32 -0800</bug_when>
    <thetext>&gt; &gt; When are properties actually useful?
&gt; 
&gt; Another very important point is that they allow automatic binding generation
&gt; through gobject-introspection with the right semantics.

gobject-introspection is aware of both properties and methods.  The Vala bindings generator, for example, uses (a version of) gobject-introspection to find out about GObject classes. Each GObject property becomes a Vala property, and each GObject method becomes a Vala method.  With the current patch DOM objects have both properties and getters/setters, and all of these end up reflected into the Vala world.  So in Vala you could write either node.parent_node or node.get_parent_node(), for example.

It&apos;s not clear to me what you mean by &quot;the right semantics&quot; here.  Are you asserting that DOM attributes should be reflected into higher-level languages as properties in those languages, and that gobject-introspection can enable that only if they are available as GObject properties?  Is there some specific application or use case that will suffer if attributes are available only through getters/setters?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109317</commentid>
    <comment_count>152</comment_count>
    <who name="Jim Nelson">jim</who>
    <bug_when>2009-02-11 09:55:21 -0800</bug_when>
    <thetext>(In reply to comment #131)
&gt; BTW, one way of dealing with this would be to add a property to the base class
&gt; of the DOM objects that would hold the error, so you could do something like
&gt; g_object_get (object, &quot;dom-property&quot;, &amp;dom, &quot;dom-error&quot;, &amp;error, NULL); I guess
&gt; you&apos;d define it so that it only holds the first error reported, to match the
&gt; semantics of exceptions (meaning that if you try to access several properties
&gt; at the same time you&apos;ll only get the first error in case there&apos;s several..). Of
&gt; course setter/getter functions are easier because you can only access one
&gt; property at a time :)

Doesn&apos;t it make more sense to simply have a global (or per-thread) &quot;last DOM exception&quot; variable, a la errno?  (It could be exposed via a function call, to be clean about it.)  Plus, it sounds like the caller would have to invoke a &quot;clear last error&quot; object method before accessing a sequence of properties, otherwise the first error will persist when no exception has occurred in the latest batch of operations.

Although I&apos;m not thrilled with global values for error-reporting, if the caller is interested in capturing exceptions, then they should be using getter/setters, where exceptions are properly reported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109319</commentid>
    <comment_count>153</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-11 10:00:51 -0800</bug_when>
    <thetext>(In reply to comment #151)
&gt; &gt; &gt; When are properties actually useful?
&gt; &gt; 
&gt; &gt; Another very important point is that they allow automatic binding generation
&gt; &gt; through gobject-introspection with the right semantics.
&gt; 
&gt; gobject-introspection is aware of both properties and methods.  The Vala
&gt; bindings generator, for example, uses (a version of) gobject-introspection to
&gt; find out about GObject classes. Each GObject property becomes a Vala property,
&gt; and each GObject method becomes a Vala method.  With the current patch DOM
&gt; objects have both properties and getters/setters, and all of these end up
&gt; reflected into the Vala world.  So in Vala you could write either
&gt; node.parent_node or node.get_parent_node(), for example.

Sure. Many bindings do this, the old ones not using gobject-introspection too. For instance foo.get_bar() vs foo.props.bar in PyGObject, IIRC.

&gt; 
&gt; It&apos;s not clear to me what you mean by &quot;the right semantics&quot; here.  Are you
&gt; asserting that DOM attributes should be reflected into higher-level languages
&gt; as properties in those languages, and that gobject-introspection can enable
&gt; that only if they are available as GObject properties?

Yes, I meant exactly that. You can construct high-level properties from the getters/setters, but then you&apos;d have to do this manually (like in the example Luke has written). Of course I&apos;m assuming you actually want to use DOM properties as properties in your language, which is the next point.

&gt; Is there some specific application or use case that will suffer if attributes &gt; are available only through getters/setters?

Well, one big point IMHO is the discoverability of the API. At least in my case I&apos;d expect to have DOM properties accessible as actual properties of an object, and not only as getters/setters. I expect I won&apos;t be alone in this, so forcing bindings authors to do this manually seems like a big point for me.

Another property of properties (pun not intended ;)) that I&apos;ve used heavily in languages like JavaScript or Lisp is the hability to programatically generate the names of the properties you want to read or set. Depending on the language this can be done more or less easily with functions too, but in general it&apos;s considerably more cumbersome.

And of course there&apos;s notifies, but Brian has told us that enabling that would probably be a big performance issue, so I guess we can leave that out (at least for now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109638</commentid>
    <comment_count>154</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-13 01:10:37 -0800</bug_when>
    <thetext>The patch breaks srcdir != builddir builds btw. It seems to delete a bunch of -I$(top_builddir)... for no apparent reason and replaces other $(builddir) with $(srcdir) variants. I just fixed it by reverting those, but for some reason also had to go to WebKitTools/GNUmakefile.am and add -I$(top_builddir)... flags to the tools flags. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109639</commentid>
    <comment_count>155</comment_count>
      <attachid>27645</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-13 01:12:58 -0800</bug_when>
    <thetext>Created attachment 27645
GdomHTMLTableRowElement.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109640</commentid>
    <comment_count>156</comment_count>
      <attachid>27646</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-13 01:13:43 -0800</bug_when>
    <thetext>Created attachment 27646
GdomHTMLTableRowElement.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109641</commentid>
    <comment_count>157</comment_count>
      <attachid>27647</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-13 01:14:56 -0800</bug_when>
    <thetext>Created attachment 27647
GdomAttr.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109642</commentid>
    <comment_count>158</comment_count>
      <attachid>27648</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-13 01:15:29 -0800</bug_when>
    <thetext>Created attachment 27648
GdomAttr.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109643</commentid>
    <comment_count>159</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-13 01:16:09 -0800</bug_when>
    <thetext>Added a few of the autogenerated files per Mark&apos;s request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109646</commentid>
    <comment_count>160</comment_count>
      <attachid>27649</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-13 01:33:52 -0800</bug_when>
    <thetext>Created attachment 27649
GdomAttrPrivate.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109647</commentid>
    <comment_count>161</comment_count>
      <attachid>27650</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-13 01:34:29 -0800</bug_when>
    <thetext>Created attachment 27650
GdomHTMLTableRowElementPrivate.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109649</commentid>
    <comment_count>162</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-02-13 01:46:15 -0800</bug_when>
    <thetext>Thanks Xan, I&apos;ll have a look at these shortly.  Do we have any resolution to the API naming issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109653</commentid>
    <comment_count>163</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-02-13 03:10:46 -0800</bug_when>
    <thetext>I think the consensus is to go with something starting with WebKit for consistency sake, but I don&apos;t think a definitive one has been picked. I&apos;m fine with either WebKit, WebKitDOM, WebKitDom, or whatever, but I think somenone commented using WebKitDom/DOM would have the advantage of grouping all symbols in references.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109658</commentid>
    <comment_count>164</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-02-13 05:56:21 -0800</bug_when>
    <thetext>(In reply to comment #163)
&gt; I think the consensus is to go with something starting with WebKit for
&gt; consistency sake, but I don&apos;t think a definitive one has been picked. I&apos;m fine
&gt; with either WebKit, WebKitDOM, WebKitDom, or whatever, but I think somenone
&gt; commented using WebKitDom/DOM would have the advantage of grouping all symbols
&gt; in references.

I would think WebKitFoo is better than something with G, otherwise it looks like a part of Glib. Using WebKitDom is probably the best idea not only for sorting in a reference, but because there is not only WebKitFooElement but also generic symbols such as WebKitAttr. Alternatively we could explicitly make WebKitAttr =&gt; WebKitDomAttr and still go with WebKitFooElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109659</commentid>
    <comment_count>165</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-02-13 06:00:57 -0800</bug_when>
    <thetext>(In reply to comment #155)
&gt; Created an attachment (id=27645) [review]
&gt; GdomHTMLTableRowElement.cpp

&gt; GdomHTMLTableRowElement *thiz

This should say &quot;GdomHTMLTableRowElement *element&quot;, that&apos;s the usual convention in Gtk.

We might also add a &quot;g_return_val_if_fail (!error || !*error, 0);&quot; here.

&gt; if(ec)

What happens if &quot;error&quot; is not set? We probably need &quot;if(ec &amp;&amp; error)&quot; here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109660</commentid>
    <comment_count>166</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-02-13 06:07:58 -0800</bug_when>
    <thetext>(In reply to comment #165)
&gt; (In reply to comment #155)
&gt; &gt; Created an attachment (id=27645) [review] [review]
&gt; &gt; GdomHTMLTableRowElement.cpp
&gt; 
&gt; &gt; GdomHTMLTableRowElement *thiz

And an even more obvious one, we need &quot;g_return_val_if_fail (GDOM_IS_HTML_TABLE_ROW_ELEMENT (element), 0);&quot; here :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109661</commentid>
    <comment_count>167</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-02-13 06:16:51 -0800</bug_when>
    <thetext>(In reply to comment #166)
&gt; (In reply to comment #165)
&gt; &gt; (In reply to comment #155)
&gt; &gt; &gt; Created an attachment (id=27645) [review] [review] [review]
&gt; &gt; &gt; GdomHTMLTableRowElement.cpp
&gt; &gt; 
&gt; &gt; &gt; GdomHTMLTableRowElement *thiz

&gt; gdom_html_table_row_element_set_ch_off (GdomHTMLTableRowElement *thiz, gchar * value)

This fails if &apos;value&apos; is NULL. I would think it would be easy on the API side if we allowed NULL and the _get_ counterpart also returns NULL if it&apos;s empty. Otherwise you have to do if(value &amp;&amp; *value) in all code using that API, if you want to know if the value is actually empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109662</commentid>
    <comment_count>168</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-02-13 06:23:55 -0800</bug_when>
    <thetext>(In reply to comment #167)

&gt; GdomHTMLTableRowElement *
&gt; wrapHTMLTableRowElement(WebCore::HTMLTableRowElement *coreObject)
&gt; {
&gt;     g_return_val_if_fail(coreObject != NULL, NULL);
&gt;    
&gt;     GdomHTMLTableRowElement *wrapper =
&gt; GDOM_HTML_TABLE_ROW_ELEMENT(g_object_new(GDOM_TYPE_HTML_TABLE_ROW_ELEMENT, NULL));
&gt;     g_return_val_if_fail(wrapper != NULL, NULL);

That&apos;s not quite right. For one, _return_if_fail is meant to be used for public API, and not for implementation details. The first line should rather be ASSERT(coreObject).

Further more g_object_new cannot fail, it&apos;s no use to check the return value for NULL. If it ever is unable to allocate enough memory it will abort.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109663</commentid>
    <comment_count>169</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-02-13 06:29:26 -0800</bug_when>
    <thetext>(In reply to comment #168)
&gt; (In reply to comment #167)

&gt; g_object_class_install_property (g_klass, PROP_BG_COLOR,
&gt;            g_param_spec_string (&quot;bg_color&quot;, /* name */
&gt;                &quot;html_table_row_element_bg_color&quot;, /* short description */
&gt;                &quot;read-write  gchar * HTMLTableRowElement.bg_color&quot;, /* longer - 
&gt; could do with some extra doc stuff here */
&gt;                 &quot;&quot;, /* default */
&gt;                 (GParamFlags)G_PARAM_READWRITE));

Identifiers should use hyphens (-) and the nick (the second string) should be Upper Cased. Like this

g_param_spec_string (&quot;bg-color&quot;, /* name */
    &quot;Html Table Row Element Bg Color&quot;, /* short description */</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109664</commentid>
    <comment_count>170</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-02-13 06:32:38 -0800</bug_when>
    <thetext>(In reply to comment #156)
&gt; Created an attachment (id=27646) [review]
&gt; GdomHTMLTableRowElement.h

&gt; struct _GdomHTMLTableRowElement {
&gt;     GdomHTMLElement parent_instance;
&gt; };
&gt;
&gt; struct _GdomHTMLTableRowElementClass {
&gt;     GObjectClass parent_class;
&gt; };

The second struct should contain &quot;GdomHTMLTableRowElementClass parent_class;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109679</commentid>
    <comment_count>171</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-13 07:58:56 -0800</bug_when>
    <thetext>Thanks for the detailed feedback on the generated code.  We will address all issues you&apos;ve pointed out in the next patch iteration.  We&apos;ll also ensure that srcdir != builddir builds work; unfortunately we didn&apos;t get around to testing these last time around.

Regarding the naming prefix, it seems the clear consensus is to use something starting with WebKit.  I don&apos;t think we should use WebKitDOM since it&apos;s been pointed out that the all-caps acronym will confuse the Python bindings generator.  There are really three possibilities:

1. WebKit: WebKitDOMObject, WebKitDOMWindow, WebKitElement, WebKitHTMLElement, and so on.

2. WebKitDom, strictly: WebKitDomDOMObject, WebKitDomDOMWindow, WebKitDomElement, WebKitDomHTMLElement, and so on.

3. WebKitDom, but removing the &quot;DOM&quot; where it&apos;s redundant: WebKitDomObject, WebKitDomWindow, WebKitDomElement, WebKitDomHTMLElement, etc.  (There are a total of 7 interfaces where the name DOM would get spliced out.)

It&apos;s been pointed out by me and others that an advantage of WebKitDom is that all DOM classes would get grouped together.  On the other hand, there are presently only 10 non-DOM WebKit classes, and all but one of these begin with WebKitWeb: we have WebKitWebFrame, WebKitWebView and so on.  The sole exception is WebKitNetworkRequest.  So even if we choose (1) above, all DOM classes will still essentially appear together: they will consist of all classes in a long list save the few that begin with WebKitWeb and one other exception.

Regarding implementation, (1) or (2) are easy.  (3) is slightly tricky, but probably doable.  Due to the limitations of GNU Make&apos;s implicit rules, we&apos;d probably have to let the Makefile generate source/object files with full names such as WebKitDomDOMObject.cpp, then have additional rules that copy or rename these files to have the names we want such as WebKitDomObject.cpp.  The Perl script would of course also have to know how to splice these names.  But I think we can take this on if the consensus is that it&apos;s what we want.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109683</commentid>
    <comment_count>172</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-13 08:20:09 -0800</bug_when>
    <thetext>(In reply to comment #164)
&gt; Alternatively we could explicitly make
&gt; WebKitAttr =&gt; WebKitDomAttr and still go with WebKitFooElement.

To be complete, this is naming possibility (4): we could use the Dom prefix only for certain generic-looking names such as Attr.  To do this, we&apos;d have to agree on exactly when this happens.  For example, is it WebKitDomNode, or WebKitNode?  WebKitDomText, or WebKitText?  These decisions seem pretty arbitrary, so I might lean away from this possibility.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109689</commentid>
    <comment_count>173</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-02-13 09:04:51 -0800</bug_when>
    <thetext>(In reply to comment #172)
&gt; (In reply to comment #164)
&gt; &gt; Alternatively we could explicitly make
&gt; &gt; WebKitAttr =&gt; WebKitDomAttr and still go with WebKitFooElement.
&gt; 
&gt; To be complete, this is naming possibility (4): we could use the Dom prefix
&gt; only for certain generic-looking names such as Attr.  To do this, we&apos;d have to
&gt; agree on exactly when this happens.  For example, is it WebKitDomNode, or
&gt; WebKitNode?  WebKitDomText, or WebKitText?  These decisions seem pretty
&gt; arbitrary, so I might lean away from this possibility.

In fact WebKitText is technically out of the question, because it would conflict with for instance GtkText in object oriented programming languages.

To make my suggestion less arbitrary, how does it sound to leave out the *Dom* for all *Element classes? Considering that this comes down to *HTML*Element anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109690</commentid>
    <comment_count>174</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-02-13 09:12:26 -0800</bug_when>
    <thetext>(In reply to comment #173)
&gt; In fact WebKitText is technically out of the question, because it would
&gt; conflict with for instance GtkText in object oriented programming languages.
&gt; 
&gt; To make my suggestion less arbitrary, how does it sound to leave out the *Dom*
&gt; for all *Element classes? Considering that this comes down to *HTML*Element
&gt; anyway.

I believe we should add Dom to all classes. Those prefixes are our way of expressing namespaces, and we should be consistent with that, unless I am missing something, and some classes are not specific to the DOM bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109806</commentid>
    <comment_count>175</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-15 11:20:43 -0800</bug_when>
    <thetext>(In reply to comment #165)

&gt; We might also add a &quot;g_return_val_if_fail (!error || !*error, 0);&quot; here.
&gt; 
&gt; &gt; if(ec)
&gt; 
&gt; What happens if &quot;error&quot; is not set? We probably need &quot;if(ec &amp;&amp; error)&quot; here?

Actually the existing code is intended to allow the caller to pass NULL for error to ignore any error condition, so we don&apos;t want to g_return_val_if_fail (!error).  In the generated code, the call to g_set_error_literal() is benign if error == NULL, in which case that function does nothing by design (as described in its documentation).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109807</commentid>
    <comment_count>176</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-15 11:25:09 -0800</bug_when>
    <thetext>(In reply to comment #167)

I&apos;m currently working on a new patch, and hope to post it here within the next few days.  Christian, fortunately most of the points you raised have been straightforward to deal with.  One question about this:

&gt; &gt; gdom_html_table_row_element_set_ch_off (GdomHTMLTableRowElement *thiz, gchar * value)
&gt; 
&gt; This fails if &apos;value&apos; is NULL. I would think it would be easy on the API side
&gt; if we allowed NULL and the _get_ counterpart also returns NULL if it&apos;s empty.
&gt; Otherwise you have to do if(value &amp;&amp; *value) in all code using that API, if you
&gt; want to know if the value is actually empty.

The easiest way to fix this is to simply stop checking all string arguments for NULL; instead, we can pass them to WebKit and let it complain if it&apos;s not happy with a NULL argument.  Can you confirm that this seems like a reasonable idea?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109816</commentid>
    <comment_count>177</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-02-15 16:13:38 -0800</bug_when>
    <thetext>(In reply to comment #175)
&gt; (In reply to comment #165)
&gt; 
&gt; &gt; We might also add a &quot;g_return_val_if_fail (!error || !*error, 0);&quot; here.
&gt; &gt; 
&gt; &gt; &gt; if(ec)
&gt; &gt; 
&gt; &gt; What happens if &quot;error&quot; is not set? We probably need &quot;if(ec &amp;&amp; error)&quot; here?
&gt; 
&gt; Actually the existing code is intended to allow the caller to pass NULL for
&gt; error to ignore any error condition, so we don&apos;t want to g_return_val_if_fail
&gt; (!error).  In the generated code, the call to g_set_error_literal() is benign
&gt; if error == NULL, in which case that function does nothing by design (as
&gt; described in its documentation).

You are misreading the code here. &quot;!error || !*error&quot; written out means &quot;return with a critical warning if error is non-NULL and *error is also non-NULL, pass if error is NULL or if *error is NULL&quot;. In other words, pass NULL if you are not interested in errors, but *if* you pass an error, it has to be initialized as an empty error.

&gt; &gt; &gt; gdom_html_table_row_element_set_ch_off (GdomHTMLTableRowElement *thiz, gchar * value)

&gt; The easiest way to fix this is to simply stop checking all string arguments for
&gt; NULL; instead, we can pass them to WebKit and let it complain if it&apos;s not happy
&gt; with a NULL argument.  Can you confirm that this seems like a reasonable idea?

Letting *WebCore* complain from my experience usually means a segmentation fault, I certainly don&apos;t want that. What I&apos;m suggesting is to define NULL as empty, and return NULL if a value is unset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109855</commentid>
    <comment_count>178</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-16 09:09:54 -0800</bug_when>
    <thetext>(In reply to comment #177)

&gt; &gt; You are misreading the code here. &quot;!error || !*error&quot; written out means...

You&apos;re right: I was misreading this.  Thanks for the explanation.  I now agree that &quot;g_return_val_if_fail (!error || !*error, 0)&quot; makes sense.

I still believe that we don&apos;t actually need &quot;if(ec &amp;&amp; error)&quot;, because g_set_error_literal() does nothing when passed NULL.  It wouldn&apos;t hurt to have &quot;if(ec &amp;&amp; error)&quot; and it might make the code slightly clearer.  On the other hand, this is generated code which will get duplicated in a zillion places, so I still might lean toward omitting the &quot;&amp;&amp; error&quot;, though I don&apos;t care strongly about this.

&gt; &gt; The easiest way to fix this is to simply stop checking all string arguments for
&gt; &gt; NULL; instead, we can pass them to WebKit and let it complain if it&apos;s not happy
&gt; &gt; with a NULL argument.  Can you confirm that this seems like a reasonable idea?
&gt; 
&gt; Letting *WebCore* complain from my experience usually means a segmentation
&gt; fault, I certainly don&apos;t want that. What I&apos;m suggesting is to define NULL as
&gt; empty, and return NULL if a value is unset.

I believe that if we were to simply stop checking string attributes for NULL, you&apos;d have pretty much the behavior you are looking for.  When setting an attribute of type DOMString, a setter function such as HTMLTableRowElement::setChOff calls Element::setAttribute(const AtomicString&amp; name, const AtomicString&amp; value, ExceptionCode&amp; ec) to do its work.  The source code for that function reveals that if value is NULL, the attribute is removed; no segmentation fault should result.

Similarly, a getter function such as HTMLTableRowElement::chOff calls Element::getAttribute(const QualifiedName&amp; name), which returns the null string if the attribute is not present.  The returned null string is passed to our converter function gdom_gstring_convert to convert it to a (gchar *); this function will pass it to g_strdup(), which safely maps NULL to NULL, which will be returned.

As far as I can tell, in WebKit a string attribute might be either absent, or the empty string, or a non-empty string.  We could additionally consider mapping a returned empty string to NULL in an attribute getter; I&apos;m not sure, but I think you may be saying you want this.  I think I&apos;m uninclined to do this, since there may be attributes where there is a semantic difference between NULL and the empty string, and if those should be unified I think it should probably not happen in this layer.

A more general question is whether we should stop checking all string arguments for NULL, not merely arguments to attribute setters.  From a quick glance through the DOM I can&apos;t seem to find any methods where passing a NULL string would make sense.  So I now propose that we stop checking for NULL in string attribute setters only, and leave the other NULL checks in place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110122</commentid>
    <comment_count>179</comment_count>
      <attachid>27762</attachid>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-02-18 14:28:30 -0800</bug_when>
    <thetext>Created attachment 27762
new patch, updated to revision 41018

Here&apos;s a new patch.  It includes the following changes:

- We&apos;ve updated the patch to work with a current WebKit build (r41018, the latest nightly build).

- Builds with srcdir != builddir now work.

- We&apos;ve continued to refactor and clean up the code, especially the Perl script that generates the GObject bindings.  As a result the patch has continued to shrink: it now weighs in at 3239 lines, a reduction of over 250 lines from the previous iteration.

- All of Christian&apos;s points raised in comments #165-#170 have been addressed.  Regarding NULL checking as he discussed in #167, we now perform no NULL checks for attribute setter functions.  This is what I suggested in #178, but we skip the NULL checks for all types, not just strings.  This makes sense for two reasons: first, NULL may legitimately be used to remove an attribute, and second, the existing code doesn&apos;t check for NULL when an attribute is set via setting a GObject property, and so it makes sense to make setter functions behave the same way.

In this patch DOM classes still use the Gdom prefix.  I&apos;d like to change that soon.  In comment #171 I suggested three naming possibilities, but I still don&apos;t feel like I&apos;ve heard a clear consensus as to which is best.  At this point I don&apos;t like #2 because it would lead to odd names in higher-level language bindings: in particular, in Vala it would lead to classes named DomDOMObject and DomDOMWindow, for example.  So I vote for either #1 (&quot;WebKit&quot;) or #3 (&quot;WebKitDom&quot;, splicing out duplicate instances of the word Dom).  Here&apos;s what class names in Vala would look like with each possibility:

#1: DOMObject, DOMWindow, Element, HTMLElement
#3: DomObject, DomWindow, DomElement, DomHTMLELement

Feedback is welcome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112120</commentid>
    <comment_count>180</comment_count>
    <who name="Jim Nelson">jim</who>
    <bug_when>2009-03-03 18:15:54 -0800</bug_when>
    <thetext>Regarding the name prefix, I&apos;ve looked over the suggestions that have come up over the past few weeks as well as examined the multitude of files being generated by the automatic bindings, and conclude we should use the plain &quot;WebKit&quot; prefix (that is, Adam&apos;s option 1 in comment #171).

First, not all the generated classes are part of the DOM specification.  The SQL classes, Plugin and PluginArray, and WebKitAnimationEvent all appear to be outside the DOM spec, and there are certainly more.  The XMLHttpRequest and XPath IDLs are W3C specifications, but also appear outside the DOM.  Thus, a class called WebKitDomPlugin is technically wrong.

Christian brought up in comment #173 that WebKitText would clash with GtkText in object oriented languages.  However, a class called Text is common beyond Gtk.  Name collisions are not a unique problem.  I know it&apos;s inconvenient to have to fully qualify the name in source, but it&apos;s not unprecedented.

Considering the wide gamut of the generated classes and the various requirements we&apos;re placed under here -- that the classes may be invoked in C, Python, Vala, and beyond, and that they all do not live inside the DOM spec -- I think the plain &quot;WebKit&quot; prefix is the way to go.

If maintaining namespace is necessary, as Gustavo mentions in comment #174, we&apos;re going to need multiple namespaces for the various types of classes (DOM, WebKit-specific, XML-HTTP, etc.).  In some ways, that&apos;s already been done for us.  I count 7 namespaces already declared by virtue of consistent naming: CSS*, DOM*, HTML*, SQL*, SVG*, WebKit* (i.e. WebKitAnimationEvent.idl), XMLHttp*, and XPath*.  The generic classes outside those namespaces (i.e. Attr, WheelEvent, Screen) would have to be categorized further to their appropriate namespace, since they&apos;re not all DOM (or of any other common grouping).

But since we&apos;re talking about over 300 classes (in the full JS bindings), this seems extraordinarily complex and unnecessary.  If someone would care to provide such a taxonomy in a text file, I&apos;d be happy to consider it.  For now, however, I vote we move forward with the unadorned &quot;WebKit&quot; prefix.

-- Jim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112356</commentid>
    <comment_count>181</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-03-05 04:18:51 -0800</bug_when>
    <thetext>(In reply to comment #179)
&gt; Created an attachment (id=27762) [review]

Just a few more comments:

 #include &quot;ScriptController.h&quot;
+#include &quot;TextDocument.h&quot;
 #include &quot;SubstituteData.h&quot;

Would be good to keep this in alphabetical order.

 /**
+ * webkit_web_frame_get_xml_http_request:
+ * @frame: a #WebKitWebFrame
+ *
+ * returns a Gdom wrapper around an XMLHttpRequest
+ *
+ * Return value: a GdomXMLHttpRequest
+ */

You need to add &quot;Since: 1.1.2&quot; to all new public functions doc string. (If we don&apos;t make it for 1.1.2, we&apos;ll change it to 1.1.3, and so on).

+    PassRefPtr&lt;DOMWindow&gt; win = coreFrame-&gt;domWindow();
+    return GDOM_DOM_WINDOW(WebKit::toGDOM(win.get()));

What&apos;s the point of using a PassRefPtr here? I think it adds unnecessary refcount churning, and that this is enough:

return GDOM_DOM_WINDOW(WebKit::toGDOM(coreFrame-&gt;domWindow()));

+WEBKIT_API GdomXMLHttpRequest *
+webkit_web_frame_get_xml_http_request       (WebKitWebFrame       *frame);
+
+WEBKIT_API GdomDOMWindow *
+webkit_web_frame_get_dom_window       (WebKitWebFrame       *frame);

We try to keep this aligned in headers.

+2009-02-18  Luke Kenneth Casson Leighton &lt;lkcl@lkcl.net&gt;
+
+        Implemented GTK DOM binding.
+
+        * gtk/webkit/webkitwebframe.cpp:
+        * gtk/webkit/webkitwebframe.h:

Here add the bug URL and title too (and same in all changelogs).

webcore_cppflags += \
+    -I$(srcdir)/WebKit/gtk \
+    -I$(srcdir)/WebKit/gtk/WebCoreSupport \
+    -I$(srcdir)/WebKit/gtk/webkit \
 	-I$(srcdir)/WebCore \
+ 	-I$(srcdir)/WebCore/bindings/gdom \
 	-I$(srcdir)/WebCore/bindings/js \

We could fix indentation here while we are at it :)

+#include &quot;gdom/GdomHTMLElementPrivate.h&quot;
+#include &quot;gdom/GdomHTMLAnchorElementPrivate.h&quot;

Alphabetical order again.

+gpointer GDOMObjectCache::getDOMObject(void* objectHandle)
+{
+    gpointer ret = domObjects().get(objectHandle);
+    return ret;
+}

No need for variable.


Also, I agree the prefix WebKit seems to make the most sense here, so +1 from me on that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112686</commentid>
    <comment_count>182</comment_count>
      <attachid>28381</attachid>
    <who name="Jim Nelson">jim</who>
    <bug_when>2009-03-06 17:49:43 -0800</bug_when>
    <thetext>Created attachment 28381
GTK DOM bindings

This patch incorporates all previous patches, renames the classes to the &quot;WebKit&quot; prefix, and addresses Xan&apos;s requests in comment #181.  The bindings generator has been tightened up not to produce unnecessary property getters and setters as well.  This was generated against revision #41443.

We believe this is a solid candidate for inclusion and a good step toward rich GTK support.  Please let us know what you think!

Thanks,

-- Jim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112719</commentid>
    <comment_count>183</comment_count>
      <attachid>28381</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-03-07 06:52:04 -0800</bug_when>
    <thetext>Comment on attachment 28381
GTK DOM bindings

Hi Jim

&gt; Index: GNUmakefile.am
&gt; ===================================================================
&gt; --- GNUmakefile.am	(revision 41443)
&gt; +++ GNUmakefile.am	(working copy)
&gt; @@ -31,6 +31,7 @@
&gt;  
&gt;  # Directory for autogenerated sources
&gt;  GENSOURCES := $(top_builddir)/DerivedSources
&gt; +GENSOURCESGOBJECT := $(top_builddir)/DerivedSources/webkit
&gt;  GENPROGRAMS := $(top_builddir)/Programs

Can we rename the build-related GOBJECT wording to GDOM i.e. GENSOURCESGOBJECT -&gt; GENSOURCESGDOM ?

&gt;  # Script for creating hash tables
&gt; @@ -103,7 +104,8 @@
&gt;  	-I$(srcdir)/JavaScriptCore/ForwardingHeaders \
&gt;  	-I$(srcdir)/JavaScriptCore/parser \
&gt;  	-I$(srcdir)/JavaScriptCore/wtf \
&gt; -	-I$(top_builddir)/DerivedSources
&gt; +	-I$(top_builddir)/DerivedSources \
&gt; +	-I$(srcdir)/WebCore/bindings/webkit

No need to include .../bindings/webkit to the JSC build.

&gt; +webcoregtk_cppflags += \
&gt; +	-I$(top_builddir)/DerivedSources/webkit \
&gt; +	-I$(srcdir)/WebCore/bindings \
&gt; +	-I$(srcdir)/WebCore/bindings/gobject
&gt; +

Please add the lines above to webcoregtk_cppflags in WebCore/GNUmakefile.am

&gt;  nodist_EXTRA_libWebCore_la_SOURCES = \
&gt;  	$(webcore_built_nosources)
&gt;  
&gt; @@ -193,6 +200,7 @@
&gt;  libWebCore_la_LIBADD = \
&gt;  	libJavaScriptCore.la \
&gt;  	libWebCoreJS.la \
&gt; +	libgobject.la \

Let&apos;s name the libtool archive to libWebCoreGDOM.la

&gt; +libgobject_ladir = $(prefix)/include/webkit-1.0/webkit
&gt; +libgobject_la_HEADERS = \
&gt; +        $(libgobject_h_api)
&gt; +

Ditto and libwebcoregdom_h_api.Also declare libwebcoregdom_h_api before libgobject_ladir above.

&gt;  # WebKit
&gt;  webkitgtk_h_api :=
&gt;  webkitgtk_sources :=
&gt; @@ -360,12 +372,14 @@
&gt;  	-I$(srcdir)/WebKit/gtk \
&gt;  	-I$(srcdir)/WebKit/gtk/WebCoreSupport \
&gt;  	-I$(srcdir)/WebKit/gtk/webkit \
&gt; -	-I$(top_builddir)/WebKit/gtk/webkit
&gt; +	-I$(top_builddir)/WebKit/gtk/webkit \
&gt; +	-I$(top_builddir)/DerivedSources

Add DerivedSources/webkit here too.

&gt;  # END WEBKIT GTK+
&gt;  #
&gt;  # Files that will be distributed
&gt; @@ -466,6 +526,7 @@
&gt;  # Build unit test
&gt;  noinst_PROGRAMS += Programs/UnitTests
&gt;  Programs_UnitTests_CPPFLAGS = \
&gt; +	-I$(srcdir)/WebCore/bindings \

I don&apos;t think we need to include it.

&gt; @@ -494,7 +555,8 @@
&gt;  	$(webcore_built_sources) \
&gt;  	$(webcore_built_nosources) \
&gt;  	$(webkitgtk_built_sources) \
&gt; -	$(webkitgtk_built_nosources)
&gt; +	$(webkitgtk_built_nosources) \
&gt; +	$(gobject_built_nosources)

gdom_built_sources.

&gt; Index: WebCore/GNUmakefile.am
&gt; ===================================================================
&gt; --- WebCore/GNUmakefile.am	(revision 41443)
&gt; +++ WebCore/GNUmakefile.am	(working copy)
&gt; @@ -1,7 +1,7 @@
&gt;  
  
&gt;  webcore_cppflags += \
&gt; +	-I$(srcdir)/WebKit/gtk \
&gt; +	-I$(srcdir)/WebKit/gtk/WebCoreSupport \
&gt; +	-I$(srcdir)/WebKit/gtk/webkit \

Do we need to include WebKit here?

&gt;  	-I$(srcdir)/WebCore \
&gt; +	-I$(srcdir)/WebCore/bindings/gobject \
&gt;  	-I$(srcdir)/WebCore/bindings/js \
&gt;  	-I$(srcdir)/WebCore/bridge \
&gt;  	-I$(srcdir)/WebCore/bridge/c \
&gt; @@ -57,6 +61,7 @@
&gt;  	DerivedSources/DocTypeStrings.cpp \
&gt;  	DerivedSources/tokenizer.cpp \
&gt;  	DerivedSources/ColorData.c \
&gt; +	DerivedSources/webkit/webkitdomdummy.c \

This should go to gdom_built_nosources and please add it to BUILT_SOURCES too

&gt; @@ -240,6 +245,14 @@
&gt;  	WebCore/xml/XMLSerializer.idl \
&gt;  	WebCore/xml/XSLTProcessor.idl
&gt;  
&gt; +webcoregtk_sources += \
&gt; +	WebCore/bindings/gobject/webkitbinding.cpp \
&gt; +	WebCore/bindings/gobject/webkitbinding.h \
&gt; +	WebCore/bindings/gobject/WebKitDOMObject.cpp \
&gt; +	WebCore/bindings/gobject/WebKitDOMObject.h \
&gt; +	WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp \
&gt; +	WebCore/bindings/gobject/webkithtmlelementwrapperfactory.h 

Please add the sources above to webcoregtk_sources in line ~1730

Kindly rename GOBJECT to GDOM accordingly from here on (i.e. GOBJECT_AUTO_..., GOBJECT_FIXED_..., GOBJECT_CLASSES, etc...)

&gt; +# Bindings autogenerated in GObject, but not in JS.
&gt; +IDL_BINDINGS_GOBJECT_EXTRA := \
&gt; +	WebCore/html/CanvasPixelArray.idl
&gt; +
&gt; +# Bindings autogenerated in JS, but not in GObject.
&gt; +IDL_BINDINGS_GOBJECT_MINUS := 
&gt; +
&gt; +# All IDL files used for autogeneration in GObject.  We filter out SVG and events for now.

Please add a FIXME re SVG and events ^^^ - as we might need to add it later 

&gt; +gobject_built_nosources := $(GOBJECT_HEADERS_BUILT) $(GOBJECT_SOURCES_BUILT)

This should be _built_sources not _built_nosources.

&gt; Index: WebCore/bindings/gobject/WebKitDOMObject.cpp
&gt; ===================================================================
&gt; --- WebCore/bindings/gobject/WebKitDOMObject.cpp	(revision 0)
&gt; +++ WebCore/bindings/gobject/WebKitDOMObject.cpp	(revision 0)
&gt; @@ -0,0 +1,28 @@
&gt; +/*
&gt; + * Copyright (C) 2008 Luke Kenneth Casson Leighton &lt;lkcl@lkcl.net&gt;
&gt; + * Copyright (C) 2008 Martin Soto &lt;soto@freedesktop.org&gt;
&gt; + * Copyright (C) 2008 Alp Toker &lt;alp@atoker.com&gt;
&gt; + * Copyright (C) 2008 Apple Inc. All Rights Reserved.
&gt; + */
&gt; +

Please include the license header here.

&gt; Index: WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp
&gt; ===================================================================
&gt; --- WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp	(revision 0)
&gt; +++ WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp	(revision 0)
&gt; +#include &quot;webkithtmlelementwrapperfactory.h&quot;

Why are the following lines prefixed with &quot;webkit/&quot;? We&apos;re already including DerivedSources/webkit anyway.

&gt; +#include &quot;webkit/webkitdom.h&quot;
&gt; +
&gt; +#include &quot;webkit/WebKitHTMLAnchorElementPrivate.h&quot;
&gt; +#include &quot;webkit/WebKitHTMLAppletElementPrivate.h&quot;
&gt; +#include &quot;webkit/WebKitHTMLAreaElementPrivate.h&quot;
&gt; +#include &quot;webkit/WebKitHTMLBaseElementPrivate.h&quot;
&gt; +#include &quot;webkit/WebKitHTMLBaseFontElementPrivate.h&quot;
&gt; +#include &quot;webkit/WebKitHTMLBlockquoteElementPrivate.h&quot;
&gt; +#include &quot;webkit/WebKitHTMLBodyElementPrivate.h&quot;

[....]

&gt; Index: WebKitTools/GNUmakefile.am
&gt; ===================================================================
&gt; --- WebKitTools/GNUmakefile.am	(revision 41443)
&gt; +++ WebKitTools/GNUmakefile.am	(working copy)
&gt; @@ -7,8 +7,10 @@
&gt;  
&gt;  # GtkLauncher
&gt;  Programs_GtkLauncher_CPPFLAGS = \
&gt; +	-I$(srcdir)/WebCore/bindings \
&gt;  	-I$(srcdir)/WebKit/gtk \
&gt;  	-I$(top_builddir)/WebKit/gtk \
&gt; +	-I$(srcdir)/WebKit/gtk/webkit \

I don&apos;t think we need to add those two above.

&gt; @@ -31,8 +33,10 @@
&gt;  Programs_DumpRenderTree_CPPFLAGS = \
&gt;  	-I$(srcdir)/WebKitTools/DumpRenderTree \
&gt;  	-I$(srcdir)/WebKitTools/DumpRenderTree/gtk \
&gt; +	-I$(srcdir)/WebCore/bindings \
&gt;  	-I$(srcdir)/WebKit/gtk \
&gt;  	-I$(top_builddir)/WebKit/gtk \
&gt; +	-I$(srcdir)/WebKit/gtk/webkit \

Ditto.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112937</commentid>
    <comment_count>184</comment_count>
    <who name="Jim Nelson">jim</who>
    <bug_when>2009-03-09 18:43:09 -0700</bug_when>
    <thetext>(In reply to comment #183)
&gt; (From update of attachment 28381 [review])
&gt; Can we rename the build-related GOBJECT wording to GDOM i.e. GENSOURCESGOBJECT
&gt; -&gt; GENSOURCESGDOM ?

I don&apos;t think this makes sense for a couple of reasons.  First, the general consensus is that we&apos;re moving away from GDOM as a prefix in the code, and that logically carries over to the makefile.  Second, the other bindings are named after the language they are for (i.e. JS, ObjC, etc.)  GObject is the best, all-encompassing name for these new bindings.

&gt; &gt;  # Script for creating hash tables
&gt; &gt; @@ -103,7 +104,8 @@
&gt; &gt;  	-I$(srcdir)/JavaScriptCore/ForwardingHeaders \
&gt; &gt;  	-I$(srcdir)/JavaScriptCore/parser \
&gt; &gt;  	-I$(srcdir)/JavaScriptCore/wtf \
&gt; &gt; -	-I$(top_builddir)/DerivedSources
&gt; &gt; +	-I$(top_builddir)/DerivedSources \
&gt; &gt; +	-I$(srcdir)/WebCore/bindings/webkit
&gt; 
&gt; No need to include .../bindings/webkit to the JSC build.

Right.

&gt; &gt; +webcoregtk_cppflags += \
&gt; &gt; +	-I$(top_builddir)/DerivedSources/webkit \
&gt; &gt; +	-I$(srcdir)/WebCore/bindings \
&gt; &gt; +	-I$(srcdir)/WebCore/bindings/gobject
&gt; &gt; +
&gt; 
&gt; Please add the lines above to webcoregtk_cppflags in WebCore/GNUmakefile.am

The flags need to be here for autogeneration and compilation.

&gt; Let&apos;s name the libtool archive to libWebCoreGDOM.la

&gt; Ditto and libwebcoregdom_h_api.Also declare libwebcoregdom_h_api before
&gt; libgobject_ladir above.

Again, I believe GObject&apos;s a better choice.

&gt; &gt; @@ -360,12 +372,14 @@
&gt; &gt;  	-I$(srcdir)/WebKit/gtk \
&gt; &gt;  	-I$(srcdir)/WebKit/gtk/WebCoreSupport \
&gt; &gt;  	-I$(srcdir)/WebKit/gtk/webkit \
&gt; &gt; -	-I$(top_builddir)/WebKit/gtk/webkit
&gt; &gt; +	-I$(top_builddir)/WebKit/gtk/webkit \
&gt; &gt; +	-I$(top_builddir)/DerivedSources
&gt; 
&gt; Add DerivedSources/webkit here too.

Right.

&gt; &gt; @@ -466,6 +526,7 @@
&gt; &gt;  # Build unit test
&gt; &gt;  noinst_PROGRAMS += Programs/UnitTests
&gt; &gt;  Programs_UnitTests_CPPFLAGS = \
&gt; &gt; +	-I$(srcdir)/WebCore/bindings \
&gt; 
&gt; I don&apos;t think we need to include it.

Right.

&gt; &gt; @@ -494,7 +555,8 @@
&gt; &gt;  	$(webcore_built_sources) \
&gt; &gt;  	$(webcore_built_nosources) \
&gt; &gt;  	$(webkitgtk_built_sources) \
&gt; &gt; -	$(webkitgtk_built_nosources)
&gt; &gt; +	$(webkitgtk_built_nosources) \
&gt; &gt; +	$(gobject_built_nosources)
&gt; 
&gt; gdom_built_sources.

As explained above.

&gt; &gt;  webcore_cppflags += \
&gt; &gt; +	-I$(srcdir)/WebKit/gtk \
&gt; &gt; +	-I$(srcdir)/WebKit/gtk/WebCoreSupport \
&gt; &gt; +	-I$(srcdir)/WebKit/gtk/webkit \
&gt; Do we need to include WebKit here?

Yes.

&gt; &gt; @@ -57,6 +61,7 @@
&gt; &gt;  	DerivedSources/DocTypeStrings.cpp \
&gt; &gt;  	DerivedSources/tokenizer.cpp \
&gt; &gt;  	DerivedSources/ColorData.c \
&gt; &gt; +	DerivedSources/webkit/webkitdomdummy.c \
&gt; 
&gt; This should go to gdom_built_nosources and please add it to BUILT_SOURCES too

Again, as explained above.

&gt; &gt; @@ -240,6 +245,14 @@
&gt; &gt;  	WebCore/xml/XMLSerializer.idl \
&gt; &gt;  	WebCore/xml/XSLTProcessor.idl
&gt; &gt;  
&gt; &gt; +webcoregtk_sources += \
&gt; &gt; +	WebCore/bindings/gobject/webkitbinding.cpp \
&gt; &gt; +	WebCore/bindings/gobject/webkitbinding.h \
&gt; &gt; +	WebCore/bindings/gobject/WebKitDOMObject.cpp \
&gt; &gt; +	WebCore/bindings/gobject/WebKitDOMObject.h \
&gt; &gt; +	WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp \
&gt; &gt; +	WebCore/bindings/gobject/webkithtmlelementwrapperfactory.h 
&gt; 
&gt; Please add the sources above to webcoregtk_sources in line ~1730
&gt; 
&gt; Kindly rename GOBJECT to GDOM accordingly from here on (i.e. GOBJECT_AUTO_...,
&gt; GOBJECT_FIXED_..., GOBJECT_CLASSES, etc...)

As explained above.

&gt; &gt; +# All IDL files used for autogeneration in GObject.  We filter out SVG and events for now.
&gt; 
&gt; Please add a FIXME re SVG and events ^^^ - as we might need to add it later 

Right.

&gt; &gt; +gobject_built_nosources := $(GOBJECT_HEADERS_BUILT) $(GOBJECT_SOURCES_BUILT)
&gt; 
&gt; This should be _built_sources not _built_nosources.

Why?

&gt; Please include the license header here.

Added.

&gt; Why are the following lines prefixed with &quot;webkit/&quot;? We&apos;re already including
&gt; DerivedSources/webkit anyway.

When headers are installed in the distribution, they&apos;ll wind up in the webkit/ directory (along with the WebKit/GTK header files).  This is how the pathing worked in the earlier GTK code; we&apos;re just following along.

&gt; &gt;  # GtkLauncher
&gt; &gt;  Programs_GtkLauncher_CPPFLAGS = \
&gt; &gt; +	-I$(srcdir)/WebCore/bindings \
&gt; &gt;  	-I$(srcdir)/WebKit/gtk \
&gt; &gt;  	-I$(top_builddir)/WebKit/gtk \
&gt; &gt; +	-I$(srcdir)/WebKit/gtk/webkit \
&gt; 
&gt; I don&apos;t think we need to add those two above.

Required for compilation.

&gt; 
&gt; &gt; @@ -31,8 +33,10 @@
&gt; &gt;  Programs_DumpRenderTree_CPPFLAGS = \
&gt; &gt;  	-I$(srcdir)/WebKitTools/DumpRenderTree \
&gt; &gt;  	-I$(srcdir)/WebKitTools/DumpRenderTree/gtk \
&gt; &gt; +	-I$(srcdir)/WebCore/bindings \
&gt; &gt;  	-I$(srcdir)/WebKit/gtk \
&gt; &gt;  	-I$(top_builddir)/WebKit/gtk \
&gt; &gt; +	-I$(srcdir)/WebKit/gtk/webkit \
&gt; 
&gt; Ditto.

Required for compilation.

The ones I&apos;ve marked &quot;right&quot; or &quot;added&quot; are straighforward enough, but it&apos;s not like the code doesn&apos;t build and execute without them.  I&apos;d like to get more input on this patch before I perform another one with these changes.

-- Jim
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116882</commentid>
    <comment_count>185</comment_count>
    <who name="Andre Klapper">a9016009</who>
    <bug_when>2009-04-08 08:11:04 -0700</bug_when>
    <thetext>&gt; I&apos;d like to get more
&gt; input on this patch before I perform another one with these changes.

Can someone comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117453</commentid>
    <comment_count>186</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-04-14 05:44:14 -0700</bug_when>
    <thetext>*** Bug 16686 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118336</commentid>
    <comment_count>187</comment_count>
      <attachid>29670</attachid>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-04-21 17:06:20 -0700</bug_when>
    <thetext>Created attachment 29670
patch updated to revision 42662

Here&apos;s a new patch, updated for the latest WebKit nightly build (revision 42662).  This patch contains no other changes since the last one posted (in comment #182).

At this point I&apos;m a bit perplexed as to what it will take to get this patch accepted.  A little background: I work for Yorba, an open source group in San Francisco.  We&apos;re working on (among other projects) a GTK-based WYSIWYG editor built on WebKit, and we&apos;re highly interested in a GTK DOM since we need it for our editor.  My colleague Jim and I picked up work on this patch back in February, and submitted several successive iterations.  We got great feedback from everyone until we posted our last version on March 6, but after that the thread has essentially gone dead for the last six weeks.  I believe we&apos;ve resolved every significant issue that has been raised (though please correct me if I&apos;m wrong).  Who will ultimately make the decision about when this patch is considered acceptable?  It would help us if that individual or set of individuals could articulate what they&apos;re looking for.

We&apos;re willing to make substantial further changes if desired.  If the size of the patch is an issue, we could potentially even carve it into smaller iterations (for example, a first iteration could exclude exposing properties).  We&apos;re also happy to come down to Cupertino to discuss in person if you&apos;re interested - we could discuss over lunch or in front of a whiteboard.  As long as the patch remains unaccepted, we&apos;ll plan to continue to keep it alive via periodic postings here, though that certainly doesn&apos;t seem like the best possible outcome.  Please let us know what more we can do - we&apos;re here to help!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118373</commentid>
    <comment_count>188</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-04-22 02:39:28 -0700</bug_when>
    <thetext>&gt; At this point I&apos;m a bit perplexed as to what it will take to get this patch
&gt; accepted. 

likewise.  it&apos;s been nearly eight months since it was created.

as a result of a lack of initiative from apple, i&apos;m abandoning webkit in favour
of gecko, having worked out that python-hulahop provides the missing link
between gecko&apos;s DOM and python, in exactly the same way that [modified]
pywebkitgtk provides python access to a DOM model.

the advantages of using gecko is as follows:

1) it&apos;s fully de-facto standards-compliant.

there has been active hostility towards making webkit language bindings
fully de-facto standards compliance, with total and pathological silence
as the answer when strong evidence is presented that webkit is the only web
engine that fails to comply with modern de-facto standards.

2) it&apos;s a mature product

gecko DOM interface bindings have been available for well over three years.
despite the fact that there is so little documentation on it, and they&apos;re
as obtuse as hell and so only a mother could love them, the gecko DOM
interface language-independent bindings _do_ actually work, and finally
the OLPC sugar team worked out how to use them (in python), and created
python-hulahop


overall, then, the possibilities for webkit are terminated by apple&apos;s
intransigence and deliberate hostility towards de-facto standards
compliance and support for the features that this patch provides.

anyone reading this is advised think twice before using webkit until
such time as apple get their act together.

for example - to the gnome developers reading this: you made the right
decision to pull webkit from epiphany and use gecko.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118374</commentid>
    <comment_count>189</comment_count>
      <attachid>29670</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-04-22 03:08:25 -0700</bug_when>
    <thetext>Comment on attachment 29670
patch updated to revision 42662

Marking the patch for review. You need to set the review flag to &apos;?&apos; for it to appear in the queue, that way it&apos;s easier for them to notice it. I&apos;m trying to poke someone with experience in this area to look into this now, thanks for your efforts and patience :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118375</commentid>
    <comment_count>190</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-04-22 03:34:34 -0700</bug_when>
    <thetext>(In reply to comment #188)
&gt; &gt; At this point I&apos;m a bit perplexed as to what it will take to get this patch
&gt; &gt; accepted. 
&gt; 
&gt; likewise.  it&apos;s been nearly eight months since it was created.

That&apos;s not at all accurate.  It&apos;s been around two months since a patch that was in a reasonable state was uploaded.  I can understand that it is disappointing that it hasn&apos;t been reviewed in the two months since.  Personally,  I hadn&apos;t seen this bug since it was updated in February as someone appears to have cleared or neglected to set the review flag on the most recent iteration of the patch, meaning that it dropped out of the review queue.  If that is set once again then it should get a little more visibility.

&gt; as a result of a lack of initiative from apple, i&apos;m abandoning webkit in favour
&gt; of gecko, having worked out that python-hulahop provides the missing link
&gt; between gecko&apos;s DOM and python, in exactly the same way that [modified]
&gt; pywebkitgtk provides python access to a DOM model.

Great.  I wish you the best of luck with Gecko, and I would encourage you to contribute to and enrich their project in similar manner to how you&apos;ve contributed to and enriched WebKit.

I also hope that this decision will cause you to cease adding further uninformed and inflammatory comments to this bug so that those who are actively working on improving WebKit can do so without having to wade through your ramblings.

&gt; there has been active hostility towards making webkit language bindings
&gt; fully de-facto standards compliance, with total and pathological silence
&gt; as the answer when strong evidence is presented that webkit is the only web
&gt; engine that fails to comply with modern de-facto standards.

It is an intentional design decision to treat the JavaScript behavior as what is effectively a backwards-compatibility mode on top of the formal DOM standards.  It&apos;s clear you don&apos;t agree with that decision, but it&apos;s ridiculous to claim that this somehow means we&apos;re failing to comply with standards.  There are no backwards-compatibility constraints for non-JavaScript content, so there is nothing to comply with, and no compelling reasons to add additional baggage to new API.

&gt; overall, then, the possibilities for webkit are terminated by apple&apos;s
&gt; intransigence and deliberate hostility towards de-facto standards
&gt; compliance and support for the features that this patch provides.
&gt;
&gt; anyone reading this is advised think twice before using webkit until
&gt; such time as apple get their act together.

I can&apos;t tell whether you&apos;re more upset by the fact the functionality isn&apos;t currently available in WebKit or that Apple drives core WebKit development but doesn&apos;t work directly on the GTK port.  A lot of your rhetoric seems to completely ignore the actual points of discussion and instead focusses on assigning blame to Apple.  That&apos;s an incredibly counter-productive approach to participating in any sort of useful discussion.

&gt; for example - to the gnome developers reading this: you made the right
&gt; decision to pull webkit from epiphany and use gecko.

Yes, the Epiphany developers have clearly pulled WebKit and are using Gecko, as can be seen from the recent changes at &lt;http://git.gnome.org/cgit/epiphany/log/&gt;… … …</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118377</commentid>
    <comment_count>191</comment_count>
      <attachid>29670</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-04-22 04:17:28 -0700</bug_when>
    <thetext>Comment on attachment 29670
patch updated to revision 42662

&gt;  # Script for creating hash tables
&gt; @@ -110,7 +111,8 @@ javascriptcore_cppflags += \
&gt;  	-I$(srcdir)/JavaScriptCore/ForwardingHeaders \
&gt;  	-I$(srcdir)/JavaScriptCore/parser \
&gt;  	-I$(srcdir)/JavaScriptCore/wtf \
&gt; -	-I$(top_builddir)/DerivedSources
&gt; +	-I$(top_builddir)/DerivedSources \
&gt; +	-I$(srcdir)/WebCore/bindings/webkit

This and other changes to the include search path are a little bit of a concern due to the layering violations they imply.  JavaScriptCore should not depend on headers in WebCore.  WebCore should not depend on headers from WebKit.

&gt; +webcoregtk_sources += \
&gt; +	WebCore/bindings/gobject/webkitbinding.cpp \
&gt; +	WebCore/bindings/gobject/webkitbinding.h \
&gt; +	WebCore/bindings/gobject/WebKitDOMObject.cpp \
&gt; +	WebCore/bindings/gobject/WebKitDOMObject.h \
&gt; +	WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp \
&gt; +	WebCore/bindings/gobject/webkithtmlelementwrapperfactory.h 
&gt; +

It looks like some of these files do not follow the naming convention.  This should be addressed.

&gt; Index: WebCore/bindings/gobject/WebKitDOMObject.cpp
&gt; ===================================================================
&gt; --- WebCore/bindings/gobject/WebKitDOMObject.cpp	(revision 0)
&gt; +++ WebCore/bindings/gobject/WebKitDOMObject.cpp	(revision 0)
&gt; @@ -0,0 +1,28 @@
&gt; +/*
&gt; + * Copyright (C) 2008 Luke Kenneth Casson Leighton &lt;lkcl@lkcl.net&gt;
&gt; + * Copyright (C) 2008 Martin Soto &lt;soto@freedesktop.org&gt;
&gt; + * Copyright (C) 2008 Alp Toker &lt;alp@atoker.com&gt;
&gt; + * Copyright (C) 2008 Apple Inc. All Rights Reserved.
&gt; + */

This file needs a license header.


&gt; +#include &lt;glib-object.h&gt;
&gt; +
&gt; +#include &quot;config.h&quot;
&gt; +#include &quot;webkitbinding.h&quot;
&gt; +#include &quot;WebKitDOMObject.h&quot;

These includes should follow the order in the style guidelines (config.h, WebKitDOMObject.cpp, blank line, remaining includes in sorted order).


&gt; ===================================================================
&gt; --- WebCore/bindings/gobject/WebKitDOMObject.h	(revision 0)
&gt; +++ WebCore/bindings/gobject/WebKitDOMObject.h	(revision 0)
&gt; @@ -0,0 +1,56 @@
&gt; +/*
&gt; + * Copyright (C) 2008 Luke Kenneth Casson Leighton &lt;lkcl@lkcl.net&gt;
&gt; + * Copyright (C) 2008 Martin Soto &lt;soto@freedesktop.org&gt;
&gt; + * Copyright (C) 2008 Alp Toker &lt;alp@atoker.com&gt;
&gt; + * Copyright (C) 2008 Apple Inc. All Rights Reserved.
&gt; + *
&gt; + * This library is free software; you can redistribute it and/or
&gt; + * modify it under the terms of the GNU Library General Public
&gt; + * License as published by the Free Software Foundation; either
&gt; + * version 2 of the License, or (at your option) any later version.
&gt; + *
&gt; + * This library is distributed in the hope that it will be useful,
&gt; + * but WITHOUT ANY WARRANTY; without even the implied warranty of
&gt; + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
&gt; + * Library General Public License for more details.
&gt; + *
&gt; + * You should have received a copy of the GNU Library General Public License
&gt; + * along with this library; see the file COPYING.LIB.  If not, write to
&gt; + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
&gt; + * Boston, MA 02110-1301, USA.
&gt; + */
&gt; +
&gt; +
&gt; +#ifndef WebKitDOMObject_h
&gt; +#define WebKitDOMObject_h
&gt; +
&gt; +#include &quot;glib-object.h&quot;

If this header is included here, why is it also included in WebKitDOMObject.cpp?  Why does one place use &quot;&quot; while the other uses &lt;&gt;?

&gt; +#include &quot;webkit/webkitdomdefines.h&quot;
&gt; +#include &lt;webkit/webkitdefines.h&gt;

Why does one of these includes use &quot;&quot; and the other &lt;&gt;?

&gt; +struct _WebKitDOMObject {
&gt; +    GObject parent_instance;
&gt; +
&gt; +    void *coreObject;
&gt; +};
&gt; +
&gt; +struct _WebKitDOMObjectClass {
&gt; +    GObjectClass parent_class;
&gt; +};
&gt; +

Some consistency on the naming style on these member variables would be nice.



&gt; Index: WebCore/bindings/gobject/gstringconvert.h

This file name doesn&apos;t fit our naming conventions.

&gt; ===================================================================
&gt; --- WebCore/bindings/gobject/gstringconvert.h	(revision 0)
&gt; +++ WebCore/bindings/gobject/gstringconvert.h	(revision 0)
&gt; @@ -0,0 +1,37 @@
&gt; +/*
&gt; + * Copyright (C) 2008 Luke Kenneth Casson Leighton &lt;lkcl@lkcl.net&gt;
&gt; + *
&gt; + * This library is free software; you can redistribute it and/or
&gt; + * modify it under the terms of the GNU Library General Public
&gt; + * License as published by the Free Software Foundation; either
&gt; + * version 2 of the License, or (at your option) any later version.
&gt; + *
&gt; + * This library is distributed in the hope that it will be useful,
&gt; + * but WITHOUT ANY WARRANTY; without even the implied warranty of
&gt; + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
&gt; + * Library General Public License for more details.
&gt; + *
&gt; + * You should have received a copy of the GNU Library General Public License
&gt; + * along with this library; see the file COPYING.LIB.  If not, write to
&gt; + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
&gt; + * Boston, MA 02110-1301, USA.
&gt; + */
&gt; +
&gt; +
&gt; +#ifndef GSTRING_CONVERT_H
&gt; +#define GSTRING_CONVERT_H
&gt; +
&gt; +/* convenience functions for converting various webkit string types into a utf8 glib string */

WebKit.

&gt; +#include &quot;AtomicString.h&quot;
&gt; +#include &quot;CString.h&quot;
&gt; +#include &quot;KURL.h&quot;
&gt; +#include &quot;PlatformString.h&quot;
&gt; +#include &quot;unicode/ustring.h&quot;

Why is the unicode/ustring.h include necessary here?

&gt; +inline gchar * gdom_gstring_convert(WebCore::String const&amp; s) { return g_strdup(s.utf8().data()); }
&gt; +inline gchar * gdom_gstring_convert(WebCore::KURL const&amp; s) { return g_strdup(s.string().utf8().data()); }
&gt; +inline gchar * gdom_gstring_convert(const JSC::UString &amp; s) { return g_strdup(s.UTF8String().c_str()); }
&gt; +inline gchar * gdom_gstring_convert(WebCore::AtomicString const&amp;s) { return g_strdup(s.string().utf8().data()); }

This doesn&apos;t follow our coding style.  The spacing around operators is inconsistent, and the function names are using lower case with underscores.

&gt; Index: WebCore/bindings/gobject/webkitbinding.cpp
&gt; ===================================================================
&gt; --- WebCore/bindings/gobject/webkitbinding.cpp	(revision 0)
&gt; +++ WebCore/bindings/gobject/webkitbinding.cpp	(revision 0)
&gt; @@ -0,0 +1,367 @@

The file name doesn&apos;t fit our convention, and the include order in this file is a bit whacky.  It should be updated to follow the style guidelines, with the duplicate headers removed.  It may make sense to keep the generated headers in a separate block, but the others should follow the style.


&gt; +namespace WebKit {

This seems a bit out of place inside WebCore, but perhaps it is intentional.

&gt; +#include &lt;wtf/Noncopyable.h&gt;
&gt; +
&gt; +#include &quot;CanvasPixelArray.h&quot;
&gt; +#include &quot;CSSRule.h&quot;
&gt; +#include &quot;CSSValue.h&quot;
&gt; +#include &quot;Document.h&quot;
&gt; +#include &quot;DOMWindow.h&quot;
&gt; +#include &quot;Element.h&quot;
&gt; +#include &quot;HTMLCollection.h&quot;
&gt; +#include &quot;Node.h&quot;
&gt; +#include &quot;StyleSheet.h&quot;
&gt; +#include &quot;Text.h&quot;

Similar comment about includes here.

&gt; +
&gt; +namespace WebCore {
&gt; +
&gt; +    class AtomicString;
&gt; +    class Document;
&gt; +    class Event;
&gt; +    class Frame;
&gt; +    class KURL;
&gt; +    class Node;
&gt; +    class String;

Given some of the files that are included above, many of these forward declarations are redundant.

&gt; Index: WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp
&gt; ===================================================================
&gt; --- WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp	(revision 0)
&gt; +++ WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp	(revision 0)

Is there some way we can autogenerate this file?  It seems like it is almost entirely boilerplate.

&gt; +
&gt; +#include &quot;glib-object.h&quot;
&gt; +#include &lt;wtf/Forward.h&gt;
&gt; +#include &quot;HTMLElement.h&quot;
&gt; +
&gt; +namespace WebCore {
&gt; +    class HTMLElement;
&gt; +}

Including HTMLElement.h then forward-declaring HTMLElement is a bit redundant. 

&gt; Index: WebCore/bindings/scripts/CodeGeneratorGObject.pm
&gt; ===================================================================
&gt; --- WebCore/bindings/scripts/CodeGeneratorGObject.pm	(revision 0)
&gt; +++ WebCore/bindings/scripts/CodeGeneratorGObject.pm	(revision 0)

[ I&apos;m skipping this file for now in hopes that I&apos;ll be able to convince Sam to look at it. ]

&gt; Index: WebCore/bindings/scripts/gobject-generate.pl
&gt; ===================================================================
&gt; --- WebCore/bindings/scripts/gobject-generate.pl	(revision 0)
&gt; +++ WebCore/bindings/scripts/gobject-generate.pl	(revision 0)

It may make more sense for this to be named in the same order as the other &quot;generate&quot; script in that directory.


&gt; Index: WebKitTools/GNUmakefile.am
&gt; ===================================================================
&gt; --- WebKitTools/GNUmakefile.am	(revision 42662)
&gt; +++ WebKitTools/GNUmakefile.am	(working copy)
&gt; @@ -4,8 +4,10 @@ noinst_PROGRAMS += \
&gt;  
&gt;  # GtkLauncher
&gt;  Programs_GtkLauncher_CPPFLAGS = \
&gt; +	-I$(srcdir)/WebCore/bindings \
&gt;  	-I$(srcdir)/WebKit/gtk \
&gt;  	-I$(top_builddir)/WebKit/gtk \
&gt; +	-I$(srcdir)/WebKit/gtk/webkit \
&gt;  	$(global_cppflags) \
&gt;  	$(javascriptcore_cppflags)
&gt;  
&gt; @@ -29,8 +31,10 @@ Programs_GtkLauncher_LDADD = \
&gt;  dumprendertree_cppflags := \
&gt;  	-I$(srcdir)/WebKitTools/DumpRenderTree \
&gt;  	-I$(srcdir)/WebKitTools/DumpRenderTree/gtk \
&gt; +	-I$(srcdir)/WebCore/bindings \
&gt;  	-I$(srcdir)/WebKit/gtk \
&gt;  	-I$(top_builddir)/WebKit/gtk \
&gt; +	-I$(srcdir)/WebKit/gtk/webkit \
&gt;  	$(global_cppflags) \
&gt;  	$(javascriptcore_cppflags)
&gt;  

DumpRenderTree should only be using API.  It should not have any dependencies on WebCore.


I&apos;m going to mark this as r- for now and will try to review the remaining file shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118378</commentid>
    <comment_count>192</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-04-22 04:27:55 -0700</bug_when>
    <thetext>&gt; &gt; +inline gchar * gdom_gstring_convert(WebCore::String const&amp; s) { return g_strdup(s.utf8().data()); }
&gt; &gt; +inline gchar * gdom_gstring_convert(WebCore::KURL const&amp; s) { return g_strdup(s.string().utf8().data()); }
&gt; &gt; +inline gchar * gdom_gstring_convert(const JSC::UString &amp; s) { return g_strdup(s.UTF8String().c_str()); }
&gt; &gt; +inline gchar * gdom_gstring_convert(WebCore::AtomicString const&amp;s) { return g_strdup(s.string().utf8().data()); }
&gt; 
&gt; This doesn&apos;t follow our coding style.  The spacing around operators is
&gt; inconsistent, and the function names are using lower case with underscores.
&gt; 

BTW, I think I said this once already in the bug, but IMHO those functions sholdn&apos;t be prefixed with &apos;gdom&apos;, since they are not specific to the DOM bindings and could be used all over the GTK+ port code. Not sure what would be a good alternative, perhaps something  like gwebcore or something...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118385</commentid>
    <comment_count>193</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-04-22 09:37:55 -0700</bug_when>
    <thetext>Thanks a lot for the feedback.  We didn&apos;t realize about the review flag since we&apos;re new WebKit contributors, but we&apos;ll be sure to set it in the future.  Some of the new points raised should be easy to fix and some might not be, but we&apos;ll ponder more and post again here soon.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118422</commentid>
    <comment_count>194</comment_count>
      <attachid>29670</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-04-22 14:36:10 -0700</bug_when>
    <thetext>Comment on attachment 29670
patch updated to revision 42662

I concur with Mark&apos;s review, this is not ready to be landed.  I have gone through the CodeGenerator and picked out a bunch of issues that really stick out, but in general, I can&apos;t really review this as is.  I believe the best way forward is for you to pick one file (say Node.idl) and get code generation working for it or a subset of it.  The stripped down version of the code generator that can generate this one file will be a great jumping off point.  I know this seems like a step backwards, but the current state of the patch is really not reviewable as is due to a lack of clarity in the code.  The single patch is trying to do too many things at once.

Here are some comments:

&gt; +    if ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Custom&quot;} ||
&gt; +    	$attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomGetter&quot;} ||
&gt; +        $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomSetter&quot;}) {
&gt; +        return 1;
&gt; +    }

[Custom] and related attributes are only used for implementing JS specific quirks and should not be needed for GObject bindings. 

&gt; +    if ($prop_type eq &quot;stylesheets::MediaList&quot; or
&gt; +    	$prop_type eq &quot;CSSStyleDeclaration&quot; or
&gt; +        $prop_type eq &quot;CSSVariablesDeclaration&quot; or
&gt; +        $prop_type eq &quot;EventListener&quot; or
&gt; +        $prop_type =~ /Constructor$/ or

Constructors are a JS only idiom.

&gt; +
&gt; +sub UsesManualToJSImplementation {

???  How is this related to GObject support?

&gt; +    my $type = shift;
&gt; +
&gt; +    # skipped out CanvasPixelArray - see JSCanvasPixelArrayCustom.cpp for why.
&gt; +    return 1 if $type eq &quot;Node&quot; or $type eq &quot;Document&quot; or $type eq &quot;HTMLCollection&quot; or
&gt; +      $type eq &quot;SVGPathSeg&quot; or $type eq &quot;StyleSheet&quot; or $type eq &quot;CSSRule&quot; or $type eq &quot;CSSValue&quot; or
&gt; +      $type eq &quot;Event&quot; or $type eq &quot;Element&quot; or $type eq &quot;Text&quot;;
&gt; +    return 0;
&gt; +}
&gt; +
&gt; +sub WritePrivateHeader {
&gt; +    my $object = shift;
&gt; +    my $class = shift;
&gt; +
&gt; +    my $interfaceName = $class-&gt;name;
&gt; +    my $className = GetClassName($interfaceName);
&gt; +    my $filename = &quot;$outputDir/&quot; . $className . &quot;Private.h&quot;;
&gt; +    my $guard = uc(decamelize($className)) . &quot;_PRIVATE_H&quot;;
&gt; +    my $parentClassName = GetParentClassName($class);
&gt; +
&gt; +    my $hasLegacyParent = $class-&gt;extendedAttributes-&gt;{&quot;LegacyParent&quot;};

LegacyParent is a JS only idiom.

&gt; +    my $hasRealParent = @{$class-&gt;parents} &gt; 0;
&gt; +    my $hasParent = $hasLegacyParent || $hasRealParent;
&gt; +    
&gt; +    open(PRIVHEADER, &quot;&gt;$filename&quot;) or die &quot;Couldn&apos;t open file $filename for writing&quot;;
&gt; +    
&gt; +    print PRIVHEADER split(&quot;\r&quot;, $licenceTemplate);
&gt; +    print PRIVHEADER &quot;\n&quot;;
&gt; +    
&gt; +    my $text = &lt;&lt; &quot;EOF&quot;;
&gt; +#ifndef $guard
&gt; +#define $guard
&gt; +
&gt; +#include &lt;glib-object.h&gt;
&gt; +#include &lt;webkit/${parentClassName}.h&gt;
&gt; +#include &quot;${interfaceName}.h&quot;
&gt; +EOF
&gt; +
&gt; +    print PRIVHEADER $text;
&gt; +    
&gt; +    print PRIVHEADER map { &quot;#include \&quot;$_\&quot;\n&quot; } sort keys(%hdrPropIncludes);
&gt; +    print PRIVHEADER &quot;\n&quot; if keys(%hdrPropIncludes);
&gt; +    
&gt; +    $text = &lt;&lt; &quot;EOF&quot;;
&gt; +typedef struct _${className} ${className};
&gt; +
&gt; +namespace WebKit {
&gt; +    ${className} *
&gt; +    wrap${interfaceName}(WebCore::${interfaceName} *coreObject);
&gt; +
&gt; +    WebCore::${interfaceName} *
&gt; +    core(${className} *request);
&gt; +
&gt; +EOF
&gt; +
&gt; +    print PRIVHEADER $text;
&gt; +
&gt; +    if (${interfaceName} eq &quot;DOMWindow&quot; || (!$hasParent or $class-&gt;extendedAttributes-&gt;{&quot;GenerateToJS&quot;}) and
&gt; +        !UsesManualToJSImplementation($interfaceName)) {
&gt; +        $text = &lt;&lt; &quot;EOF&quot;;

What is this trying to do?

&gt; +sub Uniquify {
&gt; +    my $name = shift;
&gt; +    my $avoid = shift;
&gt; +    if ($name eq $avoid) {
&gt; +        $name = $name . &quot;2&quot;;
&gt; +    }

Please explain this.

&gt; +        if($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ConvertFromString&quot;}) {

This is a JS idiom.

&gt; +            # TODO: Add other conversion functions for different types.  Current
&gt; +            # IDLs only list longs.
&gt; +            if($gtype eq &quot;long&quot;) {
&gt; +                $convert_fn = &quot;&quot;;
&gt; +                $post_convert_fn = &quot;.toInt()&quot;;
&gt; +            } else {
&gt; +                die &quot;Can&apos;t convert to type ${gtype}.&quot;;
&gt; +            }
&gt; +        }
&gt; +

&gt; +        if ($gtype eq &quot;int&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                G_MININT,        /* min */
&gt; +                G_MAXINT, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;boolean&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                FALSE, /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;float&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                G_MINFLOAT,        /* min */
&gt; +                G_MAXFLOAT, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;double&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                G_MINDOUBLE,        /* min */
&gt; +                G_MAXDOUBLE, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;uint64&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                0,        /* min */
&gt; +                G_MAXUINT64, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;ulong&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                0,        /* min */
&gt; +                G_MAXULONG, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;long&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                G_MINLONG,        /* min */
&gt; +                G_MAXLONG, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;uint&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                0,        /* min */
&gt; +                G_MAXUINT, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;ushort&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                0,        /* min */
&gt; +                G_MAXUINT16, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;uchar&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                G_MININT8,        /* min */
&gt; +                G_MAXINT8, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;char&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                0,        /* min */
&gt; +                G_MAXUINT8, /* max */
&gt; +                0,        /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;string&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                &quot;&quot;, /* default */
&gt; +EOF
&gt; +        } elsif ($gtype eq &quot;object&quot;) {
&gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                WEBKIT_TYPE_${propGType}, /* gobject type */
&gt; +EOF
&gt; +        }
&gt; +        push(@txt_install_props, $txt_install_prop);
&gt; +        $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; +                (GParamFlags)${gparamflag}));
&gt; +
&gt; +EOF

This should probably be done in a more generic way using a hash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119643</commentid>
    <comment_count>195</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-05-01 15:57:58 -0700</bug_when>
    <thetext>Thanks again for all the feedback.  Sam&apos;s comments above were sobering, and Jim and I used them for a starting point for a discussion about how to move forward.  In our work in the last couple of months, we started with the existing patch and simply tried to fix things that were obviously broken, but as Sam pointed out the problem is that there&apos;s still an overwhelming amount of code that&apos;s poorly understood (even to us, who have been recently working on the patch).

We now agree that a different approach is required.  I&apos;m convinced we should start over and work incrementally, pulling in pieces of the existing patch where appropriate.  A great first iteration would be one which exposed only a couple of interfaces (perhaps Node and Document) and only a limited set of methods or attributes (perhaps, say, only attributes of type string; then at least we could write a test program that retrieved the current document&apos;s title).  That might yield a patch of only a few hundred lines, which we could manageably review to ensure that it&apos;s solid.  Great.  We could commit that (possibly to a branch), then work on another patch which, say, extended the system to expose attributes of any primitive type.  We could review and commit that, and so on.  We believe this is the right way forward.

Unfortunately, for entirely unrelated reasons our software group (Yorba) is focusing on other projects right now, and so while we&apos;d love to contribute to this seemingly-unending GTK+/DOM effort, I think we may not the resources to do so in the next few months.  It would be great if someone else wanted to continue the effort along the lines above, and if not I think it&apos;s quite likely we&apos;ll come back to this at some point, probably later this year.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124310</commentid>
    <comment_count>196</comment_count>
    <who name="Sean Neilan">sean</who>
    <bug_when>2009-06-04 08:31:13 -0700</bug_when>
    <thetext>Hi, 

Is it possible for me at this moment to apply any of the above patches (if at all) and start manipulating the dom through something like pywebkitgtk?
http://code.google.com/p/pywebkitgtk/issues/detail?id=13

Thank you very much for your time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124642</commentid>
    <comment_count>197</comment_count>
    <who name="Leon Winter">lwi</who>
    <bug_when>2009-06-06 08:27:12 -0700</bug_when>
    <thetext>Hi,

i just wanted to know if there is any progress on this issue. It would be a great benefit as an addition to the toolkit bindings. Since WebKit/GTK does not provide an interface to manipulate the DOM directly one has to use slow inline javascript. In my opinion this is a very important interface to enrich the browsers ability to provide the user more information and give them better control.

Regards,
Leon Winter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124646</commentid>
    <comment_count>198</comment_count>
    <who name="Sean Neilan">sean</who>
    <bug_when>2009-06-06 11:23:23 -0700</bug_when>
    <thetext>(In reply to comment #197)
Hey Leon,

There&apos;s an unofficial patched version of webkit with the extensions you&apos;re looking for.
http://wiki.github.com/lkcl/webkit/installing-webkit-glib-on-macosx
I&apos;m working on compiling it right now.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124675</commentid>
    <comment_count>199</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-06-07 01:53:31 -0700</bug_when>
    <thetext>(In reply to comment #86)
&gt; (In reply to comment #52)
&gt; &gt; --- WebCore/page/DOMWindow.idl  (revision 36459)
&gt; &gt; +++ WebCore/page/DOMWindow.idl  (working copy)
&gt; &gt; @@ -155,7 +155,7 @@
&gt; &gt;          [DoNotCheckDomainSecurity, Custom] void postMessage(in DOMString
&gt; &gt; message, in DOMString targetOrigin)
&gt; &gt;              raises(DOMException);
&gt; &gt; 
&gt; &gt; -#if defined(LANGUAGE_JAVASCRIPT)
&gt; &gt; +#if defined(LANGUAGE_JAVASCRIPT) || defined(LANGUAGE_GOBJECT)
&gt; &gt;          // Global constructors
&gt; &gt;          attribute StyleSheetConstructor StyleSheet;
&gt; &gt;          attribute CSSStyleSheetConstructor CSSStyleSheet;
&gt; &gt; 
&gt; &gt; i&apos;ve added this in as a reminder that, at some point _in the future_,
&gt; &gt; the gobject auto-generator code will need to auto-generate &quot;constructors&quot;.
&gt; &gt; i believe this was part of the problem i had in doing creation of a
&gt; &gt; document - not having some of these functions.
&gt; &gt; 
&gt; &gt; although it will be straightforward to add constructors, i&apos;m not doing
&gt; &gt; it for this patch.
&gt; 
&gt; Constructors are JavaScript language concept.  They&apos;re not something that other
&gt; bindings need to worry about.

 unfortunately, as has just been discovered, not having constructors,
 and making them &quot;javascript language concept&quot;, means that certain objects
 and certain functionality can never be accessed.

 there is an implicit assumption that all functionality - all objects -
 can be accessed somehow as the return result of another function, where,
 absolute best case, you can have one and only one function at the top-level
 such as gdom_get_dom_window() and then access quite literally everything
 from there.

 unfortunately, that is not the case.

 &quot;XPathNSResolver&quot; is one object which is NOT returned as the return
 result from ANY other webkit DOM object function.

 in amongst the 450 or so webkit DOM objects, there will be several others.

 this is the primary reason why constructors were added to javascript,
 and you would do well to stop interfering with the development of the
 glib / gobject language bindings and start trusting the experience and
 process which created the javascript language bindings over several
 years.

 there are _good_ reasons why the javascript language bindings are the
 way that they are, and it&apos;s going to be _really_ fucking boring to have
 to justify at every single step of the way every single fucking feature
 again and again.

 a much simpler process is if you (apple) stop interfering and blocking
 development by trying to dictate what these glib / gobject language
 bindings _should_ have, according to some idealistic W3C standard instead
 of the de-facto real world javascript standard, and start trusting the
 judgement of the people who are actually _using_ these language bindings
 in the real world.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124690</commentid>
    <comment_count>200</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-06-07 08:50:13 -0700</bug_when>
    <thetext>rrright - time for a recap.

* initial progress made was fast, fun, and useful.  python bindings on top of the glib bindings (pywebkitgtk) and then a desktop widget API on top of that (pyjamas-desktop) allowed for rapid, full and nearly complete development of the glib / gobject bindings.  about the only thing that was missed out was &quot;remove event listener&quot;.  mark and the other apple employees were extremely helpful in advising on key critical webkit issues, in particular refcounting, and in how the javascript and the objective-c bindings work, both of which were copied and learned from, to create the gobject bindings.

* review was not done for several weeks because it was not understood that a &quot;?&quot; has to be put next to patches.

* a review cycle began, which comprised several levels:

1) compliance with webkit coding standards.  communication on exactly which parts of the coding standards were required to be complied with was in some cases not made explicit enough, but was eventually understood.

2) downright silly bugs - it&apos;s always good to find these.

3) an explanation of refcounting that was beyond the ability of three separate engineers to understand, and a request to comply with the c++ webkit standards on refcounting rather than the &quot;mixed&quot; manual approach, which the three separate engineers all attempted to implement, independently, without success

4) apple making it explicitly clear that compliance with de-facto (industry) standards must NOT be done; that even if it jeopardises developers&apos; ability to utilise the gobject bindings and terminates any possibility that a project could ever make use of the gobject bindings, compliance with the W3C DOM standards is of absolute pathological and paramount absolute 100% top priority.

* a request was made, by apple employees, to two separate engineers, to provide a much &quot;simpler&quot; patch - one which would help them to understand what was going on.  the first engineer - a free software developer with debts approaching $USD 50,000 and with irregular income of only around $1000 per month - did some initial exploration into creating a &quot;simpler&quot; gdom patch (attempting to add GdomNode only) and found it to be a complex process that would by default pull in vast amounts of dependent objects (such as GdomNodeList, and then GdomAttr, and so on).  actually creating a &quot;simpler&quot; patch that would compile and would be verifiable turned out to be too challenging.  the request was therefore denied.  the second request, made to a separate engineering team, was also denied on the basis of the team running out of time and money to spend [on educating apple employees as well as their own project].

in both cases, it was made very clear that billion dollar companies such as apple really shouldn&apos;t go asking for freebies, with the implication being that it is the responsibility of the webkit maintainers to take the time and utilise their own corporate money to understand what is going on, or, if that is not possible, to delegate responsibility to someone who _does_ understand.

* the complexity of the patch began to take its toll, leading the apple engineers to begin to take drastic measures to try and reduce the amount of complexity that they had to be involved with, and thus reduce the amount of stress that they would face.  one of the psychological methods deployed was to clearly and explicitly state a lack of trust in the original engineer&apos;s work, and to begin to  belittle both the engineer and the project that had inspired the original gobject bindings work.  the reaction of the engineer was one of frustration, disbelief and coarsely-expressed outrage, mixed in with attempts to provide reasonable counter-arguments to the increasingly hostile, increasingly disrespectful and increasingly non-technical or goal-post-moving arguments being dreamed up by apple engineers.

the &quot;arguments of last resort&quot; being utilised by apple engineers were simply silence or to state &quot;because we said so&quot;.

thus, the opportunity for progress is terminated by a billion-dollar corporation.  &quot;because we said so&quot;.

* contributions by other engineers were welcomed, mostly because the engineers, not having the practical experience of developing a fully-blown Widget API on top of the webkit / gobject bindings, acted according to apple&apos;s dictats.  the original developer could no longer work with these engineers because of removal of critical functionality that left no way to do any testing (by running high-level test suites using the Widget API that was based on webkit/gobject).

* suggestions to relax the coding standards and land the patch as-is, and then create much much simpler follow-up patches to correct any issues, and to use the webkit bugtracker to record outstanding issues, were dismissed out-of-hand.

* research showing that the de-facto javascript standards are leading the way in all other language bindings in all other leading browser engine technology - MSHTML, KHTML, Gecko - has been ignored, despite five requests that apple employees review the researched material showing that webkit will be the only web browser engine in the world that does not comply with the de-facto javascript standards, thus making it incredibly awkward or literally impossible to use.

* developers who are now beginning to utilise the glib / gobject bindings are finding that functionality which has been shown and proven to be required by the original engineer (which the apple employees refuse &quot;because we said so&quot; to accept) is actually, in fact... required!

given this summary, suggestions on how to proceed, to provide a full set of glib / gobject language bindings, that provides a _useful_ and _useable_ set of language bindings, might be a good idea to discuss.  a good way to begin might be for apple&apos;s webkit team to make a clear statement regarding their position on language bindings, and to clearly and unequivocably state whether it is apple&apos;s intent to dominate, dictate and stifle development or whether it is their intent to act as a facilitator and accelerator of the development and the reach of this strategically important piece of software.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124707</commentid>
    <comment_count>201</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-06-07 15:30:10 -0700</bug_when>
    <thetext>(In reply to comment #200)
&gt; * review was not done for several weeks because it was not understood that a
&gt; &quot;?&quot; has to be put next to patches.

Information about how to contribute to WebKit has been on the web site for a long time:

http://webkit.org/coding/contributing.html

&gt; * a review cycle began, which comprised several levels:
&gt; 
&gt; 1) compliance with webkit coding standards.  communication on exactly which
&gt; parts of the coding standards were required to be complied with was in some
&gt; cases not made explicit enough, but was eventually understood.

Coding style has similarly been documented on the web site for a long time:

http://webkit.org/coding/coding-style.html

&gt; 3) an explanation of refcounting that was beyond the ability of three separate
&gt; engineers to understand, and a request to comply with the c++ webkit standards
&gt; on refcounting rather than the &quot;mixed&quot; manual approach, which the three
&gt; separate engineers all attempted to implement, independently, without success

More about ref counted variables is available here.  It&apos;s not linked from other pages on the site, but it&apos;s available via direct link and has been committed to the svn repository for a while now:

http://webkit.org/coding/RefPtr.html

The rules for how to use RefPtr and PassRefPtr really do make sense once you understand what they&apos;re doing.  It took me a while to fully understand the pattern, and it definitely helped me to read through this document more than once.

&gt; * a request was made, by apple employees, to two separate engineers, to provide
&gt; a much &quot;simpler&quot; patch [...].
&gt; 
&gt; the &quot;arguments of last resort&quot; being utilised by apple engineers were simply
&gt; silence or to state &quot;because we said so&quot;.

Everyone who contributes patches to the project must follow the same process.  That includes making their patches of reasonable size and complexity for reviewers to understand and comment on (and breaking them up if necessary), following the coding style guidelines and writing regression tests whenever possible.

Why do you feel that this particular patch does not need to follow that process?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124723</commentid>
    <comment_count>202</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-06-07 22:00:52 -0700</bug_when>
    <thetext>(In reply to comment #199)
&gt;  &quot;XPathNSResolver&quot; is one object which is NOT returned as the return
&gt;  result from ANY other webkit DOM object function.

&lt;http://trac.webkit.org/browser/trunk/WebCore/dom/Document.idl#L124&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124737</commentid>
    <comment_count>203</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-06-08 02:12:51 -0700</bug_when>
    <thetext>&gt; Everyone who contributes patches to the project must follow the same process. 
&gt; That includes making their patches of reasonable size and complexity for
&gt; reviewers to understand and comment on (and breaking them up if necessary),
&gt; following the coding style guidelines and writing regression tests whenever
&gt; possible.

1) coding style guidelines i perfectly understand and accept.  where it has been possible to understand what is being requested, and where, in amongst what is now 200 messages i have been able to _find_ the requests, i have complied, because i understand completely the value of coding style guidelines.

2) the available testing resources - and the available _time_ to _create_ tests - are limited.  the process by which the work was done and tested was by utilising an empirical high-level process.

i apologise for not having enough time and not enough money to spend on creating better, more acceptable test resources.

the testing and development process involves use of pywebkitgtk (an intermediate library) and pyjamas-desktop (a high-level API).  by comparing and observing the results of the operation of the 20 or so applications under the pyjamas-desktop API against the &quot;original&quot; (pyjamas), i was able to empirically gain a level of confidence that the work actually performed as expected.

[attempts to recommend this process of testing to the webkit developers were met with scorn and derision, dismissed out of hand, being described as a &quot;pet project&quot;.  such belittlement of an empirical and comprehensive test process is wildly inappropriate, as well as being part of an inappropriate personal attack].

i mention this because just because this empirical test process is &quot;different&quot;, it doesn&apos;t make it &quot;invalid&quot;.

if i had available time and money, i would go create some reassuring unit tests.  i apologise for being a free software developer who does not have access to unlimited funds.

i made the decision to bypass unit tests on the gdom_ code and even on pywebkitgtk because i _trust_ the process which created glib and i _trust_ the process by which codegen.py in the well-established python-gobject project auto-generates python bindings.

so i saw no need to go reinventing the test process, and went direct to a much more overall useful empirical test process.

that this process involves projects and code that are not part of the core of webkit is, to be blunt, not my problem.

 
&gt; Why do you feel that this particular patch does not need to follow that
&gt; process?

 david, thank you for asking that question.  parts of the answer have already been made, a number of times, but i am happy to reiterate them here, and i trust that you are asking this question in order to take this matter seriously, and i trust that you will give the reasons outlined below serious consideration. 

 1) the development of this work was a highly complex one-off that required approx eight weeks of 11 hour days in order to complete _without_ losing track of what was involved.  hundreds of classes required memorisation (which could not have been done on a part-time basis or over a longer time period); approximately 250 simultaneous editor sessions were needed, at one point, to keep track of related files.

requests to &quot;fit in&quot; with a &quot;simpler&quot; process were, and are, therefore simply not practical, on a task that was, and is, already monstrously complex.  one attempt was made (GdomNode), and it became immediately clear that it would pull in vast amounts of extra code and classes - GdomNodeList, GdomAttr and more).

a second independent engineering team were also requested to create a &quot;simpler&quot; patch: the request by apple for _their_ time and resources to be spent was _also_ denie.

the work has therefore been done, i apologise, as pretty much a one-off &quot;fait-accomplit&quot;; for this reason alone, it should be accepted as-is and then worked on, slowly, in manageable chunks, to fix any known issues.

one other independent engineering team has already given up on trying to &quot;fit in&quot; with the process; this should emphasise and highlight to you that this is not .... see inappropriate and disrespectful accusations, in this, 2nd from last paragraph:
https://bugs.webkit.org/show_bug.cgi?id=16401#c70

2) keeping track of issues has proven to be a nightmare (which i predicted it would be, very early on) and the reviewers have repeatedly expressed frustration at their comments being &quot;ignored&quot; when in fact they were simply _not seen_ because there is _too much_ for one bug-tracker thread to handle.

and the reason for there being &quot;too much&quot; is: see 1), above.

you can see evidence of the frustration of the reviewers in their use of language to diminish the value of the work carried out, in beginning to utilise non-technical and non-strategic arguments, and in ignoring repeated requests for comments, in an attempt to reduce stress levels.

there is a well-known and proven process by which the project can be made more manageable: the use of a bugtracker and the use of patches.

however, it is not possible to have a bugtracker-within-a-bugtracker, and it extremely impractical to use patches-to-patches, and to consider developing a bugtracker-within-a-bugtracker and a patch-to-patch system _just_ for this one-off work would be a waste of developer resources.

i started using github as a substitute but that is a &quot;non-authoritative&quot; source which is being ignored.

for _this_ reason alone, it seems pretty obvious that the solution is to utilise the existing resources in the best way that they are intended - by creating smaller individual patches and having separate manageable bugreports.  _but_, of course, that means that the work has first to be accepted.

attempts to utilise the bug tracker to keep track of issues that need to be resolved in the patch itself (#20897, #20898) were requested to be terminated (ironically to avoid confusion).

3) the glib / gobject language bindings do not impact on the core webkit functionality in any way, shape or form.  why therefore should apple _care_ about them?  apple has its objective-c bindings.  apple has its own port of webkit.

so for goodness sake stop being obstructive and stand aside; make your own lives easier and let those people who _do_ care about the glib / gobject bindings be able to cooperate and collaborate on the development and progression of this strategically important functionality.  _without_ interference.



i fully appreciate and understand that it is desirable to stick to a known, tried and tested development path and process.  however, unfortunately, sometimes with something as comprehensive as what has been created, in this instance, the easiest development process for the work itself _isn&apos;t_ necessarily the easiest thing to fit into the nice safe cosy comfortable practices.

last but not least, in answer to your question, is this: look at the dates on CodeGeneratorJS.pm, CodeGeneratorCOM.pm and CodeGeneratorObjC.pm.  they all state Copyright 2006.

that means that those code generators have had _three_ years in which to go through an incremental (viz: &quot;safe&quot;) development process, and it is the glib / gobject bindings which were left behind.  a catch-up had to happen, and it was done in a mere eight weeks out of necessity.

tell me you don&apos;t _seriously_ expect any free software developer willing to create glib / gobject bindings to go through some &quot;nice&quot;, &quot;safe&quot;, &quot;apple-satisfying&quot; development process, to create some half-baked unusable bits of code _just_ so that apple employees can get &quot;up to speed&quot; on how that development occurred?

i trust that that&apos;s not what&apos;s being requested.  i trust that apple is not asking free software developers to spend their time and resources on educating apple employees on the workings of these glib / gobject bindings.


now.

having said that, here are some issues which this work has raised, which need to be properly addressed, ideally before proceeding with this one-off work being merged &quot;as-is&quot; as a one-off exception into the svn repository:

1) all independent issues raised need to be created as separate bugreports (suggestion: dependent on this one, to keep track of them) preferably _before_ the work is merged.

2) the _strategic_ issues raised by this work need to be discussed, and arguments involving sentences with the words &quot;apple&apos;s vision for webkit language bindings&quot; will not be a part of that discussion.  apple is _not_ the de-facto dictatorial decision maker for language bindings to something as strategically important as webkit. the research material (listed in this bugreport and requested to be reviewed _five_ times) showing that webkit will be left behind if apple&apos;s dictats are obeyed _will_ be investigated and discussed, amongst other things.


i trust that you will give these matters serious consideration.  i trust that the time and resources already wasted by not listening to my advice earlier can be clearly seen as an example of _why_ i advised that this work be accepted as-is, and that further time and resources need not be wasted.  i trust that you can see this clearly and that it is long overdue to move on to much more exciting and adventurous issues such as adding SVG support and bindings to HTML5 features.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124739</commentid>
    <comment_count>204</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-06-08 02:21:10 -0700</bug_when>
    <thetext>(In reply to comment #202)
&gt; (In reply to comment #199)
&gt; &gt;  &quot;XPathNSResolver&quot; is one object which is NOT returned as the return
&gt; &gt;  result from ANY other webkit DOM object function.
&gt; 
&gt; &lt;http://trac.webkit.org/browser/trunk/WebCore/dom/Document.idl#L124&gt;

 *double-take...* ok - ah, drat, sorry sorry, mark: i meant XPathEvaluator.

lkcl@gonzalez:/var/src/WebKit$ grep XPathEvaluator */*/*.idl
WebCore/dom/Document.idl:        // DOM Level 3 XPath (XPathEvaluator interface)
WebCore/page/DOMWindow.idl:        attribute XPathEvaluatorConstructor XPathEvaluator;
WebCore/xml/XPathEvaluator.idl:    interface [GenerateConstructor, CanBeConstructed, Conditional=XPATH] XPathEvaluator {
lkcl@gonzalez:/var/src/WebKit$ grep XPathEvaluator */*/*.idl */*/*/*.idl
WebCore/dom/Document.idl:        // DOM Level 3 XPath (XPathEvaluator interface)
WebCore/page/DOMWindow.idl:        attribute XPathEvaluatorConstructor XPathEvaluator;
WebCore/xml/XPathEvaluator.idl:    interface [GenerateConstructor, CanBeConstructed, Conditional=XPATH] XPathEvaluator {
WebKit/win/Interfaces/DOMWindow.idl:    //attribute XPathEvaluatorConstructor XPathEvaluator;


regardless - thank you for highlighting this function: it&apos;s prompted me to review things more closely, and it looks like leon&apos;s just using gdom_x_path_evaluator_create_ns_resolver in the wrong way.

appreciated.

l.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124744</commentid>
    <comment_count>205</comment_count>
    <who name="Kalle Vahlman">zuh</who>
    <bug_when>2009-06-08 03:04:23 -0700</bug_when>
    <thetext>(In reply to comment #203)
&gt; 1) coding style guidelines i perfectly understand and accept.  where it has
&gt; been possible to understand what is being requested, and where, in amongst what
&gt; is now 200 messages i have been able to _find_ the requests, i have complied,
&gt; because i understand completely the value of coding style guidelines.
[snip]
&gt; 2) keeping track of issues has proven to be a nightmare (which i predicted it
&gt; would be, very early on) and the reviewers have repeatedly expressed
&gt; frustration at their comments being &quot;ignored&quot; when in fact they were simply
&gt; _not seen_ because there is _too much_ for one bug-tracker thread to handle.
&gt; 
&gt; and the reason for there being &quot;too much&quot; is: see 1), above.

Noteworthy point here is that you are responsible for over 100 of those 200 messages, and quite likely more than 75% of the overall amount of text in the comments.

So you are basically claiming that because you obfuscated the review process with long-winded rants about why you are right and others wrong, you get a free pass for your code.

Why not just split out the controversial bits of the patch (like the de-facto standard features that you so crave) to get it reviewed and committed?

Compared to the current strategy of throwing yourself to the ground and kicking and screaming until it happens, I wager it would even have chances of success.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124747</commentid>
    <comment_count>206</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-06-08 04:21:39 -0700</bug_when>
    <thetext>(In reply to comment #205)
&gt; (In reply to comment #203)
&gt; &gt; and the reason for there being &quot;too much&quot; is: see 1), above.
&gt; 
&gt; Noteworthy point here is that you are responsible for over 100 of those 200
&gt; messages, and quite likely more than 75% of the overall amount of text in the
&gt; comments.

 this should give you an indication of the complexity of the process involved in the development of this work.

 it should also show you the lengths to which i was prepared to go to educate people on request.

 much also of the comments show my shock and confusion at being both personally insulted by respected members of free software communities, and at the way in which the advancement of free software&apos;s strategic reach is being jeapordised by bloody-mindedness.

 it should also indicate the respect that i have for people who are patient enough to provide valuable technical input, even in the face of an increasingly stressful process, and even whilst at the same time teaching them (with unfortunately very harsh lessons) to be a tiny bit more cooperative and collaborative in the _strategic_ development and direction of webkit.

 
&gt; So you are basically claiming that because you obfuscated the review process
&gt; with long-winded rants about why you are right and others wrong, you get a free
&gt; pass for your code.

 couple of things:

 1) does the above paragraph contribute to the project or does it aggravate it?  i would say that it both aggravates the project and also once again borders on personal insult instead of adding technical or strategic value.

 please can i respectfully request that you refrain from making comments that aggrave the project.

 please refrain from making comments that border on personal insult.

 2) http://en.wikipedia.org/wiki/Correlation_does_not_imply_causation

 correlation does not imply causation.  that there exists 200 comments does not imply the insulting conclusion that you deduce.

 please refrain from wasting people&apos;s time with unfounded personal accusations and zero technical or strategic merit.


&gt; Why not just split out the controversial bits of the patch (like the de-facto
&gt; standard features that you so crave) to get it reviewed and committed?

 1) pay me money, and i&apos;ll do exactly as you wish.

 2) if you don&apos;t pay me money, fee free to contribute to the project rather than aggravate it.

 3) why don&apos;t _you_ split out the controversial bits of the patch that you claim that i crave.

 4) please refrain from making personal insults

 5) please read http://en.wikipedia.org/wiki/Egoless_programming

 6) please refrain from making assumptions that there are personal issues involved in the development of this work.  you know _nothing_ about me, my goals or my vocation.



&gt; Compared to the current strategy of throwing yourself to the ground and kicking
&gt; and screaming until it happens, I wager it would even have chances of success.

 again - as yourself this question: &quot;does the above paragraph contribute to the project or does it aggravate the project?&quot;

 please refrain from making statements that aggravate the project.

 
 can i ask the maintainers of this bugtracker if they could please delete #205 (and also this message) from the bugtracker: #205 contributes no value to patch #16401.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124770</commentid>
    <comment_count>207</comment_count>
    <who name="Kalle Vahlman">zuh</who>
    <bug_when>2009-06-08 08:32:08 -0700</bug_when>
    <thetext>(In reply to comment #206)
&gt; &gt; Noteworthy point here is that you are responsible for over 100 of those 200
&gt; &gt; messages, and quite likely more than 75% of the overall amount of text in the
&gt; &gt; comments.
&gt; 
&gt;  this should give you an indication of the complexity of the process involved
&gt; in the development of this work.
&gt; 
&gt;  it should also show you the lengths to which i was prepared to go to educate
&gt; people on request.

I don&apos;t think they asked for education. Furthermore, I&apos;m pretty sure they understood the situation with W3C DOM, JS extensions to it and their adoption to the patch quite early so most of the repetetive commentary about the JS-specific features (starting around comment #88)  were not needed.

&gt;  much also of the comments show my shock and confusion at being both personally
&gt; insulted by respected members of free software communities, and at the way in
&gt; which the advancement of free software&apos;s strategic reach is being jeapordised
&gt; by bloody-mindedness.

Free software allows you to take the code, modify and distribute it. So if you think WebKit is disfunctional wrt advancement of free software&apos;s strategic reach, you might want to fork the project to accommodate this. That way you not bound by the processes and infrastructure of the current project maintainers.

&gt;  it should also indicate the respect that i have for people who are patient
&gt; enough to provide valuable technical input, even in the face of an increasingly
&gt; stressful process, and even whilst at the same time teaching them (with
&gt; unfortunately very harsh lessons) to be a tiny bit more cooperative and
&gt; collaborative in the _strategic_ development and direction of webkit.

From the comments in this bug I get the impression that they indeed have a strategy, and you just don&apos;t agree with it. Which is naturally ok, as is the project maintainer&apos;s right to only accept code which implements *their* strategy.

&gt; &gt; So you are basically claiming that because you obfuscated the review process
&gt; &gt; with long-winded rants about why you are right and others wrong, you get a free
&gt; &gt; pass for your code.
&gt; 
&gt;  couple of things:
&gt; 
&gt;  1) does the above paragraph contribute to the project or does it aggravate it?
&gt;  i would say that it both aggravates the project and also once again borders on
&gt; personal insult instead of adding technical or strategic value.

I simply disagree with your assertion that the task is inherently so overwhelming that it should not be subjected to the review process. I also disagree that the amount of &quot;comment spam&quot; in this bug (most of it by you, mind you) would be another reason not to make sense of the patch before landing it.

There is a good example of a too-large-to-handle patches and how to resolve the issue in the Glib Unicode bug:
  http://bugs.webkit.org/show_bug.cgi?id=15914

There the patch was after multiple rounds split and now the first ones are in. That would be how this work should evolve too.

&gt;  please can i respectfully request that you refrain from making comments that
&gt; aggrave the project.
&gt;
&gt;  please refrain from making comments that border on personal insult.
 
If my tone was too personal for you,  I apologize.

&gt;  2) http://en.wikipedia.org/wiki/Correlation_does_not_imply_causation
&gt; 
&gt;  correlation does not imply causation.  that there exists 200 comments does not
&gt; imply the insulting conclusion that you deduce.

I have read each comment so my conclusions are not made by statistics of the commentary but also by the content therein. In fact, please refrain from making assumptions that I made my comments without understanding the issues concerning this bug and how to resolve it. Throwing wikipedia links to fancy terms and concepts that you seem to assume I don&apos;t know feels like questioning my intelligence and intent.

&gt; &gt; Why not just split out the controversial bits of the patch (like the de-facto
&gt; &gt; standard features that you so crave) to get it reviewed and committed?
&gt; 
&gt;  1) pay me money, and i&apos;ll do exactly as you wish.

I would, if it would be valuable enough for me to get this functionality in. It is not.
 
&gt;  2) if you don&apos;t pay me money, fee free to contribute to the project rather
&gt; than aggravate it.
&gt; 
&gt;  3) why don&apos;t _you_ split out the controversial bits of the patch that you
&gt; claim that i crave.

I&apos;ve wanted to help with this feature, but unfortunately lack proper time for it currently. :(
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124777</commentid>
    <comment_count>208</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-06-08 10:25:21 -0700</bug_when>
    <thetext> 
&gt; If my tone was too personal for you,  I apologize.

 thank you - that makes a big difference.  i&apos;m sorry if i jumped to conclusions ( i&apos;ll respond out of order with the rest as i wanted to say that first ).  regarding your offer to help if you had time - that&apos;s really appreciated, too.  i can recommend staying well clear, however, unless you have significant time available (or, as you say, a good reason). goodness knows where martin got his expertise from to be able to tackle this and rework it in the short amount of time that he did, but dang i have an enormous amount of respect for him for his contribution.

 i looked at #15914, and it would be a good idea to follow that example - i see that the functionality that was added fitted into four patches, two of which were dependent on the other.  whilst it seems a very good approach to take, the difference between the two is that the unicode update _did_ fit into (roughly equally sized?) separate patches, and the glib/gobject bindings... well...

 here&apos;s reasons against the idea (even though it&apos;s a good one):

 1) in the case of CodeGeneratorGObject.pm, virtually all of the functionality that&apos;s in there is required to support even just _one_ class, and the inter-dependence between the DOM classes makes - made - it pretty impractical to consider filtering them out.

 even if you want to do something as basic as &quot;Node&quot; - to create GdomNode - take a look at Node.idl, you can see _whoa_, it depends on Object, NodeList, EventTarget, EventListener, Document, NamedNodeMap - i just... gahh, the thought of 

 in other words, the code, thanks to the inter-relationships between the DOM classes is a self-testing tangly mess that if you pull away one brick, the whole lot comes crashing down, and is sufficiently non-functional as to make testing impossible.

 put that another way: the set of objects which are inter-dependent to the extent where you can get something useful to test requires so much code-generation that you really aren&apos;t saving very much by even bothering to remove even 98% of the classes.  the core - Window, Document, Node, Element, NodeList, Attr etc. - is _that_ inter-related.

 2) i&apos;ve gone well beyond the stage where &quot;re-visiting&quot; this code is something that i would relish.  i&apos;m happy with it.  it works.  it&apos;s a tangly mess of spaghetti perl - my least favoured language - and i&apos;d rather cut my arms off and use my nose to type on keyboards for the rest of my life than get involved in significant rewrites (no offense intended at your preferred choice of code-generating language, alp :)

 i&apos;d found myself doing the coding equivalent of holding my breath, waiting for the tangly mess of interdependencies to resolve into something - _anything_ that i could consistently compile - and it was a good... ten or so days before that happened.  the HTML elements i initially skipped; property getters and setters i could skip [but couldn&apos;t test anything until they were added].

 so - if someone _else_ would like to split this work up into smaller patches - _great_ - but count me out, big-time (except for advice).


 regarding the fork idea: i already have (by default):
  http://github.org/lkcl/webkit/tree/16401.master
 
 i needed a revision control system; i needed to be able to publish this to people who are using it.  so far i&apos;ve managed to do only about two svn catching-up updates since august 2008 (am in the middle of another one, right now) as they tend to take about three to four days, each.   that&apos;s not a good situation for the people who are reliant on that code.


 so what&apos;s the alternative?

 well, we can sit and wait for someone else to come forward, someone with time and resources of about two to three full-time months, who has the patience to work through this and create smaller patches.

 ... but any corporation that looks at the tangly mess is much more likely to go, &quot;hmmm, that code on github works, let&apos;s just use it, as-is, instead&quot;.

and we&apos;ve already _had_ one independent set of developers take a stab at &quot;simplifying&quot; things, to the extent where i couldn&apos;t get involved, because too much was missing - none of the pyjamas-desktop test suites or examples would work.

&gt; From the comments in this bug I get the impression that they indeed have a
&gt; strategy, and you just don&apos;t agree with it.

 the strategy is to restrict language bindings tightly to the provably-broken W3C standard, which _nobody_ - not one single browser technology group - has _ever_ implemented as-is (not even webkit). _everybody_ throws in exceptions and differences.

 so the &quot;strategy&quot; begins to look less like a &quot;strategy&quot; and much more like goal-post-shifting hypocrisy.

 if one feature should not be added to GObject bindings because it is not in the W3C standard, then _all_ features must be removed that do not fit into the W3C standard.

 if one feature is allowed (contrary to the W3C standard) because it is &quot;useful&quot; to some people, then to deny other features on some arbitrary basis that it is &quot;that guy whom we have no respect for, what&apos;s his name, i&apos;m trying to forget&quot; who is recommending them is... what&apos;s the word... apartheid was based on it... not racism... huh.  word escapes me.  the one where you have one rule for one person or group, and another rule for another group.   &quot;discrimination&quot;.  that&apos;s the word i was looking for.

 so.  i want answers.  i want the evidence shown in the research to be reviewed, and answers provided as to how the evidence presented fits in with apple&apos;s strategy for webkit.  i&apos;ve asked about seven times for a response, so far.


&gt; Which is naturally ok, as is the
&gt; project maintainer&apos;s right to only accept code which implements *their*
&gt; strategy.

 which is why i&apos;m giving serious consideration to advocating the creation of a webkit software foundation, where control is specifically taken _away_ from apple as the sole and exclusive controller, and handed to a foundation which has technical _and_ strategic merit for submissions at its core (the apache foundation considered adding &quot;strategic&quot; merit to their charter, alongside &quot;technical&quot; merit, after some discussions several years ago).

 but that&apos;s getting off-topic.

 *acch, tch*.  i just want to get on and for things to move forward, i&apos;m fed up with this stupid unnecessary blocking of progress.  i want people to be able to use webkit in lots more free software projects, in lots more programming languages and development environments than they are restricted to using at the moment, that&apos;s the whole damn reason why i chose this work, the glib bindings, in the first place - to open up webkit&apos;s strategic reach and to _help_ people.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124880</commentid>
    <comment_count>209</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-06-08 20:45:35 -0700</bug_when>
    <thetext>Did you seriously just try and draw a parallel between apartheid and this patch?  *Wow*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124908</commentid>
    <comment_count>210</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-06-08 23:37:07 -0700</bug_when>
    <thetext>(In reply to comment #203)
&gt; &gt; Why do you feel that this particular patch does not need to follow that
&gt; &gt; process?
&gt; 
&gt;  david, thank you for asking that question.  parts of the answer have already
&gt; been made, a number of times, but i am happy to reiterate them here, and i
&gt; trust that you are asking this question in order to take this matter seriously,
&gt; and i trust that you will give the reasons outlined below serious
&gt; consideration. 

It was a serious question, yes.

&gt; the work has therefore been done, i apologise, as pretty much a one-off
&gt; &quot;fait-accomplit&quot;; for this reason alone, it should be accepted as-is and then
&gt; worked on, slowly, in manageable chunks, to fix any known issues.

Although I have NOT read all the comments in this bug, I&apos;m going to assume you&apos;ve done a fair job of summarizing them repeatedly in recent comments.  To reiterate your position:

- You believe the patch should be landed as-is, then iterated upon.
- You don&apos;t have time to break up the patch into smaller pieces.

The reviewer(s) have said:

- The patch must be broken up into smaller pieces before being reviewed further.

I think the important take-away here is that no one has stated that the patch may never be landed, just that it needs to be broken up, reviewed and landed in pieces.

I&apos;m not sure there&apos;s much more to say at this point until you (or someone else) can find more time to work on breaking up the patch.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130438</commentid>
    <comment_count>211</comment_count>
    <who name="Gour">gour</who>
    <bug_when>2009-07-08 08:49:29 -0700</bug_when>
    <thetext>Hi!

(In reply to comment #210)
&gt; The reviewer(s) have said:
&gt; 
&gt; - The patch must be broken up into smaller pieces before being reviewed
&gt; further.
&gt; 
&gt; I think the important take-away here is that no one has stated that the patch
&gt; may never be landed, just that it needs to be broken up, reviewed and landed in
&gt; pieces.
&gt; 
&gt; I&apos;m not sure there&apos;s much more to say at this point until you (or someone else)
&gt; can find more time to work on breaking up the patch.

I understand that reviewer(s) want smaller pieces, but afaics, Luke is proving his dedication to provide solution for the real problem by providing code, i.e. putting his real hours into coding, and it would be, imho, fair that the patch is allowed into the codebase and then reviewed afterwards.

The present situation is lose/lose - the codebase is missing functionality - complete DOM bindings - which nobody else wants to or has time to provide, while the end-users are also left in despair forcing them to go somewhere else :-(


Sincerely,
Gour (aka: end user being thrilled with the prospect of running the same code in browser as well on the desktop by the grace of pyjamas-project.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130442</commentid>
    <comment_count>212</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-08 09:12:08 -0700</bug_when>
    <thetext>(In reply to comment #209)
&gt; Did you seriously just try and draw a parallel between apartheid and this
&gt; patch?  *Wow*.

no, i simply describe how the statements made, such as these:

&gt; the reasons that you made the changes in
&gt; many cases do not align with the WebKit project&apos;s vision for native bindings.

are perceived by those on the &quot;outside&quot;.  the recipients of these dictatorial &quot;visions&quot;.

now.

may i respectfully request, for the ninth time, that you review the
research material that is in response to the dictatorial decision to
follow strict W3C compliance rather than de-facto javascript standards?

if you reveiw the research material that i spent several hours searching
for, and make some comments on it, then you will see that it conflicts
with this &quot;vision&quot; and you will have entered into a dialog
that is forward-moving and inclusive, and thus can no longer be classified as &quot;fascist&quot;.

simple.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130444</commentid>
    <comment_count>213</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-08 09:33:04 -0700</bug_when>
    <thetext>(In reply to comment #210)
&gt; (In reply to comment #203)
&gt; &gt; &gt; Why do you feel that this particular patch does not need to follow that
&gt; &gt; &gt; process?
&gt; &gt; 
&gt; &gt;  david, thank you for asking that question.  parts of the answer have already
&gt; &gt; been made, a number of times, but i am happy to reiterate them here, and i
&gt; &gt; trust that you are asking this question in order to take this matter seriously,
&gt; &gt; and i trust that you will give the reasons outlined below serious
&gt; &gt; consideration. 
&gt; 
&gt; It was a serious question, yes.

 ok, great.

&gt; &gt; the work has therefore been done, i apologise, as pretty much a one-off
&gt; &gt; &quot;fait-accomplit&quot;; for this reason alone, it should be accepted as-is and then
&gt; &gt; worked on, slowly, in manageable chunks, to fix any known issues.
&gt; 
&gt; Although I have NOT read all the comments in this bug, I&apos;m going to assume
&gt; you&apos;ve done a fair job of summarizing them repeatedly in recent comments.  To
&gt; reiterate your position:
&gt; 
&gt; - You believe the patch should be landed as-is, then iterated upon.

 i believe that that is a realistic and pragmatic approach.

&gt; - You don&apos;t have time to break up the patch into smaller pieces.

 ... and neither do the other people who have worked on it, see:

    https://bugs.webkit.org/show_bug.cgi?id=16401#c195

 also neither will, i believe anybody else be willing to break it up;
 because DOM is so entangled that to even _begin_ unravelling it is
 tricky.



&gt; The reviewer(s) have said:
&gt; 
&gt; - The patch must be broken up into smaller pieces before being reviewed
&gt; further.
&gt; 
&gt; I think the important take-away here is that no one has stated that the patch
&gt; may never be landed, just that it needs to be broken up, reviewed and landed in
&gt; pieces.

 that is extremely unlikely to happen.

 from a &quot;high level&quot;, using empirical testing and using pyjamas-desktop,
 the patch can be proven and demonstrated to work, and provide the
 necessary functionality.

 two separate contributors (myself and also martin) utilised this &quot;indirect&quot;
 method of testing (using pywebkitgtk) to verify and validate that the code
 works.


&gt; I&apos;m not sure there&apos;s much more to say at this point until you (or someone else)
&gt; can find more time to work on breaking up the patch.

 trust me on this when i say that after two separate groups&apos; valuable
 time has been wasted on trying to fulfil reviewers&apos; decisions that
 you are extremely unlikely to find any further contributors with
 the skills and the time to do any further work.

 i&apos;m deeply impressed by martin and adam&apos;s contributions and attempts
 to work with the reviewers, but the skills and time required to handle
 over 600 auto-generated files is just... too much for free software
 resources to handle.

 and it&apos;s _this_ that you will, ultimately, come to realise, and you
 will, eventually, come to a pragmatic decision.  it make take another
 100 comments; it may take another year...

 so.

 i will continue to refer people to this bug report, asking them
 to make their views known on this decision.

 when the number of comments gets to 250+ and you simply get sick to
 the back teeth of saying &quot;no! our rules are more important than progress!&quot;,
 and you decide to land this patch (or whatever revision i have at the
 time) as-is, do contact me, and i will be delighted to help you and
 other contributors to create smaller (and for them more manageable)
 patches that will bring the code back into line with the strict
 coding standards.

 lastly: before anyone decides that they want to criticise me for the
 above, bear in mind this: i have the skills to patch any code that i
 want to, to do what i want, how i want.  i can indefinitely maintain
 patched versions of webkit, patched versions of XULrunner, patched
 versions of pywebkitgtk.

 NOT EVERYONE has the time or resources or the confidence to do that.
 and the reason why i am not letting you - apple - get off the hook
 on this one is for THEIR benefit, NOT mine.

 so - do you, apple, want to help serve the free software community?
 or you want to serve yourselves?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130489</commentid>
    <comment_count>214</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-08 12:56:10 -0700</bug_when>
    <thetext>(In reply to comment #213)
&gt; (In reply to comment #210)
&gt; &gt; Although I have NOT read all the comments in this bug, I&apos;m going to assume
&gt; &gt; you&apos;ve done a fair job of summarizing them repeatedly in recent comments.  To
&gt; &gt; reiterate your position:
&gt; &gt; 
&gt; &gt; - You believe the patch should be landed as-is, then iterated upon.
&gt; 
&gt;  i believe that that is a realistic and pragmatic approach.
&gt; 
&gt; &gt; - You don&apos;t have time to break up the patch into smaller pieces.
&gt; 
&gt;  ... and neither do the other people who have worked on it, see:
&gt; 
&gt;     https://bugs.webkit.org/show_bug.cgi?id=16401#c195
&gt; 
&gt;  also neither will, i believe anybody else be willing to break it up;
&gt;  because DOM is so entangled that to even _begin_ unravelling it is
&gt;  tricky.
&gt; 
&gt; &gt; The reviewer(s) have said:
&gt; &gt; 
&gt; &gt; - The patch must be broken up into smaller pieces before being reviewed
&gt; &gt; further.
&gt; &gt; 
&gt; &gt; I think the important take-away here is that no one has stated that the patch
&gt; &gt; may never be landed, just that it needs to be broken up, reviewed and landed in
&gt; &gt; pieces.
&gt; 
&gt;  that is extremely unlikely to happen.
&gt; 
&gt;  from a &quot;high level&quot;, using empirical testing and using pyjamas-desktop,
&gt;  the patch can be proven and demonstrated to work, and provide the
&gt;  necessary functionality.
&gt; 
&gt;  two separate contributors (myself and also martin) utilised this &quot;indirect&quot;
&gt;  method of testing (using pywebkitgtk) to verify and validate that the code
&gt;  works.

After re-reviewing some of the comments, I think my comment that the patch &quot;must be broken up in to smaller pieces&quot; may be worded too strongly.  In Comment #76, breaking up the patch is suggested as a best practice for new contributors and will lead to quicker turnaround (reviews) on posted patches, but it&apos;s not a strict requirement.

However, since you&apos;re unwilling to break it up (and since willing to be patient), the next step would be to post a new monolithic patch for review addressing feedback in Comment #191 and Comment #194.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130508</commentid>
    <comment_count>215</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-08 14:17:10 -0700</bug_when>
    <thetext>&gt; After re-reviewing some of the comments, I think my comment that the patch
&gt; &quot;must be broken up in to smaller pieces&quot; may be worded too strongly.  In
&gt; Comment #76, breaking up the patch is suggested as a best practice for new
&gt; contributors and will lead to quicker turnaround (reviews) on posted patches,
&gt; but it&apos;s not a strict requirement.

 ah, whew, that&apos;s a relief.

&gt; However, since you&apos;re unwilling to break it up

 it&apos;s more than that, it&apos;s that by doing so i cannot make any guarantees that the individual portions are either correct or actually do anything.  it was only by having pretty much absolutely everything that i could get pyjamas-desktop to work, and thus run the high-level tests (pyjamas examples, pyjamas unit tests etc.)

&gt; (and since willing to be patient),

 got all the time in the world.  the main reason for that is because i managed at europython to port pyjamas-desktop to the competitor to pywebkitgtk: python-xpdom.  it uses XUL (mozilla).  so, pyjamas developers can develop applications to run in web browsers (compiled to javascript) _or_ they can run them as desktop apps...

.... no longer using webkit, but using mozilla technology instead.

&gt; the next step would be to post a new monolithic patch for review
&gt; addressing feedback in Comment #191 and Comment #194.

 ok.  the comments are related to a (highly modified) patch which i could not get involved in, because of the removal of the event handling.

 so, *sigh* it&apos;s necessary to take two steps back in order to take one step forward, for which i apologise (both to you, and to adam - sorry, adam, but removing the event handling, i know why you did it, as it took me three days to update to the latest svn, last week, but i have to work from what i know and what i can prove works).

 so i&apos;ll endeavour to address the comments where they are relevant.

 one immediately that can be addressed: custom attributes.

&gt; &gt; +    if ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Custom&quot;} ||
&gt; &gt; +    	$attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomGetter&quot;} ||
&gt; &gt; +        $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomSetter&quot;}) {
&gt; &gt; +        return 1;
&gt; &gt; +    }

&gt; [Custom] and related attributes are only used for implementing JS specific
&gt; quirks and should not be needed for GObject bindings. 

 the assertion that they are JS-relevant-only is not true, and you can
 test this by removing the &quot;custom&quot; test in the generator, and trying to
 add everything.

 i found this out myself by accidentally removing it, thanks to an
 error in the generator logic, whoops :)


 certain classes do not have corresponding IDL files.  one such class is
 &quot;Object&quot;.  there is no IDL file for &quot;Object&quot;, therefore no Gdom file
 gets auto-generated.  but, that doesn&apos;t stop the auto-generator from
 trying to use a class &quot;GdomObject&quot;, and from adding a header
 #include &lt;gdom/GdomObject.h&gt;&quot; - which of course doesn&apos;t exist.

 there were a hell of a lot of these when i started in august - i decided
 &quot;stuff it, i&apos;m cutting these all out, and will deal with them later&quot;.

 so, the &quot;custom&quot; test is utilised to skip many of these issues, until
 the time is found to re-add them, one by one, or just try them all and
 then deal with any classes and errors that crop up.

 ... but _not_ right now.

 so - the custom-property-skipping stays, as a way to reduce the number
 of issues to be dealt with, as way to reduce the amount of auto-generated
 code, as a way to make this a more manageable project.


 many of the comments will be along these lines.  i will make a best
 effort to address as many as possible, in one go, but i _strongly_
 urge you to consider the burden of having to review such whopping
 great patches, which are so thoroughly detailed and cover at least
 five specialist technical areas all at once, again and again.

 i do have an updated patch ready, but at europython i found that the
 use of gtk dialog boxes for &quot;alert&quot; messages resulted in a total lock-up
 of pywebkitgtk, on some of the larger applications.  if i find that this
 is a bug _without_ the #16401 patch (on some big JS-based apps), then i
 will proceed.

 also, one of the suggestions from alp, with which i thoroughly concur,
 is that this code should reeeally consider to be ... deactivated and
 require some special #ifdef or other switch (configure?), in order to be used.

 in that way, people won&apos;t try to go developing off into the distance
 with it until the various issues, which will be raised and dealt with
 after the patch is landed, are answered to everyone&apos;s satisfaction.

 i also strongly recommend that reviewers consider raising issues in specific
 small technical areas and as _separate_ bugreports (depending on this one)
 so that interested contributors who would like to see this move forward
 can tackle the specific area with a single small patch.

 for example, one contributor might want to deal with the AddRef / unref
 issue as a single patch.  [to do that right now has already proven to be
 too challenging and time-consuming]

 ... of course, this is all only advice.  you have no reason to listen to
 my advice, and are free to ignore it and to continue to be subjected to
 considerable stress in dealing with this work - that is entirely your right :)

 l.
 
 p.s. btw, david, and any of the reviewers: i have a thought for you to consider, if you have time: perhaps you might like to consider downloading the branch i&apos;m maintaining at github.com/lkcl/webkit/16401.master, and also the pywebkitgtk patch #13 at code.google.com/p/pywebkitgtk, and also the http://pyjs.org project from subversion, and try out the pyjamas examples.  it will give you a little bit more confidence that this is something that a) works b) is very cool. c) you&apos;ll have some way to actually test and get to grips with the 16401 patch.

 at the moment, i&apos;m fully aware that 16401 is a... nebulous sort-of... non-graspable entity which you just don&apos;t have a handle on, and as such, it&apos;s difficult to appreciate the direction that this is going.

 constant reviewing of thousand-line patches can&apos;t be fun, given the complexities involved, and i feel that if you knew exactly what can and is being achieved with this patch you would feel much more comfortable with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131189</commentid>
    <comment_count>216</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-12 12:26:13 -0700</bug_when>
    <thetext>(In reply to comment #191)
&gt; (From update of attachment 29670 [details])
&gt; &gt;  # Script for creating hash tables
&gt; &gt; @@ -110,7 +111,8 @@ javascriptcore_cppflags += \
&gt; &gt;  	-I$(srcdir)/JavaScriptCore/ForwardingHeaders \
&gt; &gt;  	-I$(srcdir)/JavaScriptCore/parser \
&gt; &gt;  	-I$(srcdir)/JavaScriptCore/wtf \
&gt; &gt; -	-I$(top_builddir)/DerivedSources
&gt; &gt; +	-I$(top_builddir)/DerivedSources \
&gt; &gt; +	-I$(srcdir)/WebCore/bindings/webkit
&gt; 
&gt; This and other changes to the include search path are a little bit of a concern
&gt; due to the layering violations they imply.  JavaScriptCore should not depend on
&gt; headers in WebCore.  WebCore should not depend on headers from WebKit.

 no, it should not, i absolutely agree.

 however, i tried very hard to make builds work without adding these in,
 and got exasperated enough to give up trying and just moved forward.

 core to the issue is that webkitwebframe.h now absolutely requires
 GdomDOMDocument, GdomNode, GdomXMLHttpRequest, GdomEventListener and
 a few others, and obviously their dependencies.

 so that&apos;s a _massive_ influx of extra header files, all of which are
 auto-generated and go into DerivedSources.

 so... exactly how should those derived sources, on which WebKitWebFrame
 is now dependent, get into the build, on which libwebkit now depends,
 and on which GtkLauncher etc. now also depend?

 it&apos;s a tricky one, and i look forward to this one being resolved _after_
 the patch is landed.


&gt; &gt; +webcoregtk_sources += \
&gt; &gt; +	WebCore/bindings/gobject/webkitbinding.cpp \
&gt; &gt; +	WebCore/bindings/gobject/webkitbinding.h \
&gt; &gt; +	WebCore/bindings/gobject/WebKitDOMObject.cpp \
&gt; &gt; +	WebCore/bindings/gobject/WebKitDOMObject.h \
&gt; &gt; +	WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp \
&gt; &gt; +	WebCore/bindings/gobject/webkithtmlelementwrapperfactory.h 
&gt; &gt; +
&gt; 
&gt; It looks like some of these files do not follow the naming convention.  This
&gt; should be addressed.

 they follow the naming conventions in the patch that i will submit
 after i have replied to #191 and #194.

&gt; &gt; Index: WebCore/bindings/gobject/WebKitDOMObject.cpp
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/bindings/gobject/WebKitDOMObject.cpp	(revision 0)
&gt; &gt; +++ WebCore/bindings/gobject/WebKitDOMObject.cpp	(revision 0)
&gt; &gt; @@ -0,0 +1,28 @@
&gt; &gt; +/*
&gt; &gt; + * Copyright (C) 2008 Luke Kenneth Casson Leighton &lt;lkcl@lkcl.net&gt;
&gt; &gt; + * Copyright (C) 2008 Martin Soto &lt;soto@freedesktop.org&gt;
&gt; &gt; + * Copyright (C) 2008 Alp Toker &lt;alp@atoker.com&gt;
&gt; &gt; + * Copyright (C) 2008 Apple Inc. All Rights Reserved.
&gt; &gt; + */
&gt; 
&gt; This file needs a license header.

 done.

&gt; 
&gt; &gt; +#include &lt;glib-object.h&gt;
&gt; &gt; +
&gt; &gt; +#include &quot;config.h&quot;
&gt; &gt; +#include &quot;webkitbinding.h&quot;
&gt; &gt; +#include &quot;WebKitDOMObject.h&quot;
&gt; 
&gt; These includes should follow the order in the style guidelines (config.h,
&gt; WebKitDOMObject.cpp, blank line, remaining includes in sorted order).

 done.
 
&gt; 
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/bindings/gobject/WebKitDOMObject.h	(revision 0)
&gt; &gt; +++ WebCore/bindings/gobject/WebKitDOMObject.h	(revision 0)
&gt; &gt; @@ -0,0 +1,56 @@
&gt; &gt; +/*
&gt; &gt; + * Copyright (C) 2008 Luke Kenneth Casson Leighton &lt;lkcl@lkcl.net&gt;
&gt; &gt; + * Copyright (C) 2008 Martin Soto &lt;soto@freedesktop.org&gt;
&gt; &gt; + * Copyright (C) 2008 Alp Toker &lt;alp@atoker.com&gt;
&gt; &gt; + * Copyright (C) 2008 Apple Inc. All Rights Reserved.
&gt; &gt; + *
&gt; &gt; + * This library is free software; you can redistribute it and/or
&gt; &gt; + * modify it under the terms of the GNU Library General Public
&gt; &gt; + * License as published by the Free Software Foundation; either
&gt; &gt; + * version 2 of the License, or (at your option) any later version.
&gt; &gt; + *
&gt; &gt; + * This library is distributed in the hope that it will be useful,
&gt; &gt; + * but WITHOUT ANY WARRANTY; without even the implied warranty of
&gt; &gt; + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
&gt; &gt; + * Library General Public License for more details.
&gt; &gt; + *
&gt; &gt; + * You should have received a copy of the GNU Library General Public License
&gt; &gt; + * along with this library; see the file COPYING.LIB.  If not, write to
&gt; &gt; + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
&gt; &gt; + * Boston, MA 02110-1301, USA.
&gt; &gt; + */
&gt; &gt; +
&gt; &gt; +
&gt; &gt; +#ifndef WebKitDOMObject_h
&gt; &gt; +#define WebKitDOMObject_h
&gt; &gt; +
&gt; &gt; +#include &quot;glib-object.h&quot;
&gt; 
&gt; If this header is included here, why is it also included in
&gt; WebKitDOMObject.cpp?  Why does one place use &quot;&quot; while the other uses &lt;&gt;?

 i have nooo idea.  probably because adam fixed one but not the other.

&gt; &gt; +#include &quot;webkit/webkitdomdefines.h&quot;
&gt; &gt; +#include &lt;webkit/webkitdefines.h&gt;
&gt; 
&gt; Why does one of these includes use &quot;&quot; and the other &lt;&gt;?

 hmm, that doesn&apos;t look right.... hmmm, it&apos;s also... out-of-date.

&gt; &gt; +struct _WebKitDOMObject {
&gt; &gt; +    GObject parent_instance;
&gt; &gt; +
&gt; &gt; +    void *coreObject;
&gt; &gt; +};
&gt; &gt; +
&gt; &gt; +struct _WebKitDOMObjectClass {
&gt; &gt; +    GObjectClass parent_class;
&gt; &gt; +};
&gt; &gt; +
&gt; 
&gt; Some consistency on the naming style on these member variables would be nice.

 yes, it would... *sigh* these are partly-autogenerated i.e. from an
 early revision of the autogenerator i copied an auto-generated file
 and created GdomDOMObject.cpp from it.

 so... *hand-waving*... there is a convention of sorts - from the bindings
 and also from glib/gobject coding....

 conclusion: not going to worry about this one right now.

&gt; 
&gt; 
&gt; &gt; Index: WebCore/bindings/gobject/gstringconvert.h
&gt; 
&gt; This file name doesn&apos;t fit our naming conventions.


 yep adam renamed it.  it&apos;ll be GStringConvert.h

&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/bindings/gobject/gstringconvert.h	(revision 0)
&gt; &gt; +++ WebCore/bindings/gobject/gstringconvert.h	(revision 0)
&gt; &gt; @@ -0,0 +1,37 @@
&gt; &gt; +/*
&gt; &gt; + * Copyright (C) 2008 Luke Kenneth Casson Leighton &lt;lkcl@lkcl.net&gt;
&gt; &gt; + *
&gt; &gt; + * This library is free software; you can redistribute it and/or
&gt; &gt; + * modify it under the terms of the GNU Library General Public
&gt; &gt; + * License as published by the Free Software Foundation; either
&gt; &gt; + * version 2 of the License, or (at your option) any later version.
&gt; &gt; + *
&gt; &gt; + * This library is distributed in the hope that it will be useful,
&gt; &gt; + * but WITHOUT ANY WARRANTY; without even the implied warranty of
&gt; &gt; + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
&gt; &gt; + * Library General Public License for more details.
&gt; &gt; + *
&gt; &gt; + * You should have received a copy of the GNU Library General Public License
&gt; &gt; + * along with this library; see the file COPYING.LIB.  If not, write to
&gt; &gt; + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
&gt; &gt; + * Boston, MA 02110-1301, USA.
&gt; &gt; + */
&gt; &gt; +
&gt; &gt; +
&gt; &gt; +#ifndef GSTRING_CONVERT_H
&gt; &gt; +#define GSTRING_CONVERT_H
&gt; &gt; +
&gt; &gt; +/* convenience functions for converting various webkit string types into a utf8 glib string */
&gt; 
&gt; WebKit.
&gt; 
&gt; &gt; +#include &quot;AtomicString.h&quot;
&gt; &gt; +#include &quot;CString.h&quot;
&gt; &gt; +#include &quot;KURL.h&quot;
&gt; &gt; +#include &quot;PlatformString.h&quot;
&gt; &gt; +#include &quot;unicode/ustring.h&quot;
&gt; 
&gt; Why is the unicode/ustring.h include necessary here?

 it was added in a series of random attempts to get these string conversion routines to work.  i believe that one of these gdom_gstring_converts works _because_ unicode/ustring.h is there, and there is an implicit c++ type conversion going on.

&gt; &gt; +inline gchar * gdom_gstring_convert(WebCore::String const&amp; s) { return g_strdup(s.utf8().data()); }
&gt; &gt; +inline gchar * gdom_gstring_convert(WebCore::KURL const&amp; s) { return g_strdup(s.string().utf8().data()); }
&gt; &gt; +inline gchar * gdom_gstring_convert(const JSC::UString &amp; s) { return g_strdup(s.UTF8String().c_str()); }
&gt; &gt; +inline gchar * gdom_gstring_convert(WebCore::AtomicString const&amp;s) { return g_strdup(s.string().utf8().data()); }
&gt; 
&gt; This doesn&apos;t follow our coding style.  The spacing around operators is
&gt; inconsistent, 

 well spotted.

&gt; and the function names are using lower case with underscores.

 adam changed that.  the patch i will resubmit has GdomGstringConvert.
 
&gt; &gt; Index: WebCore/bindings/gobject/webkitbinding.cpp
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/bindings/gobject/webkitbinding.cpp	(revision 0)
&gt; &gt; +++ WebCore/bindings/gobject/webkitbinding.cpp	(revision 0)
&gt; &gt; @@ -0,0 +1,367 @@
&gt; 
&gt; The file name doesn&apos;t fit our convention,

 [adam again]

 does in the patch to be submitted.

&gt; and the include order in this file is
&gt; a bit whacky.  It should be updated to follow the style guidelines, with the
&gt; duplicate headers removed.  It may make sense to keep the generated headers in
&gt; a separate block, but the others should follow the style.

 added an explanation.  not looking forward to shuffling 100 #includes.

/* yes these are out-of-order, but they are grouped by
 * purpose.  the #includes needed for toGDOM(Document*)
 * got added, and the ones for toGDOM(CSSRule*) got added
 * separately, and then some are conditional based on
 * compile-time options, and yet more will be added
 * e.g. for SVG Canvas.
 */

&gt; 
&gt; &gt; +namespace WebKit {
&gt; 
&gt; This seems a bit out of place inside WebCore, but perhaps it is intentional.

 yes, it is. it allows the toGDOM functions to be referred to as
 WebKit::toGDOM when they are used.


&gt; &gt; +#include &lt;wtf/Noncopyable.h&gt;
&gt; &gt; +
&gt; &gt; +#include &quot;CanvasPixelArray.h&quot;
&gt; &gt; +#include &quot;CSSRule.h&quot;
&gt; &gt; +#include &quot;CSSValue.h&quot;
&gt; &gt; +#include &quot;Document.h&quot;
&gt; &gt; +#include &quot;DOMWindow.h&quot;
&gt; &gt; +#include &quot;Element.h&quot;
&gt; &gt; +#include &quot;HTMLCollection.h&quot;
&gt; &gt; +#include &quot;Node.h&quot;
&gt; &gt; +#include &quot;StyleSheet.h&quot;
&gt; &gt; +#include &quot;Text.h&quot;
&gt; 
&gt; Similar comment about includes here.

 looks out-of-date.  GDOMBinding.cpp doesn&apos;t have wtf/Noncopyable.h

&gt; &gt; +
&gt; &gt; +namespace WebCore {
&gt; &gt; +
&gt; &gt; +    class AtomicString;
&gt; &gt; +    class Document;
&gt; &gt; +    class Event;
&gt; &gt; +    class Frame;
&gt; &gt; +    class KURL;
&gt; &gt; +    class Node;
&gt; &gt; +    class String;
&gt; 
&gt; Given some of the files that are included above, many of these forward
&gt; declarations are redundant.

 i&apos;m not seeing those in GDOMBinding.cpp so that must have been adam,
 so this is now out-of-date.


&gt; &gt; Index: WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp	(revision 0)
&gt; &gt; +++ WebCore/bindings/gobject/webkithtmlelementwrapperfactory.cpp	(revision 0)
&gt; 
&gt; Is there some way we can autogenerate this file?  It seems like it is almost
&gt; entirely boilerplate.

 yes.  but not right now.  it was copied from the auto-generated
 JSHTMLElementWrapperFactory.cpp and then i removed all references
 to exec*.

 perl not being my favourite language i couldn&apos;t face doing yet another
 adaptation of yet another perl script.

 so - one for a separate patch, after this patch has been landed.

&gt; &gt; +
&gt; &gt; +#include &quot;glib-object.h&quot;
&gt; &gt; +#include &lt;wtf/Forward.h&gt;
&gt; &gt; +#include &quot;HTMLElement.h&quot;
&gt; &gt; +
&gt; &gt; +namespace WebCore {
&gt; &gt; +    class HTMLElement;
&gt; &gt; +}
&gt; 
&gt; Including HTMLElement.h then forward-declaring HTMLElement is a bit redundant. 
 
 nooot going to worry about it.
 
&gt; &gt; Index: WebCore/bindings/scripts/CodeGeneratorGObject.pm
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/bindings/scripts/CodeGeneratorGObject.pm	(revision 0)
&gt; &gt; +++ WebCore/bindings/scripts/CodeGeneratorGObject.pm	(revision 0)
&gt; 
&gt; [ I&apos;m skipping this file for now in hopes that I&apos;ll be able to convince Sam to
&gt; look at it. ]

 he he

&gt; &gt; Index: WebCore/bindings/scripts/gobject-generate.pl
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/bindings/scripts/gobject-generate.pl	(revision 0)
&gt; &gt; +++ WebCore/bindings/scripts/gobject-generate.pl	(revision 0)
&gt; 
&gt; It may make more sense for this to be named in the same order as the other
&gt; &quot;generate&quot; script in that directory.

 [adam again].  keeping it as CodeGeneratorGObject.pl

&gt; 
&gt; &gt; Index: WebKitTools/GNUmakefile.am
&gt; &gt; ===================================================================
&gt; &gt; --- WebKitTools/GNUmakefile.am	(revision 42662)
&gt; &gt; +++ WebKitTools/GNUmakefile.am	(working copy)
&gt; &gt; @@ -4,8 +4,10 @@ noinst_PROGRAMS += \
&gt; &gt;  
&gt; &gt;  # GtkLauncher
&gt; &gt;  Programs_GtkLauncher_CPPFLAGS = \
&gt; &gt; +	-I$(srcdir)/WebCore/bindings \
&gt; &gt;  	-I$(srcdir)/WebKit/gtk \
&gt; &gt;  	-I$(top_builddir)/WebKit/gtk \
&gt; &gt; +	-I$(srcdir)/WebKit/gtk/webkit \
&gt; &gt;  	$(global_cppflags) \
&gt; &gt;  	$(javascriptcore_cppflags)
&gt; &gt;  
&gt; &gt; @@ -29,8 +31,10 @@ Programs_GtkLauncher_LDADD = \
&gt; &gt;  dumprendertree_cppflags := \
&gt; &gt;  	-I$(srcdir)/WebKitTools/DumpRenderTree \
&gt; &gt;  	-I$(srcdir)/WebKitTools/DumpRenderTree/gtk \
&gt; &gt; +	-I$(srcdir)/WebCore/bindings \
&gt; &gt;  	-I$(srcdir)/WebKit/gtk \
&gt; &gt;  	-I$(top_builddir)/WebKit/gtk \
&gt; &gt; +	-I$(srcdir)/WebKit/gtk/webkit \
&gt; &gt;  	$(global_cppflags) \
&gt; &gt;  	$(javascriptcore_cppflags)
&gt; &gt;  
&gt; 
&gt; DumpRenderTree should only be using API.  It should not have any dependencies
&gt; on WebCore.

 yep.  i know.  see first reply, again.  tried building without, and it just doesn&apos;t happen.  resolving it is definitely a post-patch separate self-contained task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131191</commentid>
    <comment_count>217</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-12 12:57:55 -0700</bug_when>
    <thetext>(In reply to comment #194)
&gt; (From update of attachment 29670 [details])
&gt; I concur with Mark&apos;s review, this is not ready to be landed.  I have gone
&gt; through the CodeGenerator and picked out a bunch of issues that really stick
&gt; out, but in general, I can&apos;t really review this as is.  I believe the best way
&gt; forward is for you to pick one file (say Node.idl) and get code generation
&gt; working for it or a subset of it. 

 that was what i was originally asked to do, back in .... mmmm... september.  it was already too late, by then, and it&apos;s definitely too late now.  adam&apos;s reply _also_ says &quot;no&quot;.

 the time for &quot;one file&quot; (Node.idl) was approximately 24 hours after i started, in early august. but even then, as i looked at the dependencies it became abundandly clear that just one file wasn&apos;t going to cut it.

 so - we&apos;re well beyond that now.  going &quot;backwards&quot; isn&apos;t going to happen.

 i realise however that you do need to review this, in some way.  and, given
 that it&apos;s too big to review all at once, you _do_ need to have some level
 of confidence that it actually works - and get a handle on it.

 to do that, i recommend that you install pywebkitgtk (patched version)
 and perhaps even try running pyjamas-desktop.

 what you will then have is a code-base from which you can go &quot;dang!&quot;
 and can play around.

 also, i wrote a small (well, quite sophisticated) adapted version of
 GtkLauncher:

   http://lkcl.net/webkit/main.c

 which you can also play with simply by replacing the existing GtkLauncher&apos;s
 main.c


&gt; The stripped down version of the code
&gt; generator that can generate this one file will be a great jumping off point.  I
&gt; know this seems like a step backwards, but the current state of the patch is
&gt; really not reviewable as is due to a lack of clarity in the code.  The single
&gt; patch is trying to do too many things at once.

 it&apos;s _successfully_ doing many things at once, which you can demonstrate
 to yourself by installing pywebkitgtk and pyjamas-desktop.

 it&apos;s not my fault that this code hasn&apos;t been written at the same time as
 the other code-generators (which have copyright timestamps dating back
 to 2006).

 so - forward it is.


&gt; Here are some comments:
&gt; 
&gt; &gt; +    if ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Custom&quot;} ||
&gt; &gt; +    	$attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomGetter&quot;} ||
&gt; &gt; +        $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomSetter&quot;}) {
&gt; &gt; +        return 1;
&gt; &gt; +    }
&gt; 
&gt; [Custom] and related attributes are only used for implementing JS specific
&gt; quirks and should not be needed for GObject bindings. 

 should not, but have been.  detailed reply here:
   https://bugs.webkit.org/show_bug.cgi?id=16401#c215

 short answer: they stay until each of the custom attributes can be
 reviewed on a case-by-case basis.


&gt; &gt; +    if ($prop_type eq &quot;stylesheets::MediaList&quot; or
&gt; &gt; +    	$prop_type eq &quot;CSSStyleDeclaration&quot; or
&gt; &gt; +        $prop_type eq &quot;CSSVariablesDeclaration&quot; or
&gt; &gt; +        $prop_type eq &quot;EventListener&quot; or
&gt; &gt; +        $prop_type =~ /Constructor$/ or
&gt; 
&gt; Constructors are a JS only idiom.

 i&apos;m yet to be completely convinced, but am slowly coming round to it, that
 constructors should not be needed [in glib/gobject bindings].

 some of the DOM objects are _completely_ inaccessible.

 XPathValidator is totally isolated and cannot be accessed, but mark
 kindly pointed out a couple of weeks ago that there is a Document-based
 access to the same functionality.

 so that one&apos;s sorted.

 however, TextDocument and XMLDocument are still utterly isolated.

 ... and yes, we have a pyjamas-desktop example which is still broken
 because we can&apos;t create an XML Document, because there&apos;s no function
 to access it.

 also, because a TextDocument cannot be created, XMLHTTPRequest has had
 to have its &quot;open&quot; function take a string parameter, and this alone
 warrants the #define to create a separate IDL #ifdef for Gobject bindings.

 so there is a lot left unanswered, and until it&apos;s answered for,
 i&apos;m reluctant to go ripping out references to &quot;constructors&quot; until
 such time as it has been proven to my satisfaction that they are not
 needed.  at all.


&gt; &gt; +
&gt; &gt; +sub UsesManualToJSImplementation {
&gt; 
&gt; ???  How is this related to GObject support?

 not being funny or anything, but the answer is: don&apos;t know, and don&apos;t care.
 
 much of this code was developed on a evolutionary-style rapid development
 cycle that you will have difficulty believing in.

 for eight weeks solid, i was making approximately 150 to 300 modifications
 to CodeGeneratorGObject.pl and other source files _per day_, with over 250
 simultaneous vi editor sessions open.

 this development style, of &quot;trusting&quot; what i could cut and paste from
 dozens of different sources, seems to have worked (as you can see from
 pyjamas-desktop).

 so - much of the code is, and will remain, &quot;unexplained&quot;, like genetic code.

 the summary of all that is, as i said: i don&apos;t know, and you shouldn&apos;t
 care.  if you do care, try taking it out, and see what happens.  that&apos;s
 what i did, and i&apos;m through with doing that [cycle of development],
 unless someone can show me a damn good justifiable reason for doing so.


&gt; &gt; +    my $type = shift;
&gt; &gt; +
&gt; &gt; +    # skipped out CanvasPixelArray - see JSCanvasPixelArrayCustom.cpp for why.
&gt; &gt; +    return 1 if $type eq &quot;Node&quot; or $type eq &quot;Document&quot; or $type eq &quot;HTMLCollection&quot; or
&gt; &gt; +      $type eq &quot;SVGPathSeg&quot; or $type eq &quot;StyleSheet&quot; or $type eq &quot;CSSRule&quot; or $type eq &quot;CSSValue&quot; or
&gt; &gt; +      $type eq &quot;Event&quot; or $type eq &quot;Element&quot; or $type eq &quot;Text&quot;;
&gt; &gt; +    return 0;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +sub WritePrivateHeader {
&gt; &gt; +    my $object = shift;
&gt; &gt; +    my $class = shift;
&gt; &gt; +
&gt; &gt; +    my $interfaceName = $class-&gt;name;
&gt; &gt; +    my $className = GetClassName($interfaceName);
&gt; &gt; +    my $filename = &quot;$outputDir/&quot; . $className . &quot;Private.h&quot;;
&gt; &gt; +    my $guard = uc(decamelize($className)) . &quot;_PRIVATE_H&quot;;
&gt; &gt; +    my $parentClassName = GetParentClassName($class);
&gt; &gt; +
&gt; &gt; +    my $hasLegacyParent = $class-&gt;extendedAttributes-&gt;{&quot;LegacyParent&quot;};
&gt; 
&gt; LegacyParent is a JS only idiom.

 see above.  don&apos;t know don&apos;t care.  it just works.  it ain&apos;t broken.
 feel free to fix it [later].


&gt; &gt; +    my $hasRealParent = @{$class-&gt;parents} &gt; 0;
&gt; &gt; +    my $hasParent = $hasLegacyParent || $hasRealParent;
&gt; &gt; +    
&gt; &gt; +    open(PRIVHEADER, &quot;&gt;$filename&quot;) or die &quot;Couldn&apos;t open file $filename for writing&quot;;
&gt; &gt; +    
&gt; &gt; +    print PRIVHEADER split(&quot;\r&quot;, $licenceTemplate);
&gt; &gt; +    print PRIVHEADER &quot;\n&quot;;
&gt; &gt; +    
&gt; &gt; +    my $text = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +#ifndef $guard
&gt; &gt; +#define $guard
&gt; &gt; +
&gt; &gt; +#include &lt;glib-object.h&gt;
&gt; &gt; +#include &lt;webkit/${parentClassName}.h&gt;
&gt; &gt; +#include &quot;${interfaceName}.h&quot;
&gt; &gt; +EOF
&gt; &gt; +
&gt; &gt; +    print PRIVHEADER $text;
&gt; &gt; +    
&gt; &gt; +    print PRIVHEADER map { &quot;#include \&quot;$_\&quot;\n&quot; } sort keys(%hdrPropIncludes);
&gt; &gt; +    print PRIVHEADER &quot;\n&quot; if keys(%hdrPropIncludes);
&gt; &gt; +    
&gt; &gt; +    $text = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +typedef struct _${className} ${className};
&gt; &gt; +
&gt; &gt; +namespace WebKit {
&gt; &gt; +    ${className} *
&gt; &gt; +    wrap${interfaceName}(WebCore::${interfaceName} *coreObject);
&gt; &gt; +
&gt; &gt; +    WebCore::${interfaceName} *
&gt; &gt; +    core(${className} *request);
&gt; &gt; +
&gt; &gt; +EOF
&gt; &gt; +
&gt; &gt; +    print PRIVHEADER $text;
&gt; &gt; +
&gt; &gt; +    if (${interfaceName} eq &quot;DOMWindow&quot; || (!$hasParent or $class-&gt;extendedAttributes-&gt;{&quot;GenerateToJS&quot;}) and
&gt; &gt; +        !UsesManualToJSImplementation($interfaceName)) {
&gt; &gt; +        $text = &lt;&lt; &quot;EOF&quot;;
&gt; 
&gt; What is this trying to do?

 that question really needed to be asked in september of 2008, some eight
 months ago, when i had a full working knowledge of this code in my head.

 if you want an answer now, you&apos;ll need to experiment (like i did).

 

&gt; &gt; +sub Uniquify {
&gt; &gt; +    my $name = shift;
&gt; &gt; +    my $avoid = shift;
&gt; &gt; +    if ($name eq $avoid) {
&gt; &gt; +        $name = $name . &quot;2&quot;;
&gt; &gt; +    }
&gt; 
&gt; Please explain this.

 i don&apos;t know what it is, and it&apos;s not in the patch that i&apos;m going to
 submit after reading these comments.

&gt; &gt; +        if($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;ConvertFromString&quot;}) {
&gt; 
&gt; This is a JS idiom.

 yes.  i found that it got in the way, and i appear to have deleted
 it from the latest version.

 it wasn&apos;t until i started delving into pyjamas-desktop in a heavy-duty
 way that i found that some functions _require_ NULL etc. and that these
 things got in the way.

 so - out they went.

 seemed to work, too, which is good :)


&gt; &gt; +            # TODO: Add other conversion functions for different types.  Current
&gt; &gt; +            # IDLs only list longs.
&gt; &gt; +            if($gtype eq &quot;long&quot;) {
&gt; &gt; +                $convert_fn = &quot;&quot;;
&gt; &gt; +                $post_convert_fn = &quot;.toInt()&quot;;
&gt; &gt; +            } else {
&gt; &gt; +                die &quot;Can&apos;t convert to type ${gtype}.&quot;;
&gt; &gt; +            }
&gt; &gt; +        }
&gt; &gt; +
&gt; 
&gt; &gt; +        if ($gtype eq &quot;int&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                G_MININT,        /* min */
&gt; &gt; +                G_MAXINT, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;boolean&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                FALSE, /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;float&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                G_MINFLOAT,        /* min */
&gt; &gt; +                G_MAXFLOAT, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;double&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                G_MINDOUBLE,        /* min */
&gt; &gt; +                G_MAXDOUBLE, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;uint64&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                0,        /* min */
&gt; &gt; +                G_MAXUINT64, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;ulong&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                0,        /* min */
&gt; &gt; +                G_MAXULONG, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;long&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                G_MINLONG,        /* min */
&gt; &gt; +                G_MAXLONG, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;uint&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                0,        /* min */
&gt; &gt; +                G_MAXUINT, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;ushort&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                0,        /* min */
&gt; &gt; +                G_MAXUINT16, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;uchar&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                G_MININT8,        /* min */
&gt; &gt; +                G_MAXINT8, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;char&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                0,        /* min */
&gt; &gt; +                G_MAXUINT8, /* max */
&gt; &gt; +                0,        /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;string&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                &quot;&quot;, /* default */
&gt; &gt; +EOF
&gt; &gt; +        } elsif ($gtype eq &quot;object&quot;) {
&gt; &gt; +            $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                WEBKIT_TYPE_${propGType}, /* gobject type */
&gt; &gt; +EOF
&gt; &gt; +        }
&gt; &gt; +        push(@txt_install_props, $txt_install_prop);
&gt; &gt; +        $txt_install_prop = &lt;&lt; &quot;EOF&quot;;
&gt; &gt; +                (GParamFlags)${gparamflag}));
&gt; &gt; +
&gt; &gt; +EOF
&gt; 
&gt; This should probably be done in a more generic way using a hash.

 yes.  that would be nice.  it should go on the TODO list, for after
 when the patch has been landed.  right now however, what&apos;s there
 works.

 so, many apologies sam - many of these questions are far far too late,
 and others raise some nice issues which will help improve the maintainability
 at a later date.  and, unfortunately, some are out-of-date.

 overall, however, there isn&apos;t anything that you&apos;ve raised which warrants
 any changes.  they all fall into &quot;too unsafe to consider doing;
 were made by adam and so are irrelevant now; too late to answer&quot;.

 the development process isn&apos;t &quot;over&quot;, not by a long shot, but what&apos;s
 there can be proven, empirically and indirectly, to &quot;work&quot;, and, given
 the level of complexity and the THREE levels of indirection between
 the code and its [current and only] test environment, pyjamas-desktop,
 fiddling with the code generator to do &quot;tidyups&quot; will prove to be a
 significantly bad / time-consuming idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131200</commentid>
    <comment_count>218</comment_count>
      <attachid>32633</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-12 14:28:05 -0700</bug_when>
    <thetext>Created attachment 32633
brings glib/gobject bindings up to svn r44473.

okaay, this is the &quot;2 steps backwards, 1 step forwards&quot; patch which, as explained, cannot take into consideration adam&apos;s fantastic work because it was impossible for me to follow it.  even _one_ feature removed (and the first that adam picked was event handling) meant that the test framework (pyjamas  desktop) was totally cut off at the knees.

dave agrees - https://bugs.webkit.org/show_bug.cgi?id=16401#c214 - that the way forward is to take this &quot;as-is&quot; and then to move forward from there.  over what is likely to be a period of several months, retro-fix issues that have been raised and recorded will - should - be created.  it would have been nice if people had listened to my advice on this months ago, but, not believing me, you had to find out for yourselves [by taking up adam&apos;s time as well as mine].  at least we&apos;re moving forward, now, rather than playing silly buggers.

i&apos;ll be _more_ than happy to help review individual small dedicated controlled manageable single-purpose patches that anyone cares to contribute: perhaps by comparing the differences between what adam has done and what this patch provides it may make individuals&apos; lives easier when it comes to updating this strategically critical area of functionality.

there is a _lot_ still left to be done - but, butbutbut, what is here is _provably_ working.  it would be very nice if it stayed that way, and that pyjamas-desktop, the only current project which utilised these bindings with near 100% code coverage, carried on working.

still on the critical TODO list, after this patch is accepted (let alone any bug-fixes / coding-standards / review update work!) is: Enums, SVG 2D Canvas, and Exception handling.

this latter is proving tiresome to not have, in pywebkitgtk (and pyjamas-desktop): several bugs could not be found in pyjamas-desktop until python-xpcom / XULRunner was added as an alternative back-end peer [to pywebkitgtk].  up until then, due to the lack of error reporting from runtime exceptions, style attributes and a few others just... silently vanished (fortunately with no useability impact, but that was down to luck).

as requested, i&apos;ve made review comments to https://bugs.webkit.org/show_bug.cgi?id=16401#c191 and https://bugs.webkit.org/show_bug.cgi?id=16401#c194  - the coding-standards issues i immediately fixed (as they&apos;re dead-easy) however there were issues raised that should have been raised eight months ago, when i had a complete map of the code and a handle on the 600+ auto-generated files in my head.  i&apos;ve answered them as best i can: now it&apos;s time to move on.

one thing that can be seen from this patch: it includes LANGUAGE_GOBJECT as a #define.  this is in for two separate reasons:

1) until someone can show me how to get a TextDocument object, in order to pass it to XMLHttpRequest.open(), for that reason and for that sole reason alone, LANGUAGE_GOBJECT is _absolutely_ required, in order to reactivate open(DOMString).  otherwise, it&apos;s simply not possible to get XMLHttpRequest to work, and XMLHttpRequest working is a critical requirement of pyjamas-desktop [what&apos;s the point of having python bindings that are identical and a peer with the javascript ones if AJAX is bloody well missing???! :) ]

2) removal of LANGUAGE_GOBJECT was requested several months ago because it introduced features which are present in the de-facto Javascript standard (i.e. anyone coming from javascript would not be in for some unpleasant surprises) and it was stated that these features are not present in the W3C standard.  after some extensive research, it was demonstrated that this wasn&apos;t quite true: the W3C standard makes specific mention that certain browser engines _do_ support the features.  in fact, the research showed that by not having these features (i.e. by conforming strictly to the W3C standards), webkit would in fact be the _only_ major web engine that would not be on a par with its peers!  even MSHTML has better support, because thanks to DCOM which has LP_VARIANT (which can take int, string, or in fact anything) and thus, unlike any of the other DOM implementations, the MS implementation of the DOM functions can support _both_ the W3C standard _and_ the de-facto javascript-led standard.

regarding 2), i have put considerable thought to the matter and have some insights to share.  from the perspective of the objective-c bindiings, strict W3C DOM standards compliance may make perfect sense.  objective-c is a _compiler_.  the auto-generated webkit objective-c header files are utilised at _compile_ time by the compiler to perform type-checking that can result in developers catching errors immediately.  and, in objective-c, developers can take advantage of c++ classes that will be compiled, again at _compile_ time, into type-converters that will take strings as input, and convert to integers, and much much more.

however - the glib/gobject bindings will - and are - be utilised by INTERPRETED languages.  there is a WHOPPING great world of difference.  there are two such (auto-generated) language bindings already (vala and python), and there will be more.

vala - https://bugs.webkit.org/attachment.cgi?id=27558

python - http://code.google.com/p/pywebkitgtk/issues/detail?id=13

in the python case, the (currently sole and exclusive) project which is using pywebkitgtk with the DOM bindings is pyjamas - a python-to-javascript compiler.

in other words, the only test case - the only really big significant (free software) test platform for the webkit glib bindings has a javascript-only cousin.

that means that any applications written for pyjamas-desktop (which uses either pywebkitgtk or XULrunner python-xpcom) can also run as javascript, in all major web browsers.

_that_ means that application developers may be developing exclusively in javascript, using the pyjamas python-to-javascript compiler.  then, they encounter a requirement to have the application run as a stand-alone desktop app.  then they download pywebkitgtk....

... and they get a nasty big shock because the bloody underlying API is subtly different.  without LANGUAGE_GOBJECT, all toString() functions would be missing; there would be no way to get the range of selected text out of input nodes; embed nodes would suddenly lose their width and height settings; XMLHttpRequest would be completely broken, and a few other nasty surprises.

not one of these things is acceptable.  the workarounds aren&apos;t particularly nice, either, and - again, the workarounds would be _great_ if these were COMPILED languages, with virtual base class function pointers etc. - but they&apos;re not: they&apos;re INTERPRETED languages, just like javascript.

which reminds me of the other reason why many of the JS-isms should be enabled (such as getBoxObjectFor).  again: in COMPILED languages, which are damn fast, calling functions like getBoxObjectFor via two or three levels of indirection makes absolutely no sense: just grab the attributes (width, height, top, left) individually and directly and write your own version of getBoxObjectFor which will, thanks to being a compiled language, be far far quicker.

NOT so, in interpreted languages such as python.  why?  well, have you ever looked at python&apos;s Objects/abstractobject.c source code?  it makes for interesting reading.  and that&apos;s where all object access starts out.  every single add, multiply, etc. goes through potential coercion checking.  a single optimisation is made to check whether the two types are &quot;int&quot;, and this is the _only_ case which is made faster: everything else goes through the &quot;approx one hundred lines of c-code&quot; route.  just to do an add, or a multiply.

so the very reasons for which the javascript-isms were created are just as equally valid for other dynamic languages as they are for javascript.

overall then, for many many reasons, there is an overall compelling case to be made for sticking to the de-facto javascript standards over the W3C standards, for the glib/gobject bindings, and as equally a compelling case to be made for sticking to the W3C standards for the objective-C bindings.

the two should not be confused, and developers using interpreted languages should not be put to incredible inconvenience (as well as the developers of the intermediate bindings) just for the sake of it.

l.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131207</commentid>
    <comment_count>219</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-12 15:11:21 -0700</bug_when>
    <thetext>Speaking on behalf of the maintainers of the GTK+ port I&apos;d like to reiterate what has been said in comments #194 and #195:

- After many rounds of review it&apos;s obvious by now that this patch can&apos;t be reviewed as is, and that no one (neither core WebCore people nor the maintainers of the GTK+ port) is willing to land unreviewed code.

- This patch should be redone from scratch, incrementally, and starting with a very small subset of the existing functionality. See comment #194 for a suggestion of how to start doing this. Anyone is free to try this approach, and we&apos;ll help as much as our time permits, but re-posting the huge monolithic patch won&apos;t get us anywhere.

- This bug is approaching the point where its length makes it unmanageable, so please let&apos;s try to be concise in our comments and let&apos;s stick to what was agreed in the comments I have cited.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131288</commentid>
    <comment_count>220</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-13 03:14:31 -0700</bug_when>
    <thetext>
(In reply to comment #154)
&gt; The patch breaks srcdir != builddir builds btw. It seems to delete a bunch of
&gt; -I$(top_builddir)... for no apparent reason and replaces other $(builddir) with
&gt; $(srcdir) variants. I just fixed it by reverting those, but for some reason
&gt; also had to go to WebKitTools/GNUmakefile.am and add -I$(top_builddir)... flags
&gt; to the tools flags. 

yes, that sounds about right: now you know why i did it, originally.

the original work and the newly-updated patch both work with srcdir != builddir.

i use it all the time to do debian builds using dpkg-buildpackage, and that uses ./build/....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131293</commentid>
    <comment_count>221</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-13 03:56:10 -0700</bug_when>
    <thetext>(In reply to comment #219)
&gt; Speaking on behalf of the maintainers of the GTK+ port I&apos;d like to reiterate
&gt; what has been said in comments #194 and #195:
&gt; 
&gt; - After many rounds of review it&apos;s obvious by now that this patch can&apos;t be
&gt; reviewed as is, and that no one (neither core WebCore people nor the
&gt; maintainers of the GTK+ port) is willing to land unreviewed code.

 hiya xan,

 dave has kindly agreed to exactly that.  the patch has been reviewed dozens
 of times already; many of the issues have been addressed, whilst, as i
 initially recommended way back in ... september, i will be happy to help
 contribute, and to help others contribute, smaller manageable easily
 reviewable single-purpose patches that will of course always go through
 the standard review process.


&gt; - This patch should be redone from scratch, 

 should?  probably, yes.  count me out, though - i&apos;ve done it once,
 and i know what a bitch of a job it is.

&gt; incrementally, and starting with a
&gt; very small subset of the existing functionality.

 two people tried that.  they&apos;re both people who went to a lot of trouble
 to try to work with the apple review process, and they both, after finding
 it to be too difficult, went &quot;no.  we&apos;re not doing that&quot;.

 so you should give serious consideration to listening to the wisdom
 learned and relayed from their experience, which is &quot;no - bad idea&quot;.

 once is enough.

&gt; See comment #194 for a
&gt; suggestion of how to start doing this. Anyone is free to try this approach, 

 the flaw is simple: given that this patch already exists (and can be
 proven at a high-level using pywebkitgtk and pyjamas-desktop with the
 pywebkitgtk back-end enabled to actually work ) as i mentioned
 to dave, i seriously doubt whether you will find anyone willing to try.

 especially when they look through these comments and find such a stinging
 amount of hostility in the review process, towards contributions in this 
 highly-technical area.
 
 you have to remember that the areas of expertise required include:

 * c
 * c++
 * working knowledge of objective-c/c++
 * specialist working knowledge of the internals of WebKit / WebCore
 * gtk
 * detailed and full working knowledge of glib/gobject
 * a dynamic language (e.g. python, vala)
 * knowledge of code-bindings-generation for that language (e.g. codegen.py)
 * perl
 * autoconf.
 * the very latest GNU makeisms
 * experience in working at 2nd and 3rd hand in code generation
 * a very good memory
 * knowledge of javascript
 * knowledge of the W3C standards

 and even then, that&apos;s still not enough - you have to put that all
 together, for several weeks, so that you can stay on top of the
 whole lot.

 why do you think i worked and worked and worked on this and did not
 stop for eight weeks at 11 hour days?


&gt; and
&gt; we&apos;ll help as much as our time permits, but re-posting the huge monolithic
&gt; patch won&apos;t get us anywhere.

 fortunately, it has got somewhere - see #214.

&gt; - This bug is approaching the point where its length makes it unmanageable, 

 yes - that&apos;s why i suggested the &quot;land it first, then fix issues later&quot;
 approach.  initially that idea was met with completely inappropriate
 derision and scorn, and with &quot;what makes _you_ so special, &lt;insert
 derogatory swearword here&gt;?&quot; type direspectful and socially unhelpful
 comments, for which i haven&apos;t received an apology.

 eight months, 120 comments and several wasted man-months later, the
 wisdom of my initial suggestion is being understood, and has been
 given due consideration.  it&apos;s just sad that it&apos;s taken so long, and
 that otherwise good engineers felt the need to pour derision on this
 work, making the process of acceptance of it that much more painful -
 for themselves.

 a real pity.

 anyway.

 if you stick to the plan, you have my help.  eight months late, i now
 don&apos;t have a _complete_ map of this code in my head, and only have
 enthusiasm for going forward, not backwards. that having been said,
 i&apos;m happy to lead the development of these bindings and see them
 through.

 once this patch is landed, as agreed, i will help create a list of
 individual bugreports, splitting out individual review comments
 and cross-referencing them.  (that itself is the kind of easy task
 which anyone can help contribute to, btw)

 things like:

 * rename Gdom to Webkit and GDOM to WEBKIT - this is an easy task
   that will be a tiny self-contained patch

 * fix the ref() unref() RefPtr&lt;&gt; issue - this is a specialist
   task that is again easy for someone who understands WebKit
   internals

 * write some perl to auto-generate the HTMLWrapperFactory code.
   this is an easy task that will be a tiny self-contained patch

 * fix the #includes of DerivedSources/gdom that have had to be added
   to several places, making sure that $srcdir != $builddir works.
   this is an easy task for anyone with specialist knowledge of gnu
   autoconf and gnu makeisms that will be a tiny self-contained
   patch.

 * fix the use of Custom and CustomGetter and CustomSetter.
   this is a faairly easy task that involves commenting out
   a few lines of the CodeGeneratorGObject.pm and seeing what
   breaks.  again, it will be a tiny self-contained patch

 so that&apos;s five small pieces of work that are self-contained and
 can all be done at the same time by different people, and will,
 post-patch-acceptance, result in the review process for #16401
 being fulfilled satisfactorily.

 there are plenty more like that, and i look forward to helping
 you and others identify them and i look forward to helping
 to review contributions to fix them.

 we have months of work to go on this as it is: this _working_
 i repeat PROVABLY WORKING first version is just the beginning.

 l.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131294</commentid>
    <comment_count>222</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-13 03:58:25 -0700</bug_when>
    <thetext>(In reply to comment #221)
&gt;  things like:

 * reintroduce adam&apos;s excellent work, one self-contained patch at a time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131448</commentid>
    <comment_count>223</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-13 17:17:23 -0700</bug_when>
    <thetext>(In reply to comment #218)
&gt; Created an attachment (id=32633) [details]
&gt; brings glib/gobject bindings up to svn r44473.
&gt; [...]
&gt; 
&gt; dave agrees - https://bugs.webkit.org/show_bug.cgi?id=16401#c214 - that the way
&gt; forward is to take this &quot;as-is&quot; and then to move forward from there.  over what
&gt; is likely to be a period of several months, retro-fix issues that have been
&gt; raised and recorded will - should - be created.  it would have been nice if
&gt; people had listened to my advice on this months ago, but, not believing me, you
&gt; had to find out for yourselves [by taking up adam&apos;s time as well as mine].  at
&gt; least we&apos;re moving forward, now, rather than playing silly buggers.

Please forgive me, I thought that Adam&apos;s patch contained the entire body of work when I wrote Comment #214.  I withdraw my statement that it would be okay to land the full patch in one piece.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131489</commentid>
    <comment_count>224</comment_count>
    <who name="Gour">gour</who>
    <bug_when>2009-07-13 23:23:33 -0700</bug_when>
    <thetext>(In reply to comment #223)

&gt; Please forgive me, I thought that Adam&apos;s patch contained the entire body of
&gt; work when I wrote Comment #214.  I withdraw my statement that it would be okay
&gt; to land the full patch in one piece.

Huh, this is going to nowhere-land...

Luke, run away from here and focus on xulrunner. ;)


Sincerely,
Gour</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131490</commentid>
    <comment_count>225</comment_count>
    <who name="Gour">gour</who>
    <bug_when>2009-07-13 23:25:56 -0700</bug_when>
    <thetext>(In reply to comment #224)

&gt; Luke, run away from here and focus on xulrunner. ;)
&gt; 
&gt; 
&gt; Sincerely,
&gt; Gour
Leaving this one...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131501</commentid>
    <comment_count>226</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-14 02:05:17 -0700</bug_when>
    <thetext>(In reply to comment #223)
&gt; (In reply to comment #218)
&gt; &gt; Created an attachment (id=32633) [details] [details]
&gt; &gt; brings glib/gobject bindings up to svn r44473.
&gt; &gt; [...]
&gt; &gt; 
&gt; &gt; dave agrees - https://bugs.webkit.org/show_bug.cgi?id=16401#c214 - that the way
&gt; &gt; forward is to take this &quot;as-is&quot; and then to move forward from there.  over what
&gt; &gt; is likely to be a period of several months, retro-fix issues that have been
&gt; &gt; raised and recorded will - should - be created.  it would have been nice if
&gt; &gt; people had listened to my advice on this months ago, but, not believing me, you
&gt; &gt; had to find out for yourselves [by taking up adam&apos;s time as well as mine].  at
&gt; &gt; least we&apos;re moving forward, now, rather than playing silly buggers.
&gt; 
&gt; Please forgive me, I thought that Adam&apos;s patch contained the entire body of
&gt; work when I wrote Comment #214.

sorry, david, i thought you understood that, and i apologise for not
making it clearer.

adam&apos;s work contains (contained) about .... 80%-90% of the required functionality to make pyjamas-desktop, the only full and empirical testing environment, actually work.

even that one piece of functionality missing - event handling - _instantly_
makes adam&apos;s work unusable.

not to mention the removal of LANGUAGE_GOBJECT features, XMLHttpRequest
and so on.



&gt;  I withdraw my statement that it would be okay
&gt; to land the full patch in one piece.

then we go back to square one.

i will await review of this massive patch.

i trust that the research material will be reviewed and that the
sound technical insights given for keeping LANGUAGE_GOBJECT will
be given the merit and the consideration that they deserve.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131502</commentid>
    <comment_count>227</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-14 02:08:38 -0700</bug_when>
    <thetext>(In reply to comment #224)
&gt; (In reply to comment #223)
&gt; 
&gt; &gt; Please forgive me, I thought that Adam&apos;s patch contained the entire body of
&gt; &gt; work when I wrote Comment #214.  I withdraw my statement that it would be okay
&gt; &gt; to land the full patch in one piece.
&gt; 
&gt; Huh, this is going to nowhere-land...
&gt; 
&gt; Luke, run away from here and focus on xulrunner. ;)

no need, gour - xulrunner support in pyjamas-desktop is done!
it took under 3 days, i&apos;m just tying up loose ends now.

my next plan is to move on to MSHTML.

that will make webkit a third rate citizen as far as free software
community support from apple is concerned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131504</commentid>
    <comment_count>228</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-14 02:28:19 -0700</bug_when>
    <thetext>(In reply to comment #223)
&gt; (In reply to comment #218)
&gt; &gt; Created an attachment (id=32633) [details] [details]
&gt; &gt; brings glib/gobject bindings up to svn r44473.
&gt; &gt; [...]
&gt; &gt; 
&gt; &gt; dave agrees - https://bugs.webkit.org/show_bug.cgi?id=16401#c214 - that the way
&gt; &gt; forward is to take this &quot;as-is&quot; and then to move forward from there.  over what
&gt; &gt; is likely to be a period of several months, retro-fix issues that have been
&gt; &gt; raised and recorded will - should - be created.  it would have been nice if
&gt; &gt; people had listened to my advice on this months ago, but, not believing me, you
&gt; &gt; had to find out for yourselves [by taking up adam&apos;s time as well as mine].  at
&gt; &gt; least we&apos;re moving forward, now, rather than playing silly buggers.
&gt; 
&gt; Please forgive me, I thought that Adam&apos;s patch contained the entire body of
&gt; work when I wrote Comment #214.  I withdraw my statement that it would be okay
&gt; to land the full patch in one piece.

 so, david, just to reiterate the sequence of events, so that things can
 be fully understood:

 * patch began, with a goal to making python a full and complete peer of
   its javascript bindings and also of the competition such as python-xpcom
   and MSHTML

 * patch submitted with the expectation of enthusiasm and support of apple
   and free software community.

 * patch demanded to be &quot;cut down&quot; which went down like a lead balloon.

 * patch completed to meet initial goals and milestones.  first release
   made on sourceforge.

 * patch worked on by yorba to meet some of apple reviewers&apos; demands
   [as well as very sensible requests].

 * too much removed, to meet demands, to make it possible for patch to
   be used and tested [under pyjamas-desktop]

 * agreement reached to move forward [with misunderstanding]

 * &quot;2 steps backwards, 1 step forwards&quot; patch created, along with
   a roadmap to move forward in small incremental steps.

 * misunderstanding highlighted.

so, as you can see, the root cause of the misunderstanding is the
demands made by apple reviewers to remove critical LANGUAGE_GOBJECT
functionality. amongst other things.

if those demands had not been made, adam&apos;s excellent work would contain
the necessary features required for me to be able to continue from where
his company told him to leave this alone.

well - it wouldn&apos;t have contained event handling, but being only that
one thing missing i could have added that back in.

so, you only have yourselves to blame, for misdirecting, misguiding
and abusing the resources and time of those volunteers and members
of the free software community willing to contribute.

that the level of expertise required to contribute is so high leaves
you now with a serious problem.

one which a few apologies and some inclusive discussions instead of
statements including sentences &quot;that&apos;s not the vision for webkit 
language bindings that apple has&quot; would go a long way towards repairing
the damage that apple has done to its reputation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131683</commentid>
    <comment_count>229</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-07-14 14:47:35 -0700</bug_when>
    <thetext>(In reply to comment #227)
&gt; that will make webkit a third rate citizen as far as free software
&gt; community support from apple is concerned.

1. This has nothing to do with apple; we are the webkit project, not apple.
2. I am as Free Software community as you are, and know that Epiphany, Midori, Empathy, Devhelp are very happily using WebKitGTK+, despite whatever you think.
3. You, as always, see your project as the most important thing on earth, and probably as more representative of the Free Software community than any of the other projects. I&apos;m sorry to tell you it is not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131838</commentid>
    <comment_count>230</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-15 03:10:23 -0700</bug_when>
    <thetext>(In reply to comment #229)
&gt; (In reply to comment #227)
&gt; &gt; that will make webkit a third rate citizen as far as free software
&gt; &gt; community support from apple is concerned.
&gt; 
&gt; 1. This has nothing to do with apple; we are the webkit project, not apple.

 ahh, that&apos;s good to hear.  given that the key reviewers with the most
 objections and the least willingness to engage in technical discussions
 that counter those objections were apple employees, i was under the
 mistaken impression that apple controlled webkit.

 if the webkit project is willing to engage and discuss the researched
 material (which, i have to point out, has been requested ten times now)
 shown from here onwards (#121 - #127):
   https://bugs.webkit.org/show_bug.cgi?id=16401#c121

 if the webkit project is willing to review those responses, which were
 made in response to review comments, we can move forward!

 which is brilliant.  i&apos;m encouraged that you are willing to do that.


&gt; 2. I am as Free Software community as you are, and know that Epiphany, Midori,
&gt; Empathy, Devhelp are very happily using WebKitGTK+, despite whatever you think.

 ah - thank you for saying this, because you highlight a mistake that i made
 in what i said, and that is always appreciated.

 i meant to say, &quot;as far as declarative-style expansion of webkit to other programming languages is concerned, through language bindings...&quot;

 which is of course completely different.

 so, i apologise for taking up your time with a mistake on my part,
 i had assumed that it would be clear from the context, as this patch
 provides language bindings and thus opens up webkit in an exciting
 new way for free software.

 now - specifically regarding the projects that you mention, i _would_
 go and look through them to see if there are any language bindings to
 DOM, but, given that this is the only place where that is done, i can
 say with a high degree of confidence that they don&apos;t make use of this
 patch.

 so, epiphany, midori, empathy and devhelp are quite happily using
 webkitgtk+ but they are not using python, vala or any other dynamic 
 language (other than javascript)  to manipulate the DOM model in any way,
 shape or form.

 so in that regard, your point is moot, and i apologise once again for
 not making things clear enough such that you felt it necessary to defend
 these projects.

 if this patch was affecting or contributing to the _core_ functionality,
 for example if it was a performance improvement or a port of webkitgtk+
 to an esoteric embedded system or something, then you would be absolutely
 correct in defending those projects.

 but, this is a _massive_ enhancement that has no bearing on those
 projects at all, so it is a moot point.



&gt; 3. You, as always, see your project as the most important thing on earth, 

 ahh, there, now, you&apos;re making assumptions, which is always a bad idea,
 and as an experienced free software developer, i am surprised that you
 would make such assumptions.

 surely you did not mean to make such an assumption, but i cannot guess
 what you meant to say.

 perhaps you might like to make a correction to your statement which will
 help the technical progression of this work?

 otherwise, your statement might be misconstrued as ... gosh, how to put
 this without causing offense... &quot;gesturing&quot; is perhaps the most
 diplomatic word.  i trust that you will in no way take offense by me
 merely pointing out how your assumption might be viewed, and that you
 will immediately take the time to correct any assumptions or mistaken
 impressions that _i_ might have.

 in this way, it will be possible for us to move forward on a sound
 footing, with no assumptions made that could aggravate the development
 of this work, such that we can move forward on the progression of
 free software and of this particular part of it.

&gt; and
&gt; probably as more representative of the Free Software community than any of the
&gt; other projects. I&apos;m sorry to tell you it is not.

 i&apos;m sorry, gustavo, but i am very confused by the purpose and the intent
 behind these statements.

 i cannot see any technical or strategic merit behind them which helps
 contribute to webkit or to the progression of this patch.

 perhaps you might like to send a message which indicates to future readers
 that you apologise for making assumptions about me, apologise for taking
 up peoples&apos; time and asking the comment to be disregarded from the
 discussions.

 as a member of the webkit team and as an experienced free software
 developer, i look forward to hearing further input from you which
 contributes to the technical and strategic progress of this work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131854</commentid>
    <comment_count>231</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-07-15 04:58:48 -0700</bug_when>
    <thetext>&gt; &gt; 2. I am as Free Software community as you are, and know that Epiphany, Midori,
&gt; &gt; Empathy, Devhelp are very happily using WebKitGTK+, despite whatever you think.
&gt; [...]
&gt;  so, epiphany, midori, empathy and devhelp are quite happily using
&gt;  webkitgtk+ but they are not using python, vala or any other dynamic 
&gt;  language (other than javascript)  to manipulate the DOM model in any way,
&gt;  shape or form.

You misunderstand. DOM binding in the sense of the motivation of this bug report is about C language bindings. Hence the mentioned projects are unable to  manipulate the DOM other than via javascript in exactly the same way as any python or vala application is.

&gt; &gt; 3. You, as always, see your project as the most important thing on earth, 
&gt; 
&gt;  ahh, there, now, you&apos;re making assumptions, which is always a bad idea,
&gt;  and as an experienced free software developer, i am surprised that you
&gt;  would make such assumptions.
&gt; [...]

Please quit commenting in this overly verbose and disruptive fashion, as Xan requested, and as was requested before. You are free to open up a personal website and post rants there, but keep it short in bugzilla. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131924</commentid>
    <comment_count>232</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-15 09:47:58 -0700</bug_when>
    <thetext>(In reply to comment #231)

&gt; &gt;  so, epiphany, midori, empathy and devhelp are quite happily using
&gt; &gt;  webkitgtk+ but they are not using python, vala or any other dynamic 
&gt; &gt;  language (other than javascript)  to manipulate the DOM model in any way,
&gt; &gt;  shape or form.
&gt; 
&gt; You misunderstand. DOM binding in the sense of the motivation of this bug
&gt; report is about C language bindings.

 christian, you are funny

&gt; Hence the mentioned projects are unable to
&gt;  manipulate the DOM other than via javascript in exactly the same way as any
&gt; python or vala application is.

 i apologise, i 

&gt; &gt; &gt; 3. You, as always, see your project as the most important thing on earth, 
&gt; &gt; 
&gt; &gt;  ahh, there, now, you&apos;re making assumptions, which is always a bad idea,
&gt; &gt;  and as an experienced free software developer, i am surprised that you
&gt; &gt;  would make such assumptions.
&gt; &gt; [...]
&gt; 
&gt; Please quit commenting in this overly verbose and disruptive fashion,

 christian, with respect, i invite you to consider some things.
 
 is it okay if i point out people&apos;s assumptions about me, which could
 be viewed as either misguided, misinformed or as personal attack?

 is it okay if i use this bugtracker to give people the benefit of the
 doubt and an opportunity to correct any mistaken impressions?

 i am endeavouring to get this discussion onto technical issues, and
 i am keenly aware that there seems to be a high percentage of people
 willing to talk rather than act in a way that moves this technical
 issue forward.

 my technical contributions and technical questions remain unanswered.

 how should i react?

 in good faith, i ask you genuinely to advise me how i should react to that.


&gt; as Xan
&gt; requested, and as was requested before. You are free to open up a personal
&gt; website and post rants there, but keep it short in bugzilla. Thanks.

 i&apos;m sorry that you feel that it is okay for people to use this bugtracker
 to make assumptions and non-technical contributions, but that it is not
 okay for me to point that out.

 i also apologise for having to take so much of everyone&apos;s time apologising
 and for taking up peoples&apos; time having to deal with incorrect assumptions
 and more.

 i welcome advice from people on ways to move this technical issue forward,
 as well as contributions to the technical issues at hand.

 
 so.

 xan.  christian.  gustavo.  mark.  dave.  your agreement is sought to keep
 discussions here related to a minimum - of technical discussions and issues,
 with _mutual_ respect and due consideration for all contributions.

 i trust that this meets with your approval and your agreement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131932</commentid>
    <comment_count>233</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-15 10:06:59 -0700</bug_when>
    <thetext>(In reply to comment #232)

&gt; &gt; You misunderstand. DOM binding in the sense of the motivation of this bug
&gt; &gt; report is about C language bindings.
&gt; 
&gt;  christian, you are funny
&gt; 
&gt; &gt; Hence the mentioned projects are unable to
&gt; &gt;  manipulate the DOM other than via javascript in exactly the same way as any
&gt; &gt; python or vala application is.
&gt; 
&gt;  i apologise, i 

 achh, darnit, please disregard this sentence and the one above: as you can
 see from the incomplete sentence i hit send too soon.  i apologise for taking
 up peoples&apos; time with incomplete replies, _especially_ ones responding to
 non-technical discussions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131997</commentid>
    <comment_count>234</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-15 12:28:36 -0700</bug_when>
    <thetext>(In reply to comment #215)
&gt; &gt; After re-reviewing some of the comments, I think my comment that the patch
&gt; &gt; &quot;must be broken up in to smaller pieces&quot; may be worded too strongly.  In
&gt; &gt; Comment #76, breaking up the patch is suggested as a best practice for new
&gt; &gt; contributors and will lead to quicker turnaround (reviews) on posted patches,
&gt; &gt; but it&apos;s not a strict requirement.
&gt; 
&gt;  ah, whew, that&apos;s a relief.
&gt; 
&gt; &gt; However, since you&apos;re unwilling to break it up
&gt; 
&gt;  it&apos;s more than that, it&apos;s that by doing so i cannot make any guarantees that
&gt; the individual portions are either correct or actually do anything.  it was
&gt; only by having pretty much absolutely everything that i could get
&gt; pyjamas-desktop to work, and thus run the high-level tests (pyjamas examples,
&gt; pyjamas unit tests etc.)
&gt; 
&gt; &gt; (and since willing to be patient),
&gt; 
&gt;  got all the time in the world.  the main reason for that is because i managed
&gt; at europython to port pyjamas-desktop to the competitor to pywebkitgtk:
&gt; python-xpdom.  it uses XUL (mozilla).  so, pyjamas developers can develop
&gt; applications to run in web browsers (compiled to javascript) _or_ they can run
&gt; them as desktop apps...
&gt; 
&gt; .... no longer using webkit, but using mozilla technology instead.
&gt; 
&gt; &gt; the next step would be to post a new monolithic patch for review
&gt; &gt; addressing feedback in Comment #191 and Comment #194.
&gt; 
&gt;  ok.  the comments are related to a (highly modified) patch which i could not
&gt; get involved in, because of the removal of the event handling.
&gt; 
&gt;  so, *sigh* it&apos;s necessary to take two steps back in order to take one step
&gt; forward, for which i apologise (both to you, and to adam - sorry, adam, but
&gt; removing the event handling, i know why you did it, as it took me three days to
&gt; update to the latest svn, last week, but i have to work from what i know and
&gt; what i can prove works).
&gt; 
&gt;  so i&apos;ll endeavour to address the comments where they are relevant.
&gt; 
&gt;  one immediately that can be addressed: custom attributes.
&gt; 
&gt; &gt; &gt; +    if ($attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Custom&quot;} ||
&gt; &gt; &gt; +    	$attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomGetter&quot;} ||
&gt; &gt; &gt; +        $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;CustomSetter&quot;}) {
&gt; &gt; &gt; +        return 1;
&gt; &gt; &gt; +    }
&gt; 
&gt; &gt; [Custom] and related attributes are only used for implementing JS specific
&gt; &gt; quirks and should not be needed for GObject bindings. 
&gt; 
&gt;  the assertion that they are JS-relevant-only is not true, and you can
&gt;  test this by removing the &quot;custom&quot; test in the generator, and trying to
&gt;  add everything.
&gt; 
&gt;  i found this out myself by accidentally removing it, thanks to an
&gt;  error in the generator logic, whoops :)

 so - to demonstrate this to you, sam, i&apos;m trying out the removal of the code from the generator that tests for custom attributes.

and immediately you get this:

DerivedSources/gdom/GdomDOMWindow.cpp:625: error: ‘class WebCore::DOMWindow’ has no member named ‘event’

WebCore::DOMWindow() _has_ no function &quot;event()&quot;, which is correct!

because.... it&apos;s a custom function!

and, if we were to implement that custom function, it would only _increase_
the size of the patch, rather than decrease it.  which is contrary to the
wishes of the webkit team [and common sense].

so, this should serve to demonstrate to you that there are sound
technical and practical reasons for doing what is being done.

you are welcome to question each and every single one of the technical
decisions: i can tell you right now that we will be here for a loooong
time.

or, we can land the patch and then retro-grade fix any issues, which
i am still willing to help do.

the choice i leave up to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132003</commentid>
    <comment_count>235</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-15 12:56:23 -0700</bug_when>
    <thetext>another one, this time from JavaScriptCallFrame.idl:

        readonly attribute [CustomGetter] DOMString type;

removing the code that checks for (and thus allows) CustomGetters, CustomSetters and Custom properties, results in:

DerivedSources/gdom/GdomJavaScriptCallFrame.cpp:211: error: no matching function for call to ‘GStringConvert(JSC::DebuggerCallFrame::Type)’

why?  because this is, in javascript-land, a _custom_ function that performs
conversion from JSC::DebuggerCallFrame::Type to string.

so, on a case-by-case basis, various properties get skipped like this,
and i&apos;m just going through them now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132017</commentid>
    <comment_count>236</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-15 13:45:26 -0700</bug_when>
    <thetext>(In reply to comment #214)
&gt; After re-reviewing some of the comments, I think my comment that the patch
&gt; &quot;must be broken up in to smaller pieces&quot; may be worded too strongly.  In
&gt; Comment #76, breaking up the patch is suggested as a best practice for new
&gt; contributors and will lead to quicker turnaround (reviews) on posted patches,
&gt; but it&apos;s not a strict requirement.
&gt; 
&gt; However, since you&apos;re unwilling to break it up (and since willing to be
&gt; patient), the next step would be to post a new monolithic patch for review
&gt; addressing feedback in Comment #191 and Comment #194.

 ok - so, as we know, due to a misunderstanding, that happened, but it was
 believed that adam&apos;s work would be the way to move forward.  given that
 far too much was removed to make that possible, and given that my knowledge
 of eight months ago is of the original patch, i went from the original patch.

 so, with my original intentions to help move this forward still standing,
 but on a basis where i can actually contribute stuff that is useful to
 its users (pywebkitgtk and pyjamas-desktop) and so i can genuinely say,
 &quot;yes, i can show and prove that this works, reliably&quot;, i ask you this
 question: 

 what, dave, would it take?

 i.e. what would you be willing to offer that moves this forward?

 use of adam&apos;s work as the initial basis is sadly not acceptable (to me
 as a free software contributor, or to pyjamas-desktop developers) and,
 given that i&apos;m the  one that&apos;s offering to contribute,
 you should (necessarily) take that into consideration.

 here are some suggestions, and i would welcome input from anyone with
 any other ideas:

 1) a patch that makes the current libwebkitgdom.la a totally separate
    library, external to and absolutely nothing to do with webkit -
    not even maintained by webkit, not part of webkit.

    for this to happen, an opaque entrypoint function will be required,
    to get at probably..... DOMWindow.  or, a &quot;setter&quot; function will
    be required to set the pointer to Frame*.  

    and, critically, the CodeGenerator bindings scripts will need to
    be possible to run as separate stand-alone applications, and the
    IDL files will need to be installed in /usr/share/webkit/....
    somewhere.

    (this latter is exactly what XULrunner does, btw, because you need
    the IDL files from xulrunner for COM c++ application development.
    conceptually, there is no difference here).

    the nice thing about this is that if people want to shoot themselves
    in the foot by sticking to W3C standards, they can; if they want to
    put webkit-glib bindings onto a par with XulRunner&apos;s XPCOM bindings
    and with MSHTML&apos;s DCOM bindings, they can.

 2) a list of minor features - a compromise between what you believed
    we were agreeing to and what i believed that we were agreeing to -
    which would be acceptable to add prior to proceeding as agreed
    with landing the rest as-is.

    anyone can then take a look at the list - including myself - and
    see which items are time-consuming and which are manageable.

    the disadvantage of this approach is that each and every time
    a patch is submitted, you have _yet another_ massive review to
    perform, just to get things to the point where the patch can
    be landed [with some issues still to be dealt with]

    it has to be ironically pointed out that this overhead could be
    mitigated by landing the patch, of course, and then following up
    with smaller patches, but if there is a desire to stick to procedures,
    even if it causes stress and distress, then i&apos;m not going to stop
    you - just don&apos;t lay the blame at my door if things remain too much.

    however, what might work would be to submit &quot;patches-to-patches&quot;
    for review, i.e. take the current patch as-is (attachment 32633)
    and we agree that &quot;minor feature&quot; patches will be reviewed.

    if the complete list of &quot;minor feature&quot; patches is fulfilled,
    then the attachment 32633 plus the accompanying minor-patches
    are landed &quot;as-is&quot;, and then we move forward to fix any other
    remaining outstanding (larger) issues. 

    this is... sort of a less formal / less strict version of 4) or
    5) below.

 3) we wait - for someone else to come up with the goods.

    i&apos;m quite happy to do this - it&apos;s just that... we end up with
    disappointed and frustrated users by doing so.

    i can manage doing .deb builds of webkit-glib/gobject for 32-bit
    and 64-bit debian users, and i can do customised/embedded builds.
    and even macports.org builds.

    but... windows?  pshahh.  tried it once.  took eight days.  not
    me &apos;guv :)

    so - we wait, but waiting delays delivery.  fortunately, for
    pyjamas-desktop users, there is always xulrunner, so it&apos;s the
    other projects that suffer.

 4) a branch.

    the patch is landed as-is.... in a branch.  in that way, people can
    contribute merges and fixes, and move forward.

    merges are the biggest time-consumer of all, way beyond making
    modifications.

    one of the primary motivations behind my recommendation that the
    patch be landed and then worked on post-landing is due to the fact
    that merges, using anything-other-than-webkit-svn, is tricky and
    time-consuming.

    by working from a webkit branch _in_ the webkit svn, there are
    several distinct advantages:

    a) the burden of merges goes away
    b) the work is still being carried out in one &quot;central&quot; location
       under the watchful eye of the webkit team
    c) the review process can still be carried out, as usual.

  5) work is carried out elsewhere (not using webkit svn)

    patches and reviews take place elsewhere, but continuing to utilise
    the bugtracker, here.

    smaller patches could be submitted for review (here), with reviewers
    being made keenly aware that they are reviewing an external source tree
    not a webkit one, with a view to it being accepted _by_ webkit.

    in this way, the process of development of the work is acceptable
    and manageable; the eventual acceptance is trustworthy.

    disadvantage: disconnect between webkit svn and whereever-it-is,
    making merges timeconsuming (and cumbersome).

  6) other.

thoughts?  i&apos;m interested to hear from anyone at all, world-wide, who is
willing to help make sound strategic or technical contributions to this
discussion, with a view to providing useful and useable c-based
glib/gobject DOM bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132025</commentid>
    <comment_count>237</comment_count>
      <attachid>32807</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-15 13:58:35 -0700</bug_when>
    <thetext>Created attachment 32807
answering comments in #194 by sam

ok - sam, this is answering the question about why CustomGetter, CustomSetter and Custom are used.  if you don&apos;t then there are three (that i could find, through compile-errors) properties that have to be skipped; i just skip anything of type &quot;Event&quot;; anything of type &quot;Object&quot; and JavaScriptCallFrame.type.

i&apos;m not sure of the wisdom of skipping everything of type &quot;Event&quot;, it may be wiser to skip only &quot;DOMWindow.event&quot; but i wanted to solicit your approval for this technique of removing the references to CustomGetter, CustomSetter and Custom in favour of very specific statements like this:

+        # skip JavaScriptCallFrame.type
+        if (($prop_name eq &quot;type&quot;) &amp;&amp; ($interfaceName eq &quot;JavaScriptCallFrame&quot;)){
+            next SKIPPROP;
+        }

there aren&apos;t tooooo many of these, as you can see, but it can also be seen that they are, right now, entirely necessary.  and the patch size is kept down as a result.

l.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132040</commentid>
    <comment_count>238</comment_count>
    <who name="Sean Neilan">sean</who>
    <bug_when>2009-07-15 14:32:07 -0700</bug_when>
    <thetext>My goodness, LKCL, stop talking so much. I&apos;m very interested in the progress of this bug, but, in the time spent spamming, a lot of progress could&apos;ve been made.

I was on your side before (and thought there were sides in this thing!) but I realize that you need better people skills if you want this to go anywhere.

I&apos;ll fix this patch myself once I have the time. Couldn&apos;t be that hard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132089</commentid>
    <comment_count>239</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-15 16:48:35 -0700</bug_when>
    <thetext>(In reply to comment #236)
&gt;  what, dave, would it take?
&gt;  i.e. what would you be willing to offer that moves this forward?

Sorry, I have nothing more to add that wouldn&apos;t be restating the obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132202</commentid>
    <comment_count>240</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-16 01:49:13 -0700</bug_when>
    <thetext>(In reply to comment #238)
&gt; My goodness, LKCL, stop talking so much. I&apos;m very interested in the progress of
&gt; this bug, but, in the time spent spamming, a lot of progress could&apos;ve been
&gt; made.

 teeelll me about it.  ... actually, don&apos;t - that would be in breach of agreement to keep to technical issues :)

&gt; I was on your side before (and thought there were sides in this thing!) but I
&gt; realize that you need better people skills if you want this to go anywhere.

 i&apos;m absolutely aware of that.  [explanation cut in order to keep to
 agreement to discuss technical issues.]

&gt; I&apos;ll fix this patch myself once I have the time. Couldn&apos;t be that hard.

 ha ha that&apos;s the spirit :)  [btw that&apos;s exactly what i said about nt domains reverse-engineering...]  time _is_ the key, here.  there have been only three contributors - four including the absolutely invaluable technical review input from mark rowe.  it&apos;d be nice to have a fifth.

 when you have time, then do, like martin did, use the pywebkitgtk patch
 as the &quot;sounding board&quot;.  indirectly via pywebkitgtk, pyjamas-desktop is
 the only significant &quot;user&quot; of these bindings at the moment, which makes
 it the code-coverage and testing platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132223</commentid>
    <comment_count>241</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-16 03:47:52 -0700</bug_when>
    <thetext>(In reply to comment #240)
&gt; (In reply to comment #238)
&gt; &gt; My goodness, LKCL, stop talking so much. I&apos;m very interested in the progress of
&gt; &gt; this bug, but, in the time spent spamming, a lot of progress could&apos;ve been
&gt; &gt; made.
&gt; 
&gt;  teeelll me about it.  ... actually, don&apos;t - that would be in breach of
&gt; agreement to keep to technical issues :)
&gt; 
&gt; &gt; I was on your side before (and thought there were sides in this thing!) but I

 there are no &quot;sides&quot; - there is only the goal. the goal is &quot;useable and useful gobject / c DOM bindings&quot;.

 i freely admit that i&apos;m pathologically focussed on that goal and that goal alone.

&gt; &gt; I&apos;ll fix this patch myself once I have the time. Couldn&apos;t be that hard.
&gt; 
&gt;  ha ha that&apos;s the spirit :)  [btw that&apos;s exactly what i said about nt domains

 also, if you&apos;re limited on time, and also simply from a practical perspective, can i recommend the use of a joint / collaborative repository to which we both have access?

 as you know i&apos;m currently using github - you or anyone else i&apos;m happy to grant commit / push access but if you or anyone else has any other suggestions i&apos;m happy to work with that.

 in that way, if you don&apos;t have time, i can perform the necessary high-level testing which will help keep the patch on-track.

 just because following webkit&apos;s procedures have resulted in stress and distress [that my unfortunately-ignored recommendations were made to avoid] doesn&apos;t mean that _you_, sean, should subject yourself to the same levels of stress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132224</commentid>
    <comment_count>242</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-16 03:54:56 -0700</bug_when>
    <thetext>(In reply to comment #239)
&gt; (In reply to comment #236)
&gt; &gt;  what, dave, would it take?
&gt; &gt;  i.e. what would you be willing to offer that moves this forward?
&gt; 
&gt; Sorry, I have nothing more to add that wouldn&apos;t be restating the obvious.

 dave, hi, i&apos;m sorry to hear that.  i&apos;m very grateful that you were willing
 to make a committment to move this issue forward.  i can surmise that you
 were, in some way, acting as a conciliatory intermediary.

 so that there is no misunderstanding, please do risk stating what you
 believe to be obvious, because as you should be aware by now i am very
 literal-minded.  and, as a software engineer, i _never_ take &quot;the obvious&quot;
 for granted.

 we&apos;ve just _had_ one round of agreement where there were misunderstandings.

 perhaps might i suggest that you simply answer the question?  nobody will
 think that you are stating the obvious, and nobody will be critical of you
 for doing so.  far from it: they will actually respect you enormously for
 being the one willing to move this issue forward.

 l.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132232</commentid>
    <comment_count>243</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-16 04:19:34 -0700</bug_when>
    <thetext>(In reply to comment #242)
&gt; (In reply to comment #239)
&gt; &gt; (In reply to comment #236)
&gt; &gt; &gt;  what, dave, would it take?
&gt; &gt; &gt;  i.e. what would you be willing to offer that moves this forward?

&gt;  perhaps might i suggest that you simply answer the question?  nobody will
&gt;  think that you are stating the obvious, and nobody will be critical of you
&gt;  for doing so.  far from it: they will actually respect you enormously for
&gt;  being the one willing to move this issue forward.

 ohohoh, one _very_ important factor to take into consideration, when thinking about and formulating your answer:

 * how should the approach [in your recommendation] be _tested_ ?

 with the [empirical?] testing environment locked up [in a proprietary company, intellectual property of yorba.com] which only adam had access to, how is anyone supposed to move adam&apos;s work forward?

 at least pywebkitgtk is free software, as is pyjamas-desktop.

 behind pyjamas-desktop is a widget-set API based on DOM bindings to python.  that widget set API is 8,000 lines of dedicated python.

 then, there are the examples themselves, comprising what is now about twenty five examples at around... i guess... 10,000 lines of test code.

 so - in answering the question, _do_ take into consideration that if the way forward that you recommend does _not_ involve using the current work, but involves moving forward from adam&apos;s work, that you will be asking people to work without a test suite, until such time as the work can be brought up to standard.

 this is what i thought was obvious when we made an agreement, and i apologise for not realising that you might not think that was so.

 i mention this to highlight why it might not be a good idea to assume that things are obvious, and i look forward to your reply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132235</commentid>
    <comment_count>244</comment_count>
    <who name="Adam Dingle">adam</who>
    <bug_when>2009-07-16 04:44:10 -0700</bug_when>
    <thetext>&gt;  with the [empirical?] testing environment locked up [in a proprietary company,
&gt; intellectual property of yorba.com] which only adam had access to, how is

For the record, Yorba is a non-profit group which makes only open source software.  All of its work is licensed under the LGPL and freely available at svn://svn.yorba.org .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132267</commentid>
    <comment_count>245</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-16 08:39:32 -0700</bug_when>
    <thetext>(In reply to comment #242)
&gt; (In reply to comment #239)
&gt; &gt; (In reply to comment #236)
&gt; &gt; &gt;  what, dave, would it take?
&gt; &gt; &gt;  i.e. what would you be willing to offer that moves this forward?
&gt; &gt; Sorry, I have nothing more to add that wouldn&apos;t be restating the obvious.
&gt;  perhaps might i suggest that you simply answer the question?

Break up the patch into pieces so that each piece may be reviewed, revised, and committed.

Since you&apos;ve already committed to maintaining a big patch against WebKit trunk indefinitely, breaking it up into smaller pieces that are committed to trunk dovetails nicely with this process.  As each small patch is committed to trunk, your large patch against trunk will shrink when you rebase.  You&apos;ll also find any issues that may have crept into trunk since you&apos;ll still be able to test the full, rebased patch in your environment.  It will also be easy to address any such issues in the next small patch.

Also note that new features added to WebKit don&apos;t have to be complete when they initially land.  Take DataGrid as a recent example.  The first commit just added empty stub files and updated build files to make sure they compiled on every port.  &lt;http://trac,webkit.org/changeset/44778&gt;  Future patches built on that initial commit to implement the feature.

May I suggest that you file a new bug for each smaller patch and relate it back to this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132877</commentid>
    <comment_count>246</comment_count>
      <attachid>32633</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-18 01:09:08 -0700</bug_when>
    <thetext>Comment on attachment 32633
brings glib/gobject bindings up to svn r44473.

This patch did not address the feedback made by other reviewers. Please make it short and sweet so it can be reviewed thoroughly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132881</commentid>
    <comment_count>247</comment_count>
      <attachid>32807</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-18 01:15:04 -0700</bug_when>
    <thetext>Comment on attachment 32807
answering comments in #194 by sam

This patch is missing a ChangeLog and can&apos;t be r+d as it is, so r-. Please submit a patch that actually builds and addresses the issues raised by other reviewers. 

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132891</commentid>
    <comment_count>248</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-18 02:14:36 -0700</bug_when>
    <thetext>(In reply to comment #247)
&gt; (From update of attachment 32807 [details])
&gt; This patch is missing a ChangeLog and can&apos;t be r+d as it is, so r-. Please
&gt; submit a patch that actually builds and addresses the issues raised by other
&gt; reviewers. 
&gt; 
&gt; Thanks.

jan, hi, thank you for looking at this.  (In reply to comment #244)
&gt; &gt;  with the [empirical?] testing environment locked up [in a proprietary company,
&gt; &gt; intellectual property of yorba.com] which only adam had access to, how is
&gt; 
&gt; For the record, Yorba is a non-profit group which makes only open source
&gt; software.  All of its work is licensed under the LGPL and freely available at
&gt; svn://svn.yorba.org .

 BRILLIANT!  that&apos;s fantastic news - so that means that there is a second test-path available for anyone who would like to work on this, from where you left off, adam.

 that&apos;s really good to hear.

 l.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132892</commentid>
    <comment_count>249</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-18 02:20:13 -0700</bug_when>
    <thetext>(In reply to comment #245)
&gt; (In reply to comment #242)
&gt; &gt; (In reply to comment #239)
&gt; &gt; &gt; (In reply to comment #236)
&gt; &gt; &gt; &gt;  what, dave, would it take?
&gt; &gt; &gt; &gt;  i.e. what would you be willing to offer that moves this forward?
&gt; &gt; &gt; Sorry, I have nothing more to add that wouldn&apos;t be restating the obvious.
&gt; &gt;  perhaps might i suggest that you simply answer the question?
&gt; 
&gt; Break up the patch into pieces so that each piece may be reviewed, revised, and
&gt; committed.
&gt; 
&gt; Since you&apos;ve already committed to maintaining a big patch against WebKit trunk
&gt; indefinitely, breaking it up into smaller pieces that are committed to trunk
&gt; dovetails nicely with this process.  As each small patch is committed to trunk,
&gt; your large patch against trunk will shrink when you rebase.  You&apos;ll also find
&gt; any issues that may have crept into trunk since you&apos;ll still be able to test
&gt; the full, rebased patch in your environment.  It will also be easy to address
&gt; any such issues in the next small patch.

 ooo.

 that.

 is a very good idea.

&gt; Also note that new features added to WebKit don&apos;t have to be complete when they
&gt; initially land.  Take DataGrid as a recent example.  The first commit just
&gt; added empty stub files and updated build files to make sure they compiled on
&gt; every port.  &lt;http://trac,webkit.org/changeset/44778&gt;  Future patches built on
&gt; that initial commit to implement the feature.

 okaay.  so - something like starting with CodeGeneratorGObject.pm
 and going from there.

&gt; May I suggest that you file a new bug for each smaller patch and relate it back
&gt; to this bug?

 veeery good idea.

 then each issue / submission gets done separately [and cleanly]

 i like it.

 to help those people willing to contribute, i will continue to submit the &quot;large&quot; version, here, but without review flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132894</commentid>
    <comment_count>250</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-18 02:44:51 -0700</bug_when>
    <thetext>(In reply to comment #246)
&gt; (From update of attachment 32633 [details])
&gt; This patch did not address the feedback made by other reviewers. Please make it
&gt; short and sweet so it can be reviewed thoroughly.

 jan, hi, thank you for looking at this.  my apologies for not cross-referencing them accurately, but the feedback _has_ been addressed: it&apos;s just that:

a) in some of the responses, i don&apos;t go &quot;yes, i will do that&quot;, i say, &quot;no, that would be a bad idea, and this this and this is why.  please can you answer if you agree / understand / accept&quot;.

on some of those issues, i am still, after eleven separate requests for feedback, awaiting a response.

b) the sheer number of issues raised on something that i did say, well in advance, &quot;this is very very involved&quot;, means that both of us miss things.  [not that that&apos;s terribly important (details-wise) because of the extensive and high-level empirical testing that&apos;s been done, but... i fully appreciate that missing things out makes people nervous].

so, i would _love_ to keep it short - but to do so risks omissions, and we fall between a rock and a hard place.


_but_ - since you sent this, david proposed a way forward (which is _great_) which i think will work very well: submission of portions of this work, as separate patches and bugreports.

i&apos;m starting with #27410, which is the &quot;biggie&quot; - the code generator.
once that&apos;s in, everything else will fall into place around it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132927</commentid>
    <comment_count>251</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-18 10:43:07 -0700</bug_when>
    <thetext>(In reply to comment #90)
&gt; &gt; That may be what your project is about,
&gt; 
&gt;  it&apos;s &quot;my&quot; project, it&apos;s _a_ project that i happen to be
&gt;  working on, at present.

 correction - that sentence was intended to start, &apos; it&apos;s not &quot;my&quot; project ...&apos;
 gosh, how did i miss that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132945</commentid>
    <comment_count>252</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-18 14:24:08 -0700</bug_when>
    <thetext>(In reply to comment #147)
&gt; (In reply to comment #145)

&gt; So only send(in Document data) is available at the moment.  You might be able
&gt; to use that to do AJAX now: from any Document object you can get a
&gt; DOMImplementation, which you could possibly use to construct new Document
&gt; objects containing arbitrary text.  I haven&apos;t tried that myself, however.

 sorry adam i&apos;ve only just found these comments!

 i did try [create a new Document object] and the attempts resulted in
 segfaults and consumed significant time and resources.

 so - LANGUAGE_GOBJECT re-enables send(DOMString), pending a solution
 [post-landing].

 sadly, the policy on webkit bugreports is that you are not allowed to
 record bugs onto bugreports that have not been landed.

 so, we must make a mental note of this, along-side dozens of other issues.


&gt; (a) have the bindings generators derive alternate names automatically, e.g.
&gt; send_DOMString() and send_Document(), and/or (b) add IDL attributes that
&gt; suggest alternate names.  I&apos;d love to see that happen, but I think that&apos;s
&gt; beyond the scope of this first GObject/DOM iteration.

 very much so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133011</commentid>
    <comment_count>253</comment_count>
    <who name="Wouter Bolsterlee">uws+webkit</who>
    <bug_when>2009-07-19 13:33:42 -0700</bug_when>
    <thetext>Removing from CC, because the signal/noise ratio is asymptotically approaching 0… Good luck, because this is a very interesting subject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133017</commentid>
    <comment_count>254</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-19 14:04:29 -0700</bug_when>
    <thetext>(In reply to comment #253)
&gt; Removing from CC, because the signal/noise ratio is asymptotically approaching
&gt; 0… Good luck, because this is a very interesting subject.

 *lol*.  thank you, wouter - heck, you won&apos;t see this unless you look for it.
 the series of &quot;small patches&quot; has begun, but even there, you&apos;d get a lot
 of messages due to them all being added to #16401.  apologies...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133049</commentid>
    <comment_count>255</comment_count>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-19 17:00:21 -0700</bug_when>
    <thetext>ok whoaaa, my head is spinning from creating so many patches.
it&apos;s still not done - there&apos;s the GNUMakefiles.am patches.

now at least there are smaller sets of work which people can look at
[and in some cases fight over, which has begun already].

at least however the bun-fights will be contained and will no
longer spill over into _this_ bugreport, thank god.

the goal is: &quot;useable and useful gobject bindings&quot;.  i&apos;ll
be making sure that happens, no matter how much people may
want to make that a difficult task.

anyone who would like to enter into discussions about what
is &quot;useful&quot; and what is &quot;useable&quot; regarding gobject bindings,
please name a suitable place and i will be happy to engage
with you in technical and strategic discussions.

as it&apos;s a fairly obvious place, i&apos;d recommend the individual
bugreports, now that they are subdivided, unless anyone
has any better ideas.

also, the subdivided bugreports are a good place where anyone
interested can make smaller individual contributions that would
help landing them.

for example, i am giving some thought and consideration to
breaking up the GNUmakefile.am patches so that people can
look at adam&apos;s excellent work and bring it in.

also there are a couple of bugreports with hand-coded files
that could do with auto-generators, those would be _great_
to do properly: the individual bugreport is the best place
to see what needs to be done.

overall the suggestion, david, to split this up into separate
patches was very very welcome, but i couldn&apos;t do it _until_
it was someone _inside_ the webkit team who suggested it.

the reason: attempts to utilise the bugtracker in a way in which
bugtrackers are supposed to be used were met with crack-downs
(close; invalid; wontfix etc.) and hostility by other webkit team
members.  so, i am _really_ grateful to you for making everyones&apos; lives
that much easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134775</commentid>
    <comment_count>256</comment_count>
      <attachid>33497</attachid>
    <who name="Luke Kenneth Casson Leighton">lkcl</who>
    <bug_when>2009-07-25 15:10:58 -0700</bug_when>
    <thetext>Created attachment 33497
the monster (complete patch) updated to r46395, including reflected properties

this patch isn&apos;t being submitted for review, it&apos;s here for the convenience of people who want to keep track of things, but to be honest you&apos;re better off getting the code from github.org/lkcl/webkit/16401.master</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171101</commentid>
    <comment_count>257</comment_count>
    <who name="">sascha.dewald</who>
    <bug_when>2009-12-12 08:06:11 -0800</bug_when>
    <thetext>(In reply to comment #256)
&gt; Created an attachment (id=33497) [details]
&gt; the monster (complete patch) updated to r46395, including reflected properties
&gt; 
&gt; this patch isn&apos;t being submitted for review, it&apos;s here for the convenience of
&gt; people who want to keep track of things, but to be honest you&apos;re better off
&gt; getting the code from github.org/lkcl/webkit/16401.master

does the patch or the git source, work with the currently build of webkit?

i really want to have gdom bindings for webkit ... i think this would us bring a step forward against m$.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180170</commentid>
    <comment_count>258</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-01-13 05:04:15 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 33590 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22247</attachid>
            <date>2008-07-11 06:27:49 -0700</date>
            <delta_ts>2008-07-11 06:27:49 -0700</delta_ts>
            <desc>Beginnings of the generator script</desc>
            <filename>CodeGeneratorGObject.pm</filename>
            <type>text/plain</type>
            <size>5713</size>
            <attacher name="Alp Toker">alp</attacher>
            
              <data encoding="base64">IwojIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgojCiMgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgojIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCiMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCiMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQojIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQojIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCiMgQm9zdG9uLCBNQSAwMjExMS0xMzA3
LCBVU0EuCgpwYWNrYWdlIENvZGVHZW5lcmF0b3JHT2JqZWN0OwoKIyBEZWZhdWx0IExpY2VuY2Ug
VGVtcGxhdGVzCm15ICRsaWNlbmNlVGVtcGxhdGUgPSA8PCAiRU9GIjsKLyoKICogQ29weXJpZ2h0
IChDKSAyMDA4IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgogKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLgogKi8KRU9GCgojIERlZmF1bHQgY29uc3RydWN0b3IKc3ViIG5ldwp7CiAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7CiAgICBteSAkcmVmZXJlbmNlID0geyB9OwoKICAgICRjb2Rl
R2VuZXJhdG9yID0gc2hpZnQ7CiAgICAkb3V0cHV0RGlyID0gc2hpZnQ7CgogICAgYmxlc3MoJHJl
ZmVyZW5jZSwgJG9iamVjdCk7CiAgICByZXR1cm4gJHJlZmVyZW5jZTsKfQoKc3ViIGZpbmlzaAp7
CiAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cn0KCiMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0cnVjdApz
dWIgR2VuZXJhdGVJbnRlcmZhY2UKewogICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICAgbXkgJGRh
dGFOb2RlID0gc2hpZnQ7CiAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OwoKICAgIG15ICRuYW1lID0g
JGRhdGFOb2RlLT5uYW1lOwoKCQlwcmludCAiJG5hbWVcbiI7CgogICAgJG9iamVjdC0+R2VuZXJh
dGUoJGRhdGFOb2RlKTsKCiAgICAjIFdyaXRlIGNoYW5nZXMKCQlteSAkZm5hbWUgPSAiZ2RvbV8i
IC4gZGVjYW1lbGl6ZSgkbmFtZSk7CgkJJGZuYW1lID1+IHMvXy8vZzsKICAgICRvYmplY3QtPldy
aXRlRGF0YSgkZm5hbWUpOwp9CgojIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKc3ViIEdl
bmVyYXRlTW9kdWxlCnsKICAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAgIG15ICRkYXRhTm9kZSA9
IHNoaWZ0OwoKICAgICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKfQoKIyBBbGdvcml0aG0g
dGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCnN1YiBjYW1lbGl6ZQp7CglteSAkcyA9
IHNoaWZ0OwoJam9pbignJywgbWFweyB1Y2ZpcnN0ICRfIH0gc3BsaXQoLyg/PD1bQS1aYS16XSlf
KD89W0EtWmEtel0pfFxiLywgJHMpKTsKfQoKIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6
OkNhbWVsQ2FzZSAwLjAxCnN1YiBkZWNhbWVsaXplCnsKCW15ICRzID0gc2hpZnQ7CgkkcyA9fiBz
eyhbXmEtekEtWl0/KShbQS1aXSopKFtBLVpdKShbYS16XT8pfXsKCQlteSAkZmMgPSBwb3MoJHMp
PT0wOwoJCW15ICgkcDAsJHAxLCRwMiwkcDMpID0gKCQxLGxjJDIsbGMkMywkNCk7CgkJbXkgJHQg
PSAkcDAgfHwgJGZjID8gJHAwIDogJ18nOwoJCSR0IC49ICRwMyA/ICRwMSA/ICIke3AxfV8kcDIk
cDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKCQkkdDsKCX1nZTsKCSRzOwp9CgpzdWIgR2V0Q2xh
c3NOYW1lCnsKCQlteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7
CgogICAgcmV0dXJuICJHRE9NJG5hbWUiOwp9CgpzdWIgR2V0R1R5cGUKewogICAgbXkgJHR5cGUg
PSBzaGlmdDsKCQlteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CgkJI215ICRuYW1lID0g
Y2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CgoJCXJldHVybiAiY29uc3QgZ2NoYXIgKiIg
aWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CgoJCXJldHVybiAiZ2Zsb2F0ICIgaWYgJHR5cGUgZXEg
ImZsb2F0IjsKCgkJcmV0dXJuICJnYm9vbGVhbiAiIGlmICR0eXBlIGVxICJib29sZWFuIjsKCgkJ
cmV0dXJuICJ2b2lkIiBpZiAkdHlwZSBlcSAidm9pZCI7CgogICAgcmV0dXJuICIkbmFtZSAqIjsK
fQoKIyBHZW5lcmF0ZSBoZWFkZXIgYW5kIGltcGwKc3ViIEdlbmVyYXRlCnsKICAgIG15ICRvYmpl
Y3QgPSBzaGlmdDsKICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwoKICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gJGRhdGFOb2RlLT5uYW1lOwogICAgbXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgk
aW50ZXJmYWNlTmFtZSk7CgogICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1wbCBoZWFkZXIgdGVtcGxh
dGUKICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CgkJcHVzaChA
Y1ByZWZpeCwgIlxuIik7CgogICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xuXG4iKTsK
CiAgICAjIEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKICAgIEBoUHJlZml4ID0gc3Bs
aXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CgkJI3B1c2goQGhQcmVmaXgsICJcbiIpOwoKICAg
ICMgSGVhZGVyIGd1YXJkCgkJbXkgJGd1YXJkID0gIl9fIiAuICRjbGFzc05hbWUgLiAiX0hfXyI7
CgogICAgcHVzaChAaEJvZHksICIjaWZuZGVmICRndWFyZFxuIik7CiAgICBwdXNoKEBoQm9keSwg
IiNkZWZpbmUgJGd1YXJkXG5cbiIpOwogICAgcHVzaChAaEJvZHksICJHX0JFR0lOX0RFQ0xTXG5c
biIpOwoKCQlmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsK
CQkJI215ICRmdW5jdGlvbk5hbWUgPSBkZWNhbWVsaXplKCRjbGFzc05hbWUpIC4gIl8iIC4gZGVj
YW1lbGl6ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CgkJCQlteSAkZnVuY3Rpb25OYW1l
ID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpIC4gIl8iIC4gZGVjYW1lbGl6
ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CgkJCQlteSAkcmV0dXJuVHlwZSA9IEdldEdU
eXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKCgkJCQlteSAkZnVuY3Rpb25TaWcgPSAi
JGNsYXNzTmFtZSAqdGhpeiI7CgoJCQkJZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5w
YXJhbWV0ZXJzfSkgewoJCQkJCQlteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtLT50eXBl
KTsKCQkJCQkJbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKCiAgICAg
ICAgICAgICRmdW5jdGlvblNpZyAuPSAiLCAkcGFyYW1UeXBlJHBhcmFtTmFtZSI7CgkJCQl9Cgog
ICAgCQlwdXNoKEBoQm9keSwgIiRyZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25T
aWcpO1xuXG4iKTsKCgkJCQlwdXNoKEBjQm9keSwgIiRyZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1l
ICgkZnVuY3Rpb25TaWcpXG57XG4iKTsKCgkJCQlwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9p
Zl9mYWlsICh0aGl6KTtcbiIpOwoJCSAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24t
PnBhcmFtZXRlcnN9KSB7CgkJCQkJbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5u
YW1lKTsKCQkJCQlteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwoJCQkJCW15ICRwYXJh
bVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFt
SURMVHlwZSk7CgkJCQkJaWYgKCEkcGFyYW1UeXBlSXNQcmltaXRpdmUpIHsKCQkJCQkJcHVzaChA
Y0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKCQkJCQl9CgkJ
CQl9CgoJCQkJcHVzaChAY0JvZHksICJcbiIpOwoKCQkJCXB1c2goQGNCb2R5LCAifVxuXG4iKTsK
CQl9CgoJCSMgUHJvcGVydGllcwoJCWZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUt
PmF0dHJpYnV0ZXN9KSB7CgkJCQlteSAkZnVuY3Rpb25OYW1lUHJlZml4ID0gImdkb21fIiAuIGRl
Y2FtZWxpemUoJGludGVyZmFjZU5hbWUpOwoJCQkJbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6ZSgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpOwoJCQkJbXkgJHR5cGUgPSBHZXRHVHlwZSgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwoJCQkJbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05h
bWUgKnRoaXoiOwoKCQkJCSNwdXNoKEBoQm9keSwgIiR0eXBlXG4kZnVuY3Rpb25OYW1lUHJlZml4
IiAuICJfZ2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKCgkJCQkjcHVz
aChAaEJvZHksICJ2b2lkXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfc2V0XyIgLiAiJHByb3BO
YW1lICgkZnVuY3Rpb25TaWcsICR0eXBlIiAuICJ2YWx1ZSk7XG5cbiIpOwoJCX0KCgogICAgcHVz
aChAY0JvZHksICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xuXG4iKTsKCiAgICBwdXNoKEBoQm9keSwg
IkdfRU5EX0RFQ0xTXG5cbiIpOwogICAgcHVzaChAaEJvZHksICIjZW5kaWYgLyogJGd1YXJkICov
XG4iKTsKfQoKIyBJbnRlcm5hbCBoZWxwZXIKc3ViIFdyaXRlRGF0YQp7CiAgICBteSAoJG9iamVj
dCwgJG5hbWUpID0gQF87CgogICAgbXkgJGhlYWRlckZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAu
ICRuYW1lIC4gIi5oIjsKCiAgICAjIFdyaXRlIHB1YmxpYyBoZWFkZXIuCiAgICBvcGVuKEhFQURF
UiwgIj4kaGVhZGVyRmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGVhZGVy
RmlsZU5hbWUiOwoKICAgIHByaW50IEhFQURFUiBAaFByZWZpeDsKICAgIHByaW50IEhFQURFUiAi
XG4iOwoJCXByaW50IEhFQURFUiBAaEJvZHk7CgogICAgY2xvc2UoSEVBREVSKTsKCgogICAgbXkg
JGltcGxGaWxlTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuY3BwIjsKCgkJIyBXcml0
ZSB0aGUgaW1wbGVtZW50YXRpb24gc291cmNlcwoJCW9wZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1l
Iikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGltcGxGaWxlTmFtZSI7CgoJCXByaW50IElN
UEwgQGNQcmVmaXg7CgkJI3ByaW50IElNUEwgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNv
cnQga2V5cyglaW1wbEluY2x1ZGVzKTsKCQkjcHJpbnQgSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJ
bmNsdWRlcyk7CgkJcHJpbnQgSU1QTCBAY0JvZHk7CgoJCWNsb3NlKElNUEwpOwoKICAgIEBoUHJl
Zml4ID0gKCk7CiAgICBAaEJvZHkgPSAoKTsKCiAgICBAY1ByZWZpeCA9ICgpOwogICAgQGNCb2R5
ID0gKCk7Cn0KCjE7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22894</attachid>
            <date>2008-08-20 07:19:51 -0700</date>
            <delta_ts>2008-08-20 16:05:50 -0700</delta_ts>
            <desc>adds javascript-execution and eval to DOM model</desc>
            <filename>f</filename>
            <type>text/plain</type>
            <size>45691</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IGphdmFzY3JpcHRjb3JlL2phdmFzY3JpcHRjb3JlX3R5cGVzLmMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gamF2YXNjcmlwdGNvcmUvamF2YXNjcmlwdGNvcmVfdHlwZXMuYwkocmV2aXNpb24gNzApCisr
KyBqYXZhc2NyaXB0Y29yZS9qYXZhc2NyaXB0Y29yZV90eXBlcy5jCSh3b3JraW5nIGNvcHkpCkBA
IC0yMSw2ICsyMSwzNCBAQAogCiAvKiogZnVuY3Rpb25zIHRvIHdyYXAgQyBvYmplY3RzIC0+IFB5
dGhvbiBPYmplY3RzICovCiAKK1B5T2JqZWN0KiB3cmFwX0pTQ29udGV4dFJlZihKU0NvbnRleHRS
ZWYganNnbG9iYWxyZWYpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworICAgIGlmIChqc2dsb2Jh
bHJlZiA9PSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRiAoUHlfTm9uZSk7CisgICAgICAgIHJl
dHVybiAoUHlfTm9uZSk7CisgICAgfQorCisgICAgcmV0ID0gUHlDT2JqZWN0X0Zyb21Wb2lkUHRy
QW5kRGVzYyAoKHZvaWQgKikganNnbG9iYWxyZWYsIChjaGFyICopCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIkpTQ29udGV4dFJlZiIsIE5VTEwpOworICAgIHJldHVy
biAocmV0KTsKK30KKworUHlPYmplY3QqIHdyYXBfR2pzVmFsdWUoR2pzVmFsdWUgKnZhbHVlKQor
eworICAgIFB5T2JqZWN0ICpyZXQ7CisKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAg
ICBQeV9JTkNSRUYgKFB5X05vbmUpOworICAgICAgICByZXR1cm4gKFB5X05vbmUpOworICAgIH0K
KworICAgIHJldCA9IFB5Q09iamVjdF9Gcm9tVm9pZFB0ckFuZERlc2MgKCh2b2lkICopIHZhbHVl
LCAoY2hhciAqKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHanNW
YWx1ZSIsIE5VTEwpOworICAgIHJldHVybiAocmV0KTsKK30KKwogUHlPYmplY3QqIHdyYXBfSlNH
bG9iYWxDb250ZXh0UmVmKEpTR2xvYmFsQ29udGV4dFJlZiBqc2dsb2JhbHJlZikKIHsKICAgICBQ
eU9iamVjdCAqcmV0OwpJbmRleDogamF2YXNjcmlwdGNvcmUvamF2YXNjcmlwdGNvcmVfdHlwZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBqYXZhc2NyaXB0Y29yZS9qYXZhc2NyaXB0Y29yZV90eXBlcy5oCShy
ZXZpc2lvbiA3MCkKKysrIGphdmFzY3JpcHRjb3JlL2phdmFzY3JpcHRjb3JlX3R5cGVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTYsOCArNiwzMCBAQAogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNDb250ZXh0UmVmLmg+CiAKKyNpbmNsdWRlICJnanMuaCIKKwogdHlwZWRlZiBzdHJ1Y3Qgewog
ICAgIFB5T2JqZWN0X0hFQUQKKyAgICBHanNWYWx1ZSAqb2JqOworfSBHanNWYWx1ZVJlZl9vYmpl
Y3Q7CisKKy8qIEZ1bmN0aW9ucyB0byB3cmFwIEphdmFTY3JpcHRDb3JlIFB5dGhvbiBvYmplY3Rz
IC0+IEphdmFTY3JpcHRDb3JlIEMgb2JqZWN0cyAqLworI2RlZmluZSBHanNWYWx1ZV9nZXQodikg
KCgodikgPT0gUHlfTm9uZSkgPyBOVUxMIDogKCgoR2pzVmFsdWVfb2JqZWN0ICopKFB5T2JqZWN0
X0dldEF0dHIodixQeVN0cmluZ19Gcm9tU3RyaW5nKCJfbyIpKSkpLT5vYmopKTsKKworUHlPYmpl
Y3QqIHdyYXBfR2pzVmFsdWUoR2pzVmFsdWUgKnZhbHVlKTsKKwordHlwZWRlZiBzdHJ1Y3Qgewor
ICAgIFB5T2JqZWN0X0hFQUQKKyAgICBKU0NvbnRleHRSZWYgb2JqOworfSBKU0NvbnRleHRSZWZf
b2JqZWN0OworCisvKiBGdW5jdGlvbnMgdG8gd3JhcCBKYXZhU2NyaXB0Q29yZSBQeXRob24gb2Jq
ZWN0cyAtPiBKYXZhU2NyaXB0Q29yZSBDIG9iamVjdHMgKi8KKyNkZWZpbmUgSlNDb250ZXh0UmVm
X2dldCh2KSAoKCh2KSA9PSBQeV9Ob25lKSA/IE5VTEwgOiAoKChKU0NvbnRleHRSZWZfb2JqZWN0
ICopKFB5T2JqZWN0X0dldEF0dHIodixQeVN0cmluZ19Gcm9tU3RyaW5nKCJfbyIpKSkpLT5vYmop
KTsKKworUHlPYmplY3QqIHdyYXBfSlNDb250ZXh0UmVmKEpTQ29udGV4dFJlZiBqc2NvbnRleHRy
ZWYpOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAogICAgIEpTR2xvYmFs
Q29udGV4dFJlZiBvYmo7CiB9IEpTR2xvYmFsQ29udGV4dFJlZl9vYmplY3Q7CiAKSW5kZXg6IHdl
YmtpdC5vdmVycmlkZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB3ZWJraXQub3ZlcnJpZGUJKHJldmlzaW9uIDcw
KQorKysgd2Via2l0Lm92ZXJyaWRlCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsMyArMTE2LDgxIEBA
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxpbWl0KTsKICAgICByZXR1cm4gX2hlbHBlcl93cmFwX2dvYmplY3RfZ2xp
c3QgKGxpc3QpOwogfQorJSUKK292ZXJyaWRlIGdqc192YWx1ZV9ldmFsCitzdGF0aWMgUHlPYmpl
Y3QgKgorX3dyYXBfZ2pzX3ZhbHVlX2V2YWwoUHlHT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJn
cywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ICJz
Y3JpcHQiLCBOVUxMIH07CisgICAgY29uc3QgY2hhciAqc2NyaXB0OworICAgIGdjaGFyICpleGNl
cHRpb24gPSBOVUxMOworCUpTVmFsdWVSZWYgZXY7CisgICAgR2pzVmFsdWUgKnJldDsKKyAgICBH
anNWYWx1ZSAqb2JqOworICAgIEpTQ29udGV4dFJlZiBjdHg7CisgICAgb2JqID0gR0pTX1ZBTFVF
KHNlbGYtPm9iaik7CisJY3R4ID0gZ2pzX2dldF9jb250ZXh0KG9iaik7CisKKyAgICBpZiAoIVB5
QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsInM6R2pzVmFsdWUuZXZhbCIs
IGt3bGlzdCwgJnNjcmlwdCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisJLypwcmludGYoImV2
YWwgJXNcbiIsIHNjcmlwdCk7Ki8KKworICAgIGV2ID0gZ2pzX3NjcmlwdF9ldmFsKGN0eCwgc2Ny
aXB0LCAmZXhjZXB0aW9uKTsKKworCS8qcHJpbnRmKCJldmFsJ2QgJXNcbiIsIHNjcmlwdCk7Ki8K
KworCWlmIChleGNlcHRpb24pCisJeworCQkvKnByaW50ZigiZXhjZXB0aW9uICVzXG4iLCBleGNl
cHRpb24pOyovCisJCVB5RXJyX1NldFN0cmluZygKKwkJCVB5RXhjX1J1bnRpbWVFcnJvciwgLyog
VE9ETzogYmV0dGVyIGV4Y2VwdGlvbiAqLworCQkJZXhjZXB0aW9uKTsKKwkJZ19mcmVlKGV4Y2Vw
dGlvbik7CisJCXJldHVybiBOVUxMOworCX0KKworCWlmIChldiA9PSBOVUxMKQorCQlyZXR1cm4g
TlVMTDsKKwkKKwlyZXQgPSBnanNfdmFsdWVfbmV3KGN0eCwgZXYpOworCisgICAgLyogcHlnb2Jq
ZWN0X25ldyBoYW5kbGVzIE5VTEwgY2hlY2tpbmcgKi8KKyAgICByZXR1cm4gcHlnb2JqZWN0X25l
dygoR09iamVjdCAqKXJldCk7Cit9CislJQorb3ZlcnJpZGUgZ2pzX3ZhbHVlX2V4ZWN1dGUKK3N0
YXRpYyBQeU9iamVjdCAqCitfd3JhcF9nanNfdmFsdWVfZXhlY3V0ZShQeUdPYmplY3QgKnNlbGYs
IFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIHN0YXRpYyBjaGFyICpr
d2xpc3RbXSA9IHsgInNjcmlwdCIsIE5VTEwgfTsKKyAgICBjb25zdCBjaGFyICpzY3JpcHQ7Cisg
ICAgZ2NoYXIgKmV4Y2VwdGlvbiA9IE5VTEw7CisgICAgR2pzVmFsdWUgKnJldDsKKworICAgIGlm
ICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywiczpHanNWYWx1ZS5l
eGVjdXRlIiwga3dsaXN0LCAmc2NyaXB0KSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKwkvKnBy
aW50ZigiZXhlY3V0ZSAlc1xuIiwgc2NyaXB0KTsqLworCisgICAgcmV0ID0gZ2pzX3ZhbHVlX2V4
ZWN1dGUoR0pTX1ZBTFVFKHNlbGYtPm9iaiksIHNjcmlwdCwgJmV4Y2VwdGlvbik7CisKKwkvKnBy
aW50ZigiZXhlY3V0ZWQgJXNcbiIsIHNjcmlwdCk7Ki8KKworCWlmIChleGNlcHRpb24pCisJewor
CQkvKnByaW50ZigiZXhjZXB0aW9uXG4iKTsqLworCQkvKnByaW50ZigiZXhjZXB0aW9uICVzXG4i
LCBleGNlcHRpb24pOyovCisJCVB5RXJyX1NldFN0cmluZygKKwkJCVB5RXhjX1J1bnRpbWVFcnJv
ciwgLyogVE9ETzogYmV0dGVyIGV4Y2VwdGlvbiAqLworCQkJZXhjZXB0aW9uKTsKKwkJZ19mcmVl
KGV4Y2VwdGlvbik7CisJCXJldHVybiBOVUxMOworCX0KKworCWlmIChyZXQgPT0gTlVMTCkKKwkJ
cmV0dXJuIE5VTEw7CisKKyAgICAvKiBweWdvYmplY3RfbmV3IGhhbmRsZXMgTlVMTCBjaGVja2lu
ZyAqLworICAgIHJldHVybiBweWdvYmplY3RfbmV3KChHT2JqZWN0ICopcmV0KTsKK30KSW5kZXg6
IGdqcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIGdqcy5jCShyZXZpc2lvbiAwKQorKysgZ2pzLmMJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTA0OSBAQAorLyoKKyBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0
aWFuIER5d2FuIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgorCisgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2
ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKworIFNlZSB0aGUgZmlsZSBDT1BZSU5HIGZvciB0aGUgZnVsbCBsaWNlbnNlIHRl
eHQuCisqLworCisjaW5jbHVkZSAiZ2pzLmgiCisKKyNpbmNsdWRlIDxnbW9kdWxlLmg+CisjaW5j
bHVkZSA8Z2xpYi9naTE4bi5oPgorCitzdHJ1Y3QgX0dqc1ZhbHVlCit7CisgICAgR09iamVjdCBw
YXJlbnRfaW5zdGFuY2U7CisKKyAgICBKU0NvbnRleHRSZWYganNfY29udGV4dDsKKyAgICBKU1Zh
bHVlUmVmIGpzX3ZhbHVlOworICAgIGdjaGFyKiBzdHJpbmc7Cit9OworCitHX0RFRklORV9UWVBF
IChHanNWYWx1ZSwgZ2pzX3ZhbHVlLCBHX1RZUEVfT0JKRUNUKQorCitzdGF0aWMgdm9pZAorZ2pz
X3ZhbHVlX2ZpbmFsaXplIChHT2JqZWN0KiBvYmplY3QpCit7CisgICAgR2pzVmFsdWUqIHZhbHVl
ID0gR0pTX1ZBTFVFIChvYmplY3QpOworCisgICAgZ19mcmVlICh2YWx1ZS0+c3RyaW5nKTsKKwor
ICAgIEdfT0JKRUNUX0NMQVNTIChnanNfdmFsdWVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUgKG9i
amVjdCk7Cit9CisKK3N0YXRpYyB2b2lkCitnanNfdmFsdWVfY2xhc3NfaW5pdCAoR2pzVmFsdWVD
bGFzcyogY2xhc3MpCit7CisgICAgR09iamVjdENsYXNzKiBnb2JqZWN0X2NsYXNzID0gR19PQkpF
Q1RfQ0xBU1MgKGNsYXNzKTsKKyAgICBnb2JqZWN0X2NsYXNzLT5maW5hbGl6ZSA9IGdqc192YWx1
ZV9maW5hbGl6ZTsKK30KKworc3RhdGljIHZvaWQKK2dqc192YWx1ZV9pbml0IChHanNWYWx1ZSog
dmFsdWUpCit7CisgICAgdmFsdWUtPmpzX2NvbnRleHQgPSBOVUxMOworICAgIHZhbHVlLT5qc192
YWx1ZSA9IE5VTEw7CisgICAgdmFsdWUtPnN0cmluZyA9IE5VTEw7Cit9CisKKy8qKgorICogZ2pz
X3ZhbHVlX25ldzoKKyAqIEBqc19jb250ZXh0OiBhICNKU0NvbnRleHRSZWYKKyAqIEBqc192YWx1
ZTogYSAjSlNWYWx1ZVJlZiBvciAlTlVMTAorICoKKyAqIENyZWF0ZXMgYSBuZXcgI0dqc1ZhbHVl
IGZvciBhICNKc1ZhbHVlUmVmLiBJZiBAanNfdmFsdWUKKyAqIGlzICVOVUxMLCB0aGUgbmV3IHZh
bHVlIHJlcHJlc2VudHMgdGhlIGdsb2JhbCBvYmplY3QuCisgKgorICogUmV0dXJuIHZhbHVlOiBh
IG5ldyAjR2pzVmFsdWUKKyAqKi8KK0dqc1ZhbHVlKgorZ2pzX3ZhbHVlX25ldyAoSlNDb250ZXh0
UmVmIGpzX2NvbnRleHQsCisgICAgICAgICAgICAgICBKU1ZhbHVlUmVmICAganNfdmFsdWUpCit7
CisgICAgR2pzVmFsdWUqIHZhbHVlOworCisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGpzX2Nv
bnRleHQsIE5VTEwpOworCisgICAgdmFsdWUgPSBnX29iamVjdF9uZXcgKEdKU19UWVBFX1ZBTFVF
LCBOVUxMKTsKKyAgICB2YWx1ZS0+anNfY29udGV4dCA9IGpzX2NvbnRleHQ7CisgICAgdmFsdWUt
PmpzX3ZhbHVlID0ganNfdmFsdWUgPyBqc192YWx1ZSA6IEpTQ29udGV4dEdldEdsb2JhbE9iamVj
dCAoanNfY29udGV4dCk7CisgICAgcmV0dXJuIHZhbHVlOworfQorCisvKioKKyAqIGdqc192YWx1
ZV9pc192YWxpZDoKKyAqIEB2YWx1ZTogYSAjR2pzVmFsdWUKKyAqCisgKiBEZXRlcm1pbmVzIHdo
ZXRoZXIgdGhlIHZhbHVlIGlzIHZhbGlkLCB3aXRoIHJlZ2FyZCB0bworICogaXRzIGludGVybmFs
IHN0YXRlLiBUaGlzIGlzIHByaW1hcmlseSB1c2VmdWwgZm9yIEFQSQorICogdG8gZW5zdXJlIHRo
YXQgdGhlIHZhbHVlIGlzIGluIGEgZGVmaW5lZCBjb25kaXRpb24uCisgKgorICogUmV0dXJuIHZh
bHVlOiAlVFJVRSBpZiB2YWx1ZSBpcyB2YWxpZAorICoqLworZ2Jvb2xlYW4KK2dqc192YWx1ZV9p
c192YWxpZCAoR2pzVmFsdWUqIHZhbHVlKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChH
SlNfSVNfVkFMVUUgKHZhbHVlKSwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh2
YWx1ZS0+anNfY29udGV4dCwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh2YWx1
ZS0+anNfdmFsdWUsIEZBTFNFKTsKKworICAgIHJldHVybiBUUlVFOworfQorCisvKioKKyAqIGdq
c192YWx1ZV9pc19vYmplY3Q6CisgKiBAdmFsdWU6IGEgI0dqc1ZhbHVlCisgKgorICogRGV0ZXJt
aW5lcyB3aGV0aGVyIHRoZSB2YWx1ZSBpcyBhbiBvYmplY3QuCisgKgorICogUmV0dXJuIHZhbHVl
OiAlVFJVRSBpZiB2YWx1ZSBpcyBhbiBvYmplY3QKKyAqKi8KK2dib29sZWFuCitnanNfdmFsdWVf
aXNfb2JqZWN0IChHanNWYWx1ZSogdmFsdWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg
KGdqc192YWx1ZV9pc192YWxpZCAodmFsdWUpLCBGQUxTRSk7CisKKyAgICByZXR1cm4gSlNWYWx1
ZUlzT2JqZWN0ICh2YWx1ZS0+anNfY29udGV4dCwgdmFsdWUtPmpzX3ZhbHVlKSA9PSB0cnVlOwor
fQorCisvKioKKyAqIGdqc192YWx1ZV9oYXNfYXR0cmlidXRlOgorICogQHZhbHVlOiBhICNHanNW
YWx1ZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIGEgYXR0cmlidXRlCisgKgorICogRGV0ZXJtaW5l
cyB3aGV0aGVyIHRoZSB2YWx1ZSBoYXMgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUuCisgKgorICog
VGhpcyBjYW4gb25seSBiZSB1c2VkIG9uIG9iamVjdCB2YWx1ZXMuCisgKgorICogUmV0dXJuIHZh
bHVlOiAlVFJVRSBpZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZSBleGlzdHMKKyAqKi8KK2dib29s
ZWFuCitnanNfdmFsdWVfaGFzX2F0dHJpYnV0ZSAoR2pzVmFsdWUqICAgIHZhbHVlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBuYW1lKQoreworICAgIEpTT2JqZWN0UmVm
IGpzX29iamVjdDsKKyAgICBKU1N0cmluZ1JlZiBqc19uYW1lOworICAgIGdib29sZWFuIHJlc3Vs
dDsKKworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChnanNfdmFsdWVfaXNfb2JqZWN0ICh2YWx1
ZSksIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAobmFtZSwgRkFMU0UpOworCisg
ICAganNfb2JqZWN0ID0gSlNWYWx1ZVRvT2JqZWN0ICh2YWx1ZS0+anNfY29udGV4dCwgdmFsdWUt
PmpzX3ZhbHVlLCBOVUxMKTsKKyAgICBqc19uYW1lID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcgKG5hbWUpOworICAgIHJlc3VsdCA9IEpTT2JqZWN0SGFzUHJvcGVydHkgKHZhbHVlLT5q
c19jb250ZXh0LCBqc19vYmplY3QsIGpzX25hbWUpID09IHRydWU7CisgICAgSlNTdHJpbmdSZWxl
YXNlIChqc19uYW1lKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvKioKKyAqIGdqc192YWx1
ZV9nZXRfYXR0cmlidXRlOgorICogQHZhbHVlOiBhICNHanNWYWx1ZQorICogQG5hbWU6IHRoZSBu
YW1lIG9mIGEgYXR0cmlidXRlCisgKgorICogUmV0cmlldmVzIHRoZSBzcGVjaWZpZWQgYXR0cmli
dXRlLgorICoKKyAqIFRoaXMgY2FuIG9ubHkgYmUgdXNlZCBvbiBvYmplY3QgdmFsdWVzLgorICoK
KyAqIFJldHVybiB2YWx1ZTogYSBuZXcgI0dqc1ZhbHVlCisgKiovCitHanNWYWx1ZSoKK2dqc192
YWx1ZV9nZXRfYXR0cmlidXRlIChHanNWYWx1ZSogICAgdmFsdWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIqIG5hbWUpCit7CisgICAgSlNPYmplY3RSZWYganNfb2JqZWN0
OworICAgIEpTU3RyaW5nUmVmIGpzX25hbWU7CisgICAgSlNWYWx1ZVJlZiBqc192YWx1ZTsKKwor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChnanNfdmFsdWVfaGFzX2F0dHJpYnV0ZSAodmFsdWUs
IG5hbWUpLCBOVUxMKTsKKworICAgIGpzX29iamVjdCA9IEpTVmFsdWVUb09iamVjdCAodmFsdWUt
PmpzX2NvbnRleHQsIHZhbHVlLT5qc192YWx1ZSwgTlVMTCk7CisgICAganNfbmFtZSA9IEpTU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nIChuYW1lKTsKKyAgICBqc192YWx1ZSA9IEpTT2JqZWN0
R2V0UHJvcGVydHkgKHZhbHVlLT5qc19jb250ZXh0LCBqc19vYmplY3QsIGpzX25hbWUsIE5VTEwp
OworICAgIEpTU3RyaW5nUmVsZWFzZSAoanNfbmFtZSk7CisKKyAgICByZXR1cm4gZ2pzX3ZhbHVl
X25ldyAodmFsdWUtPmpzX2NvbnRleHQsIGpzX3ZhbHVlKTsKK30KKworLyoqCisgKiBnanNfdmFs
dWVfZ2V0X3N0cmluZzoKKyAqIEB2YWx1ZTogYSAjR2pzVmFsdWUKKyAqCisgKiBSZXRyaWV2ZXMg
dGhlIHZhbHVlIGluIHRoZSBmb3JtIG9mIGEgc3RyaW5nLgorICoKKyAqIFRoaXMgY2FuIG9ubHkg
YmUgdXNlZCBvbiBvYmplY3QgdmFsdWVzLgorICoKKyAqIE5vdGU6IFRoZSBzdHJpbmcgd29uJ3Qg
cmVmbGVjdCBjaGFuZ2VzIHRvIHRoZSB2YWx1ZS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSB2
YWx1ZSBhcyBhIHN0cmluZworICoqLworY29uc3QgZ2NoYXIqCitnanNfdmFsdWVfZ2V0X3N0cmlu
ZyAoR2pzVmFsdWUqIHZhbHVlKQoreworICAgIEpTU3RyaW5nUmVmIGpzX3N0cmluZzsKKworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChnanNfdmFsdWVfaXNfdmFsaWQgKHZhbHVlKSwgTlVMTCk7
CisKKyAgICBpZiAodmFsdWUtPnN0cmluZykKKyAgICAgICAgcmV0dXJuIHZhbHVlLT5zdHJpbmc7
CisKKyAgICBqc19zdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5ICh2YWx1ZS0+anNfY29udGV4
dCwgdmFsdWUtPmpzX3ZhbHVlLCBOVUxMKTsKKyAgICB2YWx1ZS0+c3RyaW5nID0gZ2pzX3N0cmlu
Z191dGY4IChqc19zdHJpbmcpOworICAgIEpTU3RyaW5nUmVsZWFzZSAoanNfc3RyaW5nKTsKKyAg
ICByZXR1cm4gdmFsdWUtPnN0cmluZzsKK30KKwordm9pZAorZ2pzX3ZhbHVlX3dlYWtfbm90aWZ5
X2NiIChHanNWYWx1ZSogYXR0cmlidXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBHanNW
YWx1ZSogdmFsdWUpCit7CisgICAgZ19vYmplY3RfdW5yZWYgKGF0dHJpYnV0ZSk7Cit9CisKKy8q
KgorICogZ2pzX3ZhbHVlX2dldF9hdHRyaWJ1dGVfc3RyaW5nOgorICogQHZhbHVlOiBhICNHanNW
YWx1ZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIGEgYXR0cmlidXRlCisgKgorICogUmV0cmlldmVz
IHRoZSBhdHRyaWJ1dGUgb2YgdGhlIHZhbHVlIGluIHRoZSBmb3JtIG9mIGEgc3RyaW5nLgorICoK
KyAqIFRoaXMgY2FuIG9ubHkgYmUgdXNlZCBvbiBvYmplY3QgdmFsdWVzLgorICoKKyAqIE5vdGU6
IFRoZSBzdHJpbmcgd29uJ3QgcmVmbGVjdCBjaGFuZ2VzIHRvIHRoZSB2YWx1ZS4KKyAqCisgKiBS
ZXR1cm4gdmFsdWU6IHRoZSB2YWx1ZSBhcyBhIHN0cmluZworICoqLworY29uc3QgZ2NoYXIqCitn
anNfdmFsdWVfZ2V0X2F0dHJpYnV0ZV9zdHJpbmcgKEdqc1ZhbHVlKiAgICB2YWx1ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIG5hbWUpCit7CisgICAgR2pz
VmFsdWUqIGF0dHJpYnV0ZTsKKworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChnanNfdmFsdWVf
aGFzX2F0dHJpYnV0ZSAodmFsdWUsIG5hbWUpLCBOVUxMKTsKKworICAgIGF0dHJpYnV0ZSA9IGdq
c192YWx1ZV9nZXRfYXR0cmlidXRlICh2YWx1ZSwgbmFtZSk7CisgICAgZ19vYmplY3Rfd2Vha19y
ZWYgKEdfT0JKRUNUICh2YWx1ZSksCisgICAgICAgIChHV2Vha05vdGlmeSlnanNfdmFsdWVfd2Vh
a19ub3RpZnlfY2IsIGF0dHJpYnV0ZSk7CisgICAgcmV0dXJuIGdqc192YWx1ZV9nZXRfc3RyaW5n
IChhdHRyaWJ1dGUpOworfQorCisvKioKKyAqIGdqc192YWx1ZV9nZXRfbnRoX2F0dHJpYnV0ZToK
KyAqIEB2YWx1ZTogYSAjR2pzVmFsdWUKKyAqIEBuOiBhbiBpbmRleAorICoKKyAqIFJldHJpZXZl
cyB0aGUgaW5kaWNlZCBhdHRyaWJ1dGUgYXQgdGhlIHNwZWNpZmllZAorICogcG9zaXRpb24uIFRo
aXMgaXMgcGFydGljdWxhcmx5IGZhc3RlciB0aGFuIGxvb2tpbmcKKyAqIHVwIGF0dHJpYnV0ZXMg
YnkgbmFtZS4KKyAqCisgKiBUaGlzIGNhbiBvbmx5IGJlIHVzZWQgb24gb2JqZWN0IHZhbHVlcy4K
KyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgbmV3ICNHanNWYWx1ZSwgb3IgJU5VTEwKKyAqKi8KK0dq
c1ZhbHVlKgorZ2pzX3ZhbHVlX2dldF9udGhfYXR0cmlidXRlIChHanNWYWx1ZSogdmFsdWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICBuKQoreworICAgIEpTT2JqZWN0
UmVmIGpzX29iamVjdDsKKyAgICBKU1ZhbHVlUmVmIGpzX3ZhbHVlOworCisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwgKGdqc192YWx1ZV9pc19vYmplY3QgKHZhbHVlKSwgTlVMTCk7CisKKyAgICBq
c19vYmplY3QgPSBKU1ZhbHVlVG9PYmplY3QgKHZhbHVlLT5qc19jb250ZXh0LCB2YWx1ZS0+anNf
dmFsdWUsIE5VTEwpOworICAgIGpzX3ZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgg
KHZhbHVlLT5qc19jb250ZXh0LCBqc19vYmplY3QsIG4sIE5VTEwpOworICAgIGlmIChKU1ZhbHVl
SXNVbmRlZmluZWQgKHZhbHVlLT5qc19jb250ZXh0LCBqc192YWx1ZSkpCisgICAgICAgIHJldHVy
biBOVUxMOworCisgICAgcmV0dXJuIGdqc192YWx1ZV9uZXcgKHZhbHVlLT5qc19jb250ZXh0LCBq
c192YWx1ZSk7Cit9CisKKy8qKgorICogZ2pzX3ZhbHVlX2ZvcmVhY2g6CisgKiBAdmFsdWU6IGEg
I0dqc1ZhbHVlCisgKiBAY2FsbGJhY2s6IGEgY2FsbGJhY2sKKyAqIEB1c2VyX2RhdGE6IHVzZXIg
ZGF0YQorICoKKyAqIENhbGxzIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2sgZm9yIGVhY2ggaW5kaWNl
ZCBhdHRyaWJ1dGUuCisgKiBUaGlzIGlzIGEgcGFydGljdWxhcmx5IGZhc3Qgd2F5IG9mIGxvb3Bp
bmcgdGhyb3VnaCB0aGUKKyAqIGVsZW1lbnRzIG9mIGFuIGFycmF5LgorICoKKyAqIFRoaXMgY2Fu
IG9ubHkgYmUgdXNlZCBvbiBvYmplY3QgdmFsdWVzLgorICoqLwordm9pZAorZ2pzX3ZhbHVlX2Zv
cmVhY2ggKEdqc1ZhbHVlKiAgIHZhbHVlLAorICAgICAgICAgICAgICAgICAgIEdqc0NhbGxiYWNr
IGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgIHVzZXJfZGF0YSkKK3sK
KyAgICBndWludCBpOworICAgIEdqc1ZhbHVlKiBhdHRyaWJ1dGU7CisKKyAgICBnX3JldHVybl9p
Zl9mYWlsIChnanNfdmFsdWVfaXNfb2JqZWN0ICh2YWx1ZSkpOworCisgICAgaSA9IDA7CisgICAg
ZG8KKyAgICB7CisgICAgICAgIGF0dHJpYnV0ZSA9IGdqc192YWx1ZV9nZXRfbnRoX2F0dHJpYnV0
ZSAodmFsdWUsIGkpOworICAgICAgICBpZiAoYXR0cmlidXRlKQorICAgICAgICB7CisgICAgICAg
ICAgICBjYWxsYmFjayAoYXR0cmlidXRlLCB1c2VyX2RhdGEpOworICAgICAgICAgICAgZ19vYmpl
Y3RfdW5yZWYgKGF0dHJpYnV0ZSk7CisgICAgICAgIH0KKyAgICAgICAgaSsrOworICAgIH0KKyAg
ICB3aGlsZSAoYXR0cmlidXRlKTsKK30KKworLyoqCisgKiBnanNfdmFsdWVfZm9yYWxsOgorICog
QHZhbHVlOiBhICNHanNWYWx1ZQorICogQGNhbGxiYWNrOiBhIGNhbGxiYWNrCisgKiBAdXNlcl9k
YXRhOiB1c2VyIGRhdGEKKyAqCisgKiBDYWxscyB0aGUgc3BlY2lmaWVkIGNhbGxiYWNrIGZvciBl
YWNoIGF0dHJpYnV0ZS4KKyAqCisgKiBUaGlzIGNhbiBvbmx5IGJlIHVzZWQgb24gb2JqZWN0IHZh
bHVlcy4KKyAqKi8KK3ZvaWQKK2dqc192YWx1ZV9mb3JhbGwgKEdqc1ZhbHVlKiAgIHZhbHVlLAor
ICAgICAgICAgICAgICAgICAgR2pzQ2FsbGJhY2sgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAg
ICBncG9pbnRlciAgICB1c2VyX2RhdGEpCit7CisgICAgSlNPYmplY3RSZWYganNfb2JqZWN0Owor
ICAgIEpTUHJvcGVydHlOYW1lQXJyYXlSZWYganNfcHJvcGVydGllczsKKyAgICBzaXplX3Qgbl9w
cm9wZXJ0aWVzOworICAgIGd1aW50IGk7CisgICAgSlNTdHJpbmdSZWYganNfcHJvcGVydHk7Cisg
ICAgZ2NoYXIqIHByb3BlcnR5OworICAgIEdqc1ZhbHVlKiBhdHRyaWJ1dGU7CisKKyAgICBnX3Jl
dHVybl9pZl9mYWlsIChnanNfdmFsdWVfaXNfb2JqZWN0ICh2YWx1ZSkpOworCisgICAganNfb2Jq
ZWN0ID0gSlNWYWx1ZVRvT2JqZWN0ICh2YWx1ZS0+anNfY29udGV4dCwgdmFsdWUtPmpzX3ZhbHVl
LCBOVUxMKTsKKyAgICBqc19wcm9wZXJ0aWVzID0gSlNPYmplY3RDb3B5UHJvcGVydHlOYW1lcyAo
dmFsdWUtPmpzX2NvbnRleHQsIGpzX29iamVjdCk7CisgICAgbl9wcm9wZXJ0aWVzID0gSlNQcm9w
ZXJ0eU5hbWVBcnJheUdldENvdW50IChqc19wcm9wZXJ0aWVzKTsKKyAgICBmb3IgKGkgPSAwOyBp
IDwgbl9wcm9wZXJ0aWVzOyBpKyspCisgICAgeworICAgICAgICBqc19wcm9wZXJ0eSA9IEpTUHJv
cGVydHlOYW1lQXJyYXlHZXROYW1lQXRJbmRleCAoanNfcHJvcGVydGllcywgaSk7CisgICAgICAg
IHByb3BlcnR5ID0gZ2pzX3N0cmluZ191dGY4IChqc19wcm9wZXJ0eSk7CisgICAgICAgIGlmIChn
anNfdmFsdWVfaGFzX2F0dHJpYnV0ZSAodmFsdWUsIHByb3BlcnR5KSkKKyAgICAgICAgeworICAg
ICAgICAgICAgYXR0cmlidXRlID0gZ2pzX3ZhbHVlX2dldF9hdHRyaWJ1dGUgKHZhbHVlLCBwcm9w
ZXJ0eSk7CisgICAgICAgICAgICBjYWxsYmFjayAoYXR0cmlidXRlLCB1c2VyX2RhdGEpOworICAg
ICAgICAgICAgZ19vYmplY3RfdW5yZWYgKGF0dHJpYnV0ZSk7CisgICAgICAgIH0KKyAgICAgICAg
Z19mcmVlIChwcm9wZXJ0eSk7CisgICAgICAgIEpTU3RyaW5nUmVsZWFzZSAoanNfcHJvcGVydHkp
OworICAgIH0KKyAgICBKU1Byb3BlcnR5TmFtZUFycmF5UmVsZWFzZSAoanNfcHJvcGVydGllcyk7
Cit9CisKKy8qKgorICogZ2pzX3ZhbHVlX2dldF9ieV9uYW1lOgorICogQHZhbHVlOiBhICNHanNW
YWx1ZQorICogQG5hbWU6IHRoZSBuYW1lIG9mIGFuIG9iamVjdAorICoKKyAqIFJldHJpZXZlcyBh
IHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIG5hbWUsCisgKiBmb3IgZXhhbXBsZSAiZG9jdW1lbnQi
IG9yICJkb2N1bWVudC5ib2R5Ii4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSB2YWx1ZSwgb3Ig
JU5VTEwKKyAqKi8KK0dqc1ZhbHVlKgorZ2pzX3ZhbHVlX2dldF9ieV9uYW1lIChHanNWYWx1ZSog
ICAgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBuYW1lKQorewor
ICAgIGdjaGFyKiBzY3JpcHQ7CisgICAgR2pzVmFsdWUqIGVsZW1lbnRzOworCisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwgKGdqc192YWx1ZV9pc192YWxpZCAodmFsdWUpLCBOVUxMKTsKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbCAobmFtZSwgTlVMTCk7CisKKyAgICBzY3JpcHQgPSBnX3N0cmR1
cF9wcmludGYgKCJyZXR1cm4gJXM7IiwgbmFtZSk7CisgICAgZWxlbWVudHMgPSBnanNfdmFsdWVf
ZXhlY3V0ZSAodmFsdWUsIHNjcmlwdCwgTlVMTCk7CisgICAgZ19mcmVlIChzY3JpcHQpOworICAg
IHJldHVybiBlbGVtZW50czsKK30KKworLyoqCisgKiBnanNfdmFsdWVfZ2V0X2VsZW1lbnRzX2J5
X3RhZ19uYW1lOgorICogQHZhbHVlOiBhICNHanNWYWx1ZQorICogQG5hbWU6IHRoZSB0YWcgbmFt
ZQorICoKKyAqIFJldHJpZXZlcyBhbGwgY2hpbGRyZW4gd2l0aCB0aGUgc3BlY2lmaWVkIHRhZyBu
YW1lLgorICoKKyAqIFRoaXMgY2FuIG9ubHkgYmUgdXNlZCBvbiBvYmplY3QgdmFsdWVzLgorICoK
KyAqIFJldHVybiB2YWx1ZTogYWxsIG1hdGNoaW5nIGVsZW1lbnRzCisgKiovCitHanNWYWx1ZSoK
K2dqc192YWx1ZV9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWUgKEdqc1ZhbHVlKiAgICB2YWx1ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBuYW1lKQor
eworICAgIGdjaGFyKiBzY3JpcHQ7CisgICAgR2pzVmFsdWUqIGVsZW1lbnRzOworCisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKGdqc192YWx1ZV9pc19vYmplY3QgKHZhbHVlKSwgTlVMTCk7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKG5hbWUsIE5VTEwpOworCisgICAgc2NyaXB0ID0gZ19z
dHJkdXBfcHJpbnRmICgicmV0dXJuIHRoaXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUgKCclcycpOyIs
IG5hbWUpOworICAgIGVsZW1lbnRzID0gZ2pzX3ZhbHVlX2V4ZWN1dGUgKHZhbHVlLCBzY3JpcHQs
IE5VTEwpOworICAgIGdfZnJlZSAoc2NyaXB0KTsKKyAgICByZXR1cm4gZWxlbWVudHM7Cit9CisK
Ky8qKgorICogZ2pzX3ZhbHVlX2V4ZWN1dGU6CisgKiBAdmFsdWU6IGEgI0dqc1ZhbHVlCisgKiBA
c2NyaXB0OiBqYXZhc2NyaXB0IGNvZGUKKyAqCisgKiBFeGVjdXRlcyBhIHBpZWNlIG9mIGphdmFz
Y3JpcHQgY29kZS4gSWYgQHZhbHVlIGlzIGFuIG9iamVjdAorICogaXQgY2FuIGJlIHJlZmVycmVk
IHRvIGFzICd0aGlzJyBpbiB0aGUgY29kZS4KKyAqCisgKiBBICdyZXR1cm4nIHN0YXRlbWVudCBp
biB0aGUgY29kZSB3aWxsIHlpZWxkIHRoZSByZXN1bHQgdG8KKyAqIHRoZSByZXR1cm4gdmFsdWUg
b2YgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSByZXR1cm4gdmFsdWUs
IG9yICVOVUxMCisgKiovCitHanNWYWx1ZSoKK2dqc192YWx1ZV9leGVjdXRlIChHanNWYWx1ZSog
ICAgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIHNjcmlwdCwKKyAgICAg
ICAgICAgICAgICAgICBnY2hhcioqICAgICAgZXhjZXB0aW9uKQoreworICAgIEpTU3RyaW5nUmVm
IGpzX3NjcmlwdDsKKyAgICBKU09iamVjdFJlZiBqc19mdW5jdGlvbjsKKyAgICBKU09iamVjdFJl
ZiBqc19vYmplY3Q7CisgICAgSlNWYWx1ZVJlZiBqc19leGNlcHRpb247CisgICAgSlNWYWx1ZVJl
ZiBqc192YWx1ZTsKKyAgICBKU1N0cmluZ1JlZiBqc19tZXNzYWdlOworCisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwgKGdqc192YWx1ZV9pc192YWxpZCAodmFsdWUpLCBGQUxTRSk7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKHNjcmlwdCwgRkFMU0UpOworCisgICAganNfc2NyaXB0ID0gSlNT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcgKHNjcmlwdCk7CisgICAganNfZnVuY3Rpb24gPSBK
U09iamVjdE1ha2VGdW5jdGlvbiAodmFsdWUtPmpzX2NvbnRleHQsIE5VTEwsIDAsIE5VTEwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNfc2NyaXB0LCBOVUxMLCAx
LCBOVUxMKTsKKyAgICBKU1N0cmluZ1JlbGVhc2UgKGpzX3NjcmlwdCk7CisgICAganNfb2JqZWN0
ID0gSlNWYWx1ZVRvT2JqZWN0ICh2YWx1ZS0+anNfY29udGV4dCwgdmFsdWUtPmpzX3ZhbHVlLCBO
VUxMKTsKKyAgICBqc19leGNlcHRpb24gPSBOVUxMOworICAgIGpzX3ZhbHVlID0gSlNPYmplY3RD
YWxsQXNGdW5jdGlvbiAodmFsdWUtPmpzX2NvbnRleHQsIGpzX2Z1bmN0aW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNfb2JqZWN0LCAwLCBOVUxMLCAmanNfZXhj
ZXB0aW9uKTsKKyAgICBpZiAoIWpzX3ZhbHVlICYmIGV4Y2VwdGlvbikKKyAgICB7CisgICAgICAg
IGpzX21lc3NhZ2UgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5ICh2YWx1ZS0+anNfY29udGV4dCwganNf
ZXhjZXB0aW9uLCBOVUxMKTsKKyAgICAgICAgKmV4Y2VwdGlvbiA9IGdqc19zdHJpbmdfdXRmOCAo
anNfbWVzc2FnZSk7CisgICAgICAgIEpTU3RyaW5nUmVsZWFzZSAoanNfbWVzc2FnZSk7CisgICAg
ICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gZ2pzX3ZhbHVlX25ldyAodmFsdWUt
PmpzX2NvbnRleHQsIGpzX3ZhbHVlKTsKK30KKworSlNWYWx1ZVJlZgorZ2pzX3NjcmlwdF9ldmFs
IChKU0NvbnRleHRSZWYganNfY29udGV4dCwKKyAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIq
IHNjcmlwdCwKKyAgICAgICAgICAgICAgICAgZ2NoYXIqKiAgICAgIGV4Y2VwdGlvbikKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCAoanNfY29udGV4dCwgRkFMU0UpOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsIChzY3JpcHQsIEZBTFNFKTsKKworICAgIEpTU3RyaW5nUmVmIGpzX3Njcmlw
dCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nIChzY3JpcHQpOworICAgIEpTVmFsdWVS
ZWYganNfZXhjZXB0aW9uID0gTlVMTDsKKyAgICBKU1ZhbHVlUmVmIGpzX3ZhbHVlID0gSlNFdmFs
dWF0ZVNjcmlwdCAoanNfY29udGV4dCwganNfc2NyaXB0LAorICAgICAgICBKU0NvbnRleHRHZXRH
bG9iYWxPYmplY3QgKGpzX2NvbnRleHQpLCBOVUxMLCAwLCAmanNfZXhjZXB0aW9uKTsKKyAgICBp
ZiAoIWpzX3ZhbHVlICYmIGV4Y2VwdGlvbikKKyAgICB7CisgICAgICAgIEpTU3RyaW5nUmVmIGpz
X21lc3NhZ2UgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5IChqc19jb250ZXh0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNfZXhjZXB0aW9uLCBO
VUxMKTsKKyAgICAgICAgKmV4Y2VwdGlvbiA9IGdqc19zdHJpbmdfdXRmOCAoanNfbWVzc2FnZSk7
CisgICAgICAgIEpTU3RyaW5nUmVsZWFzZSAoanNfbWVzc2FnZSk7CisgICAgICAgIGpzX3ZhbHVl
ID0gSlNWYWx1ZU1ha2VOdWxsIChqc19jb250ZXh0KTsKKyAgICB9CisgICAgSlNTdHJpbmdSZWxl
YXNlIChqc19zY3JpcHQpOworICAgIHJldHVybiBqc192YWx1ZTsKK30KKworZ2Jvb2xlYW4KK2dq
c19zY3JpcHRfY2hlY2tfc3ludGF4IChKU0NvbnRleHRSZWYganNfY29udGV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogc2NyaXB0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGdjaGFyKiogICAgICBleGNlcHRpb24pCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwgKGpzX2NvbnRleHQsIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2NyaXB0
LCBGQUxTRSk7CisKKyAgICBKU1N0cmluZ1JlZiBqc19zY3JpcHQgPSBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyAoc2NyaXB0KTsKKyAgICBKU1ZhbHVlUmVmIGpzX2V4Y2VwdGlvbiA9IE5V
TEw7CisgICAgYm9vbCByZXN1bHQgPSBKU0NoZWNrU2NyaXB0U3ludGF4IChqc19jb250ZXh0LCBq
c19zY3JpcHQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LCAmanNfZXhjZXB0aW9uKTsKKyAgICBpZiAoIXJlc3VsdCAmJiBleGNlcHRpb24pCisgICAgewor
ICAgICAgICBKU1N0cmluZ1JlZiBqc19tZXNzYWdlID0gSlNWYWx1ZVRvU3RyaW5nQ29weSAoanNf
Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGpzX2V4Y2VwdGlvbiwgTlVMTCk7CisgICAgICAgICpleGNlcHRpb24gPSBnanNfc3Ry
aW5nX3V0ZjggKGpzX21lc3NhZ2UpOworICAgICAgICBKU1N0cmluZ1JlbGVhc2UgKGpzX21lc3Nh
Z2UpOworICAgIH0KKyAgICBKU1N0cmluZ1JlbGVhc2UgKGpzX3NjcmlwdCk7CisgICAgcmV0dXJu
IHJlc3VsdCA/IFRSVUUgOiBGQUxTRTsKK30KKworZ2Jvb2xlYW4KK2dqc19zY3JpcHRfZnJvbV9m
aWxlIChKU0NvbnRleHRSZWYganNfY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnY2hhciogZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIqKiAgICAgIGV4
Y2VwdGlvbikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoanNfY29udGV4dCwgRkFMU0Up
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChmaWxlbmFtZSwgRkFMU0UpOworCisgICAgZ2Jv
b2xlYW4gcmVzdWx0ID0gRkFMU0U7CisgICAgZ2NoYXIqIHNjcmlwdDsKKyAgICBHRXJyb3IqIGVy
cm9yID0gTlVMTDsKKyAgICBpZiAoZ19maWxlX2dldF9jb250ZW50cyAoZmlsZW5hbWUsICZzY3Jp
cHQsIE5VTEwsICZlcnJvcikpCisgICAgeworICAgICAgICBpZiAoZ2pzX3NjcmlwdF9ldmFsIChq
c19jb250ZXh0LCBzY3JpcHQsIGV4Y2VwdGlvbikpCisgICAgICAgICAgICByZXN1bHQgPSBUUlVF
OworICAgICAgICBnX2ZyZWUgKHNjcmlwdCk7CisgICAgfQorICAgIGVsc2UgaWYgKGVycm9yKQor
ICAgIHsKKyAgICAgICAgKmV4Y2VwdGlvbiA9IGdfc3RyZHVwIChlcnJvci0+bWVzc2FnZSk7Cisg
ICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOworICAgIH0KKyAgICBlbHNlCisgICAgICAgICpl
eGNlcHRpb24gPSBnX3N0cmR1cCAoXygiQW4gdW5rbm93biBlcnJvciBvY2N1cmVkLiIpKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitnY2hhcioKK2dqc19zdHJpbmdfdXRmOCAoSlNTdHJpbmdS
ZWYganNfc3RyaW5nKQoreworICAgIHNpemVfdCBzaXplX3V0Zjg7CisgICAgZ2NoYXIqIHN0cmlu
Z191dGY4OworCisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGpzX3N0cmluZywgTlVMTCk7CisK
KyAgICBzaXplX3V0ZjggPSBKU1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUgKGpzX3N0
cmluZyk7CisgICAgc3RyaW5nX3V0ZjggPSBnX25ldyAoZ2NoYXIsIHNpemVfdXRmOCk7CisgICAg
SlNTdHJpbmdHZXRVVEY4Q1N0cmluZyAoanNfc3RyaW5nLCBzdHJpbmdfdXRmOCwgc2l6ZV91dGY4
KTsKKyAgICByZXR1cm4gc3RyaW5nX3V0Zjg7Cit9CisKKyNkZWZpbmUgR19PQkpFQ1RfTkFNRShv
YmplY3QpIEdfT0JKRUNUX0NMQVNTX05BTUUgKEdfT0JKRUNUX0dFVF9DTEFTUyAob2JqZWN0KSkK
Kworc3RhdGljIHZvaWQKK19qc19jbGFzc19nZXRfcHJvcGVydHlfbmFtZXNfY2IgKEpTQ29udGV4
dFJlZiAgICAgICAgICAgICAgICAganNfY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEpTT2JqZWN0UmVmICAgICAgICAgICAgICAgICAganNfb2JqZWN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNQcm9wZXJ0eU5hbWVBY2N1bXVsYXRvclJlZiBq
c19wcm9wZXJ0aWVzKQoreworICAgIEdPYmplY3QqIG9iamVjdCA9IEpTT2JqZWN0R2V0UHJpdmF0
ZSAoanNfb2JqZWN0KTsKKyAgICBpZiAob2JqZWN0KQorICAgIHsKKyAgICAgICAgZ3VpbnQgbjsK
KyAgICAgICAgR1BhcmFtU3BlYyoqIHBzcGVjcyA9IGdfb2JqZWN0X2NsYXNzX2xpc3RfcHJvcGVy
dGllcyAoCisgICAgICAgICAgICBHX09CSkVDVF9HRVRfQ0xBU1MgKG9iamVjdCksICZuKTsKKyAg
ICAgICAgZ2ludCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorICAgICAgICB7
CisgICAgICAgICAgICBjb25zdCBnY2hhciogcHJvcGVydHkgPSBnX3BhcmFtX3NwZWNfZ2V0X25h
bWUgKHBzcGVjc1tpXSk7CisgICAgICAgICAgICBKU1N0cmluZ1JlZiBqc19wcm9wZXJ0eSA9IEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nIChwcm9wZXJ0eSk7CisgICAgICAgICAgICBKU1By
b3BlcnR5TmFtZUFjY3VtdWxhdG9yQWRkTmFtZSAoanNfcHJvcGVydGllcywganNfcHJvcGVydHkp
OworICAgICAgICAgICAgSlNTdHJpbmdSZWxlYXNlIChqc19wcm9wZXJ0eSk7CisgICAgICAgIH0K
KyAgICAgICAgR1R5cGUgdHlwZSA9IEdfT0JKRUNUX1RZUEUgKG9iamVjdCk7CisgICAgICAgIGRv
CisgICAgICAgIHsKKyAgICAgICAgICAgIGd1aW50KiBzaWduYWxzID0gZ19zaWduYWxfbGlzdF9p
ZHMgKHR5cGUsICZuKTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIHNpZ25hbCA9IGdfc2lnbmFs
X25hbWUgKHNpZ25hbHNbaV0pOworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIGpzX3NpZ25h
bCA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nIChzaWduYWwpOworICAgICAgICAgICAg
ICAgIEpTUHJvcGVydHlOYW1lQWNjdW11bGF0b3JBZGROYW1lIChqc19wcm9wZXJ0aWVzLCBqc19z
aWduYWwpOworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVsZWFzZSAoanNfc2lnbmFsKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHR5cGUgPSBnX3R5cGVfcGFyZW50ICh0eXBlKTsKKyAg
ICAgICAgfQorICAgICAgICB3aGlsZSAodHlwZSk7CisgICAgfQorfQorCitzdGF0aWMgYm9vbAor
X2pzX2NsYXNzX2hhc19wcm9wZXJ0eV9jYiAoSlNDb250ZXh0UmVmIGpzX2NvbnRleHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBKU09iamVjdFJlZiAganNfb2JqZWN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgIGpzX3Byb3BlcnR5KQoreworICAgIGJvb2wg
cmVzdWx0ID0gZmFsc2U7CisgICAgZ2NoYXIqIHByb3BlcnR5ID0gZ2pzX3N0cmluZ191dGY4IChq
c19wcm9wZXJ0eSk7CisgICAgR09iamVjdCogb2JqZWN0ID0gSlNPYmplY3RHZXRQcml2YXRlIChq
c19vYmplY3QpOworICAgIGlmIChvYmplY3QpCisgICAgeworICAgICAgICBpZiAoZ19zaWduYWxf
bG9va3VwIChwcm9wZXJ0eSwgR19PQkpFQ1RfVFlQRSAob2JqZWN0KSkgfHwKKyAgICAgICAgICAg
IGdfb2JqZWN0X2NsYXNzX2ZpbmRfcHJvcGVydHkgKEdfT0JKRUNUX0dFVF9DTEFTUyAob2JqZWN0
KSwgcHJvcGVydHkpKQorICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICB9CisgICAgZWxz
ZSBpZiAoanNfb2JqZWN0ID09IEpTQ29udGV4dEdldEdsb2JhbE9iamVjdCAoanNfY29udGV4dCkp
CisgICAgeworICAgICAgICBHVHlwZSB0eXBlID0gZ190eXBlX2Zyb21fbmFtZSAocHJvcGVydHkp
OworICAgICAgICByZXN1bHQgPSB0eXBlID8gdHlwZSA6IGZhbHNlOworICAgIH0KKyAgICBnX2Zy
ZWUgKHByb3BlcnR5KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgdm9pZAorX2pz
X29iamVjdF9zZXRfcHJvcGVydHkgKEpTQ29udGV4dFJlZiBqc19jb250ZXh0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgIEpTT2JqZWN0UmVmICBqc19vYmplY3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgSlNW
YWx1ZVJlZiAgIGpzX3ZhbHVlKQoreworICAgIEpTU3RyaW5nUmVmIGpzX25hbWUgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyAobmFtZSk7CisgICAgSlNPYmplY3RTZXRQcm9wZXJ0eShq
c19jb250ZXh0LCBqc19vYmplY3QsIGpzX25hbWUsIGpzX3ZhbHVlLAorICAgICAgICAgICAgICAg
ICAgICAgICAga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsKKyAgICBKU1N0cmluZ1Jl
bGVhc2UgKGpzX25hbWUpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZgorX2pzX29iamVjdF9jYWxs
X2FzX2Z1bmN0aW9uX2NiIChKU0NvbnRleHRSZWYgICAgIGpzX2NvbnRleHQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0UmVmICAgICAganNfZnVuY3Rpb24sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0UmVmICAgICAganNfdGhpcywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICAgICAgICAgICBuX2FyZ3VtZW50
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSlNWYWx1ZVJlZiBqc19h
cmd1bWVudHNbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiog
ICAgICBqc19leGNlcHRpb24pCit7CisgICAgR09iamVjdCogb2JqZWN0ID0gSlNPYmplY3RHZXRQ
cml2YXRlIChqc190aGlzKTsKKyAgICBjb25zdCBnY2hhciogZnVuY3Rpb24gPSBKU09iamVjdEdl
dFByaXZhdGUgKGpzX2Z1bmN0aW9uKTsKKworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHX0lT
X09CSkVDVCAob2JqZWN0KSwgSlNWYWx1ZU1ha2VOdWxsIChqc19jb250ZXh0KSk7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKGZ1bmN0aW9uLCBKU1ZhbHVlTWFrZU51bGwgKGpzX2NvbnRleHQp
KTsKKworICAgIGd1aW50IHNpZ25hbF9pZCA9IGdfc2lnbmFsX2xvb2t1cCAoZnVuY3Rpb24sIEdf
T0JKRUNUX1RZUEUgKG9iamVjdCkpOworICAgIEdTaWduYWxRdWVyeSBxdWVyeTsKKyAgICBnX3Np
Z25hbF9xdWVyeSAoc2lnbmFsX2lkLCAmcXVlcnkpOworICAgIEdWYWx1ZSogdmFsdWVzID0gZ19u
ZXcwIChHVmFsdWUsIG5fYXJndW1lbnRzICsgMSk7CisgICAgZ192YWx1ZV9pbml0ICgmdmFsdWVz
WzBdLCBHX09CSkVDVF9UWVBFIChvYmplY3QpKTsKKyAgICBnX3ZhbHVlX3NldF9pbnN0YW5jZSAo
JnZhbHVlc1swXSwgb2JqZWN0KTsKKyAgICBnaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IG5f
YXJndW1lbnRzOyBpKyspCisgICAgeworICAgICAgICBHVmFsdWUgdmFsdWUgPSB7MCwgfTsKKyAg
ICAgICAgR1R5cGUgZ3R5cGU7CisgICAgICAgIHN3aXRjaCAoSlNWYWx1ZUdldFR5cGUgKGpzX2Nv
bnRleHQsIGpzX2FyZ3VtZW50c1tpXSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2Uga0pT
VHlwZUJvb2xlYW46CisgICAgICAgICAgICAgICAgZ3R5cGUgPSBHX1RZUEVfQk9PTEVBTjsKKyAg
ICAgICAgICAgICAgICBnX3ZhbHVlX2luaXQgKCZ2YWx1ZSwgZ3R5cGUpOworICAgICAgICAgICAg
ICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4gKCZ2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgSlNW
YWx1ZVRvQm9vbGVhbiAoanNfY29udGV4dCwganNfYXJndW1lbnRzW2ldKSA/IFRSVUUgOiBGQUxT
RSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtKU1R5cGVOdW1i
ZXI6CisgICAgICAgICAgICAgICAgZ3R5cGUgPSBHX1RZUEVfRE9VQkxFOworICAgICAgICAgICAg
ICAgIGdfdmFsdWVfaW5pdCAoJnZhbHVlLCBndHlwZSk7CisgICAgICAgICAgICAgICAgZ192YWx1
ZV9zZXRfZG91YmxlICgmdmFsdWUsCisgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVUb051bWJl
ciAoanNfY29udGV4dCwganNfYXJndW1lbnRzW2ldLCBOVUxMKSk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIGtKU1R5cGVTdHJpbmc6CisgICAgICAgICAgICAgICAg
Z3R5cGUgPSBHX1RZUEVfU1RSSU5HOworICAgICAgICAgICAgICAgIGdfdmFsdWVfaW5pdCAoJnZh
bHVlLCBndHlwZSk7CisgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYganNfc3RyaW5nID0gSlNW
YWx1ZVRvU3RyaW5nQ29weSAoanNfY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAganNfYXJn
dW1lbnRzW2ldLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBnY2hhciogc3RyaW5nID0gZ2pzX3N0
cmluZ191dGY4IChqc19zdHJpbmcpOworICAgICAgICAgICAgICAgIGdfdmFsdWVfc2V0X3N0cmlu
ZyAoJnZhbHVlLCBzdHJpbmcpOworICAgICAgICAgICAgICAgIGdfZnJlZSAoc3RyaW5nKTsKKyAg
ICAgICAgICAgICAgICBKU1N0cmluZ1JlbGVhc2UgKGpzX3N0cmluZyk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtKU1R5cGVPYmplY3Q6CisgICAgICAgICAgICAg
ICAgZ3R5cGUgPSBHX1RZUEVfT0JKRUNUOworICAgICAgICAgICAgICAgIGdfdmFsdWVfaW5pdCAo
JnZhbHVlLCBndHlwZSk7CisgICAgICAgICAgICAgICAgSlNPYmplY3RSZWYganNfb2JqZWN0ID0g
SlNWYWx1ZVRvT2JqZWN0IChqc19jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICBqc19hcmd1
bWVudHNbaV0sIE5VTEwpOworICAgICAgICAgICAgICAgIEdPYmplY3QqIG9iamVjdF92YWx1ZSA9
IEpTT2JqZWN0R2V0UHJpdmF0ZSAoanNfb2JqZWN0KTsKKyAgICAgICAgICAgICAgICBnX3ZhbHVl
X3NldF9vYmplY3QgKCZ2YWx1ZSwgb2JqZWN0X3ZhbHVlKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2Uga0pTVHlwZVVuZGVmaW5lZDoKKyAgICAgICAgICAgIGNhc2Ug
a0pTVHlwZU51bGw6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGd0eXBl
ID0gR19UWVBFX05PTkU7CisgICAgICAgICAgICAgICAgZ192YWx1ZV9pbml0ICgmdmFsdWUsIGd0
eXBlKTsKKyAgICAgICAgfQorICAgICAgICBnX3ZhbHVlX2luaXQgKCZ2YWx1ZXNbaSArIDFdLCBn
dHlwZSk7CisgICAgICAgIGlmIChxdWVyeS5uX3BhcmFtcyA+PSBpCisgICAgICAgICAgICAmJiBn
X3ZhbHVlX3R5cGVfY29tcGF0aWJsZSAoZ3R5cGUsIHF1ZXJ5LnBhcmFtX3R5cGVzW2ldKSkKKyAg
ICAgICAgICAgIC8qICYmIGdfdmFsdWVfdHlwZV90cmFuc2Zvcm1hYmxlIChndHlwZSwgcXVlcnku
cGFyYW1fdHlwZXNbaV0pICovCisgICAgICAgICAgICBnX3ZhbHVlX2NvcHkgKCZ2YWx1ZSwgJnZh
bHVlc1tpICsgMV0pOworICAgICAgICAgICAgLyogZ192YWx1ZV90cmFuc2Zvcm0gKCZ2YWx1ZSwg
JnZhbHVlc1tpICsgMV0pOyAqLworICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAg
IGdjaGFyKiB2YWx1ZV90eXBlID0gZ19zdHJkdXBfdmFsdWVfY29udGVudHMgKCZ2YWx1ZSk7Cisg
ICAgICAgICAgICAvKiBGSVhNRTogZXhjZXB0aW9uICovCisgICAgICAgICAgICBnX3ByaW50ICgi
d3JvbmcgdmFsdWUsIGV4cGVjdGVkICVzXG4iLCB2YWx1ZV90eXBlKTsKKyAgICAgICAgICAgIGdf
ZnJlZSAodmFsdWVfdHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgZ192YWx1ZV91bnNldCAoJnZh
bHVlKTsKKyAgICB9CisgICAgR1ZhbHVlIHJldHVybl92YWx1ZSA9IHswLCB9OworICAgIGlmIChx
dWVyeS5yZXR1cm5fdHlwZSAhPSBHX1RZUEVfTk9ORSkKKyAgICAgICAgZ192YWx1ZV9pbml0ICgm
cmV0dXJuX3ZhbHVlLCBxdWVyeS5yZXR1cm5fdHlwZSk7CisgICAgZ19zaWduYWxfZW1pdHYgKHZh
bHVlcywgc2lnbmFsX2lkLCAwLCAmcmV0dXJuX3ZhbHVlKTsKKworICAgIGZvciAoaSA9IDA7IGkg
PCBuX2FyZ3VtZW50czsgaSsrKQorICAgICAgICBnX3ZhbHVlX3Vuc2V0ICgmdmFsdWVzW2ldKTsK
KyAgICAvKiBGSVhNRTogcmV0dXJuIHZhbHVlICovCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkIChqc19jb250ZXh0KTsKK30KKworLypzdGF0aWMgdm9pZAorX2pzX29iamVjdF9hZGRf
ZnVuY3Rpb24gKEpTQ29udGV4dFJlZiBqc19jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgIEpTT2JqZWN0UmVmICBqc19vYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIqIGZ1bmMpCit7CisgICAgSlNTdHJpbmdSZWYganNfZnVuYyA9IEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nIChmdW5jKTsKKyAgICBKU09iamVjdFJlZiBqc19mdW5jdGlvbiA9
IEpTT2JqZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrICgKKyAgICAgICAganNfY29udGV4dCwg
anNfZnVuYywgX2pzX29iamVjdF9jYWxsX2FzX2Z1bmN0aW9uX2NiKTsKKyAgICBKU1N0cmluZ1Jl
bGVhc2UgKGpzX2Z1bmMpOworICAgIF9qc19vYmplY3Rfc2V0X3Byb3BlcnR5IChqc19jb250ZXh0
LCBqc19vYmplY3QsIGZ1bmMsIGpzX2Z1bmN0aW9uKTsKK30qLworCitzdGF0aWMgSlNWYWx1ZVJl
ZgorX2pzX2NsYXNzX2dldF9wcm9wZXJ0eV9jYiAoSlNDb250ZXh0UmVmIGpzX2NvbnRleHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBKU09iamVjdFJlZiAganNfb2JqZWN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgSlNTdHJpbmdSZWYgIGpzX3Byb3BlcnR5LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiogIGpzX2V4Y2VwdGlvbikKK3sKKyAgICBHT2Jq
ZWN0KiBvYmplY3QgPSBKU09iamVjdEdldFByaXZhdGUgKGpzX29iamVjdCk7CisKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbCAoR19JU19PQkpFQ1QgKG9iamVjdCksIEpTVmFsdWVNYWtlTnVsbCAo
anNfY29udGV4dCkpOworCisgICAgSlNWYWx1ZVJlZiBqc19yZXN1bHQgPSBOVUxMOworICAgIGdj
aGFyKiBwcm9wZXJ0eSA9IGdqc19zdHJpbmdfdXRmOCAoanNfcHJvcGVydHkpOworICAgIGd1aW50
IHNpZ25hbF9pZDsKKyAgICBHUGFyYW1TcGVjKiBwc3BlYzsKKyAgICBpZiAoKHNpZ25hbF9pZCA9
IGdfc2lnbmFsX2xvb2t1cCAocHJvcGVydHksIEdfT0JKRUNUX1RZUEUgKG9iamVjdCkpKSkKKyAg
ICB7CisgICAgICAgIEdTaWduYWxRdWVyeSBxdWVyeTsKKyAgICAgICAgZ19zaWduYWxfcXVlcnkg
KHNpZ25hbF9pZCwgJnF1ZXJ5KTsKKyAgICAgICAgaWYgKHF1ZXJ5LnNpZ25hbF9mbGFncyAmIEdf
U0lHTkFMX0FDVElPTikKKyAgICAgICAgeworICAgICAgICAgICAgLyogV2UgY2FuJ3QgdXNlIEpT
T2JqZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrCisgICAgICAgICAgICAgICBiZWNhdXNlIGl0
IGRvZXNuJ3QgYWxsb2NhdGUgcHJpdmF0ZSBkYXRhICovCisgICAgICAgICAgICBKU0NsYXNzRGVm
aW5pdGlvbiBqc19jbGFzc19kZWYgPSBrSlNDbGFzc0RlZmluaXRpb25FbXB0eTsKKyAgICAgICAg
ICAgIGpzX2NsYXNzX2RlZi5jbGFzc05hbWUgPSBnX3N0cmR1cCAocHJvcGVydHkpOworICAgICAg
ICAgICAganNfY2xhc3NfZGVmLmNhbGxBc0Z1bmN0aW9uID0gX2pzX29iamVjdF9jYWxsX2FzX2Z1
bmN0aW9uX2NiOworICAgICAgICAgICAgSlNDbGFzc1JlZiBqc19jbGFzcyA9IEpTQ2xhc3NDcmVh
dGUgKCZqc19jbGFzc19kZWYpOworICAgICAgICAgICAgSlNPYmplY3RSZWYganNfZnVuY3Rpb24g
PSBKU09iamVjdE1ha2UgKGpzX2NvbnRleHQsIGpzX2NsYXNzLCBwcm9wZXJ0eSk7CisgICAgICAg
ICAgICByZXR1cm4ganNfZnVuY3Rpb247CisgICAgICAgIH0KKyAgICAgICAgZ19mcmVlIChwcm9w
ZXJ0eSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bGwgKGpzX2NvbnRleHQpOworICAg
IH0KKyAgICBlbHNlIGlmICghKHBzcGVjID0gZ19vYmplY3RfY2xhc3NfZmluZF9wcm9wZXJ0eSAo
CisgICAgICAgIEdfT0JKRUNUX0dFVF9DTEFTUyAob2JqZWN0KSwgcHJvcGVydHkpKSkKKyAgICB7
CisgICAgICAgIGdjaGFyKiBtZXNzYWdlID0gZ19zdHJkdXBfcHJpbnRmIChfKCIlcyBoYXMgbm8g
cHJvcGVydHkgJyVzJyIpLAorICAgICAgICAgICAgR19PQkpFQ1RfTkFNRSAob2JqZWN0KSwgcHJv
cGVydHkpOworICAgICAgICBKU1N0cmluZ1JlZiBqc19tZXNzYWdlID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcgKG1lc3NhZ2UpOworICAgICAgICAqanNfZXhjZXB0aW9uID0gSlNWYWx1
ZU1ha2VTdHJpbmcgKGpzX2NvbnRleHQsIGpzX21lc3NhZ2UpOworICAgICAgICBKU1N0cmluZ1Jl
bGVhc2UgKGpzX21lc3NhZ2UpOworICAgICAgICBnX2ZyZWUgKG1lc3NhZ2UpOworICAgICAgICBn
X2ZyZWUgKHByb3BlcnR5KTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVsbCAoanNfY29u
dGV4dCk7CisgICAgfQorICAgIGlmICghKHBzcGVjLT5mbGFncyAmIEdfUEFSQU1fUkVBREFCTEUp
KQorICAgIHsKKyAgICAgICAgZ19mcmVlIChwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZCAoanNfY29udGV4dCk7CisgICAgfQorICAgIEdUeXBlIHR5cGUgPSBH
X1BBUkFNX1NQRUNfVFlQRSAocHNwZWMpOworICAgIGlmICh0eXBlID09IEdfVFlQRV9QQVJBTV9T
VFJJTkcpCisgICAgeworICAgICAgICBnY2hhciogdmFsdWU7CisgICAgICAgIGdfb2JqZWN0X2dl
dCAob2JqZWN0LCBwcm9wZXJ0eSwgJnZhbHVlLCBOVUxMKTsKKyAgICAgICAgaWYgKHZhbHVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBKU1N0cmluZ1JlZiBqc19zdHJpbmcgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyAodmFsdWUpOworICAgICAgICAgICAganNfcmVzdWx0ID0gSlNW
YWx1ZU1ha2VTdHJpbmcgKGpzX2NvbnRleHQsIGpzX3N0cmluZyk7CisgICAgICAgIH0KKyAgICB9
CisgICAgZWxzZSBpZiAodHlwZSA9PSBHX1RZUEVfUEFSQU1fSU5UIHx8IHR5cGUgPT0gR19UWVBF
X1BBUkFNX1VJTlQpCisgICAgeworICAgICAgICBnaW50IHZhbHVlOworICAgICAgICBnX29iamVj
dF9nZXQgKG9iamVjdCwgcHJvcGVydHksICZ2YWx1ZSwgTlVMTCk7CisgICAgICAgIGpzX3Jlc3Vs
dCA9IEpTVmFsdWVNYWtlTnVtYmVyIChqc19jb250ZXh0LCB2YWx1ZSk7CisgICAgfQorICAgIGVs
c2UgaWYgKHR5cGUgPT0gR19UWVBFX1BBUkFNX0JPT0xFQU4pCisgICAgeworICAgICAgICBnYm9v
bGVhbiB2YWx1ZTsKKyAgICAgICAgZ19vYmplY3RfZ2V0IChvYmplY3QsIHByb3BlcnR5LCAmdmFs
dWUsIE5VTEwpOworICAgICAgICBqc19yZXN1bHQgPSBKU1ZhbHVlTWFrZUJvb2xlYW4gKGpzX2Nv
bnRleHQsIHZhbHVlID8gdHJ1ZSA6IGZhbHNlKTsKKyAgICB9CisgICAgZWxzZSBpZiAodHlwZSA9
PSBHX1RZUEVfUEFSQU1fT0JKRUNUKQorICAgIHsKKyAgICAgICAgR09iamVjdCogdmFsdWU7Cisg
ICAgICAgIGdfb2JqZWN0X2dldCAob2JqZWN0LCBwcm9wZXJ0eSwgJnZhbHVlLCBOVUxMKTsKKyAg
ICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAganNfcmVzdWx0ID0gZ2pzX29iamVjdF9uZXcg
KGpzX2NvbnRleHQsCisgICAgICAgICAgICAgICAgR19PQkpFQ1RfTkFNRSAodmFsdWUpLCB2YWx1
ZSk7CisgICAgfQorICAgIGVsc2UgaWYgKHR5cGUgPT0gR19UWVBFX1BBUkFNX0VOVU0pCisgICAg
eworICAgICAgICBnaW50IHZhbHVlOworICAgICAgICBnX29iamVjdF9nZXQgKG9iamVjdCwgcHJv
cGVydHksICZ2YWx1ZSwgTlVMTCk7CisgICAgICAgIGpzX3Jlc3VsdCA9IEpTVmFsdWVNYWtlTnVt
YmVyIChqc19jb250ZXh0LCB2YWx1ZSk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAganNfcmVz
dWx0ID0gSlNWYWx1ZU1ha2VVbmRlZmluZWQgKGpzX2NvbnRleHQpOworICAgIGdfZnJlZSAocHJv
cGVydHkpOworICAgIHJldHVybiBqc19yZXN1bHQgPyBqc19yZXN1bHQgOiBKU1ZhbHVlTWFrZU51
bGwgKGpzX2NvbnRleHQpOworfQorCitzdGF0aWMgdm9pZAorX2pzX2NsYXNzX3NpZ25hbF9jYWxs
YmFjayAoR09iamVjdCogb2JqZWN0LCAuLi4pCit7CisgICAgLyogRklYTUU6IFN1cHBvcnQgYXJi
aXRyYXJ5IHNpZ25hdHVyZXMgKi8KKworICAgIC8qIEZJWE1FOiBTdXBwb3J0IGFyYml0cmFyeSBy
ZXR1cm4gdmFsdWVzICovCit9CisKK3N0YXRpYyBib29sCitfanNfY2xhc3Nfc2V0X3Byb3BlcnR5
X2NiIChKU0NvbnRleHRSZWYganNfY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IEpTT2JqZWN0UmVmICBqc19vYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBKU1N0
cmluZ1JlZiAganNfcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBKU1ZhbHVl
UmVmICAganNfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVmKiAg
anNfZXhjZXB0aW9uKQoreworICAgIEdPYmplY3QqIG9iamVjdCA9IEpTT2JqZWN0R2V0UHJpdmF0
ZSAoanNfb2JqZWN0KTsKKworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHX0lTX09CSkVDVCAo
b2JqZWN0KSwgZmFsc2UpOworCisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBnY2hhciog
cHJvcGVydHkgPSBnanNfc3RyaW5nX3V0ZjggKGpzX3Byb3BlcnR5KTsKKyAgICBndWludCBzaWdu
YWxfaWQ7CisgICAgR1BhcmFtU3BlYyogcHNwZWM7CisgICAgaWYgKChzaWduYWxfaWQgPSBnX3Np
Z25hbF9sb29rdXAgKHByb3BlcnR5LCBHX09CSkVDVF9UWVBFIChvYmplY3QpKSkpCisgICAgewor
ICAgICAgICBnX3NpZ25hbF9jb25uZWN0IChvYmplY3QsIHByb3BlcnR5LAorICAgICAgICAgICAg
R19DQUxMQkFDSyAoX2pzX2NsYXNzX3NpZ25hbF9jYWxsYmFjayksIChncG9pbnRlcilqc192YWx1
ZSk7CisgICAgICAgIGdfZnJlZSAocHJvcGVydHkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgZWxzZSBpZiAoIShwc3BlYyA9IGdfb2JqZWN0X2NsYXNzX2ZpbmRfcHJvcGVydHkg
KAorICAgICAgICBHX09CSkVDVF9HRVRfQ0xBU1MgKG9iamVjdCksIHByb3BlcnR5KSkpCisgICAg
eworICAgICAgICBnY2hhciogbWVzc2FnZSA9IGdfc3RyZHVwX3ByaW50ZiAoXygiJXMgaGFzIG5v
IHByb3BlcnR5ICclcyciKSwKKyAgICAgICAgICAgIEdfT0JKRUNUX05BTUUgKG9iamVjdCksIHBy
b3BlcnR5KTsKKyAgICAgICAgSlNTdHJpbmdSZWYganNfbWVzc2FnZSA9IEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nIChtZXNzYWdlKTsKKyAgICAgICAgKmpzX2V4Y2VwdGlvbiA9IEpTVmFs
dWVNYWtlU3RyaW5nIChqc19jb250ZXh0LCBqc19tZXNzYWdlKTsKKyAgICAgICAgSlNTdHJpbmdS
ZWxlYXNlIChqc19tZXNzYWdlKTsKKyAgICAgICAgZ19mcmVlIChtZXNzYWdlKTsKKyAgICAgICAg
Z19mcmVlIChwcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYg
KCEocHNwZWMtPmZsYWdzICYgR19QQVJBTV9XUklUQUJMRSkpCisgICAgeworICAgICAgICBnX2Zy
ZWUgKHByb3BlcnR5KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBHVHlwZSB0
eXBlID0gR19QQVJBTV9TUEVDX1RZUEUgKHBzcGVjKTsKKyAgICBpZiAodHlwZSA9PSBHX1RZUEVf
UEFSQU1fU1RSSU5HKQorICAgIHsKKyAgICAgICAgSlNTdHJpbmdSZWYganNfc3RyaW5nX3ZhbHVl
ID0gSlNWYWx1ZVRvU3RyaW5nQ29weSAoanNfY29udGV4dCwKKyAgICAgICAgICAgIGpzX3ZhbHVl
LCBqc19leGNlcHRpb24pOworICAgICAgICBpZiAoanNfc3RyaW5nX3ZhbHVlKQorICAgICAgICB7
CisgICAgICAgICAgICBnY2hhciogc3RyaW5nX3ZhbHVlID0gZ2pzX3N0cmluZ191dGY4IChqc19z
dHJpbmdfdmFsdWUpOworICAgICAgICAgICAgZ19vYmplY3Rfc2V0IChvYmplY3QsIHByb3BlcnR5
LCBzdHJpbmdfdmFsdWUsIE5VTEwpOworICAgICAgICAgICAgZ19mcmVlIChzdHJpbmdfdmFsdWUp
OworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKHR5cGUgPT0gR19UWVBFX1BBUkFNX0lO
VCB8fCB0eXBlID09IEdfVFlQRV9QQVJBTV9VSU5UKQorICAgIHsKKyAgICAgICAgaW50IHZhbHVl
ID0gSlNWYWx1ZVRvTnVtYmVyIChqc19jb250ZXh0LCBqc192YWx1ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAganNfZXhjZXB0aW9uKTsKKyAgICAgICAgZ19vYmplY3Rf
c2V0IChvYmplY3QsIHByb3BlcnR5LCB2YWx1ZSwgTlVMTCk7CisgICAgfQorICAgIGVsc2UgaWYg
KHR5cGUgPT0gR19UWVBFX1BBUkFNX0JPT0xFQU4pCisgICAgeworICAgICAgICBib29sIHZhbHVl
ID0gSlNWYWx1ZVRvQm9vbGVhbiAoanNfY29udGV4dCwganNfdmFsdWUpOworICAgICAgICBnX29i
amVjdF9zZXQgKG9iamVjdCwgcHJvcGVydHksIHZhbHVlID8gVFJVRSA6IEZBTFNFLCBOVUxMKTsK
KyAgICB9CisgICAgZWxzZSBpZiAodHlwZSA9PSBHX1RZUEVfUEFSQU1fT0JKRUNUKQorICAgIHsK
KyAgICAgICAgSlNPYmplY3RSZWYganNfb2JqZWN0X3ZhbHVlID0gSlNWYWx1ZVRvT2JqZWN0ICgK
KyAgICAgICAgICAgIGpzX2NvbnRleHQsIGpzX3ZhbHVlLCBOVUxMKTsKKyAgICAgICAgR09iamVj
dCogb2JqZWN0X3ZhbHVlID0gSlNPYmplY3RHZXRQcml2YXRlIChqc19vYmplY3RfdmFsdWUpOwor
ICAgICAgICBpZiAoR19JU19PQkpFQ1QgKG9iamVjdF92YWx1ZSkpCisgICAgICAgICAgICBnX29i
amVjdF9zZXQgKG9iamVjdCwgcHJvcGVydHksIG9iamVjdF92YWx1ZSwgTlVMTCk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgZ2NoYXIqIG1lc3NhZ2UgPSBnX3N0cmR1cF9w
cmludGYgKF8oIiVzIGNhbm5vdCBiZSBhc3NpZ25lZCB0byAlcy4lcyIpLAorICAgICAgICAgICAg
IltvYmplY3RdIiwgR19PQkpFQ1RfTkFNRSAob2JqZWN0KSwgcHJvcGVydHkpOworICAgICAgICAg
ICAgSlNTdHJpbmdSZWYganNfbWVzc2FnZSA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
IChtZXNzYWdlKTsKKyAgICAgICAgICAgICpqc19leGNlcHRpb24gPSBKU1ZhbHVlTWFrZVN0cmlu
ZyAoanNfY29udGV4dCwganNfbWVzc2FnZSk7CisgICAgICAgICAgICBKU1N0cmluZ1JlbGVhc2Ug
KGpzX21lc3NhZ2UpOworICAgICAgICAgICAgZ19mcmVlIChtZXNzYWdlKTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBnY2hhciogbWVzc2FnZSA9IGdfc3RyZHVw
X3ByaW50ZiAoXygiJXMuJXMgY2Fubm90IGJlIGFjY2Vzc2VkIiksCisgICAgICAgICAgICBHX09C
SkVDVF9OQU1FIChvYmplY3QpLCBwcm9wZXJ0eSk7CisgICAgICAgIEpTU3RyaW5nUmVmIGpzX21l
c3NhZ2UgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyAobWVzc2FnZSk7CisgICAgICAg
ICpqc19leGNlcHRpb24gPSBKU1ZhbHVlTWFrZVN0cmluZyAoanNfY29udGV4dCwganNfbWVzc2Fn
ZSk7CisgICAgICAgIEpTU3RyaW5nUmVsZWFzZSAoanNfbWVzc2FnZSk7CisgICAgICAgIGdfZnJl
ZSAobWVzc2FnZSk7CisgICAgfQorICAgIGdfZnJlZSAocHJvcGVydHkpOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK0pTT2JqZWN0UmVmCitnanNfb2JqZWN0X25ldyAoSlNDb250ZXh0UmVmIGpz
X2NvbnRleHQsCisgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIG5hbWUsCisgICAgICAgICAg
ICAgICAgZ3BvaW50ZXIgICAgIGluc3RhbmNlKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
IChqc19jb250ZXh0LCBOVUxMKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAobmFtZSwgTlVM
TCk7CisKKyAgICBKU0NsYXNzRGVmaW5pdGlvbiBqc19jbGFzc19kZWYgPSBrSlNDbGFzc0RlZmlu
aXRpb25FbXB0eTsKKyAgICBqc19jbGFzc19kZWYuY2xhc3NOYW1lID0gZ19zdHJkdXAgKG5hbWUp
OworICAgIGpzX2NsYXNzX2RlZi5nZXRQcm9wZXJ0eU5hbWVzID0gX2pzX2NsYXNzX2dldF9wcm9w
ZXJ0eV9uYW1lc19jYjsKKyAgICBqc19jbGFzc19kZWYuaGFzUHJvcGVydHkgPSBfanNfY2xhc3Nf
aGFzX3Byb3BlcnR5X2NiOworICAgIGpzX2NsYXNzX2RlZi5nZXRQcm9wZXJ0eSA9IF9qc19jbGFz
c19nZXRfcHJvcGVydHlfY2I7CisgICAganNfY2xhc3NfZGVmLnNldFByb3BlcnR5ID0gX2pzX2Ns
YXNzX3NldF9wcm9wZXJ0eV9jYjsKKyAgICBKU0NsYXNzUmVmIGpzX2NsYXNzID0gSlNDbGFzc0Ny
ZWF0ZSAoJmpzX2NsYXNzX2RlZik7CisgICAgSlNPYmplY3RSZWYganNfb2JqZWN0ID0gSlNPYmpl
Y3RNYWtlIChqc19jb250ZXh0LCBqc19jbGFzcywgaW5zdGFuY2UpOworICAgIHJldHVybiBqc19v
YmplY3Q7Cit9CisKK3N0YXRpYyBKU09iamVjdFJlZgorX2pzX29iamVjdF9jYWxsX2FzX2NvbnN0
cnVjdG9yX2NiIChKU0NvbnRleHRSZWYgICAgIGpzX2NvbnRleHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0UmVmICAgICAganNfb2JqZWN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgICAgICAgICAgIG5fYXJndW1lbnRzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBKU1ZhbHVlUmVmIGpzX2Fy
Z3VtZW50c1tdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVm
KiAgICAgIGpzX2V4Y2VwdGlvbikKK3sKKyAgICBjb25zdCBnY2hhciogdHlwZV9uYW1lID0gSlNP
YmplY3RHZXRQcml2YXRlIChqc19vYmplY3QpOworCisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg
KHR5cGVfbmFtZSwgTlVMTCk7CisKKyAgICBHVHlwZSB0eXBlID0gZ190eXBlX2Zyb21fbmFtZSAo
dHlwZV9uYW1lKTsKKyAgICBpZiAodHlwZSkKKyAgICAgICAgcmV0dXJuIGdqc19vYmplY3RfbmV3
IChqc19jb250ZXh0LCB0eXBlX25hbWUsIGdfb2JqZWN0X25ldyAodHlwZSwgTlVMTCkpOworICAg
IHJldHVybiBOVUxMOworfQorCitzdGF0aWMgYm9vbAorX2pzX21vZHVsZV9oYXNfcHJvcGVydHlf
Y2IgKEpTQ29udGV4dFJlZiBqc19jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEpTT2JqZWN0UmVmICBqc19vYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNT
dHJpbmdSZWYgIGpzX3Byb3BlcnR5KQoreworICAgIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2UgPSBK
U09iamVjdEdldFByaXZhdGUgKGpzX29iamVjdCk7CisKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bCAobmFtZXNwYWNlLCBmYWxzZSk7CisKKyAgICBnY2hhciogcHJvcGVydHkgPSBnanNfc3RyaW5n
X3V0ZjggKGpzX3Byb3BlcnR5KTsKKyAgICBnY2hhciogdHlwZV9uYW1lID0gZ19zdHJkdXBfcHJp
bnRmICgiJXMlcyIsIG5hbWVzcGFjZSwgcHJvcGVydHkpOworCisgICAgR1R5cGUgdHlwZSA9IGdf
dHlwZV9mcm9tX25hbWUgKHR5cGVfbmFtZSk7CisgICAgaWYgKCF0eXBlKQorICAgIHsKKyAgICAg
ICAgR01vZHVsZSogbW9kdWxlID0gZ19tb2R1bGVfb3BlbiAoTlVMTCwKKyAgICAgICAgICAgIEdf
TU9EVUxFX0JJTkRfTEFaWSB8IEdfTU9EVUxFX0JJTkRfTE9DQUwpOworICAgICAgICB0eXBlZGVm
IEdUeXBlICgqZ2pzX2dldF90eXBlX2Z1bmMpKHZvaWQpOworICAgICAgICAvKiBGSVhNRTogSW5z
ZXJ0IGEgc3BhY2UgYmV0d2VlbiBlYWNoIGNhcGl0YWwgbGV0dGVyICovCisgICAgICAgIGdjaGFy
KiB0eXBlX2Z1bmNfbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoIiVzXyVzX2dldF90eXBlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2Us
IHByb3BlcnR5KTsKKyAgICAgICAgZ2NoYXIqIHR5cGVfZnVuY19uYW1lX3NtYWxsID0gZ191dGY4
X3N0cmRvd24gKHR5cGVfZnVuY19uYW1lLCAtMSk7CisgICAgICAgIGdqc19nZXRfdHlwZV9mdW5j
IHR5cGVfZnVuYzsKKyAgICAgICAgaWYgKGdfbW9kdWxlX3N5bWJvbCAobW9kdWxlLAorICAgICAg
ICAgICAgKGNvbnN0IGdjaGFyKil0eXBlX2Z1bmNfbmFtZV9zbWFsbCwgKGdwb2ludGVyKikmdHlw
ZV9mdW5jKSkKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZSA9IHR5cGVfZnVuYyAoKTsKKyAg
ICAgICAgICAgIGdfdHlwZV9jbGFzc19wZWVrICh0eXBlKTsKKyAgICAgICAgfQorICAgICAgICBn
X2ZyZWUgKHR5cGVfZnVuY19uYW1lX3NtYWxsKTsKKyAgICAgICAgZ19mcmVlICh0eXBlX2Z1bmNf
bmFtZSk7CisgICAgICAgIGdfbW9kdWxlX2Nsb3NlIChtb2R1bGUpOworICAgIH0KKyAgICBib29s
IHJlc3VsdCA9IHR5cGUgPyB0cnVlIDogZmFsc2U7CisgICAgZ19mcmVlICh0eXBlX25hbWUpOwor
ICAgIGdfZnJlZSAocHJvcGVydHkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBK
U1ZhbHVlUmVmCitfanNfbW9kdWxlX2dldF9wcm9wZXJ0eV9jYiAoSlNDb250ZXh0UmVmIGpzX2Nv
bnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPYmplY3RSZWYgIGpzX29iamVj
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU1N0cmluZ1JlZiAganNfcHJvcGVydHks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiogIGpzX2V4Y2VwdGlvbikK
K3sKKyAgICBjb25zdCBnY2hhciogbmFtZXNwYWNlID0gSlNPYmplY3RHZXRQcml2YXRlIChqc19v
YmplY3QpOworCisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKG5hbWVzcGFjZSwgSlNWYWx1ZU1h
a2VOdWxsIChqc19jb250ZXh0KSk7CisKKyAgICBnY2hhciogcHJvcGVydHkgPSBnanNfc3RyaW5n
X3V0ZjggKGpzX3Byb3BlcnR5KTsKKyAgICBnY2hhciogdHlwZV9uYW1lID0gZ19zdHJkdXBfcHJp
bnRmICgiJXMlcyIsIG5hbWVzcGFjZSwgcHJvcGVydHkpOworICAgIEdUeXBlIHR5cGUgPSBnX3R5
cGVfZnJvbV9uYW1lICh0eXBlX25hbWUpOworICAgIEpTVmFsdWVSZWYgcmVzdWx0OworICAgIGlm
ICh0eXBlKQorICAgIHsKKyAgICAgICAgSlNDbGFzc0RlZmluaXRpb24ganNfY2xhc3NfZGVmID0g
a0pTQ2xhc3NEZWZpbml0aW9uRW1wdHk7CisgICAgICAgIGpzX2NsYXNzX2RlZi5jbGFzc05hbWUg
PSBnX3N0cmR1cCAodHlwZV9uYW1lKTsKKyAgICAgICAganNfY2xhc3NfZGVmLmNhbGxBc0NvbnN0
cnVjdG9yID0gX2pzX29iamVjdF9jYWxsX2FzX2NvbnN0cnVjdG9yX2NiOworICAgICAgICBKU0Ns
YXNzUmVmIGpzX2NsYXNzID0gSlNDbGFzc0NyZWF0ZSAoJmpzX2NsYXNzX2RlZik7CisgICAgICAg
IHJlc3VsdCA9IEpTT2JqZWN0TWFrZSAoanNfY29udGV4dCwganNfY2xhc3MsIHR5cGVfbmFtZSk7
CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHJlc3VsdCA9IEpTVmFsdWVNYWtlTnVs
bCAoanNfY29udGV4dCk7CisgICAgICAgIGdfZnJlZSAodHlwZV9uYW1lKTsKKyAgICB9CisgICAg
Z19mcmVlIChwcm9wZXJ0eSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworSlNPYmplY3RSZWYK
K2dqc19tb2R1bGVfbmV3IChKU0NvbnRleHRSZWYganNfY29udGV4dCwKKyAgICAgICAgICAgICAg
ICBjb25zdCBnY2hhciogbmFtZXNwYWNlKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChq
c19jb250ZXh0LCBOVUxMKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAobmFtZXNwYWNlLCBO
VUxMKTsKKworICAgIEpTQ2xhc3NEZWZpbml0aW9uIGpzX2NsYXNzX2RlZiA9IGtKU0NsYXNzRGVm
aW5pdGlvbkVtcHR5OworICAgIGpzX2NsYXNzX2RlZi5jbGFzc05hbWUgPSBnX3N0cmR1cCAobmFt
ZXNwYWNlKTsKKyAgICBqc19jbGFzc19kZWYuaGFzUHJvcGVydHkgPSBfanNfbW9kdWxlX2hhc19w
cm9wZXJ0eV9jYjsKKyAgICBqc19jbGFzc19kZWYuZ2V0UHJvcGVydHkgPSBfanNfbW9kdWxlX2dl
dF9wcm9wZXJ0eV9jYjsKKyAgICBKU0NsYXNzUmVmIGpzX2NsYXNzID0gSlNDbGFzc0NyZWF0ZSAo
JmpzX2NsYXNzX2RlZik7CisgICAgSlNPYmplY3RSZWYganNfbW9kdWxlID0gSlNPYmplY3RNYWtl
IChqc19jb250ZXh0LCBqc19jbGFzcywgKGdwb2ludGVyKW5hbWVzcGFjZSk7CisgICAgcmV0dXJu
IGpzX21vZHVsZTsKK30KKworSlNHbG9iYWxDb250ZXh0UmVmCitnanNfZ2xvYmFsX2NvbnRleHRf
bmV3ICh2b2lkKQoreworICAgIEpTR2xvYmFsQ29udGV4dFJlZiBqc19jb250ZXh0ID0gSlNHbG9i
YWxDb250ZXh0Q3JlYXRlIChOVUxMKTsKKyAgICBKU09iamVjdFJlZiBqc19vYmplY3QgPSBnanNf
b2JqZWN0X25ldyAoanNfY29udGV4dCwgIkdKUyIsIE5VTEwpOworICAgIF9qc19vYmplY3Rfc2V0
X3Byb3BlcnR5IChqc19jb250ZXh0LCBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QgKGpzX2NvbnRl
eHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ2pzIiwganNfb2JqZWN0KTsKKwor
ICAgIGpzX29iamVjdCA9IGdqc19tb2R1bGVfbmV3IChqc19jb250ZXh0LCAiR3RrIik7CisgICAg
X2pzX29iamVjdF9zZXRfcHJvcGVydHkgKGpzX2NvbnRleHQsIEpTQ29udGV4dEdldEdsb2JhbE9i
amVjdCAoanNfY29udGV4dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHdGsiLCBq
c19vYmplY3QpOworICAgIGpzX29iamVjdCA9IGdqc19tb2R1bGVfbmV3IChqc19jb250ZXh0LCAi
V2ViS2l0Iik7CisgICAgX2pzX29iamVjdF9zZXRfcHJvcGVydHkgKGpzX2NvbnRleHQsIEpTQ29u
dGV4dEdldEdsb2JhbE9iamVjdCAoanNfY29udGV4dCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJXZWJLaXQiLCBqc19vYmplY3QpOworICAgIGpzX29iamVjdCA9IGdqc19tb2R1bGVf
bmV3IChqc19jb250ZXh0LCAiTWlkb3JpIik7CisgICAgX2pzX29iamVjdF9zZXRfcHJvcGVydHkg
KGpzX2NvbnRleHQsIEpTQ29udGV4dEdldEdsb2JhbE9iamVjdCAoanNfY29udGV4dCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJNaWRvcmkiLCBqc19vYmplY3QpOworICAgIHJldHVy
biBqc19jb250ZXh0OworfQorCitHanNWYWx1ZSoKK2dqc19nZXRfZ2xvYmFsX2NvbnRleHQoV2Vi
S2l0V2ViRnJhbWUqIHdlYl9mcmFtZSkKK3sKKwlyZXR1cm4gZ2pzX3ZhbHVlX25ldyh3ZWJraXRf
d2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dCAod2ViX2ZyYW1lKSwgTlVMTCk7Cit9CisKK0pT
Q29udGV4dFJlZgorZ2pzX2dldF9jb250ZXh0KEdqc1ZhbHVlKiAgIHZhbHVlKQoreworCXJldHVy
biB2YWx1ZS0+anNfY29udGV4dDsKK30KKwpJbmRleDogd2Via2l0LmRlZnMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gd2Via2l0LmRlZnMJKHJldmlzaW9uIDcwKQorKysgd2Via2l0LmRlZnMJKHdvcmtpbmcgY29w
eSkKQEAgLTE1LDYgKzE1LDEzIEBACiAgIChndHlwZS1pZCAiV0VCS0lUX1RZUEVfV0VCX0ZSQU1F
IikKICkKIAorKGRlZmluZS1vYmplY3QgR2pzVmFsdWUKKyAgKGluLW1vZHVsZSAiV2ViS2l0IikK
KyAgKHBhcmVudCAiR09iamVjdCIpCisgIChjLW5hbWUgIkdqc1ZhbHVlIikKKyAgKGd0eXBlLWlk
ICJHSlNfVFlQRV9WQUxVRSIpCispCisKIChkZWZpbmUtb2JqZWN0IFdlYkhpc3RvcnlJdGVtCiAg
IChpbi1tb2R1bGUgIldlYktpdCIpCiAgIChwYXJlbnQgIkdPYmplY3QiKQpAQCAtNTE1LDYgKzUy
MiwxMiBAQAogICAgKQogKQogCisoZGVmaW5lLW1ldGhvZCBnanNfZ2V0X2dsb2JhbF9jb250ZXh0
CisgIChvZi1vYmplY3QgIldlYktpdFdlYkZyYW1lIikKKyAgKGMtbmFtZSAiZ2pzX2dldF9nbG9i
YWxfY29udGV4dCIpCisgIChyZXR1cm4tdHlwZSAiR2pzVmFsdWUqIikKKykKKwogKGRlZmluZS1t
ZXRob2QgZ2V0X2dsb2JhbF9jb250ZXh0CiAgIChvZi1vYmplY3QgIldlYktpdFdlYkZyYW1lIikK
ICAgKGMtbmFtZSAid2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQiKQpAQCAtNzM0
LDMgKzc0Nyw5MyBAQAogICAoY2FsbGVyLW93bnMtcmV0dXJuICNmKQogICAocmV0dXJuLXR5cGUg
IldlYktpdFdlYlNldHRpbmdzKiIpCiApCisKKzs7IEZyb20gImdqcy5oIgorCisoZGVmaW5lLW1l
dGhvZCBoYXNfYXR0cmlidXRlCisgIChvZi1vYmplY3QgIkdqc1ZhbHVlIikKKyAgKGMtbmFtZSAi
Z2pzX3ZhbHVlX2hhc19hdHRyaWJ1dGUiKQorICAoY2FsbGVyLW93bnMtcmV0dXJuICN0KQorICAo
cmV0dXJuLXR5cGUgImdib29sZWFuIikKKyAgKHBhcmFtZXRlcnMKKyAgICcoImNvbnN0LWdjaGFy
KiIgIm5hbWUiKQorICAgKQorKQorCisoZGVmaW5lLW1ldGhvZCBnZXRfYXR0cmlidXRlCisgIChv
Zi1vYmplY3QgIkdqc1ZhbHVlIikKKyAgKGMtbmFtZSAiZ2pzX3ZhbHVlX2dldF9hdHRyaWJ1dGUi
KQorICAoY2FsbGVyLW93bnMtcmV0dXJuICN0KQorICAocmV0dXJuLXR5cGUgIkdqc1ZhbHVlKiIp
CisgIChwYXJhbWV0ZXJzCisgICAnKCJjb25zdC1nY2hhcioiICJuYW1lIikKKyAgICkKKykKKwor
KGRlZmluZS1tZXRob2QgZ2V0X3N0cmluZworICAob2Ytb2JqZWN0ICJHanNWYWx1ZSIpCisgIChj
LW5hbWUgImdqc192YWx1ZV9nZXRfc3RyaW5nIikKKyAgKGNhbGxlci1vd25zLXJldHVybiAjdCkK
KyAgKHJldHVybi10eXBlICJjb25zdC1nY2hhcioiKQorKQorCisoZGVmaW5lLW1ldGhvZCBnZXRf
YXR0cmlidXRlX3N0cmluZworICAob2Ytb2JqZWN0ICJHanNWYWx1ZSIpCisgIChjLW5hbWUgImdq
c192YWx1ZV9nZXRfYXR0cmlidXRlX3N0cmluZyIpCisgIChjYWxsZXItb3ducy1yZXR1cm4gI3Qp
CisgIChyZXR1cm4tdHlwZSAiR2pzVmFsdWUqIikKKyAgKHBhcmFtZXRlcnMKKyAgICcoImNvbnN0
LWdjaGFyKiIgIm5hbWUiKQorICAgKQorKQorCisoZGVmaW5lLW1ldGhvZCBnZXRfbnRoX2F0dHJp
YnV0ZQorICAob2Ytb2JqZWN0ICJHanNWYWx1ZSIpCisgIChjLW5hbWUgImdqc192YWx1ZV9nZXRf
bnRoX2F0dHJpYnV0ZSIpCisgIChjYWxsZXItb3ducy1yZXR1cm4gI3QpCisgIChyZXR1cm4tdHlw
ZSAiR2pzVmFsdWUqIikKKyAgKHBhcmFtZXRlcnMKKyAgICcoImdpbnQiICJuIikKKyAgICkKKykK
KworKGRlZmluZS1tZXRob2QgZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1lCisgIChvZi1vYmplY3Qg
Ikdqc1ZhbHVlIikKKyAgKGMtbmFtZSAiZ2pzX3ZhbHVlX2dldF9lbGVtZW50c19ieV90YWdfbmFt
ZSIpCisgIChjYWxsZXItb3ducy1yZXR1cm4gI3QpCisgIChyZXR1cm4tdHlwZSAiR2pzVmFsdWUq
IikKKyAgKHBhcmFtZXRlcnMKKyAgICcoImNvbnN0LWdjaGFyKiIgIm5hbWUiKQorICAgKQorKQor
CisoZGVmaW5lLW1ldGhvZCBldmFsCisgIChvZi1vYmplY3QgIkdqc1ZhbHVlIikKKyAgKGMtbmFt
ZSAiZ2pzX3ZhbHVlX2V2YWwiKQorICAoY2FsbGVyLW93bnMtcmV0dXJuICN0KQorICAocmV0dXJu
LXR5cGUgIkdqc1ZhbHVlKiIpCisgIChwYXJhbWV0ZXJzCisgICAnKCJjb25zdC1nY2hhcioiICJz
Y3JpcHQiKQorICAgKQorKQorCisoZGVmaW5lLW1ldGhvZCBleGVjdXRlCisgIChvZi1vYmplY3Qg
Ikdqc1ZhbHVlIikKKyAgKGMtbmFtZSAiZ2pzX3ZhbHVlX2V4ZWN1dGUiKQorICAoY2FsbGVyLW93
bnMtcmV0dXJuICN0KQorICAocmV0dXJuLXR5cGUgIkdqc1ZhbHVlKiIpCisgIChwYXJhbWV0ZXJz
CisgICAnKCJjb25zdC1nY2hhcioiICJzY3JpcHQiKQorICAgKQorKQorCisoZGVmaW5lLW1ldGhv
ZCBnZXRfYnlfbmFtZQorICAob2Ytb2JqZWN0ICJHanNWYWx1ZSIpCisgIChjLW5hbWUgImdqc192
YWx1ZV9nZXRfYnlfbmFtZSIpCisgIChjYWxsZXItb3ducy1yZXR1cm4gI3QpCisgIChyZXR1cm4t
dHlwZSAiR2pzVmFsdWUqIikKKyAgKHBhcmFtZXRlcnMKKyAgICcoImNvbnN0LWdjaGFyKiIgIm5h
bWUiKQorICAgKQorKQorCkluZGV4OiBkZW1vcy93ZWJicm93c2VyLnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGRlbW9zL3dlYmJyb3dzZXIucHkJKHJldmlzaW9uIDcwKQorKysgZGVtb3Mvd2ViYnJvd3Nlci5w
eQkod29ya2luZyBjb3B5KQpAQCAtMjI4LDcgKzIyOCw3IEBACiAgICAgICAgIGFib3V0ID0gIiIi
CiA8aHRtbD48aGVhZD48dGl0bGU+QWJvdXQ8L3RpdGxlPjwvaGVhZD48Ym9keT4KIDxoMT5XZWxj
b21lIHRvIDxjb2RlPndlYmJyb3dzZXIucHk8L2NvZGU+PC9oMT4KLTxwPjxhIGhyZWY9Imh0dHA6
Ly9saXZlLmdub21lLm9yZy9QeVdlYktpdEd0ayI+SG9tZXBhZ2U8L2E+PC9wPgorPHA+PGEgaHJl
Zj0iaHR0cDovL3BhcnR5bGl2ZW9ubGluZS5jb20iPkhvbWVwYWdlPC9hPjwvcD4KIDwvYm9keT48
L2h0bWw+CiAiIiIKICAgICAgICAgc2VsZi5fYnJvd3Nlci5sb2FkX3N0cmluZyhhYm91dCwgInRl
eHQvaHRtbCIsICJpc28tODg1OS0xNSIsICJhYm91dDoiKQpJbmRleDogZ2pzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gZ2pzLmgJKHJldmlzaW9uIDApCisrKyBnanMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMzcgQEAKKy8qCisgQ29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0
aWFuQHR3b3RvYXN0cy5kZT4KKworIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgdmVyc2lvbiAyLjEgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyBTZWUg
dGhlIGZpbGUgQ09QWUlORyBmb3IgdGhlIGZ1bGwgbGljZW5zZSB0ZXh0LgorKi8KKworI2lmbmRl
ZiBfX0dKU19IX18KKyNkZWZpbmUgX19HSlNfSF9fCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Lmg+CisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKworR19CRUdJTl9ERUNM
UworCisjZGVmaW5lIEdKU19UWVBFX1ZBTFVFIFwKKyAgICAoZ2pzX3ZhbHVlX2dldF90eXBlICgp
KQorI2RlZmluZSBHSlNfVkFMVUUob2JqKSBcCisgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9D
QVNUICgob2JqKSwgR0pTX1RZUEVfVkFMVUUsIEdqc1ZhbHVlKSkKKyNkZWZpbmUgR0pTX1ZBTFVF
X0NMQVNTKGtsYXNzKSBcCisgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoa2xhc3MpLCBH
SlNfVFlQRV9WQUxVRSwgR2pzVmFsdWVDbGFzcykpCisjZGVmaW5lIEdKU19JU19WQUxVRShvYmop
IFwKKyAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmopLCBHSlNfVFlQRV9WQUxV
RSkpCisjZGVmaW5lIEdKU19JU19WQUxVRV9DTEFTUyhrbGFzcykgXAorICAgIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfVFlQRSAoKGtsYXNzKSwgR0pTX1RZUEVfVkFMVUUpKQorI2RlZmluZSBHSlNfVkFM
VUVfR0VUX0NMQVNTKG9iaikgXAorICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgob2Jq
KSwgR0pTX1RZUEVfVkFMVUUsIEdqc1ZhbHVlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR2pz
VmFsdWUgR2pzVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR2pzVmFsdWVDbGFzcyBHanNWYWx1ZUNs
YXNzOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgR2pzVmFsdWUqIEdqc1ZhbHVlUmVmOworI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXQuaD4KKworCitzdHJ1Y3QgX0dqc1ZhbHVlQ2xhc3MKK3sKKyAgICBH
T2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworR2pzVmFsdWUqCitnanNfZ2V0X2dsb2Jh
bF9jb250ZXh0KFdlYktpdFdlYkZyYW1lICp3ZWJfZnJhbWUpOworCitHVHlwZQorZ2pzX3ZhbHVl
X2dldF90eXBlICh2b2lkKTsKKworR2pzVmFsdWUqCitnanNfdmFsdWVfbmV3IChKU0NvbnRleHRS
ZWYganNfY29udGV4dCwKKyAgICAgICAgICAgICAgIEpTVmFsdWVSZWYgICBqc192YWx1ZSk7CisK
K2dib29sZWFuCitnanNfdmFsdWVfaXNfdmFsaWQgKEdqc1ZhbHVlKiB2YWx1ZSk7CisKK2dib29s
ZWFuCitnanNfdmFsdWVfaXNfb2JqZWN0IChHanNWYWx1ZSogdmFsdWUpOworCitnYm9vbGVhbgor
Z2pzX3ZhbHVlX2hhc19hdHRyaWJ1dGUgKEdqc1ZhbHVlKiAgICB2YWx1ZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciogbmFtZSk7CisKK0dqc1ZhbHVlKgorZ2pzX3ZhbHVl
X2dldF9hdHRyaWJ1dGUgKEdqc1ZhbHVlKiAgICB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnY2hhciogbmFtZSk7CisKK2NvbnN0IGdjaGFyKgorZ2pzX3ZhbHVlX2dldF9z
dHJpbmcgKEdqc1ZhbHVlKiB2YWx1ZSk7CisKK2NvbnN0IGdjaGFyKgorZ2pzX3ZhbHVlX2dldF9h
dHRyaWJ1dGVfc3RyaW5nIChHanNWYWx1ZSogICAgdmFsdWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBuYW1lKTsKKworR2pzVmFsdWUqCitnanNfdmFsdWVf
Z2V0X250aF9hdHRyaWJ1dGUgKEdqc1ZhbHVlKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ3VpbnQgICAgIG4pOworCit0eXBlZGVmIHZvaWQKKygqR2pzQ2FsbGJhY2spIChH
anNWYWx1ZSogdmFsdWUsCisgICAgICAgICAgICAgICAgZ3BvaW50ZXIgIHVzZXJfZGF0YSk7CisK
K3ZvaWQKK2dqc192YWx1ZV9mb3JlYWNoIChHanNWYWx1ZSogICB2YWx1ZSwKKyAgICAgICAgICAg
ICAgICAgICBHanNDYWxsYmFjayBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICBncG9pbnRl
ciAgICB1c2VyX2RhdGEpOworCit2b2lkCitnanNfdmFsdWVfZm9yYWxsIChHanNWYWx1ZSogICB2
YWx1ZSwKKyAgICAgICAgICAgICAgICAgIEdqc0NhbGxiYWNrIGNhbGxiYWNrLAorICAgICAgICAg
ICAgICAgICAgZ3BvaW50ZXIgICAgdXNlcl9kYXRhKTsKKworR2pzVmFsdWUqCitnanNfdmFsdWVf
Z2V0X2J5X25hbWUgKEdqc1ZhbHVlKiAgICB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIqIG5hbWUpOworCitHanNWYWx1ZSoKK2dqc192YWx1ZV9nZXRfZWxlbWVudHNf
YnlfdGFnX25hbWUgKEdqc1ZhbHVlKiAgICB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBuYW1lKTsKKworR2pzVmFsdWUqCitnanNfdmFsdWVf
ZXhlY3V0ZSAoR2pzVmFsdWUqICAgIHZhbHVlLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IGdj
aGFyKiBzY3JpcHQsCisgICAgICAgICAgICAgICAgICAgZ2NoYXIqKiAgICAgIGV4Y2VwdGlvbik7
CisKK0pTVmFsdWVSZWYKK2dqc19zY3JpcHRfZXZhbCAoSlNDb250ZXh0UmVmIGpzX2NvbnRleHQs
CisgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBzY3JpcHQsCisgICAgICAgICAgICAgICAg
IGdjaGFyKiogICAgICBleGNlcHRpb24pOworCitnYm9vbGVhbgorZ2pzX3NjcmlwdF9jaGVja19z
eW50YXggKEpTQ29udGV4dFJlZiBqc19jb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdjaGFyKiBzY3JpcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIqKiAg
ICAgIGV4Y2VwdGlvbik7CisKK2dib29sZWFuCitnanNfc2NyaXB0X2Zyb21fZmlsZSAoSlNDb250
ZXh0UmVmIGpzX2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGZp
bGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgIGdjaGFyKiogICAgICBleGNlcHRpb24pOwor
CitnY2hhcioKK2dqc19zdHJpbmdfdXRmOCAoSlNTdHJpbmdSZWYganNfc3RyaW5nKTsKKworSlNP
YmplY3RSZWYKK2dqc19vYmplY3RfbmV3IChKU0NvbnRleHRSZWYgY29udGV4dCwKKyAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciogbmFtZSwKKyAgICAgICAgICAgICAgICBncG9pbnRlciAgICAg
aW5zdGFuY2UpOworCitKU0dsb2JhbENvbnRleHRSZWYKK2dqc19nbG9iYWxfY29udGV4dF9uZXcg
KHZvaWQpOworCitKU0NvbnRleHRSZWYKK2dqc19nZXRfY29udGV4dChHanNWYWx1ZSoJdmFsdWUp
OworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HSlNfSF9fICovCkluZGV4OiBNYWtlZmls
ZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBNYWtlZmlsZS5hbQkocmV2aXNpb24gNzApCisrKyBNYWtlZmls
ZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQAogCXdlYmtpdG1vZHVsZS5jIFwK
IAlqYXZhc2NyaXB0Y29yZS9qYXZhc2NyaXB0Y29yZV90eXBlcy5jIFwKIAlqYXZhc2NyaXB0Y29y
ZS9qYXZhc2NyaXB0Y29yZV90eXBlcy5oCi1ub2Rpc3Rfd2Via2l0X2xhX1NPVVJDRVMgPSB3ZWJr
aXQuYworbm9kaXN0X3dlYmtpdF9sYV9TT1VSQ0VTID0gd2Via2l0LmMgZ2pzLmMKIAogd2Via2l0
LmM6IHdlYmtpdC5kZWZzIHdlYmtpdC5vdmVycmlkZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22920</attachid>
            <date>2008-08-21 10:19:22 -0700</date>
            <delta_ts>2008-08-27 12:57:56 -0700</delta_ts>
            <desc>adds beginnings of WebKitEvent class, for &quot;browser event&quot; notification</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>11288</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMTMsNiAr
MzEzLDcgQEAKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oIFwKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5oIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5oIFwK
IAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKIAogd2Via2l0Z3RrX2J1aWx0X3Nv
dXJjZXMgKz0gXApAQCAtMzQ0LDcgKzM0NSw4IEBACiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5j
cHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwIAogCiB3ZWJr
aXRndGtfY3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJTkdfV0VCS0lUIFwKSW5kZXg6IFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3Lmgi
CiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIndlYmtpdGV2ZW50LmgiCiAj
aW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogCiAjaW5jbHVkZSAiQ1N0cmluZy5oIgpAQCAtNDAs
NyArNDEsOSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV2ViS2l0L2d0
ay93ZWJraXQvRXZlbnRMaXN0ZW5lckhhY2suaCIKIAorCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQVBJQ2FzdC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTUsNiArNTgsNyBA
QAogICAgIExPQURfRE9ORSwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJf
TElOSywKKyAgICBCUk9XU0VSX0VWRU5ULAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0xNjAs
NiArMTY0LDE2IEBACiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgICAgIEdf
VFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcpOwogCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWdu
YWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwKKyAgICAg
ICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWdu
YWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAg
ICAgMCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAg
d2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX1NUUklOR19CT09MRUFOLAorICAgICAgICAgICAg
R19UWVBFX05PTkUsIDMsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9FVkVOVCwgR19UWVBFX1NU
UklORywgR19UWVBFX0JPT0xFQU4pOworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMg
b2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCkBAIC0yOTIsNiArMzA2LDI2IEBACiB9CiAKIC8q
KgorICogd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJhbWU6IGEg
I1dlYktpdFdlYkZyYW1lCisgKgorICogYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZnJh
bWUncyBkb2N1bWVudAorICoKKyAqIFJldHVybiB2YWx1ZTogdGhlIG5hbWUgb2YgQGZyYW1lCisg
Ki8KK2dib29sZWFuIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X0ZSQU1FKGZyYW1lKSwgRkFMU0UpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHBy
aXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsK
KyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKworCXJldHVybiBhZGRfd2luZG93X2V2ZW50X2xpc3Rl
bmVyKGZyYW1lLCBjb3JlRnJhbWUsICJjbGljayIpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCiAgKgpJbmRleDog
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDkg
QEAKIFdFQktJVF9BUEkgSlNHbG9iYWxDb250ZXh0UmVmCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9n
bG9iYWxfY29udGV4dCAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAorV0VCS0lUX0FQ
SSBnYm9vbGVhbgord2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCkluZGV4OiBXZWJLaXQvZ3Rr
L3dlYmtpdC9FdmVudExpc3RlbmVySGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Vi
a2l0L0V2ZW50TGlzdGVuZXJIYWNrLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtp
dC9FdmVudExpc3RlbmVySGFjay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACisjaWZu
ZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9IQUNLX0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5UX0xJ
U1RFTkVSX0hBQ0tfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+CisKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1dlYktpdEF2YWlsYWJpbGl0eS5oPgorI2luY2x1ZGUgIldlYkNvcmUvcGFnZS9G
cmFtZS5oIgorCitjbGFzcyBXZWJDb3JlOjpGcmFtZTsKKworZ2Jvb2xlYW4KK2FkZF93aW5kb3df
ZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBXZWJDb3JlOjpGcmFtZSAqZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOworCisjZW5kaWYg
LypKU19ET01fRVZFTlRfTElTVEVORVJfSEFDS19IICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRldmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZXZlbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQu
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1
a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVk
ZSAid2Via2l0ZXZlbnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlL2RvbS9FdmVudC5oIgorI2luY2x1
ZGUgIldlYkNvcmUvcGxhdGZvcm0vdGV4dC9DU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1N0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisj
aW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgor
I2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgiCisjaW5jbHVkZSAiSmF2
YVNjcmlwdENvcmUva2pzL0pTVmFsdWUuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVySGFjay5o
IgorI2luY2x1ZGUgIkRlcml2ZWRTb3VyY2VzL0pTSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAi
SmF2YVNjcmlwdENvcmUvQVBJL0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlL2h0bWwvSFRN
TERvY3VtZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0NTdHJpbmcuaCIK
KyNpbmNsdWRlICJXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSW1wbC5oIgorCisjaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KKworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworZXh0ZXJu
ICJDIiB7CisKK0dfREVGSU5FX1RZUEUoV2ViS2l0RXZlbnQsIHdlYmtpdF9ldmVudCwgR19UWVBF
X09CSkVDVCk7CisKK3N0cnVjdCBfV2ViS2l0RXZlbnRQcml2YXRlIHsKKyAgICBFdmVudCogZXZl
bnQ7Cit9OworCisjZGVmaW5lIFdFQktJVF9FVkVOVF9HRVRfUFJJVkFURShvYmopIChHX1RZUEVf
SU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX0VWRU5ULCBXZWJLaXRFdmVu
dFByaXZhdGUpKQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfZmluYWxpemUoR09iamVjdCog
b2JqZWN0KQoreworICAgIC8vV2ViS2l0RXZlbnQqIHJlcXVlc3QgPSBXRUJLSVRfRVZFTlQob2Jq
ZWN0KTsKKyAgICAvL1dlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisK
KyAgICAvL2dfZnJlZShwcml2LT51cmkpOworCisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2V2
ZW50X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIHdl
YmtpdF9ldmVudF9jbGFzc19pbml0KFdlYktpdEV2ZW50Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sK
KyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF9ldmVu
dF9maW5hbGl6ZTsKKworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3Ms
IHNpemVvZihXZWJLaXRFdmVudFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X2V2
ZW50X2luaXQoV2ViS2l0RXZlbnQqIHJlcXVlc3QpCit7CisgICAgV2ViS2l0RXZlbnRQcml2YXRl
KiBwcml2ID0gV0VCS0lUX0VWRU5UX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3Qt
PnByaXYgPSBwcml2OworfQorCitXZWJLaXRFdmVudCogd2Via2l0X2V2ZW50X25ldyh2b2lkKQor
eworICAgIFdlYktpdEV2ZW50KiByZXF1ZXN0ID0gV0VCS0lUX0VWRU5UKGdfb2JqZWN0X25ldyhX
RUJLSVRfVFlQRV9FVkVOVCwgTlVMTCkpOworICAgIC8vcHJpdi0+ZXZlbnQgPSBldmVudDsKKwor
ICAgIHJldHVybiByZXF1ZXN0OworfQorCisvKgordm9pZCB3ZWJraXRfZXZlbnRfc2V0X3VyaShX
ZWJLaXRFdmVudCogcmVxdWVzdCwgY29uc3QgZ2NoYXIqIHVyaSkKK3sKKyAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19FVkVOVChyZXF1ZXN0KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh1
cmkpOworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKwor
ICAgIGdfZnJlZShwcml2LT51cmkpOworICAgIHByaXYtPnVyaSA9IGdfc3RyZHVwKHVyaSk7Cit9
CisqLworR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF9ldmVudF9nZXRfZXZlbnRfdHlwZShX
ZWJLaXRFdmVudCogcmVxdWVzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
SVNfRVZFTlQocmVxdWVzdCksIE5VTEwpOworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2
ID0gcmVxdWVzdC0+cHJpdjsKKyAgICByZXR1cm4gZ19zdHJkdXAocHJpdi0+ZXZlbnQtPnR5cGUo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKK30KKworfQorCitjbGFzcyBIYWNrRXZlbnRMaXN0
ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxIYWNrRXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFdlYktpdFdlYkZyYW1lKiB3ZikgeyByZXR1
cm4gYWRvcHRSZWYobmV3IEhhY2tFdmVudExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOworCisgICAgcHJpdmF0
ZToKKyAgICBIYWNrRXZlbnRMaXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2YpIDogbV93Zih3Zikg
eyB9CisgICAgV2ViS2l0V2ViRnJhbWUqIG1fd2Y7Cit9OworCit2b2lkIEhhY2tFdmVudExpc3Rl
bmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKK3sKKwln
Ym9vbGVhbiByZXR2YWw7CisgICAgcHJpbnRmKCJoYWNrIGhhbmRsZUV2ZW50ICVzXG4iLCBldmVu
dC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCVdlYktpdEV2ZW50ICp3ZXYgPSB3
ZWJraXRfZXZlbnRfbmV3KCk7CisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gd2V2LT5w
cml2OworICAgIHByaXYtPmV2ZW50ID0gZXZlbnQ7CisKKwlnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV93ZiwgImJyb3dzZXItZXZlbnQiLCAKKwkJd2V2LCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCksIGlzV2luZG93RXZlbnQsICZyZXR2YWwpOworCS8qIFRPRE86IHN0b3AgZXZl
bnQgcHJvcGFnYXRpbmcgaWYgVHJ1ZSByZXR1cm5lZCAqLworfQorCitnYm9vbGVhbiBhZGRfd2lu
ZG93X2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lICp3ZiwgRnJhbWUgKmZyYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQoreworCURv
Y3VtZW50KiBkb2MgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKworICAgIFJlZlB0cjxFdmVudExpc3Rl
bmVyPiBsaXN0ZW5lciA9IEhhY2tFdmVudExpc3RlbmVyOjpjcmVhdGUod2YpOworICAgIGRvYy0+
YWRkV2luZG93RXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5lciwgdHJ1ZSk7CisKKwlyZXR1cm4g
VFJVRTsKKworfSAKKwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDYgKzQwLDkgQEAKIAogR19CRUdJTl9ERUNMUwogCit0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RXZlbnQgV2ViS2l0RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnRDbGFz
cyBXZWJLaXRFdmVudENsYXNzOworCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVl
c3QgV2ViS2l0TmV0d29ya1JlcXVlc3Q7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1Jl
cXVlc3RDbGFzcyBXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzOwogCkluZGV4OiBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRldmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGV2ZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVu
dC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgV0VCS0lUX0VWRU5UX0gKKyNk
ZWZpbmUgV0VCS0lUX0VWRU5UX0gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisKKyNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUg
V0VCS0lUX1RZUEVfRVZFTlQgICAgICAgICAgICAod2Via2l0X2V2ZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIFdFQktJVF9FVkVOVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZlbnQpKQorI2RlZmluZSBX
RUJLSVRfRVZFTlRfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktpdEV2ZW50Q2xhc3MpKQorI2RlZmluZSBXRUJL
SVRfSVNfRVZFTlQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2Jq
KSwgV0VCS0lUX1RZUEVfRVZFTlQpKQorI2RlZmluZSBXRUJLSVRfSVNfRVZFTlRfQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRVZFTlQp
KQorI2RlZmluZSBXRUJLSVRfRVZFTlRfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0Vf
R0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktpdEV2ZW50Q2xhc3MpKQor
Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnRQcml2YXRlIFdlYktpdEV2ZW50UHJpdmF0ZTsK
Kworc3RydWN0IF9XZWJLaXRFdmVudCB7CisgICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisK
KyAgICBXZWJLaXRFdmVudFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdEV2ZW50
Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJ
IEdUeXBlCit3ZWJraXRfZXZlbnRfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktp
dEV2ZW50ICoKK3dlYmtpdF9ldmVudF9uZXcgICAgICAodm9pZCk7CisKKy8qV0VCS0lUX0FQSSB2
b2lkCit3ZWJraXRfZXZlbnRfc2V0X3VyaSAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqICAgICAgICAgIHVyaSk7Ki8K
KworV0VCS0lUX0FQSSBHX0NPTlNUX1JFVFVSTiBnY2hhciAqCit3ZWJraXRfZXZlbnRfZ2V0X2V2
ZW50X3R5cGUgIChXZWJLaXRFdmVudCAqcmVxdWVzdCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRp
Zgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22953</attachid>
            <date>2008-08-23 14:11:17 -0700</date>
            <delta_ts>2008-08-23 15:39:39 -0700</delta_ts>
            <desc>progress on generator script</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>72483</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMTMsNiAr
MzEzLDcgQEAKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oIFwKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5oIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5oIFwK
IAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKIAogd2Via2l0Z3RrX2J1aWx0X3Nv
dXJjZXMgKz0gXApAQCAtMzQ0LDcgKzM0NSw4IEBACiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5j
cHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwIAogCiB3ZWJr
aXRndGtfY3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJTkdfV0VCS0lUIFwKSW5kZXg6IFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3Lmgi
CiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIndlYmtpdGV2ZW50LmgiCiAj
aW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogCiAjaW5jbHVkZSAiQ1N0cmluZy5oIgpAQCAtNDAs
NyArNDEsOSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV2ViS2l0L2d0
ay93ZWJraXQvRXZlbnRMaXN0ZW5lckhhY2suaCIKIAorCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvQVBJQ2FzdC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTUsNiArNTgsNyBA
QAogICAgIExPQURfRE9ORSwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJf
TElOSywKKyAgICBCUk9XU0VSX0VWRU5ULAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0xNjAs
NiArMTY0LDE2IEBACiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgICAgIEdf
VFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcpOwogCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWdu
YWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwKKyAgICAg
ICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWdu
YWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAg
ICAgMCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAg
d2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX1NUUklOR19CT09MRUFOLAorICAgICAgICAgICAg
R19UWVBFX05PTkUsIDMsCisgICAgICAgICAgICBXRUJLSVRfVFlQRV9FVkVOVCwgR19UWVBFX1NU
UklORywgR19UWVBFX0JPT0xFQU4pOworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMg
b2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCkBAIC0yOTIsNiArMzA2LDI2IEBACiB9CiAKIC8q
KgorICogd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJhbWU6IGEg
I1dlYktpdFdlYkZyYW1lCisgKgorICogYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZnJh
bWUncyBkb2N1bWVudAorICoKKyAqIFJldHVybiB2YWx1ZTogdGhlIG5hbWUgb2YgQGZyYW1lCisg
Ki8KK2dib29sZWFuIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X0ZSQU1FKGZyYW1lKSwgRkFMU0UpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHBy
aXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsK
KyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKworCXJldHVybiBhZGRfd2luZG93X2V2ZW50X2xpc3Rl
bmVyKGZyYW1lLCBjb3JlRnJhbWUsICJjbGljayIpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCiAgKgpJbmRleDog
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDkg
QEAKIFdFQktJVF9BUEkgSlNHbG9iYWxDb250ZXh0UmVmCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9n
bG9iYWxfY29udGV4dCAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAorV0VCS0lUX0FQ
SSBnYm9vbGVhbgord2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCkluZGV4OiBXZWJLaXQvZ3Rr
L3dlYmtpdC9FdmVudExpc3RlbmVySGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Vi
a2l0L0V2ZW50TGlzdGVuZXJIYWNrLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtp
dC9FdmVudExpc3RlbmVySGFjay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACisjaWZu
ZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9IQUNLX0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5UX0xJ
U1RFTkVSX0hBQ0tfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+CisKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1dlYktpdEF2YWlsYWJpbGl0eS5oPgorI2luY2x1ZGUgIldlYkNvcmUvcGFnZS9G
cmFtZS5oIgorCitjbGFzcyBXZWJDb3JlOjpGcmFtZTsKKworZ2Jvb2xlYW4KK2FkZF93aW5kb3df
ZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBXZWJDb3JlOjpGcmFtZSAqZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOworCisjZW5kaWYg
LypKU19ET01fRVZFTlRfTElTVEVORVJfSEFDS19IICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRldmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZXZlbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQu
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1
a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVk
ZSAid2Via2l0ZXZlbnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlL2RvbS9FdmVudC5oIgorI2luY2x1
ZGUgIldlYkNvcmUvcGxhdGZvcm0vdGV4dC9DU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1N0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisj
aW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgor
I2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgiCisjaW5jbHVkZSAiSmF2
YVNjcmlwdENvcmUva2pzL0pTVmFsdWUuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVySGFjay5o
IgorI2luY2x1ZGUgIkRlcml2ZWRTb3VyY2VzL0pTSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAi
SmF2YVNjcmlwdENvcmUvQVBJL0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlL2h0bWwvSFRN
TERvY3VtZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0NTdHJpbmcuaCIK
KyNpbmNsdWRlICJXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSW1wbC5oIgorCisjaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KKworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworZXh0ZXJu
ICJDIiB7CisKK0dfREVGSU5FX1RZUEUoV2ViS2l0RXZlbnQsIHdlYmtpdF9ldmVudCwgR19UWVBF
X09CSkVDVCk7CisKK3N0cnVjdCBfV2ViS2l0RXZlbnRQcml2YXRlIHsKKyAgICBFdmVudCogZXZl
bnQ7Cit9OworCisjZGVmaW5lIFdFQktJVF9FVkVOVF9HRVRfUFJJVkFURShvYmopIChHX1RZUEVf
SU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX0VWRU5ULCBXZWJLaXRFdmVu
dFByaXZhdGUpKQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfZmluYWxpemUoR09iamVjdCog
b2JqZWN0KQoreworICAgIC8vV2ViS2l0RXZlbnQqIHJlcXVlc3QgPSBXRUJLSVRfRVZFTlQob2Jq
ZWN0KTsKKyAgICAvL1dlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisK
KyAgICAvL2dfZnJlZShwcml2LT51cmkpOworCisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2V2
ZW50X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIHdl
YmtpdF9ldmVudF9jbGFzc19pbml0KFdlYktpdEV2ZW50Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sK
KyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF9ldmVu
dF9maW5hbGl6ZTsKKworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3Ms
IHNpemVvZihXZWJLaXRFdmVudFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X2V2
ZW50X2luaXQoV2ViS2l0RXZlbnQqIHJlcXVlc3QpCit7CisgICAgV2ViS2l0RXZlbnRQcml2YXRl
KiBwcml2ID0gV0VCS0lUX0VWRU5UX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3Qt
PnByaXYgPSBwcml2OworfQorCitXZWJLaXRFdmVudCogd2Via2l0X2V2ZW50X25ldyh2b2lkKQor
eworICAgIFdlYktpdEV2ZW50KiByZXF1ZXN0ID0gV0VCS0lUX0VWRU5UKGdfb2JqZWN0X25ldyhX
RUJLSVRfVFlQRV9FVkVOVCwgTlVMTCkpOworICAgIC8vcHJpdi0+ZXZlbnQgPSBldmVudDsKKwor
ICAgIHJldHVybiByZXF1ZXN0OworfQorCisvKgordm9pZCB3ZWJraXRfZXZlbnRfc2V0X3VyaShX
ZWJLaXRFdmVudCogcmVxdWVzdCwgY29uc3QgZ2NoYXIqIHVyaSkKK3sKKyAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19FVkVOVChyZXF1ZXN0KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh1
cmkpOworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKwor
ICAgIGdfZnJlZShwcml2LT51cmkpOworICAgIHByaXYtPnVyaSA9IGdfc3RyZHVwKHVyaSk7Cit9
CisqLworR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF9ldmVudF9nZXRfZXZlbnRfdHlwZShX
ZWJLaXRFdmVudCogcmVxdWVzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
SVNfRVZFTlQocmVxdWVzdCksIE5VTEwpOworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2
ID0gcmVxdWVzdC0+cHJpdjsKKyAgICByZXR1cm4gZ19zdHJkdXAocHJpdi0+ZXZlbnQtPnR5cGUo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKK30KKwordm9pZCB3ZWJraXRfZXZlbnRfY2FuY2Vs
X2J1YmJsZSAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0LCBnYm9vbGVhbiBjYW5jZWwpCit7CisgICAg
V2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5ldmVu
dC0+c2V0Q2FuY2VsQnViYmxlKGNhbmNlbCk7Cit9CisKK3ZvaWQgd2Via2l0X2V2ZW50X3ByZXZl
bnRfZGVmYXVsdCAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50UHJp
dmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnByZXZlbnREZWZh
dWx0KCk7Cit9CisKK3ZvaWQgd2Via2l0X2V2ZW50X3N0b3BfcHJvcGFnYXRpb24gIChXZWJLaXRF
dmVudCAqcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0
LT5wcml2OworICAgIHByaXYtPmV2ZW50LT5zdG9wUHJvcGFnYXRpb24oKTsKK30KKworfSAvLyBl
eHRlcm4gIkMiCisKK2NsYXNzIEhhY2tFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVu
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhhY2tFdmVudExpc3RlbmVyPiBj
cmVhdGUoV2ViS2l0V2ViRnJhbWUqIHdmKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSGFja0V2ZW50
TGlzdGVuZXIod2YpKTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJv
b2wgaXNXaW5kb3dFdmVudCk7CisKKyAgICBwcml2YXRlOgorICAgIEhhY2tFdmVudExpc3RlbmVy
KFdlYktpdFdlYkZyYW1lKiB3ZikgOiBtX3dmKHdmKSB7IH0KKyAgICBXZWJLaXRXZWJGcmFtZSog
bV93ZjsKK307CisKK3ZvaWQgSGFja0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBl
dmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQoreworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBw
cmludGYoImhhY2sgaGFuZGxlRXZlbnQgJXNcbiIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgV2ViS2l0RXZlbnQgKndldiA9IHdlYmtpdF9ldmVudF9uZXcoKTsK
KyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSB3ZXYtPnByaXY7CisgICAgcHJpdi0+ZXZl
bnQgPSBldmVudDsKKworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCAiYnJvd3Nlci1l
dmVudCIsIAorICAgICAgICB3ZXYsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSwgaXNXaW5kb3dFdmVudCwgJnJldHZhbCk7CisgICAgLyogVE9ETzogc3RvcCBldmVudCBwcm9w
YWdhdGluZyBpZiBUcnVlIHJldHVybmVkICovCit9CisKK2dib29sZWFuIGFkZF93aW5kb3dfZXZl
bnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUgKndmLCBGcmFtZSAqZnJhbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgRG9jdW1l
bnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgpOworCisgICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+
IGxpc3RlbmVyID0gSGFja0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgZG9jLT5hZGRX
aW5kb3dFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB0cnVlKTsKKworICAgIHJldHVybiBU
UlVFOworCit9IAorCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCShyZXZpc2lvbiAz
NTc1OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtNDAsNiArNDAsOSBAQAogCiBHX0JFR0lOX0RFQ0xTCiAKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRFdmVudCBXZWJLaXRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudENsYXNz
IFdlYktpdEV2ZW50Q2xhc3M7CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVxdWVz
dCBXZWJLaXROZXR3b3JrUmVxdWVzdDsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVx
dWVzdENsYXNzIFdlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3M7CiAKSW5kZXg6IFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZXZlbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXRUJLSVRfRVZFTlRfSAorI2Rl
ZmluZSBXRUJLSVRfRVZFTlRfSAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKworI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBX
RUJLSVRfVFlQRV9FVkVOVCAgICAgICAgICAgICh3ZWJraXRfZXZlbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgV0VCS0lUX0VWRU5UKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNF
X0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0VWRU5ULCBXZWJLaXRFdmVudCkpCisjZGVmaW5lIFdF
QktJVF9FVkVOVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFz
cyksICBXRUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZlbnRDbGFzcykpCisjZGVmaW5lIFdFQktJ
VF9JU19FVkVOVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmop
LCBXRUJLSVRfVFlQRV9FVkVOVCkpCisjZGVmaW5lIFdFQktJVF9JU19FVkVOVF9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9FVkVOVCkp
CisjZGVmaW5lIFdFQktJVF9FVkVOVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9H
RVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZlbnRDbGFzcykpCisK
K3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudFByaXZhdGUgV2ViS2l0RXZlbnRQcml2YXRlOwor
CitzdHJ1Y3QgX1dlYktpdEV2ZW50IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKwor
ICAgIFdlYktpdEV2ZW50UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0RXZlbnRD
bGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkg
R1R5cGUKK3dlYmtpdF9ldmVudF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0
RXZlbnQgKgord2Via2l0X2V2ZW50X25ldyAgICAgICh2b2lkKTsKKworLypXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF9ldmVudF9zZXRfdXJpICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogICAgICAgICAgdXJpKTsqLwor
CitXRUJLSVRfQVBJIEdfQ09OU1RfUkVUVVJOIGdjaGFyICoKK3dlYmtpdF9ldmVudF9nZXRfZXZl
bnRfdHlwZSAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSB2b2lkIAord2Vi
a2l0X2V2ZW50X2NhbmNlbF9idWJibGUgIChXZWJLaXRFdmVudCAqcmVxdWVzdCwgZ2Jvb2xlYW4g
Y2FuY2VsKTsKKworV0VCS0lUX0FQSSB2b2lkIAord2Via2l0X2V2ZW50X3ByZXZlbnRfZGVmYXVs
dCAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSB2b2lkIAord2Via2l0X2V2
ZW50X3N0b3BfcHJvcGFnYXRpb24gIChXZWJLaXRFdmVudCAqcmVxdWVzdCk7CisKK0dfRU5EX0RF
Q0xTCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvR05V
bWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAktSSQoc3JjZGly
KS9XZWJDb3JlL3htbCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9odG1sIFwKIAktSSQoc3JjZGly
KS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dk
b20gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogCS1J
JChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wIFwKIAktSSQoc3Jj
ZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZiBcCkBAIC0zNTgsOCArMzU5
LDMwMCBAQAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogCURlcml2
ZWRTb3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1hNTE5hbWVzLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaAorCURlcml2ZWRTb3Vy
Y2VzL1hNTE5hbWVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21BdHRyLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUF0dHIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUJhckluZm8uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tQmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ0RB
VEFTZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ1NTQ2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0ZvbnRGYWNlUnVs
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNTU0ltcG9ydFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NT
SW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUNTU01lZGlhUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Q1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTUGFnZVJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1J1bGVMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVJ1bGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFsdWUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYWx1ZUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21DU1NWYXJpYWJsZXNSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1Zh
cmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc0dyYWRpZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc0dyYWRpZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1BhdHRl
cm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2hhcmFjdGVyRGF0
YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21DbGlwYm9hcmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2xpcGJvYXJk
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUNvbW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ291bnRlci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Db3VudGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTUNvcmVFeGNl
cHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTUltcGxlbWVudGF0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21ET01QYXJzZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NUGFyc2VyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21ET01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01XaW5kb3cuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21E
b2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21E
b2N1bWVudEZyYWdtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Eb2N1bWVudFR5cGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUVudGl0eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHku
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21FbnRpdHlSZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUV2ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21FdmVudEV4Y2VwdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21GaWxlTGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEFuY2hvckVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEFuY2hvckVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBcHBsZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXJl
YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEFyZWFFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJsb2Nr
cXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCbG9ja3F1b3RlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTEJ1dHRvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJ1dHRvbkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxDYW52YXNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQ29sbGVj
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERMaXN0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MRExpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRGly
ZWN0b3J5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpdkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRG9jdW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRW1iZWRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGb250RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZy
YW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRnJhbWVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEhSRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEhlYWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEhl
YWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIZWFkaW5nRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TElGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTElGcmFtZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTEltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTElucHV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSW5wdXRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSXNJbmRleEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTElzSW5kZXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMSUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTExlZ2VuZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExlZ2VuZEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXBFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFycXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1lbnVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MTW9kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTW9kRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MT0xpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
T2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT2JqZWN0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT3B0
aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFBhcmFtRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFByZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxR
dW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFF1b3RlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTZWxlY3RFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU3R5bGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDZWxs
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDb2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MVGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRleHRBcmVhRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRpdGxlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MVUxpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxVTGlzdEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSGlzdG9yeS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSW1hZ2VEYXRhLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21KYXZhU2NyaXB0
Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUtleWJvYXJkRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUxvY2F0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUxvY2F0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21NZWRpYUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVkaWFM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tTWVzc2FnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21NaW1lVHlw
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTWltZVR5cGVBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21NaW1lVHlwZUFy
cmF5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU11dGF0aW9uRXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tTmFtZWROb2RlTWFwLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5hbWVk
Tm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTmF2aWdhdG9yLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbU5hdmlnYXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2Rl
RmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbU5vZGVJdGVyYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2Rl
SXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob3RhdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob3RhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21PdmVyZmxvd0V2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21QbHVnaW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21QbHVnaW5BcnJheS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUmFuZ2VF
eGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU2NyZWVuLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVl
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TdHlsZVNo
ZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21UZXh0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21UZXh0RXZlbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tVGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21UcmVl
V2Fsa2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVUlFdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdl
YktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1
ZXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhN
TEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1
ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxTZXJpYWxpemVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVhNTFNlcmlhbGl6ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVhTTFRQcm9jZXNzb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFNMVFByb2Nlc3Nvci5o
IAogCisjRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCisj
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAKKwogSURMX0JJ
TkRJTkdTICs9ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgXAogCVdlYkNvcmUvY3NzL0NT
U0NoYXJzZXRSdWxlLmlkbCBcCkBAIC0yMDEwLDcgKzIzMDMsOCBAQAogRkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCiAKIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCi0JRGVyaXZlZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNh
Y2hlLmNwcAorCURlcml2ZWRTb3VyY2VzL0pTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmNwcAogCiBJRExfQklORElOR1Mg
Kz0gXAogCVdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsCkBA
IC0yMDYzLDcgKzIzNTcsMTcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xp
c3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvSlNTUUxUcmFuc2FjdGlvbi5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU1FM
VHJhbnNhY3Rpb24uaAorCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbURhdGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURhdGFi
YXNlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxFcnJvci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMUmVzdWx0U2V0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxS
ZXN1bHRTZXRSb3dMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxUcmFuc2FjdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxUcmFuc2FjdGlvbi5oCiAKIElETF9CSU5ESU5H
UyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmlkbCBcCkBAIC0yMTQzLDcgKzI0NDcs
MTEgQEAKIAlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2UuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9K
U1N0b3JhZ2UuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQuY3BwIFwKLQlEZXJp
dmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5oCisJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0b3JhZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3RvcmFnZUV2ZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0b3JhZ2VFdmVudC5oCiAKIElETF9CSU5ESU5HUyArPSBc
CiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKQEAgLTIyMjUsNyArMjUzMywyMSBAQAog
CURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTVGlt
ZVJhbmdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5jcHAgXAotCURlcml2
ZWRTb3VyY2VzL0pTVm9pZENhbGxiYWNrLmgKKwlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFj
ay5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEF1ZGlvRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21IVE1MQXVkaW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZWRpYUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTb3VyY2VFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxWaWRlb0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tTWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGltZVJhbmdl
cy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVm9pZENhbGxi
YWNrLmgKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVu
dC5pZGwgXApAQCAtMjI4NCw3ICsyNjA2LDE3IEBACiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0aFJl
c3VsdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTWFBhdGhSZXN1bHQuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvWFBhdGhHcmFtbWFyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmgK
KwlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQ
YXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXZhbHVhdG9yLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhFeHBy
ZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhSZXN1bHQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhSZXN1bHQuaAogCiBJRExfQklORElOR1Mg
Kz0gXAogCVdlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbCBcCkBAIC0yNjQ5LDYgKzI5ODEs
MjczIEBACiAJRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9Y
TGlua05hbWVzLmNwcAogCitub3QteWV0OgorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1h
dGVkQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQm9vbGVhbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5p
bWF0ZWRJbnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkSW50ZWdl
ci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmlt
YXRlZExlbmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVyLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
QW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdB
bmltYXRlZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRSZWN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
QW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1h
dGVkVHJhbnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0aW9uRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRpb25FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdDaXJjbGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0NpcmNsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NsaXBQ
YXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDbGlwUGF0aEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0NvbG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQ3Vyc29y
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDdXJzb3JFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRGVmc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRGVmc0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEb2N1bWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFuY2UuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudEluc3RhbmNlLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Vs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGxpcHNl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGxpcHNlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVuZEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVuZEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29t
cG9zaXRlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlmZnVzZUxpZ2h0aW5n
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHRkVGbG9vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0FF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0FFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNCRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdGRUZ1bmNCRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVG
dW5jR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jR0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVH
YXVzc2lhbkJsdXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUltYWdlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUltYWdlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRkVNZXJnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFTWVy
Z2VOb2RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU1lcmdlTm9kZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU9mZnNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVTcGVj
dWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwb3RMaWdo
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVTcG90TGlnaHRFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVRpbGVFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRmlsdGVyRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGaWx0ZXJFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdG
b250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250
RmFjZU5hbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVNyY0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VTcmNFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdH
bHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0dyYWRpZW50RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xlbmd0aC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0xlbmd0aExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGVuZ3RoTGlzdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHTGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xpbmVhckdy
YWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hcmtlckVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHTWFza0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWFza0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hdHJpeC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdNYXRyaXguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01ldGFkYXRh
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdNZXRhZGF0YUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR051bWJlci5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWludC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWludC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWcuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0FyY0Fi
cy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjQWJzLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BhdGhTZWdBcmNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDbG9z
ZVBhdGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b0Ficy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Bh
dGhTZWdMaW5ldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0
b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdNb3Zl
dG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQYXR0ZXJuRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXR0ZXJuRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9pbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUG9pbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvaW50TGlzdC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2ludExpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BvbHlnb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Bv
bHlnb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2x5bGluZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9seWxpbmVFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlY3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
UmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlbmRlcmluZ0ludGVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R1NWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU1ZHRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTZXRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NldEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1N0b3BFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1N0b3BFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTdHJpbmdMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0cmluZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1N0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTdHls
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N3aXRjaEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU3dpdGNoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTeW1i
b2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHVFNwYW5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RTcGFuRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHVGV4dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
VGV4dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQYXRoRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUZXh0UGF0aEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RpdGxlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVHJhbnNmb3JtLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1RyYW5zZm9ybS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVHJh
bnNmb3JtTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUcmFuc2Zvcm1MaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVbml0VHlwZXMuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVc2VFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1VzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Zp
ZXdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdab29tRXZlbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJ
V2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQUVs
ZW1lbnQuaWRsIFwKQEAgLTMyNjUsNiArMzg2NCw3IEBACiAjIFNWRyB0YWcgYW5kIGF0dHJpYnV0
ZSBuYW1lcyAobmVlZCB0byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4cGVyaW1lbnRhbCBm
ZWF0dXJlcyBhcmUgZW5hYmxlZCkKIERlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcDogRGVyaXZl
ZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOwogRGVyaXZlZFNvdXJjZXMvSlNTVkdFbGVt
ZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5j
cHAKK0Rlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJp
dmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKIAogaWYgU1ZHX0ZMQUdTCiBEZXJpdmVk
U291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMu
cGwgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbgpA
QCAtMzM4Niw2ICszOTg2LDExIEBACiAgICAgJChXZWJDb3JlKS94bWwgXAogICAgICQoV2ViQ29y
ZSkvcGx1Z2lucwogCitEZXJpdmVkU291cmNlcy9nZG9tJS5oOiBEZXJpdmVkU291cmNlcy9nZG9t
JS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL2dkb20lLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJ
TkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0K
KwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGlu
Z3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9kb20g
LS1pbmNsdWRlICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9jc3MgLS1pbmNs
dWRlICQoV2ViQ29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJDb3JlKS94bWwgLS1pbmNsdWRlICQo
V2ViQ29yZSkvc3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmluZXMgIiQoRkVB
VFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQpIiAtLWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKIERlcml2
ZWRTb3VyY2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiBEZXJpdmVkU291cmNl
cy9KUyUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM0MDEsNiArNDAwNiw3IEBACiAJV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3Nz
L3F1aXJrcy5jc3MgXAogCVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBcCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vZ2RvbUV2ZW50VGFyZ2V0Tm9kZXByaXZhdGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlcHJpdmF0ZS5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbUV2ZW50VGFyZ2V0
Tm9kZXByaXZhdGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCitleHRlcm4gIkMiIHsKKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAi
RXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCitz
dHJ1Y3QgX0dET01FdmVudFRhcmdldE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpF
dmVudFRhcmdldE5vZGUgKml0ZW07Cit9OyAgCisKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRf
Tk9ERV9HRVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiks
IEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR0RPTUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUp
KQorCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdET01FdmVudFRh
cmdldE5vZGUgKnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0pCit7Cisg
ICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9O
T0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPml0ZW0gPSBpdGVtOworfQorCitX
ZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJp
dmF0ZShHRE9NRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0KQoreworICAgIEdET01FdmVudFRhcmdl
dE5vZGVQcml2YXRlKiBwcml2ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFURShy
ZXF1ZXN0KTsKKyAgICByZXR1cm4gcHJpdi0+aXRlbTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9l
dmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy9HRE9N
RXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERShvYmplY3Qp
OworICAgIC8vR0RPTUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2
OworICAgIAorICAgIGRlbGV0ZSBwcml2LT5pdGVtOyAgLyogWFhYIGlzIHRoaXMgb2s/ICovCisK
KyAgICBHX09CSkVDVF9DTEFTUyhnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3BhcmVudF9jbGFzcykt
PmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25v
ZGVfY2xhc3NfaW5pdChHRE9NRXZlbnRUYXJnZXROb2RlQ2xhc3MqIHJlcXVlc3RDbGFzcykKK3sK
KyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdkb21fZXZlbnRf
dGFyZ2V0X25vZGVfZmluYWxpemU7CisgICAgCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRl
KHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdET01FdmVudFRhcmdldE5vZGVQcml2YXRlKSk7Cit9CisK
K3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdChHRE9NRXZlbnRUYXJnZXRO
b2RlKiByZXF1ZXN0KQoreworICAgIEdET01FdmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0g
R0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0
LT5wcml2ID0gcHJpdjsKK30gICAKKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlcHJpdmF0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlcHJpdmF0ZS5oCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdldE5vZGVw
cml2YXRlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKK2NsYXNzIEV2ZW50VGFyZ2V0Tm9kZTsK
K2NsYXNzIGdkb21FdmVudFRhcmdldE5vZGU7CisKK1dlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAq
CitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdET01FdmVudFRhcmdldE5vZGUg
KnJlcXVlc3QpOworCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdE
T01FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0
ZW0pOworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdldE5v
ZGUuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRh
cmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
CisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUg
IkV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgImdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNp
bmNsdWRlICJnZG9tRXZlbnRUYXJnZXROb2RlcHJpdmF0ZS5oIgorI2luY2x1ZGUgImdsaWItb2Jq
ZWN0LmgiCisKK2NsYXNzIEdTdHJpbmdDb252ZXJ0IHsKKyAgICBwdWJsaWM6CisgICAgY29uc3Qg
Z2NoYXIgKm1fc3RyOworICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYg
cykgeyBtX3N0ciA9IGdfc3RyZHVwKHMudXRmOCgpLmRhdGEoKSk7IH0KKyAgICBHU3RyaW5nQ29u
dmVydChXZWJDb3JlOjpBdG9taWNTdHJpbmcgY29uc3QmcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7IH0KK307CisKK2V4dGVybiAiQyIgeworCisjZGVmaW5l
IF9HX0dFVF9VVEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0KHN0cikubV9zdHIpCisKK0dET01FdmVu
dFRhcmdldE5vZGUqIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfbmV3KHZvaWQpCit7CisgICAgR0RP
TUV2ZW50VGFyZ2V0Tm9kZSogcmVxdWVzdCA9IEdET01fRVZFTlRfVEFSR0VUX05PREUoZ19vYmpl
Y3RfbmV3KEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgTlVMTCkpOworICAgIC8vcHJpdi0+
ZXZlbnRfdGFyZ2V0X25vZGUgPSBldmVudF90YXJnZXRfbm9kZTsgCisgICAgCisgICAgcmV0dXJu
IHJlcXVlc3Q7Cit9Cit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3N0b3BfcHJvcGFnYXRp
b24gKEdET01FdmVudFRhcmdldE5vZGUgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAo
dGhpeik7CisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSA9IGdkb21fZXZlbnRf
dGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgaXRlbS0+c3RvcFByb3BhZ2F0aW9u
KCk7CisKK30KKwordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9wcmV2ZW50X3RhcmdldF9u
b2RlX2RlZmF1bHQgKEdET01FdmVudFRhcmdldE5vZGUgKnRoaXopCit7CisgICAgZ19yZXR1cm5f
aWZfZmFpbCAodGhpeik7CisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSA9IGdk
b21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgaXRlbS0+cHJldmVu
dF90YXJnZXRfbm9kZURlZmF1bHQoKTsKKworfQorCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9u
b2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdET01FdmVudFRhcmdldE5vZGUgKnRoaXopCit7
CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXRO
b2RlICogaXRlbSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUodGhpeik7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbCAoZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcpOworICAgIFdl
YkNvcmU6OlN0cmluZyBfZ19ldmVudF90YXJnZXRfbm9kZV90eXBlX2FyZyA9IFdlYkNvcmU6OlN0
cmluZyhldmVudF90YXJnZXRfbm9kZV90eXBlX2FyZyk7CisgICAgaXRlbS0+aW5pdEV2ZW50VGFy
Z2V0Tm9kZShfZ19ldmVudF90YXJnZXRfbm9kZV90eXBlX2FyZyk7CisKK30KKworfSAvKiBleHRl
cm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXRO
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdl
dE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRU
YXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR0RPTUV2ZW50VGFy
Z2V0Tm9kZV9IX18KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfXworI2luY2x1ZGUg
ImdsaWItb2JqZWN0LmgiCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HRE9NRXZl
bnRUYXJnZXROb2RlIEdET01FdmVudFRhcmdldE5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RPTUV2
ZW50VGFyZ2V0Tm9kZUNsYXNzIEdET01FdmVudFRhcmdldE5vZGVDbGFzczsKKworI2RlZmluZSBH
RE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRf
bm9kZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9FVkVO
VF9UQVJHRVRfTk9ERSwgR0RPTUV2ZW50VGFyZ2V0Tm9kZSkpCisjZGVmaW5lIEdET01fRVZFTlRf
VEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHRE9NRXZlbnRUYXJnZXROb2RlKSkK
KyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9ERShvYmopICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQor
I2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NI
RUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkpCisj
ZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5T
VEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHRE9N
RXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR0RPTUV2ZW50VGFyZ2V0
Tm9kZVByaXZhdGUgR0RPTUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGU7CisKK3N0cnVjdCBfR0RPTUV2
ZW50VGFyZ2V0Tm9kZSB7CisgICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHRE9N
RXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR0RPTUV2ZW50VGFy
Z2V0Tm9kZUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworR1R5
cGUKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitHRE9NRXZlbnRU
YXJnZXROb2RlICoKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfbmV3ICAgICAgKHZvaWQpOworCit2
b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdET01F
dmVudFRhcmdldE5vZGUgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HRE9N
RXZlbnRUYXJnZXROb2RlX0hfXyAqLwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JHT2JqZWN0LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw2NzEgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24g
TGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisjIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisj
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhaW50IHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSAtIFN1aXRlIDMzMCwKKyMgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisKK3BhY2thZ2Ug
Q29kZUdlbmVyYXRvckdPYmplY3Q7CisKKyMgRGVmYXVsdCBMaWNlbmNlIFRlbXBsYXRlcworbXkg
JGxpY2VuY2VUZW1wbGF0ZSA9IDw8ICJFT0YiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBM
dWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsXEBsa2NsLm5ldD4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscFxAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBcHBsZSBJbmMuCisgKi8KK0VPRgorCitteSAlaW1wbEluY2x1ZGVzID0gKCk7CitteSAl
aW1wbFR5cGVkZWZzID0gKCk7CisKKyMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgorc3ViIG5ldworewor
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkcmVmZXJlbmNlID0geyB9OworCisgICAg
JGNvZGVHZW5lcmF0b3IgPSBzaGlmdDsKKyAgICAkb3V0cHV0RGlyID0gc2hpZnQ7CisKKyAgICBi
bGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKKyAgICByZXR1cm4gJHJlZmVyZW5jZTsKK30KKwor
c3ViIGZpbmlzaAoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKK30KKworIyBQYXJhbXM6ICdk
b21DbGFzcycgc3RydWN0CitzdWIgR2VuZXJhdGVJbnRlcmZhY2UKK3sKKyAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJGRlZmluZXMgPSBz
aGlmdDsKKworICAgIG15ICRuYW1lID0gJGRhdGFOb2RlLT5uYW1lOworCisgICAgICAgIHByaW50
ICIkbmFtZVxuIjsKKworICAgICRvYmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAj
IFdyaXRlIGNoYW5nZXMKKyAgICAgICAgbXkgJGZuYW1lID0gImdkb21fIiAuICRuYW1lOyAjZGVj
YW1lbGl6ZSgkbmFtZSk7CisgICAgICAgICRmbmFtZSA9fiBzL18vL2c7CisgICAgJG9iamVjdC0+
V3JpdGVEYXRhKCRmbmFtZSk7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAor
c3ViIEdlbmVyYXRlTW9kdWxlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRk
YXRhTm9kZSA9IHNoaWZ0OworCisgICAgJG1vZHVsZSA9ICRkYXRhTm9kZS0+bW9kdWxlOworfQor
CisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1YiBjYW1l
bGl6ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAgam9pbignJywgbWFweyB1Y2ZpcnN0ICRf
IH0gc3BsaXQoLyg/PD1bQS1aYS16XSlfKD89W0EtWmEtel0pfFxiLywgJHMpKTsKK30KKworIyBB
bGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgZGVjYW1lbGl6
ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAgJHMgPX4gc3soW15hLXpBLVpdPykoW0EtWl0q
KShbQS1aXSkoW2Etel0/KX17CisgICAgICAgIG15ICRmYyA9IHBvcygkcyk9PTA7CisgICAgICAg
IG15ICgkcDAsJHAxLCRwMiwkcDMpID0gKCQxLGxjJDIsbGMkMywkNCk7CisgICAgICAgIG15ICR0
ID0gJHAwIHx8ICRmYyA/ICRwMCA6ICdfJzsKKyAgICAgICAgJHQgLj0gJHAzID8gJHAxID8gIiR7
cDF9XyRwMiRwMyIgOiAiJHAyJHAzIiA6ICIkcDEkcDIiOworICAgICAgICAkdDsKKyAgICB9Z2U7
CisgICAgJHM7Cit9CisKK3N1YiBHZXRIZHJOYW1lCit7CisgICAgICAgIG15ICRuYW1lID0gJGNv
ZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKKworICAgIHJldHVybiAiZ2RvbSRuYW1l
IjsKK30KKworc3ViIEdldENsYXNzTmFtZQoreworICAgICAgICBteSAkbmFtZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdET00kbmFtZSI7Cit9
CisKK3N1YiBHZXRHSW5jbHVkZUhkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgICAg
IG15ICRuYW1lID0gR2V0SGRyTmFtZSgkdHlwZSk7CisgICAgICAgICNteSAkbmFtZSA9IGNhbWVs
aXplKEdldENsYXNzTmFtZSgkdHlwZSkpOworCisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBl
cSAibG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAg
ICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5
cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUiOwor
ICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICBy
ZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuICIi
IGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCBjaGFyIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01SR0JD
b2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorICAgICAgICByZXR1cm4gImds
aWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gImdk
b21FdmVudFRhcmdldE5vZGUuaCIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKworICAgICAg
ICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJmbG9hdCI7CisKKyAgICAgICAg
cmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisKKyAgICAgICAg
cmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4g
IiRuYW1lLmgiOworfQorCisjIHJldHVybnMgMSBpZiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGdvYmpl
Y3Qgd3JhcHBlciBhcm91bmQgdGhlIHJldHVybiByZXN1bHQKK3N1YiBJc0dET01DbGFzc1R5cGUK
K3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFt
ZSgkdHlwZSk7CisKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7Cisg
ICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImRv
dWJsZSI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBl
cSAibG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgICAg
IHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBY
WFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUg
ZXEgInZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9CisKK3N1YiBHZXRHVHlwZQoreworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsK
KyAgICAgICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAg
ICAgICAgcmV0dXJuICJHRE9NRXZlbnRUYXJnZXROb2RlICoiIGlmICR0eXBlIGVxICJFdmVudFRh
cmdldCI7CisgICAgICAgIHJldHVybiAiY29uc3QgZ2NoYXIgKiIgaWYgJHR5cGUgZXEgIkRPTVN0
cmluZyI7CisgICAgICAgIHJldHVybiAiZ2Zsb2F0ICIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAg
ICAgICAgcmV0dXJuICJXZWJDb3JlOjpSYW5nZTo6Q29tcGFyZUhvdyAiIGlmICR0eXBlIGVxICJD
b21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJuICJnZG91YmxlICIgaWYgJHR5cGUgZXEgImRvdWJs
ZSI7CisgICAgICAgIHJldHVybiAiZ2Jvb2xlYW4gIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7Cisg
ICAgICAgIHJldHVybiAiZ2NoYXIgIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVy
biAiZ2xvbmcgIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAiZ3Nob3J0ICIg
aWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0dXJuICJndWNoYXIgIiBpZiAkdHlwZSBl
cSAidWNoYXIiOworICAgICAgICByZXR1cm4gImd1bG9uZyAiIGlmICR0eXBlIGVxICJ1bnNpZ25l
ZCBsb25nIjsKKyAgICAgICAgcmV0dXJuICJndXNob3J0ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVk
IHNob3J0IjsKKyAgICAgICAgcmV0dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJSR0JDb2xvciI7
ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorCisgICAgICAgIHJldHVybiAidm9pZCIg
aWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuICIkbmFtZSAqIjsKK30KKworIyBHZW5l
cmF0ZSBoZWFkZXIgYW5kIGltcGwKK3N1YiBHZW5lcmF0ZQoreworICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGlu
dGVyZmFjZU5hbWUpOworICAgIG15ICRoZHJOYW1lID0gR2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFt
ZSk7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBpbXBsIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBj
UHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgICAgIHB1c2goQGNQ
cmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNsdWRlc3siJGhkck5hbWUuaCJ9ID0gMTsKKyAg
ICAkaW1wbEluY2x1ZGVzeyIke2hkck5hbWV9cHJpdmF0ZS5oIn0gPSAxOworCisgICAgIyBYWFgg
VE9ETzogbWFrZSB0aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVhZGVyIGZpbGUKKyAgICBteSAkaW1w
bENvbnRlbnQgPSA8PCAiRU9GIjsKK2NsYXNzIEdTdHJpbmdDb252ZXJ0IHsKKyAgICBwdWJsaWM6
CisgICAgY29uc3QgZ2NoYXIgKm1fc3RyOworICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OlN0
cmluZyBjb25zdCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMudXRmOCgpLmRhdGEoKSk7IH0KKyAg
ICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpBdG9taWNTdHJpbmcgY29uc3QmcykgeyBtX3N0ciA9
IGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7IH0KK307CisKK0VPRgorCisgICAg
cHVzaChAY0JvZHksICRpbXBsQ29udGVudCk7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNCb2R5
LCAidXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiZXh0
ZXJuIFwiQ1wiIHtcblxuIik7CisgICAgcHVzaChAY0JvZHlQcml2LCAiZXh0ZXJuIFwiQ1wiIHtc
blxuIik7CisgICAgcHVzaChAY0JvZHksICIjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdTdHJp
bmdDb252ZXJ0KHN0cikubV9zdHIpXG4iKTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGhlYWRl
ciB0ZW1wbGF0ZQorICAgIEBoUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7
CisgICAgICAgICNwdXNoKEBoUHJlZml4LCAiXG4iKTsKKworICAgICMgSGVhZGVyIGd1YXJkCisg
ICAgICAgIG15ICRndWFyZCA9ICJfXyIgLiAkY2xhc3NOYW1lIC4gIl9IX18iOworCisgICAgbXkg
JGNsc0NhcHMgPSBzdWJzdHIodWMoY2FtZWxpemUoJGNsYXNzTmFtZSkpLCA0KTsKKyAgICBteSAk
bGNhc2VfaWZhY2VuYW1lID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpOwor
CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICRndWFyZAorI2RlZmluZSAk
Z3VhcmQKKyNpbmNsdWRlIFwiZ2xpYi1vYmplY3QuaFwiCitHX0JFR0lOX0RFQ0xTCisKK0VPRgor
CisgICAgcHVzaChAaEJvZHlQcmUsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQg
PSA8PCAiRU9GIjsKKyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAgICAoJHts
Y2FzZV9pZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfShvYmop
ICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVf
JHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0NMQVNT
KGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV8k
e2Nsc0NhcHN9LCAkY2xhc3NOYW1lKSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9KG9iaikg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV8ke2Ns
c0NhcHN9KSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAoR19UWVBF
X0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZp
bmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9D
TEFTUygob2JqKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1DbGFzcykpCisK
K3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlICR7Y2xhc3NOYW1lfVByaXZhdGU7
CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsK
KworICAgICR7Y2xhc3NOYW1lfVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgXyR7Y2xhc3NO
YW1lfUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworR1R5cGUK
KyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSAodm9pZCk7CisKK0dET00ke2ludGVyZmFjZU5h
bWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9uZXcgICAgICAodm9pZCk7CisKK0VPRgorCisgICAg
cHVzaChAaEJvZHksICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NO
YW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOwor
CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyR7Y2xhc3NOYW1lfSogJHtsY2FzZV9p
ZmFjZW5hbWV9X25ldyh2b2lkKQoreworICAgICR7Y2xhc3NOYW1lfSogcmVxdWVzdCA9IEdET01f
JHtjbHNDYXBzfShnX29iamVjdF9uZXcoR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sIE5VTEwpKTsKKyAg
ICAvL3ByaXYtPmV2ZW50ID0gZXZlbnQ7IAorICAgIAorICAgIHJldHVybiByZXF1ZXN0OworfQor
RU9GCisKKyAgICAgICAgcHVzaChAY0JvZHksICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENv
bnRlbnQgPSA8PCAiRU9GIjsKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5h
bWV9LmgiCisKK3N0cnVjdCBfJHtjbGFzc05hbWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29y
ZTo6JHtpbnRlcmZhY2VOYW1lfSAqaXRlbTsKK307ICAKKworI2RlZmluZSBHRE9NXyR7Y2xzQ2Fw
c31fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBH
RE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9UHJpdmF0ZSkpCisKK3ZvaWQKKyR7bGNh
c2VfaWZhY2VuYW1lfV9zZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJlcXVlc3QsIFdlYkNvcmU6
OiR7aW50ZXJmYWNlTmFtZX0gKiBpdGVtKQoreworICAgICR7Y2xhc3NOYW1lfVByaXZhdGUqIHBy
aXYgPSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcHJpdi0+aXRl
bSA9IGl0ZW07Cit9CisKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFj
ZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCkKK3sKKyAgICAke2NsYXNz
TmFtZX1Qcml2YXRlKiBwcml2ID0gR0RPTV8ke2Nsc0NhcHN9X0dFVF9QUklWQVRFKHJlcXVlc3Qp
OworICAgIHJldHVybiBwcml2LT5pdGVtOworfQorCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNl
bmFtZX1fZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIC8vJHtjbGFzc05hbWV9KiBy
ZXF1ZXN0ID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7CisgICAgLy8ke2NsYXNzTmFtZX1Qcml2
YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICAKKyAgICBkZWxldGUgcHJpdi0+aXRlbTsg
IC8qIFhYWCBpcyB0aGlzIG9rPyAqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoJHtsY2FzZV9pZmFj
ZW5hbWV9X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lk
ICR7bGNhc2VfaWZhY2VuYW1lfV9jbGFzc19pbml0KCR7Y2xhc3NOYW1lfUNsYXNzKiByZXF1ZXN0
Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSAk
e2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemU7CisgICAgCisgICAgZ190eXBlX2NsYXNzX2FkZF9w
cml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKCR7Y2xhc3NOYW1lfVByaXZhdGUpKTsKK30KKwor
c3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0
KQoreworICAgICR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSBHRE9NXyR7Y2xzQ2Fwc31fR0VU
X1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Cit9ICAgCisKK0VP
RgorCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworCitjbGFzcyAke2ludGVyZmFjZU5hbWV9OworY2xhc3MgJHto
ZHJOYW1lfTsKKworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lmYWNlbmFt
ZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKwordm9pZAorJHtsY2FzZV9p
ZmFjZW5hbWV9X3NldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCwgV2ViQ29yZTo6JHtp
bnRlcmZhY2VOYW1lfSAqIGl0ZW0pOworCitFT0YKKworICAgICAgICBwdXNoKEBoQm9keVByaXYs
ICRpbXBsQ29udGVudCk7CisKKyAgICAgICAgI2lmICgkcGFyYW1JRExUeXBlIGVxICJET01PYmpl
Y3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2Vu
ZXJhdG9yLgorICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7IkpTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgifSA9IDE7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAjICAgICRpbXBsSW5j
bHVkZXN7JGluY2x1ZGVIZHJ9ID0gMTsKKyAgICAgICAgI30KKyAgICAgICAgJGltcGxJbmNsdWRl
c3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworCisgICAgICAgIExPT1A6IGZvcmVhY2ggbXkg
JGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICAgICAgI215ICRm
dW5jdGlvbk5hbWUgPSBkZWNhbWVsaXplKCRjbGFzc05hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJGZuX3NpZ19u
YW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgICAgICAgICAgbXkgJGZu
X3NpZ190eXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgICAgICAgICAg
bXkgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSAu
ICJfIiAuIGRlY2FtZWxpemUoJGZuX3NpZ19uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkcmV0
dXJuVHlwZSA9IEdldEdUeXBlKCRmbl9zaWdfdHlwZSk7CisgICAgICAgICAgICAgICAgbXkgJHJl
dF9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkZm5fc2lnX3R5cGUpOworCisgICAgICAg
ICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworCisgICAgICAg
ICAgICAgICAgbXkgJGNhbGxfaW1wbF9wYXJhbXMgPSAiIjsKKworICAgICAgICAgICAgICAgICMg
WFhYIHNraXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBp
ZiAoJHJldHVyblR5cGUgZXEgIkdET01TVkdEb2N1bWVudCAqIikgeworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1
bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIHNvbWUgY3Vz
dG9tIGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgbXkgJGlzX2N1c3RvbV9mbiA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07Cisg
ICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYgCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUiICYmIAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3BhcmVu
dF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90
cmVlX3dhbGtlcl9maXJzdF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbGFzdF9jaGlsZCIgJiYgCisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfc2libGlu
ZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93
YWxrZXJfbmV4dF9zaWJsaW5nIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19ub2RlIiAmJiAKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9uZXh0X25vZGUiICYmIAor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3Jf
cHJldmlvdXNfbm9kZSIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8q
IFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5j
dGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQg
TE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRw
YXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15
ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRp
bmNsdWRlSGRyID0gR2V0R0luY2x1ZGVIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAg
ICAgICAgIGlmICgkaW5jbHVkZUhkcikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRw
YXJhbUlETFR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICRpbXBsSW5jbHVkZXN7Imdkb21FdmVudFRhcmdldE5vZGUuaCJ9ID0gMTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tRXZlbnRUYXJnZXROb2RlcHJp
dmF0ZS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgZWxzaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2Vu
ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7JGluY2x1
ZGVIZHJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFt
SURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXpl
KCRwYXJhbS0+bmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIs
ICRwYXJhbVR5cGUkcGFyYW1OYW1lIjsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1f
aXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAg
ICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkcGFyYW1JRExUeXBlIG5lICJET01PYmplY3QiICYmCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJHBhcmFtSURMVHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbSR7cGFyYW1JRExUeXBlfXByaXZh
dGUuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIk
e3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsgIyB0aGlzIGlzbid0IHN0cmljdGx5IG5lY2Vzc2FyeSBi
dXQgb25lIG9mIHRoZSBhdXRvLWdlbmVyYXRlZCBmaWxlcyBuZWVkZWQgaXQgc28uLi4uCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9N
U3RyaW5nIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbU5hbWUgPSAiX2dfIiAu
ICRwYXJhbU5hbWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
aWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkY2FsbF9p
bXBsX3BhcmFtcyAuPSAiLCAkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRjYWxsX2lt
cGxfcGFyYW1zID0gIiRwYXJhbU5hbWUiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgJGltcGxUeXBlZGVmc3siR0RPTSR7Zm5fc2lnX3R5cGV9In0gPSAx
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBu
ZSAidm9pZCIpIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0
IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29w
aWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRm
bl9zaWdfdHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190eXBlfXByaXZhdGUuaCJ9ID0gMTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbSR7Zm5f
c2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9LmgifSA9
IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIGN1c3RvbSBmdW5j
dGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgICMgYnV0IHNraXAgZnJvbSBoZXJlIHRvIGFs
bG93IHNvbWUgaGVhZGVycyB0byBiZSBjcmVhdGVkCisgICAgICAgICAgICAgICAgIyBmb3IgYSBz
dWNjZXNzZnVsIGNvbXBpbGUuCisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4pIHsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20g
ZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFt
ZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIiRyZXR1cm5UeXBlXG4kZnVu
Y3Rpb25OYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiJHJldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZylcbntcbiIp
OworCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAg
ICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
ICh0aGl6LCAwKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopO1xuIik7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2Vi
Q29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGl0ZW0gPSAke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3By
aXZhdGUodGhpeik7XG4iKTsKKworICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1
bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1l
ID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFy
YW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1U
eXBlSXNQcmltaXRpdmUgPSAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRwYXJhbUlE
TFR5cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dE
T01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFy
YW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsVHlwZWRlZnN7
IkdET00ke3BhcmFtSURMVHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCEkcGFyYW1UeXBlSXNQcmltaXRpdmUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKCRwYXJhbU5hbWUsIDApO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdf
cmV0dXJuX2lmX2ZhaWwgKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Cisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5u
YW1lKTsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dE
T01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFy
YW1JRExUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6
U3RyaW5nKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFyYW1JRExU
eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNwdXNoKEBjQm9keSwgIiAgICBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9PiAqIF9nXyR7cGFyYW1OYW1lfSA9IFdU
Rjo6UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSk+O1xuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnRUYXJn
ZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2Vi
Q29yZTo6RXZlbnRUYXJnZXROb2RlICogX2dfJHtwYXJhbU5hbWV9ID0gZ2RvbV9ldmVudF90YXJn
ZXRfbm9kZV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBfZ18ke3BhcmFtTmFtZX0gPSAke3BhcmFt
X2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBteSAkZ2RvbV9mbl9wcmVmaXggPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgk
Zm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIG15ICRhc3NpZ24gPSAiIjsKKyAgICAgICAg
ICAgICAgICBteSAkYXNzaWduX3ByZSA9ICIiOworICAgICAgICAgICAgICAgIG15ICRhc3NpZ25f
cG9zdCA9ICIiOworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsK
KworICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNn
ZW5lcmF0b3IuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
LyogWFhYIFRPRE86IHJldHVybiBjYW52YXMgY29udGV4dC4gIHdoeT8/PyAke3JldHVyblR5cGV9
IHJlcyA9ICR7Z2RvbV9mbl9wcmVmaXh9X25ldygpOyovXG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHks
ICIgICAgJHtyZXR1cm5UeXBlfSByZXMgPSAke2dkb21fZm5fcHJlZml4fV9uZXcoKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAiV2ViQ29yZTo6JHtmbl9zaWdf
dHlwZX0gKmdfcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduX3By
ZSA9ICJXVEY6OmdldFB0cigiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25f
cG9zdCA9ICIpIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAiJHtyZXR1cm5U
eXBlfSByZXMgPSAiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIG15ICRleGNlcHRpb25zID0gIiI7CisgICAgICAgICAgICAgICAgaWYg
KEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoJHtjYWxsX2ltcGxfcGFyYW1zfSBuZSAiIikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiLCBlYyI7CisgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICJlYyI7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICAjIG5lZWQgdGhpcyBmb3IgaW5jbHVkaW5nIC4uLiBfc29tZXRoaW5nXyAtIGZvciB0aGUg
Y2xhc3MgYXJncworICAgICAgICAgICAgICAgICNpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAg
ICAgICAgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3siZ2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9
IDE7CisgICAgICAgICAgICAgICAgI30KKyAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBl
IGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IC8qIFhYWCBUT0RPIC0gZ2V0IGNhbnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7
Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKyAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01TdHJp
bmciKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufV9H
X0dFVF9VVEY4KGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2Vw
dGlvbnN9KSk7XG4iICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5f
c2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0p
O1xuIiApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5
cGUgbmUgInZvaWQiKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBu
ZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xz
X3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAk
e2dkb21fZm5fcHJlZml4fV9zZXRfcHJpdmF0ZShyZXMsIGdfcmVzKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RP
OiByZXR1cm4gY2FudmFzIG9iamVjdCAqL1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gcmVz
O1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICJcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICJ9XG5cbiIpOworICAgICAgICB9CisKKyAgICAgICAgIyBQcm9wZXJ0aWVzCisgICAgICAg
IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAg
ICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5hbWU7IAor
ICAgICAgICAgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7CisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2ln
ID0gIiRjbGFzc05hbWUgKnRoaXoiOworCisgICAgICAgICAgICAgICAgI3B1c2goQGhCb2R5LCAi
JHR5cGVcbiRmdW5jdGlvbk5hbWVQcmVmaXgiIC4gIl9nZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5j
dGlvblNpZyk7XG5cbiIpOworCisgICAgICAgICAgICAgICAgI3B1c2goQGhCb2R5LCAidm9pZFxu
JGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3NldF8iIC4gIiRwcm9wTmFtZSAoJGZ1bmN0aW9uU2ln
LCAkdHlwZSIgLiAidmFsdWUpO1xuXG4iKTsKKyAgICAgICAgfQorCisKKyAgICBwdXNoKEBjQm9k
eSwgIn0gLyogZXh0ZXJuIFwiQ1wiICovXG5cbiIpOworICAgIHB1c2goQGNCb2R5UHJpdiwgIn0g
LyogZXh0ZXJuIFwiQ1wiICovXG5cbiIpOworCisgICAgcHVzaChAaEJvZHksICJHX0VORF9ERUNM
U1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAvKiAkZ3VhcmQgKi9cbiIpOworfQor
CisjIEludGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2JqZWN0LCAk
bmFtZSkgPSBAXzsKKworCisgICAgIyBXcml0ZSBQcml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJG
TmFtZVByaXYgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAicHJpdmF0ZS5oIjsKKyAgICBvcGVu
KFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJpdiIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxl
ICRoZHJGTmFtZVByaXYiOworCisgICAgcHJpbnQgUFJJVkhFQURFUiBAaFByZWZpeDsKKyAgICBw
cmludCBQUklWSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJJVkhFQURFUiBAaEJvZHlQcml2Owor
ICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisgICAgIyBXcml0ZSBQcml2YXRlIEltcGxlbWVudGF0
aW9uCisgICAgbXkgJGltcGxGaWxlTmFtZVByaXYgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAi
cHJpdmF0ZS5jcHAiOworICAgIG9wZW4oUFJJVklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBv
ciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICBwcmlu
dCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBQUklWSU1QTCAiXG4iOworICAgIHByaW50
IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAgICBjbG9zZShQUklWSU1QTCk7CisKKyAgICAjIFdy
aXRlIHB1YmxpYyBoZWFkZXIuCisgICAgbXkgJGhkckZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRu
YW1lIC4gIi5oIjsKKyAgICBvcGVuKEhFQURFUiwgIj4kaGRyRk5hbWUiKSBvciBkaWUgIkNvdWxk
bid0IG9wZW4gZmlsZSAkaGRyRk5hbWUiOworCisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4Owor
ICAgIHByaW50IEhFQURFUiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaEJvZHlQcmU7CisgICAg
cHJpbnQgSEVBREVSIG1hcCB7ICJ0eXBlZGVmIHN0cnVjdCBfJF8gJF87XG4iIH0gc29ydCBrZXlz
KCVpbXBsVHlwZWRlZnMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWltcGxUeXBl
ZGVmcyk7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhFQURFUik7CisK
KyAgICAjIFdyaXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBzb3VyY2VzCisgICAgbXkgJGltcGxGaWxl
TmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKElNUEwsICI+
JGltcGxGaWxlTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWUi
OworCisgICAgcHJpbnQgSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBc
ImNvbmZpZy5oXCJcblxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcIkNTdHJpbmcuaFwiXG4iOworICAgIHBy
aW50IElNUEwgIiNpbmNsdWRlIFwiUGxhdGZvcm1TdHJpbmcuaFwiXG4iOworICAgIHByaW50IElN
UEwgIiNpbmNsdWRlIFwiQXRvbWljU3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMIG1hcCB7
ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJp
bnQgSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBAY0Jv
ZHk7CisKKyAgICBjbG9zZShJTVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAgICAl
aW1wbFR5cGVkZWZzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBAaEJvZHkgPSAoKTsK
KyAgICBAaEJvZHlQcml2ID0gKCk7CisKKyAgICBAY1ByZWZpeCA9ICgpOworICAgIEBjQm9keSA9
ICgpOworICAgIEBjQm9keVByaXYgPSAoKTsKK30KKworMTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22954</attachid>
            <date>2008-08-23 15:41:38 -0700</date>
            <delta_ts>2008-08-27 01:00:46 -0700</delta_ts>
            <desc>progress on generator script</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>6291</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IGdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdkb21FdmVudFRh
cmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQorKysgZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2Rl
LmgiCisjaW5jbHVkZSAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZnZG9t
RXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworY2xhc3MgR1N0
cmluZ0NvbnZlcnQgeworICAgIHB1YmxpYzoKKyAgICBjb25zdCBnY2hhciAqbV9zdHI7CisgICAg
R1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJk
dXAocy51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21p
Y1N0cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsgfQorfTsKKworZXh0ZXJuICJDIiB7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAo
R1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cikKKworR0RPTUV2ZW50VGFyZ2V0Tm9kZSogZ2RvbV9l
dmVudF90YXJnZXRfbm9kZV9uZXcodm9pZCkKK3sKKyAgICBHRE9NRXZlbnRUYXJnZXROb2RlKiBy
ZXF1ZXN0ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERShnX29iamVjdF9uZXcoR0RPTV9UWVBFX0VW
RU5UX1RBUkdFVF9OT0RFLCBOVUxMKSk7CisgICAgLy9wcml2LT5ldmVudF90YXJnZXRfbm9kZSA9
IGV2ZW50X3RhcmdldF9ub2RlOyAKKyAgICAKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKwordm9p
ZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50X3RhcmdldF9ub2RlIChHRE9NRXZl
bnRUYXJnZXROb2RlICp0aGl6KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworCS8q
CisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSA9IGdkb21fZXZlbnRfdGFyZ2V0
X25vZGVfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgV2ViQ29yZTo6U3RyaW5nIF9nX2V2ZW50X3Rh
cmdldF9ub2RlX3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5nKGV2ZW50X3RhcmdldF9ub2RlX3R5
cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RXZlbnRUYXJnZXROb2RlKF9nX2V2ZW50X3RhcmdldF9u
b2RlX3R5cGVfYXJnKTsKKwkqLworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogcHJp
dmdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHByaXZnZG9tRXZlbnRUYXJn
ZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIHByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBM
dWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmgi
CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKEdET01FdmVudFRhcmdldE5vZGUsIGdk
b21fZXZlbnRfdGFyZ2V0X25vZGUsIEdfVFlQRV9PQkpFQ1QpOworCitzdHJ1Y3QgX0dET01FdmVu
dFRhcmdldE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUg
Kml0ZW07Cit9OyAgCisKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFU
RShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIEdET01fVFlQRV9FVkVO
VF9UQVJHRVRfTk9ERSwgR0RPTUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUpKQorCit2b2lkCitnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdET01FdmVudFRhcmdldE5vZGUgKnJlcXVl
c3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0pCit7CisgICAgR0RPTUV2ZW50VGFy
Z2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRF
KHJlcXVlc3QpOworICAgIHByaXYtPml0ZW0gPSBpdGVtOworfQorCitXZWJDb3JlOjpFdmVudFRh
cmdldE5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHRE9NRXZlbnRU
YXJnZXROb2RlICpyZXF1ZXN0KQoreworICAgIEdET01FdmVudFRhcmdldE5vZGVQcml2YXRlKiBw
cml2ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBy
ZXR1cm4gcHJpdi0+aXRlbTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZSog
cmVxdWVzdCA9IEdET01fRVZFTlRfVEFSR0VUX05PREUob2JqZWN0KTsKKyAgICBHRE9NRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgCisgICAgZGVsZXRl
IHByaXYtPml0ZW07ICAvKiBYWFggaXMgdGhpcyBvaz8gKi8KKworICAgIEdfT0JKRUNUX0NMQVNT
KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsK
K30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9jbGFzc19pbml0KEdET01F
dmVudFRhcmdldE5vZGVDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNT
KHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6
ZTsKKyAgICAKKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXpl
b2YoR0RPTUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9l
dmVudF90YXJnZXRfbm9kZV9pbml0KEdET01FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7Cisg
ICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9O
T0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OworfSAg
IAorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIGdkb21F
dmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wu
bmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpZm5kZWYgX19HRE9NRXZl
bnRUYXJnZXROb2RlX0hfXworI2RlZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fCisjaW5j
bHVkZSAiZ2xpYi1vYmplY3QuaCIKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dE
T01FdmVudFRhcmdldE5vZGUgR0RPTUV2ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9H
RE9NRXZlbnRUYXJnZXROb2RlQ2xhc3MgR0RPTUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOworCisjZGVm
aW5lIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50X3Rh
cmdldF9ub2RlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREUob2Jq
KSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBF
X0VWRU5UX1RBUkdFVF9OT0RFLCBHRE9NRXZlbnRUYXJnZXROb2RlKSkKKyNkZWZpbmUgR0RPTV9F
VkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNU
KChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdET01FdmVudFRhcmdldE5v
ZGUpKQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9E
RSkpCisjZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RF
KSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQ
RV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUs
IEdET01FdmVudFRhcmdldE5vZGVDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HRE9NRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSBHRE9NRXZlbnRUYXJnZXROb2RlUHJpdmF0ZTsKKworc3RydWN0IF9H
RE9NRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAg
IEdET01FdmVudFRhcmdldE5vZGVQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9HRE9NRXZl
bnRUYXJnZXROb2RlQ2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9Owor
CitHVHlwZQorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSAodm9pZCk7CisKK0dET01F
dmVudFRhcmdldE5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9uZXcgICAgICAodm9pZCk7
CisKK3ZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAo
R0RPTUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBf
X0dET01FdmVudFRhcmdldE5vZGVfSF9fICovCkluZGV4OiBwcml2Z2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDAp
CisrKyBwcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0
b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBA
YXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisj
aWZuZGVmIF9fR0RPTUF0dHJfSF9fX1BSSVZfCisjZGVmaW5lIF9fR0RPTUF0dHJfSF9fX1BSSVZf
CisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKK0dfQkVHSU5fREVDTFMKK2NsYXNzIFdlYkNvcmU6
OkV2ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HRE9NRXZlbnRUYXJnZXROb2RlIEdE
T01FdmVudFRhcmdldE5vZGU7CisKK1dlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqCitnZG9tX2V2
ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdET01FdmVudFRhcmdldE5vZGUgKnJlcXVlc3Qp
OworCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdET01FdmVudFRh
cmdldE5vZGUgKnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0pOworCitH
X0VORF9ERUNMUworI2VuZGlmCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23016</attachid>
            <date>2008-08-27 01:02:08 -0700</date>
            <delta_ts>2008-08-27 12:57:56 -0700</delta_ts>
            <desc>working access to DOM model from pywebkitgtk!</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>142816</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMzEzLDggKzMxNCwxMSBAQAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3Rvcnlp
dGVtLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmggXAorCVdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuaAogCisjIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdkb21kZWZpbmVzLmgKKwogd2Vi
a2l0Z3RrX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdGVudW10eXBl
cy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuY3BwIFwKQEAgLTM0NCw3ICsz
NDgsOCBAQAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgXAorCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcCAKIAogd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKIAkt
REJVSUxESU5HX1dFQktJVCBcCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3Bw
CShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIndlYmtpdHdlYmZy
YW1lLmgiCiAjaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgogI2luY2x1ZGUgIndlYmtpdG1hcnNo
YWwuaCIKKyNpbmNsdWRlICJ3ZWJraXRldmVudC5oIgogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUu
aCIKIAogI2luY2x1ZGUgIkNTdHJpbmcuaCIKQEAgLTQwLDcgKzQxLDEzIEBACiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUg
Imdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgImludGdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUg
InByaXZnZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExp
c3RlbmVySGFjay5oIgogCisKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC01NSw2ICs2Miw3IEBACiAgICAgTE9BRF9ET05F
LAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAorICAgIEJST1dT
RVJfRVZFTlQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2MCw2ICsxNjgsMTYgQEAKICAg
ICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBFX1NUUklORywgR19U
WVBFX1NUUklORyk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbQlJPV1NFUl9FVkVO
VF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAgICAgR19UWVBFX0ZS
T01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05B
TF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAg
ICAgTlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9W
T0lEX19PQkpFQ1RfU1RSSU5HX0JPT0xFQU4sCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMywK
KyAgICAgICAgICAgIFdFQktJVF9UWVBFX0VWRU5ULCBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfQk9P
TEVBTik7CisKICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhv
ZHMKICAgICAgKi8KQEAgLTI5Miw2ICszMTAsNDcgQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF9kb21fZG9jdW1lbnQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisg
KgorICogcmV0dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYSBEb2N1bWVudCAKKyAqCisgKiBS
ZXR1cm4gdmFsdWU6IGEgR2RvbURvY3VtZW50CisgKi8KK0dkb21Eb2N1bWVudCogd2Via2l0X3dl
Yl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisK
KyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAg
RnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOwor
CUdkb21Eb2N1bWVudCAqZ2RvYyA9IGdkb21fZG9jdW1lbnRfbmV3KCk7CisJZ2RvbV9kb21fb2Jq
ZWN0X3NldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChnZG9jKSwgbmV3IEdET01Eb2N1bWVudChj
b3JlRnJhbWUtPmRvY3VtZW50KCkpKTsKKwlyZXR1cm4gZ2RvYzsKK30KKworLyoqCisgKiB3ZWJr
aXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2Vi
RnJhbWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBmcmFtZSdzIGRvY3Vt
ZW50CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBvZiBAZnJhbWUKKyAqLworZ2Jvb2xl
YW4gd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZy
YW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJh
bWUpLCBGQUxTRSk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1l
LT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VS
VChjb3JlRnJhbWUpOworCisJcmV0dXJuIGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoZnJhbWUs
IGNvcmVGcmFtZSwgImNsaWNrIik7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl9mcmFtZV9nZXRf
bmFtZToKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKICAqCkluZGV4OiBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5j
bHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0
d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbURvY3VtZW50Lmg+CiAKIEdfQkVH
SU5fREVDTFMKIApAQCAtNjEsNiArNjIsOSBAQAogV0VCS0lUX0FQSSBXZWJLaXRXZWJGcmFtZSAq
CiB3ZWJraXRfd2ViX2ZyYW1lX25ldyAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgKndlYl92aWV3KTsKIAorV0VCS0lUX0FQSSBHZG9tRG9jdW1lbnQgKgord2Via2l0X3dlYl9m
cmFtZV9nZXRfZG9tX2RvY3VtZW50ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUp
OworCiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3dlYl9mcmFtZV9nZXRfd2Vi
X3ZpZXcgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKQEAgLTkzLDYgKzk3
LDkgQEAKIFdFQktJVF9BUEkgSlNHbG9iYWxDb250ZXh0UmVmCiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9nbG9iYWxfY29udGV4dCAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAorV0VCS0lU
X0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC9FdmVudExpc3RlbmVySGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
d2Via2l0L0V2ZW50TGlzdGVuZXJIYWNrLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dl
YmtpdC9FdmVudExpc3RlbmVySGFjay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACisj
aWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9IQUNLX0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5U
X0xJU1RFTkVSX0hBQ0tfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg+CisKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVm
Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1dlYktpdEF2YWlsYWJpbGl0eS5oPgorI2luY2x1ZGUgIldlYkNvcmUvcGFn
ZS9GcmFtZS5oIgorCitjbGFzcyBXZWJDb3JlOjpGcmFtZTsKKworZ2Jvb2xlYW4KK2FkZF93aW5k
b3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBXZWJDb3JlOjpGcmFtZSAqZnJh
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOworCisjZW5k
aWYgLypKU19ET01fRVZFTlRfTElTVEVORVJfSEFDS19IICovCkluZGV4OiBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRldmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZXZlbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZl
bnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5j
bHVkZSAid2Via2l0ZXZlbnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlL2RvbS9FdmVudC5oIgorI2lu
Y2x1ZGUgIldlYkNvcmUvcGxhdGZvcm0vdGV4dC9DU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgi
CisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5o
IgorI2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgiCisjaW5jbHVkZSAi
SmF2YVNjcmlwdENvcmUva2pzL0pTVmFsdWUuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVySGFj
ay5oIgorI2luY2x1ZGUgIkRlcml2ZWRTb3VyY2VzL0pTSFRNTERvY3VtZW50LmgiCisjaW5jbHVk
ZSAiSmF2YVNjcmlwdENvcmUvQVBJL0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0NTdHJpbmcu
aCIKKyNpbmNsdWRlICJXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSW1wbC5oIgorCisjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KKworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworZXh0
ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoV2ViS2l0RXZlbnQsIHdlYmtpdF9ldmVudCwgR19U
WVBFX09CSkVDVCk7CisKK3N0cnVjdCBfV2ViS2l0RXZlbnRQcml2YXRlIHsKKyAgICBFdmVudCog
ZXZlbnQ7Cit9OworCisjZGVmaW5lIFdFQktJVF9FVkVOVF9HRVRfUFJJVkFURShvYmopIChHX1RZ
UEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX0VWRU5ULCBXZWJLaXRF
dmVudFByaXZhdGUpKQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfZmluYWxpemUoR09iamVj
dCogb2JqZWN0KQoreworICAgIC8vV2ViS2l0RXZlbnQqIHJlcXVlc3QgPSBXRUJLSVRfRVZFTlQo
b2JqZWN0KTsKKyAgICAvL1dlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7
CisKKyAgICAvL2dfZnJlZShwcml2LT51cmkpOworCisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0
X2V2ZW50X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lk
IHdlYmtpdF9ldmVudF9jbGFzc19pbml0KFdlYktpdEV2ZW50Q2xhc3MqIHJlcXVlc3RDbGFzcykK
K3sKKyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF9l
dmVudF9maW5hbGl6ZTsKKworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xh
c3MsIHNpemVvZihXZWJLaXRFdmVudFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0
X2V2ZW50X2luaXQoV2ViS2l0RXZlbnQqIHJlcXVlc3QpCit7CisgICAgV2ViS2l0RXZlbnRQcml2
YXRlKiBwcml2ID0gV0VCS0lUX0VWRU5UX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVl
c3QtPnByaXYgPSBwcml2OworfQorCitXZWJLaXRFdmVudCogd2Via2l0X2V2ZW50X25ldyh2b2lk
KQoreworICAgIFdlYktpdEV2ZW50KiByZXF1ZXN0ID0gV0VCS0lUX0VWRU5UKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9FVkVOVCwgTlVMTCkpOworICAgIC8vcHJpdi0+ZXZlbnQgPSBldmVudDsK
KworICAgIHJldHVybiByZXF1ZXN0OworfQorCisvKgordm9pZCB3ZWJraXRfZXZlbnRfc2V0X3Vy
aShXZWJLaXRFdmVudCogcmVxdWVzdCwgY29uc3QgZ2NoYXIqIHVyaSkKK3sKKyAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19FVkVOVChyZXF1ZXN0KSk7CisgICAgZ19yZXR1cm5faWZfZmFp
bCh1cmkpOworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsK
KworICAgIGdfZnJlZShwcml2LT51cmkpOworICAgIHByaXYtPnVyaSA9IGdfc3RyZHVwKHVyaSk7
Cit9CisqLworR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF9ldmVudF9nZXRfZXZlbnRfdHlw
ZShXZWJLaXRFdmVudCogcmVxdWVzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfSVNfRVZFTlQocmVxdWVzdCksIE5VTEwpOworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBw
cml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICByZXR1cm4gZ19zdHJkdXAocHJpdi0+ZXZlbnQtPnR5
cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKK30KKwordm9pZCB3ZWJraXRfZXZlbnRfY2Fu
Y2VsX2J1YmJsZSAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0LCBnYm9vbGVhbiBjYW5jZWwpCit7Cisg
ICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5l
dmVudC0+c2V0Q2FuY2VsQnViYmxlKGNhbmNlbCk7Cit9CisKK3ZvaWQgd2Via2l0X2V2ZW50X3By
ZXZlbnRfZGVmYXVsdCAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50
UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnByZXZlbnRE
ZWZhdWx0KCk7Cit9CisKK3ZvaWQgd2Via2l0X2V2ZW50X3N0b3BfcHJvcGFnYXRpb24gIChXZWJL
aXRFdmVudCAqcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1
ZXN0LT5wcml2OworICAgIHByaXYtPmV2ZW50LT5zdG9wUHJvcGFnYXRpb24oKTsKK30KKworfSAv
LyBleHRlcm4gIkMiCisKK2NsYXNzIEhhY2tFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlz
dGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhhY2tFdmVudExpc3RlbmVy
PiBjcmVhdGUoV2ViS2l0V2ViRnJhbWUqIHdmKSB7IHJldHVybiBhZG9wdFJlZihuZXcgSGFja0V2
ZW50TGlzdGVuZXIod2YpKTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCos
IGJvb2wgaXNXaW5kb3dFdmVudCk7CisKKyAgICBwcml2YXRlOgorICAgIEhhY2tFdmVudExpc3Rl
bmVyKFdlYktpdFdlYkZyYW1lKiB3ZikgOiBtX3dmKHdmKSB7IH0KKyAgICBXZWJLaXRXZWJGcmFt
ZSogbV93ZjsKK307CisKK3ZvaWQgSGFja0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50
KiBldmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQoreworICAgIGdib29sZWFuIHJldHZhbDsKKyAg
ICBwcmludGYoImhhY2sgaGFuZGxlRXZlbnQgJXNcbiIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CisgICAgV2ViS2l0RXZlbnQgKndldiA9IHdlYmtpdF9ldmVudF9uZXco
KTsKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSB3ZXYtPnByaXY7CisgICAgcHJpdi0+
ZXZlbnQgPSBldmVudDsKKworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCAiYnJvd3Nl
ci1ldmVudCIsIAorICAgICAgICB3ZXYsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgaXNXaW5kb3dFdmVudCwgJnJldHZhbCk7CisgICAgLyogVE9ETzogc3RvcCBldmVudCBw
cm9wYWdhdGluZyBpZiBUcnVlIHJldHVybmVkICovCit9CisKK2dib29sZWFuIGFkZF93aW5kb3df
ZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUgKndmLCBGcmFtZSAqZnJhbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgRG9j
dW1lbnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgpOworCisgICAgUmVmUHRyPEV2ZW50TGlzdGVu
ZXI+IGxpc3RlbmVyID0gSGFja0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgZG9jLT5h
ZGRXaW5kb3dFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB0cnVlKTsKKworICAgIHJldHVy
biBUUlVFOworCit9IAorCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCShyZXZpc2lv
biAzNTc1OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtNDAsNiArNDAsOSBAQAogCiBHX0JFR0lOX0RFQ0xTCiAKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRFdmVudCBXZWJLaXRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudENs
YXNzIFdlYktpdEV2ZW50Q2xhc3M7CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVx
dWVzdCBXZWJLaXROZXR3b3JrUmVxdWVzdDsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3Jr
UmVxdWVzdENsYXNzIFdlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3M7CiAKSW5kZXg6IFdlYktpdC9n
dGsvd2Via2l0L2dkb21kZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQv
Z2RvbWRlZmluZXMuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L2dkb21kZWZp
bmVzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTI1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXRUJL
SVRfR0RPTV9ERUZJTkVTX0gKKyNkZWZpbmUgV0VCS0lUX0dET01fREVGSU5FU19ICisKKyNpbmNs
dWRlIDxnbGliLmg+CisKKyNpZmRlZiBHX09TX1dJTjMyCisgICAgI2lmZGVmIEJVSUxESU5HX1dF
QktJVF9HRE9NCisgICAgICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fZGVjbHNwZWMoZGxs
ZXhwb3J0KQorICAgICNlbHNlCisgICAgICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fZGVj
bHNwZWMoZGxsaW1wb3J0KQorICAgICNlbmRpZgorICAgICNkZWZpbmUgV0VCS0lUX0dET01fT0JT
T0xFVEVfQVBJIFdFQktJVF9HRE9NX0FQSQorI2Vsc2UKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9N
X0FQSSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorICAgICNkZWZpbmUg
V0VCS0lUX0dET01fT0JTT0xFVEVfQVBJIFdFQktJVF9HRE9NX0FQSSBfX2F0dHJpYnV0ZV9fKChk
ZXByZWNhdGVkKSkKKyNlbmRpZgorCisjaWZuZGVmIFdFQktJVF9HRE9NX0FQSQorICAgICNkZWZp
bmUgV0VCS0lUX0dET01fQVBJCisjZW5kaWYKKworR19CRUdJTl9ERUNMUworCisvKgordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21BdHRyQ2xhc3MgR0RvbUF0dHJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tQXR0ciBHRG9tQXR0cjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQXR0clByaXZhdGUgR0RvbUF0
dHJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21CYXJJbmZvQ2xhc3MgR0RvbUJhckluZm9D
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQmFySW5mbyBHRG9tQmFySW5mbzsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tQmFySW5mb1ByaXZhdGUgR0RvbUJhckluZm9Qcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DYW52YXNHcmFkaWVudENsYXNzIEdEb21DYW52YXNHcmFkaWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNHcmFkaWVudCBHRG9tQ2FudmFzR3JhZGllbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc0dyYWRpZW50UHJpdmF0ZSBHRG9tQ2FudmFzR3JhZGll
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuQ2xhc3MgR0RvbUNh
bnZhc1BhdHRlcm5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFzUGF0dGVybiBHRG9t
Q2FudmFzUGF0dGVybjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFzUGF0dGVyblByaXZhdGUg
R0RvbUNhbnZhc1BhdHRlcm5Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQaXhl
bEFycmF5Q2xhc3MgR0RvbUNhbnZhc1BpeGVsQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tQ2FudmFzUGl4ZWxBcnJheSBHRG9tQ2FudmFzUGl4ZWxBcnJheTsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tQ2FudmFzUGl4ZWxBcnJheVByaXZhdGUgR0RvbUNhbnZhc1BpeGVsQXJyYXlQcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDbGFzcyBHRG9t
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCBHRG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRQcml2YXRlIEdEb21DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DREFUQVNlY3Rp
b25DbGFzcyBHRG9tQ0RBVEFTZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRB
U2VjdGlvbiBHRG9tQ0RBVEFTZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DREFUQVNlY3Rp
b25Qcml2YXRlIEdEb21DREFUQVNlY3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21D
aGFyYWN0ZXJEYXRhQ2xhc3MgR0RvbUNoYXJhY3RlckRhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tQ2hhcmFjdGVyRGF0YSBHRG9tQ2hhcmFjdGVyRGF0YTsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tQ2hhcmFjdGVyRGF0YVByaXZhdGUgR0RvbUNoYXJhY3RlckRhdGFQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21DbGlwYm9hcmRDbGFzcyBHRG9tQ2xpcGJvYXJkQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUNsaXBib2FyZCBHRG9tQ2xpcGJvYXJkOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21DbGlwYm9hcmRQcml2YXRlIEdEb21DbGlwYm9hcmRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21Db21tZW50Q2xhc3MgR0RvbUNvbW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
Q29tbWVudCBHRG9tQ29tbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ29tbWVudFByaXZhdGUg
R0RvbUNvbW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db25zb2xlQ2xhc3MgR0Rv
bUNvbnNvbGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ29uc29sZSBHRG9tQ29uc29sZTsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tQ29uc29sZVByaXZhdGUgR0RvbUNvbnNvbGVQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21Db3VudGVyQ2xhc3MgR0RvbUNvdW50ZXJDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tQ291bnRlciBHRG9tQ291bnRlcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
Q291bnRlclByaXZhdGUgR0RvbUNvdW50ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21D
U1NDaGFyc2V0UnVsZUNsYXNzIEdEb21DU1NDaGFyc2V0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21DU1NDaGFyc2V0UnVsZSBHRG9tQ1NTQ2hhcnNldFJ1bGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU0NoYXJzZXRSdWxlUHJpdmF0ZSBHRG9tQ1NTQ2hhcnNldFJ1bGVQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NGb250RmFjZVJ1bGVDbGFzcyBHRG9tQ1NTRm9udEZhY2VS
dWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0ZvbnRGYWNlUnVsZSBHRG9tQ1NTRm9u
dEZhY2VSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NGb250RmFjZVJ1bGVQcml2YXRlIEdE
b21DU1NGb250RmFjZVJ1bGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRS
dWxlQ2xhc3MgR0RvbUNTU0ltcG9ydFJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NT
SW1wb3J0UnVsZSBHRG9tQ1NTSW1wb3J0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTSW1w
b3J0UnVsZVByaXZhdGUgR0RvbUNTU0ltcG9ydFJ1bGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21DU1NNZWRpYVJ1bGVDbGFzcyBHRG9tQ1NTTWVkaWFSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUNTU01lZGlhUnVsZSBHRG9tQ1NTTWVkaWFSdWxlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21DU1NNZWRpYVJ1bGVQcml2YXRlIEdEb21DU1NNZWRpYVJ1bGVQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21DU1NQYWdlUnVsZUNsYXNzIEdEb21DU1NQYWdlUnVsZUNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21DU1NQYWdlUnVsZSBHRG9tQ1NTUGFnZVJ1bGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUNTU1BhZ2VSdWxlUHJpdmF0ZSBHRG9tQ1NTUGFnZVJ1bGVQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21DU1NQcmltaXRpdmVWYWx1ZUNsYXNzIEdEb21DU1NQcmltaXRpdmVW
YWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NQcmltaXRpdmVWYWx1ZSBHRG9tQ1NT
UHJpbWl0aXZlVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ByaW1pdGl2ZVZhbHVlUHJp
dmF0ZSBHRG9tQ1NTUHJpbWl0aXZlVmFsdWVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21D
U1NSdWxlQ2xhc3MgR0RvbUNTU1J1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTUnVs
ZSBHRG9tQ1NTUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTUnVsZUxpc3RDbGFzcyBHRG9t
Q1NTUnVsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTUnVsZUxpc3QgR0RvbUNT
U1J1bGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlTGlzdFByaXZhdGUgR0RvbUNT
U1J1bGVMaXN0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTUnVsZVByaXZhdGUgR0Rv
bUNTU1J1bGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZURlY2xhcmF0aW9u
Q2xhc3MgR0RvbUNTU1N0eWxlRGVjbGFyYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
Q1NTU3R5bGVEZWNsYXJhdGlvbiBHRG9tQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tQ1NTU3R5bGVEZWNsYXJhdGlvblByaXZhdGUgR0RvbUNTU1N0eWxlRGVjbGFyYXRp
b25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVJ1bGVDbGFzcyBHRG9tQ1NT
U3R5bGVSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlUnVsZSBHRG9tQ1NT
U3R5bGVSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVJ1bGVQcml2YXRlIEdEb21D
U1NTdHlsZVJ1bGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0Q2xh
c3MgR0RvbUNTU1N0eWxlU2hlZXRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTU3R5bGVT
aGVldCBHRG9tQ1NTU3R5bGVTaGVldDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTU3R5bGVTaGVl
dFByaXZhdGUgR0RvbUNTU1N0eWxlU2hlZXRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21D
U1NWYWx1ZUNsYXNzIEdEb21DU1NWYWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NW
YWx1ZSBHRG9tQ1NTVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlTGlzdENsYXNz
IEdEb21DU1NWYWx1ZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0
IEdEb21DU1NWYWx1ZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlTGlzdFByaXZh
dGUgR0RvbUNTU1ZhbHVlTGlzdFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVl
UHJpdmF0ZSBHRG9tQ1NTVmFsdWVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbkNsYXNzIEdEb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbkNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiBHRG9tQ1NTVmFyaWFi
bGVzRGVjbGFyYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0
aW9uUHJpdmF0ZSBHRG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25Qcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NWYXJpYWJsZXNSdWxlQ2xhc3MgR0RvbUNTU1ZhcmlhYmxlc1J1bGVDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFyaWFibGVzUnVsZSBHRG9tQ1NTVmFyaWFibGVz
UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFyaWFibGVzUnVsZVByaXZhdGUgR0RvbUNT
U1ZhcmlhYmxlc1J1bGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21EYXRhYmFzZUNsYXNz
IEdEb21EYXRhYmFzZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21EYXRhYmFzZSBHRG9tRGF0
YWJhc2U7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURhdGFiYXNlUHJpdmF0ZSBHRG9tRGF0YWJhc2VQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudENsYXNzIEdEb21Eb2N1bWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudEZyYWdtZW50Q2xhc3MgR0RvbURvY3Vt
ZW50RnJhZ21lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRGcmFnbWVudCBH
RG9tRG9jdW1lbnRGcmFnbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRGcmFnbWVu
dFByaXZhdGUgR0RvbURvY3VtZW50RnJhZ21lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21Eb2N1bWVudCBHRG9tRG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50UHJp
dmF0ZSBHRG9tRG9jdW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudFR5
cGVDbGFzcyBHRG9tRG9jdW1lbnRUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3Vt
ZW50VHlwZSBHRG9tRG9jdW1lbnRUeXBlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudFR5
cGVQcml2YXRlIEdEb21Eb2N1bWVudFR5cGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21E
T01BcHBsaWNhdGlvbkNhY2hlQ2xhc3MgR0RvbURPTUFwcGxpY2F0aW9uQ2FjaGVDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tRE9NQXBwbGljYXRpb25DYWNoZSBHRG9tRE9NQXBwbGljYXRpb25D
YWNoZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NQXBwbGljYXRpb25DYWNoZVByaXZhdGUgR0Rv
bURPTUFwcGxpY2F0aW9uQ2FjaGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01Db3Jl
RXhjZXB0aW9uQ2xhc3MgR0RvbURPTUNvcmVFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tRE9NQ29yZUV4Y2VwdGlvbiBHRG9tRE9NQ29yZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tRE9NQ29yZUV4Y2VwdGlvblByaXZhdGUgR0RvbURPTUNvcmVFeGNlcHRpb25Qcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01JbXBsZW1lbnRhdGlvbkNsYXNzIEdEb21ET01J
bXBsZW1lbnRhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01JbXBsZW1lbnRhdGlv
biBHRG9tRE9NSW1wbGVtZW50YXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUltcGxlbWVu
dGF0aW9uUHJpdmF0ZSBHRG9tRE9NSW1wbGVtZW50YXRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21ET01PYmplY3QgR0RvbURPTU9iamVjdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9N
UGFyc2VyQ2xhc3MgR0RvbURPTVBhcnNlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01Q
YXJzZXIgR0RvbURPTVBhcnNlcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NUGFyc2VyUHJpdmF0
ZSBHRG9tRE9NUGFyc2VyUHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NU2VsZWN0aW9u
Q2xhc3MgR0RvbURPTVNlbGVjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxl
Y3Rpb24gR0RvbURPTVNlbGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NU2VsZWN0aW9u
UHJpdmF0ZSBHRG9tRE9NU2VsZWN0aW9uUHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9N
V2luZG93Q2xhc3MgR0RvbURPTVdpbmRvd0NsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01X
aW5kb3cgR0RvbURPTVdpbmRvdzsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NV2luZG93UHJpdmF0
ZSBHRG9tRE9NV2luZG93UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRWxlbWVudENsYXNz
IEdEb21FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUVsZW1lbnQgR0RvbUVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUVsZW1lbnRQcml2YXRlIEdEb21FbGVtZW50UHJpdmF0
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRW50aXR5Q2xhc3MgR0RvbUVudGl0eUNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHkgR0RvbUVudGl0eTsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
RW50aXR5UHJpdmF0ZSBHRG9tRW50aXR5UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRW50
aXR5UmVmZXJlbmNlQ2xhc3MgR0RvbUVudGl0eVJlZmVyZW5jZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21FbnRpdHlSZWZlcmVuY2UgR0RvbUVudGl0eVJlZmVyZW5jZTsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tRW50aXR5UmVmZXJlbmNlUHJpdmF0ZSBHRG9tRW50aXR5UmVmZXJlbmNlUHJpdmF0
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRXZlbnRDbGFzcyBHRG9tRXZlbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tRXZlbnRFeGNlcHRpb25DbGFzcyBHRG9tRXZlbnRFeGNlcHRpb25DbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRXZlbnRFeGNlcHRpb24gR0RvbUV2ZW50RXhjZXB0aW9u
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FdmVudEV4Y2VwdGlvblByaXZhdGUgR0RvbUV2ZW50RXhj
ZXB0aW9uUHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRXZlbnQgR0RvbUV2ZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21FdmVudFByaXZhdGUgR0RvbUV2ZW50UHJpdmF0ZTsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tRXZlbnRUYXJnZXQgR0RvbUV2ZW50VGFyZ2V0OwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21GaWxlQ2xhc3MgR0RvbUZpbGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRmlsZSBH
RG9tRmlsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRmlsZUxpc3RDbGFzcyBHRG9tRmlsZUxpc3RD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRmlsZUxpc3QgR0RvbUZpbGVMaXN0OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21GaWxlTGlzdFByaXZhdGUgR0RvbUZpbGVMaXN0UHJpdmF0ZTsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tRmlsZVByaXZhdGUgR0RvbUZpbGVQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IaXN0b3J5Q2xhc3MgR0RvbUhpc3RvcnlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tSGlzdG9yeSBHRG9tSGlzdG9yeTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSGlzdG9yeVByaXZh
dGUgR0RvbUhpc3RvcnlQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQW5jaG9yRWxl
bWVudENsYXNzIEdEb21IVE1MQW5jaG9yRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MQW5jaG9yRWxlbWVudCBHRG9tSFRNTEFuY2hvckVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxBbmNob3JFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEFuY2hvckVsZW1lbnRQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQXBwbGV0RWxlbWVudENsYXNzIEdEb21IVE1M
QXBwbGV0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQXBwbGV0RWxlbWVu
dCBHRG9tSFRNTEFwcGxldEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBcHBsZXRF
bGVtZW50UHJpdmF0ZSBHRG9tSFRNTEFwcGxldEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MQXJlYUVsZW1lbnRDbGFzcyBHRG9tSFRNTEFyZWFFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBcmVhRWxlbWVudCBHRG9tSFRNTEFyZWFFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQXJlYUVsZW1lbnRQcml2YXRlIEdEb21IVE1MQXJlYUVs
ZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQmFzZUVsZW1lbnRDbGFzcyBH
RG9tSFRNTEJhc2VFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRWxl
bWVudCBHRG9tSFRNTEJhc2VFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQmFzZUVs
ZW1lbnRQcml2YXRlIEdEb21IVE1MQmFzZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MQmFzZUZvbnRFbGVtZW50Q2xhc3MgR0RvbUhUTUxCYXNlRm9udEVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJhc2VGb250RWxlbWVudCBHRG9tSFRNTEJhc2VG
b250RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJhc2VGb250RWxlbWVudFByaXZh
dGUgR0RvbUhUTUxCYXNlRm9udEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MQmxvY2txdW90ZUVsZW1lbnRDbGFzcyBHRG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudCBHRG9tSFRNTEJsb2Nr
cXVvdGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQmxvY2txdW90ZUVsZW1lbnRQ
cml2YXRlIEdEb21IVE1MQmxvY2txdW90ZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MQm9keUVsZW1lbnRDbGFzcyBHRG9tSFRNTEJvZHlFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxCb2R5RWxlbWVudCBHRG9tSFRNTEJvZHlFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQm9keUVsZW1lbnRQcml2YXRlIEdEb21IVE1MQm9keUVsZW1l
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50Q2xhc3MgR0RvbUhU
TUxCUkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJSRWxlbWVudCBHRG9t
SFRNTEJSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJSRWxlbWVudFByaXZhdGUg
R0RvbUhUTUxCUkVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQnV0dG9u
RWxlbWVudENsYXNzIEdEb21IVE1MQnV0dG9uRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MQnV0dG9uRWxlbWVudCBHRG9tSFRNTEJ1dHRvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxCdXR0b25FbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJ1dHRvbkVsZW1lbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQ2FudmFzRWxlbWVudENsYXNzIEdEb21I
VE1MQ2FudmFzRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQ2FudmFzRWxl
bWVudCBHRG9tSFRNTENhbnZhc0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxDYW52
YXNFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTENhbnZhc0VsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MQ29sbGVjdGlvbkNsYXNzIEdEb21IVE1MQ29sbGVjdGlvbkNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQ29sbGVjdGlvbiBHRG9tSFRNTENvbGxlY3Rpb247Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxDb2xsZWN0aW9uUHJpdmF0ZSBHRG9tSFRNTENvbGxlY3Rp
b25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRGlyZWN0b3J5RWxlbWVudENsYXNz
IEdEb21IVE1MRGlyZWN0b3J5RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
RGlyZWN0b3J5RWxlbWVudCBHRG9tSFRNTERpcmVjdG9yeUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxEaXJlY3RvcnlFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTERpcmVjdG9yeUVsZW1l
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRGl2RWxlbWVudENsYXNzIEdEb21I
VE1MRGl2RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRGl2RWxlbWVudCBH
RG9tSFRNTERpdkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXZFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTERpdkVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
RExpc3RFbGVtZW50Q2xhc3MgR0RvbUhUTUxETGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTERMaXN0RWxlbWVudCBHRG9tSFRNTERMaXN0RWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tSFRNTERMaXN0RWxlbWVudFByaXZhdGUgR0RvbUhUTUxETGlzdEVsZW1lbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRG9jdW1lbnRDbGFzcyBHRG9tSFRNTERv
Y3VtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEb2N1bWVudCBHRG9tSFRNTERv
Y3VtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRG9jdW1lbnRQcml2YXRlIEdEb21IVE1M
RG9jdW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRWxlbWVudENsYXNzIEdE
b21IVE1MRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRWxlbWVudCBHRG9t
SFRNTEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50UHJpdmF0ZSBHRG9t
SFRNTEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVtZW50
Q2xhc3MgR0RvbUhUTUxFbWJlZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TEVtYmVkRWxlbWVudCBHRG9tSFRNTEVtYmVkRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTEVtYmVkRWxlbWVudFByaXZhdGUgR0RvbUhUTUxFbWJlZEVsZW1lbnRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRmllbGRTZXRFbGVtZW50Q2xhc3MgR0RvbUhUTUxGaWVsZFNl
dEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZpZWxkU2V0RWxlbWVudCBH
RG9tSFRNTEZpZWxkU2V0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZpZWxkU2V0
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxGaWVsZFNldEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MRm9udEVsZW1lbnRDbGFzcyBHRG9tSFRNTEZvbnRFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb250RWxlbWVudCBHRG9tSFRNTEZvbnRFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRm9udEVsZW1lbnRQcml2YXRlIEdEb21IVE1MRm9u
dEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRm9ybUVsZW1lbnRDbGFz
cyBHRG9tSFRNTEZvcm1FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb3Jt
RWxlbWVudCBHRG9tSFRNTEZvcm1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRm9y
bUVsZW1lbnRQcml2YXRlIEdEb21IVE1MRm9ybUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MRnJhbWVFbGVtZW50Q2xhc3MgR0RvbUhUTUxGcmFtZUVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZyYW1lRWxlbWVudCBHRG9tSFRNTEZyYW1lRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZyYW1lRWxlbWVudFByaXZhdGUgR0RvbUhUTUxG
cmFtZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRnJhbWVTZXRFbGVt
ZW50Q2xhc3MgR0RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tSFRNTEZyYW1lU2V0RWxlbWVudCBHRG9tSFRNTEZyYW1lU2V0RWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tSFRNTEZyYW1lU2V0RWxlbWVudFByaXZhdGUgR0RvbUhUTUxGcmFtZVNldEVs
ZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSGVhZEVsZW1lbnRDbGFzcyBH
RG9tSFRNTEhlYWRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkRWxl
bWVudCBHRG9tSFRNTEhlYWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSGVhZEVs
ZW1lbnRQcml2YXRlIEdEb21IVE1MSGVhZEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MSGVhZGluZ0VsZW1lbnRDbGFzcyBHRG9tSFRNTEhlYWRpbmdFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkaW5nRWxlbWVudCBHRG9tSFRNTEhlYWRpbmdF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSGVhZGluZ0VsZW1lbnRQcml2YXRlIEdE
b21IVE1MSGVhZGluZ0VsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJF
bGVtZW50Q2xhc3MgR0RvbUhUTUxIUkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTEhSRWxlbWVudCBHRG9tSFRNTEhSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TEhSRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIUkVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MSHRtbEVsZW1lbnRDbGFzcyBHRG9tSFRNTEh0bWxFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIdG1sRWxlbWVudCBHRG9tSFRNTEh0bWxFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSHRtbEVsZW1lbnRQcml2YXRlIEdEb21IVE1MSHRtbEVs
ZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSUZyYW1lRWxlbWVudENsYXNz
IEdEb21IVE1MSUZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSUZy
YW1lRWxlbWVudCBHRG9tSFRNTElGcmFtZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxJRnJhbWVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTElGcmFtZUVsZW1lbnRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW1hZ2VFbGVtZW50Q2xhc3MgR0RvbUhUTUxJbWFnZUVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEltYWdlRWxlbWVudCBHRG9tSFRNTElt
YWdlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEltYWdlRWxlbWVudFByaXZhdGUg
R0RvbUhUTUxJbWFnZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW5w
dXRFbGVtZW50Q2xhc3MgR0RvbUhUTUxJbnB1dEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTElucHV0RWxlbWVudCBHRG9tSFRNTElucHV0RWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTElucHV0RWxlbWVudFByaXZhdGUgR0RvbUhUTUxJbnB1dEVsZW1lbnRQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSXNJbmRleEVsZW1lbnRDbGFzcyBHRG9tSFRN
TElzSW5kZXhFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJc0luZGV4RWxl
bWVudCBHRG9tSFRNTElzSW5kZXhFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSXNJ
bmRleEVsZW1lbnRQcml2YXRlIEdEb21IVE1MSXNJbmRleEVsZW1lbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MTGFiZWxFbGVtZW50Q2xhc3MgR0RvbUhUTUxMYWJlbEVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTExhYmVsRWxlbWVudCBHRG9tSFRNTExhYmVs
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTExhYmVsRWxlbWVudFByaXZhdGUgR0Rv
bUhUTUxMYWJlbEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGVnZW5k
RWxlbWVudENsYXNzIEdEb21IVE1MTGVnZW5kRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MTGVnZW5kRWxlbWVudCBHRG9tSFRNTExlZ2VuZEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxMZWdlbmRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTExlZ2VuZEVsZW1lbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTElFbGVtZW50Q2xhc3MgR0RvbUhUTUxM
SUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTExJRWxlbWVudCBHRG9tSFRN
TExJRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTExJRWxlbWVudFByaXZhdGUgR0Rv
bUhUTUxMSUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGlua0VsZW1l
bnRDbGFzcyBHRG9tSFRNTExpbmtFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxMaW5rRWxlbWVudCBHRG9tSFRNTExpbmtFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MTGlua0VsZW1lbnRQcml2YXRlIEdEb21IVE1MTGlua0VsZW1lbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MTWFwRWxlbWVudENsYXNzIEdEb21IVE1MTWFwRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTWFwRWxlbWVudCBHRG9tSFRNTE1hcEVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXBFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE1hcEVs
ZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTWFycXVlZUVsZW1lbnRDbGFz
cyBHRG9tSFRNTE1hcnF1ZWVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxN
YXJxdWVlRWxlbWVudCBHRG9tSFRNTE1hcnF1ZWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MTWFycXVlZUVsZW1lbnRQcml2YXRlIEdEb21IVE1MTWFycXVlZUVsZW1lbnRQcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTWVudUVsZW1lbnRDbGFzcyBHRG9tSFRNTE1lbnVF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZW51RWxlbWVudCBHRG9tSFRN
TE1lbnVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTWVudUVsZW1lbnRQcml2YXRl
IEdEb21IVE1MTWVudUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTWV0
YUVsZW1lbnRDbGFzcyBHRG9tSFRNTE1ldGFFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxNZXRhRWxlbWVudCBHRG9tSFRNTE1ldGFFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MTWV0YUVsZW1lbnRQcml2YXRlIEdEb21IVE1MTWV0YUVsZW1lbnRQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTW9kRWxlbWVudENsYXNzIEdEb21IVE1MTW9kRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTW9kRWxlbWVudCBHRG9tSFRNTE1vZEVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNb2RFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TE1vZEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT2JqZWN0RWxlbWVu
dENsYXNzIEdEb21IVE1MT2JqZWN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MT2JqZWN0RWxlbWVudCBHRG9tSFRNTE9iamVjdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxPYmplY3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE9iamVjdEVsZW1lbnRQcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT0xpc3RFbGVtZW50Q2xhc3MgR0RvbUhUTUxPTGlz
dEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9MaXN0RWxlbWVudCBHRG9t
SFRNTE9MaXN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9MaXN0RWxlbWVudFBy
aXZhdGUgR0RvbUhUTUxPTGlzdEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MT3B0R3JvdXBFbGVtZW50Q2xhc3MgR0RvbUhUTUxPcHRHcm91cEVsZW1lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9wdEdyb3VwRWxlbWVudCBHRG9tSFRNTE9wdEdyb3VwRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9wdEdyb3VwRWxlbWVudFByaXZhdGUgR0Rv
bUhUTUxPcHRHcm91cEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT3B0
aW9uRWxlbWVudENsYXNzIEdEb21IVE1MT3B0aW9uRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MT3B0aW9uRWxlbWVudCBHRG9tSFRNTE9wdGlvbkVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxPcHRpb25FbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE9wdGlvbkVsZW1l
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25DbGFz
cyBHRG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxPcHRpb25zQ29sbGVjdGlvbiBHRG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25Qcml2YXRlIEdEb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYWdyYXBoRWxlbWVu
dENsYXNzIEdEb21IVE1MUGFyYWdyYXBoRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MUGFyYWdyYXBoRWxlbWVudCBHRG9tSFRNTFBhcmFncmFwaEVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFBhcmFncmFw
aEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50Q2xh
c3MgR0RvbUhUTUxQYXJhbUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFBh
cmFtRWxlbWVudCBHRG9tSFRNTFBhcmFtRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TFBhcmFtRWxlbWVudFByaXZhdGUgR0RvbUhUTUxQYXJhbUVsZW1lbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MUHJlRWxlbWVudENsYXNzIEdEb21IVE1MUHJlRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUHJlRWxlbWVudCBHRG9tSFRNTFByZUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQcmVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFByZUVs
ZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50Q2xhc3Mg
R0RvbUhUTUxRdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFF1b3Rl
RWxlbWVudCBHRG9tSFRNTFF1b3RlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFF1
b3RlRWxlbWVudFByaXZhdGUgR0RvbUhUTUxRdW90ZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MU2NyaXB0RWxlbWVudENsYXNzIEdEb21IVE1MU2NyaXB0RWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU2NyaXB0RWxlbWVudCBHRG9tSFRNTFNjcmlw
dEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTY3JpcHRFbGVtZW50UHJpdmF0ZSBH
RG9tSFRNTFNjcmlwdEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU2Vs
ZWN0RWxlbWVudENsYXNzIEdEb21IVE1MU2VsZWN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MU2VsZWN0RWxlbWVudCBHRG9tSFRNTFNlbGVjdEVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxTZWxlY3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFNlbGVjdEVsZW1l
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50Q2xhc3MgR0Rv
bUhUTUxTdHlsZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFN0eWxlRWxl
bWVudCBHRG9tSFRNTFN0eWxlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFN0eWxl
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxTdHlsZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzIEdEb21IVE1MVGFibGVDYXB0aW9u
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dCBHRG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDZWxsRWxlbWVudENsYXNzIEdEb21I
VE1MVGFibGVDZWxsRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVD
ZWxsRWxlbWVudCBHRG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxUYWJsZUNlbGxFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDb2xFbGVtZW50Q2xhc3MgR0RvbUhU
TUxUYWJsZUNvbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ29s
RWxlbWVudCBHRG9tSFRNTFRhYmxlQ29sRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TFRhYmxlQ29sRWxlbWVudFByaXZhdGUgR0RvbUhUTUxUYWJsZUNvbEVsZW1lbnRQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVFbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlRWxlbWVudCBHRG9tSFRN
TFRhYmxlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlRWxlbWVudFByaXZh
dGUgR0RvbUhUTUxUYWJsZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
VGFibGVSb3dFbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZVJvd0VsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlUm93RWxlbWVudCBHRG9tSFRNTFRhYmxlUm93RWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlUm93RWxlbWVudFByaXZhdGUgR0RvbUhU
TUxUYWJsZVJvd0VsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudENsYXNzIEdEb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudCBHRG9tSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
UHJpdmF0ZSBHRG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MVGV4dEFyZWFFbGVtZW50Q2xhc3MgR0RvbUhUTUxUZXh0QXJlYUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRleHRBcmVhRWxlbWVudCBHRG9tSFRNTFRl
eHRBcmVhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRleHRBcmVhRWxlbWVudFBy
aXZhdGUgR0RvbUhUTUxUZXh0QXJlYUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MVGl0bGVFbGVtZW50Q2xhc3MgR0RvbUhUTUxUaXRsZUVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTFRpdGxlRWxlbWVudCBHRG9tSFRNTFRpdGxlRWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRpdGxlRWxlbWVudFByaXZhdGUgR0RvbUhUTUxUaXRsZUVs
ZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50Q2xhc3Mg
R0RvbUhUTUxVTGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFVMaXN0
RWxlbWVudCBHRG9tSFRNTFVMaXN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFVM
aXN0RWxlbWVudFByaXZhdGUgR0RvbUhUTUxVTGlzdEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21JbWFnZURhdGFDbGFzcyBHRG9tSW1hZ2VEYXRhQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUltYWdlRGF0YSBHRG9tSW1hZ2VEYXRhOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21J
bWFnZURhdGFQcml2YXRlIEdEb21JbWFnZURhdGFQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21KYXZhU2NyaXB0Q2FsbEZyYW1lQ2xhc3MgR0RvbUphdmFTY3JpcHRDYWxsRnJhbWVDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSmF2YVNjcmlwdENhbGxGcmFtZSBHRG9tSmF2YVNjcmlwdENh
bGxGcmFtZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSmF2YVNjcmlwdENhbGxGcmFtZVByaXZhdGUg
R0RvbUphdmFTY3JpcHRDYWxsRnJhbWVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXli
b2FyZEV2ZW50Q2xhc3MgR0RvbUtleWJvYXJkRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tS2V5Ym9hcmRFdmVudCBHRG9tS2V5Ym9hcmRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
S2V5Ym9hcmRFdmVudFByaXZhdGUgR0RvbUtleWJvYXJkRXZlbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21Mb2NhdGlvbkNsYXNzIEdEb21Mb2NhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21Mb2NhdGlvbiBHRG9tTG9jYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxvY2F0
aW9uUHJpdmF0ZSBHRG9tTG9jYXRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NZWRp
YUxpc3RDbGFzcyBHRG9tTWVkaWFMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lZGlh
TGlzdCBHRG9tTWVkaWFMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NZWRpYUxpc3RQcml2YXRl
IEdEb21NZWRpYUxpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NZXNzYWdlRXZlbnRD
bGFzcyBHRG9tTWVzc2FnZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VF
dmVudCBHRG9tTWVzc2FnZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NZXNzYWdlRXZlbnRQ
cml2YXRlIEdEb21NZXNzYWdlRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1l
VHlwZUFycmF5Q2xhc3MgR0RvbU1pbWVUeXBlQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tTWltZVR5cGVBcnJheSBHRG9tTWltZVR5cGVBcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
TWltZVR5cGVBcnJheVByaXZhdGUgR0RvbU1pbWVUeXBlQXJyYXlQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21NaW1lVHlwZUNsYXNzIEdEb21NaW1lVHlwZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21NaW1lVHlwZSBHRG9tTWltZVR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVU
eXBlUHJpdmF0ZSBHRG9tTWltZVR5cGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3Vz
ZUV2ZW50Q2xhc3MgR0RvbU1vdXNlRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTW91
c2VFdmVudCBHRG9tTW91c2VFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTW91c2VFdmVudFBy
aXZhdGUgR0RvbU1vdXNlRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlv
bkV2ZW50Q2xhc3MgR0RvbU11dGF0aW9uRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
TXV0YXRpb25FdmVudCBHRG9tTXV0YXRpb25FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTXV0
YXRpb25FdmVudFByaXZhdGUgR0RvbU11dGF0aW9uRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21OYW1lZE5vZGVNYXBDbGFzcyBHRG9tTmFtZWROb2RlTWFwQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbU5hbWVkTm9kZU1hcCBHRG9tTmFtZWROb2RlTWFwOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21OYW1lZE5vZGVNYXBQcml2YXRlIEdEb21OYW1lZE5vZGVNYXBQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21OYXZpZ2F0b3JDbGFzcyBHRG9tTmF2aWdhdG9yQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbU5hdmlnYXRvciBHRG9tTmF2aWdhdG9yOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21OYXZpZ2F0b3JQcml2YXRlIEdEb21OYXZpZ2F0b3JQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21Ob2RlQ2xhc3MgR0RvbU5vZGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9k
ZUZpbHRlckNsYXNzIEdEb21Ob2RlRmlsdGVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5v
ZGVGaWx0ZXIgR0RvbU5vZGVGaWx0ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVGaWx0ZXJQ
cml2YXRlIEdEb21Ob2RlRmlsdGVyUHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZSBH
RG9tTm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUl0ZXJhdG9yQ2xhc3MgR0RvbU5vZGVJ
dGVyYXRvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlSXRlcmF0b3IgR0RvbU5vZGVJ
dGVyYXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUl0ZXJhdG9yUHJpdmF0ZSBHRG9tTm9k
ZUl0ZXJhdG9yUHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUxpc3RDbGFzcyBHRG9t
Tm9kZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUxpc3QgR0RvbU5vZGVMaXN0
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlTGlzdFByaXZhdGUgR0RvbU5vZGVMaXN0UHJpdmF0
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZVByaXZhdGUgR0RvbU5vZGVQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21Ob3RhdGlvbkNsYXNzIEdEb21Ob3RhdGlvbkNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21Ob3RhdGlvbiBHRG9tTm90YXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bU5vdGF0aW9uUHJpdmF0ZSBHRG9tTm90YXRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21PdmVyZmxvd0V2ZW50Q2xhc3MgR0RvbU92ZXJmbG93RXZlbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tT3ZlcmZsb3dFdmVudCBHRG9tT3ZlcmZsb3dFdmVudDsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tT3ZlcmZsb3dFdmVudFByaXZhdGUgR0RvbU92ZXJmbG93RXZlbnRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21QbHVnaW5BcnJheUNsYXNzIEdEb21QbHVnaW5BcnJheUNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21QbHVnaW5BcnJheSBHRG9tUGx1Z2luQXJyYXk7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVBsdWdpbkFycmF5UHJpdmF0ZSBHRG9tUGx1Z2luQXJyYXlQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21QbHVnaW5DbGFzcyBHRG9tUGx1Z2luQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVBsdWdpbiBHRG9tUGx1Z2luOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21QbHVn
aW5Qcml2YXRlIEdEb21QbHVnaW5Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb25DbGFzcyBHRG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBHRG9tUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Qcml2YXRl
IEdEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Q
cm9ncmVzc0V2ZW50Q2xhc3MgR0RvbVByb2dyZXNzRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tUHJvZ3Jlc3NFdmVudCBHRG9tUHJvZ3Jlc3NFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tUHJvZ3Jlc3NFdmVudFByaXZhdGUgR0RvbVByb2dyZXNzRXZlbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21SYW5nZUNsYXNzIEdEb21SYW5nZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21SYW5nZUV4Y2VwdGlvbkNsYXNzIEdEb21SYW5nZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21SYW5nZUV4Y2VwdGlvbiBHRG9tUmFuZ2VFeGNlcHRpb247Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVJhbmdlRXhjZXB0aW9uUHJpdmF0ZSBHRG9tUmFuZ2VFeGNlcHRpb25Qcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21SYW5nZSBHRG9tUmFuZ2U7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVJhbmdlUHJpdmF0ZSBHRG9tUmFuZ2VQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21SZWN0Q2xhc3MgR0RvbVJlY3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUmVjdCBHRG9t
UmVjdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUmVjdFByaXZhdGUgR0RvbVJlY3RQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21TY3JlZW5DbGFzcyBHRG9tU2NyZWVuQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVNjcmVlbiBHRG9tU2NyZWVuOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TY3Jl
ZW5Qcml2YXRlIEdEb21TY3JlZW5Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxFcnJv
ckNsYXNzIEdEb21TUUxFcnJvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxFcnJvciBH
RG9tU1FMRXJyb3I7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTEVycm9yUHJpdmF0ZSBHRG9tU1FM
RXJyb3JQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxSZXN1bHRTZXRDbGFzcyBHRG9t
U1FMUmVzdWx0U2V0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldCBHRG9t
U1FMUmVzdWx0U2V0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxSZXN1bHRTZXRQcml2YXRlIEdE
b21TUUxSZXN1bHRTZXRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxSZXN1bHRTZXRS
b3dMaXN0Q2xhc3MgR0RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tU1FMUmVzdWx0U2V0Um93TGlzdCBHRG9tU1FMUmVzdWx0U2V0Um93TGlzdDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tU1FMUmVzdWx0U2V0Um93TGlzdFByaXZhdGUgR0RvbVNRTFJlc3VsdFNl
dFJvd0xpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxUcmFuc2FjdGlvbkNsYXNz
IEdEb21TUUxUcmFuc2FjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxUcmFuc2Fj
dGlvbiBHRG9tU1FMVHJhbnNhY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0
aW9uUHJpdmF0ZSBHRG9tU1FMVHJhbnNhY3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21TdG9yYWdlQ2xhc3MgR0RvbVN0b3JhZ2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3Rv
cmFnZUV2ZW50Q2xhc3MgR0RvbVN0b3JhZ2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21TdG9yYWdlRXZlbnQgR0RvbVN0b3JhZ2VFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3Rv
cmFnZUV2ZW50UHJpdmF0ZSBHRG9tU3RvcmFnZUV2ZW50UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tU3RvcmFnZSBHRG9tU3RvcmFnZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3RvcmFnZVBy
aXZhdGUgR0RvbVN0b3JhZ2VQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0
Q2xhc3MgR0RvbVN0eWxlU2hlZXRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3R5bGVTaGVl
dCBHRG9tU3R5bGVTaGVldDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3R5bGVTaGVldExpc3RDbGFz
cyBHRG9tU3R5bGVTaGVldExpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3R5bGVTaGVl
dExpc3QgR0RvbVN0eWxlU2hlZXRMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0
TGlzdFByaXZhdGUgR0RvbVN0eWxlU2hlZXRMaXN0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tU3R5bGVTaGVldFByaXZhdGUgR0RvbVN0eWxlU2hlZXRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21UZXh0Q2xhc3MgR0RvbVRleHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVGV4
dEV2ZW50Q2xhc3MgR0RvbVRleHRFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0
RXZlbnQgR0RvbVRleHRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVGV4dEV2ZW50UHJpdmF0
ZSBHRG9tVGV4dEV2ZW50UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVGV4dCBHRG9tVGV4
dDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVGV4dFByaXZhdGUgR0RvbVRleHRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21UcmVlV2Fsa2VyQ2xhc3MgR0RvbVRyZWVXYWxrZXJDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tVHJlZVdhbGtlciBHRG9tVHJlZVdhbGtlcjsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tVHJlZVdhbGtlclByaXZhdGUgR0RvbVRyZWVXYWxrZXJQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21VSUV2ZW50Q2xhc3MgR0RvbVVJRXZlbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tVUlFdmVudCBHRG9tVUlFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVUlFdmVu
dFByaXZhdGUgR0RvbVVJRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XZWJLaXRB
bmltYXRpb25FdmVudENsYXNzIEdEb21XZWJLaXRBbmltYXRpb25FdmVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21XZWJLaXRBbmltYXRpb25FdmVudCBHRG9tV2ViS2l0QW5pbWF0aW9uRXZl
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdEFuaW1hdGlvbkV2ZW50UHJpdmF0ZSBHRG9t
V2ViS2l0QW5pbWF0aW9uRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZUNsYXNzIEdEb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSBHRG9tV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlUHJpdmF0ZSBHRG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzcyBHRG9tV2ViS2l0VHJhbnNpdGlv
bkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdFRyYW5zaXRpb25FdmVudCBH
RG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XZWJLaXRUcmFu
c2l0aW9uRXZlbnRQcml2YXRlIEdEb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21XaGVlbEV2ZW50Q2xhc3MgR0RvbVdoZWVsRXZlbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tV2hlZWxFdmVudCBHRG9tV2hlZWxFdmVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tV2hlZWxFdmVudFByaXZhdGUgR0RvbVdoZWVsRXZlbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdENsYXNzIEdEb21YTUxIdHRwUmVxdWVzdENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbkNsYXNzIEdEb21Y
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbiBHRG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb247Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uUHJpdmF0ZSBHRG9tWE1MSHR0cFJlcXVl
c3RFeGNlcHRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdCBH
RG9tWE1MSHR0cFJlcXVlc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0UHJp
dmF0ZSBHRG9tWE1MSHR0cFJlcXVlc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRDbGFzcyBHRG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dCBHRG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Y
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRQcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdFVwbG9h
ZENsYXNzIEdEb21YTUxIdHRwUmVxdWVzdFVwbG9hZENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21YTUxIdHRwUmVxdWVzdFVwbG9hZCBHRG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQ7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkUHJpdmF0ZSBHRG9tWE1MSHR0cFJlcXVl
c3RVcGxvYWRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyQ2xhc3Mg
R0RvbVhNTFNlcmlhbGl6ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1MU2VyaWFsaXpl
ciBHRG9tWE1MU2VyaWFsaXplcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1MU2VyaWFsaXplclBy
aXZhdGUgR0RvbVhNTFNlcmlhbGl6ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0
aEV2YWx1YXRvckNsYXNzIEdEb21YUGF0aEV2YWx1YXRvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21YUGF0aEV2YWx1YXRvciBHRG9tWFBhdGhFdmFsdWF0b3I7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVhQYXRoRXZhbHVhdG9yUHJpdmF0ZSBHRG9tWFBhdGhFdmFsdWF0b3JQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aEV4Y2VwdGlvbkNsYXNzIEdEb21YUGF0aEV4Y2VwdGlvbkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aEV4Y2VwdGlvbiBHRG9tWFBhdGhFeGNlcHRp
b247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhjZXB0aW9uUHJpdmF0ZSBHRG9tWFBhdGhF
eGNlcHRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aEV4cHJlc3Npb25DbGFz
cyBHRG9tWFBhdGhFeHByZXNzaW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhw
cmVzc2lvbiBHRG9tWFBhdGhFeHByZXNzaW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aEV4
cHJlc3Npb25Qcml2YXRlIEdEb21YUGF0aEV4cHJlc3Npb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21YUGF0aE5TUmVzb2x2ZXJDbGFzcyBHRG9tWFBhdGhOU1Jlc29sdmVyQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoTlNSZXNvbHZlciBHRG9tWFBhdGhOU1Jlc29sdmVyOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aE5TUmVzb2x2ZXJQcml2YXRlIEdEb21YUGF0aE5TUmVz
b2x2ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aFJlc3VsdENsYXNzIEdEb21Y
UGF0aFJlc3VsdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aFJlc3VsdCBHRG9tWFBh
dGhSZXN1bHQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoUmVzdWx0UHJpdmF0ZSBHRG9tWFBh
dGhSZXN1bHRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yQ2xhc3Mg
R0RvbVhTTFRQcm9jZXNzb3JDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFNMVFByb2Nlc3Nv
ciBHRG9tWFNMVFByb2Nlc3NvcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFNMVFByb2Nlc3NvclBy
aXZhdGUgR0RvbVhTTFRQcm9jZXNzb3JQcml2YXRlOworKi8KKworR19FTkRfREVDTFMKKworI2Vu
ZGlmCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRldmVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5k
ZWYgV0VCS0lUX0VWRU5UX0gKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0gKKworI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+CisKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JF
R0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfRVZFTlQgICAgICAgICAgICAod2Via2l0
X2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9FVkVOVChvYmopICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9FVkVOVCwgV2Vi
S2l0RXZlbnQpKQorI2RlZmluZSBXRUJLSVRfRVZFTlRfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktpdEV2ZW50
Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfRVZFTlQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfRVZFTlQpKQorI2RlZmluZSBXRUJL
SVRfSVNfRVZFTlRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3Mp
LCAgV0VCS0lUX1RZUEVfRVZFTlQpKQorI2RlZmluZSBXRUJLSVRfRVZFTlRfR0VUX0NMQVNTKG9i
aikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRVZFTlQs
IFdlYktpdEV2ZW50Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnRQcml2YXRl
IFdlYktpdEV2ZW50UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRFdmVudCB7CisgICAgR09iamVj
dCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBXZWJLaXRFdmVudFByaXZhdGUgKnByaXY7Cit9Owor
CitzdHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xh
c3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfZXZlbnRfZ2V0X3R5cGUgKHZvaWQp
OworCitXRUJLSVRfQVBJIFdlYktpdEV2ZW50ICoKK3dlYmtpdF9ldmVudF9uZXcgICAgICAodm9p
ZCk7CisKKy8qV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZXZlbnRfc2V0X3VyaSAgKFdlYktpdEV2
ZW50ICpyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIqICAgICAgICAgIHVyaSk7Ki8KKworV0VCS0lUX0FQSSBHX0NPTlNUX1JFVFVSTiBnY2hhciAq
Cit3ZWJraXRfZXZlbnRfZ2V0X2V2ZW50X3R5cGUgIChXZWJLaXRFdmVudCAqcmVxdWVzdCk7CisK
K1dFQktJVF9BUEkgdm9pZCAKK3dlYmtpdF9ldmVudF9jYW5jZWxfYnViYmxlICAoV2ViS2l0RXZl
bnQgKnJlcXVlc3QsIGdib29sZWFuIGNhbmNlbCk7CisKK1dFQktJVF9BUEkgdm9pZCAKK3dlYmtp
dF9ldmVudF9wcmV2ZW50X2RlZmF1bHQgIChXZWJLaXRFdmVudCAqcmVxdWVzdCk7CisKK1dFQktJ
VF9BUEkgdm9pZCAKK3dlYmtpdF9ldmVudF9zdG9wX3Byb3BhZ2F0aW9uICAoV2ViS2l0RXZlbnQg
KnJlcXVlc3QpOworCitHX0VORF9ERUNMUworCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC05LDYg
KzksNyBAQAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
L3BsYXRmb3JtIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsgXApAQCAt
MjksNiArMzAsNyBAQAogCS1JJChzcmNkaXIpL1dlYkNvcmUveG1sIFwKIAktSSQoc3JjZGlyKS9X
ZWJDb3JlL2h0bWwgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvanMgXAorCS1JJChz
cmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1kZWNvZGVycy9ibXAgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvZ2lmIFwKQEAgLTU1LDcgKzU3LDcgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0QmFz
ZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1dC5oIFwKLQlXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAKKwlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAgCiAKIHdlYmNvcmVf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvQ1NTR3JhbW1hci5jcHAgXApAQCAt
MzU4LDggKzM2MCw1ODkgQEAKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHlsZVNoZWV0cy5o
IFwKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9YTUxOYW1lcy5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmgKKwlE
ZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQXR0ci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21BdHRyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21CYXJJ
bmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUJhckluZm8uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DREFUQVNlY3Rp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NG
b250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTRm9udEZhY2VSdWxlLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU01lZGlhUnVs
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NNZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1BhZ2VS
dWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQcmltaXRpdmVWYWx1ZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21DU1NQcmltaXRpdmVWYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ1NTUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NS
dWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21DU1NTdHlsZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5
bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVNoZWV0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUNTU1N0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNT
U1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21DU1NWYWx1ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFs
dWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNHcmFk
aWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQ2FudmFzUGF0dGVybi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
YW52YXNQYXR0ZXJuLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNQaXhlbEFycmF5LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1BpeGVsQXJyYXkuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNo
YXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2hhcmFjdGVyRGF0YS5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ29tbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Db21tZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Db25zb2xlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvbnNvbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ291bnRlci5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tRE9NQ29yZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21E
T01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01JbXBsZW1lbnRhdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01JbXBsZW1lbnRhdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVBh
cnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NU2VsZWN0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NV2lu
ZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVdpbmRvdy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50RnJhZ21lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1l
bnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50VHlwZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHlSZWZlcmVuY2UuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5UmVmZXJlbmNlLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21FdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRXZl
bnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tRmlsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxBbmNob3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBbmNob3JFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXBwbGV0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MQXBwbGV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBcmVhRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJSRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21IVE1MQlJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
QmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJhc2VFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxCbG9ja3F1b3RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmxv
Y2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCb2R5RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQm9keUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQ2FudmFzRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxETGlzdEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxEaXZF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxEaXZFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRW1iZWRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRm9u
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGb3JtRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRm9ybUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZyYW1l
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxI
UkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIZWFkRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxIZWFkaW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVh
ZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIdG1sRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSHRtbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJ
RnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSW1hZ2VFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TElucHV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTElzSW5kZXhFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTExJRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTGFiZWxFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMYWJlbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTGlua0VsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
TWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTE1lbnVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1ldGFFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1v
ZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPTGlzdEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9i
amVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPcHRHcm91cEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPcHRpb25z
Q29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MUGFyYW1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQ
YXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQcmVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQcmVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxRdW90
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTY3JpcHRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
U2VsZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFN0eWxlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFRhYmxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVSb3dFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUaXRsZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IaXN0b3J5LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUltYWdl
RGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21JbWFnZURhdGEuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tS2V5Ym9hcmRFdmVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Mb2NhdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVzc2FnZUV2ZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWltZVR5cGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbU1pbWVUeXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
TWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTW91c2VFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21N
dXRhdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU11dGF0aW9uRXZlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5hdmlnYXRvci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlRmlsdGVyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlSXRlcmF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Tm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm90YXRpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbU92ZXJmbG93RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tT3Zl
cmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVBsdWdpbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2luQXJyYXku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2luQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVByb2dyZXNzRXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJvZ3Jlc3NFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUmFuZ2UuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21SZWN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNjcmVlbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tVGV4dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGV4dEV2ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21UcmVlV2Fsa2VyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
V2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdFRy
YW5zaXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2hlZWxFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Y
TUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Y
TUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MU2VyaWFsaXpl
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhTTFRQ
cm9jZXNzb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21BdHRyLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21BdHRyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQmFySW5m
by5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQmFySW5mby5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
Q0RBVEFTZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTQ2hhcnNldFJ1bGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU0NoYXJzZXRSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTRm9udEZhY2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NJ
bXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NJbXBvcnRSdWxlLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21DU1NNZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21D
U1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUGFnZVJ1bGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NQcmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NSdWxlLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUnVsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NT
U3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1N0eWxlUnVsZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
Q1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhbHVlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NWYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFs
dWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRp
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVzUnVsZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21D
YW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNhbnZhc1BhdHRlcm4u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DYW52YXNQaXhlbEFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DaGFyYWN0
ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DaGFyYWN0ZXJEYXRhLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Db21tZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Db21tZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ29uc29sZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01Db3JlRXhj
ZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01Db3JlRXhjZXB0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NSW1wbGVtZW50YXRpb24uY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01QYXJz
ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01TZWxlY3Rpb24uY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbURPTVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NV2luZG93Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbURvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRG
cmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRGcmFnbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50VHlwZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUVudGl0eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
RW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRW50aXR5UmVmZXJlbmNlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FbnRpdHlSZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21GaWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21GaWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUZpbGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFuY2hvckVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBbmNob3JFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFwcGxldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQXJl
YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQlJFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQlJFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTEJhc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQmFzZUZv
bnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQmFzZUZvbnRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQm9keUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQnV0
dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxDYW52YXNFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxETGlzdEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRGl2RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxEb2N1bWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxFbWJlZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxFbWJlZEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRmllbGRTZXRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRmllbGRTZXRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MRm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGb3JtRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhSRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSHRt
bEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxIdG1sRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSUZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSW5wdXRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSW5wdXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTExhYmVsRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTExhYmVsRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MTGVnZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTExp
bmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1hcEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNZW51RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNZXRhRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE9MaXN0RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPYmplY3RFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT3B0
aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE9wdGlvbkVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUHJlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MUXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxT
Y3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFNlbGVjdEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFi
bGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNvbEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUZXh0QXJlYUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGl0bGVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhpc3Rvcnku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21JbWFnZURhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUltYWdl
RGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTG9jYXRp
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21N
ZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NZXNzYWdlRXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NaW1lVHlw
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlQXJyYXkuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Nb3VzZUV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0YXRpb25FdmVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTmFtZWROb2Rl
TWFwLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTmF2aWdhdG9yLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21O
b2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Ob2RlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9k
ZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vZGVJdGVyYXRvci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vZGVMaXN0
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbU5vdGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tT3ZlcmZs
b3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tT3ZlcmZsb3dFdmVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUGx1Z2luQXJyYXkuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbkFycmF5LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Qcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Qcm9ncmVzc0V2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbVJhbmdlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmFuZ2VFeGNl
cHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdlRXhjZXB0aW9uLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNjcmVlbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tU2NyZWVuLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3R5
bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3R5bGVTaGVldC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0eWxlU2hlZXRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRl
eHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRleHQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRleHRF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21VSUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21VSUV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21X
ZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21XaGVlbEV2
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21XaGVlbEV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxIdHRwUmVx
dWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RV
cGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxTZXJpYWxpemVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFNM
VFByb2Nlc3Nvci5oIAogCisjRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwCisjRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnku
aCAKKwogSURMX0JJTkRJTkdTICs9ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgXAogCVdl
YkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCkBAIC03MDEsNiArMTI4NCwxNCBAQAogCVdl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgXAogCVdlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmluZ1Nv
dXJjZVByb3ZpZGVyLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmNw
cCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21ET01PYmplY3QuaCBcCisJV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZl
bnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdl
dE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2Rl
LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmgg
XAogCVdlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcCBcCiAJV2ViQ29yZS9icmlkZ2UvTlBf
anNvYmplY3QuaCBcCiAJV2ViQ29yZS9icmlkZ2UvYy9jX2NsYXNzLmNwcCBcCkBAIC0yMDEwLDcg
KzI2MDEsOSBAQAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUz0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCi0JRGVyaXZl
ZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcAorCURlcml2ZWRTb3VyY2VzL0pTRE9N
QXBwbGljYXRpb25DYWNoZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01BcHBsaWNhdGlv
bkNhY2hlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01BcHBsaWNhdGlvbkNhY2hl
LmNwcAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFw
cGxpY2F0aW9uQ2FjaGUuaWRsCkBAIC0yMDYzLDcgKzI2NTYsMjcgQEAKIAlEZXJpdmVkU291cmNl
cy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1NRTFJlc3Vs
dFNldFJvd0xpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFuc2FjdGlvbi5jcHAgXAot
CURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaAorCURlcml2ZWRTb3VyY2VzL0pTU1FM
VHJhbnNhY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURhdGFiYXNlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbURhdGFiYXNlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxFcnJv
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1FMUmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNRTFJlc3VsdFNl
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TUUxSZXN1bHRTZXRSb3dMaXN0LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxUcmFuc2Fj
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURhdGFiYXNlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNR
TEVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxFcnJvci5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tU1FMUmVzdWx0U2V0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMUmVzdWx0
U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMUmVzdWx0U2V0Um93
TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxUcmFuc2FjdGlvbi5oCiAKIElETF9CSU5ESU5HUyAr
PSBcCiAJV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmlkbCBcCkBAIC0yMTQzLDcgKzI3NTYsMTUg
QEAKIAlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2UuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1N0
b3JhZ2UuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQuY3BwIFwKLQlEZXJpdmVk
U291cmNlcy9KU1N0b3JhZ2VFdmVudC5oCisJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0b3JhZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVN0b3JhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVN0b3JhZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0b3JhZ2UuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbVN0b3JhZ2VFdmVudC5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2UuaWRsIFwKQEAgLTIyMjUsNyArMjg0NiwzNSBAQAogCURlcml2ZWRTb3Vy
Y2VzL0pTVGltZVJhbmdlcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5oIFwK
IAlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pT
Vm9pZENhbGxiYWNrLmgKKwlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTEF1ZGlvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MQXVkaW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWVkaWFFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxTb3VyY2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVmlkZW9F
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
TWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGltZVJhbmdlcy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Wb2lk
Q2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVm9pZENhbGxiYWNrLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEF1ZGlvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxNZWRpYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNZWRp
YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MU291cmNlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFNvdXJjZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
TWVkaWFFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTWVkaWFFcnJvci5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbVRpbWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Wb2lkQ2Fs
bGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVZvaWRDYWxsYmFjay5oCiAKIElE
TF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRsIFwKQEAg
LTIyODQsNyArMjkzMywyNyBAQAogCURlcml2ZWRTb3VyY2VzL0pTWFBhdGhSZXN1bHQuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVzdWx0LmggXAogCURlcml2ZWRTb3VyY2VzL1hQYXRo
R3JhbW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5oCisJRGVyaXZlZFNv
dXJjZXMvWFBhdGhHcmFtbWFyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV2YWx1YXRv
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tWFBhdGhFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBh
dGhFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXhwcmVzc2lvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4cHJlc3Npb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aE5T
UmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoUmVzdWx0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVhQYXRoUmVzdWx0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
WFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoRXZhbHVh
dG9yLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhFeGNlcHRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tWFBhdGhFeHByZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Y
UGF0aEV4cHJlc3Npb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aE5TUmVzb2x2
ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoUmVzdWx0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21YUGF0aFJlc3VsdC5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS94bWwv
WFBhdGhFdmFsdWF0b3IuaWRsIFwKQEAgLTI2NDksNiArMzMxOCwyNzMgQEAKIAlEZXJpdmVkU291
cmNlcy9TVkdOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwCiAKK25v
dC15ZXQ6CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbHRHbHlw
aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQWx0R2x5cGhFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdBbmltYXRlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQW5n
bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FuaW1hdGVkQm9vbGVhbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZEVudW1l
cmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZEludGVnZXIuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdBbmltYXRlZExlbmd0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdB
bmltYXRlZExlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWROdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHQW5pbWF0ZWROdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Fu
aW1hdGVkTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZE51
bWJlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkUmVjdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FuaW1hdGVkU3RyaW5nLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1h
dGVkU3RyaW5nLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0NpcmNsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQ2lyY2xlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NsaXBQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHQ29sb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQ29sb3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0N1cnNvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0RlZmluaXRpb25TcmNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Rl
ZmluaXRpb25TcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZzRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZzRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RGVzY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0RvY3VtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0RvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdFbGVtZW50SW5zdGFuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0VsZW1l
bnRJbnN0YW5jZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudEluc3Rh
bmNlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0VsbGlwc2VFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRXhjZXB0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUJsZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdGRUJsZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29tcG9uZW50VHJh
bnNmZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29tcG9uZW50VHJh
bnNmZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUNvbXBvc2l0ZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVDb21wb3NpdGVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdG
RUZsb29kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZsb29kRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jQUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jQUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0ZFRnVuY0JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0JF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNHRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRkVGdW5jUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVG
dW5jUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGRU1lcmdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU1lcmdlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRkVPZmZzZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVQb2ludExp
Z2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVBvaW50TGlnaHRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0ZFVGlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVU
aWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdGaWx0ZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRm9udEZhY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250
RmFjZUZvcm1hdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VG
b3JtYXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZU5hbWVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdG
b250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR2x5cGhF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0dyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHSW1h
Z2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ltYWdlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGVuZ3RoTGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdMaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMaW5lRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHTWFya2VyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdNYXJrZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdNYXNrRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdNYXNrRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTWF0cml4LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hdHJp
eC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWV0YWRhdGFFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR01ldGFkYXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdN
aXNzaW5nR2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdOdW1iZXIuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdOdW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR051bWJlckxpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhaW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1BhaW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aFNlZy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1BhdGhTZWdBcmNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Bh
dGhTZWdBcmNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0FyY1JlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGhSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnTGluZXRvQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdMaW5ldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvUmVsLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQYXRoU2VnTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTW92ZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnTW92ZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdHRlcm5FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdHRlcm5FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQb2ludC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2ludC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9pbnRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BvaW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9seWdvbkVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9seWdvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdQb2x5bGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdSZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdSZWN0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUmVuZGVyaW5nSW50ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlbmRl
cmluZ0ludGVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU1ZHRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdTVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NjcmlwdEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NldEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
U3RvcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU3RvcEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0cmluZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHU3RyaW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU3R5bGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0eWxlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdTd2l0Y2hFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTeW1ib2xFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N5bWJvbEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1RSZWZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1RSZWZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUU3BhbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVFNwYW5FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUZXh0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUZXh0RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1RleHRQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUaXRsZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdUcmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVHJh
bnNmb3JtLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUcmFuc2Zvcm1MaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1VuaXRUeXBlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVbml0VHlwZXMu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1VzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHVXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVmlld0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1pvb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
Vkdab29tRXZlbnQuaCAKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N2Zy9FbGVtZW50
VGltZUNvbnRyb2wuaWRsIFwKIAlXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5pZGwgXApAQCAtMzI2
NSw2ICs0MjAxLDcgQEAKICMgU1ZHIHRhZyBhbmQgYXR0cmlidXRlIG5hbWVzIChuZWVkIHRvIHBh
c3MgYW4gZXh0cmEgZmxhZyBpZiBzdmcgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVk
KQogRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50
RmFjdG9yeS5jcHA7CiBEZXJpdmVkU291cmNlcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5j
cHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcAorRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1l
bnRGYWN0b3J5LmNwcAogCiBpZiBTVkdfRkxBR1MKIERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRG
YWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy9z
dmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluCkBAIC0zMzg2LDYgKzQzMjMsMTUg
QEAKICAgICAkKFdlYkNvcmUpL3htbCBcCiAgICAgJChXZWJDb3JlKS9wbHVnaW5zCiAKK0Rlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tJS5oOiBEZXJpdmVkU291cmNlcy9nZG9tJS5oOworCitEZXJpdmVk
U291cmNlcy9wcml2Z2RvbSUuY3BwOiBEZXJpdmVkU291cmNlcy9nZG9tJS5jcHA7CisKK0Rlcml2
ZWRTb3VyY2VzL2dkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dkb20lLmNwcDsKKworRGVyaXZlZFNv
dXJjZXMvZ2RvbSUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorCSQoUEVSTCkgLUkkKFdlYkNv
cmUpL2JpbmRpbmdzL3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRl
LWJpbmRpbmdzLnBsIC0taW5jbHVkZSAkKFdlYkNvcmUpL2RvbSAtLWluY2x1ZGUgJChXZWJDb3Jl
KS9odG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL2NzcyAtLWluY2x1ZGUgJChXZWJDb3JlKS9wYWdl
IC0taW5jbHVkZSAkKFdlYkNvcmUpL3htbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9zdmcgLS1vdXRw
dXREaXIgIiQoR0VOU09VUkNFUykiIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVNfSkFWQVND
UklQVCkiIC0tZ2VuZXJhdG9yIEdPYmplY3QgJDwKKwogRGVyaXZlZFNvdXJjZXMvSlMlLmg6IERl
cml2ZWRTb3VyY2VzL0pTJS5jcHA7CiAKIERlcml2ZWRTb3VyY2VzL0pTJS5jcHA6ICUuaWRsICQo
U0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtMzQwMSw2ICs0MzQ3LDcgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SW5GaWxlc1BhcnNlci5wbSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJp
bmRpbmdzLnBsIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
IFwKKwlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gXAog
CVdlYkNvcmUvY3NzL2h0bWw0LmNzcyBcCiAJV2ViQ29yZS9jc3MvcXVpcmtzLmNzcyBcCiAJV2Vi
Q29yZS9jc3Mvdmlldy1zb3VyY2UuY3NzIFwKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9w
cml2Z2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L3ByaXZnZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9wcml2Z2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUu
aCIKKyNpbmNsdWRlICJnZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgor
I2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0LmgiCisKK2V4dGVybiAiQyIgeworCitHX0RFRklO
RV9UWVBFKEdkb21ET01PYmplY3QsIGdkb21fZG9tX29iamVjdCwgR19UWVBFX09CSkVDVCk7CisK
K3N0cnVjdCBfR2RvbURPTU9iamVjdFByaXZhdGUgeworICAgICBHRE9NT2JqZWN0ICptX25vZGU7
Cit9OyAgCisKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQ
RV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21E
T01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdk
b21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QgKiBpdGVtKQoreworICAgIEdkb21ET01P
YmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3Qp
OworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07CisgICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+
cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUo
R2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJp
diA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXR1cm4gcHJp
di0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfZmluYWxpemUoR09i
amVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01PYmplY3QqIHJlcXVlc3QgPSBHRE9NX0RPTV9P
QkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3Qt
PnByaXY7CisgICAgCisgICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+ZGVyZWYoKTsqLworCWRl
bGV0ZSBwcml2LT5tX25vZGU7IC8qIGNhbGxzIG1faW1wbC0+ZGVyZWYoKSAqLworCisgICAgR19P
QkpFQ1RfQ0xBU1MoZ2RvbV9kb21fb2JqZWN0X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVj
dCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9jbGFzc19pbml0KEdkb21ET01P
YmplY3RDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RD
bGFzcyktPmZpbmFsaXplID0gZ2RvbV9kb21fb2JqZWN0X2ZpbmFsaXplOworICAgIAorICAgIGdf
dHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihHZG9tRE9NT2JqZWN0
UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfaW5pdChHZG9tRE9N
T2JqZWN0KiByZXF1ZXN0KQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RP
TV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBw
cml2OworfSAgIAorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL2dkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vZ2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L2dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wu
bmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpZm5kZWYgX19HZG9tRE9N
T2JqZWN0X0hfXworI2RlZmluZSBfX0dkb21ET01PYmplY3RfSF9fCisjaW5jbHVkZSAiZ2xpYi1v
YmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD4KKworR19CRUdJTl9ERUNM
UworCit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdCBHZG9tRE9NT2JqZWN0OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RDbGFzcyBHZG9tRE9NT2JqZWN0Q2xhc3M7CisKKyNkZWZp
bmUgR0RPTV9UWVBFX0RPTV9PQkpFQ1QgICAgICAgICAgICAoZ2RvbV9kb21fb2JqZWN0X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fRE9NX09CSkVDVChvYmopICAgICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9i
amVjdCkpCisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9D
SEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9i
amVjdENsYXNzKSkKKyNkZWZpbmUgR0RPTV9JU19ET01fT0JKRUNUKG9iaikgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNUKSkKKyNk
ZWZpbmUgR0RPTV9JU19ET01fT0JKRUNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNT
X1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fT0JKRUNUKSkKKyNkZWZpbmUgR0RPTV9ET01f
T0JKRUNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwg
IEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorCit0eXBlZGVmIHN0
cnVjdCBfR2RvbURPTU9iamVjdFByaXZhdGUgR2RvbURPTU9iamVjdFByaXZhdGU7CisKK3N0cnVj
dCBfR2RvbURPTU9iamVjdCB7CisgICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBH
ZG9tRE9NT2JqZWN0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdENs
YXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0dET01f
QVBJIEdUeXBlCitnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfR0RP
TV9BUEkgR2RvbURPTU9iamVjdCAqCitnZG9tX2RvbV9vYmplY3RfbmV3ICAgICAgKHZvaWQpOwor
CitXRUJLSVRfR0RPTV9BUEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X2luaXRfZG9tX29iamVjdCAo
R2RvbURPTU9iamVjdCAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfX0dkb21E
T01PYmplY3RfSF9fICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01PYmplY3QuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTMgQEAKKyNpZm5kZWYgX19ET01PYmplY3RfaF9fCisjZGVmaW5lIF9f
RE9NT2JqZWN0X2hfXworCisvLyBuYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdET01PYmpl
Y3QgeworcHVibGljOgorCXZpcnR1YWwgfkdET01PYmplY3QoKSB7fQorfTsKKworLy8gfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9E
T01PYmplY3RJZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9ET01P
YmplY3RJZmFjZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0RPTU9i
amVjdElmYWNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKyNpZm5kZWYgX19NT1RJ
T05fTU9WRUFCTEVfSF9fCisjZGVmaW5lIF9fTU9USU9OX01PVkVBQkxFX0hfXworR19CRUdJTl9E
RUNMUworI2RlZmluZSBNT1RJT05fVFlQRV9NT1ZFQUJMRSAgICAgICAgICAgIChtb3Rpb25fbW92
ZWFibGVfZ2V0X3R5cGUgKHZvaWQpKQorI2RlZmluZSBNT1RJT05fTU9WRUFCTEUob2JqKSAgICAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgTU9USU9OX1RZUEVfTU9W
RUFCTEUsIE1vdGlvbk1vdmVhYmxlKQorI2RlZmluZSBNT1RJT05fTU9WRUFCTEVfQ0xBU1Moa2xh
c3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGtsYXNzKSwgTU9USU9OX1RZUEVfTU9W
RUFCTEUsIE1vdGlvbk1vdmVhYmxlQ2xhc3MpKQorI2RlZmluZSBNT1RJT05fSVNfTU9WRUFCTEUo
b2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIE1PVElPTl9U
WVBFX01PVkVBQkxFKSkKKyNkZWZpbmUgTU9USU9OX0lTX01PVkVBQkxFX0NMQVNTKGtsYXNzKSAo
R19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrbGFzcyksIE1PVElPTl9UWVBFX01PVkVBQkxFKSkK
KyNkZWZpbmUgTU9USU9OX01PVkVBQkxFX0dFVF9JRkFDRShvYmopICAoR19UWVBFX0lOU1RBTkNF
X0dFVF9JTlRFUkZBQ0UgKChvYmopLCBNT1RJT05fVFlQRV9NT1ZFQUJMRSwgTW90aW9uTW92ZWFi
bGVDbGFzcykpCit0eXBlZGVmIHN0cnVjdCBfTW90aW9uTW92ZWFibGUgTW90aW9uTW92ZWFibGU7
Cit0eXBlZGVmIHN0cnVjdCBfTW90aW9uTW92ZWFibGVJZmFjZSBNb3Rpb25Nb3ZlYWJsZUlmYWNl
Oworc3RydWN0IF9Nb3Rpb25Nb3ZlYWJsZUlmYWNlIHsKKwlHVHlwZUludGVyZmFjZSBwYXJlbnRf
aWZhY2U7CisJdm9pZCAoKm1vdmUpIChNb3Rpb25Nb3ZlYWJsZUlmYWNlICppZmFjZSk7Cit9Owor
R1R5cGUgbW90aW9uX21vdmVhYmxlX2dldF90eXBlICh2b2lkKTsKK3ZvaWQgbW90aW9uX21vdmVh
YmxlX21vdmUgKE1vdGlvbk1vdmVhYmxlICpzZWxmKTsKK0dfRU5EX0RFQ0xTCisjZW5kaWYgLyog
X19NT1RJT05fTU9WRUFCTEVfSF9fICovCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJp
dmdkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJp
dmdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9w
cml2Z2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RP
TURPTU9iamVjdF9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRE9NT2JqZWN0X0hfX19QUklWXwor
I2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbURPTU9iamVjdC5oIgorR19C
RUdJTl9ERUNMUworCitjbGFzcyBHRE9NT2JqZWN0OworV0VCS0lUX0dET01fQVBJIEdET01PYmpl
Y3QqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCk7
CisKK1dFQktJVF9HRE9NX0FQSSB2b2lkCitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR2Rv
bURPTU9iamVjdCAqcmVxdWVzdCwgR0RPTU9iamVjdCogaXRlbSk7CisKK0dfRU5EX0RFQ0xTCisj
ZW5kaWYKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdldE5vZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXRO
b2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRU
YXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiCisj
aW5jbHVkZSAicHJpdmdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnbGliLW9iamVj
dC5oIgorCitjbGFzcyBHU3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgorICAgIGNvbnN0IGdj
aGFyICptX3N0cjsKKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMp
IHsgbV9zdHIgPSBnX3N0cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZl
cnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9Cit9OworCitleHRlcm4gIkMiIHsKKworI2RlZmluZSBf
R19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKQorCitHZG9tRXZlbnRU
YXJnZXROb2RlKiBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX25ldyh2b2lkKQoreworICAgIEdkb21F
dmVudFRhcmdldE5vZGUqIHJlcXVlc3QgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKGdfb2JqZWN0
X25ldyhHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIE5VTEwpKTsKKyAgICAvL3ByaXYtPmV2
ZW50X3RhcmdldF9ub2RlID0gZXZlbnRfdGFyZ2V0X25vZGU7IAorICAgIAorICAgIHJldHVybiBy
ZXF1ZXN0OworfQorCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFy
Z2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbCAodGhpeik7CisJLyoKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtID0g
Z2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh0aGl6KTsKKyAgICBXZWJDb3JlOjpT
dHJpbmcgX2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJpbmcoZXZl
bnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRFdmVudFRhcmdldE5vZGUo
X2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJD
IiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRXZlbnRUYXJn
ZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbUV2
ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTUV2
ZW50VGFyZ2V0Tm9kZV9IX19fSU5UXworI2RlZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVfSF9f
X0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImludGdkb21Ob2RlLmgi
CitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01FdmVudFRhcmdldE5vZGUgOiBwdWJsaWMgR0RP
TU5vZGUgeworCitwdWJsaWM6CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZShQYXNzUmVmUHRyPFdl
YkNvcmU6Ok5vZGU+IGltcGwpIDogR0RPTU5vZGUoaW1wbCkge30KK307CisKKworR19FTkRfREVD
TFMKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRh
cmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0
b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBA
YXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCisjaW5jbHVkZSAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZn
ZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRo
aXMgb3B0aW9uYWwgKi8KKworV2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2Rl
X2dldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7CisgICAgR0RPTUV2
ZW50VGFyZ2V0Tm9kZSAqcmVzOworCXJlcyA9IHN0YXRpY19jYXN0PEdET01FdmVudFRhcmdldE5v
ZGUqPihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3Qp
KSk7CisJcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHJlcy0+aW1wbCgp
KTsKK30KKworCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRXZlbnRUYXJnZXRO
b2RlLCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlLCBHRE9NX1RZUEVfTk9ERSk7CisKKy8qCitzdHJ1
Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpFdmVu
dFRhcmdldE5vZGUgKml0ZW07Cit9OyAgCisqLworCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VU
X05PREVfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmop
LCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRl
KSkKKworLyoKK3ZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfc2V0X3ByaXZhdGUoR2RvbUV2
ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCwgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSkK
K3sKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFS
R0VUX05PREVfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcHJpdi0+aXRlbSA9IGl0ZW07Cit9
CisqLworCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplKEdPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICAvKkdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QgPSBHRE9N
X0VWRU5UX1RBUkdFVF9OT0RFKG9iamVjdCk7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZh
dGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisgICAgCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2Rv
bV9ldmVudF90YXJnZXRfbm9kZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQor
CitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQoR2RvbUV2ZW50
VGFyZ2V0Tm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVx
dWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplOwor
ICAgIAorICAgIC8qZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9m
KEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgZ2RvbV9l
dmVudF90YXJnZXRfbm9kZV9pbml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7Cisg
ICAgLypHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VU
X05PREVfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8K
K30gICAKKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9nZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL2dkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRv
biA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBh
dG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZu
ZGVmIF9fR2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18KKyNkZWZpbmUgX19HZG9tRXZlbnRUYXJnZXRO
b2RlX0hfXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIK
KyNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyBHZG9tRXZlbnRUYXJnZXROb2Rl
Q2xhc3M7CisKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFICAgICAgICAgICAg
KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9U
QVJHRVRfTk9ERShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChv
YmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGUpKQor
I2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NI
RUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2Rv
bUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9E
RShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZ
UEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RF
X0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQ
RV9FVkVOVF9UQVJHRVRfTk9ERSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VU
X0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBF
X0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorCit0eXBlZGVm
IHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZVBy
aXZhdGU7CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSB7CisgICAgR2RvbU5vZGUgcGFy
ZW50X2luc3RhbmNlOworCisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgKnByaXY7Cit9
OworCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyB7CisgICAgR2RvbU5vZGVDbGFz
cyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfR0RPTV9BUEkgR1R5cGUKK2dkb21fZXZlbnRf
dGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfR0RPTV9BUEkgR2RvbUV2ZW50
VGFyZ2V0Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX25ldyAgICAgICh2b2lkKTsKKwor
V0VCS0lUX0dET01fQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90
YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisK
KyNlbmRpZiAvKiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fICovCisKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19Q
UklWXworI2RlZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX1BSSVZfCisjaW5jbHVkZSAi
Z2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJwcml2Z2RvbU5vZGUuaCIKK2NsYXNzIFdlYkNvcmU6
Ok5vZGU7CisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIEdkb21FdmVudFRh
cmdldE5vZGU7CisKK1dFQktJVF9HRE9NX0FQSSBXZWJDb3JlOjpOb2RlICoKK2dkb21fZXZlbnRf
dGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCk7CisK
Ky8qV0VCS0lUX0dET01fQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfc2V0X3ByaXZh
dGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCwgV2ViQ29yZTo6Tm9kZSAqIGl0ZW0pOyov
CisKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbURPTU9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21ET01PYmplY3QuY3Bw
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21ET01PYmplY3QuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgImdkb21ET01PYmpl
Y3QuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorCitleHRlcm4gIkMiIHsKKworR2RvbURP
TU9iamVjdCogZ2RvbV9kb21fb2JqZWN0X25ldyh2b2lkKQoreworICAgIEdkb21ET01PYmplY3Qq
IHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1QoZ19vYmplY3RfbmV3KEdET01fVFlQRV9ET01fT0JK
RUNULCBOVUxMKSk7CisgICAgLy9wcml2LT5kb21fb2JqZWN0ID0gZG9tX29iamVjdDsgCisgICAg
CisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2Rv
bV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAo
dGhpeik7CisJLyoKKyAgICBXZWJDb3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2Jq
ZWN0X2dldF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0
X3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0
ZW0tPmluaXRET01PYmplY3QoX2dfZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAv
KiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRE9N
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2ludGdkb21ET01P
YmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRE9N
T2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTg5IEBACisjCisjIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorIyBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyMKKyMg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyMgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JHT2JqZWN0Owor
CisjIERlZmF1bHQgTGljZW5jZSBUZW1wbGF0ZXMKK215ICRsaWNlbmNlVGVtcGxhdGUgPSA8PCAi
RU9GIjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbFxAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxh
bHBcQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCitF
T0YKKworbXkgJWltcGxJbmNsdWRlcyA9ICgpOworbXkgJWhkckluY2x1ZGVzID0gKCk7CitteSAl
aW1wbFR5cGVkZWZzID0gKCk7CisKKyMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgorc3ViIG5ldworewor
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkcmVmZXJlbmNlID0geyB9OworCisgICAg
JGNvZGVHZW5lcmF0b3IgPSBzaGlmdDsKKyAgICAkb3V0cHV0RGlyID0gc2hpZnQ7CisKKyAgICBi
bGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKKyAgICByZXR1cm4gJHJlZmVyZW5jZTsKK30KKwor
c3ViIGZpbmlzaAoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKK30KKworIyBQYXJhbXM6ICdk
b21DbGFzcycgc3RydWN0CitzdWIgR2VuZXJhdGVJbnRlcmZhY2UKK3sKKyAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJGRlZmluZXMgPSBz
aGlmdDsKKworICAgIG15ICRuYW1lID0gJGRhdGFOb2RlLT5uYW1lOworCisgICAgcHJpbnQgIiRu
YW1lXG4iOworCisgICAgJG9iamVjdC0+R2VuZXJhdGUoJGRhdGFOb2RlKTsKKworICAgICMgV3Jp
dGUgY2hhbmdlcworICAgIG15ICRmbmFtZSA9ICJnZG9tXyIgLiAkbmFtZTsgI2RlY2FtZWxpemUo
JG5hbWUpOworICAgICRmbmFtZSA9fiBzL18vL2c7CisgICAgJG9iamVjdC0+V3JpdGVEYXRhKCRm
bmFtZSk7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdlbmVyYXRl
TW9kdWxlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNo
aWZ0OworCisgICAgJG1vZHVsZSA9ICRkYXRhTm9kZS0+bW9kdWxlOworfQorCitzdWIgQ2xzVG9H
T2JqVHlwZQoreworICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICByZXR1cm4gdWMoZGVj
YW1lbGl6ZSgkY2xhc3NOYW1lKSkKK30KK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBt
eSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURP
TU9iamVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9t
IiAuICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOwor
fQorc3ViIEdldFBhcmVudEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisK
KyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJM
ZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRk
YXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9H
T2JqVHlwZSgkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDAp
KSk7Cit9CisKKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAx
CitzdWIgY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsg
dWNmaXJzdCAkXyB9IHNwbGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7
Cit9CisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3Vi
IGRlY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1a
XT8pKFtBLVpdKikoW0EtWl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0w
OworICAgICAgICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAg
ICAgICBteSAkdCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/
ICRwMSA/ICIke3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7
CisgICAgfWdlOworICAgICRzOworfQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAk
bmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4g
Imdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUg
PSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9t
JG5hbWUiOworfQorCitzdWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworICAgICAgICBteSAkbmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5h
bWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIg
aWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInNob3J0
IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJu
ICIiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAi
ZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsK
KyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAg
IHJldHVybiAiUmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1
cm4gImdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgaWYgJHR5cGUgZXEgIkRPTU9iamVj
dCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgY2hhciI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNs
YXNzIHdyYXBwZXIKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAi
RE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiIGlmICR0
eXBlIGVxICJFdmVudFRhcmdldCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBp
ZiAkdHlwZSBlcSAiZmxvYXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYg
JHR5cGUgZXEgImJvb2xlYW4iOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYg
JHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1cm5z
IDEgaWYgd2UgbmVlZCB0byBjcmVhdGUgYSBnb2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSByZXR1
cm4gcmVzdWx0CitzdWIgSXNHRE9NQ2xhc3NUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsK
KyAgICAgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBl
cSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJmbG9hdCI7Cisg
ICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJjaGFy
IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidWNo
YXIiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAg
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBl
cgorCisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAx
OworfQorCitzdWIgR2V0R1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBt
eSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisgICAgICAgICNteSAkbmFtZSA9IGNhbWVs
aXplKEdldENsYXNzTmFtZSgkdHlwZSkpOworCisgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFy
Z2V0Tm9kZSAqIiBpZiAkdHlwZSBlcSAiRXZlbnRUYXJnZXQiOworICAgICAgICByZXR1cm4gImNv
bnN0IGdjaGFyICoiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gImdm
bG9hdCAiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6UmFu
Z2U6OkNvbXBhcmVIb3cgIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJldHVy
biAiZ2RvdWJsZSAiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gImdib29s
ZWFuICIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgICAgICByZXR1cm4gImdjaGFyICIgaWYg
JHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gImdsb25nICIgaWYgJHR5cGUgZXEgImxv
bmciOworICAgICAgICByZXR1cm4gImdzaG9ydCAiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAg
ICAgIHJldHVybiAiZ3VjaGFyICIgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJu
ICJndWxvbmcgIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAi
Z3VzaG9ydCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAi
Z3Vsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdy
YXBwZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAg
IHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9
IHNoaWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBHZXRHSW5jbHVkZUhkcigkdHlwZSk7Cisg
ICAgaWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQi
KSB7CisgICAgICAgICAgICByZXR1cm4gImdkb21FdmVudFRhcmdldE5vZGUuaCI7CisgICAgICAg
IH0KKyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAj
IFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAg
cmV0dXJuICJnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRyOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiAiIjsKK30KKworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7
CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikg
eworICAgICAgICAkaGRySW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0KKworfQorCitzdWIgYWRk
SW5jQm9keQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5j
SGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaW1wbEluY2x1ZGVz
eyRoZHJ9ID0gMTsKKyAgICB9Cit9CisKKyMgR2VuZXJhdGUgaGVhZGVyIGFuZCBpbXBsCitzdWIg
R2VuZXJhdGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0g
c2hpZnQ7CisKKyAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRk
YXRhTm9kZS0+cGFyZW50c30gPiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFy
ZW50IHx8ICRoYXNSZWFsUGFyZW50OworICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJl
bnRDbGFzc05hbWUoJGRhdGFOb2RlKTsKKyAgICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJl
bnRHT2JqVHlwZSgkZGF0YU5vZGUpOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2Rl
LT5uYW1lOworICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUp
OworICAgIG15ICRoZHJOYW1lID0gR2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisKKyAgICAj
IEFkZCB0aGUgZGVmYXVsdCBpbXBsIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBjUHJlZml4ID0gc3Bs
aXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CisK
KyAgICAkaW1wbEluY2x1ZGVzeyIkaGRyTmFtZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7
InByaXYke2hkck5hbWV9LmgifSA9IDE7CisKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9
ICJET01PYmplY3QiOworICAgIG15ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOwor
ICAgIG15ICRwYXJlbnRIZHJOYW1lID0gImdkb21ET01PYmplY3QiOworICAgIGlmICgkcGFyZW50
Q2xhc3NOYW1lIG5lICJHT2JqZWN0IikKKyAgICB7CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VO
YW1lID0gc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOworICAgICAgICBpZiAoJHBhcmVudElu
dGVyZmFjZU5hbWUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VO
YW1lID0gIkdET00iLnN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRw
YXJlbnRIZHJOYW1lID0gR2V0SGRyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAg
IH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFt
ZSA9ICJHRE9NT2JqZWN0IjsKKyAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3Bh
cmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7InByaXYke3BhcmVu
dEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICRoZHJJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1l
fS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1ZGVzeyJwcml2JHtwYXJlbnRIZHJOYW1lfS5o
In0gPSAwOworICAgIH0KKworICAgICMgWFhYIFRPRE86IG1ha2UgdGhpcyBvcHRpb25hbCBvciBp
biBhIGhlYWRlciBmaWxlCisgICAgbXkgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitjbGFzcyBH
U3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgorICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAg
ICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0
cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRv
bWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOyB9Cit9OworCitFT0YKKworICAgIHB1c2goQGNCb2R5LCAkaW1wbENvbnRlbnQpOwor
CisgICAgIyBYWFggVE9ETyBwdXNoKEBjQm9keSwgInVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlO1xu
XG4iKTsKKyAgICBwdXNoKEBjQm9keSwgImV4dGVybiBcIkNcIiB7XG5cbiIpOworICAgIHB1c2go
QGNCb2R5LCAiI2RlZmluZSBfR19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1f
c3RyKVxuIik7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKKyAgICBA
aFByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgICAgICAjcHVzaChA
aFByZWZpeCwgIlxuIik7CisKKyAgICAjIEhlYWRlciBndWFyZAorICAgICAgICBteSAkZ3VhcmQg
PSAiX18iIC4gJGNsYXNzTmFtZSAuICJfSF9fIjsKKworICAgIG15ICRjbHNDYXBzID0gc3Vic3Ry
KENsc1RvR09ialR5cGUoJGNsYXNzTmFtZSksIDUpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUg
PSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgI215ICRwYXJlbnRD
bHNDYXBzID0gIkdET01fIiAuIENsc1RvR09ialR5cGUoJHBhcmVudEludGVyZmFjZU5hbWUpOwor
CisgICAgQGhQcmVmaXhHdWFyZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUg
JGd1YXJkCitFT0YKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworR19CRUdJTl9ERUNM
UworCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgJGlt
cGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAg
ICAgICAgICAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtj
bHNDYXBzfShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmop
LCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Ns
c0NhcHN9X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwg
IEdET01fVFlQRV8ke2Nsc0NhcHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lT
XyR7Y2xzQ2Fwc30ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2Jq
KSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xB
U1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7
Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZ
UEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xh
c3NOYW1lfUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtj
bGFzc05hbWV9UHJpdmF0ZTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFyZW50
Q2xhc3NOYW1lfSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICAke2NsYXNzTmFtZX1Qcml2YXRlICpw
cml2OworfTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX1DbGFzcyB7CisgICAgR09iamVjdENsYXNz
IHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9HRE9NX0FQSSBHVHlwZQorJHtsY2FzZV9pZmFj
ZW5hbWV9X2dldF90eXBlICh2b2lkKTsKKworV0VCS0lUX0dET01fQVBJIEdkb20ke2ludGVyZmFj
ZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9uZXcgICAgICAodm9pZCk7CisKK0VPRgorCisg
ICAgcHVzaChAaEJvZHksICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAi
RU9GIjsKKworI2lmbmRlZiAke2d1YXJkfV9JTlRfCisjZGVmaW5lICR7Z3VhcmR9X0lOVF8KKyNp
bmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImludCR7cGFyZW50SGRyTmFtZX0uaCIK
KyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgor
LyojaW5jbHVkZSAicHJpdiR7cGFyZW50SGRyTmFtZX0uaCIqLworR19CRUdJTl9ERUNMUworRU9G
CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworCisgICAgI0NsYXNz
IGRlY2xhcmF0aW9uCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Cisg
ICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUge1xu
Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgImNsYXNzIEdE
T00kaW50ZXJmYWNlTmFtZSA6IHB1YmxpYyAkcGFyZW50R0lmYWNlTmFtZSB7XG4iKTsKKyAgICAg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB0eXBlZGVmICRwYXJlbnRHSWZhY2VOYW1lIEJh
c2U7XG4iKTsKKyAgICB9CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInB1YmxpYzpcbiIpOwor
CisKKyAgICBteSAkbmVlZHNTVkdDb250ZXh0ID0gMDsKKyAgICAjIENvbnN0cnVjdG9yCisgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBHRE9NJGludGVyZmFjZU5hbWUoUGFzc1JlZlB0cjxX
ZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gaW1wbCIgLiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNW
R0VsZW1lbnQqIGNvbnRleHQiIDogIiIpIC4gIik7XG4iKTsKKworICAgICMgRGVzdHJ1Y3Rvcgor
ICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdmlydHVhbCB+R0RPTSRpbnRlcmZhY2VOYW1l
KCkge307XG4iKSBpZiAoISRoYXNQYXJlbnQgb3IgJGludGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50
Iik7CisKKyAgICBpZiAoISRoYXNQYXJlbnQgfHwgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5k
b3ciKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogaW1wbCgpIGNv
bnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZXh0LmdldCgpOyB9XG5cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICJwcml2YXRlOlxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBS
ZWZQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0O1xuIik7CisgICAgICAgICMgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4gPiBt
X2ltcGw7XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFy
YW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJu
YWwsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0
KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxl
bWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsK
KyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAg
ICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29u
dGV4dDtcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRy
PCRpbXBsQ2xhc3NOYW1lID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAg
ICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSog
aW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRlOlxuIik7CisgICAgICAgICAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIFJlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gbV9pbXBs
O1xuIik7CisgICAgICAgICN9CisgICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgeworICAgICAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgIFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3RcbiIp
OworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHtcbiIpOworICAgICAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JGlu
dGVyZmFjZU5hbWUqPihCYXNlOjppbXBsKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICIgICAgfVxuIik7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJ9O1xu
Iik7CisKKyAgICAjIENvbnN0cnVjdG9yCisgICAgcHVzaChAY0JvZHksICJHRE9NJHtpbnRlcmZh
Y2VOYW1lfTo6R0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFj
ZU5hbWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0
IiA6ICIiKSAuICIpXG4iKTsKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIp
IHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOm1faW1wbChpbXBsKVxuIik7CisgICAgfSBl
bHNpZiAoJGhhc1BhcmVudCkgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRH
SWZhY2VOYW1lKGltcGwiIC4gKCRwYXJlbnROZWVkc1NWR0NvbnRleHQgPyAiLCBjb250ZXh0IiA6
ICIiKSAuICIpXG4iKSBpZiAoJGludGVyZmFjZU5hbWUgbmUgIkRPTVdpbmRvdyIpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDogJHBhcmVudEdJZmFjZU5hbWUoKVxu
IikgOworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAsIG1fY29udGV4dChjb250ZXh0KVxuIikg
aWYgJG5lZWRzU1ZHQ29udGV4dDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBtX2ltcGwo
aW1wbClcbiIpOworICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAgcHVzaChA
Y0JvZHksICJ9XG5cbiIpOworCisgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5o
In0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAg
ICAkaW1wbEluY2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAkaW1wbFR5cGVkZWZz
eyIkY2xhc3NOYW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1lfUNsYXNz
In0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyR7Y2xhc3NOYW1lfSog
JHtsY2FzZV9pZmFjZW5hbWV9X25ldyh2b2lkKQoreworICAgICR7Y2xhc3NOYW1lfSogcmVxdWVz
dCA9IEdET01fJHtjbHNDYXBzfShnX29iamVjdF9uZXcoR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sIE5V
TEwpKTsKKyAgICAvL3ByaXYtPmV2ZW50ID0gZXZlbnQ7IAorICAgIAorICAgIHJldHVybiByZXF1
ZXN0OworfQorRU9GCisKKyAgICAgICAgcHVzaChAY0JvZHksICRpbXBsQ29udGVudCk7CisKKyAg
ICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPgorI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisj
aW5jbHVkZSAiTm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisj
aW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9u
YWwgKi8KKyNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRo
aXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5oIiAvKiB5dWtrOiBUT0RP
IC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIgLyogeXVr
azogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5j
bHVkZSAicHJpdmdkb21ET01PYmplY3QuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRp
b25hbCAqLworI2luY2x1ZGUgImdkb21FdmVudFRhcmdldE5vZGUuaCIgLyogeXVrazogVE9ETyAt
IG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKKyNp
bmNsdWRlICIke2hkck5hbWV9LmgiCisjaW5jbHVkZSAicHJpdiR7aGRyTmFtZX0uaCIKKyNpbmNs
dWRlICJpbnQke2hkck5hbWV9LmgiCisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1w
bENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKK0dfQkVHSU5fREVD
TFMKKworR19ERUZJTkVfVFlQRSgke2NsYXNzTmFtZX0sICR7bGNhc2VfaWZhY2VuYW1lfSwgJHtw
YXJlbnRHT2JqVHlwZX0pOworCisvKgorc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlIHsKKyAg
ICBjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICppdGVtOworfTsgIAorCisjZGVmaW5l
IEdET01fJHtjbHNDYXBzfV9HRVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BS
SVZBVEUoKG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1Qcml2YXRlKSkK
KyovCitHX0VORF9ERUNMUworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lm
YWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KQoreworRU9GCisKKyAg
ICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICBpZiAoKCRpbnRlcmZhY2VO
YW1lIGVxICJET01XaW5kb3ciKSkgeworICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsK
KyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RPICovCitFT0YKKyAgICB9IGVsc2Ugewor
ICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyAgICBHRE9NJHtpbnRlcmZhY2VOYW1l
fSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19jYXN0PEdET00ke2ludGVyZmFjZU5hbWV9Kj4oZ2Rv
bV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4ocmVzLT5pbXBs
KCkpOworRU9GCisgICAgfQorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKwor
ICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworfQorCitHX0JFR0lOX0RFQ0xTCisKK3N0YXRp
YyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7Cisg
ICAgLyoke2NsYXNzTmFtZX0qIHJlcXVlc3QgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsqLwor
ICAgIC8qJHtjbGFzc05hbWV9UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ki8KKyAgICAK
KyAgICAvKkdPYmplY3RDbGFzcyAqcGFyZW50X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWsgKGdf
dHlwZV9wZWVrX3BhcmVudCAoJHtwYXJlbnRHT2JqVHlwZX0pKTsqLworCisgICAgLyogRnJlZSBh
bnkgbWVtb3J5IG9yIGNsb3NlIGFueSBmaWxlcyAqLyAKKworICAgIC8qcGFyZW50X2NsYXNzLT4g
ZmluYWxpemUgKG9iamVjdCk7Ki8KKworICAgIEdfT0JKRUNUX0NMQVNTKCR7bGNhc2VfaWZhY2Vu
YW1lfV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCAk
e2xjYXNlX2lmYWNlbmFtZX1fY2xhc3NfaW5pdCgke2NsYXNzTmFtZX1DbGFzcyogcmVxdWVzdENs
YXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gJHts
Y2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplOworICAgIAorICAgIC8qZ190eXBlX2NsYXNzX2FkZF9w
cml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKCR7Y2xhc3NOYW1lfVByaXZhdGUpKTsqLworfQor
CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1faW5pdCgke2NsYXNzTmFtZX0qIHJlcXVl
c3QpCit7CisgICAgLyoke2NsYXNzTmFtZX1Qcml2YXRlKiBwcml2ID0gR0RPTV8ke2Nsc0NhcHN9
X0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OyovCit9ICAg
CisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGlt
cGxJbmNsdWRlc3siaW50Z2RvbSR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbENv
bnRlbnQgPSA8PCAiRU9GIjsKKworI2lmbmRlZiAke2d1YXJkfV9QUklWXworI2RlZmluZSAke2d1
YXJkfV9QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiJHtwYXJlbnRI
ZHJOYW1lfS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKy8qI2luY2x1ZGUgInByaXYke3Bh
cmVudEhkck5hbWV9LmgiKi8KKy8qX0dfQkVHSU5fREVDTFMqLworLypjbGFzcyBXZWJDb3JlOjok
e2ludGVyZmFjZU5hbWV9OyovCisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgorRU9GCisK
KyAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQg
PSA8PCAiRU9GIjsKKy8vbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHRE9NJHtpbnRlcmZh
Y2VOYW1lfSA6IHB1YmxpYyAke3BhcmVudEdJZmFjZU5hbWV9IHsKKworcHVibGljOgorICAgIEdE
T00ke2ludGVyZmFjZU5hbWV9KFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGltcGwpIDogJHBh
cmVudEdJZmFjZU5hbWV9KGltcGwpCisgICAgeyBpbXBsLT5yZWYoKTsgfQorICAgIH5HRE9NJHtp
bnRlcmZhY2VOYW1lfSgpIHsgbV9pbXBsLT5kZXJlZigpOyB9CisKKyAgICBXZWJDb3JlOjoke2lu
dGVyZmFjZU5hbWV9KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsOyB9CisKK3ByaXZhdGU6
CisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqbV9pbXBsOworfTsKKworRU9GCisKKyAg
ICAgICAgI3B1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworLy99IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK3R5cGVkZWYgc3RydWN0
IF8ke2NsYXNzTmFtZX0gJHtjbGFzc05hbWV9OworCitXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9
ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJlcXVlc3Qp
OworCisvKl9HX0VORF9ERUNMUyovCisKKyNlbmRpZiAvKiAke2d1YXJkfV9QUklWXyAqLworCitF
T0YKKworICAgICNyZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5h
bWV9Kj4oKFdlYkNvcmU6Ok5vZGUqKShyZXMpKTsKKyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAk
aW1wbENvbnRlbnQpOworCisgICAgICAgICNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NT2JqZWN0
IikgeworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVy
YXRvci4KKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJKU0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIn0gPSAxOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgIyAgICAkaW1wbEluY2x1
ZGVzeyRpbmNsdWRlSGRyfSA9IDE7CisgICAgICAgICN9CisgICAgICAgICRpbXBsSW5jbHVkZXN7
IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3sicHJpdmdk
b21ET01PYmplY3QuaCJ9ID0gMTsKKworICAgICAgICBMT09QOiBmb3JlYWNoIG15ICRmdW5jdGlv
biAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgICAgICNteSAkZnVuY3Rpb25O
YW1lID0gZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPm5hbWUpOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfbmFtZSA9ICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfdHlw
ZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICAgICAgICAgIG15ICRmdW5j
dGlvbk5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkgLiAiXyIgLiBk
ZWNhbWVsaXplKCRmbl9zaWdfbmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldHVyblR5cGUg
PSBHZXRHVHlwZSgkZm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIG15ICRyZXRfaXNfY2xz
X3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAg
IG15ICRmdW5jdGlvblNpZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKworICAgICAgICAgICAgICAg
IG15ICRjYWxsX2ltcGxfcGFyYW1zID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGdkb21fZm5f
cHJlZml4ID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAg
ICAgICAgICMgWFhYIHNraXAgQ29tcGFyZUhvdyBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAg
ICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3JhbmdlX2NvbXBhcmVfYm91bmRhcnlf
cG9pbnRzIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRP
RE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIp
OworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBw
aW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAg
ICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgIyBYWFggc2tpcCBTVkdEb2N1bWVudCBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAg
ICAgICAgIGlmICgkcmV0dXJuVHlwZSBlcSAiR2RvbVNWR0RvY3VtZW50ICoiKSB7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9j
dW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1
bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4
dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAg
c29tZSBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBteSAkaXNfY3Vz
dG9tX2ZuID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0
b20ifTsKKyAgICAgICAgICAgICAgICBpZiAoJGlzX2N1c3RvbV9mbiAmJiAKKyAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX25leHRfbm9kZSIg
JiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9hcHBl
bmRfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9t
X3RyZWVfd2Fsa2VyX3BhcmVudF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9maXJzdF9jaGlsZCIgJiYgCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbGFzdF9jaGlsZCIg
JiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxr
ZXJfcHJldmlvdXNfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5h
bWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9zaWJsaW5nIiAmJiAKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19ub2RlIiAm
JiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtl
cl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX25vZGVfaXRlcmF0b3JfcHJldmlvdXNfbm9kZSIpIHsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5h
bWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhY
IFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAg
ICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAg
ICAgICAgICAgICAgIGFkZEluY0JvZHkoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAg
ICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBh
cmFtVHlwZSA9IEdldEdUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBt
eSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworCisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvblNpZyAuPSAiLCAkcGFyYW1UeXBlJHBhcmFtTmFtZSI7CisKKyAgICAg
ICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRw
YXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBl
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBuZSAiRE9NT2Jq
ZWN0IiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbUlETFR5cGUgbmUgIkV2
ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
ImludGdkb20ke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJwcml2Z2RvbSR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7cGFyYW1JRExUeXBlfS5o
In0gPSAxOyAjIHRoaXMgaXNuJ3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGJ1dCBvbmUgb2YgdGhlIGF1
dG8tZ2VuZXJhdGVkIGZpbGVzIG5lZWRlZCBpdCBzby4uLi4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJHBh
cmFtX2lzX2Nsc190eXBlIHx8ICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgJHBhcmFtTmFtZSA9ICJfZ18iIC4gJHBhcmFtTmFtZTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJGNhbGxfaW1wbF9w
YXJhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRjYWxsX2ltcGxfcGFyYW1zIC49ICIs
ICRwYXJhbU5hbWUiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgPSAiJHBh
cmFtTmFtZSI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBhZGRJbmNIZHIoJGZuX3NpZ190eXBlKTsKKyAgICAgICAgICAgICAgICBp
ZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICMgICAgJGltcGxUeXBlZGVm
c3siR2RvbSR7Zm5fc2lnX3R5cGV9In0gPSAxOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKworICAgICAgICAgICAgICAg
ICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbUNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIG5lICJFdmVudFRhcmdldCIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siaW50Z2Rv
bSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7InByaXZnZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbSR7Zm5fc2lnX3R5cGV9
LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIGN1c3RvbSBmdW5jdGlvbnMgZm9y
IG5vdworICAgICAgICAgICAgICAgICMgYnV0IHNraXAgZnJvbSBoZXJlIHRvIGFsbG93IHNvbWUg
aGVhZGVycyB0byBiZSBjcmVhdGVkCisgICAgICAgICAgICAgICAgIyBmb3IgYSBzdWNjZXNzZnVs
IGNvbXBpbGUuCisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20g
ZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFt
ZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAkX3JldHVyblR5cGUgPSAkcmV0dXJuVHlwZTsK
KyAgICAgICAgICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kZm5fc2lnX3R5cGU7Cisg
ICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRf
Z2V0X2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAg
ICAgICAgICAgICAgICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dCAq
JzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9j
YW52YXNfcmVuZGVyaW5nX2NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7
ICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAg
ICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUg
dG8gZmluZCBvdXQgaG93KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQg
aG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICdET01P
YmplY3QnICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21fZG9j
dW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBY
WFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21vYmpUeXBlID0g
J0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnOworICAgICAgICAgICAgICAgICAgICAkZ2Rv
bV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZCc7CisgICAgICAg
ICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNr
aXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVzdCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0
IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91dCBob3cpCisgICAgICAgICAgICAgICAg
ICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3JlYXRlIGEgR0RPTURvbU9iamVjdAorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAg
cHVzaChAaEJvZHksICJXRUJLSVRfR0RPTV9BUEkgJF9yZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1l
ICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
JF9yZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcpXG57XG4iKTsKKworICAg
ICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAodGhpeiwg
MCk7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTtcbiIpOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7
aW50ZXJmYWNlTmFtZX0gKiBpdGVtID0gKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSh0
aGl6KSk7XG4iKTsKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7
CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCBy
ZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKGl0ZW0sIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoaXRlbSk7
XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFt
IChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBh
cmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAg
bXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgbXkg
JHBhcmFtVHlwZUlzUHJpbWl0aXZlID0gJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgk
cGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBl
ID0gSXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBh
ZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1f
aXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJH
ZG9tJHtwYXJhbUlETFR5cGV9In0gPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGlmICghJHBhcmFtVHlwZUlzUHJpbWl0aXZlKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsICgkcGFyYW1OYW1lLCAwKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3Jl
dHVybl9pZl9mYWlsICgkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAg
ICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAg
ICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURMVHlwZSk7Cisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFt
ZSk7CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9N
Q2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFt
SURMVHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgV2ViQ29yZTo6U3RyaW5nIF9nXyR7cGFyYW1OYW1lfSA9IFdlYkNvcmU6OlN0
cmluZygkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG15ICRwYXJhbV9nZG9tX2ZuID0gImdkb21fIiAuIGRlY2FtZWxpemUoJHBhcmFtSURMVHlw
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAjcHVzaChAY0JvZHksICIgICAgV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OiR7cGFyYW1JRExUeXBlfT4gKiBfZ18ke3BhcmFtTmFtZX0gPSBXVEY6
OlJlZlB0cjwke3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJhbU5hbWUpPjtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2ZW50VGFyZ2V0
IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7InByaXZnZG9t
RXZlbnRUYXJnZXROb2RlLmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICIgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogX2dfJHtwYXJhbU5hbWV9
ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9ldmVudF90YXJn
ZXRfbm9kZV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHks
ICIgICAgV2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9ICogX2dfJHtwYXJhbU5hbWV9ID0gKCR7cGFy
YW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUg
InZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggVE9ETzogcmV0dXJu
IHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0sIDApO1xu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKF9nXyR7cGFyYW1O
YW1lfSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbiA9
ICIiOworICAgICAgICAgICAgICAgIG15ICRhc3NpZ25fcHJlID0gIiI7CisgICAgICAgICAgICAg
ICAgbXkgJGFzc2lnbl9wb3N0ID0gIiI7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBl
IG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgeworCisgICAgICAgICAgICAgICAgICAgIGlm
ICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICAke19yZXR1cm5UeXBlfSByZXMgPSAke2dkb21fZm5fcHJlZml4fV9uZXcoKTtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbiA9ICJQYXNzUmVmUHRyPFdlYkNvcmU6
OiR7Zm5fc2lnX3R5cGV9PiBnX3JlcyA9ICI7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNz
aWduX3ByZSA9ICJXVEY6OmdldFB0cigiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2ln
bl9wb3N0ID0gIikiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgJGFzc2lnbiA9ICIke19yZXR1cm5UeXBlfSByZXMgPSAiOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG15ICRleGNl
cHRpb25zID0gIiI7CisgICAgICAgICAgICAgICAgaWYgKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNl
cHRpb25zfSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHtj
YWxsX2ltcGxfcGFyYW1zfSBuZSAiIikgeworICAgICAgICAgICAgICAgICAgICAgICAgJGV4Y2Vw
dGlvbnMgPSAiLCBlYyI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICJlYyI7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIG5lZWQgdGhpcyBmb3IgaW5j
bHVkaW5nIC4uLiBfc29tZXRoaW5nXyAtIGZvciB0aGUgY2xhc3MgYXJncworICAgICAgICAgICAg
ICAgICNpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICMgICAgJGltcGxJ
bmNsdWRlc3siZ2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgI30K
KyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2FwcGVuZF9j
aGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5k
X2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7
Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9LCB0cnVlKTsKKyAgICBpZiAob2spCisgICAg
eworICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSAke2dkb21fZm5fcHJlZml4fV9uZXcoKTsK
KyAgICAgICAgJHtkb21vYmpUeXBlfSAqZG9iID0gbmV3ICR7ZG9tb2JqVHlwZX0oX2dfbmV3X2No
aWxkKTsKKyAgICAgICAgZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdET01fRE9NX09CSkVD
VChyZXMpLCBkb2IpOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gTlVM
TDsKK0VPRgorICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgJGN1c3RvbV9nZG9tX25v
ZGVfYXBwZW5kX2NoaWxkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUg
ZXEgIkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAn
Z2RvbV9kb2N1bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0JykgeworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICAvKiBYWFggVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0IChp
dGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpOyov
XG4iICk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRm
bl9zaWdfdHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICAke2Fzc2lnbn1fR19HRVRfVVRGOChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2Nh
bGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpO1xuIiApOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufSR7
YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNl
cHRpb25zfSR7YXNzaWduX3Bvc3R9KTtcbiIgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgewor
CisgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkRPTU9iamVjdCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHtkb21vYmpUeXBlfSAqZG9i
ID0gbmV3ICR7ZG9tb2JqVHlwZX0oZ19yZXMpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdET01f
RE9NX09CSkVDVChyZXMpLCBkb2IpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlw
ZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHks
ICIgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RPOiByZXR1cm4gY2FudmFzIG9iamVjdCAqL1xu
Iik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gcmVzO1xuIik7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbiIp
OworCisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJ9XG5cbiIpOworICAgICAgICB9CisK
KyAgICAgICAgIyBQcm9wZXJ0aWVzCisgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHsk
ZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFt
ZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5hbWU7IAorICAgICAgICAgICAgICAgIG15ICRwcm9wTmFt
ZSA9IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAg
ICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Cisg
ICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworCisg
ICAgICAgICAgICAgICAgI3B1c2goQGhCb2R5LCAiJHR5cGVcbiRmdW5jdGlvbk5hbWVQcmVmaXgi
IC4gIl9nZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisgICAgICAg
ICAgICAgICAgI3B1c2goQGhCb2R5LCAidm9pZFxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Nl
dF8iIC4gIiRwcm9wTmFtZSAoJGZ1bmN0aW9uU2lnLCAkdHlwZSIgLiAidmFsdWUpO1xuXG4iKTsK
KyAgICAgICAgfQorCisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogZXh0ZXJuIFwiQ1wiICovXG5c
biIpOworICAgIHB1c2goQGNCb2R5UHJpdiwgIn0gLyogZXh0ZXJuIFwiQ1wiICovXG5cbiIpOwor
CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2go
QGhCb2R5SW50ZXJuYWwsICIjZW5kaWYgLyogJHtndWFyZH1fSU5UXyovXG4iKTsKKworICAgIHB1
c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5kaWYg
LyogJGd1YXJkICovXG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIKK3N1YiBXcml0ZURhdGEK
K3sKKyAgICBteSAoJG9iamVjdCwgJG5hbWUpID0gQF87CisKKworICAgICMgV3JpdGUgSW50ZXJu
YWwgaGVhZGVyCisgICAgbXkgJGhkckZOYW1lSW50ZXJuYWwgPSAiJG91dHB1dERpci9pbnQiIC4g
JG5hbWUgLiAiLmgiOworICAgIG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFsIikg
b3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAgcHJp
bnQgSU5USEVBREVSIEBoUHJlZml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAgIHBy
aW50IElOVEhFQURFUiBAaEJvZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOworCisg
ICAgIyBXcml0ZSBQcml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1
dERpci9wcml2IiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZO
YW1lUHJpdiIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworCisg
ICAgcHJpbnQgUFJJVkhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7
CisgICAgcHJpbnQgUFJJVkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIp
OworCisgICAgIyBXcml0ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgbXkgJGltcGxGaWxl
TmFtZVByaXYgPSAiJG91dHB1dERpci9wcml2IiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4o
UFJJVklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmls
ZSAkaW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAg
ICBwcmludCBQUklWSU1QTCAiXG4iOworICAgIHByaW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisK
KyAgICBjbG9zZShQUklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHB1YmxpYyBoZWFkZXIuCisgICAg
bXkgJGhkckZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKEhF
QURFUiwgIj4kaGRyRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWUi
OworCisgICAgJGhkckluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQg
SEVBREVSIEBoUHJlZml4OworICAgIHByaW50IEhFQURFUiBAaFByZWZpeEd1YXJkOworICAgIHBy
aW50IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPlxuIjsKKyAgICBwcmlu
dCBIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRySW5jbHVk
ZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBw
cmludCBIRUFERVIgIlxuIjsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5UHJlOworICAgIHByaW50
IEhFQURFUiBtYXAgeyAidHlwZWRlZiBzdHJ1Y3QgXyRfICRfO1xuIiB9IHNvcnQga2V5cyglaW1w
bFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVpbXBsVHlwZWRlZnMp
OworICAgIHByaW50IEhFQURFUiBAaEJvZHk7CisKKyAgICBjbG9zZShIRUFERVIpOworCisgICAg
IyBXcml0ZSB0aGUgaW1wbGVtZW50YXRpb24gc291cmNlcworICAgIG15ICRpbXBsRmlsZU5hbWUg
PSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihJTVBMLCAiPiRpbXBs
RmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lIjsKKwor
ICAgIHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJjb25m
aWcuaFwiXG5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD5cbiI7
CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJDU3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJ
TVBMICIjaW5jbHVkZSBcIlBsYXRmb3JtU3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIj
aW5jbHVkZSBcIkF0b21pY1N0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCBtYXAgeyAiI2lu
Y2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVpbXBsSW5jbHVkZXMpOworICAgIHByaW50IElN
UEwgIlxuIiBpZiBrZXlzKCVpbXBsSW5jbHVkZXMpOworICAgIHByaW50IElNUEwgQGNCb2R5Owor
CisgICAgY2xvc2UoSU1QTCk7CisKKyAgICAlaW1wbEluY2x1ZGVzID0gKCk7CisgICAgJWltcGxU
eXBlZGVmcyA9ICgpOworICAgICVoZHJJbmNsdWRlcyA9ICgpOworICAgIEBoUHJlZml4ID0gKCk7
CisgICAgQGhCb2R5ID0gKCk7CisgICAgQGhCb2R5UHJpdiA9ICgpOworICAgIEBoQm9keUludGVy
bmFsID0gKCk7CisKKyAgICBAY1ByZWZpeCA9ICgpOworICAgIEBjQm9keSA9ICgpOworICAgIEBj
Qm9keVByaXYgPSAoKTsKK30KKworMTsKSW5kZXg6IFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmgJKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgKi8KIAogI2lmbmRlZiBET01Db3JlRXhjZXB0aW9uX2gK
LSNkZWZpbmUgRE9NQ29kZUV4Y2VwdGlvbl9oCisjZGVmaW5lIERPTUNvcmVFeGNlcHRpb25faAog
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQmFzZS5oIgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23038</attachid>
            <date>2008-08-27 12:57:56 -0700</date>
            <delta_ts>2008-08-29 07:28:14 -0700</delta_ts>
            <desc>property getting added, with stubs for setting.</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>152375</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMzE1LDYgKzMxNiw4IEBACiAJV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vic2V0dGluZ3MuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5o
CiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXApAQCAtMzQ0LDcgKzM0Nyw4IEBA
CiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAK
KwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZXZlbnQuY3BwIAogCiB3ZWJraXRndGtfY3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJ
TkdfV0VCS0lUIFwKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw3ICs0MCwxNCBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAicHJpdmdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJpbnRnZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJwcml2Z2RvbURvY3VtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0L2d0ay93ZWJraXQv
RXZlbnRMaXN0ZW5lckhhY2suaCIKIAorCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2Fz
dC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTUsNiArNjIsNyBAQAogICAgIExP
QURfRE9ORSwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJfTElOSywKKyAg
ICBCUk9XU0VSX0VWRU5ULAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0xNjAsNiArMTY4LDE2
IEBACiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAgICAgIEdfVFlQRV9TVFJJ
TkcsIEdfVFlQRV9TVFJJTkcpOwogCisgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW0JST1dT
RVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwKKyAgICAgICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAgKEdTaWduYWxGbGFncyko
R19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAgICAgMCwKKyAg
ICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21h
cnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwK
KyAgICAgICAgICAgIEdET01fVFlQRV9FVkVOVCwgR19UWVBFX0JPT0xFQU4pOworCiAgICAgLyoK
ICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICovCkBAIC0y
OTIsNiArMzEwLDQ3IEBACiB9CiAKIC8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2Rv
Y3VtZW50OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBH
ZG9tIHdyYXBwZXIgYXJvdW5kIGEgRG9jdW1lbnQgCisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdk
b21Eb2N1bWVudAorICovCitHZG9tRG9jdW1lbnQqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9k
b2N1bWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJG
cmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUg
PSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKwlHZG9tRG9jdW1lbnQgKmdk
b2MgPSBnZG9tX2RvY3VtZW50X25ldygpOworCWdkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShH
RE9NX0RPTV9PQkpFQ1QoZ2RvYyksIG5ldyBHRE9NRG9jdW1lbnQoY29yZUZyYW1lLT5kb2N1bWVu
dCgpKSk7CisJcmV0dXJuIGdkb2M7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFtZV9hZGRf
ZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogYWRk
cyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZnJhbWUncyBkb2N1bWVudAorICoKKyAqIFJldHVy
biB2YWx1ZTogdGhlIG5hbWUgb2YgQGZyYW1lCisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfZnJh
bWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgRkFMU0UpOworCisg
ICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKwor
CXJldHVybiBhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKGZyYW1lLCBjb3JlRnJhbWUsICJjbGlj
ayIpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6
IGEgI1dlYktpdFdlYkZyYW1lCiAgKgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5o
CShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L2dkb21Eb2N1bWVudC5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYx
LDYgKzYyLDkgQEAKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUgKgogd2Via2l0X3dlYl9mcmFt
ZV9uZXcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAK
K1dFQktJVF9BUEkgR2RvbURvY3VtZW50ICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1
bWVudCAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKwogV0VCS0lUX0FQSSBX
ZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3ICAgICAgIChXZWJL
aXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCkBAIC05Myw2ICs5Nyw5IEBACiBXRUJLSVRfQVBJ
IEpTR2xvYmFsQ29udGV4dFJlZgogd2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dl
YmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7
CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRM
aXN0ZW5lckhhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3Rl
bmVySGFjay5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5l
ckhhY2suaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorI2lmbmRlZiBKU19ET01fRVZF
TlRfTElTVEVORVJfSEFDS19ICisjZGVmaW5lIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9IQUNLX0gK
KworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgor
CisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdFJlZi5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XZWJL
aXRBdmFpbGFiaWxpdHkuaD4KKyNpbmNsdWRlICJXZWJDb3JlL3BhZ2UvRnJhbWUuaCIKKworY2xh
c3MgV2ViQ29yZTo6RnJhbWU7CisKK2dib29sZWFuCithZGRfd2luZG93X2V2ZW50X2xpc3RlbmVy
KFdlYktpdFdlYkZyYW1lKiB3ZiwgV2ViQ29yZTo6RnJhbWUgKmZyYW1lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKKworI2VuZGlmIC8qSlNfRE9NX0VWRU5U
X0xJU1RFTkVSX0hBQ0tfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2
aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFu
cyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiV2ViQ29yZS9kb20v
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlL3BsYXRmb3JtL3RleHQvQ1N0cmluZy5oIgorI2lu
Y2x1ZGUgIldlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdJbXBsLmgiCisKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorCisKKyNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudExpc3Rl
bmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgi
CisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5o
IgorI2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlL2tqcy9KU1ZhbHVlLmgiCisjaW5jbHVkZSAiRXZl
bnRMaXN0ZW5lckhhY2suaCIKKyNpbmNsdWRlICJEZXJpdmVkU291cmNlcy9KU0hUTUxEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlL0FQSS9BUElDYXN0LmgiCisjaW5jbHVkZSAi
V2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIldlYkNvcmUvcGxhdGZvcm0v
dGV4dC9DU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0lt
cGwuaCIKKyNpbmNsdWRlICJnZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tRXZlbnQuaCIK
KyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAicHJpdmdkb21ET01PYmplY3QuaCIK
KworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK2V4dGVybiAiQyIgeworCit9IC8vIGV4dGVybiAiQyIKKworY2xhc3MgSGFja0V2ZW50TGlz
dGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SGFja0V2ZW50TGlzdGVuZXI+IGNyZWF0ZShXZWJLaXRXZWJGcmFtZSogd2YpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIYWNrRXZlbnRMaXN0ZW5lcih3ZikpOyB9CisgICAgdmlydHVhbCB2
b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCBpc1dpbmRvd0V2ZW50KTsKKworICAgIHByaXZh
dGU6CisgICAgSGFja0V2ZW50TGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmKSA6IG1fd2Yod2Yp
IHsgfQorICAgIFdlYktpdFdlYkZyYW1lKiBtX3dmOworfTsKKwordm9pZCBIYWNrRXZlbnRMaXN0
ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZlbnQpCit7Cisg
ICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIHByaW50ZigiaGFjayBoYW5kbGVFdmVudCAlc1xuIiwg
ZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndl
diA9IGdkb21fZXZlbnRfbmV3KCk7CisgICAgR0RPTUV2ZW50ICpkb2IgPSBuZXcgR0RPTUV2ZW50
KFBhc3NSZWZQdHI8RXZlbnQ+KGV2ZW50KSk7CisgICAgZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2
YXRlKEdET01fRE9NX09CSkVDVCh3ZXYpLCBkb2IpOworCisgICAgZ19zaWduYWxfZW1pdF9ieV9u
YW1lKG1fd2YsICJicm93c2VyLWV2ZW50IiwgCisgICAgICAgIHdldiwgaXNXaW5kb3dFdmVudCwg
JnJldHZhbCk7Cit9CisKK2dib29sZWFuIGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0
V2ViRnJhbWUgKndmLCBGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5k
b2N1bWVudCgpOworCisgICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gSGFja0V2
ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgZG9jLT5hZGRXaW5kb3dFdmVudExpc3RlbmVy
KG5hbWUsIGxpc3RlbmVyLCB0cnVlKTsKKworICAgIHJldHVybiBUUlVFOworCit9IAorCkluZGV4
OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOSBA
QAogCiBHX0JFR0lOX0RFQ0xTCiAKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudCBXZWJLaXRF
dmVudDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudENsYXNzIFdlYktpdEV2ZW50Q2xhc3M7
CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVxdWVzdCBXZWJLaXROZXR3b3JrUmVx
dWVzdDsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzIFdlYktpdE5l
dHdvcmtSZXF1ZXN0Q2xhc3M7CiAKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAkocmV2aXNp
b24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9s
Z2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXRUJLSVRfR0RPTV9ERUZJTkVTX0gKKyNk
ZWZpbmUgV0VCS0lUX0dET01fREVGSU5FU19ICisKKyNpbmNsdWRlIDxnbGliLmg+CisKKyNpZmRl
ZiBHX09TX1dJTjMyCisgICAgI2lmZGVmIEJVSUxESU5HX1dFQktJVF9HRE9NCisgICAgICAgICNk
ZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorICAgICNlbHNlCisg
ICAgICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorICAg
ICNlbmRpZgorICAgICNkZWZpbmUgV0VCS0lUX0dET01fT0JTT0xFVEVfQVBJIFdFQktJVF9HRE9N
X0FQSQorI2Vsc2UKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQSSBfX2F0dHJpYnV0ZV9fKCh2
aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorICAgICNkZWZpbmUgV0VCS0lUX0dET01fT0JTT0xFVEVf
QVBJIFdFQktJVF9HRE9NX0FQSSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSkKKyNlbmRpZgor
CisjaWZuZGVmIFdFQktJVF9HRE9NX0FQSQorICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJCisj
ZW5kaWYKKworR19CRUdJTl9ERUNMUworCisvKgordHlwZWRlZiBzdHJ1Y3QgX0dEb21BdHRyQ2xh
c3MgR0RvbUF0dHJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQXR0ciBHRG9tQXR0cjsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tQXR0clByaXZhdGUgR0RvbUF0dHJQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21CYXJJbmZvQ2xhc3MgR0RvbUJhckluZm9DbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tQmFySW5mbyBHRG9tQmFySW5mbzsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQmFySW5mb1By
aXZhdGUgR0RvbUJhckluZm9Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNHcmFk
aWVudENsYXNzIEdEb21DYW52YXNHcmFkaWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21D
YW52YXNHcmFkaWVudCBHRG9tQ2FudmFzR3JhZGllbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNh
bnZhc0dyYWRpZW50UHJpdmF0ZSBHRG9tQ2FudmFzR3JhZGllbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuQ2xhc3MgR0RvbUNhbnZhc1BhdHRlcm5DbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFzUGF0dGVybiBHRG9tQ2FudmFzUGF0dGVybjsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tQ2FudmFzUGF0dGVyblByaXZhdGUgR0RvbUNhbnZhc1BhdHRlcm5Qcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQaXhlbEFycmF5Q2xhc3MgR0RvbUNhbnZh
c1BpeGVsQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFzUGl4ZWxBcnJheSBH
RG9tQ2FudmFzUGl4ZWxBcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFzUGl4ZWxBcnJh
eVByaXZhdGUgR0RvbUNhbnZhc1BpeGVsQXJyYXlQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDbGFzcyBHRG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBH
RG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRQcml2YXRlIEdEb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DREFUQVNlY3Rpb25DbGFzcyBHRG9tQ0RBVEFTZWN0
aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRBU2VjdGlvbiBHRG9tQ0RBVEFTZWN0
aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DREFUQVNlY3Rpb25Qcml2YXRlIEdEb21DREFUQVNl
Y3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DaGFyYWN0ZXJEYXRhQ2xhc3MgR0Rv
bUNoYXJhY3RlckRhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2hhcmFjdGVyRGF0YSBH
RG9tQ2hhcmFjdGVyRGF0YTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2hhcmFjdGVyRGF0YVByaXZh
dGUgR0RvbUNoYXJhY3RlckRhdGFQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DbGlwYm9h
cmRDbGFzcyBHRG9tQ2xpcGJvYXJkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNsaXBib2Fy
ZCBHRG9tQ2xpcGJvYXJkOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DbGlwYm9hcmRQcml2YXRlIEdE
b21DbGlwYm9hcmRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db21tZW50Q2xhc3MgR0Rv
bUNvbW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ29tbWVudCBHRG9tQ29tbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tQ29tbWVudFByaXZhdGUgR0RvbUNvbW1lbnRQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21Db25zb2xlQ2xhc3MgR0RvbUNvbnNvbGVDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tQ29uc29sZSBHRG9tQ29uc29sZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
Q29uc29sZVByaXZhdGUgR0RvbUNvbnNvbGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21D
b3VudGVyQ2xhc3MgR0RvbUNvdW50ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ291bnRl
ciBHRG9tQ291bnRlcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ291bnRlclByaXZhdGUgR0RvbUNv
dW50ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NDaGFyc2V0UnVsZUNsYXNzIEdE
b21DU1NDaGFyc2V0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NDaGFyc2V0UnVs
ZSBHRG9tQ1NTQ2hhcnNldFJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0NoYXJzZXRSdWxl
UHJpdmF0ZSBHRG9tQ1NTQ2hhcnNldFJ1bGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21D
U1NGb250RmFjZVJ1bGVDbGFzcyBHRG9tQ1NTRm9udEZhY2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUNTU0ZvbnRGYWNlUnVsZSBHRG9tQ1NTRm9udEZhY2VSdWxlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NGb250RmFjZVJ1bGVQcml2YXRlIEdEb21DU1NGb250RmFjZVJ1bGVQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRSdWxlQ2xhc3MgR0RvbUNTU0ltcG9y
dFJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTSW1wb3J0UnVsZSBHRG9tQ1NTSW1w
b3J0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTSW1wb3J0UnVsZVByaXZhdGUgR0RvbUNT
U0ltcG9ydFJ1bGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NNZWRpYVJ1bGVDbGFz
cyBHRG9tQ1NTTWVkaWFSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU01lZGlhUnVs
ZSBHRG9tQ1NTTWVkaWFSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NNZWRpYVJ1bGVQcml2
YXRlIEdEb21DU1NNZWRpYVJ1bGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NQYWdl
UnVsZUNsYXNzIEdEb21DU1NQYWdlUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NQ
YWdlUnVsZSBHRG9tQ1NTUGFnZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1BhZ2VSdWxl
UHJpdmF0ZSBHRG9tQ1NTUGFnZVJ1bGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NQ
cmltaXRpdmVWYWx1ZUNsYXNzIEdEb21DU1NQcmltaXRpdmVWYWx1ZUNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NQcmltaXRpdmVWYWx1ZSBHRG9tQ1NTUHJpbWl0aXZlVmFsdWU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUNTU1ByaW1pdGl2ZVZhbHVlUHJpdmF0ZSBHRG9tQ1NTUHJpbWl0aXZl
VmFsdWVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlQ2xhc3MgR0RvbUNTU1J1
bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTUnVsZSBHRG9tQ1NTUnVsZTsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tQ1NTUnVsZUxpc3RDbGFzcyBHRG9tQ1NTUnVsZUxpc3RDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tQ1NTUnVsZUxpc3QgR0RvbUNTU1J1bGVMaXN0OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NSdWxlTGlzdFByaXZhdGUgR0RvbUNTU1J1bGVMaXN0UHJpdmF0ZTsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tQ1NTUnVsZVByaXZhdGUgR0RvbUNTU1J1bGVQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZURlY2xhcmF0aW9uQ2xhc3MgR0RvbUNTU1N0eWxlRGVj
bGFyYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTU3R5bGVEZWNsYXJhdGlvbiBH
RG9tQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTU3R5bGVEZWNs
YXJhdGlvblByaXZhdGUgR0RvbUNTU1N0eWxlRGVjbGFyYXRpb25Qcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NTdHlsZVJ1bGVDbGFzcyBHRG9tQ1NTU3R5bGVSdWxlQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlUnVsZSBHRG9tQ1NTU3R5bGVSdWxlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NTdHlsZVJ1bGVQcml2YXRlIEdEb21DU1NTdHlsZVJ1bGVQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0Q2xhc3MgR0RvbUNTU1N0eWxlU2hlZXRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTU3R5bGVTaGVldCBHRG9tQ1NTU3R5bGVTaGVl
dDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTU3R5bGVTaGVldFByaXZhdGUgR0RvbUNTU1N0eWxl
U2hlZXRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYWx1ZUNsYXNzIEdEb21DU1NW
YWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYWx1ZSBHRG9tQ1NTVmFsdWU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlTGlzdENsYXNzIEdEb21DU1NWYWx1ZUxpc3RDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0IEdEb21DU1NWYWx1ZUxpc3Q7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlTGlzdFByaXZhdGUgR0RvbUNTU1ZhbHVlTGlzdFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlUHJpdmF0ZSBHRG9tQ1NTVmFsdWVQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbkNsYXNz
IEdEb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21D
U1NWYXJpYWJsZXNEZWNsYXJhdGlvbiBHRG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb247Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uUHJpdmF0ZSBHRG9tQ1NTVmFy
aWFibGVzRGVjbGFyYXRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYXJpYWJs
ZXNSdWxlQ2xhc3MgR0RvbUNTU1ZhcmlhYmxlc1J1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tQ1NTVmFyaWFibGVzUnVsZSBHRG9tQ1NTVmFyaWFibGVzUnVsZTsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tQ1NTVmFyaWFibGVzUnVsZVByaXZhdGUgR0RvbUNTU1ZhcmlhYmxlc1J1bGVQcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21EYXRhYmFzZUNsYXNzIEdEb21EYXRhYmFzZUNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21EYXRhYmFzZSBHRG9tRGF0YWJhc2U7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbURhdGFiYXNlUHJpdmF0ZSBHRG9tRGF0YWJhc2VQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21Eb2N1bWVudENsYXNzIEdEb21Eb2N1bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21Eb2N1bWVudEZyYWdtZW50Q2xhc3MgR0RvbURvY3VtZW50RnJhZ21lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRGcmFnbWVudCBHRG9tRG9jdW1lbnRGcmFnbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRGcmFnbWVudFByaXZhdGUgR0RvbURvY3VtZW50
RnJhZ21lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudCBHRG9tRG9jdW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50UHJpdmF0ZSBHRG9tRG9jdW1lbnRQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudFR5cGVDbGFzcyBHRG9tRG9jdW1lbnRU
eXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50VHlwZSBHRG9tRG9jdW1lbnRU
eXBlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudFR5cGVQcml2YXRlIEdEb21Eb2N1bWVu
dFR5cGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01BcHBsaWNhdGlvbkNhY2hlQ2xh
c3MgR0RvbURPTUFwcGxpY2F0aW9uQ2FjaGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9N
QXBwbGljYXRpb25DYWNoZSBHRG9tRE9NQXBwbGljYXRpb25DYWNoZTsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tRE9NQXBwbGljYXRpb25DYWNoZVByaXZhdGUgR0RvbURPTUFwcGxpY2F0aW9uQ2FjaGVQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01Db3JlRXhjZXB0aW9uQ2xhc3MgR0RvbURP
TUNvcmVFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NQ29yZUV4Y2VwdGlv
biBHRG9tRE9NQ29yZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NQ29yZUV4Y2Vw
dGlvblByaXZhdGUgR0RvbURPTUNvcmVFeGNlcHRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21ET01JbXBsZW1lbnRhdGlvbkNsYXNzIEdEb21ET01JbXBsZW1lbnRhdGlvbkNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01JbXBsZW1lbnRhdGlvbiBHRG9tRE9NSW1wbGVtZW50YXRp
b247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUltcGxlbWVudGF0aW9uUHJpdmF0ZSBHRG9tRE9N
SW1wbGVtZW50YXRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01PYmplY3QgR0Rv
bURPTU9iamVjdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NUGFyc2VyQ2xhc3MgR0RvbURPTVBh
cnNlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01QYXJzZXIgR0RvbURPTVBhcnNlcjsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NUGFyc2VyUHJpdmF0ZSBHRG9tRE9NUGFyc2VyUHJpdmF0
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NU2VsZWN0aW9uQ2xhc3MgR0RvbURPTVNlbGVjdGlv
bkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxlY3Rpb24gR0RvbURPTVNlbGVjdGlv
bjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NU2VsZWN0aW9uUHJpdmF0ZSBHRG9tRE9NU2VsZWN0
aW9uUHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NV2luZG93Q2xhc3MgR0RvbURPTVdp
bmRvd0NsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01XaW5kb3cgR0RvbURPTVdpbmRvdzsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NV2luZG93UHJpdmF0ZSBHRG9tRE9NV2luZG93UHJpdmF0
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRWxlbWVudENsYXNzIEdEb21FbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUVsZW1lbnQgR0RvbUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUVsZW1lbnRQcml2YXRlIEdEb21FbGVtZW50UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tRW50aXR5Q2xhc3MgR0RvbUVudGl0eUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRp
dHkgR0RvbUVudGl0eTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRW50aXR5UHJpdmF0ZSBHRG9tRW50
aXR5UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRW50aXR5UmVmZXJlbmNlQ2xhc3MgR0Rv
bUVudGl0eVJlZmVyZW5jZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlSZWZlcmVu
Y2UgR0RvbUVudGl0eVJlZmVyZW5jZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRW50aXR5UmVmZXJl
bmNlUHJpdmF0ZSBHRG9tRW50aXR5UmVmZXJlbmNlUHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tRXZlbnRDbGFzcyBHRG9tRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRXZlbnRF
eGNlcHRpb25DbGFzcyBHRG9tRXZlbnRFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tRXZlbnRFeGNlcHRpb24gR0RvbUV2ZW50RXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21FdmVudEV4Y2VwdGlvblByaXZhdGUgR0RvbUV2ZW50RXhjZXB0aW9uUHJpdmF0ZTsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tRXZlbnQgR0RvbUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FdmVu
dFByaXZhdGUgR0RvbUV2ZW50UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRXZlbnRUYXJn
ZXQgR0RvbUV2ZW50VGFyZ2V0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21GaWxlQ2xhc3MgR0RvbUZp
bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRmlsZSBHRG9tRmlsZTsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tRmlsZUxpc3RDbGFzcyBHRG9tRmlsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tRmlsZUxpc3QgR0RvbUZpbGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21GaWxlTGlz
dFByaXZhdGUgR0RvbUZpbGVMaXN0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRmlsZVBy
aXZhdGUgR0RvbUZpbGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IaXN0b3J5Q2xhc3Mg
R0RvbUhpc3RvcnlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSGlzdG9yeSBHRG9tSGlzdG9y
eTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSGlzdG9yeVByaXZhdGUgR0RvbUhpc3RvcnlQcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQW5jaG9yRWxlbWVudENsYXNzIEdEb21IVE1MQW5j
aG9yRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQW5jaG9yRWxlbWVudCBH
RG9tSFRNTEFuY2hvckVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBbmNob3JFbGVt
ZW50UHJpdmF0ZSBHRG9tSFRNTEFuY2hvckVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MQXBwbGV0RWxlbWVudENsYXNzIEdEb21IVE1MQXBwbGV0RWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQXBwbGV0RWxlbWVudCBHRG9tSFRNTEFwcGxldEVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBcHBsZXRFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TEFwcGxldEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQXJlYUVsZW1l
bnRDbGFzcyBHRG9tSFRNTEFyZWFFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxBcmVhRWxlbWVudCBHRG9tSFRNTEFyZWFFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MQXJlYUVsZW1lbnRQcml2YXRlIEdEb21IVE1MQXJlYUVsZW1lbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MQmFzZUVsZW1lbnRDbGFzcyBHRG9tSFRNTEJhc2VFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRWxlbWVudCBHRG9tSFRNTEJhc2VFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQmFzZUVsZW1lbnRQcml2YXRlIEdEb21IVE1M
QmFzZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQmFzZUZvbnRFbGVt
ZW50Q2xhc3MgR0RvbUhUTUxCYXNlRm9udEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tSFRNTEJhc2VGb250RWxlbWVudCBHRG9tSFRNTEJhc2VGb250RWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tSFRNTEJhc2VGb250RWxlbWVudFByaXZhdGUgR0RvbUhUTUxCYXNlRm9udEVs
ZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQmxvY2txdW90ZUVsZW1lbnRD
bGFzcyBHRG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxCbG9ja3F1b3RlRWxlbWVudCBHRG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MQmxvY2txdW90ZUVsZW1lbnRQcml2YXRlIEdEb21IVE1MQmxvY2tx
dW90ZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQm9keUVsZW1lbnRD
bGFzcyBHRG9tSFRNTEJvZHlFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxC
b2R5RWxlbWVudCBHRG9tSFRNTEJvZHlFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
Qm9keUVsZW1lbnRQcml2YXRlIEdEb21IVE1MQm9keUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50Q2xhc3MgR0RvbUhUTUxCUkVsZW1lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJSRWxlbWVudCBHRG9tSFRNTEJSRWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTEJSRWxlbWVudFByaXZhdGUgR0RvbUhUTUxCUkVsZW1lbnRQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQnV0dG9uRWxlbWVudENsYXNzIEdEb21IVE1M
QnV0dG9uRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQnV0dG9uRWxlbWVu
dCBHRG9tSFRNTEJ1dHRvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCdXR0b25F
bGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJ1dHRvbkVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MQ2FudmFzRWxlbWVudENsYXNzIEdEb21IVE1MQ2FudmFzRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQ2FudmFzRWxlbWVudCBHRG9tSFRNTENhbnZhc0Vs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxDYW52YXNFbGVtZW50UHJpdmF0ZSBHRG9t
SFRNTENhbnZhc0VsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQ29sbGVj
dGlvbkNsYXNzIEdEb21IVE1MQ29sbGVjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MQ29sbGVjdGlvbiBHRG9tSFRNTENvbGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxDb2xsZWN0aW9uUHJpdmF0ZSBHRG9tSFRNTENvbGxlY3Rpb25Qcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MRGlyZWN0b3J5RWxlbWVudENsYXNzIEdEb21IVE1MRGlyZWN0b3J5RWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRGlyZWN0b3J5RWxlbWVudCBHRG9t
SFRNTERpcmVjdG9yeUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXJlY3RvcnlF
bGVtZW50UHJpdmF0ZSBHRG9tSFRNTERpcmVjdG9yeUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MRGl2RWxlbWVudENsYXNzIEdEb21IVE1MRGl2RWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRGl2RWxlbWVudCBHRG9tSFRNTERpdkVsZW1lbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXZFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTERpdkVsZW1l
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRExpc3RFbGVtZW50Q2xhc3MgR0Rv
bUhUTUxETGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERMaXN0RWxl
bWVudCBHRG9tSFRNTERMaXN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERMaXN0
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxETGlzdEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MRG9jdW1lbnRDbGFzcyBHRG9tSFRNTERvY3VtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxEb2N1bWVudCBHRG9tSFRNTERvY3VtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MRG9jdW1lbnRQcml2YXRlIEdEb21IVE1MRG9jdW1lbnRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRWxlbWVudENsYXNzIEdEb21IVE1MRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRWxlbWVudCBHRG9tSFRNTEVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEVsZW1lbnRQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVtZW50Q2xhc3MgR0RvbUhUTUxFbWJlZEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEVtYmVkRWxlbWVudCBHRG9tSFRN
TEVtYmVkRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEVtYmVkRWxlbWVudFByaXZh
dGUgR0RvbUhUTUxFbWJlZEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
RmllbGRTZXRFbGVtZW50Q2xhc3MgR0RvbUhUTUxGaWVsZFNldEVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTEZpZWxkU2V0RWxlbWVudCBHRG9tSFRNTEZpZWxkU2V0RWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZpZWxkU2V0RWxlbWVudFByaXZhdGUgR0RvbUhU
TUxGaWVsZFNldEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRm9udEVs
ZW1lbnRDbGFzcyBHRG9tSFRNTEZvbnRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxGb250RWxlbWVudCBHRG9tSFRNTEZvbnRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MRm9udEVsZW1lbnRQcml2YXRlIEdEb21IVE1MRm9udEVsZW1lbnRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRm9ybUVsZW1lbnRDbGFzcyBHRG9tSFRNTEZvcm1FbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb3JtRWxlbWVudCBHRG9tSFRNTEZvcm1F
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRm9ybUVsZW1lbnRQcml2YXRlIEdEb21I
VE1MRm9ybUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRnJhbWVFbGVt
ZW50Q2xhc3MgR0RvbUhUTUxGcmFtZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTEZyYW1lRWxlbWVudCBHRG9tSFRNTEZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tSFRNTEZyYW1lRWxlbWVudFByaXZhdGUgR0RvbUhUTUxGcmFtZUVsZW1lbnRQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRnJhbWVTZXRFbGVtZW50Q2xhc3MgR0RvbUhUTUxGcmFt
ZVNldEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZyYW1lU2V0RWxlbWVu
dCBHRG9tSFRNTEZyYW1lU2V0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZyYW1l
U2V0RWxlbWVudFByaXZhdGUgR0RvbUhUTUxGcmFtZVNldEVsZW1lbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MSGVhZEVsZW1lbnRDbGFzcyBHRG9tSFRNTEhlYWRFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkRWxlbWVudCBHRG9tSFRNTEhlYWRFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSGVhZEVsZW1lbnRQcml2YXRlIEdEb21IVE1M
SGVhZEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSGVhZGluZ0VsZW1l
bnRDbGFzcyBHRG9tSFRNTEhlYWRpbmdFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxIZWFkaW5nRWxlbWVudCBHRG9tSFRNTEhlYWRpbmdFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MSGVhZGluZ0VsZW1lbnRQcml2YXRlIEdEb21IVE1MSGVhZGluZ0VsZW1lbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJFbGVtZW50Q2xhc3MgR0RvbUhUTUxI
UkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEhSRWxlbWVudCBHRG9tSFRN
TEhSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEhSRWxlbWVudFByaXZhdGUgR0Rv
bUhUTUxIUkVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSHRtbEVsZW1l
bnRDbGFzcyBHRG9tSFRNTEh0bWxFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxIdG1sRWxlbWVudCBHRG9tSFRNTEh0bWxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MSHRtbEVsZW1lbnRQcml2YXRlIEdEb21IVE1MSHRtbEVsZW1lbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MSUZyYW1lRWxlbWVudENsYXNzIEdEb21IVE1MSUZyYW1lRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSUZyYW1lRWxlbWVudCBHRG9tSFRNTElG
cmFtZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJRnJhbWVFbGVtZW50UHJpdmF0
ZSBHRG9tSFRNTElGcmFtZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
SW1hZ2VFbGVtZW50Q2xhc3MgR0RvbUhUTUxJbWFnZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEltYWdlRWxlbWVudCBHRG9tSFRNTEltYWdlRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tSFRNTEltYWdlRWxlbWVudFByaXZhdGUgR0RvbUhUTUxJbWFnZUVsZW1lbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW5wdXRFbGVtZW50Q2xhc3MgR0RvbUhU
TUxJbnB1dEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTElucHV0RWxlbWVu
dCBHRG9tSFRNTElucHV0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTElucHV0RWxl
bWVudFByaXZhdGUgR0RvbUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MSXNJbmRleEVsZW1lbnRDbGFzcyBHRG9tSFRNTElzSW5kZXhFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJc0luZGV4RWxlbWVudCBHRG9tSFRNTElzSW5kZXhF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSXNJbmRleEVsZW1lbnRQcml2YXRlIEdE
b21IVE1MSXNJbmRleEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGFi
ZWxFbGVtZW50Q2xhc3MgR0RvbUhUTUxMYWJlbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTExhYmVsRWxlbWVudCBHRG9tSFRNTExhYmVsRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTExhYmVsRWxlbWVudFByaXZhdGUgR0RvbUhUTUxMYWJlbEVsZW1lbnRQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGVnZW5kRWxlbWVudENsYXNzIEdEb21IVE1M
TGVnZW5kRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGVnZW5kRWxlbWVu
dCBHRG9tSFRNTExlZ2VuZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMZWdlbmRF
bGVtZW50UHJpdmF0ZSBHRG9tSFRNTExlZ2VuZEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MTElFbGVtZW50Q2xhc3MgR0RvbUhUTUxMSUVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTExJRWxlbWVudCBHRG9tSFRNTExJRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tSFRNTExJRWxlbWVudFByaXZhdGUgR0RvbUhUTUxMSUVsZW1lbnRQcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGlua0VsZW1lbnRDbGFzcyBHRG9tSFRNTExpbmtF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMaW5rRWxlbWVudCBHRG9tSFRN
TExpbmtFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGlua0VsZW1lbnRQcml2YXRl
IEdEb21IVE1MTGlua0VsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTWFw
RWxlbWVudENsYXNzIEdEb21IVE1MTWFwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MTWFwRWxlbWVudCBHRG9tSFRNTE1hcEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxNYXBFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE1hcEVsZW1lbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MTWFycXVlZUVsZW1lbnRDbGFzcyBHRG9tSFRNTE1hcnF1ZWVFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXJxdWVlRWxlbWVudCBHRG9tSFRN
TE1hcnF1ZWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTWFycXVlZUVsZW1lbnRQ
cml2YXRlIEdEb21IVE1MTWFycXVlZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MTWVudUVsZW1lbnRDbGFzcyBHRG9tSFRNTE1lbnVFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxNZW51RWxlbWVudCBHRG9tSFRNTE1lbnVFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MTWVudUVsZW1lbnRQcml2YXRlIEdEb21IVE1MTWVudUVsZW1lbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTWV0YUVsZW1lbnRDbGFzcyBHRG9tSFRN
TE1ldGFFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZXRhRWxlbWVudCBH
RG9tSFRNTE1ldGFFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTWV0YUVsZW1lbnRQ
cml2YXRlIEdEb21IVE1MTWV0YUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MTW9kRWxlbWVudENsYXNzIEdEb21IVE1MTW9kRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MTW9kRWxlbWVudCBHRG9tSFRNTE1vZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxNb2RFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE1vZEVsZW1lbnRQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT2JqZWN0RWxlbWVudENsYXNzIEdEb21IVE1MT2JqZWN0
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT2JqZWN0RWxlbWVudCBHRG9t
SFRNTE9iamVjdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPYmplY3RFbGVtZW50
UHJpdmF0ZSBHRG9tSFRNTE9iamVjdEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MT0xpc3RFbGVtZW50Q2xhc3MgR0RvbUhUTUxPTGlzdEVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTE9MaXN0RWxlbWVudCBHRG9tSFRNTE9MaXN0RWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9MaXN0RWxlbWVudFByaXZhdGUgR0RvbUhUTUxPTGlzdEVs
ZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT3B0R3JvdXBFbGVtZW50Q2xh
c3MgR0RvbUhUTUxPcHRHcm91cEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TE9wdEdyb3VwRWxlbWVudCBHRG9tSFRNTE9wdEdyb3VwRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTE9wdEdyb3VwRWxlbWVudFByaXZhdGUgR0RvbUhUTUxPcHRHcm91cEVsZW1lbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT3B0aW9uRWxlbWVudENsYXNzIEdEb21I
VE1MT3B0aW9uRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT3B0aW9uRWxl
bWVudCBHRG9tSFRNTE9wdGlvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRp
b25FbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE9wdGlvbkVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25DbGFzcyBHRG9tSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbiBH
RG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT3B0aW9u
c0NvbGxlY3Rpb25Qcml2YXRlIEdEb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25Qcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYWdyYXBoRWxlbWVudENsYXNzIEdEb21IVE1MUGFyYWdy
YXBoRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYWdyYXBoRWxlbWVu
dCBHRG9tSFRNTFBhcmFncmFwaEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJh
Z3JhcGhFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFBhcmFncmFwaEVsZW1lbnRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50Q2xhc3MgR0RvbUhUTUxQYXJhbUVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFBhcmFtRWxlbWVudCBHRG9tSFRNTFBh
cmFtRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFBhcmFtRWxlbWVudFByaXZhdGUg
R0RvbUhUTUxQYXJhbUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUHJl
RWxlbWVudENsYXNzIEdEb21IVE1MUHJlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MUHJlRWxlbWVudCBHRG9tSFRNTFByZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxQcmVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFByZUVsZW1lbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50Q2xhc3MgR0RvbUhUTUxRdW90ZUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFF1b3RlRWxlbWVudCBHRG9tSFRNTFF1b3Rl
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFF1b3RlRWxlbWVudFByaXZhdGUgR0Rv
bUhUTUxRdW90ZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU2NyaXB0
RWxlbWVudENsYXNzIEdEb21IVE1MU2NyaXB0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MU2NyaXB0RWxlbWVudCBHRG9tSFRNTFNjcmlwdEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxTY3JpcHRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFNjcmlwdEVsZW1lbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU2VsZWN0RWxlbWVudENsYXNzIEdEb21I
VE1MU2VsZWN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU2VsZWN0RWxl
bWVudCBHRG9tSFRNTFNlbGVjdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTZWxl
Y3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFNlbGVjdEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50Q2xhc3MgR0RvbUhUTUxTdHlsZUVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFN0eWxlRWxlbWVudCBHRG9tSFRNTFN0eWxlRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFN0eWxlRWxlbWVudFByaXZhdGUgR0RvbUhU
TUxTdHlsZUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDYXB0
aW9uRWxlbWVudENsYXNzIEdEb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudCBHRG9tSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MVGFibGVDZWxsRWxlbWVudENsYXNzIEdEb21IVE1MVGFibGVDZWxsRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDZWxsRWxlbWVudCBHRG9tSFRNTFRh
YmxlQ2VsbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNlbGxFbGVtZW50
UHJpdmF0ZSBHRG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MVGFibGVDb2xFbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ29sRWxlbWVudCBHRG9tSFRNTFRhYmxl
Q29sRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ29sRWxlbWVudFByaXZh
dGUgR0RvbUhUTUxUYWJsZUNvbEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MVGFibGVFbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tSFRNTFRhYmxlRWxlbWVudCBHRG9tSFRNTFRhYmxlRWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlRWxlbWVudFByaXZhdGUgR0RvbUhUTUxUYWJsZUVsZW1l
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVSb3dFbGVtZW50Q2xhc3Mg
R0RvbUhUTUxUYWJsZVJvd0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRh
YmxlUm93RWxlbWVudCBHRG9tSFRNTFRhYmxlUm93RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tSFRNTFRhYmxlUm93RWxlbWVudFByaXZhdGUgR0RvbUhUTUxUYWJsZVJvd0VsZW1lbnRQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudENsYXNzIEdE
b21IVE1MVGFibGVTZWN0aW9uRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
VGFibGVTZWN0aW9uRWxlbWVudCBHRG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGV4dEFyZWFF
bGVtZW50Q2xhc3MgR0RvbUhUTUxUZXh0QXJlYUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTFRleHRBcmVhRWxlbWVudCBHRG9tSFRNTFRleHRBcmVhRWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTFRleHRBcmVhRWxlbWVudFByaXZhdGUgR0RvbUhUTUxUZXh0QXJl
YUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGl0bGVFbGVtZW50Q2xh
c3MgR0RvbUhUTUxUaXRsZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRp
dGxlRWxlbWVudCBHRG9tSFRNTFRpdGxlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TFRpdGxlRWxlbWVudFByaXZhdGUgR0RvbUhUTUxUaXRsZUVsZW1lbnRQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50Q2xhc3MgR0RvbUhUTUxVTGlzdEVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFVMaXN0RWxlbWVudCBHRG9tSFRNTFVMaXN0
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFVMaXN0RWxlbWVudFByaXZhdGUgR0Rv
bUhUTUxVTGlzdEVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21JbWFnZURhdGFD
bGFzcyBHRG9tSW1hZ2VEYXRhQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUltYWdlRGF0YSBH
RG9tSW1hZ2VEYXRhOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21JbWFnZURhdGFQcml2YXRlIEdEb21J
bWFnZURhdGFQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21KYXZhU2NyaXB0Q2FsbEZyYW1l
Q2xhc3MgR0RvbUphdmFTY3JpcHRDYWxsRnJhbWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SmF2YVNjcmlwdENhbGxGcmFtZSBHRG9tSmF2YVNjcmlwdENhbGxGcmFtZTsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSmF2YVNjcmlwdENhbGxGcmFtZVByaXZhdGUgR0RvbUphdmFTY3JpcHRDYWxsRnJh
bWVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXlib2FyZEV2ZW50Q2xhc3MgR0RvbUtl
eWJvYXJkRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tS2V5Ym9hcmRFdmVudCBHRG9t
S2V5Ym9hcmRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tS2V5Ym9hcmRFdmVudFByaXZhdGUg
R0RvbUtleWJvYXJkRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Mb2NhdGlvbkNs
YXNzIEdEb21Mb2NhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Mb2NhdGlvbiBHRG9t
TG9jYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxvY2F0aW9uUHJpdmF0ZSBHRG9tTG9jYXRp
b25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NZWRpYUxpc3RDbGFzcyBHRG9tTWVkaWFM
aXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lZGlhTGlzdCBHRG9tTWVkaWFMaXN0Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21NZWRpYUxpc3RQcml2YXRlIEdEb21NZWRpYUxpc3RQcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NZXNzYWdlRXZlbnRDbGFzcyBHRG9tTWVzc2FnZUV2ZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VFdmVudCBHRG9tTWVzc2FnZUV2ZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NZXNzYWdlRXZlbnRQcml2YXRlIEdEb21NZXNzYWdlRXZl
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUFycmF5Q2xhc3MgR0RvbU1p
bWVUeXBlQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWltZVR5cGVBcnJheSBHRG9t
TWltZVR5cGVBcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWltZVR5cGVBcnJheVByaXZhdGUg
R0RvbU1pbWVUeXBlQXJyYXlQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUNs
YXNzIEdEb21NaW1lVHlwZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZSBHRG9t
TWltZVR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVUeXBlUHJpdmF0ZSBHRG9tTWltZVR5
cGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3VzZUV2ZW50Q2xhc3MgR0RvbU1vdXNl
RXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTW91c2VFdmVudCBHRG9tTW91c2VFdmVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTW91c2VFdmVudFByaXZhdGUgR0RvbU1vdXNlRXZlbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlvbkV2ZW50Q2xhc3MgR0RvbU11dGF0
aW9uRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTXV0YXRpb25FdmVudCBHRG9tTXV0
YXRpb25FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTXV0YXRpb25FdmVudFByaXZhdGUgR0Rv
bU11dGF0aW9uRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21OYW1lZE5vZGVNYXBD
bGFzcyBHRG9tTmFtZWROb2RlTWFwQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hbWVkTm9k
ZU1hcCBHRG9tTmFtZWROb2RlTWFwOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21OYW1lZE5vZGVNYXBQ
cml2YXRlIEdEb21OYW1lZE5vZGVNYXBQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21OYXZp
Z2F0b3JDbGFzcyBHRG9tTmF2aWdhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hdmln
YXRvciBHRG9tTmF2aWdhdG9yOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21OYXZpZ2F0b3JQcml2YXRl
IEdEb21OYXZpZ2F0b3JQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlQ2xhc3MgR0Rv
bU5vZGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUZpbHRlckNsYXNzIEdEb21Ob2Rl
RmlsdGVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVGaWx0ZXIgR0RvbU5vZGVGaWx0
ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVGaWx0ZXJQcml2YXRlIEdEb21Ob2RlRmlsdGVy
UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZSBHRG9tTm9kZTsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tTm9kZUl0ZXJhdG9yQ2xhc3MgR0RvbU5vZGVJdGVyYXRvckNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21Ob2RlSXRlcmF0b3IgR0RvbU5vZGVJdGVyYXRvcjsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tTm9kZUl0ZXJhdG9yUHJpdmF0ZSBHRG9tTm9kZUl0ZXJhdG9yUHJpdmF0ZTsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tTm9kZUxpc3RDbGFzcyBHRG9tTm9kZUxpc3RDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tTm9kZUxpc3QgR0RvbU5vZGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21Ob2RlTGlzdFByaXZhdGUgR0RvbU5vZGVMaXN0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tTm9kZVByaXZhdGUgR0RvbU5vZGVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob3Rh
dGlvbkNsYXNzIEdEb21Ob3RhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob3RhdGlv
biBHRG9tTm90YXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vdGF0aW9uUHJpdmF0ZSBHRG9t
Tm90YXRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21PdmVyZmxvd0V2ZW50Q2xhc3Mg
R0RvbU92ZXJmbG93RXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tT3ZlcmZsb3dFdmVu
dCBHRG9tT3ZlcmZsb3dFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tT3ZlcmZsb3dFdmVudFBy
aXZhdGUgR0RvbU92ZXJmbG93RXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21QbHVn
aW5BcnJheUNsYXNzIEdEb21QbHVnaW5BcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Q
bHVnaW5BcnJheSBHRG9tUGx1Z2luQXJyYXk7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVBsdWdpbkFy
cmF5UHJpdmF0ZSBHRG9tUGx1Z2luQXJyYXlQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Q
bHVnaW5DbGFzcyBHRG9tUGx1Z2luQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVBsdWdpbiBH
RG9tUGx1Z2luOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21QbHVnaW5Qcml2YXRlIEdEb21QbHVnaW5Q
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzcyBH
RG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVByb2Nl
c3NpbmdJbnN0cnVjdGlvbiBHRG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25Qcml2YXRlIEdEb21Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9ncmVzc0V2ZW50Q2xhc3MgR0Rv
bVByb2dyZXNzRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUHJvZ3Jlc3NFdmVudCBH
RG9tUHJvZ3Jlc3NFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUHJvZ3Jlc3NFdmVudFByaXZh
dGUgR0RvbVByb2dyZXNzRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21SYW5nZUNs
YXNzIEdEb21SYW5nZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21SYW5nZUV4Y2VwdGlvbkNs
YXNzIEdEb21SYW5nZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21SYW5nZUV4
Y2VwdGlvbiBHRG9tUmFuZ2VFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJhbmdlRXhj
ZXB0aW9uUHJpdmF0ZSBHRG9tUmFuZ2VFeGNlcHRpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21SYW5nZSBHRG9tUmFuZ2U7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJhbmdlUHJpdmF0ZSBH
RG9tUmFuZ2VQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21SZWN0Q2xhc3MgR0RvbVJlY3RD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUmVjdCBHRG9tUmVjdDsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tUmVjdFByaXZhdGUgR0RvbVJlY3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21T
Y3JlZW5DbGFzcyBHRG9tU2NyZWVuQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNjcmVlbiBH
RG9tU2NyZWVuOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TY3JlZW5Qcml2YXRlIEdEb21TY3JlZW5Q
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxFcnJvckNsYXNzIEdEb21TUUxFcnJvckNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxFcnJvciBHRG9tU1FMRXJyb3I7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVNRTEVycm9yUHJpdmF0ZSBHRG9tU1FMRXJyb3JQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21TUUxSZXN1bHRTZXRDbGFzcyBHRG9tU1FMUmVzdWx0U2V0Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldCBHRG9tU1FMUmVzdWx0U2V0OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21TUUxSZXN1bHRTZXRQcml2YXRlIEdEb21TUUxSZXN1bHRTZXRQcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxSZXN1bHRTZXRSb3dMaXN0Q2xhc3MgR0RvbVNRTFJl
c3VsdFNldFJvd0xpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMUmVzdWx0U2V0Um93
TGlzdCBHRG9tU1FMUmVzdWx0U2V0Um93TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMUmVz
dWx0U2V0Um93TGlzdFByaXZhdGUgR0RvbVNRTFJlc3VsdFNldFJvd0xpc3RQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21TUUxUcmFuc2FjdGlvbkNsYXNzIEdEb21TUUxUcmFuc2FjdGlvbkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxUcmFuc2FjdGlvbiBHRG9tU1FMVHJhbnNhY3Rp
b247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0aW9uUHJpdmF0ZSBHRG9tU1FMVHJh
bnNhY3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlQ2xhc3MgR0RvbVN0
b3JhZ2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3RvcmFnZUV2ZW50Q2xhc3MgR0RvbVN0
b3JhZ2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlRXZlbnQgR0RvbVN0
b3JhZ2VFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3RvcmFnZUV2ZW50UHJpdmF0ZSBHRG9t
U3RvcmFnZUV2ZW50UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3RvcmFnZSBHRG9tU3Rv
cmFnZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3RvcmFnZVByaXZhdGUgR0RvbVN0b3JhZ2VQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0Q2xhc3MgR0RvbVN0eWxlU2hlZXRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3R5bGVTaGVldCBHRG9tU3R5bGVTaGVldDsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tU3R5bGVTaGVldExpc3RDbGFzcyBHRG9tU3R5bGVTaGVldExpc3RD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3R5bGVTaGVldExpc3QgR0RvbVN0eWxlU2hlZXRM
aXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0TGlzdFByaXZhdGUgR0RvbVN0eWxl
U2hlZXRMaXN0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU3R5bGVTaGVldFByaXZhdGUg
R0RvbVN0eWxlU2hlZXRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0Q2xhc3MgR0Rv
bVRleHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVGV4dEV2ZW50Q2xhc3MgR0RvbVRleHRF
dmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0RXZlbnQgR0RvbVRleHRFdmVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tVGV4dEV2ZW50UHJpdmF0ZSBHRG9tVGV4dEV2ZW50UHJpdmF0
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVGV4dCBHRG9tVGV4dDsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tVGV4dFByaXZhdGUgR0RvbVRleHRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UcmVl
V2Fsa2VyQ2xhc3MgR0RvbVRyZWVXYWxrZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVHJl
ZVdhbGtlciBHRG9tVHJlZVdhbGtlcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVHJlZVdhbGtlclBy
aXZhdGUgR0RvbVRyZWVXYWxrZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21VSUV2ZW50
Q2xhc3MgR0RvbVVJRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVUlFdmVudCBHRG9t
VUlFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tVUlFdmVudFByaXZhdGUgR0RvbVVJRXZlbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XZWJLaXRBbmltYXRpb25FdmVudENsYXNzIEdE
b21XZWJLaXRBbmltYXRpb25FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XZWJLaXRB
bmltYXRpb25FdmVudCBHRG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVdlYktpdEFuaW1hdGlvbkV2ZW50UHJpdmF0ZSBHRG9tV2ViS2l0QW5pbWF0aW9uRXZlbnRQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUNsYXNz
IEdEb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21X
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSBHRG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlUHJpdmF0ZSBHRG9tV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWVQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XZWJLaXRUcmFu
c2l0aW9uRXZlbnRDbGFzcyBHRG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVdlYktpdFRyYW5zaXRpb25FdmVudCBHRG9tV2ViS2l0VHJhbnNpdGlvbkV2
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRQcml2YXRlIEdE
b21XZWJLaXRUcmFuc2l0aW9uRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XaGVl
bEV2ZW50Q2xhc3MgR0RvbVdoZWVsRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tV2hl
ZWxFdmVudCBHRG9tV2hlZWxFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tV2hlZWxFdmVudFBy
aXZhdGUgR0RvbVdoZWVsRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRw
UmVxdWVzdENsYXNzIEdEb21YTUxIdHRwUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbkNsYXNzIEdEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
bkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiBHRG9t
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uUHJpdmF0ZSBHRG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25Qcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdCBHRG9tWE1MSHR0cFJlcXVlc3Q7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0UHJpdmF0ZSBHRG9tWE1MSHR0cFJlcXVl
c3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnRDbGFzcyBHRG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCBHRG9tWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRQcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdFVwbG9hZENsYXNzIEdEb21YTUxIdHRwUmVx
dWVzdFVwbG9hZENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxIdHRwUmVxdWVzdFVwbG9h
ZCBHRG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBS
ZXF1ZXN0VXBsb2FkUHJpdmF0ZSBHRG9tWE1MSHR0cFJlcXVlc3RVcGxvYWRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyQ2xhc3MgR0RvbVhNTFNlcmlhbGl6ZXJDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1MU2VyaWFsaXplciBHRG9tWE1MU2VyaWFsaXplcjsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tWE1MU2VyaWFsaXplclByaXZhdGUgR0RvbVhNTFNlcmlhbGl6
ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aEV2YWx1YXRvckNsYXNzIEdEb21Y
UGF0aEV2YWx1YXRvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aEV2YWx1YXRvciBH
RG9tWFBhdGhFdmFsdWF0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXZhbHVhdG9yUHJp
dmF0ZSBHRG9tWFBhdGhFdmFsdWF0b3JQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0
aEV4Y2VwdGlvbkNsYXNzIEdEb21YUGF0aEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21YUGF0aEV4Y2VwdGlvbiBHRG9tWFBhdGhFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVhQYXRoRXhjZXB0aW9uUHJpdmF0ZSBHRG9tWFBhdGhFeGNlcHRpb25Qcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aEV4cHJlc3Npb25DbGFzcyBHRG9tWFBhdGhFeHByZXNzaW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhwcmVzc2lvbiBHRG9tWFBhdGhFeHBy
ZXNzaW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aEV4cHJlc3Npb25Qcml2YXRlIEdEb21Y
UGF0aEV4cHJlc3Npb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aE5TUmVzb2x2
ZXJDbGFzcyBHRG9tWFBhdGhOU1Jlc29sdmVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQ
YXRoTlNSZXNvbHZlciBHRG9tWFBhdGhOU1Jlc29sdmVyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Y
UGF0aE5TUmVzb2x2ZXJQcml2YXRlIEdEb21YUGF0aE5TUmVzb2x2ZXJQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21YUGF0aFJlc3VsdENsYXNzIEdEb21YUGF0aFJlc3VsdENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21YUGF0aFJlc3VsdCBHRG9tWFBhdGhSZXN1bHQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbVhQYXRoUmVzdWx0UHJpdmF0ZSBHRG9tWFBhdGhSZXN1bHRQcml2YXRlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yQ2xhc3MgR0RvbVhTTFRQcm9jZXNzb3JDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFNMVFByb2Nlc3NvciBHRG9tWFNMVFByb2Nlc3NvcjsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tWFNMVFByb2Nlc3NvclByaXZhdGUgR0RvbVhTTFRQcm9jZXNz
b3JQcml2YXRlOworKi8KKworR19FTkRfREVDTFMKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAt
OSw2ICs5LDcgQEAKIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTIDo9ICQoV2ViQ29yZSkvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4KIAogd2ViY29yZV9jcHBmbGFncyArPSBcCisJLUkkKHNyY2Rp
cikvV2ViS2l0L2d0ayBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZSBcCiAJLUkkKHNyY2RpcikvV2Vi
Q29yZS9wbGF0Zm9ybSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrIFwK
QEAgLTI5LDYgKzMwLDcgQEAKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3htbCBcCiAJLUkkKHNyY2Rp
cikvV2ViQ29yZS9odG1sIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwKKwkt
SSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvYm1wIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL2dpZiBcCkBAIC01NSw3ICs1Nyw3IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UubHV0LmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdl
dEJhc2UubHV0LmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5sdXQuaCBcCi0J
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFibGUuY3BwCisJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFibGUuY3BwIAogCiB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0NTU0dyYW1tYXIuY3BwIFwK
QEAgLTM1OCw4ICszNjAsNTg5IEBACiAJRGVyaXZlZFNvdXJjZXMvVXNlckFnZW50U3R5bGVTaGVl
dHMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvVXNlckFnZW50U3R5bGVTaGVldHNEYXRhLmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5o
CisJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUF0dHIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQXR0ci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
QmFySW5mby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21CYXJJbmZvLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21DREFUQVNlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ0RBVEFT
ZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NDaGFyc2V0UnVsZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21DU1NDaGFyc2V0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Q1NTRm9udEZhY2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0ZvbnRGYWNlUnVs
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTSW1wb3J0UnVsZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21DU1NJbXBvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NNZWRp
YVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTTWVkaWFSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DU1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQ
YWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUNTU1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTUnVsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ1NTUnVsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Q1NTUnVsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1N0eWxlRGVjbGFyYXRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQ1NTU3R5bGVSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNT
U1N0eWxlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21DU1NWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYWx1ZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQ1NTVmFsdWVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNT
U1ZhbHVlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRp
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ZhcmlhYmxlc1J1bGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tQ1NTVmFyaWFibGVzUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2FudmFz
R3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2FudmFzR3JhZGllbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1BhdHRlcm4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2FudmFzUGl4ZWxBcnJh
eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNQaXhlbEFycmF5LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21DaGFyYWN0ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNoYXJhY3RlckRhdGEu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNsaXBib2FyZC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvbW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ29tbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ29uc29s
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Db25zb2xlLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21Db3VudGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvdW50ZXIuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbURPTUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tRE9NQ29yZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NSW1wbGVtZW50
YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NSW1wbGVtZW50YXRpb24uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbURPTVBhcnNlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21E
T01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVNlbGVjdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21ET01TZWxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURP
TVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01XaW5kb3cuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbURvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Eb2N1bWVudEZyYWdtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbURvY3VtZW50RnJhZ21lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURv
Y3VtZW50VHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Eb2N1bWVudFR5cGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUVudGl0eS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5UmVmZXJlbmNlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUVudGl0eVJlZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUV2ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21GaWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUZpbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUZpbGVMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUZpbGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQW5jaG9y
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEFwcGxldEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEFwcGxldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXJl
YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCUkVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTEJSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTEJhc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJhc2VGb250RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TEJsb2NrcXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQm9keUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJvZHlFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21IVE1MQnV0dG9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MQnV0dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENhbnZhc0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRExpc3RFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
RGl2RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRGl2RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxFbWJlZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEVtYmVk
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRmllbGRTZXRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRm9ybUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZvcm1FbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxG
cmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGcmFtZVNldEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MSFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEhlYWRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MSGVhZGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TEhlYWRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSHRtbEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEh0bWxFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MSUZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MSUZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEltYWdlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSW1hZ2VFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21IVE1MSW5wdXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJc0luZGV4RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSXNJbmRleEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMSUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTExJRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExhYmVsRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTGFiZWxFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21IVE1MTGVnZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MTGVnZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExpbmtFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMaW5rRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXJxdWVlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxNZW51RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21IVE1MTWVudUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZXRhRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxNb2RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT0xpc3RFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxPYmplY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxPYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT3B0R3JvdXBFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxPcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFBhcmFtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MUGFyYW1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUHJlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTFF1b3RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
UXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2NyaXB0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2NyaXB0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFNlbGVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTFNlbGVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTdHlsZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFN0eWxlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJs
ZUNlbGxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDb2xFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTFRhYmxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlUm93
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVSb3dFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MVGV4dEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGl0bGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUaXRsZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxVTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSGlzdG9yeS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IaXN0b3J5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21J
bWFnZURhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSW1hZ2VEYXRhLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUtleWJvYXJk
RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tS2V5Ym9hcmRFdmVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tTG9jYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTG9jYXRp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lc3NhZ2VFdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21NZXNzYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1pbWVUeXBlLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21NaW1lVHlwZUFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1vdXNlRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTW91c2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tTXV0YXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21NdXRhdGlvbkV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYW1lZE5vZGVNYXAuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYXZpZ2F0b3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTmF2aWdhdG9yLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21Ob2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5vZGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbU5vZGVGaWx0ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUZpbHRl
ci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbU5vZGVJdGVyYXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUxpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbU5vdGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5vdGF0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21PdmVyZmxvd0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bU92ZXJmbG93RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVBsdWdpbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVBsdWdpbkFy
cmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVBsdWdpbkFycmF5LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Qcm9ncmVz
c0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVByb2dyZXNzRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVJhbmdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21SYW5nZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21SYW5nZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUmVjdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21SZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TY3Jl
ZW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU2NyZWVuLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0eWxlU2hlZXQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0eWxlU2hlZXRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21UZXh0LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHRF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21UZXh0RXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVHJlZVdhbGtl
ci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVUlFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21VSUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRBbmltYXRpb25FdmVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRBbmltYXRpb25FdmVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJL
aXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdoZWVsRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2hlZWxFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tWE1MSHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVl
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTFNlcmlh
bGl6ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MU2VyaWFsaXplci5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Y
U0xUUHJvY2Vzc29yLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQXR0ci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQXR0ci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUJh
ckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUJhckluZm8uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21DREFUQVNlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU0NoYXJzZXRS
dWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NDaGFyc2V0UnVsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tQ1NTRm9udEZhY2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
Q1NTSW1wb3J0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTSW1wb3J0UnVs
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU01lZGlhUnVsZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTTWVkaWFSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1BhZ2VSdWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tQ1NTUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUnVs
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21DU1NSdWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUNTU1N0eWxlRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1N0
eWxlRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NTdHlsZVJ1bGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1N0eWxlUnVsZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUNTU1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUNTU1N0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NWYWx1ZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21DU1NWYWx1ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNT
U1ZhbHVlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhcmlhYmxlc0RlY2xh
cmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NWYXJpYWJsZXNEZWNsYXJh
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhcmlhYmxlc1J1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21DYW52YXNHcmFkaWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tQ2FudmFzR3JhZGllbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQYXR0
ZXJuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQYXR0ZXJuLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2FudmFzUGl4ZWxBcnJheS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2hh
cmFjdGVyRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2hhcmFjdGVyRGF0YS5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNsaXBib2FyZC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ29tbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ29tbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvbnNv
bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Db3VudGVyLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Db3VudGVyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NQ29y
ZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NQ29yZUV4Y2VwdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTUltcGxlbWVudGF0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01JbXBsZW1lbnRhdGlvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbURPTVBhcnNlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9N
UGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NU2VsZWN0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01TZWxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTVdpbmRv
dy5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3Vt
ZW50RnJhZ21lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50RnJhZ21l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Eb2N1bWVudFR5cGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FbnRpdHkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUVudGl0eS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUVudGl0eVJlZmVyZW5jZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRW50aXR5UmVmZXJlbmNlLmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnRFeGNlcHRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tRmlsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRmlsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUZpbGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBbmNob3JFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQW5jaG9yRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBcHBsZXRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MQXBwbGV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJSRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJSRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTEJhc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJh
c2VGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJhc2VGb250
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MQm9keUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MQnV0dG9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ2FudmFzRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTENhbnZhc0VsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MRExpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRExp
c3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpcmVjdG9yeUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhUTUxEaXZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTERvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRG9jdW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MRW1iZWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRW1i
ZWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEZpZWxkU2V0RWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRm9y
bUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxIUkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSGVhZEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxIZWFkaW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSHRtbEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSUZyYW1lRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElu
cHV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElucHV0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJc0luZGV4RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElzSW5kZXhFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTExJRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTExJRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMYWJlbEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMYWJlbEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTGVnZW5kRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21IVE1MTGlua0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxMaW5rRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNYXBFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWFwRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxNYXJxdWVlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTE1lbnVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWVu
dUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWV0YUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNZXRhRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhUTUxNb2RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPTGlz
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPTGlzdEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TE9wdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRpb25F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MUGFyYW1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MUGFyYW1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFBy
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQcmVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFF1b3RlRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MU2NyaXB0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxTZWxlY3RF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MU2VsZWN0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxTdHlsZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVD
b2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVDb2xFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGV4
dEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGV4dEFyZWFF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRpdGxlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhUTUxVTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxVTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IaXN0
b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IaXN0b3J5LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21J
bWFnZURhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21KYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tS2V5Ym9hcmRFdmVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tS2V5Ym9hcmRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUxv
Y2F0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Mb2NhdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbU1lZGlhTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTWVzc2FnZUV2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NZXNzYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTWlt
ZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NaW1lVHlwZUFycmF5LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tTW91c2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTW91c2VF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU11dGF0aW9uRXZlbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbU11dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21OYW1lZE5vZGVNYXAuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5hbWVk
Tm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5hdmlnYXRvci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tTmF2aWdhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbU5vZGVGaWx0ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Ob2RlSXRlcmF0b3IuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vZGVJdGVyYXRvci5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Ob2Rl
TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vdGF0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21Ob3RhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU92
ZXJmbG93RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU92ZXJmbG93RXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21QbHVnaW4uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbVBsdWdpbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbkFycmF5
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUHJvZ3Jl
c3NFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdl
RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21SYW5nZUV4Y2VwdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbVJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TY3JlZW4uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0eWxlU2hlZXQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21UZXh0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UZXh0LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21U
ZXh0RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UcmVlV2Fsa2VyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tVUlFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tVUlFdmVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21XZWJLaXRBbmltYXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2hl
ZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2hlZWxFdmVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1ZXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhN
TEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0
cFJlcXVlc3RVcGxvYWQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1
ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MU2VyaWFsaXplci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MU2VyaWFsaXplci5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbVhTTFRQcm9jZXNzb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bVhTTFRQcm9jZXNzb3IuaCAKIAorI0Rlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmNwcAorI0Rlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmggCisKIElETF9CSU5ESU5HUyArPSAgXAogCVdlYkNvcmUvY3NzL0NvdW50ZXIuaWRsIFwK
IAlXZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXApAQCAtNzAxLDYgKzEyODQsMTQgQEAK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIFwKIAlXZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJp
bmdTb3VyY2VQcm92aWRlci5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbURPTU9iamVj
dC5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmggXAorCVdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRU
YXJnZXROb2RlLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0
Tm9kZS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oIFwKIAlXZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgXAogCVdlYkNvcmUvYnJpZGdl
L05QX2pzb2JqZWN0LmggXAogCVdlYkNvcmUvYnJpZGdlL2MvY19jbGFzcy5jcHAgXApAQCAtMjAx
MCw3ICsyNjAxLDkgQEAKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlM9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAotCURl
cml2ZWRTb3VyY2VzL0pTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAKKwlEZXJpdmVkU291cmNlcy9K
U0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NQXBwbGljYXRpb25D
YWNoZS5jcHAKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9E
T01BcHBsaWNhdGlvbkNhY2hlLmlkbApAQCAtMjA2Myw3ICsyNjU2LDI3IEBACiAJRGVyaXZlZFNv
dXJjZXMvSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxS
ZXN1bHRTZXRSb3dMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uY3Bw
IFwKLQlEZXJpdmVkU291cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmgKKwlEZXJpdmVkU291cmNlcy9K
U1NRTFRyYW5zYWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21EYXRhYmFzZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FM
RXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNRTFJlc3VsdFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxSZXN1
bHRTZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMVHJh
bnNhY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21EYXRhYmFzZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21TUUxFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMRXJyb3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJl
c3VsdFNldFJvd0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNl
dFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxUcmFuc2FjdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMVHJhbnNhY3Rpb24uaAogCiBJRExfQklORElO
R1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXApAQCAtMjE0Myw3ICsyNzU2
LDE1IEBACiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
SlNTdG9yYWdlLmggXAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmNwcCBcCi0JRGVy
aXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQuaAorCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0b3JhZ2VFdmVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TdG9yYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TdG9yYWdlLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21TdG9yYWdlRXZlbnQuaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlLmlkbCBcCkBAIC0yMjI1LDcgKzI4NDYsMzUgQEAKIAlEZXJpdmVk
U291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suY3BwIFwKLQlEZXJpdmVkU291cmNl
cy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBdWRpb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1lZGlh
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWVkaWFFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFZp
ZGVvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVmlkZW9FbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21NZWRpYUVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRpbWVSYW5nZXMuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tVGltZVJhbmdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Vm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVZvaWRDYWxsYmFjay5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
TWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFNvdXJjZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lZGlhRXJyb3Iu
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UaW1lUmFuZ2VzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tVm9p
ZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Wb2lkQ2FsbGJhY2suaAog
CiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbCBc
CkBAIC0yMjg0LDcgKzI5MzMsMjcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVzdWx0LmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0aFJlc3VsdC5oIFwKIAlEZXJpdmVkU291cmNlcy9Y
UGF0aEdyYW1tYXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaAorCURlcml2
ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhFdmFs
dWF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4cHJlc3Npb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhFeHByZXNzaW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBh
dGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aFJlc3VsdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aFJlc3VsdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV2
YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoRXhjZXB0aW9uLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbVhQYXRoRXhwcmVzc2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tWFBhdGhFeHByZXNzaW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhOU1Jl
c29sdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aE5TUmVzb2x2ZXIuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tWFBhdGhSZXN1bHQuaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUv
eG1sL1hQYXRoRXZhbHVhdG9yLmlkbCBcCkBAIC0yNjQ5LDYgKzMzMTgsMjczIEBACiAJRGVyaXZl
ZFNvdXJjZXMvU1ZHTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTGlua05hbWVzLmNwcAog
Citub3QteWV0OgorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdBRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQWx0
R2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FsdEdseXBoRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVDb2xvckVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRl
ZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQW5nbGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Fu
aW1hdGVkRW51bWVyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkSW50ZWdlci5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZExlbmd0aExpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVyLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdBbmltYXRlZE51bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
ZWROdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFByZXNlcnZl
QXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFJlY3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRSZWN0LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdB
bmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zv
cm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdDaXJjbGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NpcmNs
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NsaXBQYXRoRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDbGlwUGF0aEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbG9yLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQ3Vyc29yRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdDdXJzb3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRGVmc0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRGVmc0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0Rlc2NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEb2N1bWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFuY2UuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHRWxlbWVudEluc3RhbmNlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdF
bGVtZW50SW5zdGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0VsZW1lbnRJ
bnN0YW5jZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFj
dG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGxpcHNlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGxpcHNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0V4Y2VwdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVuZEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHRkVCbGVuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUNvbXBvbmVu
dFRyYW5zZmVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUNvbXBvbmVu
dFRyYW5zZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVDb21wb3NpdGVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29tcG9zaXRlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGbG9vZEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0FFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGRUZ1bmNCRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZ1
bmNCRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jR0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVHYXVzc2lhbkJsdXJFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUltYWdlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdGRUltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVNZXJn
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFTWVyZ2VOb2RlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGRU9mZnNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFUG9p
bnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVQb2ludExpZ2h0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVTcG90TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdGRVRpbGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFVHVyYnVsZW5jZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRmlsdGVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdGaWx0ZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdG
b250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0ZvbnRGYWNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
Rm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRG
YWNlRm9ybWF0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VOYW1l
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZU5hbWVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVNyY0VsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VTcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRm9udEZhY2VVcmlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb3JlaWdu
T2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ds
eXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdHbHlwaEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0dyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdJbWFnZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xlbmd0aC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xlbmd0aExpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHTGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGluZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hcmtlckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWFza0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWFza0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR01hdHJpeC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdN
YXRyaXguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01ldGFkYXRhRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdNZXRhZGF0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTnVtYmVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR051bWJlci5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdOdW1iZXJM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWludC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdQYWludC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1BhdGhTZWcuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNl
Zy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0FyY0Ficy5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdBcmNS
ZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDbG9zZVBhdGguY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQ
YXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQ
YXRoU2VnTGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRv
SG9yaXpvbnRhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRv
SG9yaXpvbnRhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9SZWwu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQ
YXRoU2VnTW92ZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXR0ZXJuRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXR0ZXJuRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHUG9pbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9p
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvaW50TGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQb2ludExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvbHln
b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvbHlnb25FbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2x5bGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHUG9seWxpbmVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1ByZXNl
cnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1JlbmRlcmluZ0ludGVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdS
ZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NWR0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU1ZHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTY3Jp
cHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTZXRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1N0b3BFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0b3BFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTdHJpbmdMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1N0cmluZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0eWxl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTdHlsZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N3aXRjaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHU3dpdGNoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU3ltYm9s
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTeW1ib2xFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVFNwYW5FbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RTcGFuRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
VGV4dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdUZXh0UGF0aEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGl0bGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RpdGxlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHVHJhbnNmb3JtLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R1RyYW5zZm9ybS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVHJhbnNmb3JtTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUcmFuc2Zvcm1MaXN0LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdVbml0VHlwZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVW5pdFR5
cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVc2VFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1VzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Zp
ZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1ZpZXdFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdab29tRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdmcvRWxl
bWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaWRsIFwKQEAg
LTMyNjUsNiArNDIwMSw3IEBACiAjIFNWRyB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1lcyAobmVlZCB0
byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBhcmUgZW5h
YmxlZCkKIERlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxl
bWVudEZhY3RvcnkuY3BwOwogRGVyaXZlZFNvdXJjZXMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3Rv
cnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKK0Rlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdF
bGVtZW50RmFjdG9yeS5jcHAKIAogaWYgU1ZHX0ZMQUdTCiBEZXJpdmVkU291cmNlcy9TVkdFbGVt
ZW50RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9z
dmcvc3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbgpAQCAtMzM4Niw2ICs0MzIz
LDE1IEBACiAgICAgJChXZWJDb3JlKS94bWwgXAogICAgICQoV2ViQ29yZSkvcGx1Z2lucwogCitE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbSUuaDsKKworRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb20lLmNwcDogRGVyaXZlZFNvdXJjZXMvZ2RvbSUuY3BwOworCitE
ZXJpdmVkU291cmNlcy9nZG9tJS5oOiBEZXJpdmVkU291cmNlcy9nZG9tJS5jcHA7CisKK0Rlcml2
ZWRTb3VyY2VzL2dkb20lLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKwkkKFBFUkwpIC1JJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5l
cmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9kb20gLS1pbmNsdWRlICQoV2Vi
Q29yZSkvaHRtbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9jc3MgLS1pbmNsdWRlICQoV2ViQ29yZSkv
cGFnZSAtLWluY2x1ZGUgJChXZWJDb3JlKS94bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkvc3ZnIC0t
b3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQpIiAtLWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKIERlcml2ZWRTb3VyY2VzL0pTJS5o
OiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOiAlLmlk
bCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTM0MDEsNiArNDM0Nyw3IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0
ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBt
IFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1aXJrcy5jc3MgXAog
CVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBcCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vcHJpdmdkb21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9wcml2Z2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vcHJpdmdkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0
b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBA
YXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCisjaW5jbHVkZSAiZ2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkdET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIgorCitleHRlcm4gIkMiIHsKKworR19E
RUZJTkVfVFlQRShHZG9tRE9NT2JqZWN0LCBnZG9tX2RvbV9vYmplY3QsIEdfVFlQRV9PQkpFQ1Qp
OworCitzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIHsKKyAgICAgR0RPTU9iamVjdCAqbV9u
b2RlOworfTsgIAorCisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShvYmopIChH
X1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNULCBH
ZG9tRE9NT2JqZWN0UHJpdmF0ZSkpCisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0
ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0ICogaXRlbSkKK3sKKyAgICBHZG9t
RE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1
ZXN0KTsKKyAgICBwcml2LT5tX25vZGUgPSBpdGVtOworICAgIC8qcHJpdi0+bV9ub2RlLT5pbXBs
KCktPnJlZigpOyovCit9CisKK0dET01PYmplY3QgKgorZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2
YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QpCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUq
IHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmV0dXJu
IHByaXYtPm1fbm9kZTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2ZpbmFsaXpl
KEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0KiByZXF1ZXN0ID0gR0RPTV9E
T01fT0JKRUNUKG9iamVjdCk7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSByZXF1
ZXN0LT5wcml2OworICAgIAorICAgIC8qcHJpdi0+bV9ub2RlLT5pbXBsKCktPmRlcmVmKCk7Ki8K
KwlkZWxldGUgcHJpdi0+bV9ub2RlOyAvKiBjYWxscyBtX2ltcGwtPmRlcmVmKCkgKi8KKworICAg
IEdfT0JKRUNUX0NMQVNTKGdkb21fZG9tX29iamVjdF9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShv
YmplY3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfY2xhc3NfaW5pdChHZG9t
RE9NT2JqZWN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBHX09CSkVDVF9DTEFTUyhyZXF1
ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdkb21fZG9tX29iamVjdF9maW5hbGl6ZTsKKyAgICAKKyAg
ICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoR2RvbURPTU9i
amVjdFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2luaXQoR2Rv
bURPTU9iamVjdCogcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9
IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2
ID0gcHJpdjsKK30gICAKKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL2dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9nZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR2Rv
bURPTU9iamVjdF9IX18KKyNkZWZpbmUgX19HZG9tRE9NT2JqZWN0X0hfXworI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+CisKK0dfQkVHSU5f
REVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOworCisj
ZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdkb21fZG9tX29iamVjdF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21E
T01PYmplY3QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21E
T01PYmplY3RDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVChvYmopICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCkp
CisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19D
TEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01f
RE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkKKwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIEdkb21ET01PYmplY3RQcml2YXRlOworCitz
dHJ1Y3QgX0dkb21ET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworCisg
ICAgR2RvbURPTU9iamVjdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21ET01PYmpl
Y3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9H
RE9NX0FQSSBHVHlwZQorZ2RvbV9kb21fb2JqZWN0X2dldF90eXBlICh2b2lkKTsKKworV0VCS0lU
X0dET01fQVBJIEdkb21ET01PYmplY3QgKgorZ2RvbV9kb21fb2JqZWN0X25ldyAgICAgICh2b2lk
KTsKKworV0VCS0lUX0dET01fQVBJIHZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmpl
Y3QgKEdkb21ET01PYmplY3QgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19H
ZG9tRE9NT2JqZWN0X0hfXyAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0LmgJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACisjaWZuZGVmIF9fRE9NT2JqZWN0X2hfXworI2RlZmlu
ZSBfX0RPTU9iamVjdF9oX18KKworLy8gbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHRE9N
T2JqZWN0IHsKK3B1YmxpYzoKKwl2aXJ0dWFsIH5HRE9NT2JqZWN0KCkge30KK307CisKKy8vIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vRE9NT2JqZWN0SWZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
RE9NT2JqZWN0SWZhY2UuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9E
T01PYmplY3RJZmFjZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIF9f
TU9USU9OX01PVkVBQkxFX0hfXworI2RlZmluZSBfX01PVElPTl9NT1ZFQUJMRV9IX18KK0dfQkVH
SU5fREVDTFMKKyNkZWZpbmUgTU9USU9OX1RZUEVfTU9WRUFCTEUgICAgICAgICAgICAobW90aW9u
X21vdmVhYmxlX2dldF90eXBlICh2b2lkKSkKKyNkZWZpbmUgTU9USU9OX01PVkVBQkxFKG9iaikg
ICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIE1PVElPTl9UWVBF
X01PVkVBQkxFLCBNb3Rpb25Nb3ZlYWJsZSkKKyNkZWZpbmUgTU9USU9OX01PVkVBQkxFX0NMQVNT
KGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChrbGFzcyksIE1PVElPTl9UWVBF
X01PVkVBQkxFLCBNb3Rpb25Nb3ZlYWJsZUNsYXNzKSkKKyNkZWZpbmUgTU9USU9OX0lTX01PVkVB
QkxFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmopLCBNT1RJ
T05fVFlQRV9NT1ZFQUJMRSkpCisjZGVmaW5lIE1PVElPTl9JU19NT1ZFQUJMRV9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoa2xhc3MpLCBNT1RJT05fVFlQRV9NT1ZFQUJM
RSkpCisjZGVmaW5lIE1PVElPTl9NT1ZFQUJMRV9HRVRfSUZBQ0Uob2JqKSAgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfSU5URVJGQUNFICgob2JqKSwgTU9USU9OX1RZUEVfTU9WRUFCTEUsIE1vdGlvbk1v
dmVhYmxlQ2xhc3MpKQordHlwZWRlZiBzdHJ1Y3QgX01vdGlvbk1vdmVhYmxlIE1vdGlvbk1vdmVh
YmxlOwordHlwZWRlZiBzdHJ1Y3QgX01vdGlvbk1vdmVhYmxlSWZhY2UgTW90aW9uTW92ZWFibGVJ
ZmFjZTsKK3N0cnVjdCBfTW90aW9uTW92ZWFibGVJZmFjZSB7CisJR1R5cGVJbnRlcmZhY2UgcGFy
ZW50X2lmYWNlOworCXZvaWQgKCptb3ZlKSAoTW90aW9uTW92ZWFibGVJZmFjZSAqaWZhY2UpOwor
fTsKK0dUeXBlIG1vdGlvbl9tb3ZlYWJsZV9nZXRfdHlwZSAodm9pZCk7Cit2b2lkIG1vdGlvbl9t
b3ZlYWJsZV9tb3ZlIChNb3Rpb25Nb3ZlYWJsZSAqc2VsZik7CitHX0VORF9ERUNMUworI2VuZGlm
IC8qIF9fTU9USU9OX01PVkVBQkxFX0hfXyAqLwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L3ByaXZnZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L3ByaXZnZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vcHJpdmdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2lmbmRlZiBf
X0dET01ET01PYmplY3RfSF9fX1BSSVZfCisjZGVmaW5lIF9fR0RPTURPTU9iamVjdF9IX19fUFJJ
Vl8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImdkb21ET01PYmplY3QuaCIK
K0dfQkVHSU5fREVDTFMKKworY2xhc3MgR0RPTU9iamVjdDsKK1dFQktJVF9HRE9NX0FQSSBHRE9N
T2JqZWN0KgorZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVl
c3QpOworCitXRUJLSVRfR0RPTV9BUEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRl
KEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QqIGl0ZW0pOworCitHX0VORF9ERUNM
UworI2VuZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXRO
b2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbUV2ZW50VGFy
Z2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbUV2
ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2Ns
Lm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5j
bHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IgorI2luY2x1ZGUgInByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2xpYi1v
YmplY3QuaCIKKworY2xhc3MgR1N0cmluZ0NvbnZlcnQgeworICAgIHB1YmxpYzoKKyAgICBjb25z
dCBnY2hhciAqbV9zdHI7CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0
JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdD
b252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAo
cy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorfTsKKworZXh0ZXJuICJDIiB7CisKKyNkZWZp
bmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cikKKworR2RvbUV2
ZW50VGFyZ2V0Tm9kZSogZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9uZXcodm9pZCkKK3sKKyAgICBH
ZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERShnX29i
amVjdF9uZXcoR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBOVUxMKSk7CisgICAgLy9wcml2
LT5ldmVudF90YXJnZXRfbm9kZSA9IGV2ZW50X3RhcmdldF9ub2RlOyAKKyAgICAKKyAgICByZXR1
cm4gcmVxdWVzdDsKK30KKwordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50
X3RhcmdldF9ub2RlIChHZG9tRXZlbnRUYXJnZXROb2RlICp0aGl6KQoreworICAgIGdfcmV0dXJu
X2lmX2ZhaWwgKHRoaXopOworCS8qCisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRl
bSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgV2ViQ29y
ZTo6U3RyaW5nIF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5n
KGV2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RXZlbnRUYXJnZXRO
b2RlKF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKwkqLworfQorCit9IC8qIGV4dGVy
biAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2ludGdkb21FdmVudFRhcmdl
dE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbUV2ZW50
VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2ludGdk
b21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxr
Y2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2lmbmRlZiBfX0dE
T01FdmVudFRhcmdldE5vZGVfSF9fX0lOVF8KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXROb2Rl
X0hfX19JTlRfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJpbnRnZG9tTm9k
ZS5oIgorR19CRUdJTl9ERUNMUworCitjbGFzcyBHRE9NRXZlbnRUYXJnZXROb2RlIDogcHVibGlj
IEdET01Ob2RlIHsKKworcHVibGljOgorICAgIEdET01FdmVudFRhcmdldE5vZGUoUGFzc1JlZlB0
cjxXZWJDb3JlOjpOb2RlPiBpbXBsKSA6IEdET01Ob2RlKGltcGwpIHt9Cit9OworCisKK0dfRU5E
X0RFQ0xTCisjZW5kaWYKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRXZl
bnRUYXJnZXROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJp
dmdkb21FdmVudFRhcmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisK
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVk
ZSAiTm9kZS5oIgorI2luY2x1ZGUgImdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJw
cml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgImludGdkb21FdmVudFRhcmdldE5v
ZGUuaCIKKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFr
ZSB0aGlzIG9wdGlvbmFsICovCisKK1dlYkNvcmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRf
bm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0KQoreworICAgIEdE
T01FdmVudFRhcmdldE5vZGUgKnJlczsKKwlyZXMgPSBzdGF0aWNfY2FzdDxHRE9NRXZlbnRUYXJn
ZXROb2RlKj4oZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1
ZXN0KSkpOworCXJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihyZXMtPmlt
cGwoKSk7Cit9CisKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbUV2ZW50VGFy
Z2V0Tm9kZSwgZ2RvbV9ldmVudF90YXJnZXRfbm9kZSwgR0RPTV9UWVBFX05PREUpOworCisvKgor
c3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6
RXZlbnRUYXJnZXROb2RlICppdGVtOworfTsgIAorKi8KKworI2RlZmluZSBHRE9NX0VWRU5UX1RB
UkdFVF9OT0RFX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgo
b2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlUHJp
dmF0ZSkpCisKKy8qCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdk
b21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0
ZW0pCit7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5U
X1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPml0ZW0gPSBpdGVt
OworfQorKi8KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZShH
T2JqZWN0KiBvYmplY3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0ID0g
R0RPTV9FVkVOVF9UQVJHRVRfTk9ERShvYmplY3QpOworICAgIEdkb21FdmVudFRhcmdldE5vZGVQ
cml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworICAgIAorICAgIEdfT0JKRUNUX0NMQVNT
KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsK
K30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9jbGFzc19pbml0KEdkb21F
dmVudFRhcmdldE5vZGVDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNT
KHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6
ZTsKKyAgICAKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNp
emVvZihHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkpOyovCit9CisKK3N0YXRpYyB2b2lkIGdk
b21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdChHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0KQor
eworICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RB
UkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2
OyovCit9ICAgCisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxh
bHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKwor
I2lmbmRlZiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fCisjZGVmaW5lIF9fR2RvbUV2ZW50VGFy
Z2V0Tm9kZV9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC9n
ZG9tZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZl
bnRUYXJnZXROb2RlIEdkb21FdmVudFRhcmdldE5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2
ZW50VGFyZ2V0Tm9kZUNsYXNzIEdkb21FdmVudFRhcmdldE5vZGVDbGFzczsKKworI2RlZmluZSBH
RE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRf
bm9kZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9FVkVO
VF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZSkpCisjZGVmaW5lIEdET01fRVZFTlRf
VEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xh
c3MpKQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9E
RSkpCisjZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RF
KSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQ
RV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUs
IEdkb21FdmVudFRhcmdldE5vZGVDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZTsKKworI2luY2x1ZGUg
Imdkb21Ob2RlLmgiCisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSB7CisgICAgR2RvbU5v
ZGUgcGFyZW50X2luc3RhbmNlOworCisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgKnBy
aXY7Cit9OworCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyB7CisgICAgR2RvbU5v
ZGVDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfR0RPTV9BUEkgR1R5cGUKK2dkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfR0RPTV9BUEkgR2Rv
bUV2ZW50VGFyZ2V0Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX25ldyAgICAgICh2b2lk
KTsKKworV0VCS0lUX0dET01fQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9l
dmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeik7CisKK0dfRU5EX0RF
Q0xTCisKKyNlbmRpZiAvKiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fICovCisKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2Rl
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRXZlbnRUYXJnZXROb2Rl
X0hfX19QUklWXworI2RlZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX1BSSVZfCisjaW5j
bHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJwcml2Z2RvbU5vZGUuaCIKK2NsYXNzIFdl
YkNvcmU6Ok5vZGU7CisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIEdkb21F
dmVudFRhcmdldE5vZGU7CisKK1dFQktJVF9HRE9NX0FQSSBXZWJDb3JlOjpOb2RlICoKK2dkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVz
dCk7CisKKy8qV0VCS0lUX0dET01fQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfc2V0
X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCwgV2ViQ29yZTo6Tm9kZSAqIGl0
ZW0pOyovCisKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbURPTU9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21ET01PYmpl
Y3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21ET01PYmpl
Y3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgImdkb21E
T01PYmplY3QuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorCitleHRlcm4gIkMiIHsKKwor
R2RvbURPTU9iamVjdCogZ2RvbV9kb21fb2JqZWN0X25ldyh2b2lkKQoreworICAgIEdkb21ET01P
YmplY3QqIHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1QoZ19vYmplY3RfbmV3KEdET01fVFlQRV9E
T01fT0JKRUNULCBOVUxMKSk7CisgICAgLy9wcml2LT5kb21fb2JqZWN0ID0gZG9tX29iamVjdDsg
CisgICAgCisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9p
bml0X2RvbV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbCAodGhpeik7CisJLyoKKyAgICBXZWJDb3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9k
b21fb2JqZWN0X2dldF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21f
b2JqZWN0X3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOwor
ICAgIGl0ZW0tPmluaXRET01PYmplY3QoX2dfZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30K
KworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRn
ZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2ludGdk
b21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRn
ZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJHRE9NT2JqZWN0
LmgiCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVj
dC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQ2MCBAQAorIwor
IyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAor
IyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFja2FnZSBDb2RlR2VuZXJhdG9yR09i
amVjdDsKKworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVzCitteSAkbGljZW5jZVRlbXBsYXRl
ID0gPDwgIkVPRiI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xcQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBU
b2tlciA8YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4K
KyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215ICVoZHJJbmNsdWRlcyA9ICgp
OworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkgJWltcGxUeXBlZGVmcyA9ICgpOworCisj
IERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7
CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJhdG9yID0gc2hpZnQ7
CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVj
dCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBmaW5pc2gKK3sKKyAgICBteSAk
b2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0cnVjdAorc3ViIEdl
bmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRh
Tm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAgICBteSAkbmFtZSA9
ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxuIjsKKworICAgICRvYmplY3Qt
PkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdyaXRlIGNoYW5nZXMKKyAgICBteSAkZm5h
bWUgPSAiZ2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXplKCRuYW1lKTsKKyAgICAkZm5hbWUgPX4g
cy9fLy9nOworICAgICRvYmplY3QtPldyaXRlRGF0YSgkZm5hbWUpOworfQorCisjIFBhcmFtczog
J2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVsZQoreworICAgIG15ICRvYmpl
Y3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICRtb2R1bGUgPSAk
ZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5cGUKK3sKKyAgICBteSAkY2xh
c3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxpemUoJGNsYXNzTmFtZSkpCit9
CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
KworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURPTU9iamVjdCIgaWYgQHskZGF0YU5v
ZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9tIiAuICRjb2RlR2VuZXJhdG9yLT5T
dHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOworfQorc3ViIEdldFBhcmVudEdPYmpU
eXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAg
I3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBp
ZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICBy
ZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEg
MDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2JqVHlwZSgkY29kZUdlbmVyYXRv
ci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Cit9CisKKworIyBBbGdvcml0
aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgY2FtZWxpemUKK3sKKyAg
ICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsgdWNmaXJzdCAkXyB9IHNwbGl0KC8o
Pzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7Cit9CisKKyMgQWxnb3JpdGhtIHRh
a2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGRlY2FtZWxpemUKK3sKKyAgICBt
eSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8pKFtBLVpdKikoW0EtWl0pKFth
LXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAgICAgICBteSAoJHAwLCRw
MSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBteSAkdCA9ICRwMCB8fCAk
ZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/ICIke3AxfV8kcDIkcDMi
IDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAgfWdlOworICAgICRzOwor
fQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9y
LT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gImdkb20kbmFtZSI7Cit9CisKK3N1
YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3Ry
aXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitzdWIgR2V0
R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9
IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFz
c05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImludCI7Cisg
ICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAiIiBp
ZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImNoYXIi
OworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJu
ICIiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQi
OworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAg
ICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgICAgIHJl
dHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gIiIg
aWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAiUmFuZ2UuaCIgaWYg
JHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb21DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCI7CisgICAgICAgIHJldHVybiAi
IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgY2hhciI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlw
ZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKyAgICAgICAg
cmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAg
cmV0dXJuICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7
CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiZmxvYXQiOwor
CisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOwor
CisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgInZvaWQiOworCisg
ICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1cm5zIDEgaWYgd2UgbmVlZCB0byBjcmVh
dGUgYSBnb2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSByZXR1cm4gcmVzdWx0CitzdWIgSXNHRE9N
Q2xhc3NUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBH
ZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01U
aW1lU3RhbXAiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAg
ICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZG91
YmxlIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgICAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImludCI7CisgICAg
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiUkdCQ29sb3Ii
OyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gMTsKK30KKworc3ViIEdldFByb3BHVHlwZQor
eworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5
cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAg
IHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0dXJuICJub3R5ZXRz
dXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gImRvdWJsZSIg
aWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJib29sZWFuIiBpZiAkdHlwZSBlcSAi
Ym9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgcmV0
dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBl
IGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAg
ICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICJpbnQi
IGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAidWludCIgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsK
KyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICBy
ZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNs
YXNzIHdyYXBwZXIKKworICAgIHJldHVybiAiZ3R5cGUiOworfQorCitzdWIgR2V0R1R5cGUKK3sK
KyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgk
dHlwZSk7CisgICAgICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFtZSgkdHlwZSkp
OworCisgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqIiBpZiAkdHlwZSBlcSAi
RXZlbnRUYXJnZXQiOworICAgICAgICByZXR1cm4gImNvbnN0IGdjaGFyICoiIGlmICR0eXBlIGVx
ICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gImdmbG9hdCAiIGlmICR0eXBlIGVxICJmbG9h
dCI7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVIb3cgIiBpZiAkdHlw
ZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJldHVybiAiZ2RvdWJsZSAiIGlmICR0eXBlIGVx
ICJkb3VibGUiOworICAgICAgICByZXR1cm4gImdib29sZWFuICIgaWYgJHR5cGUgZXEgImJvb2xl
YW4iOworICAgICAgICByZXR1cm4gImdjaGFyICIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAg
ICByZXR1cm4gImdsb25nICIgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4gImdz
aG9ydCAiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgICAgIHJldHVybiAiZ3VjaGFyICIgaWYg
JHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJuICJndWludCAiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAiZ2ludCAiIGlmICR0eXBlIGVxICJpbnQiOworICAg
ICAgICByZXR1cm4gImd1aW50ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAg
IHJldHVybiAiZ3Vsb25nICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICBy
ZXR1cm4gImd1aW50NjQgIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAg
ICAgcmV0dXJuICJndXNob3J0ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAg
ICAgcmV0dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBE
T00gY2xhc3Mgd3JhcHBlcgorCisgICAgICAgIHJldHVybiAidm9pZCIgaWYgJHR5cGUgZXEgInZv
aWQiOworCisgICAgcmV0dXJuICIkbmFtZSAqIjsKK30KKworc3ViIGdldEluY0hkcgoreworICAg
IG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaW5jbHVkZUhkciA9IEdldEdJbmNsdWRlSGRy
KCR0eXBlKTsKKyAgICBpZiAoJGluY2x1ZGVIZHIpIHsKKyAgICAgICAgaWYgKCR0eXBlIGVxICJF
dmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgIHJldHVybiAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IjsKKyAgICAgICAgfQorICAgICAgICBlbHNpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAg
ICAgICAgICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisg
ICAgICAgICAgICByZXR1cm4gImdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCI7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gJGluY2x1ZGVIZHI7CisgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgYWRkUHJvcEluY0hkcgoreworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBp
ZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAg
ICAgICAgaWYgKElzR0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRoZHJQcm9w
SW5jbHVkZXN7InByaXYiLiRoZHJ9ID0gMTsKKyAgICAgICAgICAgICRoZHJQcm9wSW5jbHVkZXN7
ImludCIuJGhkcn0gPSAxOworICAgICAgICB9CisgICAgfQorCit9CisKK3N1YiBhZGRJbmNIZHIK
K3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlw
ZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGhkckluY2x1ZGVzeyRoZHJ9ID0g
MTsKKyAgICB9CisKK30KKworc3ViIGFkZEluY0JvZHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIp
IHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgfQorfQorCitzdWIgR2V0
UHJpdkZuCit7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkbGNhc2Vf
aWZhY2VuYW1lID0gc2hpZnQ7CisgICAgbXkgJHJlcyA9IHNoaWZ0OworICAgIG15ICRwYXJtID0g
c2hpZnQ7CisKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAg
ICAgICByZXR1cm4gIldlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqICRyZXMgPSBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUqPihnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9w
cml2YXRlKHNlbGYpKTsiOworICAgIH0KKyAgICByZXR1cm4gIldlYkNvcmU6OiR7aW50ZXJmYWNl
TmFtZX0gKiAkcmVzID0gKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgkcGFybSkpOyI7
Cit9CisKK3N1YiBza2lwUHJvcFRlbXBvcmFyaWx5Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsK
KyAgICBteSAkcHJvcF90eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXAgTWVkaWFMaXN0CisgICAg
aWYgKCRwcm9wX3R5cGUgZXEgInN0eWxlc2hlZXRzOjpNZWRpYUxpc3QiKSB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBFdmVudFRhcmdldAorICAgIGlmICgkcHJvcF90
eXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAg
IyBza2lwIENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkNT
U1ZhcmlhYmxlc0RlY2xhcmF0aW9uIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICBpZiAoJHByb3BfdHlwZSBl
cSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisg
ICAgIyBza2lwIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCisgICAgaWYgKCRwcm9wX3R5cGUg
ZXEgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIikgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICAjIHNraXAgRXZlbnRMaXN0ZW5lcgorICAgIGlmICgkcHJvcF90eXBlIGVxICJF
dmVudExpc3RlbmVyIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAg
RE9NV2luZG93CisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAg
cmV0dXJuIDE7CisgICAgfQorCisgICAgIyBza2lwIENvbnN0cnVjdG9ycyAod2hhdGV2ZXIgdGhl
eSBhcmUpIGZvciBub3cuCisgICAgaWYgKCRwcm9wX3R5cGUgPX4gL0NvbnN0cnVjdG9yJC8pIHsK
KyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBjYW52YXMyZC4uLi4KKyAgICBpZiAo
JHByb3BfdHlwZSBlcSAiY3VzdG9tIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBpZiAoJHByb3BfdHlwZSBlcSAiQXJyYXkiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgIGlmICgkcHJvcF90eXBlIGVxICJET01UaW1lU3RhbXAiKSB7CisgICAgICAgIHJldHVy
biAxOworICAgIH0KKworICAgICMgVE9ETzogU1ZHCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5J
c1BvZFR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkdHlw
ZSkpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisjIEdl
bmVyYXRlIGhlYWRlciBhbmQgaW1wbAorc3ViIEdlbmVyYXRlCit7CisgICAgbXkgJG9iamVjdCA9
IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgbXkgJGhhc0xlZ2FjeVBh
cmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9Owor
ICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMDsKKyAgICBt
eSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVudDsKKyAgICBt
eSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRkYXRhTm9kZSk7CisgICAg
bXkgJHBhcmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUoJGRhdGFOb2RlKTsKKyAgICBt
eSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkY2xhc3NOYW1lID0g
R2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkaGRyTmFtZSA9IEdldEhkck5h
bWUoJGludGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1wbCBoZWFkZXIg
dGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOwor
ICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNsdWRlc3siJGhkck5hbWUu
aCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJwcml2JHtoZHJOYW1lfS5oIn0gPSAxOworCisg
ICAgbXkgJHBhcmVudEludGVyZmFjZU5hbWUgPSAiRE9NT2JqZWN0IjsKKyAgICBteSAkcGFyZW50
R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICBteSAkcGFyZW50SGRyTmFtZSA9ICJnZG9t
RE9NT2JqZWN0IjsKKyAgICBpZiAoJHBhcmVudENsYXNzTmFtZSBuZSAiR09iamVjdCIpCisgICAg
eworICAgICAgICAkcGFyZW50SW50ZXJmYWNlTmFtZSA9IHN1YnN0cigkcGFyZW50Q2xhc3NOYW1l
LCA0KTsKKyAgICAgICAgaWYgKCRwYXJlbnRJbnRlcmZhY2VOYW1lIG5lICJET01PYmplY3QiKSB7
CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NIi5zdWJzdHIoJHBhcmVudENs
YXNzTmFtZSwgNCk7CisgICAgICAgICAgICAkcGFyZW50SGRyTmFtZSA9IEdldEhkck5hbWUoJHBh
cmVudEludGVyZmFjZU5hbWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgewor
ICAgICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTU9iamVjdCI7CisgICAgICAgIH0K
KyAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAg
ICAkaW1wbEluY2x1ZGVzeyJwcml2JHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAk
aGRySW5jbHVkZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgIyRoZHJJbmNs
dWRlc3sicHJpdiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMDsKKyAgICB9CisKKyAgICAjIFhYWCBU
T0RPOiBtYWtlIHRoaXMgb3B0aW9uYWwgb3IgaW4gYSBoZWFkZXIgZmlsZS4gIG9yIGZpbmQgYSBi
ZXR0ZXIgd2F5LgorICAgIG15ICRzdHJpbmdDb252ZXJ0ID0gPDwgIkVPRiI7CitjbGFzcyBHU3Ry
aW5nQ29udmVydCB7CisgICAgcHVibGljOgorICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAgICBH
U3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1
cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6S1VSTCBj
b25zdCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7IH0K
KyAgICBHU3RyaW5nQ29udmVydChjb25zdCBLSlM6OlVTdHJpbmcgJiBzKSB7IG1fc3RyID0gZ19z
dHJkdXAocy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJD
b3JlOjpBdG9taWNTdHJpbmcgY29uc3QmcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7IH0KK307CisKK0VPRgorCisgICAgcHVzaChAY0JvZHksICRzdHJpbmdD
b252ZXJ0KTsKKworICAgIG15ICRpbXBsQ29udGVudCA9ICIiOworCisgICAgIyBYWFggVE9ETyBw
dXNoKEBjQm9keSwgInVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlO1xuXG4iKTsKKyAgICBwdXNoKEBj
Qm9keSwgImV4dGVybiBcIkNcIiB7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiI2RlZmluZSBf
R19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKVxuIik7CisKKyAgICAj
IEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAaFByZWZpeCA9IHNwbGl0KCJc
ciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgICAgICAjcHVzaChAaFByZWZpeCwgIlxuIik7CisK
KyAgICAjIEhlYWRlciBndWFyZAorICAgICAgICBteSAkZ3VhcmQgPSAiX18iIC4gJGNsYXNzTmFt
ZSAuICJfSF9fIjsKKworICAgIG15ICRjbHNDYXBzID0gc3Vic3RyKENsc1RvR09ialR5cGUoJGNs
YXNzTmFtZSksIDUpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1l
bGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgI215ICRwYXJlbnRDbHNDYXBzID0gIkdET01fIiAu
IENsc1RvR09ialR5cGUoJHBhcmVudEludGVyZmFjZU5hbWUpOworCisgICAgQGhQcmVmaXhHdWFy
ZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUgJGd1YXJkCitFT0YKKworICAg
ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworR19CRUdJTl9ERUNMUworCitFT0YKKworICAgIHB1
c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVP
RiI7CisKKyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAgICAoJHtsY2FzZV9p
ZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfShvYmopICAgICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfJHtjbHND
YXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0NMQVNTKGtsYXNz
KSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0Nh
cHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc30ob2JqKSAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xz
Q2Fwc30pKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmlu
ZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfUNsYXNzKSkKKwor
dHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtjbGFzc05hbWV9UHJpdmF0ZTsK
Kworc3RydWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFyZW50Q2xhc3NOYW1lfSBwYXJlbnRf
aW5zdGFuY2U7CisKKyAgICAke2NsYXNzTmFtZX1Qcml2YXRlICpwcml2OworfTsKKworc3RydWN0
IF8ke2NsYXNzTmFtZX1DbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307
CisKK1dFQktJVF9HRE9NX0FQSSBHVHlwZQorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBlICh2
b2lkKTsKKworV0VCS0lUX0dET01fQVBJIEdkb20ke2ludGVyZmFjZU5hbWV9ICoKKyR7bGNhc2Vf
aWZhY2VuYW1lfV9uZXcgICAgICAodm9pZCk7CisKK0VPRgorCisgICAgcHVzaChAaEJvZHksICRp
bXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJHtn
dWFyZH1fUFJPUF8KKyNkZWZpbmUgJHtndWFyZH1fUFJPUF8KK0VPRgorCisgICAgcHVzaChAaEJv
ZHlQcm9wUHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19CRUdJ
Tl9ERUNMU1xuIik7CisKKyAgICAkaGRyUHJvcEluY2x1ZGV7ImdsaWItb2JqZWN0LmgifSA9IDE7
CisgICAgJGhkclByb3BJbmNsdWRleyJpbnQke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAg
JGhkclByb3BJbmNsdWRleyJHRE9NT2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJbmNsdWRl
eyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9G
IjsKKyNpZm5kZWYgJHtndWFyZH1fSU5UXworI2RlZmluZSAke2d1YXJkfV9JTlRfCisjaW5jbHVk
ZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJpbnQke3BhcmVudEhkck5hbWV9LmgiCisjaW5j
bHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKKy8qI2lu
Y2x1ZGUgInByaXYke3BhcmVudEhkck5hbWV9LmgiKi8KK0dfQkVHSU5fREVDTFMKK0VPRgorCisg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAgICNDbGFzcyBkZWNs
YXJhdGlvbgorICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiY2xhc3MgR0RPTSRpbnRlcmZhY2VOYW1lIHtcbiIpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGlu
dGVyZmFjZU5hbWUgOiBwdWJsaWMgJHBhcmVudEdJZmFjZU5hbWUge1xuIik7CisgICAgICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdHlwZWRlZiAkcGFyZW50R0lmYWNlTmFtZSBCYXNlO1xu
Iik7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJwdWJsaWM6XG4iKTsKKworCisg
ICAgbXkgJG5lZWRzU1ZHQ29udGV4dCA9IDA7CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2go
QGhCb2R5SW50ZXJuYWwsICIgICAgR0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6JGludGVyZmFjZU5hbWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVt
ZW50KiBjb250ZXh0IiA6ICIiKSAuICIpO1xuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBw
dXNoKEBoQm9keUludGVybmFsLCAiICAgIHZpcnR1YWwgfkdET00kaW50ZXJmYWNlTmFtZSgpIHt9
O1xuIikgaWYgKCEkaGFzUGFyZW50IG9yICRpbnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpOwor
CisgICAgaWYgKCEkaGFzUGFyZW50IHx8ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikp
IHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICIgICAgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIGltcGwoKSBjb25zdCB7
IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICIgICAgU1ZHRWxlbWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4
dC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJp
dmF0ZTpcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRy
PFNWR0VsZW1lbnQ+IG1fY29udGV4dDtcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICIgICAgUmVmUHRyPEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+ID4gbV9pbXBs
O1xuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRl
cigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
ICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9
XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQq
IGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAg
ICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7
XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjwkaW1w
bENsYXNzTmFtZSA+IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwo
KSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICAgICBwdXNo
KEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICBSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+IG1faW1wbDtcbiIp
OworICAgICAgICAjfQorICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkdlbmVyYXRlTmF0aXZlQ29udmVydGVyIn0pIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRl
cm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSogaW1wbCgpIGNvbnN0XG4iKTsKKyAg
ICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB7XG4iKTsKKyAgICAgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiRpbnRlcmZh
Y2VOYW1lKj4oQmFzZTo6aW1wbCgpKTtcbiIpOworICAgICAgICBwdXNoKEBoQm9keUludGVybmFs
LCAiICAgIH1cbiIpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAifTtcbiIpOwor
CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFt
ZX06OkdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1l
PiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAi
IikgLiAiKVxuIik7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Cisg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDptX2ltcGwoaW1wbClcbiIpOworICAgIH0gZWxzaWYg
KCRoYXNQYXJlbnQpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNl
TmFtZShpbXBsIiAuICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikg
LiAiKVxuIikgaWYgKCRpbnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ciKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRHSWZhY2VOYW1lKClcbiIpIDsK
KyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBtX2NvbnRleHQoY29udGV4dClcbiIpIGlmICRu
ZWVkc1NWR0NvbnRleHQ7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9pbXBsKGltcGwp
XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgIHB1c2goQGNCb2R5
LCAifVxuXG4iKTsKKworICAgICRpbXBsSW5jbHVkZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0g
MTsKKyAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAgJGlt
cGxJbmNsdWRlc3siR0RPTU9iamVjdC5oIn0gPSAxOworCisgICAgJGltcGxUeXBlZGVmc3siJGNs
YXNzTmFtZSJ9ID0gMTsKKyAgICAkaW1wbFR5cGVkZWZzeyIke2NsYXNzTmFtZX1DbGFzcyJ9ID0g
MTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCiske2NsYXNzTmFtZX0qICR7bGNh
c2VfaWZhY2VuYW1lfV9uZXcodm9pZCkKK3sKKyAgICAke2NsYXNzTmFtZX0qIHJlcXVlc3QgPSBH
RE9NXyR7Y2xzQ2Fwc30oZ19vYmplY3RfbmV3KEdET01fVFlQRV8ke2Nsc0NhcHN9LCBOVUxMKSk7
CisgICAgLy9wcml2LT5ldmVudCA9IGV2ZW50OyAKKyAgICAKKyAgICByZXR1cm4gcmVxdWVzdDsK
K30KK0VPRgorCisgICAgICAgIHB1c2goQGNCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGlt
cGxDb250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xp
Yi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD4KKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1
ZGUgIk5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1
ZGUgIk5hbWVkTm9kZU1hcC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICov
CisjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9w
dGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzR3JhZGllbnQuaCIgLyogeXVrazogVE9ETyAtIG1h
a2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1N0eWxlLmgiIC8qIHl1a2s6IFRP
RE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUg
InByaXZnZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwg
Ki8KKyNpbmNsdWRlICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtl
IHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJwcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIiAv
KiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsIG9uIEV2ZW50VGFyZ2V0Ki8KKyNpbmNs
dWRlICIke2ludGVyZmFjZU5hbWV9LmgiCisjaW5jbHVkZSAiJHtoZHJOYW1lfS5oIgorI2luY2x1
ZGUgInByaXYke2hkck5hbWV9LmgiCisjaW5jbHVkZSAiaW50JHtoZHJOYW1lfS5oIgorI2luY2x1
ZGUgIiR7aGRyTmFtZX1wcm9wcy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgInVz
dHJpbmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2
LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKK0dfQkVH
SU5fREVDTFMKKworJHtzdHJpbmdDb252ZXJ0fQorCitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1l
fSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAke3BhcmVudEdPYmpUeXBlfSk7CisKKyNkZWZpbmUgX0df
R0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cikKKworLyoKK3N0cnVjdCBf
JHtjbGFzc05hbWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1l
fSAqaXRlbTsKK307ICAKKworI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUob2Jq
KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBz
fSwgJHtjbGFzc05hbWV9UHJpdmF0ZSkpCisqLworR19FTkRfREVDTFMKK1dlYkNvcmU6OiR7aW50
ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1l
fSAqcmVxdWVzdCkKK3sKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQp
OworCisgICAgaWYgKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAg
JGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9E
TyAqLworRU9GCisgICAgfSBlbHNlIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
CisgICAgR0RPTSR7aW50ZXJmYWNlTmFtZX0gKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxH
RE9NJHtpbnRlcmZhY2VOYW1lfSo+KGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHRE9NX0RP
TV9PQkpFQ1QocmVxdWVzdCkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtp
bnRlcmZhY2VOYW1lfSo+KHJlcy0+aW1wbCgpKTsKK0VPRgorICAgIH0KKyAgICBwdXNoKEBjQm9k
eVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rp
b25OYW1lUHJlZml4ID0gJGxjYXNlX2lmYWNlbmFtZTsgCisgICAgU0tJUFBST1A6IGZvcmVhY2gg
bXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRw
cm9wTmFtZSA9IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAg
ICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAg
bXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uU2ln
ID0gIiRjbGFzc05hbWUgKnRoaXoiOworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYg
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRl
ciJ9KSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAg
ICAKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7
CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgYWRkUHJvcEluY0hkcigkcHJvcF90eXBlKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQ
cm9wLCAiV0VCS0lUX0dET01fQVBJICR0eXBlXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJv
cF9nZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisgICAgICAgICNw
dXNoKEBoQm9keVByb3AsICJXRUJLSVRfR0RPTV9BUEkgdm9pZFxuJGZ1bmN0aW9uTmFtZVByZWZp
eCIgLiAiX3Byb3Bfc2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcsICR0eXBlIiAuICJ2
YWx1ZSk7XG5cbiIpOworICAgIH0KKworICAgICMgUHJvcGVydGllcworICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworfQorCitHX0JFR0lOX0RFQ0xTCisKK2VudW0geworICAgIFBST1BfMCwK
K0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgIG15IEB0eHRf
aW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfc2V0X3Byb3BzID0gKCk7CisgICAgbXkg
QHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAgIG15ICRwcml2X2ZuID0gR2V0UHJpdkZuKCRpbnRl
cmZhY2VOYW1lLCAke2xjYXNlX2lmYWNlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisKKyAgICBt
eSAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFt
ZX1fX2dldF9wcm9wZXJ0eV9mbihHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorCQkJ
CQkgR1ZhbHVlICogdmFsdWUsCisJCQkJCSBHUGFyYW1TcGVjICogcHNwZWMpCit7CisJJHtjbGFz
c05hbWV9ICpzZWxmID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKwlz
d2l0Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0
X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQg
JHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3Vp
bnQgcHJvcF9pZCwKKwkJCQkJIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLAorCQkJCQkgR1BhcmFtU3Bl
YyAqIHBzcGVjKQoreworCSR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmpl
Y3QpOworICAgICRwcml2X2ZuCisJc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0
eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKworICAgIFNLSVBFTlVNOiBmb3JlYWNoIG15
ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJv
cF9uYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICBteSAkc2V0cHJv
cF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJHByb3BfbmFtZSk7CisgICAg
ICAgIG15ICRnZXRwcm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkcHJv
cF9uYW1lKTsKKworICAgICAgICBteSAkcHJvcE5hbWUgPSBkZWNhbWVsaXplKCRwcm9wX25hbWUp
OworICAgICAgICBteSAkcHJvcENhcHMgPSB1YygkcHJvcE5hbWUpOworICAgICAgICBteSAkcHJv
cF90eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICBteSAkdHlwZSA9
IEdldEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAke3Byb3BFbnVtfSA9ICJQUk9QXyR7
cHJvcENhcHN9IjsKKyAgICAgICAgbXkgJHtwcm9wX2d0eXBlfSA9IGRlY2FtZWxpemUoJHByb3Bf
dHlwZSk7CisgICAgICAgIG15ICR7cHJvcEdUeXBlfSA9IHVjKCRwcm9wX2d0eXBlKTsKKyAgICAg
ICAgbXkgJGxjYXNlX2d0eXBlbmFtZSA9ICJnZG9tXyIgLiAkcHJvcF9ndHlwZTsKKworICAgICAg
ICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgICAgICBuZXh0IFNLSVBF
TlVNOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9y
YXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOwor
ICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcHVzaChAY0JvZHlQcml2LCAiICAgICR7
cHJvcEVudW19LFxuIik7CisKKyAgICAgICAgbXkgJGd0eXBlID0gR2V0UHJvcEdUeXBlKCRwcm9w
X3R5cGUpOworICAgICAgICBteSAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURBQkxFIjsKKyAg
ICAgICAgbXkgJHdyaXRlYWJsZSA9ICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS87Cisg
ICAgICAgIG15ICRjb25zdCA9ICJyZWFkLW9ubHkgIjsKKyAgICAgICAgaWYgKCR3cml0ZWFibGUg
JiYgJGN1c3RvbSkgeworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtb25seSAoZHVlIHRvIGN1
c3RvbSBmdW5jdGlvbnMgbmVlZGVkIGluIGdkb213ZWJraXQpIjsKKyAgICAgICAgICAgIG5leHQg
U0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgISRjdXN0b20p
IHsKKyAgICAgICAgICAgICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBRFdSSVRFIjsKKyAgICAg
ICAgICAgICRjb25zdCA9ICJyZWFkLXdyaXRlICI7CisgICAgICAgIH0KKworICAgICAgICBteSAk
X2d0eXBlID0gJGd0eXBlOworICAgICAgICBpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAg
ICAgICAgICAkX2d0eXBlID0gInVpbnQiOyAjIHl1ay4KKyAgICAgICAgfQorICAgICAgICBteSAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCWdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkgKGdfa2xhc3MsICR7cHJvcEVudW19LCAKKwkJCWdfcGFyYW1fc3BlY18ke19ndHlwZX0g
KCIke3Byb3BOYW1lfSIsIC8qIG5hbWUgKi8KKwkJCQkiJHtpbnRlcmZhY2VOYW1lfS4ke3Byb3BO
YW1lfSIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisJCQkJIiR7Y29uc3R9ICR7dHlwZX0gJHtp
bnRlcmZhY2VOYW1lfS4ke3Byb3BOYW1lfSIsIC8qIGxvbmdlciAqLworRU9GCisgICAgICAgIHB1
c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRf
aW5zdGFsbF9wcm9wID0gIi8qIFRPRE8hICRndHlwZSAqL1xuIjsKKworICAgICAgICBpZiAoMCAm
JiAkd3JpdGVhYmxlKSB7CisKKyAgICAgICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAg
ICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgJGNvbnZl
cnRfZm4gPSAiV2ViQ29yZTo6U3RyaW5nIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHB1
c2goQHR4dF9zZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAg
ICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGdzZWxmLT5zZXQke3NldHBy
b3BfbmFtZV9mbn0oJHtjb252ZXJ0X2ZufShnX3ZhbHVlX2dldF8kZ3R5cGUgKHZhbHVlKSkiKTsK
KworICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1
dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywg
Iik7XG4iKTsKKworICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgYnJl
YWs7XG4gICAgfVxuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3Bz
LCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisKKyAgICAgICAgbXkgJGV4Y2Vw
dGlvbiA9ICIiOworICAgICAgICBpZiAoQHskYXR0cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfSkg
eworICAgICAgICAgICAgJGV4Y2VwdGlvbiA9ICJlYyI7CisgICAgICAgICAgICBwdXNoKEB0eHRf
Z2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOwor
ICAgICAgICB9CisKKyAgICAgICAgbXkgJGNvbnZlcnRfZm4gPSAiIjsKKyAgICAgICAgbXkgJHBv
c3RfY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkZG9uZSA9IDA7CisgICAgICAgIGlmICgk
Z3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICRjb252ZXJ0X2ZuID0gIl9HX0dFVF9V
VEY4KCI7CisgICAgICAgICAgICAkcG9zdF9jb252ZXJ0X2ZuID0gIikiOworICAgICAgICB9Cisg
ICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgImd0eXBlIikgeworICAgICAgICAgICAgIyRjb252ZXJ0
X2ZuID0gIldURjo6Z2V0UHRyKCR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZSgiOworICAg
ICAgICAgICAgIyRjb252ZXJ0X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNl
X2d0eXBlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4g
PSAiJHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtw
cm9wX3R5cGV9PigiOworICAgICAgICAgICAgIyRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAg
ICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBlOworICAgICAgICAgICAg
JHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OiR7
cHJvcF90eXBlfT4gcHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0p
OworICAgICAgICAke3R5cGV9IHJlcyA9ICR7bGNhc2VfZ3R5cGVuYW1lfV9uZXcoKTsKKyAgICAg
ICAgJHtkb21vYmpUeXBlfSAqZG9iID0gbmV3ICR7ZG9tb2JqVHlwZX0ocHRyKTsKKyAgICAgICAg
Z2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXMpLCBkb2IpOwor
ICAgICAgICBnX3ZhbHVlX2luaXQodmFsdWUsIEdET01fVFlQRV8ke3Byb3BHVHlwZX0pOworICAg
ICAgICBnX3ZhbHVlX3NldF9pbnN0YW5jZSh2YWx1ZSwgKGdwb2ludGVyKXJlcyk7CitFT0YKKyAg
ICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworICAgICAgICAg
ICAgJGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkZG9uZSkgeworICAgICAg
ICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1ZV9zZXRfJF9ndHlwZSAo
dmFsdWUsICR7Y29udmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9u
fSkke3Bvc3RfY29udmVydF9mbn0pO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0
eHRfZ2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKworICAgICAgICAjIGlz
IHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/Pz8KKyAgICAgICAgIyBjYW4gaXQgYmUgZG9uZSB3
aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0eXBlCisgICAgICAgICMgYW5kIGdldHRpbmcgYSBm
ZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUgbWluLW1heCBmb3IgZXhhbXBsZT8KKyAgICAgICAgaWYg
KCRndHlwZSBlcSAiaW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAi
RU9GIjsKKwkJCQlHX01JTklOVCwgICAgICAgIC8qIG1pbiAqLworCQkJCUdfTUFYSU5ULCAvKiBt
YXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0g
PDwgIkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHX01JTkZMT0FULCAgICAgICAgLyogbWluICovCisJ
CQkJR19NQVhGTE9BVCwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VP
RgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJR19NSU5ET1VCTEUsICAgICAgICAvKiBt
aW4gKi8KKwkJCQlHX01BWERPVUJMRSwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1
bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1p
biAqLworCQkJCUdfTUFYVUlOVDY0LCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAg
ICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCTAsICAgICAgICAvKiBtaW4g
Ki8KKwkJCQlHX01BWFVMT05HLCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJR19NSU5MT05HLCAgICAgICAgLyog
bWluICovCisJCQkJR19NQVhMT05HLCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAgICAg
ICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAq
LworCQkJCUdfTUFYVUlOVCwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAqLwor
CQkJCUdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLwor
RU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCUdfTUlOSU5UOCwgICAgICAgIC8qIG1p
biAqLworCQkJCUdfTUFYSU5UOCwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQg
Ki8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAg
ICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCTAsICAgICAgICAvKiBtaW4gKi8K
KwkJCQlHX01BWFVJTlQ4LCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLwor
RU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVm
YXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZ3R5cGUiKSB7CisgICAg
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCUdET01fVFlQRV8ke3By
b3BHVHlwZX0sIC8qIGdvYmplY3QgdHlwZSAqLworRU9GCisgICAgICAgIH0KKyAgICAgICAgcHVz
aChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkoR1BhcmFtRmxhZ3MpJHtncGFyYW1mbGFnfSkp
OyAgICAgICAgICAgICAgICAgICAKKworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3By
b3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisKKworICAgIH0KKworICAgIHB1c2goQGNCb2R5UHJp
diwgIn07XG5cbiIpOworCisKKyAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CisJZGVmYXVs
dDoKKwkJR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOworCQlicmVhazsKKwl9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAk
dHh0X2dldF9wcm9wKTsKKworICAgICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9GIjsKKwlkZWZhdWx0
OgorCQlHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBw
c3BlYyk7CisJCWJyZWFrOworCX0KK30KK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0
eHRfc2V0X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRfZ2V0X3Byb3BzID0gPDwgIkVPRiI7CisJ
Y2FzZSBQUk9QX0FHRToKKwkJc2VsZi0+YWdlID0gZ192YWx1ZV9nZXRfaW50ICh2YWx1ZSk7CisJ
CWJyZWFrOworCisJY2FzZSBQUk9QX0FHRToKKwkJZ192YWx1ZV9zZXRfaW50KHZhbHVlLCBzZWxm
LT5hZ2UpOworCQlicmVhazsKKworICAgICAgICArICAgZ192YWx1ZV9pbml0KCZwYXJhbXNbMF0s
IEdfVFlQRV9GUk9NX0lOU1RBTkNFKG9iamVjdCkpOworICAgICAgICArICAgZ192YWx1ZV9zZXRf
aW5zdGFuY2UoJnBhcmFtc1swXSwgKGdwb2ludGVyKW9iamVjdCk7CisKK0VPRgorCisKKyAgICAk
aW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9
X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfSogcmVxdWVz
dCA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOyovCisgICAgLyoke2NsYXNzTmFtZX1Qcml2YXRl
KiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworICAgIAorICAgIC8qR09iamVjdENsYXNzICpwYXJl
bnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVlayAoZ190eXBlX3BlZWtfcGFyZW50ICgke3BhcmVu
dEdPYmpUeXBlfSkpOyovCisKKyAgICAvKiBGcmVlIGFueSBtZW1vcnkgb3IgY2xvc2UgYW55IGZp
bGVzICovIAorCisgICAgLypwYXJlbnRfY2xhc3MtPiBmaW5hbGl6ZSAob2JqZWN0KTsqLworCisg
ICAgR19PQkpFQ1RfQ0xBU1MoJHtsY2FzZV9pZmFjZW5hbWV9X3BhcmVudF9jbGFzcyktPmZpbmFs
aXplKG9iamVjdCk7Cit9CisKK0B0eHRfc2V0X3Byb3BzCisKK0B0eHRfZ2V0X3Byb3BzCisKK3N0
YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9jbGFzc19pbml0KCR7Y2xhc3NOYW1lfUNsYXNz
KiByZXF1ZXN0Q2xhc3MpCit7CisJR09iamVjdENsYXNzICpnX2tsYXNzID0gR19PQkpFQ1RfQ0xB
U1MgKHJlcXVlc3RDbGFzcyk7CisgICAgZ19rbGFzcy0+ZmluYWxpemUgPSAke2xjYXNlX2lmYWNl
bmFtZX1fZmluYWxpemU7CisJZ19rbGFzcy0+c2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5h
bWV9X19zZXRfcHJvcGVydHlfZm47CisJZ19rbGFzcy0+Z2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9p
ZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm47CisgICAgCisgICAgQHR4dF9pbnN0YWxsX3Byb3Bz
CisKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZigk
e2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5h
bWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0KQoreworICAgIC8qJHtjbGFzc05hbWV9UHJp
dmF0ZSogcHJpdiA9IEdET01fJHtjbHNDYXBzfV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBy
ZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfSAgIAorCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJp
diwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsSW5jbHVkZXN7ImludGdkb20ke2ludGVyZmFj
ZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNpZm5kZWYg
JHtndWFyZH1fUFJJVl8KKyNkZWZpbmUgJHtndWFyZH1fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorI2luY2x1ZGUgIiR7cGFyZW50SGRyTmFtZX0uaCIKKyNpbmNsdWRlICJHRE9NT2Jq
ZWN0LmgiCisvKiNpbmNsdWRlICJwcml2JHtwYXJlbnRIZHJOYW1lfS5oIiovCisvKl9HX0JFR0lO
X0RFQ0xTKi8KKy8qY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfTsqLworI2luY2x1ZGUg
IiR7aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENv
bnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgR0RPTSR7aW50ZXJmYWNlTmFtZX0gOiBwdWJsaWMgJHtwYXJlbnRHSWZh
Y2VOYW1lfSB7CisKK3B1YmxpYzoKKyAgICBHRE9NJHtpbnRlcmZhY2VOYW1lfShXZWJDb3JlOjok
e2ludGVyZmFjZU5hbWV9KiBpbXBsKSA6ICRwYXJlbnRHSWZhY2VOYW1lfShpbXBsKQorICAgIHsg
aW1wbC0+cmVmKCk7IH0KKyAgICB+R0RPTSR7aW50ZXJmYWNlTmFtZX0oKSB7IG1faW1wbC0+ZGVy
ZWYoKTsgfQorCisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCgpIGNvbnN0IHsg
cmV0dXJuIG1faW1wbDsgfQorCitwcml2YXRlOgorICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKm1faW1wbDsKK307CisKK0VPRgorCisgICAgICAgICNwdXNoKEBoQm9keVByaXYsICRpbXBs
Q29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsK
KworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3By
aXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKworLypfR19FTkRfREVDTFMqLworCisjZW5k
aWYgLyogJHtndWFyZH1fUFJJVl8gKi8KKworRU9GCisKKyAgICAjcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KChXZWJDb3JlOjpOb2RlKikocmVzKSk7
CisgICAgICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICAgICAjaWYg
KCRwYXJhbUlETFR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICMgWFhYID8/Pz8g
d3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICMgICAgJGltcGxJbmNs
dWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgI30gZWxz
ZSB7CisgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3skaW5jbHVkZUhkcn0gPSAxOworICAgICAg
ICAjfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7Cisg
ICAgICAgICRpbXBsSW5jbHVkZXN7InByaXZnZG9tRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAg
ICAgTE9PUDogZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7
CisgICAgICAgICAgICAjbXkgJGZ1bmN0aW9uTmFtZSA9IGRlY2FtZWxpemUoJGNsYXNzTmFtZSkg
LiAiXyIgLiBkZWNhbWVsaXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAg
ICAgICAgICBteSAkZm5fc2lnX25hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKyAg
ICAgICAgICAgICAgICBteSAkZm5fc2lnX3R5cGUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZTsKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gImdkb21fIiAuIGRlY2FtZWxp
emUoJGludGVyZmFjZU5hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25hbWUpOworICAg
ICAgICAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKyAg
ICAgICAgICAgICAgICBteSAkcmV0X2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRmbl9z
aWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSAiJGNsYXNzTmFt
ZSAqdGhpeiI7CisKKyAgICAgICAgICAgICAgICBteSAkY2FsbF9pbXBsX3BhcmFtcyA9ICIiOwor
ICAgICAgICAgICAgICAgIG15ICRnZG9tX2ZuX3ByZWZpeCA9ICJnZG9tXyIgLiBkZWNhbWVsaXpl
KCRmbl9zaWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIENvbXBhcmVIb3cg
ZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93IGZ1bmN0
aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVu
Y3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAgU1ZHRG9jdW1lbnQg
ZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgZXEgIkdk
b21TVkdEb2N1bWVudCAqIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxu
LyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1l
fSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBU
T0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxu
Iik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIHNvbWUgY3VzdG9tIGZ1bmN0aW9ucyBmb3Igbm93
CisgICAgICAgICAgICAgICAgbXkgJGlzX2N1c3RvbV9mbiA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisgICAgICAgICAgICAgICAgaWYgKCRp
c19jdXN0b21fZm4gJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9kZSIgJiYg
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJf
Zmlyc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmciICYmIAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRf
c2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21f
dHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9ub2RlIiAmJiAKKyAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX3ByZXZpb3VzX25v
ZGUiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzog
Y3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5j
dGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1
bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExU
eXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNCb2R5KCRwYXJh
bUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExU
eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBh
cmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25TaWcgLj0gIiwgJHBh
cmFtVHlwZSRwYXJhbU5hbWUiOworCisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19j
bHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRwYXJhbUlETFR5cGUgbmUgIkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkcGFyYW1JRExUeXBlIG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJpbnRnZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9
IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3sicHJpdmdkb20k
e3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyIke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsgIyB0aGlzIGlzbid0IHN0cmljdGx5
IG5lY2Vzc2FyeSBidXQgb25lIG9mIHRoZSBhdXRvLWdlbmVyYXRlZCBmaWxlcyBuZWVkZWQgaXQg
c28uLi4uCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSB8fCAoJHBhcmFtSURM
VHlwZSBlcSAiRE9NU3RyaW5nIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbU5h
bWUgPSAiX2dfIiAuICRwYXJhbU5hbWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAkY2FsbF9pbXBsX3BhcmFtcyAuPSAiLCAkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICRjYWxsX2ltcGxfcGFyYW1zID0gIiRwYXJhbU5hbWUiOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRmbl9z
aWdfdHlwZSk7CisgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAg
ICAgICAgICAgICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke2ZuX3NpZ190eXBlfSJ9ID0gMTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUg
InZvaWQiKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGll
ZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5j
bHVkZXN7Imdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRm
bl9zaWdfdHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICRpbXBsSW5jbHVkZXN7ImludGdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJwcml2Z2RvbSR7Zm5f
c2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIk
e2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBY
WFggc2tpcCBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICAjIGJ1dCBz
a2lwIGZyb20gaGVyZSB0byBhbGxvdyBzb21lIGhlYWRlcnMgdG8gYmUgY3JlYXRlZAorICAgICAg
ICAgICAgICAgICMgZm9yIGEgc3VjY2Vzc2Z1bCBjb21waWxlLgorICAgICAgICAgICAgICAgIGlm
ICgkaXNfY3VzdG9tX2ZuICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUg
Imdkb21fbm9kZV9hcHBlbmRfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhC
b2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xu
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBj
dXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAg
ICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkg
JF9yZXR1cm5UeXBlID0gJHJldHVyblR5cGU7CisgICAgICAgICAgICAgICAgbXkgJGRvbW9ialR5
cGUgPSAiR0RPTSIuJGZuX3NpZ190eXBlOworICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5
cGUgZXEgJ0RPTU9iamVjdCcgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBl
cSAnZ2RvbV9odG1sX2NhbnZhc19lbGVtZW50X2dldF9jb250ZXh0JykgeworICAgICAgICAgICAg
ICAgICAgICAjIFhYWCBIQUNLIQorICAgICAgICAgICAgICAgICAgICAkX3JldHVyblR5cGUgPSAn
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21v
YmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0JzsKKyAgICAgICAgICAgICAgICAg
ICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250ZXh0JzsKKyAg
ICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93
LiAgc2tpcCBpdC4KKyAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01P
YmplY3QgKFRPRE86IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAgICAgICAgICAg
ICAgICAgICAgIyBiZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQn
KSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAg
ICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIConOworICAgICAg
ICAgICAgICAgICAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
JzsKKyAgICAgICAgICAgICAgICAgICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3Jl
bmRlcmluZ19jb250ZXh0MmQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhY
IC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAj
IG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmlu
ZCBvdXQgaG93KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRv
IGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAKKworICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiV0VCS0lUX0dET01fQVBJ
ICRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAg
ICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAo
JGZ1bmN0aW9uU2lnKVxue1xuIik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUg
bmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9w
ZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwgKHRoaXosIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZf
ZmFpbCAodGhpeik7XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9ICgke2xj
YXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUodGhpeikpO1xuIik7CisgICAgICAgICAgICAgICAg
aWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBU
T0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtcbiIpOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGl0ZW0pO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+
bmFtZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5
cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2Rl
R2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAg
ICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExU
eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAg
ICAgICAgICMgICAgJGltcGxUeXBlZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoISRwYXJhbVR5cGVJ
c1ByaW1pdGl2ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5l
ICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVy
biBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRm
dW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtSURM
VHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZSA9
IEdldEdUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1O
YW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworCisgICAgICAgICAgICAgICAgICAgIG15
ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OlN0cmluZyBf
Z18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpTdHJpbmcoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190
eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1fZ2RvbV9mbiA9ICJnZG9t
XyIgLiBkZWNhbWVsaXplKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAg
I3B1c2goQGNCb2R5LCAiICAgIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjoke3BhcmFtSURMVHlw
ZX0+ICogX2dfJHtwYXJhbU5hbWV9ID0gV1RGOjpSZWZQdHI8JHtwYXJhbV9nZG9tX2ZufV9nZXRf
cHJpdmF0ZSgkcGFyYW1OYW1lKT47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
cGFyYW1JRExUeXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJwcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIn0gPSAxOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV2ZW50
VGFyZ2V0Tm9kZSAqIF9nXyR7cGFyYW1OYW1lfSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50
VGFyZ2V0Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoJHBhcmFtTmFt
ZSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7cGFyYW1JRExUeXBl
fSAqIF9nXyR7cGFyYW1OYW1lfSA9ICgke3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJh
bU5hbWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCAoX2dfJHtwYXJhbU5hbWV9LCAwKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBn
X3JldHVybl9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIG15ICRhc3NpZ24gPSAiIjsKKyAgICAgICAgICAgICAgICBteSAkYXNz
aWduX3ByZSA9ICIiOworICAgICAgICAgICAgICAgIG15ICRhc3NpZ25fcG9zdCA9ICIiOworICAg
ICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4p
IHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHtfcmV0dXJuVHlwZX0gcmVzID0g
JHtnZG9tX2ZuX3ByZWZpeH1fbmV3KCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICRh
c3NpZ24gPSAiUGFzc1JlZlB0cjxXZWJDb3JlOjoke2ZuX3NpZ190eXBlfT4gZ19yZXMgPSAiOwor
ICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wcmUgPSAiV1RGOjpnZXRQdHIoIjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcG9zdCA9ICIpIjsKKyAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAiJHtfcmV0
dXJuVHlwZX0gcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBteSAkZXhjZXB0aW9ucyA9ICIiOworICAgICAgICAgICAgICAg
IGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCR7Y2FsbF9pbXBsX3BhcmFtc30gbmUgIiIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICRleGNlcHRpb25zID0gIiwgZWMiOworICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAi
ZWMiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgIyBuZWVkIHRoaXMgZm9yIGluY2x1ZGluZyAuLi4gX3NvbWV0aGluZ18gLSBmb3Ig
dGhlIGNsYXNzIGFyZ3MKKyAgICAgICAgICAgICAgICAjaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsK
KyAgICAgICAgICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190eXBlfS5o
In0gPSAxOworICAgICAgICAgICAgICAgICN9CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlv
bk5hbWUgZXEgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAg
IG15ICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCA9IDw8ICJFT0YiOworICAgIGJvb2wg
b2sgPSBpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25z
fSwgdHJ1ZSk7CisgICAgaWYgKG9rKQorICAgIHsKKyAgICAgICAgJHtfcmV0dXJuVHlwZX0gcmVz
ID0gJHtnZG9tX2ZuX3ByZWZpeH1fbmV3KCk7CisgICAgICAgICR7ZG9tb2JqVHlwZX0gKmRvYiA9
IG5ldyAke2RvbW9ialR5cGV9KF9nX25ld19jaGlsZCk7CisgICAgICAgIGdkb21fZG9tX29iamVj
dF9zZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVzKSwgZG9iKTsKKyAgICAgICAgcmV0dXJu
IHJlczsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7CitFT0YKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCk7CisgICAgICAgICAg
ICAgICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiICYmCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNf
Y29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgLyogWFhY
IFRPRE8gLSBnZXQgY2FudmFzIG9iamVjdCAoaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2lt
cGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTsqL1xuIiApOworICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTVN0cmluZyIpIHsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259X0dfR0VUX1VU
RjgoaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30p
KTtcbiIgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFt
ZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSk7XG4iICk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAi
dm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJGZu
X3NpZ190eXBlIG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgICR7ZG9tb2JqVHlwZX0gKmRvYiA9IG5ldyAke2RvbW9ialR5cGV9KGdfcmVzKTtc
biIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdkb21f
ZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVzKSwgZG9iKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9E
TzogcmV0dXJuIGNhbnZhcyBvYmplY3QgKi9cbiIpOworICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIHJl
cztcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAifVxuXG4iKTsKKyAgICAgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ9IC8qIGV4dGVy
biBcIkNcIiAqL1xuXG4iKTsKKyAgICBwdXNoKEBjQm9keVByaXYsICJ9IC8qIGV4dGVybiBcIkNc
IiAqL1xuXG4iKTsKKworICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJHX0VORF9ERUNMU1xuXG4i
KTsKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiI2VuZGlmIC8qICR7Z3VhcmR9X0lOVF8qL1xu
Iik7CisKKyAgICBwdXNoKEBoQm9keSwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2goQGhC
b2R5LCAiI2VuZGlmIC8qICRndWFyZCAqL1xuIik7CisKKyAgICBwdXNoKEBoQm9keVByb3AsICJH
X0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keVByb3AsICIjZW5kaWYgLyogJHtndWFy
ZH1fUFJPUF8qL1xuIik7Cit9CisKKyMgSW50ZXJuYWwgaGVscGVyCitzdWIgV3JpdGVEYXRhCit7
CisgICAgbXkgKCRvYmplY3QsICRuYW1lKSA9IEBfOworCisKKyAgICAjIFdyaXRlIEludGVybmFs
IGhlYWRlcgorICAgIG15ICRoZHJGTmFtZUludGVybmFsID0gIiRvdXRwdXREaXIvaW50IiAuICRu
YW1lIC4gIi5oIjsKKyAgICBvcGVuKElOVEhFQURFUiwgIj4kaGRyRk5hbWVJbnRlcm5hbCIpIG9y
IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZUludGVybmFsIjsKKworICAgIHByaW50
IElOVEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBJTlRIRUFERVIgIlxuIjsKKyAgICBwcmlu
dCBJTlRIRUFERVIgQGhCb2R5SW50ZXJuYWw7CisgICAgY2xvc2UoSU5USEVBREVSKTsKKworICAg
ICMgV3JpdGUgUHJpdmF0ZSBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVQcml2ID0gIiRvdXRwdXRE
aXIvcHJpdiIgLiAkbmFtZSAuICIuaCI7CisgICAgb3BlbihQUklWSEVBREVSLCAiPiRoZHJGTmFt
ZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWVQcml2IjsKKworICAg
IHByaW50IFBSSVZIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgUFJJVkhFQURFUiAiXG4iOwor
ICAgIHByaW50IFBSSVZIRUFERVIgQGhCb2R5UHJpdjsKKyAgICBjbG9zZShQUklWSEVBREVSKTsK
KworICAgICMgV3JpdGUgUHJpdmF0ZSBJbXBsZW1lbnRhdGlvbgorICAgIG15ICRpbXBsRmlsZU5h
bWVQcml2ID0gIiRvdXRwdXREaXIvcHJpdiIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKFBS
SVZJTVBMLCAiPiRpbXBsRmlsZU5hbWVQcml2Iikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUg
JGltcGxGaWxlTmFtZVByaXYiOworCisgICAgcHJpbnQgUFJJVklNUEwgQGNQcmVmaXg7CisgICAg
cHJpbnQgUFJJVklNUEwgIlxuIjsKKyAgICBwcmludCBQUklWSU1QTCBAY0JvZHlQcml2OworCisg
ICAgY2xvc2UoUFJJVklNUEwpOworCisgICAgIyBXcml0ZSBwcm9wZXJ0aWVzIGhlYWRlciAoYXZv
aWRzIHJlY3Vyc2l2ZSBuaWdodG1hcmUpCisgICAgbXkgJGhkclByb3BGTmFtZSA9ICIkb3V0cHV0
RGlyLyIgLiAkbmFtZSAuICJwcm9wcy5oIjsKKyAgICBvcGVuKFBST1BIRUFERVIsICI+JGhkclBy
b3BGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJQcm9wRk5hbWUiOworCisg
ICAgJGhkclByb3BJbmNsdWRlc3siZ2xpYi1vYmplY3QuaCJ9ID0gMTsKKworICAgIHByaW50IFBS
T1BIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiLyogcmVjdXJzaXZlIGlu
Y2x1ZGVzIC8gZGVmaW5lcyBpc3N1ZSBmb3JjZXMgc2VwYXJhdGUgaGVhZGVyIGZvciBwcm9wZXJ0
aWVzLlxucGVyaGFwcyAtIGJldHRlciAtIGFsbCBnZG9tIGd0ayBmdW5jdGlvbnMgc2hvdWxkIGJl
IGluIGhlcmUhKi9cbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBAaEJvZHlQcm9wUHJlOworICAg
IHByaW50IFBST1BIRUFERVIgIiNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD5cbiI7Cisg
ICAgcHJpbnQgUFJPUEhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlz
KCVoZHJQcm9wSW5jbHVkZXMpOworICAgIHByaW50IFBST1BIRUFERVIgIlxuIiBpZiBrZXlzKCVo
ZHJQcm9wSW5jbHVkZXMpOworICAgIHByaW50IFBST1BIRUFERVIgIlxuIjsKKyAgICBwcmludCBQ
Uk9QSEVBREVSIEBoQm9keVByb3A7CisKKyAgICBjbG9zZShIRUFERVIpOworCisgICAgIyBXcml0
ZSBwdWJsaWMgaGVhZGVyLgorICAgIG15ICRoZHJGTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFt
ZSAuICIuaCI7CisgICAgb3BlbihIRUFERVIsICI+JGhkckZOYW1lIikgb3IgZGllICJDb3VsZG4n
dCBvcGVuIGZpbGUgJGhkckZOYW1lIjsKKworICAgICRoZHJJbmNsdWRlc3siZ2xpYi1vYmplY3Qu
aCJ9ID0gMTsKKworICAgIHByaW50IEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBIRUFERVIg
QGhQcmVmaXhHdWFyZDsKKyAgICBwcmludCBIRUFERVIgIiNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRl
ZmluZXMuaD5cbiI7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIg
fSBzb3J0IGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlz
KCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiI7CisgICAgcHJpbnQgSEVBREVS
IEBoQm9keVByZTsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgInR5cGVkZWYgc3RydWN0IF8kXyAk
XztcbiIgfSBzb3J0IGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIg
aWYga2V5cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5OworCisgICAg
Y2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgdGhlIGltcGxlbWVudGF0aW9uIHNvdXJjZXMK
KyAgICBteSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAiOwor
ICAgIG9wZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZp
bGUgJGltcGxGaWxlTmFtZSI7CisKKyAgICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHByaW50
IElNUEwgIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4iOworICAgIHByaW50IElNUEwgIiNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiQ1N0cmlu
Zy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJQbGF0Zm9ybVN0cmluZy5oXCJc
biI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJBdG9taWNTdHJpbmcuaFwiXG4iOworICAg
IHByaW50IElNUEwgIiNpbmNsdWRlIFwidXN0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAi
I2luY2x1ZGUgXCJLVVJMLmhcIlxuIjsKKyAgICBwcmludCBJTVBMIG1hcCB7ICIjaW5jbHVkZSBc
IiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCAiXG4i
IGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAgICBj
bG9zZShJTVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAgICAlaW1wbFR5cGVkZWZz
ID0gKCk7CisgICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBA
aEJvZHkgPSAoKTsKKyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAgQGhCb2R5SW50ZXJuYWwgPSAo
KTsKKyAgICBAaEJvZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJvcFByZSA9ICgpOworCisgICAg
QGNQcmVmaXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7Cit9
CisKKzE7CkluZGV4OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCShyZXZpc2lvbiAzNTc1OCkKKysrIFdl
YkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcs
NyBAQAogICovCiAKICNpZm5kZWYgRE9NQ29yZUV4Y2VwdGlvbl9oCi0jZGVmaW5lIERPTUNvZGVF
eGNlcHRpb25faAorI2RlZmluZSBET01Db3JlRXhjZXB0aW9uX2gKIAogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkJhc2UuaCIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23068</attachid>
            <date>2008-08-29 07:28:14 -0700</date>
            <delta_ts>2008-08-30 14:57:59 -0700</delta_ts>
            <desc>property getting added, property set strings added, hash-map added</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>215299</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMzE1LDYgKzMxNiw4IEBACiAJV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vic2V0dGluZ3MuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5o
CiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXApAQCAtMzQ0LDcgKzM0Nyw4IEBA
CiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAK
KwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZXZlbnQuY3BwIAogCiB3ZWJraXRndGtfY3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJ
TkdfV0VCS0lUIFwKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMiBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAiZ2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1
ZGUgImludGdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgInByaXZnZG9tRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExp
c3RlbmVySGFjay5oIgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogCkBA
IC00Nyw2ICs1MywxMCBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCituYW1lc3BhY2UgV2ViQ29yZSB7CisJZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50
KiBkb2MpOworfQorCiBleHRlcm4gIkMiIHsKIAogZW51bSB7CkBAIC01NSw2ICs2NSw3IEBACiAg
ICAgTE9BRF9ET05FLAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5L
LAorICAgIEJST1dTRVJfRVZFTlQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2MCw2ICsx
NzEsMTYgQEAKICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBF
X1NUUklORywgR19UWVBFX1NUUklORyk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNb
QlJPV1NFUl9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZs
YWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAw
LAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJr
aXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05F
LCAyLAorICAgICAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisKICAg
ICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8K
QEAgLTI5Miw2ICszMTMsNDYgQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9k
b21fZG9jdW1lbnQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJu
cyBhIEdkb20gd3JhcHBlciBhcm91bmQgYSBEb2N1bWVudCAKKyAqCisgKiBSZXR1cm4gdmFsdWU6
IGEgR2RvbURvY3VtZW50CisgKi8KK0dkb21Eb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9nZXRf
ZG9tX2RvY3VtZW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktp
dFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVG
cmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCXJldHVybiBHRE9N
X0RPQ1VNRU5UKFdlYkNvcmU6OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50KCkpKTsKK30KKwor
LyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoKKyAqIEBmcmFtZTog
YSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBm
cmFtZSdzIGRvY3VtZW50CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBvZiBAZnJhbWUK
KyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIqIGV2ZW50X3R5cGUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEZBTFNFKTsKKworICAgIC8vV2ViS2l0V2Vi
RnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisKKwlyZXR1cm4gYWRkX3dp
bmRvd19ldmVudF9saXN0ZW5lcihmcmFtZSwgY29yZUZyYW1lLCBldmVudF90eXBlKTsKK30KKwor
LyoqCiAgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lOgogICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQogICoKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5o
PgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9nZG9tRG9jdW1lbnQuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC02MSw2ICs2Miw5IEBA
CiBXRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJ
IEdkb21Eb2N1bWVudCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQgICAgICAg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmll
dyAqCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAgICAgICAoV2ViS2l0V2ViRnJhbWUg
ICAgICAgKmZyYW1lKTsKIApAQCAtOTMsNiArOTcsMTAgQEAKIFdFQktJVF9BUEkgSlNHbG9iYWxD
b250ZXh0UmVmCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dCAoV2ViS2l0V2Vi
RnJhbWUgICAgICAgKmZyYW1lKTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl9m
cmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICpuYW1lKTsK
KwogR19FTkRfREVDTFMKIAogI2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExp
c3RlbmVySGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVu
ZXJIYWNrLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVy
SGFjay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIEpTX0RPTV9FVkVO
VF9MSVNURU5FUl9IQUNLX0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX0hBQ0tfSAor
CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisK
KworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dlYktp
dEF2YWlsYWJpbGl0eS5oPgorI2luY2x1ZGUgIldlYkNvcmUvcGFnZS9GcmFtZS5oIgorCitjbGFz
cyBXZWJDb3JlOjpGcmFtZTsKKworZ2Jvb2xlYW4KK2FkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0V2ViRnJhbWUqIHdmLCBXZWJDb3JlOjpGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOworCisjZW5kaWYgLypKU19ET01fRVZFTlRf
TElTVEVORVJfSEFDS19IICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5z
IFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlL2RvbS9F
dmVudC5oIgorI2luY2x1ZGUgIldlYkNvcmUvcGxhdGZvcm0vdGV4dC9DU3RyaW5nLmgiCisjaW5j
bHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3Vt
ZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVu
ZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
KyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRl
ICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgi
CisjaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUva2pzL0pTVmFsdWUuaCIKKyNpbmNsdWRlICJFdmVu
dExpc3RlbmVySGFjay5oIgorI2luY2x1ZGUgIkRlcml2ZWRTb3VyY2VzL0pTSFRNTERvY3VtZW50
LmgiCisjaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUvQVBJL0FQSUNhc3QuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0NTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSW1w
bC5oIgorI2luY2x1ZGUgImdkb21FdmVudC5oIgorI2luY2x1ZGUgImludGdkb21FdmVudC5oIgor
I2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIgor
CisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudCogZG9jKTsK
K30KKworZXh0ZXJuICJDIiB7CisKK30gLy8gZXh0ZXJuICJDIgorCitjbGFzcyBIYWNrRXZlbnRM
aXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIYWNrRXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFdlYktpdFdlYkZyYW1lKiB3ZikgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhhY2tFdmVudExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOworCisgICAgcHJp
dmF0ZToKKyAgICBIYWNrRXZlbnRMaXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2YpIDogbV93Zih3
ZikgeyB9CisgICAgV2ViS2l0V2ViRnJhbWUqIG1fd2Y7Cit9OworCit2b2lkIEhhY2tFdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKK3sK
KyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgcHJpbnRmKCJoYWNrIGhhbmRsZUV2ZW50ICVzXG4i
LCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEdkb21FdmVudCAq
d2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUobV93ZiwgImJyb3dzZXItZXZlbnQiLCAKKyAgICAgICAgd2V2LCBpc1dpbmRv
d0V2ZW50LCAmcmV0dmFsKTsKK30KKworZ2Jvb2xlYW4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5l
cihXZWJLaXRXZWJGcmFtZSAqd2YsIEZyYW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBEb2N1bWVudCogZG9jID0g
ZnJhbWUtPmRvY3VtZW50KCk7CisKKyAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIg
PSBIYWNrRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBkb2MtPmFkZFdpbmRvd0V2ZW50
TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHRydWUpOworCisgICAgcmV0dXJuIFRSVUU7CisKK30g
CisKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHJldmlzaW9uIDM1NzU4KQorKysg
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2
ICs0MCw5IEBACiAKIEdfQkVHSU5fREVDTFMKIAordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50
IFdlYktpdEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgV2ViS2l0RXZl
bnRDbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0IFdlYktpdE5l
dHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3Mg
V2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvZ2Rv
bWRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5o
CShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1MjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykg
MjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdFQktJVF9HRE9NX0RFRklO
RVNfSAorI2RlZmluZSBXRUJLSVRfR0RPTV9ERUZJTkVTX0gKKworI2luY2x1ZGUgPGdsaWIuaD4K
KworI2lmZGVmIEdfT1NfV0lOMzIKKyAgICAjaWZkZWYgQlVJTERJTkdfV0VCS0lUX0dET00KKyAg
ICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCisgICAg
I2Vsc2UKKyAgICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhkbGxpbXBv
cnQpCisgICAgI2VuZGlmCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9PQlNPTEVURV9BUEkgV0VC
S0lUX0dET01fQVBJCisjZWxzZQorICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fYXR0cmli
dXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9P
QlNPTEVURV9BUEkgV0VCS0lUX0dET01fQVBJIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQpKQor
I2VuZGlmCisKKyNpZm5kZWYgV0VCS0lUX0dET01fQVBJCisgICAgI2RlZmluZSBXRUJLSVRfR0RP
TV9BUEkKKyNlbmRpZgorCitHX0JFR0lOX0RFQ0xTCisKKy8qCit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUF0dHJDbGFzcyBHRG9tQXR0ckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21BdHRyIEdEb21B
dHRyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21BdHRyUHJpdmF0ZSBHRG9tQXR0clByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUJhckluZm9DbGFzcyBHRG9tQmFySW5mb0NsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21CYXJJbmZvIEdEb21CYXJJbmZvOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21C
YXJJbmZvUHJpdmF0ZSBHRG9tQmFySW5mb1ByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNh
bnZhc0dyYWRpZW50Q2xhc3MgR0RvbUNhbnZhc0dyYWRpZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNhbnZhc0dyYWRpZW50IEdEb21DYW52YXNHcmFkaWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tQ2FudmFzR3JhZGllbnRQcml2YXRlIEdEb21DYW52YXNHcmFkaWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc1BhdHRlcm5DbGFzcyBHRG9tQ2FudmFzUGF0dGVybkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuIEdEb21DYW52YXNQYXR0ZXJu
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuUHJpdmF0ZSBHRG9tQ2FudmFzUGF0
dGVyblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc1BpeGVsQXJyYXlDbGFzcyBH
RG9tQ2FudmFzUGl4ZWxBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQaXhl
bEFycmF5IEdEb21DYW52YXNQaXhlbEFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQ
aXhlbEFycmF5UHJpdmF0ZSBHRG9tQ2FudmFzUGl4ZWxBcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRENsYXNzIEdEb21DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEIEdEb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFByaXZhdGUgR0RvbUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRBU2VjdGlvbkNsYXNzIEdEb21D
REFUQVNlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ0RBVEFTZWN0aW9uIEdEb21D
REFUQVNlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRBU2VjdGlvblByaXZhdGUgR0Rv
bUNEQVRBU2VjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNoYXJhY3RlckRhdGFD
bGFzcyBHRG9tQ2hhcmFjdGVyRGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DaGFyYWN0
ZXJEYXRhIEdEb21DaGFyYWN0ZXJEYXRhOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DaGFyYWN0ZXJE
YXRhUHJpdmF0ZSBHRG9tQ2hhcmFjdGVyRGF0YVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUNsaXBib2FyZENsYXNzIEdEb21DbGlwYm9hcmRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
Q2xpcGJvYXJkIEdEb21DbGlwYm9hcmQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNsaXBib2FyZFBy
aXZhdGUgR0RvbUNsaXBib2FyZFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNvbW1lbnRD
bGFzcyBHRG9tQ29tbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db21tZW50IEdEb21D
b21tZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db21tZW50UHJpdmF0ZSBHRG9tQ29tbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNvbnNvbGVDbGFzcyBHRG9tQ29uc29sZUNsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db25zb2xlIEdEb21Db25zb2xlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21Db25zb2xlUHJpdmF0ZSBHRG9tQ29uc29sZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNvdW50ZXJDbGFzcyBHRG9tQ291bnRlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21Db3VudGVyIEdEb21Db3VudGVyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db3VudGVyUHJpdmF0
ZSBHRG9tQ291bnRlclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0NoYXJzZXRSdWxl
Q2xhc3MgR0RvbUNTU0NoYXJzZXRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0No
YXJzZXRSdWxlIEdEb21DU1NDaGFyc2V0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTQ2hh
cnNldFJ1bGVQcml2YXRlIEdEb21DU1NDaGFyc2V0UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU0ZvbnRGYWNlUnVsZUNsYXNzIEdEb21DU1NGb250RmFjZVJ1bGVDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tQ1NTRm9udEZhY2VSdWxlIEdEb21DU1NGb250RmFjZVJ1bGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0ZvbnRGYWNlUnVsZVByaXZhdGUgR0RvbUNTU0ZvbnRGYWNl
UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0ltcG9ydFJ1bGVDbGFzcyBHRG9t
Q1NTSW1wb3J0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRSdWxlIEdE
b21DU1NJbXBvcnRSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRSdWxlUHJpdmF0
ZSBHRG9tQ1NTSW1wb3J0UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU01lZGlh
UnVsZUNsYXNzIEdEb21DU1NNZWRpYVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NT
TWVkaWFSdWxlIEdEb21DU1NNZWRpYVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU01lZGlh
UnVsZVByaXZhdGUgR0RvbUNTU01lZGlhUnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUNTU1BhZ2VSdWxlQ2xhc3MgR0RvbUNTU1BhZ2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUNTU1BhZ2VSdWxlIEdEb21DU1NQYWdlUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NT
UGFnZVJ1bGVQcml2YXRlIEdEb21DU1NQYWdlUnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUNTU1ByaW1pdGl2ZVZhbHVlQ2xhc3MgR0RvbUNTU1ByaW1pdGl2ZVZhbHVlQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ByaW1pdGl2ZVZhbHVlIEdEb21DU1NQcmltaXRpdmVWYWx1
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTUHJpbWl0aXZlVmFsdWVQcml2YXRlIEdEb21DU1NQ
cmltaXRpdmVWYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1J1bGVDbGFzcyBH
RG9tQ1NTUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlIEdEb21DU1NSdWxl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlTGlzdENsYXNzIEdEb21DU1NSdWxlTGlzdENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlTGlzdCBHRG9tQ1NTUnVsZUxpc3Q7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1J1bGVMaXN0UHJpdmF0ZSBHRG9tQ1NTUnVsZUxpc3RQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlUHJpdmF0ZSBHRG9tQ1NTUnVsZVByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlRGVjbGFyYXRpb25DbGFzcyBHRG9tQ1NT
U3R5bGVEZWNsYXJhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZURlY2xh
cmF0aW9uIEdEb21DU1NTdHlsZURlY2xhcmF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NT
dHlsZURlY2xhcmF0aW9uUHJpdmF0ZSBHRG9tQ1NTU3R5bGVEZWNsYXJhdGlvblByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlUnVsZUNsYXNzIEdEb21DU1NTdHlsZVJ1bGVDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTU3R5bGVSdWxlIEdEb21DU1NTdHlsZVJ1bGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlUnVsZVByaXZhdGUgR0RvbUNTU1N0eWxlUnVsZVBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlU2hlZXRDbGFzcyBHRG9tQ1NTU3R5
bGVTaGVldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0IEdEb21DU1NT
dHlsZVNoZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0UHJpdmF0ZSBHRG9t
Q1NTU3R5bGVTaGVldFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlQ2xhc3Mg
R0RvbUNTU1ZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlIEdEb21DU1NW
YWx1ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0Q2xhc3MgR0RvbUNTU1ZhbHVl
TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYWx1ZUxpc3QgR0RvbUNTU1ZhbHVl
TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0UHJpdmF0ZSBHRG9tQ1NTVmFs
dWVMaXN0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVQcml2YXRlIEdEb21D
U1NWYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0
aW9uQ2xhc3MgR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIEdEb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlv
bjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25Qcml2YXRlIEdE
b21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNT
U1ZhcmlhYmxlc1J1bGVDbGFzcyBHRG9tQ1NTVmFyaWFibGVzUnVsZUNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NWYXJpYWJsZXNSdWxlIEdEb21DU1NWYXJpYWJsZXNSdWxlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21DU1NWYXJpYWJsZXNSdWxlUHJpdmF0ZSBHRG9tQ1NTVmFyaWFibGVzUnVs
ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURhdGFiYXNlQ2xhc3MgR0RvbURhdGFiYXNl
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURhdGFiYXNlIEdEb21EYXRhYmFzZTsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tRGF0YWJhc2VQcml2YXRlIEdEb21EYXRhYmFzZVByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50Q2xhc3MgR0RvbURvY3VtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbURvY3VtZW50RnJhZ21lbnRDbGFzcyBHRG9tRG9jdW1lbnRGcmFnbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudEZyYWdtZW50IEdEb21Eb2N1bWVudEZy
YWdtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZSBHRG9t
RG9jdW1lbnRGcmFnbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50IEdE
b21Eb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRQcml2YXRlIEdEb21Eb2N1
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50VHlwZUNsYXNzIEdEb21E
b2N1bWVudFR5cGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRUeXBlIEdEb21E
b2N1bWVudFR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50VHlwZVByaXZhdGUgR0Rv
bURvY3VtZW50VHlwZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUFwcGxpY2F0aW9u
Q2FjaGVDbGFzcyBHRG9tRE9NQXBwbGljYXRpb25DYWNoZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21ET01BcHBsaWNhdGlvbkNhY2hlIEdEb21ET01BcHBsaWNhdGlvbkNhY2hlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21ET01BcHBsaWNhdGlvbkNhY2hlUHJpdmF0ZSBHRG9tRE9NQXBwbGljYXRp
b25DYWNoZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUNvcmVFeGNlcHRpb25DbGFz
cyBHRG9tRE9NQ29yZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01Db3Jl
RXhjZXB0aW9uIEdEb21ET01Db3JlRXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01D
b3JlRXhjZXB0aW9uUHJpdmF0ZSBHRG9tRE9NQ29yZUV4Y2VwdGlvblByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3MgR0RvbURPTUltcGxlbWVudGF0aW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUltcGxlbWVudGF0aW9uIEdEb21ET01JbXBs
ZW1lbnRhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NSW1wbGVtZW50YXRpb25Qcml2YXRl
IEdEb21ET01JbXBsZW1lbnRhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTU9i
amVjdCBHRG9tRE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01QYXJzZXJDbGFzcyBH
RG9tRE9NUGFyc2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVBhcnNlciBHRG9tRE9N
UGFyc2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01QYXJzZXJQcml2YXRlIEdEb21ET01QYXJz
ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxlY3Rpb25DbGFzcyBHRG9tRE9N
U2VsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVNlbGVjdGlvbiBHRG9tRE9N
U2VsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxlY3Rpb25Qcml2YXRlIEdEb21E
T01TZWxlY3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01XaW5kb3dDbGFzcyBH
RG9tRE9NV2luZG93Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVdpbmRvdyBHRG9tRE9N
V2luZG93OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01XaW5kb3dQcml2YXRlIEdEb21ET01XaW5k
b3dQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbGVtZW50Q2xhc3MgR0RvbUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRWxlbWVudCBHRG9tRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tRWxlbWVudFByaXZhdGUgR0RvbUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FbnRpdHlDbGFzcyBHRG9tRW50aXR5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUVudGl0eSBHRG9tRW50aXR5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlQcml2YXRl
IEdEb21FbnRpdHlQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlSZWZlcmVuY2VD
bGFzcyBHRG9tRW50aXR5UmVmZXJlbmNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUVudGl0
eVJlZmVyZW5jZSBHRG9tRW50aXR5UmVmZXJlbmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRp
dHlSZWZlcmVuY2VQcml2YXRlIEdEb21FbnRpdHlSZWZlcmVuY2VQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FdmVudENsYXNzIEdEb21FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21FdmVudEV4Y2VwdGlvbkNsYXNzIEdEb21FdmVudEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FdmVudEV4Y2VwdGlvbiBHRG9tRXZlbnRFeGNlcHRpb247Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUV2ZW50RXhjZXB0aW9uUHJpdmF0ZSBHRG9tRXZlbnRFeGNlcHRpb25Qcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FdmVudCBHRG9tRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUV2ZW50UHJpdmF0ZSBHRG9tRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21F
dmVudFRhcmdldCBHRG9tRXZlbnRUYXJnZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUZpbGVDbGFz
cyBHRG9tRmlsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21GaWxlIEdEb21GaWxlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21GaWxlTGlzdENsYXNzIEdEb21GaWxlTGlzdENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21GaWxlTGlzdCBHRG9tRmlsZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUZpbGVMaXN0UHJpdmF0ZSBHRG9tRmlsZUxpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21GaWxlUHJpdmF0ZSBHRG9tRmlsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhpc3Rv
cnlDbGFzcyBHRG9tSGlzdG9yeUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IaXN0b3J5IEdE
b21IaXN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IaXN0b3J5UHJpdmF0ZSBHRG9tSGlzdG9y
eVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBbmNob3JFbGVtZW50Q2xhc3MgR0Rv
bUhUTUxBbmNob3JFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBbmNob3JF
bGVtZW50IEdEb21IVE1MQW5jaG9yRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEFu
Y2hvckVsZW1lbnRQcml2YXRlIEdEb21IVE1MQW5jaG9yRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxBcHBsZXRFbGVtZW50Q2xhc3MgR0RvbUhUTUxBcHBsZXRFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBcHBsZXRFbGVtZW50IEdEb21IVE1MQXBw
bGV0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEFwcGxldEVsZW1lbnRQcml2YXRl
IEdEb21IVE1MQXBwbGV0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxB
cmVhRWxlbWVudENsYXNzIEdEb21IVE1MQXJlYUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTEFyZWFFbGVtZW50IEdEb21IVE1MQXJlYUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxBcmVhRWxlbWVudFByaXZhdGUgR0RvbUhUTUxBcmVhRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRWxlbWVudENsYXNzIEdEb21IVE1MQmFzZUVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJhc2VFbGVtZW50IEdEb21IVE1M
QmFzZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRWxlbWVudFByaXZhdGUg
R0RvbUhUTUxCYXNlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNl
Rm9udEVsZW1lbnRDbGFzcyBHRG9tSFRNTEJhc2VGb250RWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MQmFzZUZvbnRFbGVtZW50IEdEb21IVE1MQmFzZUZvbnRFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQmFzZUZvbnRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJh
c2VGb250RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCbG9ja3F1b3Rl
RWxlbWVudENsYXNzIEdEb21IVE1MQmxvY2txdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50IEdEb21IVE1MQmxvY2txdW90ZUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudFByaXZhdGUgR0RvbUhU
TUxCbG9ja3F1b3RlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCb2R5
RWxlbWVudENsYXNzIEdEb21IVE1MQm9keUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tSFRNTEJvZHlFbGVtZW50IEdEb21IVE1MQm9keUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxCb2R5RWxlbWVudFByaXZhdGUgR0RvbUhUTUxCb2R5RWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCUkVsZW1lbnRDbGFzcyBHRG9tSFRNTEJSRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50IEdEb21IVE1MQlJFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJSRWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3Mg
R0RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCdXR0
b25FbGVtZW50IEdEb21IVE1MQnV0dG9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TEJ1dHRvbkVsZW1lbnRQcml2YXRlIEdEb21IVE1MQnV0dG9uRWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxDYW52YXNFbGVtZW50Q2xhc3MgR0RvbUhUTUxDYW52YXNFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxDYW52YXNFbGVtZW50IEdEb21IVE1M
Q2FudmFzRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTENhbnZhc0VsZW1lbnRQcml2
YXRlIEdEb21IVE1MQ2FudmFzRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxDb2xsZWN0aW9uQ2xhc3MgR0RvbUhUTUxDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxDb2xsZWN0aW9uIEdEb21IVE1MQ29sbGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTENvbGxlY3Rpb25Qcml2YXRlIEdEb21IVE1MQ29sbGVjdGlvblByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Q2xhc3MgR0RvbUhUTUxEaXJl
Y3RvcnlFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXJlY3RvcnlFbGVt
ZW50IEdEb21IVE1MRGlyZWN0b3J5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERp
cmVjdG9yeUVsZW1lbnRQcml2YXRlIEdEb21IVE1MRGlyZWN0b3J5RWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXZFbGVtZW50Q2xhc3MgR0RvbUhUTUxEaXZFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXZFbGVtZW50IEdEb21IVE1MRGl2RWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERpdkVsZW1lbnRQcml2YXRlIEdEb21IVE1M
RGl2RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxETGlzdEVsZW1lbnRD
bGFzcyBHRG9tSFRNTERMaXN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
RExpc3RFbGVtZW50IEdEb21IVE1MRExpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MRExpc3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTERMaXN0RWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxEb2N1bWVudENsYXNzIEdEb21IVE1MRG9jdW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERvY3VtZW50IEdEb21IVE1MRG9jdW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxEb2N1bWVudFByaXZhdGUgR0RvbUhUTUxEb2N1bWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50Q2xhc3MgR0RvbUhUTUxFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50IEdEb21IVE1MRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEVsZW1lbnRQcml2YXRlIEdEb21IVE1MRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbWJlZEVsZW1lbnRDbGFzcyBHRG9tSFRN
TEVtYmVkRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVtZW50
IEdEb21IVE1MRW1iZWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVt
ZW50UHJpdmF0ZSBHRG9tSFRNTEVtYmVkRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxGaWVsZFNldEVsZW1lbnRDbGFzcyBHRG9tSFRNTEZpZWxkU2V0RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRmllbGRTZXRFbGVtZW50IEdEb21IVE1MRmllbGRT
ZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRmllbGRTZXRFbGVtZW50UHJpdmF0
ZSBHRG9tSFRNTEZpZWxkU2V0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxGb250RWxlbWVudENsYXNzIEdEb21IVE1MRm9udEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEZvbnRFbGVtZW50IEdEb21IVE1MRm9udEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxGb250RWxlbWVudFByaXZhdGUgR0RvbUhUTUxGb250RWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb3JtRWxlbWVudENsYXNzIEdEb21IVE1MRm9y
bUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZvcm1FbGVtZW50IEdEb21I
VE1MRm9ybUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb3JtRWxlbWVudFByaXZh
dGUgR0RvbUhUTUxGb3JtRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxG
cmFtZUVsZW1lbnRDbGFzcyBHRG9tSFRNTEZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MRnJhbWVFbGVtZW50IEdEb21IVE1MRnJhbWVFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MRnJhbWVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEZyYW1lRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzcyBHRG9t
SFRNTEZyYW1lU2V0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRnJhbWVT
ZXRFbGVtZW50IEdEb21IVE1MRnJhbWVTZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MRnJhbWVTZXRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEZyYW1lU2V0RWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkRWxlbWVudENsYXNzIEdEb21IVE1MSGVhZEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEhlYWRFbGVtZW50IEdEb21IVE1M
SGVhZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkRWxlbWVudFByaXZhdGUg
R0RvbUhUTUxIZWFkRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFk
aW5nRWxlbWVudENsYXNzIEdEb21IVE1MSGVhZGluZ0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEhlYWRpbmdFbGVtZW50IEdEb21IVE1MSGVhZGluZ0VsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkaW5nRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIZWFkaW5n
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIUkVsZW1lbnRDbGFzcyBH
RG9tSFRNTEhSRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJFbGVtZW50
IEdEb21IVE1MSFJFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTEhSRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxI
dG1sRWxlbWVudENsYXNzIEdEb21IVE1MSHRtbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTEh0bWxFbGVtZW50IEdEb21IVE1MSHRtbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxIdG1sRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIdG1sRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJRnJhbWVFbGVtZW50Q2xhc3MgR0RvbUhUTUxJRnJh
bWVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJRnJhbWVFbGVtZW50IEdE
b21IVE1MSUZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTElGcmFtZUVsZW1l
bnRQcml2YXRlIEdEb21IVE1MSUZyYW1lRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxJbWFnZUVsZW1lbnRDbGFzcyBHRG9tSFRNTEltYWdlRWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW1hZ2VFbGVtZW50IEdEb21IVE1MSW1hZ2VFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW1hZ2VFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEltYWdl
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJbnB1dEVsZW1lbnRDbGFz
cyBHRG9tSFRNTElucHV0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW5w
dXRFbGVtZW50IEdEb21IVE1MSW5wdXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
SW5wdXRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTElucHV0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxJc0luZGV4RWxlbWVudENsYXNzIEdEb21IVE1MSXNJbmRleEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTElzSW5kZXhFbGVtZW50IEdEb21IVE1M
SXNJbmRleEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJc0luZGV4RWxlbWVudFBy
aXZhdGUgR0RvbUhUTUxJc0luZGV4RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxMYWJlbEVsZW1lbnRDbGFzcyBHRG9tSFRNTExhYmVsRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MTGFiZWxFbGVtZW50IEdEb21IVE1MTGFiZWxFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGFiZWxFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTExhYmVsRWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3Mg
R0RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMZWdl
bmRFbGVtZW50IEdEb21IVE1MTGVnZW5kRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TExlZ2VuZEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTGVnZW5kRWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxMSUVsZW1lbnRDbGFzcyBHRG9tSFRNTExJRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTElFbGVtZW50IEdEb21IVE1MTElFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTElFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTExJRWxlbWVu
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMaW5rRWxlbWVudENsYXNzIEdEb21I
VE1MTGlua0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTExpbmtFbGVtZW50
IEdEb21IVE1MTGlua0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMaW5rRWxlbWVu
dFByaXZhdGUgR0RvbUhUTUxMaW5rRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxNYXBFbGVtZW50Q2xhc3MgR0RvbUhUTUxNYXBFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxNYXBFbGVtZW50IEdEb21IVE1MTWFwRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTE1hcEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTWFwRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXJxdWVlRWxlbWVudENsYXNzIEdEb21IVE1MTWFy
cXVlZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1hcnF1ZWVFbGVtZW50
IEdEb21IVE1MTWFycXVlZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXJxdWVl
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNYXJxdWVlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxNZW51RWxlbWVudENsYXNzIEdEb21IVE1MTWVudUVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1lbnVFbGVtZW50IEdEb21IVE1MTWVudUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZW51RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNZW51
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZXRhRWxlbWVudENsYXNz
IEdEb21IVE1MTWV0YUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1ldGFF
bGVtZW50IEdEb21IVE1MTWV0YUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZXRh
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNZXRhRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxNb2RFbGVtZW50Q2xhc3MgR0RvbUhUTUxNb2RFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxNb2RFbGVtZW50IEdEb21IVE1MTW9kRWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTE1vZEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTW9kRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPYmplY3RFbGVtZW50Q2xhc3MgR0RvbUhU
TUxPYmplY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPYmplY3RFbGVt
ZW50IEdEb21IVE1MT2JqZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9iamVj
dEVsZW1lbnRQcml2YXRlIEdEb21IVE1MT2JqZWN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxPTGlzdEVsZW1lbnRDbGFzcyBHRG9tSFRNTE9MaXN0RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT0xpc3RFbGVtZW50IEdEb21IVE1MT0xpc3RFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT0xpc3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TE9MaXN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRHcm91cEVs
ZW1lbnRDbGFzcyBHRG9tSFRNTE9wdEdyb3VwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MT3B0R3JvdXBFbGVtZW50IEdEb21IVE1MT3B0R3JvdXBFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MT3B0R3JvdXBFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE9wdEdyb3Vw
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25FbGVtZW50Q2xh
c3MgR0RvbUhUTUxPcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxP
cHRpb25FbGVtZW50IEdEb21IVE1MT3B0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTE9wdGlvbkVsZW1lbnRQcml2YXRlIEdEb21IVE1MT3B0aW9uRWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbkNsYXNzIEdEb21IVE1MT3B0
aW9uc0NvbGxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uIEdEb21IVE1MT3B0aW9uc0NvbGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxPcHRpb25zQ29sbGVjdGlvblByaXZhdGUgR0RvbUhUTUxPcHRpb25zQ29sbGVjdGlvblByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Q2xhc3MgR0RvbUhU
TUxQYXJhZ3JhcGhFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50IEdEb21IVE1MUGFyYWdyYXBoRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTFBhcmFncmFwaEVsZW1lbnRQcml2YXRlIEdEb21IVE1MUGFyYWdyYXBoRWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhbUVsZW1lbnRDbGFzcyBHRG9tSFRNTFBh
cmFtRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50IEdE
b21IVE1MUGFyYW1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50
UHJpdmF0ZSBHRG9tSFRNTFBhcmFtRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxQcmVFbGVtZW50Q2xhc3MgR0RvbUhUTUxQcmVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxQcmVFbGVtZW50IEdEb21IVE1MUHJlRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTFByZUVsZW1lbnRQcml2YXRlIEdEb21IVE1MUHJlRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxRdW90ZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFF1b3Rl
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50IEdEb21I
VE1MUXVvdGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTFF1b3RlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxTY3JpcHRFbGVtZW50Q2xhc3MgR0RvbUhUTUxTY3JpcHRFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxTY3JpcHRFbGVtZW50IEdEb21IVE1MU2NyaXB0RWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tSFRNTFNjcmlwdEVsZW1lbnRQcml2YXRlIEdEb21IVE1MU2NyaXB0
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTZWxlY3RFbGVtZW50Q2xh
c3MgR0RvbUhUTUxTZWxlY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxT
ZWxlY3RFbGVtZW50IEdEb21IVE1MU2VsZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTFNlbGVjdEVsZW1lbnRQcml2YXRlIEdEb21IVE1MU2VsZWN0RWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTdHlsZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFN0eWxlRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50IEdEb21IVE1M
U3R5bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50UHJpdmF0
ZSBHRG9tSFRNTFN0eWxlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50IEdEb21IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnRQcml2YXRlIEdEb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUNlbGxF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNlbGxFbGVtZW50IEdE
b21IVE1MVGFibGVDZWxsRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ2Vs
bEVsZW1lbnRQcml2YXRlIEdEb21IVE1MVGFibGVDZWxsRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFzcyBHRG9tSFRNTFRhYmxlQ29sRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDb2xFbGVtZW50IEdEb21I
VE1MVGFibGVDb2xFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDb2xFbGVt
ZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlQ29sRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxUYWJsZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFRhYmxlRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVFbGVtZW50IEdEb21IVE1MVGFibGVFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRh
YmxlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZVJvd0VsZW1l
bnRDbGFzcyBHRG9tSFRNTFRhYmxlUm93RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MVGFibGVSb3dFbGVtZW50IEdEb21IVE1MVGFibGVSb3dFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MVGFibGVSb3dFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlUm93RWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Q2xhc3MgR0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IEdEb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRQcml2YXRlIEdEb21I
VE1MVGFibGVTZWN0aW9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnRDbGFzcyBHRG9tSFRNTFRleHRBcmVhRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MVGV4dEFyZWFFbGVtZW50IEdEb21IVE1MVGV4dEFyZWFFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TFRleHRBcmVhRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUaXRsZUVs
ZW1lbnRDbGFzcyBHRG9tSFRNTFRpdGxlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MVGl0bGVFbGVtZW50IEdEb21IVE1MVGl0bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MVGl0bGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRpdGxlRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxVTGlzdEVsZW1lbnRDbGFzcyBHRG9tSFRNTFVMaXN0
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50IEdEb21I
VE1MVUxpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTFVMaXN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUlt
YWdlRGF0YUNsYXNzIEdEb21JbWFnZURhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSW1h
Z2VEYXRhIEdEb21JbWFnZURhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUltYWdlRGF0YVByaXZh
dGUgR0RvbUltYWdlRGF0YVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUphdmFTY3JpcHRD
YWxsRnJhbWVDbGFzcyBHRG9tSmF2YVNjcmlwdENhbGxGcmFtZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21KYXZhU2NyaXB0Q2FsbEZyYW1lIEdEb21KYXZhU2NyaXB0Q2FsbEZyYW1lOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21KYXZhU2NyaXB0Q2FsbEZyYW1lUHJpdmF0ZSBHRG9tSmF2YVNjcmlw
dENhbGxGcmFtZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUtleWJvYXJkRXZlbnRDbGFz
cyBHRG9tS2V5Ym9hcmRFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXlib2FyZEV2
ZW50IEdEb21LZXlib2FyZEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXlib2FyZEV2ZW50
UHJpdmF0ZSBHRG9tS2V5Ym9hcmRFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxv
Y2F0aW9uQ2xhc3MgR0RvbUxvY2F0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxvY2F0
aW9uIEdEb21Mb2NhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTG9jYXRpb25Qcml2YXRlIEdE
b21Mb2NhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lZGlhTGlzdENsYXNzIEdE
b21NZWRpYUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWVkaWFMaXN0IEdEb21NZWRp
YUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lZGlhTGlzdFByaXZhdGUgR0RvbU1lZGlhTGlz
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VFdmVudENsYXNzIEdEb21NZXNz
YWdlRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWVzc2FnZUV2ZW50IEdEb21NZXNz
YWdlRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VFdmVudFByaXZhdGUgR0RvbU1l
c3NhZ2VFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVUeXBlQXJyYXlDbGFz
cyBHRG9tTWltZVR5cGVBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUFy
cmF5IEdEb21NaW1lVHlwZUFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUFycmF5
UHJpdmF0ZSBHRG9tTWltZVR5cGVBcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1p
bWVUeXBlQ2xhc3MgR0RvbU1pbWVUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVU
eXBlIEdEb21NaW1lVHlwZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWltZVR5cGVQcml2YXRlIEdE
b21NaW1lVHlwZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1vdXNlRXZlbnRDbGFzcyBH
RG9tTW91c2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3VzZUV2ZW50IEdEb21N
b3VzZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3VzZUV2ZW50UHJpdmF0ZSBHRG9tTW91
c2VFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU11dGF0aW9uRXZlbnRDbGFzcyBH
RG9tTXV0YXRpb25FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlvbkV2ZW50
IEdEb21NdXRhdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlvbkV2ZW50UHJp
dmF0ZSBHRG9tTXV0YXRpb25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hbWVk
Tm9kZU1hcENsYXNzIEdEb21OYW1lZE5vZGVNYXBDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
TmFtZWROb2RlTWFwIEdEb21OYW1lZE5vZGVNYXA7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hbWVk
Tm9kZU1hcFByaXZhdGUgR0RvbU5hbWVkTm9kZU1hcFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbU5hdmlnYXRvckNsYXNzIEdEb21OYXZpZ2F0b3JDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tTmF2aWdhdG9yIEdEb21OYXZpZ2F0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hdmlnYXRv
clByaXZhdGUgR0RvbU5hdmlnYXRvclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVD
bGFzcyBHRG9tTm9kZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlRmlsdGVyQ2xhc3Mg
R0RvbU5vZGVGaWx0ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUZpbHRlciBHRG9t
Tm9kZUZpbHRlcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUZpbHRlclByaXZhdGUgR0RvbU5v
ZGVGaWx0ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlIEdEb21Ob2RlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlSXRlcmF0b3JDbGFzcyBHRG9tTm9kZUl0ZXJhdG9yQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVJdGVyYXRvciBHRG9tTm9kZUl0ZXJhdG9yOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlSXRlcmF0b3JQcml2YXRlIEdEb21Ob2RlSXRlcmF0b3JQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlTGlzdENsYXNzIEdEb21Ob2RlTGlzdENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlTGlzdCBHRG9tTm9kZUxpc3Q7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbU5vZGVMaXN0UHJpdmF0ZSBHRG9tTm9kZUxpc3RQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21Ob2RlUHJpdmF0ZSBHRG9tTm9kZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbU5vdGF0aW9uQ2xhc3MgR0RvbU5vdGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bU5vdGF0aW9uIEdEb21Ob3RhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm90YXRpb25Qcml2
YXRlIEdEb21Ob3RhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU92ZXJmbG93RXZl
bnRDbGFzcyBHRG9tT3ZlcmZsb3dFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21PdmVy
Zmxvd0V2ZW50IEdEb21PdmVyZmxvd0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21PdmVyZmxv
d0V2ZW50UHJpdmF0ZSBHRG9tT3ZlcmZsb3dFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVBsdWdpbkFycmF5Q2xhc3MgR0RvbVBsdWdpbkFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVBsdWdpbkFycmF5IEdEb21QbHVnaW5BcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
UGx1Z2luQXJyYXlQcml2YXRlIEdEb21QbHVnaW5BcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVBsdWdpbkNsYXNzIEdEb21QbHVnaW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
UGx1Z2luIEdEb21QbHVnaW47Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVBsdWdpblByaXZhdGUgR0Rv
bVBsdWdpblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlv
bkNsYXNzIEdEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uIEdEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb247Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvblByaXZhdGUgR0RvbVByb2Nlc3Np
bmdJbnN0cnVjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVByb2dyZXNzRXZlbnRD
bGFzcyBHRG9tUHJvZ3Jlc3NFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9ncmVz
c0V2ZW50IEdEb21Qcm9ncmVzc0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9ncmVzc0V2
ZW50UHJpdmF0ZSBHRG9tUHJvZ3Jlc3NFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVJhbmdlQ2xhc3MgR0RvbVJhbmdlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJhbmdlRXhj
ZXB0aW9uQ2xhc3MgR0RvbVJhbmdlRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVJhbmdlRXhjZXB0aW9uIEdEb21SYW5nZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
UmFuZ2VFeGNlcHRpb25Qcml2YXRlIEdEb21SYW5nZUV4Y2VwdGlvblByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVJhbmdlIEdEb21SYW5nZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUmFuZ2VQ
cml2YXRlIEdEb21SYW5nZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJlY3RDbGFzcyBH
RG9tUmVjdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21SZWN0IEdEb21SZWN0OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21SZWN0UHJpdmF0ZSBHRG9tUmVjdFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVNjcmVlbkNsYXNzIEdEb21TY3JlZW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
U2NyZWVuIEdEb21TY3JlZW47Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNjcmVlblByaXZhdGUgR0Rv
bVNjcmVlblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTEVycm9yQ2xhc3MgR0RvbVNR
TEVycm9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTEVycm9yIEdEb21TUUxFcnJvcjsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMRXJyb3JQcml2YXRlIEdEb21TUUxFcnJvclByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldENsYXNzIEdEb21TUUxSZXN1bHRTZXRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMUmVzdWx0U2V0IEdEb21TUUxSZXN1bHRTZXQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldFByaXZhdGUgR0RvbVNRTFJlc3VsdFNl
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzcyBH
RG9tU1FMUmVzdWx0U2V0Um93TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxSZXN1
bHRTZXRSb3dMaXN0IEdEb21TUUxSZXN1bHRTZXRSb3dMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21TUUxSZXN1bHRTZXRSb3dMaXN0UHJpdmF0ZSBHRG9tU1FMUmVzdWx0U2V0Um93TGlzdFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0aW9uQ2xhc3MgR0RvbVNRTFRyYW5z
YWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0aW9uIEdEb21TUUxU
cmFuc2FjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMVHJhbnNhY3Rpb25Qcml2YXRlIEdE
b21TUUxUcmFuc2FjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0b3JhZ2VDbGFz
cyBHRG9tU3RvcmFnZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlRXZlbnRDbGFz
cyBHRG9tU3RvcmFnZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0b3JhZ2VFdmVu
dCBHRG9tU3RvcmFnZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlRXZlbnRQcml2
YXRlIEdEb21TdG9yYWdlRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdl
IEdEb21TdG9yYWdlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlUHJpdmF0ZSBHRG9tU3Rv
cmFnZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0eWxlU2hlZXRDbGFzcyBHRG9tU3R5
bGVTaGVldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0IEdEb21TdHlsZVNo
ZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0TGlzdENsYXNzIEdEb21TdHlsZVNo
ZWV0TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0TGlzdCBHRG9tU3R5
bGVTaGVldExpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0eWxlU2hlZXRMaXN0UHJpdmF0ZSBH
RG9tU3R5bGVTaGVldExpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0
UHJpdmF0ZSBHRG9tU3R5bGVTaGVldFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVRleHRD
bGFzcyBHRG9tVGV4dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0RXZlbnRDbGFzcyBH
RG9tVGV4dEV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVRleHRFdmVudCBHRG9tVGV4
dEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0RXZlbnRQcml2YXRlIEdEb21UZXh0RXZl
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0IEdEb21UZXh0OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21UZXh0UHJpdmF0ZSBHRG9tVGV4dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVRyZWVXYWxrZXJDbGFzcyBHRG9tVHJlZVdhbGtlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21UcmVlV2Fsa2VyIEdEb21UcmVlV2Fsa2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UcmVl
V2Fsa2VyUHJpdmF0ZSBHRG9tVHJlZVdhbGtlclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVVJRXZlbnRDbGFzcyBHRG9tVUlFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21VSUV2
ZW50IEdEb21VSUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21VSUV2ZW50UHJpdmF0ZSBHRG9t
VUlFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
Q2xhc3MgR0RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50IEdEb21XZWJLaXRBbmltYXRpb25FdmVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tV2ViS2l0QW5pbWF0aW9uRXZlbnRQcml2YXRlIEdEb21XZWJLaXRBbmltYXRp
b25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlQ2xhc3MgR0RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlIEdEb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVQcml2YXRlIEdE
b21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdl
YktpdFRyYW5zaXRpb25FdmVudENsYXNzIEdEb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50IEdEb21XZWJLaXRUcmFu
c2l0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdFRyYW5zaXRpb25FdmVudFBy
aXZhdGUgR0RvbVdlYktpdFRyYW5zaXRpb25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVdoZWVsRXZlbnRDbGFzcyBHRG9tV2hlZWxFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21XaGVlbEV2ZW50IEdEb21XaGVlbEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XaGVl
bEV2ZW50UHJpdmF0ZSBHRG9tV2hlZWxFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVhNTEh0dHBSZXF1ZXN0Q2xhc3MgR0RvbVhNTEh0dHBSZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3MgR0RvbVhNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uIEdEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb25Qcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvblBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0IEdEb21YTUxIdHRwUmVx
dWVzdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1MSHR0cFJlcXVlc3RQcml2YXRlIEdEb21YTUxI
dHRwUmVxdWVzdFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudENsYXNzIEdEb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50IEdEb21YTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudFByaXZhdGUgR0RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3MgR0RvbVhN
TEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1
ZXN0VXBsb2FkIEdEb21YTUxIdHRwUmVxdWVzdFVwbG9hZDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
WE1MSHR0cFJlcXVlc3RVcGxvYWRQcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdFVwbG9hZFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTFNlcmlhbGl6ZXJDbGFzcyBHRG9tWE1MU2VyaWFs
aXplckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyIEdEb21YTUxTZXJp
YWxpemVyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyUHJpdmF0ZSBHRG9tWE1M
U2VyaWFsaXplclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXZhbHVhdG9yQ2xh
c3MgR0RvbVhQYXRoRXZhbHVhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXZh
bHVhdG9yIEdEb21YUGF0aEV2YWx1YXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhFdmFs
dWF0b3JQcml2YXRlIEdEb21YUGF0aEV2YWx1YXRvclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVhQYXRoRXhjZXB0aW9uQ2xhc3MgR0RvbVhQYXRoRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVhQYXRoRXhjZXB0aW9uIEdEb21YUGF0aEV4Y2VwdGlvbjsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tWFBhdGhFeGNlcHRpb25Qcml2YXRlIEdEb21YUGF0aEV4Y2VwdGlvblByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhwcmVzc2lvbkNsYXNzIEdEb21YUGF0aEV4
cHJlc3Npb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhFeHByZXNzaW9uIEdEb21Y
UGF0aEV4cHJlc3Npb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhwcmVzc2lvblByaXZh
dGUgR0RvbVhQYXRoRXhwcmVzc2lvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRo
TlNSZXNvbHZlckNsYXNzIEdEb21YUGF0aE5TUmVzb2x2ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tWFBhdGhOU1Jlc29sdmVyIEdEb21YUGF0aE5TUmVzb2x2ZXI7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVhQYXRoTlNSZXNvbHZlclByaXZhdGUgR0RvbVhQYXRoTlNSZXNvbHZlclByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoUmVzdWx0Q2xhc3MgR0RvbVhQYXRoUmVzdWx0Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoUmVzdWx0IEdEb21YUGF0aFJlc3VsdDsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhSZXN1bHRQcml2YXRlIEdEb21YUGF0aFJlc3VsdFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhTTFRQcm9jZXNzb3JDbGFzcyBHRG9tWFNMVFByb2Nl
c3NvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yIEdEb21YU0xUUHJv
Y2Vzc29yOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yUHJpdmF0ZSBHRG9tWFNM
VFByb2Nlc3NvclByaXZhdGU7CisqLworCitHX0VORF9ERUNMUworCisjZW5kaWYKSW5kZXg6IFdl
YkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNv
cHkpCkBAIC05LDYgKzksNyBAQAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMgOj0gJChXZWJD
b3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlIFwKIAktSSQoc3Jj
ZGlyKS9XZWJDb3JlL3BsYXRmb3JtIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsgXApAQCAtMjksNiArMzAsNyBAQAogCS1JJChzcmNkaXIpL1dlYkNvcmUveG1sIFwKIAkt
SSQoc3JjZGlyKS9XZWJDb3JlL2h0bWwgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3Mv
anMgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbSBcCiAJLUkkKHNyY2Rpcikv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvZ2lmIFwKQEAgLTU1LDcgKzU3LDcgQEAKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2
ZW50VGFyZ2V0QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1
dC5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5j
cHAKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAg
CiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvQ1NTR3JhbW1h
ci5jcHAgXApAQCAtMzU4LDcgKzM2MCw1ODcgQEAKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRT
dHlsZVNoZWV0cy5oIFwKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hN
TE5hbWVzLmgKKwlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQXR0ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21BdHRyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUJhckluZm8uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTRm9u
dEZhY2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNTU01lZGlhUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NNZWRpYVJ1bGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUNTU1BhZ2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQcmltaXRpdmVWYWx1
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQcmltaXRpdmVWYWx1ZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQ1NTUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21DU1NSdWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5bGVEZWNs
YXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVNoZWV0
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1N0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ZhbHVlLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYWx1ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNE
ZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNEZWNsYXJh
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21DYW52YXNHcmFkaWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNHcmFkaWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2FudmFzUGF0dGVybi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21DYW52YXNQYXR0ZXJuLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNQ
aXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1BpeGVsQXJyYXkuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2hhcmFj
dGVyRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ29tbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Db21tZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvbnNvbGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ291bnRlci5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NQ29yZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01J
bXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01JbXBsZW1lbnRhdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NU2VsZWN0aW9uLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVdpbmRvdy5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
RG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50RnJhZ21lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50VHlw
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHkuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHlSZWZl
cmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5UmVmZXJlbmNlLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21FdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUZpbGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmls
ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZUxpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxBbmNob3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXBwbGV0RWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXBwbGV0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJSRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQlJFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJh
c2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxC
b2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQm9keUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
Q2FudmFzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQ2FudmFzRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxE
TGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERMaXN0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxEaXZFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MRW1iZWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRmllbGRTZXRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGb3JtRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRm9ybUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZyYW1lU2V0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRnJhbWVTZXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIZWFkRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxIZWFkaW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIdG1s
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSHRtbEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSW1h
Z2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTElucHV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTElz
SW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJc0luZGV4RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExJRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTGFi
ZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMYWJlbEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
TGlua0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExpbmtFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MTWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1hcnF1
ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXJxdWVlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1lbnVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1l
dGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZXRhRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPTGlzdEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPcHRH
cm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdEdyb3VwRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUGFyYW1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQcmVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQcmVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTY3JpcHRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFN0
eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU3R5bGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZUNv
bEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
VGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVJvd0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxU
aXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRpdGxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IaXN0
b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21JbWFnZURhdGEuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
S2V5Ym9hcmRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21LZXlib2FyZEV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21Mb2NhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVzc2Fn
ZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWltZVR5
cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1pbWVUeXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTW91c2VF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21NdXRhdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU11dGF0
aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5h
dmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21O
b2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlSXRlcmF0b3IuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21O
b2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm90YXRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU92ZXJmbG93RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2luLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVBsdWdpbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
UGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2luQXJyYXkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJvZ3Jlc3NFdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
UmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21S
ZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TY3JlZW4uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVT
aGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRl
eHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGV4dC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHRFdmVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21U
cmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdEFuaW1h
dGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2hlZWxF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxI
dHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
WE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxTZXJpYWxpemVyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVhTTFRQcm9jZXNzb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21BdHRyLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21BdHRyLmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tQmFySW5mby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQmFySW5mby5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tQ0RBVEFTZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NT
Q2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU0NoYXJzZXRSdWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTRm9udEZhY2VSdWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NJ
bXBvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTTWVkaWFSdWxlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NNZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21DU1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NT
UGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NQcmltaXRpdmVWYWx1ZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUnVsZUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1N0
eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVSdWxlLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNT
U1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NWYWx1ZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFi
bGVzRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhcmlhYmxl
c0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVzUnVs
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVzUnVsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNh
bnZhc1BhdHRlcm4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNhbnZhc1BhdHRlcm4u
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21DaGFyYWN0ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DaGFyYWN0
ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Db21tZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50ZXIuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01Db3Jl
RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NSW1wbGVtZW50YXRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21ET01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01TZWxlY3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbURPTVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
RE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1l
bnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50VHlwZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUVudGl0eS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRW50aXR5UmVm
ZXJlbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FbnRpdHlSZWZlcmVuY2UuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVudEV4Y2VwdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21GaWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21GaWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUZpbGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFu
Y2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBbmNob3JFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFwcGxldEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQlJF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQlJFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJhc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
QmFzZUZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJsb2NrcXVv
dGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQmxvY2txdW90ZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQm9keUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MQnV0dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxD
YW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ2FudmFzRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxDb2xsZWN0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRGlyZWN0
b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpcmVjdG9yeUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRGl2RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxFbWJlZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRmllbGRTZXRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MRm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGcmFtZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGcmFtZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxIZWFkRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MSHRtbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxI
dG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJRnJhbWVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSUZyYW1lRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MSW5wdXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSW5w
dXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElzSW5kZXhFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TExhYmVsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTExhYmVsRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTGVnZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1h
cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNYXBFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNZXRhRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1ldGFFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE9MaXN0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPYmplY3RFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRpb25zQ29sbGVj
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MUHJlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFByZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TFNlbGVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxTZWxlY3RF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJs
ZUNvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGl0bGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGl0bGVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhpc3RvcnkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21JbWFnZURhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUphdmFTY3JpcHRD
YWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUphdmFTY3JpcHRDYWxsRnJh
bWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tTG9jYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUxvY2F0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NZXNzYWdl
RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlQXJyYXku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0YXRpb25FdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTmF2aWdhdG9yLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21Ob2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Ob2RlLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tTm9kZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vZGVJdGVy
YXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUl0ZXJhdG9yLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm90YXRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vdGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tT3ZlcmZs
b3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUGx1
Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbkFycmF5LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Qcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmFuZ2UuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdlRXhj
ZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmVjdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNjcmVlbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU2NyZWVuLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3R5bGVT
aGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0eWxlU2hlZXRMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRleHQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRyZWVXYWxrZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21VSUV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21XaGVlbEV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1M
SHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxTZXJpYWxp
emVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxTZXJpYWxpemVyLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5oICBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01I
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dE
T01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggCiAKIElETF9CSU5ESU5HUyArPSAgXAogCVdl
YkNvcmUvY3NzL0NvdW50ZXIuaWRsIFwKQEAgLTcwMSw2ICsxMjgzLDE2IEBACiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJv
dmlkZXIuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9nZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21ET01PYmpl
Y3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmNwcCBcCisJ
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL2dkb21FdmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZn
ZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9t
RXZlbnRUYXJnZXROb2RlLmggXAogCVdlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcCBcCiAJ
V2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuaCBcCiAJV2ViQ29yZS9icmlkZ2UvYy9jX2NsYXNz
LmNwcCBcCkBAIC0yMDEwLDcgKzI2MDIsOSBAQAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCiAKIHdlYmNvcmVfYnVpbHRfc291
cmNlcyArPSBcCi0JRGVyaXZlZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcAorCURl
cml2ZWRTb3VyY2VzL0pTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21E
T01BcHBsaWNhdGlvbkNhY2hlLmNwcAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsCkBAIC0yMDYzLDcgKzI2NTcsMjcg
QEAKIAlEZXJpdmVkU291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxU
cmFuc2FjdGlvbi5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaAorCURl
cml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURh
dGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURhdGFiYXNlLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TUUxFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxFcnJvci5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMUmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMUmVzdWx0U2V0
Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TUUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURhdGFi
YXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbVNRTEVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21T
UUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNldC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMUmVzdWx0U2V0LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFRy
YW5zYWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxUcmFuc2FjdGlvbi5o
CiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmlkbCBcCkBA
IC0yMTQzLDcgKzI3NTcsMTUgQEAKIAlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2UuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy9KU1N0b3JhZ2UuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZl
bnQuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5oCisJRGVyaXZlZFNvdXJj
ZXMvSlNTdG9yYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0b3JhZ2UuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3Rv
cmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0b3JhZ2VFdmVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0b3JhZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TdG9yYWdlRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0b3JhZ2VFdmVudC5oCiAKIElETF9CSU5ESU5H
UyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKQEAgLTIyMjUsNyArMjg0Nywz
NSBAQAogCURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L0pTVGltZVJhbmdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5jcHAgXAot
CURlcml2ZWRTb3VyY2VzL0pTVm9pZENhbGxiYWNrLmgKKwlEZXJpdmVkU291cmNlcy9KU1ZvaWRD
YWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEF1ZGlvRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXVkaW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZWRp
YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTb3VyY2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxW
aWRlb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tTWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGlt
ZVJhbmdlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21UaW1lUmFuZ2VzLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVm9p
ZENhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEF1ZGlvRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxNZWRpYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFNvdXJj
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVmlkZW9FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tTWVkaWFFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tTWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRpbWVSYW5nZXMuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRpbWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVZv
aWRDYWxsYmFjay5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9odG1sL0hUTUxBdWRp
b0VsZW1lbnQuaWRsIFwKQEAgLTIyODQsNyArMjkzNCwyNyBAQAogCURlcml2ZWRTb3VyY2VzL0pT
WFBhdGhSZXN1bHQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVzdWx0LmggXAogCURl
cml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hQYXRoR3Jh
bW1hci5oCisJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21YUGF0aEV2YWx1YXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV2YWx1
YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhFeGNlcHRpb24uY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tWFBhdGhFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQ
YXRoRXhwcmVzc2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4cHJlc3Npb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRo
UmVzdWx0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoUmVzdWx0LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbVhQYXRoRXZhbHVhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhF
eGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoRXhjZXB0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhFeHByZXNzaW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV4cHJlc3Npb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRo
TlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoUmVzdWx0LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aFJlc3VsdC5oCiAKIElETF9CSU5ESU5HUyAr
PSBcCiAJV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaWRsIFwKQEAgLTI2NDksNiArMzMxOSwy
NzMgQEAKIAlEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hM
aW5rTmFtZXMuY3BwCiAKK25vdC15ZXQ6CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdBbHRHbHlwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
QWx0R2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmdsZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRl
Q29sb3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FuaW1hdGVkQW5nbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQm9vbGVhbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdBbmltYXRlZEVudW1lcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmlt
YXRlZEludGVnZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRJbnRlZ2Vy
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZExlbmd0aC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZExlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1h
dGVkTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWROdW1iZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWROdW1iZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Fu
aW1hdGVkUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFJlY3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkU3RyaW5nLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0FuaW1hdGVkU3RyaW5nLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRpb25FbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NpcmNsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHQ2lyY2xlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQ2xpcFBh
dGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NsaXBQYXRoRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQ29sb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDdXJzb3JF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0N1cnNvckVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0RlZmluaXRpb25TcmNFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0RlZmluaXRpb25TcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdEZWZzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZzRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHRGVzY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0RvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0RvY3VtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFuY2UuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxl
bWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0VsbGlwc2VF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUJsZW5kRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUJsZW5kRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVDb21w
b3NpdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdGRUZsb29kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jQUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jQUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0ZFRnVuY0JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZ1
bmNHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNHRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRkVGdW5jUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFSW1hZ2VFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdGRU1lcmdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGRU1lcmdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVPZmZzZXRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGRVBvaW50TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFU3BvdExpZ2h0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFVGlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRkVUaWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVR1cmJ1
bGVuY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGaWx0ZXJFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0ZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Zv
bnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGb250RmFjZU5hbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRG
YWNlTmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlU3JjRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdHRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHR2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ds
eXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR3JhZGllbnRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0dyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGVuZ3RoLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
TGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMZW5ndGhMaXN0LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdMaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdMaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWFya2VyRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdNYXJrZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdNYXNrRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWF0cml4LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWV0YWRhdGFF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01ldGFkYXRhRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdOdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTnVtYmVyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdOdW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR051bWJlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhaW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhaW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjQWJz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdBcmNBYnMuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdBcmNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHUGF0aFNlZ0FyY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0Nsb3Nl
UGF0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0
aFNlZ0xpbmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRv
UmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdQYXRoU2VnTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0
b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTW92ZXRvQWJzLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R1BhdHRlcm5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdHRlcm5FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2ludC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdQb2ludC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9pbnRMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvaW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUG9seWdvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9s
eWdvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvbHlsaW5lRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2x5bGluZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdSZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdS
ZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdSZWN0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVuZGVyaW5nSW50ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1JlbmRlcmluZ0ludGVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
U1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTVkdFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NldEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU2V0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHU3RvcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHU3RvcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0cmluZ0xpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU3RyaW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHU3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0eWxl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdTd2l0Y2hFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdTeW1ib2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N5bWJv
bEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RSZWZFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RSZWZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVFNwYW5FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdUZXh0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdU
ZXh0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGl0bGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUcmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHVHJhbnNmb3JtLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUcmFu
c2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1VuaXRUeXBlcy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdVbml0VHlwZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1VzZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHVmlld0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVmll
d0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1pvb21FdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdab29tRXZlbnQuaCAKKwogSURMX0JJTkRJTkdTICs9IFwKIAlX
ZWJDb3JlL3N2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsIFwKIAlXZWJDb3JlL3N2Zy9TVkdBRWxl
bWVudC5pZGwgXApAQCAtMzI2NSwxMyArNDIwMiwxNCBAQAogIyBTVkcgdGFnIGFuZCBhdHRyaWJ1
dGUgbmFtZXMgKG5lZWQgdG8gcGFzcyBhbiBleHRyYSBmbGFnIGlmIHN2ZyBleHBlcmltZW50YWwg
ZmVhdHVyZXMgYXJlIGVuYWJsZWQpCiBEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHA6IERlcml2
ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDsKIERlcml2ZWRTb3VyY2VzL0pTU1ZHRWxl
bWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3Rvcnku
Y3BwCitEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVy
aXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwogRGVyaXZl
ZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVz
LnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4K
LQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNv
cmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1l
eHRyYURlZmluZXMgIiQoU1ZHX0ZFQVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUyki
CisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJD
b3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0t
ZXh0cmFEZWZpbmVzICIkKFNWR19GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMp
IiAtLWJpbmRpbmdUeXBlIEpTCiBlbHNlCiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9y
eS5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcvc3ZndGFn
cy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2Jp
bmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRy
cyAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIK
KwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNv
cmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1v
dXRwdXREaXIgIiQoR0VOU09VUkNFUykiIC0tYmluZGluZ1R5cGUgSlMKIAogZW5kaWYgIyBTVkdf
RkxBR1MKIApAQCAtMzI4MCw3ICs0MjE4LDcgQEAKIERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMu
aDogRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2VzL1hMaW5r
TmFtZXMuY3BwIDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy94
bGlua2F0dHJzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAt
LWF0dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09V
UkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJz
ICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUyki
IC0tYmluZGluZ1R5cGUgSlMKIAogZW5kaWYgIyBFTkQgRU5BQkxFX1NWRwogCkBAIC0zMzYxLDE2
ICs0Mjk5LDE2IEBACiAKIGlmIEhUTUxfRkxBR1MKIERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5j
cHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdO
YW1lcy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAt
SSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hU
TUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4gLS1leHRyYURlZmluZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNP
VVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdz
ICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwv
SFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKEhUTUxfRkVBVFVSRVMpIiAt
LW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgLS1iaW5kaW5nVHlwZSBKUwogZWxzZQogRGVyaXZl
ZFNvdXJjZXMvSFRNTE5hbWVzLmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdl
YkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFn
cyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIKKwkkKFBF
UkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0
bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgLS1iaW5kaW5nVHlwZSBKUwogZW5k
aWYgIyBIVE1MX0ZMQUdTCiAKIERlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmg6IERlcml2ZWRTb3Vy
Y2VzL1hNTE5hbWVzLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwOiAkKFdlYkNv
cmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluCi0JJChQRVJM
KSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1s
L3htbGF0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdl
YkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRy
cy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgLS1iaW5kaW5nVHlwZSBKUwogCiB2cGF0
aCAlLmlkbCA9IFwKICAgICAkKFdlYkNvcmUpIFwKQEAgLTMzODYsNiArNDMyNCwxNSBAQAogICAg
ICQoV2ViQ29yZSkveG1sIFwKICAgICAkKFdlYkNvcmUpL3BsdWdpbnMKIAorRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dkb20lLmg7CisKK0Rlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tJS5jcHA6IERlcml2ZWRTb3VyY2VzL2dkb20lLmNwcDsKKworRGVyaXZlZFNvdXJj
ZXMvZ2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9n
ZG9tJS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGlu
Z3MucGwgLS1pbmNsdWRlICQoV2ViQ29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUpL2h0bWwg
LS1pbmNsdWRlICQoV2ViQ29yZSkvY3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2UgLS1pbmNs
dWRlICQoV2ViQ29yZSkveG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1dERpciAi
JChHRU5TT1VSQ0VTKSIgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUKSIg
LS1nZW5lcmF0b3IgR09iamVjdCAkPAorCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNv
dXJjZXMvSlMlLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRT
X0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CkBAIC0zNDAxLDYgKzQzNDgsNyBAQAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVz
UGFyc2VyLnBtIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3Mu
cGwgXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gXAorCVdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBcCiAJV2ViQ29y
ZS9jc3MvaHRtbDQuY3NzIFwKIAlXZWJDb3JlL2Nzcy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nz
cy92aWV3LXNvdXJjZS5jc3MgXApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVu
dFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9nZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5n
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcu
aCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tRXZlbnRUYXJn
ZXROb2RlLmgiCisjaW5jbHVkZSAicHJpdmdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRl
ICJnbGliLW9iamVjdC5oIgorCitjbGFzcyBHU3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgor
ICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJp
bmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAg
R1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBn
X3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9Cit9OworCitleHRlcm4gIkMiIHsK
KworI2RlZmluZSBfR19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKQor
Cit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdk
b21FdmVudFRhcmdldE5vZGUgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
CisJLyoKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtID0gZ2RvbV9ldmVudF90
YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh0aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZXZl
bnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJpbmcoZXZlbnRfdGFyZ2V0X25v
ZGVfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRFdmVudFRhcmdldE5vZGUoX2dfZXZlbnRfdGFy
Z2V0X25vZGVfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRh
cmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAi
Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZnZG9tRXZlbnRUYXJnZXROb2Rl
LmgiCisjaW5jbHVkZSAiaW50Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZn
ZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKwor
V2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21F
dmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZSAqcmVz
OworCXJlcyA9IHN0YXRpY19jYXN0PEdET01FdmVudFRhcmdldE5vZGUqPihnZG9tX2RvbV9vYmpl
Y3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7CisJcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHJlcy0+aW1wbCgpKTsKK30KKworCitleHRlcm4g
IkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRXZlbnRUYXJnZXROb2RlLCBnZG9tX2V2ZW50X3Rh
cmdldF9ub2RlLCBHRE9NX1RZUEVfTk9ERSk7CisKKy8qCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdl
dE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKml0ZW07
Cit9OyAgCisqLworCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUo
b2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRf
VEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKSkKKworLyoKK3ZvaWQKK2dk
b21fZXZlbnRfdGFyZ2V0X25vZGVfc2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVx
dWVzdCwgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSkKK3sKKyAgICBHZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZB
VEUocmVxdWVzdCk7CisgICAgcHJpdi0+aXRlbSA9IGl0ZW07Cit9CisqLworCitzdGF0aWMgdm9p
ZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAg
ICAvKkdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RF
KG9iamVjdCk7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSByZXF1ZXN0
LT5wcml2OyovCisgICAgCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQoR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKiBy
ZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxp
emUgPSBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplOworICAgIAorICAgIC8qZ190eXBl
X2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21FdmVudFRhcmdldE5v
ZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9p
bml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJn
ZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUo
cmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworfSAvKiBleHRl
cm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXRO
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdl
dE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRU
YXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR2RvbUV2ZW50VGFy
Z2V0Tm9kZV9IX18KKyNkZWZpbmUgX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXworI2luY2x1ZGUg
ImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+CisKK0dfQkVH
SU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50
VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2Rv
bUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOworCisjZGVmaW5lIEdET01fVFlQRV9FVkVOVF9UQVJHRVRf
Tk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZl
bnRUYXJnZXROb2RlKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFz
cykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRf
VEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVDbGFzcykpCisjZGVmaW5lIEdET01fSVNf
RVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9JU19F
VkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChr
bGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2RlZmluZSBHRE9NX0VWRU5U
X1RBUkdFVF9OT0RFX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNs
YXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIEdkb21F
dmVudFRhcmdldE5vZGVQcml2YXRlOworCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKworc3RydWN0
IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7CisK
KyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2Rv
bUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFzczsK
K307CisKK1dFQktJVF9HRE9NX0FQSSBHVHlwZQorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRf
dHlwZSAodm9pZCk7CisKK1dFQktJVF9HRE9NX0FQSSB2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9u
b2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXopOwor
CitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXyAqLwor
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5v
ZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50
VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTUV2ZW50
VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19Q
UklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAicHJpdmdkb21Ob2RlLmgi
CitjbGFzcyBXZWJDb3JlOjpOb2RlOworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0
Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOworCitXRUJLSVRfR0RPTV9BUEkgV2ViQ29yZTo6Tm9k
ZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5v
ZGUgKnJlcXVlc3QpOworCisjZW5kaWYKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dk
b21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJnZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworZXh0ZXJuICJD
IiB7CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01PYmpl
Y3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisJLyoKKyAgICBXZWJD
b3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKHRoaXop
OworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0X3R5cGVfYXJnID0gV2ViQ29yZTo6
U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRET01PYmplY3QoX2df
ZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGli
LW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJnZG9tRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0Lmgi
CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKEdkb21ET01PYmplY3QsIGdkb21fZG9t
X29iamVjdCwgR19UWVBFX09CSkVDVCk7CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdFByaXZhdGUg
eworICAgICBHRE9NT2JqZWN0ICptX25vZGU7Cit9OyAgCisKKyNkZWZpbmUgR0RPTV9ET01fT0JK
RUNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2Rv
bV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmpl
Y3QgKiBpdGVtKQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01f
T0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07Cisg
ICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitn
ZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAg
ICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFU
RShyZXF1ZXN0KTsKKyAgICByZXR1cm4gcHJpdi0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBn
ZG9tX2RvbV9vYmplY3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01P
YmplY3QqIHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2Jq
ZWN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgCisgICAgLypwcml2LT5tX25v
ZGUtPmltcGwoKS0+ZGVyZWYoKTsqLworCWRlbGV0ZSBwcml2LT5tX25vZGU7IC8qIGNhbGxzIG1f
aW1wbC0+ZGVyZWYoKSAqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9kb21fb2JqZWN0X3Bh
cmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9t
X29iamVjdF9jbGFzc19pbml0KEdkb21ET01PYmplY3RDbGFzcyogcmVxdWVzdENsYXNzKQorewor
ICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9kb21fb2Jq
ZWN0X2ZpbmFsaXplOworICAgIAorICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0
Q2xhc3MsIHNpemVvZihHZG9tRE9NT2JqZWN0UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9pZCBn
ZG9tX2RvbV9vYmplY3RfaW5pdChHZG9tRE9NT2JqZWN0KiByZXF1ZXN0KQoreworICAgIEdkb21E
T01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVl
c3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OworfSAgIAorCit9IC8qIGV4dGVybiAiQyIg
Ki8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NzcgQEAKKy8qCisgKiBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFU
RUQsIERPIE5PVCBFRElULgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgImdkb21IVE1MQW5jaG9yRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb21IVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MQXJl
YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJsb2NrcXVvdGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b21IVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxCdXR0b25FbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbUhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTERpcmVj
dG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MRW1iZWRFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
SFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGcmFtZVNl
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSFJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSUZy
YW1lRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
SFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTExJRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE1hcEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bUhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE9MaXN0
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxQYXJhZ3JhcGhF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFF1b3RlRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb21IVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MU2Vs
ZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MVGl0bGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxBbmNob3JF
bGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiaW50Z2RvbUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MQmFzZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1
ZGUgImludGdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRN
TEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJpbnRnZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTENh
bnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRGlyZWN0b3J5RWxl
bWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxFbWJlZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUg
ImludGdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEZvcm1FbGVt
ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSGVhZGlu
Z0VsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiaW50Z2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEh0bWxFbGVt
ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJpbnRnZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTGVnZW5k
RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTWFwRWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxNZXRhRWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxPcHRHcm91cEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJpbnRnZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFBh
cmFtRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1
ZGUgImludGdkb21IVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxTY3Jp
cHRFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5j
bHVkZSAiaW50Z2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRh
YmxlRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5o
IgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxUaXRsZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1
ZGUgImludGdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KworI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFwcGxldEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFz
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCdXR0b25FbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDYXB0
aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRExpc3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9y
bUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkaW5nRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIUkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExh
YmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTExJRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1ldGFFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT0xpc3RFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPcHRp
b25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxVTGlz
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBHRE9NTm9kZSogKCpDcmVh
dGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4pOwor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFuY2hvcldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQW5jaG9yRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcHBsZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFwcGxldEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEFwcGxldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXJlYUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZUJhc2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxCYXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVCYXNlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxCYXNlRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmxvY2txdW90ZUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEJsb2NrcXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUJvZHlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJvZHlFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxCb2R5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVCUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQlJFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCUkVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQnV0
dG9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxCdXR0b25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCdXR0b25FbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUNhbnZh
c1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MQ2FudmFzRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNh
cHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlVGFibGVDb2xXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ29sRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MVGFibGVDb2xFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZU1vZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTW9kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
TW9kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVEaXJlY3RvcnlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TERpcmVjdG9yeUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlRGl2V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXZFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxEaXZF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURM
aXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxETGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERMaXN0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVFbWJlZFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MRW1iZWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxFbWJlZEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRmllbGRTZXRXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEZpZWxkU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZvbnRXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb250RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb3JtV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxGb3JtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZyYW1l
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lU2V0V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFtZVNl
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkaW5nV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIZWFk
aW5nRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZGluZ0VsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVhZEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIUkVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEhSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVIdG1sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIdG1sRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
SHRtbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlSUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxJRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJRnJh
bWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUltYWdlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJbnB1
dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSXNJbmRleFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MSXNJbmRleEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElzSW5kZXhFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxhYmVsV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxMYWJlbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMZWdlbmRXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTExlZ2VuZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExlZ2VuZEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTElXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TExJRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTElFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxpbmtXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExpbmtFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVNYXBXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTE1hcEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlTWFycXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFycXVlZUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTE1hcnF1ZWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZU1lbnVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1lbnVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxN
ZW51RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVNZXRhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxNZXRhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWV0YUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT2JqZWN0
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxPYmplY3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9MaXN0V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxPTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9MaXN0RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPcHRHcm91cFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MT3B0R3JvdXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT3B0aW9uV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxPcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBhcmFncmFwaFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MUGFyYWdyYXBoRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYWdyYXBoRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQYXJh
bVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MUGFyYW1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJhbUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUHJlV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxQcmVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQcmVFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVF1b3RlV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxR
dW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTY3JpcHRXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNjcmlw
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNjcmlwdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2VsZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTZWxlY3RF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVN0eWxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTdHlsZUVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxUYWJsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
VGFibGVDZWxsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUZXh0QXJlYVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MVGV4dEFyZWFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGl0bGVXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTFRpdGxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGl0bGVFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlUm93V3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlUm93RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVVTGlzdFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MVUxpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxVTGlzdEVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK0dET01Ob2RlKiBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3Jl
OjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24+IG1h
cDsKKyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAgIG1hcC5zZXQoYVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYXBwbGV0
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXJlYVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
QmFzZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJsb2NrcXVvdGVUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChib2R5
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCUldyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQnV0dG9uV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVDYW52
YXNXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChk
ZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGl2V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURMaXN0
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmaWVsZHNldFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb250VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
Zm9ybVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1XcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJh
bWVTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaGVhZFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhyVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGh0bWxUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChp
ZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJhbWVXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlucHV0
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGFiZWxUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGVnZW5kVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChsaVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGlua1dyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFwV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFy
cXVlZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1ldGFUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChvYmplY3RUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9s
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0R3JvdXBXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9w
dGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocGFyYW1UYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocHJlVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChxVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHNjcmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNjcmlwdFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVN0eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJsZVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Ym9keVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
dGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGV4dEFyZWFX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlVGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRyVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHVsVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbGdyb3Vw
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhl
YWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDZUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbWFnZVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChp
bnNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aGVhZFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7Cisg
ICAgfQorCXByaW50ZigiY3JlYXRlR0RPTUhUTUxXcmFwcGVyOiAlc1xuIiwgZWxlbWVudC0+bG9j
YWxOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgQ3JlYXRlSFRNTEVsZW1lbnRX
cmFwcGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0gbWFwLmdldChlbGVtZW50LT5s
b2NhbE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCisgICAg
ICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVudCk7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEVsZW1lbnQoZWxlbWVudC5nZXQoKSk7Cit9CisKK30KKwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MzUgQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2Rl
Lm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11
ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKy8vIGdjYyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUgSGFz
aE1hcCBwb2ludGVyIHNwZWNpYWxpemF0aW9uIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQgX19H
TlVDX18gJiYgIWRlZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNkZWZp
bmUgSEFTSF9NQVBfUFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbURPTU9iamVj
dC5oIgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTUJpbmRp
bmcuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorCisjaW5j
bHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgImdkb21DU1NTdHlsZVNoZWV0LmgiCisj
aW5jbHVkZSAiaW50Z2RvbUNTU1N0eWxlU2hlZXQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgImludGdkb21Ob2RlLmgiCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIK
KworI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRl
ICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudFR5cGUu
aCIKKyNpbmNsdWRlICJFbnRpdHkuaCIKKyNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21FdmVudFRhcmdldE5vZGUuaCIK
KyNpbmNsdWRlICJnZG9tQXR0ci5oIgorI2luY2x1ZGUgImludGdkb21BdHRyLmgiCisjaW5jbHVk
ZSAiZ2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJnZG9tVGV4dC5oIgorI2luY2x1ZGUg
Imdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJnZG9tQ29tbWVudC5oIgorI2luY2x1ZGUg
Imdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgImdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgImdkb21FbnRpdHkuaCIKKyNpbmNs
dWRlICJnZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNs
dWRlICJnZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJnZG9tRW50aXR5UmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiZ2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxEb2N1
bWVudC5oIgorI2luY2x1ZGUgImdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRl
ICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlICJnZG9tQ1NTUnVsZS5oIgor
I2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgi
CisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgor
I2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5j
bHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgImdkb21DU1NDaGFyc2V0UnVsZS5o
IgorI2luY2x1ZGUgImdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tQ1NTSW1w
b3J0UnVsZS5oIgorI2luY2x1ZGUgImdkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9t
Q1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAi
Z2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
ImludGdkb21FdmVudC5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRXZl
bnQuaCIKKyNpbmNsdWRlICJnZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiZ2RvbUtleWJvYXJk
RXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbU1v
dXNlRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgImdk
b21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVByb2dyZXNzRXZlbnQuaCIKKyNpbmNs
dWRlICJnZG9tVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRl
ICJnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9t
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNp
bmNsdWRlICJNdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgorI2lu
Y2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRl
ICJVSUV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRl
ICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCisjaW5j
bHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisKKyNpbmNsdWRlICJnZG9tSFRN
TENvbGxlY3Rpb24uaCIKKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkhU
TUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisvLyBU
T0RPICNpbmNsdWRlICJpbnRnZG9tSFRNTEFsbENvbGxlY3Rpb24uaCIKKy8vIFRPRE8gI2luY2x1
ZGUgImdkb21IVE1MQWxsQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgImdkb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaCIKKy8vIGVyci4uLiAjaW5jbHVkZSAiaW50Z2RvbU5hbWVkTm9kZXNDb2xsZWN0
aW9uLmgiCisvLyBlcnIuLi4gI2luY2x1ZGUgImdkb21OYW1lZE5vZGVzQ29sbGVjdGlvbi5oIgor
CisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorI2luY2x1ZGUgImdkb21TdG9yYWdlRXZlbnQuaCIK
KyNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNp
ZiAwIC8qIFRPRE8gKi8KKyNpbmNsdWRlICJpbnRnZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgorI2VuZGlm
CisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBYWFggVE9ETyAqLworI2luY2x1
ZGUgImludGdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJnZG9tU1ZH
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgorI2VuZGlm
CisjZW5kaWYKKworI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIkdkb21TVkdFeGNl
cHRpb24uaCIKKyNpbmNsdWRlICJTVkdFeGNlcHRpb24uaCIKKyNlbmRpZgorI2VuZGlmCisKKyNp
bmNsdWRlICJpbnRnZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1J1bGUuaCIK
KyNpbmNsdWRlICJpbnRnZG9tQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNvbW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tRG9j
dW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgImludGdkb21Eb2N1bWVudFR5cGUuaCIKKyNpbmNs
dWRlICJpbnRnZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiaW50Z2RvbUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJpbnRnZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1ByaW1pdGl2
ZVZhbHVlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUVudGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
ImludGdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJpbnRnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiaW50Z2Rv
bVRleHQuaCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJp
bnRnZG9tQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU0ltcG9ydFJ1bGUu
aCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNT
U1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUg
ImludGdkb21DU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUtleWJvYXJkRXZl
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2Rv
bU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1
ZGUgImludGdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVByb2dyZXNzRXZl
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVVJ
RXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNs
dWRlICJpbnRnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVdo
ZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmgiCisjaW5jbHVkZSAiaW50Z2RvbVN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUgImludGdkb21I
VE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTENvbGxlY3Rpb24u
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
Cit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBET01PYmplY3RNYXA7Cit0eXBlZGVm
IEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBHZG9tV3JhcHBlckNhY2hlOyAvKiBBUkchIFVORkFJ
UiEgR0RPTVdyYXBwZXJDYWNoZSBpcyBpbiBXZWJDb3JlOjpEb2N1bWVudCEhICovCisKKy8vIEZv
ciBkZWJ1Z2dpbmcsIGtlZXAgYSBzZXQgb2Ygd3JhcHBlcnMgY3VycmVudGx5IHJlZ2lzdGVyZWQs
IGFuZCBjaGVjayB0aGF0CisvLyBhbGwgYXJlIHVucmVnaXN0ZXJlZCBiZWZvcmUgdGhleSBhcmUg
ZGVzdHJveWVkLiBUaGlzIGhhcyBoZWxwZWQgdXMgZml4IGF0CisvLyBsZWFzdCBvbmUgYnVnLgor
CisjaWYgMAorc3RhdGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKTsKK3N0
YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcik7CitzdGF0aWMgdm9p
ZCByZW1vdmVXcmFwcGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVycyk7CisKKyNp
ZmRlZiBOREVCVUcKKworc3RhdGljIGlubGluZSB2b2lkIGFkZFdyYXBwZXIoR0RPTU9iamVjdCop
Cit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmplY3QqKQor
eworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2RvbVdyYXBw
ZXJDYWNoZSYpCit7Cit9CisKKyNlbHNlCisKK3N0YXRpYyBIYXNoU2V0PEdET01PYmplY3QqPiYg
d3JhcHBlclNldCgpCit7CisgICAgc3RhdGljIEhhc2hTZXQ8R0RPTU9iamVjdCo+IHN0YXRpY1dy
YXBwZXJTZXQ7CisgICAgcmV0dXJuIHN0YXRpY1dyYXBwZXJTZXQ7Cit9CisKK3N0YXRpYyB2b2lk
IGFkZFdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcikKK3sKKyAgICBBU1NFUlQoIXdyYXBwZXJT
ZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgpLmFkZCh3cmFwcGVyKTsK
K30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKQorewor
ICAgIGlmICghd3JhcHBlcikKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh3cmFwcGVyU2V0
KCkuY29udGFpbnMod3JhcHBlcikpOworICAgIHdyYXBwZXJTZXQoKS5yZW1vdmUod3JhcHBlcik7
Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKQoreworICAgIGZvciAoR2RvbVdyYXBwZXJDYWNoZTo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSB3cmFwcGVycy5iZWdpbigpOyBpdCAhPSB3cmFwcGVycy5lbmQoKTsgKytpdCkKKyAgICAg
ICAgcmVtb3ZlV3JhcHBlcihpdC0+c2Vjb25kKTsKK30KKworR0RPTU9iamVjdDo6fkdET01PYmpl
Y3QoKQoreworICAgIEFTU0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5zKHRoaXMpKTsKK30KKwor
I2VuZGlmCisjZW5kaWYgLyogY29tbWVudGVkIG91dCBmb3Igbm93ICovCisKK3N0YXRpYyBHZG9t
V3JhcHBlckNhY2hlJiB3cmFwcGVyQ2FjaGUoKQoreyAKKwkvLyBVTkZBSVIhIGkgd2FudCBvbmUg
b2YgdGhlc2UgcGVyIFdlYkNvcmU6OkRvY3VtZW50LCB0b28hCisgICAgLy8gRG9uJ3QgdXNlIG1h
bGxvYyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxv
Y2suCisgICAgc3RhdGljIEdkb21XcmFwcGVyQ2FjaGUgc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsK
KyAgICByZXR1cm4gc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsKK30KKworc3RhdGljIERPTU9iamVj
dE1hcCYgZG9tT2JqZWN0cygpCit7IAorICAgIC8vIERvbid0IHVzZSBtYWxsb2MgaGVyZS4gQ2Fs
bGluZyBtYWxsb2MgZnJvbSBhIG1hcmsgZnVuY3Rpb24gY2FuIGRlYWRsb2NrLgorICAgIHN0YXRp
YyBET01PYmplY3RNYXAgc3RhdGljRE9NT2JqZWN0czsKKyAgICByZXR1cm4gc3RhdGljRE9NT2Jq
ZWN0czsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qo
dm9pZCogb2JqZWN0SGFuZGxlKSAKK3sKKyAgICBncG9pbnRlciByZXQgPSBkb21PYmplY3RzKCku
Z2V0KG9iamVjdEhhbmRsZSk7CisJcHJpbnRmKCJnZXRET01PYmplY3Q6ICVwICVwXG4iLCBvYmpl
Y3RIYW5kbGUsIHJldCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0
ZV9nZG9tX29iamVjdChHRE9NT2JqZWN0ICpkb2IpCit7CisJZ3BvaW50ZXIgcmVzID0gZ19vYmpl
Y3RfbmV3KGRvYi0+Z2V0X2dvYmpfdHlwZSgpLCBOVUxMKTsKKwlnZG9tX2RvbV9vYmplY3Rfc2V0
X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcyksIGRvYik7CisJcmV0dXJuIHJlczsKK30KKwor
Z3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qodm9pZCogb2JqZWN0
SGFuZGxlLCBHRE9NT2JqZWN0KiB3cmFwcGVyKSAKK3sKKwlwcmludGYoInB1dERPTU9iamVjdDog
JXAgJXBcbiIsIG9iamVjdEhhbmRsZSwgd3JhcHBlcik7CisgICAgLy8gYWRkV3JhcHBlcih3cmFw
cGVyKTsKKwlncG9pbnRlciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAg
ZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIG9iaik7CisJcmV0dXJuIG9iajsKK30KKwor
dm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RI
YW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKTsKKyAgICAvL3Jl
bW92ZVdyYXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7Cit9CisKK2dwb2lu
dGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50
KiBkb2N1bWVudCwgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Z3BvaW50ZXIgPihkb21PYmplY3RzKCkuZ2V0KG5v
ZGUpKTsKKyAgICByZXR1cm4gLyogWFhYIGdycnIgZG9jdW1lbnQtPiAqL3dyYXBwZXJDYWNoZSgp
LmdldChub2RlKTsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5v
ZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit7
CisgICAgaWYgKCFkb2N1bWVudCkgeworCQlmb3JnZXRET01PYmplY3Qobm9kZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgLy9yZW1vdmVXcmFwcGVyKC8qIFhYWCBncnIgZG9jdW1lbnQt
Piovd3JhcHBlckNhY2hlKCkudGFrZShub2RlKSk7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgV2Vi
Q29yZTo6Tm9kZSogbm9kZSwgR0RPTU5vZGUgKndyYXBwZXIpCit7CisgICAgLy9hZGRXcmFwcGVy
KHdyYXBwZXIpOworICAgIGlmICghZG9jdW1lbnQpIHsKKwkJcmV0dXJuIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6cHV0RE9NT2JqZWN0KG5vZGUsIHdyYXBwZXIpIDsKKyAgICB9CisJZ3BvaW50ZXIg
b2JqID0gY3JlYXRlX2dkb21fb2JqZWN0KHdyYXBwZXIpOworICAgIC8qIFhYWCBncnJyIGRvY3Vt
ZW50LT4qL3dyYXBwZXJDYWNoZSgpLnNldChub2RlLCBvYmopOworCXJldHVybiBvYmo7Cit9CisK
K3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIC8vcmVt
b3ZlV3JhcHBlcnMoZG9jdW1lbnQtPndyYXBwZXJDYWNoZSgpKTsKK30KKworI2lmIDAKK3ZvaWQg
R0RPTVNjcmlwdEludGVycHJldGVyOjptYXJrRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCog
ZG9jKQoreworI2lmIDAgLypYWFggVE9ETyovCisgICAgLy8gSWYgYSBub2RlJ3MgR2RvbSB3cmFw
cGVyIGhvbGRzIGN1c3RvbSBwcm9wZXJ0aWVzLCB0aG9zZSBwcm9wZXJ0aWVzIG11c3QKKyAgICAv
LyBwZXJzaXN0IGV2ZXJ5IHRpbWUgdGhlIG5vZGUgaXMgZmV0Y2hlZCBmcm9tIHRoZSBET00uIFNv
LCB3ZSBrZWVwIEdkb20KKyAgICAvLyB3cmFwcGVycyBsaWtlIHRoYXQgZnJvbSBiZWluZyBnYXJi
YWdlIGNvbGxlY3RlZC4KKworICAgIEdkb21XcmFwcGVyQ2FjaGUmIG5vZGVEaWN0ID0gLypkb2Mt
Piovd3JhcHBlckNhY2hlKCk7CisgICAgR2RvbVdyYXBwZXJDYWNoZTo6aXRlcmF0b3Igbm9kZUVu
ZCA9IG5vZGVEaWN0LmVuZCgpOworICAgIGZvciAoR2RvbVdyYXBwZXJDYWNoZTo6aXRlcmF0b3Ig
bm9kZUl0ID0gbm9kZURpY3QuYmVnaW4oKTsgbm9kZUl0ICE9IG5vZGVFbmQ7ICsrbm9kZUl0KSB7
CisgICAgICAgIGdwb2ludGVyIGdOb2RlID0gbm9kZUl0LT5zZWNvbmQ7CisgICAgICAgIFdlYkNv
cmU6Ok5vZGUqIG5vZGUgPSBnTm9kZS0+aW1wbCgpOworCisgICAgICAgIGlmIChnTm9kZS0+bWFy
a2VkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBObyBuZWVkIHRvIHBy
ZXNlcnZlIGEgd3JhcHBlciB0aGF0IGhhcyBubyBjdXN0b20gcHJvcGVydGllcyBvciBpcyBubwor
ICAgICAgICAvLyBsb25nZXIgZmV0Y2hhYmxlIHRocm91Z2ggdGhlIERPTS4KKyAgICAgICAgaWYg
KCFnTm9kZS0+aGFzQ3VzdG9tUHJvcGVydGllcygpIHx8ICFub2RlLT5pbkRvY3VtZW50KCkpCisg
ICAgICAgICAgICAvLy4uLiB1bmxlc3MgdGhlIHdyYXBwZXIgd3JhcHMgYSBsb2FkaW5nIGltYWdl
LCBzaW5jZSB0aGUgIm5ldyBJbWFnZSIKKyAgICAgICAgICAgIC8vIHN5bnRheCBhbGxvd3MgYW4g
b3JwaGFuIGltYWdlIHdyYXBwZXIgdG8gYmUgdGhlIGxhc3QgcmVmZXJlbmNlCisgICAgICAgICAg
ICAvLyB0byBhIGxvYWRpbmcgaW1hZ2UsIHdob3NlIGxvYWQgZXZlbnQgbWlnaHQgaGF2ZSBpbXBv
cnRhbnQgc2lkZS1lZmZlY3RzLgorICAgICAgICAgICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKGlt
Z1RhZykgfHwgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5oYXZlRmlyZWRM
b2FkRXZlbnQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBnTm9kZS0+
bWFyaygpOworICAgIH0KKyNlbmRpZgorfQorCisvKiBYWFggLSByZXF1aXJlcyBsb29raW5nIHVw
IG9iamVjdCAtIGNhbGwgdG8gR19PQkpFQ1QoKSBtYWNybyBpbiBhcmcKKyAqICJ3cmFwcGVyIiB0
byBwdXRET01Ob2RlRm9yRG9jdW1lbnQ/Ki8KK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRl
cjo6dXBkYXRlRE9NTm9kZURvY3VtZW50KFdlYkNvcmU6Ok5vZGUqIG5vZGUsIERvY3VtZW50KiBv
bGREb2MsIERvY3VtZW50KiBuZXdEb2MpCit7CisgICAgQVNTRVJUKG9sZERvYyAhPSBuZXdEb2Mp
OworICAgIGdwb2ludGVyIHdyYXBwZXIgPSBnZXRET01Ob2RlRm9yRG9jdW1lbnQob2xkRG9jLCBu
b2RlKTsKKyAgICBpZiAod3JhcHBlcikgeworICAgICAgICAvL3JlbW92ZVdyYXBwZXIod3JhcHBl
cik7CisgICAgICAgIGdwb2ludGVyIG9iaiA9IHB1dERPTU5vZGVGb3JEb2N1bWVudChuZXdEb2Ms
IG5vZGUsIHdyYXBwZXIpOworICAgICAgICBmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQob2xkRG9j
LCBub2RlKTsKKyAgICAgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIpOworCQlyZXR1cm4gb2JqOwor
ICAgIH0KKwlyZXR1cm4gTlVMTDsgLyogZXJyLi4uICovCit9CisjZW5kaWYKKworZ3BvaW50ZXIg
dG9HRE9NKERvY3VtZW50KiBkb2MpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybiBO
VUxMOyAvKiBYWFggaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvYyk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJl
dHVybiBnb2JqOworCisJR0RPTU9iamVjdCAqcmV0OworCisgICAgaWYgKGRvYy0+aXNIVE1MRG9j
dW1lbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MRG9jdW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTERvY3VtZW50Kj4oZG9jKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChkb2Mt
PmlzU1ZHRG9jdW1lbnQoKSkKKwl7CisJCXJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLworI2lm
IDAKKyAgICAgICAgcmV0ID0gbmV3IEdET01TVkdEb2N1bWVudChzdGF0aWNfY2FzdDxTVkdEb2N1
bWVudCo+KGRvYykpOworI2VuZGlmCisJfQorI2VuZGlmCisgICAgZWxzZQorICAgICAgICByZXQg
PSBuZXcgR0RPTURvY3VtZW50KGRvYyk7CisKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
V3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3bHlDcmVhdGVkKE5vZGUq
IG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4u
Li4gKi8KKyAgICAKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKyAgICAKK2dw
b2ludGVyIHRvR0RPTShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0
dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9j
dW1lbnQoKTsKKyAgICBncG9pbnRlciByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU5vZGVGb3JEb2N1bWVudChkb2MsIG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVy
biByZXQ7CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50ZXIg
dG9HRE9NKENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1
cm4gTlVMTDsgLyogaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAgICAg
ICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3QgKnJldDsKKworICAgIGlmICh2YWx1ZS0+aXNW
YWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZUxpc3Qoc3RhdGljX2Nh
c3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYg
KHZhbHVlLT5pc1NWR1BhaW50KCkpCisJeworCQlyZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAg
ICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHUGFpbnQoc3RhdGljX2Nhc3Q8U1ZHUGFpbnQqPih2YWx1
ZSkpOworCX0KKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdDb2xvcigpKQorCXsKKwkJcmV0dXJu
IE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR0NvbG9yKHN0YXRp
Y19jYXN0PFNWR0NvbG9yKj4odmFsdWUpKTsKKwl9CisjZW5kaWYKKyAgICBlbHNlIGlmICh2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ByaW1pdGl2
ZVZhbHVlKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpKTsKKyAgICBlbHNl
CisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWUodmFsdWUpOworCisgICAgcmV0dXJuIEdE
T01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZhbHVlLCByZXQpOworfQorCitzdGF0
aWMgQUxXQVlTX0lOTElORSBncG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7Cisg
ICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5v
ZGVGb3JEb2N1bWVudChub2RlLT5kb2N1bWVudCgpLCBub2RlKSk7CisgICAgCisgICAgRG9jdW1l
bnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAgR0RPTU5vZGUgKnJldCA9IE5VTEw7Cisg
ICAgCisJcHJpbnRmKCJjcmVhdGVXcmFwcGVyIG5vZGVUeXBlICVkXG4iLCBub2RlLT5ub2RlVHlw
ZSgpKTsKKworICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5cGUoKSkgeworICAgICAgICBjYXNlIE5v
ZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkp
CisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0
PEhUTUxFbGVtZW50Kj4obm9kZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgICAgICBlbHNl
IGlmIChub2RlLT5pc1NWR0VsZW1lbnQoKSkKKwkJCQlyZXR1cm4gTlVMTDsKKyNpZiAwIC8qIFhY
WCBUT0RPICovCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3Rh
dGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG5vZGUpKTsKKyNlbmRpZgorI2VuZGlmCisgICAgICAgICAg
ICBlbHNlCisJCQkJcmV0ID0gbmV3IEdET01FbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihu
b2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVf
Tk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQXR0cihzdGF0aWNfY2FzdDxBdHRyKj4o
bm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0KHN0YXRpY19jYXN0PFRleHQqPihub2Rl
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9O
X05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNEQVRBU2VjdGlvbihzdGF0aWNfY2Fz
dDxDREFUQVNlY3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpFTlRJVFlfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5KHN0
YXRpY19jYXN0PEVudGl0eSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0
cnVjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OkNPTU1FTlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ29tbWVudChzdGF0aWNf
Y2FzdDxDb21tZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2Fj
aGUgdGhlIGRvY3VtZW50IGl0c2VsZiBpbiB0aGUgcGVyLWRvY3VtZW50IGRpY3Rpb25hcnkKKyAg
ICAgICAgICAgIHJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7Cisg
ICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01Eb2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRUeXBlKj4obm9kZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Tk9UQVRJT05fTk9ERToKKyAg
ICAgICAgICAgIHJldCA9IG5ldyBHRE9NTm90YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihu
b2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9G
UkFHTUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Eb2N1bWVudEZyYWdtZW50
KHN0YXRpY19jYXN0PERvY3VtZW50RnJhZ21lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTUVudGl0eVJlZmVyZW5jZShzdGF0aWNfY2FzdDxFbnRpdHlSZWZlcmVu
Y2UqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NTm9kZShub2RlKTsKKyAgICB9CisKKyAgICByZXR1cm4gR0RP
TVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlLCByZXQp
OworfQorIAorZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQorewor
ICAgIGlmICghY29sbGVjdGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICov
CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmpl
Y3QoY29sbGVjdGlvbik7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisK
KwlHRE9NT2JqZWN0ICpyZXQ7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAg
ICAgICAgY2FzZSBIVE1MQ29sbGVjdGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25z
Q29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIDAKKyAg
ICAgICAgY2FzZSBIVE1MQ29sbGVjdGlvbjo6RG9jQWxsOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01IVE1MQWxsQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxl
Y3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxD
b2xsZWN0aW9uKj4oY29sbGVjdGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGNvbGxlY3Rpb24s
IHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQpCit7CisgICAgaWYgKCFl
dmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9pbnRl
ciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZXZlbnQpOworICAg
IGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3QgKnJldDsKKyAg
ICBpZiAoZXZlbnQtPmlzVUlFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNLZXlib2Fy
ZEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUtleWJvYXJkRXZlbnQoc3RhdGlj
X2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5p
c1RleHRFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0RXZlbnQoc3RhdGlj
X2Nhc3Q8VGV4dEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzTW91
c2VFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Nb3VzZUV2ZW50KHN0YXRpY19j
YXN0PE1vdXNlRXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNXaGVl
bEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVdoZWVsRXZlbnQoc3RhdGljX2Nh
c3Q8V2hlZWxFdmVudCo+KGV2ZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzU1ZHWm9vbUV2ZW50KCkpCisJCXsKKwkJCXJldHVybiBOVUxMOyAvKiBUT0RP
ICovCisgICAgICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHWm9vbUV2ZW50KHN0YXRpY19jYXN0
PFNWR1pvb21FdmVudCo+KGV2ZW50KSwgMCk7CisJCX0KKyNlbmRpZgorICAgICAgICBlbHNlCisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTVVJRXZlbnQoc3RhdGljX2Nhc3Q8VUlFdmVudCo+KGV2
ZW50KSk7CisgICAgfSBlbHNlIGlmIChldmVudC0+aXNNdXRhdGlvbkV2ZW50KCkpCisgICAgICAg
IHJldCA9IG5ldyBHRE9NTXV0YXRpb25FdmVudChzdGF0aWNfY2FzdDxNdXRhdGlvbkV2ZW50Kj4o
ZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNPdmVyZmxvd0V2ZW50KCkpCisgICAgICAg
IHJldCA9IG5ldyBHRE9NT3ZlcmZsb3dFdmVudChzdGF0aWNfY2FzdDxPdmVyZmxvd0V2ZW50Kj4o
ZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNNZXNzYWdlRXZlbnQoKSkKKyAgICAgICAg
cmV0ID0gbmV3IEdET01NZXNzYWdlRXZlbnQoc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZl
bnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNQcm9ncmVzc0V2ZW50KCkpIHsKKyAgICAgICAg
aWYgKGV2ZW50LT5pc1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpKQorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8WE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01Qcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFByb2dyZXNzRXZl
bnQqPihldmVudCkpOworICAgIH0KKyNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCisgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzU3RvcmFnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NU3RvcmFn
ZUV2ZW50KHN0YXRpY19jYXN0PFN0b3JhZ2VFdmVudCo+KGV2ZW50KSk7CisjZW5kaWYKKyAgICBl
bHNlIGlmIChldmVudC0+aXNXZWJLaXRBbmltYXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBu
ZXcgR0RPTVdlYktpdEFuaW1hdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdEFuaW1hdGlvbkV2
ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRUcmFuc2l0aW9uRXZl
bnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQoc3RhdGlj
X2Nhc3Q8V2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlCisgICAgICAg
IHJldCA9IG5ldyBHRE9NRXZlbnQoZXZlbnQpOworCisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6cHV0RE9NT2JqZWN0KGV2ZW50LCByZXQpOworfQorCisvKiBUT0RPIFhYWCBobW1t
Li4uIG5vdCBzbyBoYXBweSBhYm91dCB0aGlzIC0gc2hvdWxkIGJlICJuZXdseSBjcmVhdGVkIiAq
LworZ3BvaW50ZXIgdG9HRE9NKFRleHQqIHRleHQpCit7CisJaWYgKCF0ZXh0KQorCQlyZXR1cm4g
TlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0KTsKKwlpZiAoZ29iaikKKwkJ
cmV0dXJuIGdvYmo7CisKKwlHRE9NTm9kZSAqcmV0ID0gbmV3IEdET01UZXh0KHRleHQpOworCXJl
dHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5k
b2N1bWVudCgpLCB0ZXh0LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTUnVsZSogcnVs
ZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4u
LiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9N
T2JqZWN0KHJ1bGUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisJ
R0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7CisgICAgICAgIGNh
c2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5
bGVSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUNTU01lZGlhUnVsZShzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihydWxlKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpGT05UX0ZBQ0VfUlVM
RToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTRm9udEZhY2VSdWxlKHN0YXRpY19jYXN0
PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUGFn
ZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NQ1NTSW1wb3J0UnVsZShzdGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxlKj4ocnVsZSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Q0hBUlNFVF9SVUxF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NDaGFyc2V0UnVsZShzdGF0aWNfY2FzdDxD
U1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NW
YXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1ZhcmlhYmxlc1J1bGUqPihydWxlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NQ1NTUnVsZShydWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHJ1bGUsIHJldCk7CisgICAgcmV0dXJuIHJl
dDsKK30KKworLyogVE9ETzogc2hvdWxkIGJlIHRvR0RPTU5ld2x5Q3JlYXRlZCAqLworZ3BvaW50
ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAg
ICByZXR1cm4gTlVMTDsKKworICAgIC8vIHNob3VsZG4ndCBiZSBvbmU/IEFTU0VSVCghU2NyaXB0
SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChlbGVtZW50LT5kb2N1bWVudCgpLCBl
bGVtZW50KSk7CisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0
RE9NTm9kZUZvckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpOworCWlmIChn
b2JqKQorCQlyZXR1cm4gZ29iajsgLy8gaHVoPyBlcnIuLi4KKworCUdET01Ob2RlICpyZXQ7Cisg
ICAgRG9jdW1lbnQqIGRvYyA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisKKyAgICBpZiAoZWxlbWVu
dC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIo
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAg
ICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkKKwl7CisJCXJldHVybiBOVUxMOyAv
KiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nh
c3Q8U1ZHRWxlbWVudCo+KGVsZW1lbnQpKTsKKwl9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAg
IHJldCA9IG5ldyBHRE9NRWxlbWVudChlbGVtZW50KTsKKworICAgIHJldHVybiBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIGVsZW1lbnQsIHJldCk7Cit9
CisKK2dwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIGlmICgh
c3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4uLiAqLworCisgICAgZ3Bv
aW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHN0eWxlU2hl
ZXQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3Qg
KnJldDsKKyAgICBpZiAoc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJl
dCA9IG5ldyBHRE9NQ1NTU3R5bGVTaGVldChzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5
bGVTaGVldCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01TdHlsZVNoZWV0KHN0
eWxlU2hlZXQpOworCisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KHN0eWxlU2hlZXQsIHJldCk7Cit9Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL2dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFs
cEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisj
aWZuZGVmIF9fR2RvbURPTU9iamVjdF9IX18KKyNkZWZpbmUgX19HZG9tRE9NT2JqZWN0X0hfXwor
I2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+
CisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURP
TU9iamVjdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVj
dENsYXNzOworCisjZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdkb21f
ZG9tX29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1Qob2JqKSAgICAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPTV9P
QkpFQ1QsIEdkb21ET01PYmplY3QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfQ0xBU1Moa2xh
c3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9P
QkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVChv
YmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVf
RE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdf
VFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisj
ZGVmaW5lIEdET01fRE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9H
RVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNz
KSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIEdkb21ET01PYmplY3RQ
cml2YXRlOworCitzdHJ1Y3QgX0dkb21ET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2lu
c3RhbmNlOworCisgICAgR2RvbURPTU9iamVjdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3Qg
X0dkb21ET01PYmplY3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307
CisKK1dFQktJVF9HRE9NX0FQSSBHVHlwZQorZ2RvbV9kb21fb2JqZWN0X2dldF90eXBlICh2b2lk
KTsKKworV0VCS0lUX0dET01fQVBJIHZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmpl
Y3QgKEdkb21ET01PYmplY3QgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19H
ZG9tRE9NT2JqZWN0X0hfXyAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0LmgJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACisjaWZuZGVmIF9fRE9NT2JqZWN0X2hfXworI2RlZmlu
ZSBfX0RPTU9iamVjdF9oX18KKworLy8gbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHRE9N
T2JqZWN0IHsKK3B1YmxpYzoKKwl2aXJ0dWFsIH5HRE9NT2JqZWN0KCkge30KKwl2aXJ0dWFsIGlu
dCBnZXRfZ29ial90eXBlKCkgPSAwOworfTsKKworLy8gfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5o
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRE9NT2JqZWN0X0hfX19Q
UklWXworI2RlZmluZSBfX0dET01ET01PYmplY3RfSF9fX1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1v
YmplY3QuaCIKKyNpbmNsdWRlICJnZG9tRE9NT2JqZWN0LmgiCitHX0JFR0lOX0RFQ0xTCisKK2Ns
YXNzIEdET01PYmplY3Q7CitXRUJLSVRfR0RPTV9BUEkgR0RPTU9iamVjdCoKK2dkb21fZG9tX29i
amVjdF9nZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0KTsKKworV0VCS0lUX0dET01f
QVBJIHZvaWQKK2dkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1
ZXN0LCBHRE9NT2JqZWN0KiBpdGVtKTsKKworR19FTkRfREVDTFMKKyNlbmRpZgorCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACisvKgor
ICogVEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVELCBETyBOT1QgRURJVC4KKyAq
CisgKgorICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisKKyNpZm5kZWYgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnlfaAorI2RlZmluZSBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCisKKyNpbmNs
dWRlICJpbnRnZG9tTm9kZS5oIgorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7CisKKyAgICBHRE9NTm9kZSog
Y3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsKKworfQorIAor
I2VuZGlmIC8vIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9pbnRnZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL2ludGdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19JTlRf
CisjZGVmaW5lIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fSU5UXworI2luY2x1ZGUgImdsaWIt
b2JqZWN0LmgiCisjaW5jbHVkZSAiaW50Z2RvbU5vZGUuaCIKK0dfQkVHSU5fREVDTFMKKworY2xh
c3MgR0RPTUV2ZW50VGFyZ2V0Tm9kZSA6IHB1YmxpYyBHRE9NTm9kZSB7CisKK3B1YmxpYzoKKyAg
ICBHRE9NRXZlbnRUYXJnZXROb2RlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gaW1wbCkgOiBH
RE9NTm9kZShpbXBsKSB7fQorCWludCBnZXRfZ29ial90eXBlKCkgeyByZXR1cm4gR0RPTV9UWVBF
X0VWRU5UX1RBUkdFVF9OT0RFOyB9Cit9OworCisKK0dfRU5EX0RFQ0xTCisjZW5kaWYKKwpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4OCBA
QAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBr
ZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNh
bXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI2lmbmRlZiBHZG9tRE9NQmluZGluZ19oCisjZGVmaW5lIEdkb21ET01CaW5kaW5nX2gK
KworI2luY2x1ZGUgPGtqcy9pbnRlcnByZXRlci5oPgorI2luY2x1ZGUgPGtqcy9sb29rdXAuaD4K
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworI2luY2x1ZGUgImdkb21Ob2RlLmgiCisj
aW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgImludGdkb21Ob2RlLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEF0b21pY1N0cmluZzsKKyAgICBjbGFzcyBEb2N1
bWVudDsKKyAgICBjbGFzcyBFdmVudDsKKyAgICBjbGFzcyBGcmFtZTsKKyAgICBjbGFzcyBLVVJM
OworICAgIGNsYXNzIE5vZGU7CisgICAgY2xhc3MgU3RyaW5nOworCisjaWYgRU5BQkxFKFNWRykK
KyAgICBjbGFzcyBTVkdFbGVtZW50OworI2VuZGlmCisKKyAgICBjbGFzcyBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIHZvaWQqIGdldERPTU9iamVj
dCh2b2lkKiBvYmplY3RIYW5kbGUpOworICAgICAgICBzdGF0aWMgdm9pZCogcHV0RE9NT2JqZWN0
KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVjdCopOworICAgICAgICBzdGF0aWMgdm9pZCBm
b3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsKKworICAgICAgICBzdGF0aWMgdm9p
ZCogZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSopOworICAgICAgICBzdGF0
aWMgdm9pZCogcHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSosIEdET01Ob2Rl
KiBub2RlV3JhcHBlcik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU5vZGVGb3JEb2N1
bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZm9yZ2V0QWxsRE9N
Tm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOworCQkjaWYgMAorICAgICAgICBzdGF0aWMgdm9p
ZCB1cGRhdGVET01Ob2RlRG9jdW1lbnQoTm9kZSosIERvY3VtZW50KiBvbGREb2MsIERvY3VtZW50
KiBuZXdEb2MpOworICAgICAgICBzdGF0aWMgdm9pZCBtYXJrRE9NTm9kZXNGb3JEb2N1bWVudChE
b2N1bWVudCopOworCQkjZW5kaWYKKyAgICB9OworCisgICAgLy8gUmV0cmlldmUgZnJvbSBjYWNo
ZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYSBET00gb2JqZWN0LgorICAgIHRlbXBs
YXRlPGNsYXNzIERPTU9iaiwgY2xhc3MgR2RvbURPTU9iaj4gaW5saW5lIHZvaWQqIGNhY2hlRE9N
T2JqZWN0KERPTU9iaiogZG9tT2JqKQorICAgIHsKKyAgICAgICAgaWYgKCFkb21PYmopCisgICAg
ICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKyAgICAgICAgaWYgKHZvaWQq
IHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvbU9iaikpCisgICAg
ICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBHRE9NT2JqZWN0KiByZXQgPSBuZXcgR2RvbURP
TU9iaihkb21PYmopOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRE
T01PYmplY3QoZG9tT2JqLCByZXQpOworICAgIH0KKworI2lmIEVOQUJMRShTVkcpCisgICAgLy8g
UmV0cmlldmUgZnJvbSBjYWNoZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYW4gU1ZH
IERPTSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2Jq
PiBpbmxpbmUgdm9pZCogY2FjaGVTVkdET01PYmplY3QoRE9NT2JqKiBkb21PYmosIFNWR0VsZW1l
bnQqIGNvbnRleHQpCisgICAgeworICAgICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJl
dHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RP
TVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJl
dHVybiByZXQ7CisgICAgICAgIEdET01PYmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9i
aiwgY29udGV4dCk7CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERP
TU9iamVjdChkb21PYmosIHJldCk7CisgICAgfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEdkb21ET01CaW5kaW5nX2gKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9pbnRnZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL2ludGdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9pbnRnZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRl
ICJHRE9NT2JqZWN0LmgiCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTU4MyBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFpbnQgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0g
U3VpdGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFja2FnZSBDb2Rl
R2VuZXJhdG9yR09iamVjdDsKKworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVzCitteSAkbGlj
ZW5jZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xcQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215ICVoZHJJ
bmNsdWRlcyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkgJWltcGxUeXBlZGVm
cyA9ICgpOworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBteSAkb2Jq
ZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJh
dG9yID0gc2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxlc3MoJHJlZmVy
ZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBmaW5pc2gK
K3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0
cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0Owor
ICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAg
ICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxuIjsKKwor
ICAgICRvYmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdyaXRlIGNoYW5nZXMK
KyAgICBteSAkZm5hbWUgPSAiZ2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXplKCRuYW1lKTsKKyAg
ICAkZm5hbWUgPX4gcy9fLy9nOworICAgICRvYmplY3QtPldyaXRlRGF0YSgkZm5hbWUpOworfQor
CisjIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVsZQorewor
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAg
ICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5cGUKK3sK
KyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxpemUoJGNs
YXNzTmFtZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURPTU9iamVjdCIg
aWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9tIiAuICRjb2Rl
R2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOworfQorc3ViIEdl
dFBhcmVudEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/
IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdh
Y3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJl
bnQifTsKKyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRhTm9kZS0+
cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2JqVHlwZSgk
Y29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Cit9CisK
KworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgY2Ft
ZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsgdWNmaXJzdCAk
XyB9IHNwbGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7Cit9CisKKyMg
QWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGRlY2FtZWxp
emUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8pKFtBLVpd
KikoW0EtWl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAgICAg
ICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBteSAk
dCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/ICIk
e3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAgfWdl
OworICAgICRzOworfQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAkbmFtZSA9ICRj
b2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gImdkb20kbmFt
ZSI7Cit9CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAkY29kZUdl
bmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOwor
fQorCitzdWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAg
ICBteSAkbmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1l
bGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUg
ZXEgImludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5
cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAg
ICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gIiIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxv
bmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7
CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAg
ICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAi
UmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgY2hhciI7CisgICAgICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBw
ZXIKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5n
IjsKKyAgICAgICAgcmV0dXJuICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiIGlmICR0eXBlIGVxICJF
dmVudFRhcmdldCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBl
cSAiZmxvYXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEg
ImJvb2xlYW4iOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEg
InZvaWQiOworCisgICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1cm5zIDEgaWYgd2Ug
bmVlZCB0byBjcmVhdGUgYSBnb2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSByZXR1cm4gcmVzdWx0
CitzdWIgSXNHRE9NQ2xhc3NUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAg
bXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJET01UaW1lU3RhbXAiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9N
U3RyaW5nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImJvb2xlYW4i
OworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAw
IGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInNob3J0
IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
ImludCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBl
cSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gMTsKK30KKworc3ViIEdl
dFByb3BHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRD
bGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0eXBlIGVxICJET01T
dHJpbmciOworICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0
dXJuICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1
cm4gImRvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJib29sZWFuIiBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hh
ciI7CisgICAgcmV0dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJp
bnQiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEg
InVjaGFyIjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAg
cmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAidWludCIgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBsb25nIjsKKyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNo
b3J0IjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBU
T0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2JqZWN0IjsKK30KKworc3Vi
IEdldEdUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBH
ZXRDbGFzc05hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFz
c05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUgKiIg
aWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKyAgICAgICAgcmV0dXJuICJjb25zdCBnY2hhciAq
IiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJnZmxvYXQgIiBpZiAk
dHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJl
SG93ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb3VibGUg
IiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICJnYm9vbGVhbiAiIGlmICR0
eXBlIGVxICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuICJnY2hhciAiIGlmICR0eXBlIGVxICJj
aGFyIjsKKyAgICAgICAgcmV0dXJuICJnbG9uZyAiIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAg
ICAgcmV0dXJuICJnc2hvcnQgIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4g
Imd1Y2hhciAiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAiZ3VpbnQgIiBp
ZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1cm4gImdpbnQgIiBpZiAkdHlwZSBl
cSAiaW50IjsKKyAgICAgICAgcmV0dXJuICJndWludCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBp
bnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IjsKKyAgICAgICAgcmV0dXJuICJndWludDY0ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcg
bG9uZyI7CisgICAgICAgIHJldHVybiAiZ3VzaG9ydCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBz
aG9ydCI7CisgICAgICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAj
IFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlm
ICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJ
bmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBH
ZXRHSW5jbHVkZUhkcigkdHlwZSk7CisgICAgaWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlm
ICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICByZXR1cm4gImdkb21FdmVu
dFRhcmdldE5vZGUuaCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01P
YmplY3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpz
Z2VuZXJhdG9yLgorICAgICAgICAgICAgcmV0dXJuICJnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRy
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNI
ZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigk
dHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGhkclByb3BJbmNsdWRlc3sk
aGRyfSA9IDE7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAg
ICAgICAkaGRyUHJvcEluY2x1ZGVzeyJwcml2Ii4kaGRyfSA9IDE7CisgICAgICAgICAgICAkaGRy
UHJvcEluY2x1ZGVzeyJpbnQiLiRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0KKworfQorCitz
dWIgYWRkSW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBn
ZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgICRoZHJJbmNs
dWRlc3skaGRyfSA9IDE7CisgICAgfQorCit9CisKK3N1YiBhZGRJbmNCb2R5Cit7CisgICAgbXkg
JHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlm
ICgkaGRyIG5lICIiKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0K
K30KKworc3ViIEdldFByaXZGbgoreworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7Cisg
ICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9IHNoaWZ0OworICAgIG15ICRyZXMgPSBzaGlmdDsKKyAg
ICBteSAkcGFybSA9IHNoaWZ0OworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJFdmVudFRh
cmdldCIpIHsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiAkcmVz
ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9ldmVudF90YXJn
ZXRfbm9kZV9nZXRfcHJpdmF0ZShzZWxmKSk7IjsKKyAgICB9CisgICAgcmV0dXJuICJXZWJDb3Jl
Ojoke2ludGVyZmFjZU5hbWV9ICogJHJlcyA9ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZh
dGUoJHBhcm0pKTsiOworfQorCitzdWIgc2tpcFByb3BUZW1wb3JhcmlseQoreworICAgIG15ICR0
eXBlID0gc2hpZnQ7CisgICAgbXkgJHByb3BfdHlwZSA9IHNoaWZ0OworCisgICAgIyBza2lwIE1l
ZGlhTGlzdAorICAgIGlmICgkcHJvcF90eXBlIGVxICJzdHlsZXNoZWV0czo6TWVkaWFMaXN0Iikg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAgRXZlbnRUYXJnZXQKKyAg
ICBpZiAoJHByb3BfdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgIHJldHVybiAxOwor
ICAgIH0KKworICAgICMgc2tpcCBDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbgorICAgIGlmICgkcHJv
cF90eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgIyBza2lwIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCisgICAgaWYg
KCRwcm9wX3R5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgIGlm
ICgkcHJvcF90eXBlIGVxICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAgICAg
cmV0dXJuIDE7CisgICAgfQorCisgICAgIyBza2lwIEV2ZW50TGlzdGVuZXIKKyAgICBpZiAoJHBy
b3BfdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgIyBza2lwIERPTVdpbmRvdworICAgIGlmICgkcHJvcF90eXBlIGVxICJET01XaW5kb3ci
KSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBDb25zdHJ1Y3RvcnMg
KHdoYXRldmVyIHRoZXkgYXJlKSBmb3Igbm93LgorICAgIGlmICgkcHJvcF90eXBlID1+IC9Db25z
dHJ1Y3RvciQvKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgY2FudmFzMmQu
Li4uCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgImN1c3RvbSIpIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkFycmF5IikgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIFRPRE86IFNWRworICAgIGlmICgkY29k
ZUdlbmVyYXRvci0+SXNQb2RUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmlt
YXRlZFR5cGUoJHR5cGUpKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4g
MDsKK30KKworc3ViIFVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24KK3sKKyAgICBteSAkdHlw
ZSA9IHNoaWZ0OworCisgICAgIyBza2lwcGVkIG91dCBDYW52YXNQaXhlbEFycmF5IC0gc2VlIEpT
Q2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAgZm9yIHdoeS4KKyAgICByZXR1cm4gMSBpZiAkdHlw
ZSBlcSAiTm9kZSIgb3IgJHR5cGUgZXEgIkRvY3VtZW50IiBvciAkdHlwZSBlcSAiSFRNTENvbGxl
Y3Rpb24iIG9yICR0eXBlIGVxICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIg
b3IgJHR5cGUgZXEgIkNTU1J1bGUiIG9yICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IgJHR5cGUgZXEg
IkV2ZW50IiBvciAkdHlwZSBlcSAiRWxlbWVudCIgb3IgJHR5cGUgZXEgIlRleHQiOworICAgIHJl
dHVybiAwOworfQorCisKKyMgR2VuZXJhdGUgaGVhZGVyIGFuZCBpbXBsCitzdWIgR2VuZXJhdGUK
K3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisK
KyAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTGVnYWN5UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+
cGFyZW50c30gPiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRo
YXNSZWFsUGFyZW50OworICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05h
bWUoJGRhdGFOb2RlKTsKKyAgICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJlbnRHT2JqVHlw
ZSgkZGF0YU5vZGUpOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwor
ICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOworICAgIG15
ICRoZHJOYW1lID0gR2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisKKyAgICAjIEFkZCB0aGUg
ZGVmYXVsdCBpbXBsIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwg
JGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CisKKyAgICAkaW1w
bEluY2x1ZGVzeyJHRE9NQmluZGluZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiRoZHJO
YW1lLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3sicHJpdiR7aGRyTmFtZX0uaCJ9ID0gMTsK
KworICAgIG15ICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gIkRPTU9iamVjdCI7CisgICAgbXkgJHBh
cmVudEdJZmFjZU5hbWUgPSAiR0RPTU9iamVjdCI7CisgICAgbXkgJHBhcmVudEhkck5hbWUgPSAi
Z2RvbURPTU9iamVjdCI7CisgICAgaWYgKCRwYXJlbnRDbGFzc05hbWUgbmUgIkdPYmplY3QiKQor
ICAgIHsKKyAgICAgICAgJHBhcmVudEludGVyZmFjZU5hbWUgPSBzdWJzdHIoJHBhcmVudENsYXNz
TmFtZSwgNCk7CisgICAgICAgIGlmICgkcGFyZW50SW50ZXJmYWNlTmFtZSBuZSAiRE9NT2JqZWN0
IikgeworICAgICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTSIuc3Vic3RyKCRwYXJl
bnRDbGFzc05hbWUsIDQpOworICAgICAgICAgICAgJHBhcmVudEhkck5hbWUgPSBHZXRIZHJOYW1l
KCRwYXJlbnRJbnRlcmZhY2VOYW1lKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAg
IHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgICAg
ICB9CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAg
ICAgICAgJGltcGxJbmNsdWRlc3sicHJpdiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAg
ICAgJGhkckluY2x1ZGVzeyIke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICMkaGRy
SW5jbHVkZXN7InByaXYke3BhcmVudEhkck5hbWV9LmgifSA9IDA7CisgICAgfQorCisgICAgIyBU
T0RPIC0gbWFrZSB0aGVzZSBvbmx5IGluY2x1ZGUgd2hlcmUgbmVlZGVkLCBsaWtld2lzZSB0aGUK
KyAgICAjIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0b0dET00sIHRvbworICAgICRpbXBsSW5jbHVk
ZXN7Ik5vZGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFbGVtZW50LmgifSA9IDE7Cisg
ICAgJGltcGxJbmNsdWRlc3siQ1NTVmFsdWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJD
U1NSdWxlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siSFRNTENvbGxlY3Rpb24uaCJ9ID0g
MTsKKyAgICAjJGltcGxJbmNsdWRlc3siU1ZHUGF0aFNlZy5oIn0gPSAxOworICAgICRpbXBsSW5j
bHVkZXN7IlN0eWxlU2hlZXQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFdmVudC5oIn0g
PSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNhbnZhc1BpeGVsQXJyYXkuaCJ9ID0gMTsKKyAgICAk
aW1wbEluY2x1ZGVzeyJUZXh0LmgifSA9IDE7CisKKyAgICAjIFhYWCBUT0RPOiBtYWtlIHRoaXMg
b3B0aW9uYWwgb3IgaW4gYSBoZWFkZXIgZmlsZS4gIG9yIGZpbmQgYSBiZXR0ZXIgd2F5LgorICAg
IG15ICRoYWNrRGVjbHMgPSA8PCAiRU9GIjsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBncG9p
bnRlciB0b0dET00oTm9kZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKENTU1ZhbHVlKiBu
b2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oQ1NTUnVsZSogbm9kZSk7CisgICAgZ3BvaW50ZXIg
dG9HRE9NKEVsZW1lbnQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShEb2N1bWVudCogbm9k
ZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBub2RlKTsgCisgICAgLy9n
cG9pbnRlciB0b0dET00oU1ZHUGF0aFNlZyogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShT
dHlsZVNoZWV0KiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBub2RlKTsgCisg
ICAgZ3BvaW50ZXIgdG9HRE9NKENhbnZhc1BpeGVsQXJyYXkqIG5vZGUpOyAKKyAgICBncG9pbnRl
ciB0b0dET00oVGV4dCogbm9kZSk7IAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitFT0YKKwor
ICAgIHB1c2goQGNCb2R5LCAkaGFja0RlY2xzKTsKKworICAgICMgWFhYIFRPRE86IG1ha2UgdGhp
cyBvcHRpb25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3YXkuCisg
ICAgbXkgJHN0cmluZ0NvbnZlcnQgPSA8PCAiRU9GIjsKK2NsYXNzIEdTdHJpbmdDb252ZXJ0IHsK
KyAgICBwdWJsaWM6CisgICAgY29uc3QgZ2NoYXIgKm1fc3RyOworICAgIEdTdHJpbmdDb252ZXJ0
KFdlYkNvcmU6OlN0cmluZyBjb25zdCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMudXRmOCgpLmRh
dGEoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpLVVJMIGNvbnN0JiBzKSB7IG1f
c3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdD
b252ZXJ0KGNvbnN0IEtKUzo6VVN0cmluZyAmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLlVURjhT
dHJpbmcoKS5jX3N0cigpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0
cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsgfQorfTsKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJHN0cmluZ0NvbnZlcnQpOworCisg
ICAgcHVzaChAY0JvZHksICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4iKTsKKworICAgICMgR2V0IGNv
cnJlY3QgcGFzcy9zdG9yZSB0eXBlcyByZXNwZWN0aW5nIFBPRFR5cGUgZmxhZworICAgIG15ICRw
b2RUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9OworICAg
IG15ICRwYXNzVHlwZSA9ICRwb2RUeXBlID8gIkpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+
KiIgOiAiJGludGVyZmFjZU5hbWUqIjsKKworICAgIGlmICgoISRoYXNQYXJlbnQgb3IgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01hbnVh
bFRvSlNJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgI2lmICgkcG9k
VHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiS0pTOjpKU1ZhbHVlKiB0b0pTKEtK
Uzo6RXhlY1N0YXRlKiBleGVjLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogb2JqLCBT
VkdFbGVtZW50KiBjb250ZXh0KVxuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVk
aW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICAgcHVz
aChAY0JvZHksICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMsICRwYXNz
VHlwZSBvYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAgICAgI30gZWxzZSB7Cisg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgImdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjokcGFzc1R5
cGUgb2JqKVxuIik7CisgICAgICAgICN9CisKKyAgICAgICAgcHVzaChAY0JvZHksICJ7XG4iKTsK
KyAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAg
IHJldHVybiBjYWNoZVNWR0RPTU9iamVjdDxKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiwg
JGNsYXNzTmFtZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQpO1xu
Iik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigk
aW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4g
Y2FjaGVTVkdET01PYmplY3Q8JGltcGxDbGFzc05hbWUsICRjbGFzc05hbWUsICR7Y2xhc3NOYW1l
fVByb3RvdHlwZT4oZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAgICAjfSBlbHNlIHsK
KyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBXZWJDb3JlOjpjYWNoZURPTU9i
amVjdDxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSwgR0RPTSRpbnRlcmZhY2VOYW1lPihvYmopO1xu
Iik7CisgICAgICAgICN9CisgICAgICAgIHB1c2goQGNCb2R5LCAifVxuIik7CisgICAgfQorCisg
ICAgcHVzaChAY0JvZHksICJ9IC8qIG5hbWVzcGFjZSBXZWJDb3JlICovIFxuIik7CisgICAgbXkg
JGltcGxDb250ZW50ID0gIiI7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNCb2R5LCAidXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiZXh0ZXJuIFwiQ1wi
IHtcblxuIik7CisgICAgcHVzaChAY0JvZHksICIjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdT
dHJpbmdDb252ZXJ0KHN0cikubV9zdHIpXG4iKTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGhl
YWRlciB0ZW1wbGF0ZQorICAgIEBoUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0
ZSk7CisgICAgICAgICNwdXNoKEBoUHJlZml4LCAiXG4iKTsKKworICAgICMgSGVhZGVyIGd1YXJk
CisgICAgICAgIG15ICRndWFyZCA9ICJfXyIgLiAkY2xhc3NOYW1lIC4gIl9IX18iOworCisgICAg
bXkgJGNsc0NhcHMgPSBzdWJzdHIoQ2xzVG9HT2JqVHlwZSgkY2xhc3NOYW1lKSwgNSk7CisgICAg
bXkgJGxjYXNlX2lmYWNlbmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1l
KTsKKyAgICAjbXkgJHBhcmVudENsc0NhcHMgPSAiR0RPTV8iIC4gQ2xzVG9HT2JqVHlwZSgkcGFy
ZW50SW50ZXJmYWNlTmFtZSk7CisKKyAgICBAaFByZWZpeEd1YXJkID0gPDwgIkVPRiI7CisjaWZu
ZGVmICRndWFyZAorI2RlZmluZSAkZ3VhcmQKK0VPRgorCisgICAgJGltcGxDb250ZW50ID0gPDwg
IkVPRiI7CitHX0JFR0lOX0RFQ0xTCisKK0VPRgorCisgICAgcHVzaChAaEJvZHlQcmUsICRpbXBs
Q29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworI2RlZmluZSBHRE9N
X1RZUEVfJHtjbHNDYXBzfSAgICAgICAgICAgICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNL
X0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX0p
KQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICRjbGFzc05hbWUpQ2xh
c3MpCisjZGVmaW5lIEdET01fSVNfJHtjbHNDYXBzfShvYmopICAgICAgICAgKEdfVFlQRV9DSEVD
S19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdE
T01fSVNfJHtjbHNDYXBzfV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChr
bGFzcyksICBHRE9NX1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9H
RVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZ
UEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfJHtj
bGFzc05hbWV9UHJpdmF0ZSAke2NsYXNzTmFtZX1Qcml2YXRlOworCitzdHJ1Y3QgXyR7Y2xhc3NO
YW1lfSB7CisgICAgJHtwYXJlbnRDbGFzc05hbWV9IHBhcmVudF9pbnN0YW5jZTsKKworICAgICR7
Y2xhc3NOYW1lfVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfUNsYXNz
IHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0dET01fQVBJ
IEdUeXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOworCitFT0YKKworICAg
IHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVP
RiI7CisjaWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7Z3VhcmR9X1BST1BfCitFT0YK
KworICAgIHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxDb250ZW50KTsKKworICAgIHB1c2goQGhC
b2R5UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgJGhkclByb3BJbmNsdWRleyJnbGli
LW9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiaW50JHtwYXJlbnRIZHJOYW1l
fS5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiR0RPTU9iamVjdC5oIn0gPSAxOworICAg
ICRoZHJQcm9wSW5jbHVkZXsiJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworCisgICAgJGltcGxD
b250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X0lOVF8KKyNkZWZpbmUgJHtndWFy
ZH1fSU5UXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiaW50JHtwYXJlbnRI
ZHJOYW1lfS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICIke2ludGVyZmFj
ZU5hbWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVudCk7
CisKKyAgICAgaWYgKCghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRp
bnRlcmZhY2VOYW1lKSkgeworICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oJHtpbnRlcmZhY2VOYW1lfSogbm9k
ZSk7Cit9IC8qIG5hbWVzcGFjZSBXZWJDb3JlICovIAorRU9GCisgICAgcHVzaChAaEJvZHlJbnRl
cm5hbCwgJGltcGxDb250ZW50KTsKKyAgICB9CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIkdf
QkVHSU5fREVDTFNcbiIpOworCisgICAgI0NsYXNzIGRlY2xhcmF0aW9uCisgICAgaWYgKCRpbnRl
cmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUge1xuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgImNsYXNzIEdET00kaW50ZXJmYWNlTmFtZSA6IHB1YmxpYyAk
cGFyZW50R0lmYWNlTmFtZSB7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAg
ICB0eXBlZGVmICRwYXJlbnRHSWZhY2VOYW1lIEJhc2U7XG4iKTsKKyAgICB9CisgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgInB1YmxpYzpcbiIpOworCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwg
IiAgICBpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV8ke2Nsc0NhcHN9OyB9
XG4iKTsKKworICAgIG15ICRuZWVkc1NWR0NvbnRleHQgPSAwOworICAgICMgQ29uc3RydWN0b3IK
KyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIEdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVm
UHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8g
IiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKTtcbiIpOworCisgICAgIyBEZXN0cnVj
dG9yCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB2aXJ0dWFsIH5HRE9NJGludGVyZmFj
ZU5hbWUoKTtcbiIpIGlmICghJGhhc1BhcmVudCBvciAkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1l
bnQiKTsKKworICAgIGlmICghJGhhc1BhcmVudCB8fCAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdp
bmRvdyIpKSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiBpbXBsKCkg
Y29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAg
IFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIFJlZlB0cjxKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiA+
IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQ
YXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRl
cm5hbCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5n
ZXQoKTsgfVxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBTVkdF
bGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9XG5cbiIp
OworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRlOlxuIik7CisgICAg
ICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8U1ZHRWxlbWVudD4gbV9j
b250ZXh0O1xuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQ
dHI8JGltcGxDbGFzc05hbWUgPiBtX2ltcGw7XG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAg
ICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1l
KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG5cbiIpOworICAgICAgICAg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgICAgIHB1c2go
QGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBtX2lt
cGw7XG4iKTsKKyAgICAgICAgI30KKyAgICB9IGVsc2lmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7CisgICAgICAgIHB1c2goQGhC
b2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdFxu
Iik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAge1xuIik7CisgICAgICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjok
aW50ZXJmYWNlTmFtZSo+KEJhc2U6OmltcGwoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICB9XG4iKTsKKyAgICB9CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIn07
XG4iKTsKKworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVy
ZmFjZU5hbWV9OjpHRE9NJGludGVyZmFjZU5hbWUoUGFzc1JlZlB0cjxXZWJDb3JlOjokaW50ZXJm
YWNlTmFtZT4gaW1wbCIgLiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRl
eHQiIDogIiIpIC4gIilcbiIpOworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IikgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6bV9pbXBsKGltcGwpXG4iKTsKKyAgICB9
IGVsc2lmICgkaGFzUGFyZW50KSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDogJHBhcmVu
dEdJZmFjZU5hbWUoaW1wbCIgLiAoJHBhcmVudE5lZWRzU1ZHQ29udGV4dCA/ICIsIGNvbnRleHQi
IDogIiIpIC4gIilcbiIpIGlmICgkaW50ZXJmYWNlTmFtZSBuZSAiRE9NV2luZG93Iik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZSgp
XG4iKSA7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9jb250ZXh0KGNvbnRleHQpXG4i
KSBpZiAkbmVlZHNTVkdDb250ZXh0OworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAsIG1faW1w
bChpbXBsKVxuIik7CisgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKyAgICBwdXNo
KEBjQm9keSwgIn1cblxuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBpZiAoISRoYXNQYXJl
bnQpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICJHRE9NJHtpbnRlcmZhY2VOYW1lfTo6fkdET00k
aW50ZXJmYWNlTmFtZSgpXG4iKTsKKyAgICAgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKworICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGUiKSB7CisgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVG
b3JEb2N1bWVudChtX2ltcGwtPmRvY3VtZW50KCksIG1faW1wbC5nZXQoKSk7XG4iKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgICAgICMg
ICAgbXkgJGFuaW1hdGVkVHlwZSA9ICRpbXBsQ2xhc3NOYW1lOworICAgICAgICAgICAgIyAgICAk
YW5pbWF0ZWRUeXBlID1+IHMvU1ZHL1NWR0FuaW1hdGVkLzsKKworICAgICAgICAgICAgIyAgICAj
IFNwZWNpYWwgY2FzZSBmb3IgSlNTVkdOdW1iZXIKKyAgICAgICAgICAgICMgICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkYW5pbWF0ZWRUeXBlKSBhbmQgJHBvZFR5cGUg
bmUgImZsb2F0IikgeworICAgICAgICAgICAgIyAgICAgICAgcHVzaChAY0JvZHksICIgICAgSlNT
VkdEeW5hbWljUE9EVHlwZVdyYXBwZXJDYWNoZTwkcG9kVHlwZSwgJGFuaW1hdGVkVHlwZT46OmZv
cmdldFdyYXBwZXIobV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICAgICAgIyAgICB9CisgICAg
ICAgICAgICAjfQorICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6R0RPTVNj
cmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3QobV9pbXBsLmdldCgpKTtcbiIpOworICAg
ICAgICB9CisKKyAgICAgICAgcHVzaChAY0JvZHksICJcbn1cblxuIik7CisgICAgfQorCisgICAg
IyBEb2N1bWVudCBuZWVkcyBhIHNwZWNpYWwgZGVzdHJ1Y3RvciBiZWNhdXNlIGl0J3MgYSBzcGVj
aWFsIGNhc2UgZm9yIGNhY2hpbmcuIEl0IG5lZWRzCisgICAgIyBpdHMgb3duIHNwZWNpYWwgaGFu
ZGxpbmcgcmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGUgY2FjaGluZyB0aGF0IE5vZGUgbm9ybWFs
bHkgZG9lcy4KKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50IikgeworICAgICAg
ICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1l
KClcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVy
ZmFjZU5hbWV9Kj4oaW1wbCgpKSk7XG59XG5cbiIpOworICAgIH0KKworICAgICRpbXBsSW5jbHVk
ZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVy
ZmFjZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siR0RPTU9iamVjdC5oIn0gPSAx
OworCisgICAgJGltcGxUeXBlZGVmc3siJGNsYXNzTmFtZSJ9ID0gMTsKKyAgICAkaW1wbFR5cGVk
ZWZzeyIke2NsYXNzTmFtZX1DbGFzcyJ9ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJF
T0YiOworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5j
bHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+CisjaW5jbHVkZSAiRE9NV2luZG93LmgiIC8qIHl1
a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJOb2RlLmgiIC8qIHl1
a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJOYW1lZE5vZGVNYXAu
aCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZh
c1BhdHRlcm4uaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1
ZGUgIkNhbnZhc0dyYWRpZW50LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwg
Ki8KKyNpbmNsdWRlICJDYW52YXNTdHlsZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9w
dGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIC8qIHl1a2s6
IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVj
dC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiZ2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICov
CisjaW5jbHVkZSAicHJpdmdkb21FdmVudFRhcmdldE5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1h
a2UgdGhpcyBvcHRpb25hbCBvbiBFdmVudFRhcmdldCovCisjaW5jbHVkZSAiJHtpbnRlcmZhY2VO
YW1lfS5oIgorI2luY2x1ZGUgIiR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICJwcml2JHtoZHJOYW1l
fS5oIgorI2luY2x1ZGUgImludCR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5hbWV9cHJv
cHMuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJ1c3RyaW5nLmgiCisjaW5jbHVk
ZSAiS1VSTC5oIgorCisjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1ZGUgIkV2
ZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVk
ZSAiQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiU3R5
bGVTaGVldC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK0VPRgorCisgICAgcHVzaChAY0Jv
ZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisK
KyR7aGFja0RlY2xzfQorCitHX0JFR0lOX0RFQ0xTCisKKyR7c3RyaW5nQ29udmVydH0KKworR19E
RUZJTkVfVFlQRSgke2NsYXNzTmFtZX0sICR7bGNhc2VfaWZhY2VuYW1lfSwgJHtwYXJlbnRHT2Jq
VHlwZX0pOworCisjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0KHN0ciku
bV9zdHIpCisKKy8qCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgeworICAgIGNsYXNzIFdl
YkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKml0ZW07Cit9OyAgCisKKyNkZWZpbmUgR0RPTV8ke2Ns
c0NhcHN9X0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2Jq
KSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfVByaXZhdGUpKQorKi8KK0dfRU5E
X0RFQ0xTCitXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9n
ZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJlcXVlc3QpCit7CitFT0YKKworICAgIHB1c2goQGNC
b2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgIGlmICgoJGludGVyZmFjZU5hbWUgZXEgIkRP
TVdpbmRvdyIpKSB7CisgICAgICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworICAgICAgICBy
ZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gKi8KK0VPRgorICAgIH0gZWxzZSB7CisgICAgICAgICRp
bXBsQ29udGVudCA9IDw8ICJFT0YiOworICAgIEdET00ke2ludGVyZmFjZU5hbWV9ICpyZXM7Cisg
ICAgcmVzID0gc3RhdGljX2Nhc3Q8R0RPTSR7aW50ZXJmYWNlTmFtZX0qPihnZG9tX2RvbV9vYmpl
Y3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihyZXMtPmltcGwoKSk7CitFT0YK
KyAgICB9CisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgIyBQcm9w
ZXJ0aWVzCisgICAgbXkgJGZ1bmN0aW9uTmFtZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5hbWU7IAor
ICAgIFNLSVBQUk9QOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1
dGVzfSkgeworICAgICAgICBteSAkcHJvcE5hbWUgPSBkZWNhbWVsaXplKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZSk7CisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7Cisg
ICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKyAgICAgICAgbXkg
JGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsK
KyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGlmIChza2lwUHJvcFRlbXBvcmFyaWx5
KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgIGFkZFByb3BJbmNIZHIoJHByb3BfdHlwZSk7CisK
KyAgICAgICAgI3B1c2goQGhCb2R5UHJvcCwgIldFQktJVF9HRE9NX0FQSSAkdHlwZVxuJGZ1bmN0
aW9uTmFtZVByZWZpeCIgLiAiX3Byb3BfZ2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcp
O1xuXG4iKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0dET01fQVBJIHZv
aWRcbiRmdW5jdGlvbk5hbWVQcmVmaXgiIC4gIl9wcm9wX3NldF8iIC4gIiRwcm9wTmFtZSAoJGZ1
bmN0aW9uU2lnLCAkdHlwZSIgLiAidmFsdWUpO1xuXG4iKTsKKyAgICB9CisKKyAgICAjIFByb3Bl
cnRpZXMKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK30KKworR19CRUdJTl9ERUNMUwor
CitlbnVtIHsKKyAgICBQUk9QXzAsCitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29u
dGVudCk7CisKKyAgICBteSBAdHh0X2luc3RhbGxfcHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X3Nl
dF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfZ2V0X3Byb3BzID0gKCk7CisKKyAgICBteSAkcHJp
dl9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNlTmFtZSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAiZ3Nl
bGYiLCAic2VsZiIpOworCisgICAgbXkgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGlj
IHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVj
dCwgZ3VpbnQgcHJvcF9pZCwKKwkJCQkJIEdWYWx1ZSAqIHZhbHVlLAorCQkJCQkgR1BhcmFtU3Bl
YyAqIHBzcGVjKQoreworCSR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmpl
Y3QpOworICAgICRwcml2X2ZuCisJc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0
eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X3Byb3AgPSA8
PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2Zu
KEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisJCQkJCSBjb25zdCBHVmFsdWUgKiB2
YWx1ZSwKKwkJCQkJIEdQYXJhbVNwZWMgKiBwc3BlYykKK3sKKwkke2NsYXNzTmFtZX0gKnNlbGYg
PSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsKKyAgICAkcHJpdl9mbgorCXN3aXRjaCAocHJvcF9p
ZCkgeworRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisKKyAg
ICBTS0lQRU5VTTogZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRl
c30pIHsKKyAgICAgICAgbXkgJHByb3BfbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFt
ZTsKKyAgICAgICAgbXkgJHNldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2Zp
cnN0KCRwcm9wX25hbWUpOworICAgICAgICBteSAkZ2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5l
cmF0b3ItPldLX2xjZmlyc3QoJHByb3BfbmFtZSk7CisKKyAgICAgICAgbXkgJHByb3BOYW1lID0g
ZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJHByb3BDYXBzID0gdWMoJHByb3BO
YW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlw
ZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkg
JHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BDYXBzfSI7CisgICAgICAgIG15ICR7cHJvcF9ndHlw
ZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5cGUpOworICAgICAgICBteSAke3Byb3BHVHlwZX0gPSB1
YygkcHJvcF9ndHlwZSk7CisgICAgICAgIG15ICRsY2FzZV9ndHlwZW5hbWUgPSAiZ2RvbV8iIC4g
JHByb3BfZ3R5cGU7CisKKyAgICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgewor
ICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgIGlmIChza2lwUHJvcFRlbXBvcmFyaWx5KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAg
ICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHB1
c2goQGNCb2R5UHJpdiwgIiAgICAke3Byb3BFbnVtfSxcbiIpOworCisgICAgICAgIG15ICRndHlw
ZSA9IEdldFByb3BHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGdwYXJhbWZsYWcgPSAi
R19QQVJBTV9SRUFEQUJMRSI7CisgICAgICAgIG15ICR3cml0ZWFibGUgPSAkYXR0cmlidXRlLT50
eXBlICF+IC9ecmVhZG9ubHkvOworICAgICAgICBteSAkY29uc3QgPSAicmVhZC1vbmx5ICI7Cisg
ICAgICAgIGlmICgkd3JpdGVhYmxlICYmICRjdXN0b20pIHsKKyAgICAgICAgICAgICRjb25zdCA9
ICJyZWFkLW9ubHkgKGR1ZSB0byBjdXN0b20gZnVuY3Rpb25zIG5lZWRlZCBpbiBnZG9td2Via2l0
KSI7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgIGlmICgk
d3JpdGVhYmxlICYmICEkY3VzdG9tKSB7CisgICAgICAgICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BB
UkFNX1JFQURXUklURSI7CisgICAgICAgICAgICAkY29uc3QgPSAicmVhZC13cml0ZSAiOworICAg
ICAgICB9CisKKyAgICAgICAgbXkgJF9ndHlwZSA9ICRndHlwZTsKKyAgICAgICAgaWYgKCRndHlw
ZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgJF9ndHlwZSA9ICJ1aW50IjsgIyB5dWsuCisg
ICAgICAgIH0KKyAgICAgICAgbXkgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwlnX29i
amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnX2tsYXNzLCAke3Byb3BFbnVtfSwgCisJCQln
X3BhcmFtX3NwZWNfJHtfZ3R5cGV9ICgiJHtwcm9wTmFtZX0iLCAvKiBuYW1lICovCisJCQkJIiR7
aW50ZXJmYWNlTmFtZX0uJHtwcm9wTmFtZX0iLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworCQkJ
CSIke2NvbnN0fSAke3R5cGV9ICR7aW50ZXJmYWNlTmFtZX0uJHtwcm9wTmFtZX0iLCAvKiBsb25n
ZXIgKi8KK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxs
X3Byb3ApOworICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9ICIvKiBUT0RPISAkZ3R5cGUgKi9c
biI7CisKKyAgICAgICAgaWYgKCR3cml0ZWFibGUpIHsKKworICAgICAgICAgICAgbXkgJG9rID0g
MDsKKyAgICAgICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgICAgICBpZiAoJGd0
eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiV2ViQ29y
ZTo6U3RyaW5nIjsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgIyBYWFggVE9ETyAtIHNraXAgTG9jYXRpb24KKyAgICAgICAgICAgIGlmICgkaW50
ZXJmYWNlTmFtZSBlcSAiTG9jYXRpb24iKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMDsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCRvaykgeworICAgICAgICAgICAgICAgIHB1
c2goQHR4dF9zZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNl
cHRpb25Db2RlIGVjID0gMDtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307
CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgZ3NlbGYtPnNl
dCR7c2V0cHJvcF9uYW1lX2ZufSgke2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRndHlwZSAodmFs
dWUpKSIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwgZWMiKSBp
ZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIHB1c2go
QHR4dF9zZXRfcHJvcHMsICIpO1xuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0
X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVt
fTpcbiAgICB7XG4iKTsKKworICAgICAgICBteSAkZXhjZXB0aW9uID0gIiI7CisgICAgICAgIGlm
IChAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAkZXhjZXB0
aW9uID0gImVjIjsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBt
eSAkY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkcG9zdF9jb252ZXJ0X2ZuID0gIiI7Cisg
ICAgICAgIG15ICRkb25lID0gMDsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgewor
ICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiX0dfR0VUX1VURjgoIjsKKyAgICAgICAgICAgICRw
b3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCRndHlwZSBl
cSAib2JqZWN0IikgeworICAgICAgICAgICAgIyRjb252ZXJ0X2ZuID0gIldURjo6Z2V0UHRyKCR7
bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZSgiOworICAgICAgICAgICAgIyRjb252ZXJ0X2Zu
ID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNlX2d0eXBlbmFtZX0sICJnc2VsZiIs
ICJzZWxmIik7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAiJHtsY2FzZV9ndHlwZW5hbWV9
X2dldF9wcml2YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PigiOworICAgICAg
ICAgICAgIyRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAgICAgICAgICBteSAkZG9tb2JqVHlw
ZSA9ICJHRE9NIi4kcHJvcF90eXBlOworICAgICAgICAgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJF
T0YiOworICAgICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4gcHRyID0gZ3Nl
bGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pOworICAgICAgICBnX3ZhbHVlX3Nl
dF9vYmplY3QgKHZhbHVlLCBXZWJDb3JlOjp0b0dET00ocHRyLmdldCgpKSk7CitFT0YKKyAgICAg
ICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworICAgICAgICAgICAg
JGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkZG9uZSkgeworICAgICAgICAg
ICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1ZV9zZXRfJF9ndHlwZSAodmFs
dWUsICR7Y29udmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSkk
e3Bvc3RfY29udmVydF9mbn0pO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRf
Z2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKworICAgICAgICAjIGlzIHRo
aXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/Pz8KKyAgICAgICAgIyBjYW4gaXQgYmUgZG9uZSB3aXRo
IGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0eXBlCisgICAgICAgICMgYW5kIGdldHRpbmcgYSBmZXcg
dGhpbmdzLCBpZ25vcmluZyB0aGUgbWluLW1heCBmb3IgZXhhbXBsZT8KKyAgICAgICAgaWYgKCRn
dHlwZSBlcSAiaW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9G
IjsKKwkJCQlHX01JTklOVCwgICAgICAgIC8qIG1pbiAqLworCQkJCUdfTUFYSU5ULCAvKiBtYXgg
Ki8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHX01JTkZMT0FULCAgICAgICAgLyogbWluICovCisJCQkJ
R19NQVhGTE9BVCwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgor
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRf
aW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJR19NSU5ET1VCTEUsICAgICAgICAvKiBtaW4g
Ki8KKwkJCQlHX01BWERPVUJMRSwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQg
Ki8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAg
ICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAq
LworCQkJCUdfTUFYVUlOVDY0LCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAg
ICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCTAsICAgICAgICAvKiBtaW4gKi8K
KwkJCQlHX01BWFVMT05HLCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLwor
RU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJR19NSU5MT05HLCAgICAgICAgLyogbWlu
ICovCisJCQkJR19NQVhMT05HLCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAqLwor
CQkJCUdfTUFYVUlOVCwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VP
RgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAqLworCQkJ
CUdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAkdHh0
X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCUdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAq
LworCQkJCUdfTUFYSU5UOCwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAgICAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCTAsICAgICAgICAvKiBtaW4gKi8KKwkJ
CQlHX01BWFVJTlQ4LCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHRE9NX1RZUEVfJHtwcm9w
R1R5cGV9LCAvKiBnb2JqZWN0IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAgICAgIHB1c2go
QHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5z
dGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJKEdQYXJhbUZsYWdzKSR7Z3BhcmFtZmxhZ30pKTsg
ICAgICAgICAgICAgICAgICAgCisKK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9w
cywgJHR4dF9pbnN0YWxsX3Byb3ApOworCisKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keVByaXYs
ICJ9O1xuXG4iKTsKKworCisgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworCWRlZmF1bHQ6
CisJCUdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBz
cGVjKTsKKwkJYnJlYWs7CisJfQorfQorRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4
dF9nZXRfcHJvcCk7CisKKyAgICAkdHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CisJZGVmYXVsdDoK
KwkJR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNw
ZWMpOworCQlicmVhazsKKwl9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0
X3NldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8ICJFT0YiOworCWNh
c2UgUFJPUF9BR0U6CisJCXNlbGYtPmFnZSA9IGdfdmFsdWVfZ2V0X2ludCAodmFsdWUpOworCQli
cmVhazsKKworCWNhc2UgUFJPUF9BR0U6CisJCWdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgc2VsZi0+
YWdlKTsKKwkJYnJlYWs7CisKKyAgICAgICAgKyAgIGdfdmFsdWVfaW5pdCgmcGFyYW1zWzBdLCBH
X1RZUEVfRlJPTV9JTlNUQU5DRShvYmplY3QpKTsKKyAgICAgICAgKyAgIGdfdmFsdWVfc2V0X2lu
c3RhbmNlKCZwYXJhbXNbMF0sIChncG9pbnRlcilvYmplY3QpOworCitFT0YKKworCisgICAgJGlt
cGxDb250ZW50ID0gPDwgIkVPRiI7CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9m
aW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLyoke2NsYXNzTmFtZX0qIHJlcXVlc3Qg
PSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsqLworICAgIC8qJHtjbGFzc05hbWV9UHJpdmF0ZSog
cHJpdiA9IHJlcXVlc3QtPnByaXY7Ki8KKyAgICAKKyAgICAvKkdPYmplY3RDbGFzcyAqcGFyZW50
X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWsgKGdfdHlwZV9wZWVrX3BhcmVudCAoJHtwYXJlbnRH
T2JqVHlwZX0pKTsqLworCisgICAgLyogRnJlZSBhbnkgbWVtb3J5IG9yIGNsb3NlIGFueSBmaWxl
cyAqLyAKKworICAgIC8qcGFyZW50X2NsYXNzLT4gZmluYWxpemUgKG9iamVjdCk7Ki8KKworICAg
IEdfT0JKRUNUX0NMQVNTKCR7bGNhc2VfaWZhY2VuYW1lfV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6
ZShvYmplY3QpOworfQorCitAdHh0X3NldF9wcm9wcworCitAdHh0X2dldF9wcm9wcworCitzdGF0
aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fY2xhc3NfaW5pdCgke2NsYXNzTmFtZX1DbGFzcyog
cmVxdWVzdENsYXNzKQoreworCUdPYmplY3RDbGFzcyAqZ19rbGFzcyA9IEdfT0JKRUNUX0NMQVNT
IChyZXF1ZXN0Q2xhc3MpOworICAgIGdfa2xhc3MtPmZpbmFsaXplID0gJHtsY2FzZV9pZmFjZW5h
bWV9X2ZpbmFsaXplOworCWdfa2xhc3MtPnNldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1l
fV9fc2V0X3Byb3BlcnR5X2ZuOworCWdfa2xhc3MtPmdldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZh
Y2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuOworICAgIAorICAgIEB0eHRfaW5zdGFsbF9wcm9wcwor
CisgICAgLypnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoJHtj
bGFzc05hbWV9UHJpdmF0ZSkpOyovCit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1l
fV9pbml0KCR7Y2xhc3NOYW1lfSogcmVxdWVzdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfVByaXZh
dGUqIHByaXYgPSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVx
dWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYs
ICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJpbnRnZG9tJHtpbnRlcmZhY2VO
YW1lfS5oIn0gPSAxOworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCisjaWZuZGVmICR7
Z3VhcmR9X1BSSVZfCisjZGVmaW5lICR7Z3VhcmR9X1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1vYmpl
Y3QuaCIKKyNpbmNsdWRlICIke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVj
dC5oIgorLyojaW5jbHVkZSAicHJpdiR7cGFyZW50SGRyTmFtZX0uaCIqLworLypHX0JFR0lOX0RF
Q0xTKi8KKy8qY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfTsqLworI2luY2x1ZGUgIiR7
aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRl
bnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgR0RPTSR7aW50ZXJmYWNlTmFtZX0gOiBwdWJsaWMgJHtwYXJlbnRHSWZhY2VO
YW1lfSB7CisKK3B1YmxpYzoKKyAgICBHRE9NJHtpbnRlcmZhY2VOYW1lfShXZWJDb3JlOjoke2lu
dGVyZmFjZU5hbWV9KiBpbXBsKSA6ICRwYXJlbnRHSWZhY2VOYW1lfShpbXBsKQorICAgIHsgaW1w
bC0+cmVmKCk7IH0KKyAgICB+R0RPTSR7aW50ZXJmYWNlTmFtZX0oKSB7IG1faW1wbC0+ZGVyZWYo
KTsgfQorCisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCgpIGNvbnN0IHsgcmV0
dXJuIG1faW1wbDsgfQorCisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1l
fSAqbV9pbXBsOworfTsKKworRU9GCisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJpdiwgJGltcGxD
b250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy99IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX0gJHtjbGFzc05hbWV9Owor
CitXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJp
dmF0ZSgke2NsYXNzTmFtZX0gKnJlcXVlc3QpOworCisvKkdfRU5EX0RFQ0xTKi8KKworI2VuZGlm
IC8qICR7Z3VhcmR9X1BSSVZfICovCisKK0VPRgorCisgICAgI3JldHVybiByZWludGVycHJldF9j
YXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPigoV2ViQ29yZTo6Tm9kZSopKHJlcykpOwor
ICAgICAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAgICAgI2lmICgk
cGFyYW1JRExUeXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0
Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAjICAgICRpbXBsSW5jbHVk
ZXN7IkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7CisgICAgICAgICN9IGVsc2Ug
eworICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7JGluY2x1ZGVIZHJ9ID0gMTsKKyAgICAgICAg
I30KKyAgICAgICAgJGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJwcml2Z2RvbURPTU9iamVjdC5oIn0gPSAxOworCisgICAgICAg
IExPT1A6IGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewor
ICAgICAgICAgICAgI215ICRmdW5jdGlvbk5hbWUgPSBkZWNhbWVsaXplKCRjbGFzc05hbWUpIC4g
Il8iIC4gZGVjYW1lbGl6ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAg
ICAgICAgbXkgJGZuX3NpZ19uYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAg
ICAgICAgICAgICAgbXkgJGZuX3NpZ190eXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7
CisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXpl
KCRpbnRlcmZhY2VOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZuX3NpZ19uYW1lKTsKKyAgICAg
ICAgICAgICAgICBteSAkcmV0dXJuVHlwZSA9IEdldEdUeXBlKCRmbl9zaWdfdHlwZSk7CisgICAg
ICAgICAgICAgICAgbXkgJHJldF9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkZm5fc2ln
X3R5cGUpOworCisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUg
KnRoaXoiOworCisgICAgICAgICAgICAgICAgbXkgJGNhbGxfaW1wbF9wYXJhbXMgPSAiIjsKKyAg
ICAgICAgICAgICAgICBteSAkZ2RvbV9mbl9wcmVmaXggPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgk
Zm5fc2lnX3R5cGUpOworCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBDb21wYXJlSG93IGZ1
bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdk
b21fcmFuZ2VfY29tcGFyZV9ib3VuZGFyeV9wb2ludHMiKSB7CisgICAgICAgICAgICAgICAgICAg
IHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlv
biAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAke2Z1bmN0
aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIFNWR0RvY3VtZW50IGZ1
bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIGVxICJHZG9t
U1ZHRG9jdW1lbnQgKiIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8q
IFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0g
Ki9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9E
Tzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIp
OworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgIyBYWFggc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdwor
ICAgICAgICAgICAgICAgIG15ICRpc19jdXN0b21fZm4gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAgICAgICAgICAgICAgIGlmICgkaXNf
Y3VzdG9tX2ZuICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9t
X25vZGVfaXRlcmF0b3JfbmV4dF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAg
ICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIg
JiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxh
Y2VfY2hpbGQiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21f
dHJlZV93YWxrZXJfcGFyZW50X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2ZpcnN0X2NoaWxkIiAmJiAKKyAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9sYXN0X2NoaWxkIiAm
JiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtl
cl9wcmV2aW91c19zaWJsaW5nIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9uZXh0X3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX25vZGUiICYm
IAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2Vy
X25leHRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fbm9kZV9pdGVyYXRvcl9wcmV2aW91c19ub2RlIikgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFt
ZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFgg
VE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAg
ICAgICAgICAgICAgICAgbXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAg
ICAgICAgICAgICAgYWRkSW5jQm9keSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAg
ICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFy
YW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15
ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsICRwYXJhbVR5cGUkcGFyYW1OYW1lIjsKKworICAgICAg
ICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBh
cmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIG5lICJET01PYmpl
Y3QiICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtSURMVHlwZSBuZSAiRXZl
bnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
aW50Z2RvbSR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICRpbXBsSW5jbHVkZXN7InByaXZnZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJhbUlETFR5cGV9Lmgi
fSA9IDE7ICMgdGhpcyBpc24ndCBzdHJpY3RseSBuZWNlc3NhcnkgYnV0IG9uZSBvZiB0aGUgYXV0
by1nZW5lcmF0ZWQgZmlsZXMgbmVlZGVkIGl0IHNvLi4uLgorICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFy
YW1faXNfY2xzX3R5cGUgfHwgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAkcGFyYW1OYW1lID0gIl9nXyIgLiAkcGFyYW1OYW1lOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkY2FsbF9pbXBsX3Bh
cmFtcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgLj0gIiwg
JHBhcmFtTmFtZSI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyA9ICIkcGFy
YW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIGFkZEluY0hkcigkZm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIGlm
ICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZz
eyJHZG9tJHtmbl9zaWdfdHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworCisgICAgICAgICAgICAgICAg
ICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkV2ZW50VGFyZ2V0Iikg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJpbnRnZG9t
JHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3sicHJpdmdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tJHtmbl9zaWdfdHlwZX0u
aCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAgY3VzdG9tIGZ1bmN0aW9ucyBmb3Ig
bm93CisgICAgICAgICAgICAgICAgIyBidXQgc2tpcCBmcm9tIGhlcmUgdG8gYWxsb3cgc29tZSBo
ZWFkZXJzIHRvIGJlIGNyZWF0ZWQKKyAgICAgICAgICAgICAgICAjIGZvciBhIHN1Y2Nlc3NmdWwg
Y29tcGlsZS4KKyAgICAgICAgICAgICAgICBpZiAoJGlzX2N1c3RvbV9mbiAmJgorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxkIiAmJiAK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2luc2VydF9i
ZWZvcmUiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9k
ZV9yZXBsYWNlX2NoaWxkIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5l
ICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBo
Qm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9c
blxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzog
Y3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG15
ICRfcmV0dXJuVHlwZSA9ICRyZXR1cm5UeXBlOworICAgICAgICAgICAgICAgIG15ICRkb21vYmpU
eXBlID0gIkdET00iLiRmbl9zaWdfdHlwZTsKKyAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190
eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
ZXEgJ2dkb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfY29udGV4dCcpIHsKKyAgICAgICAgICAg
ICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgJF9yZXR1cm5UeXBlID0g
J0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0IConOworICAgICAgICAgICAgICAgICAgICAkZG9t
b2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dCc7CisgICAgICAgICAgICAgICAg
ICAgICRnZG9tX2ZuX3ByZWZpeCA9ICdnZG9tX2NhbnZhc19yZW5kZXJpbmdfY29udGV4dCc7Cisg
ICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0b28gaW52b2x2ZWQgZm9yIG5v
dy4gIHNraXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVzdCBjb252ZXJ0IHRvIGEgRE9N
T2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91dCBob3cpCisgICAgICAgICAg
ICAgICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3JlYXRlIGEgR0RPTURvbU9iamVj
dAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgJ0RPTU9iamVjdCcgJiYKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBlcSAnZ2RvbV9kb2N1bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0
JykgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBIQUNLIQorICAgICAgICAgICAgICAgICAg
ICAkX3JldHVyblR5cGUgPSAnR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCAqJzsKKyAgICAg
ICAgICAgICAgICAgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCc7CisgICAgICAgICAgICAgICAgICAgICRnZG9tX2ZuX3ByZWZpeCA9ICdnZG9tX2NhbnZhc19y
ZW5kZXJpbmdfY29udGV4dDJkJzsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOyAjIFhY
WCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93LiAgc2tpcCBpdC4KKyAgICAgICAgICAgICAgICAgICAg
IyBtdXN0IGNvbnZlcnQgdG8gYSBET01PYmplY3QgKFRPRE86IGJyb3dzZSBKUyBjb2RlIHRvIGZp
bmQgb3V0IGhvdykKKyAgICAgICAgICAgICAgICAgICAgIyBiZXR0ZXI6IHdvcmsgb3V0IGhvdyB0
byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgCisKKyAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIldFQktJVF9HRE9NX0FQ
SSAkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUg
KCRmdW5jdGlvblNpZylcbntcbiIpOworCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBl
IG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJv
cGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAwKTtcbiIpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lm
X2ZhaWwgKHRoaXopO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGl0ZW0gPSAoJHts
Y2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKHRoaXopKTtcbiIpOworICAgICAgICAgICAgICAg
IGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFgg
VE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoaXRlbSwgMCk7XG4iKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBnX3JldHVybl9pZl9mYWlsIChpdGVtKTtcbiIpOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkg
eworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0t
Pm5hbWUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50
eXBlOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlSXNQcmltaXRpdmUgPSAkY29k
ZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAg
ICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURM
VHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAg
ICAgICAgICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke3BhcmFtSURMVHlwZX0ifSA9IDE7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCEkcGFyYW1UeXBl
SXNQcmltaXRpdmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBu
ZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1
cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKCRwYXJhbU5hbWUsIDApO1xuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKCRwYXJhbU5hbWUpO1xu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIiI7
CisgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0
ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50
eXBlOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFt
SURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXpl
KCRwYXJhbS0+bmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190
eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAg
ICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6U3RyaW5nIF9nXyR7cGFyYW1OYW1lfSA9
IFdlYkNvcmU6OlN0cmluZygkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbV9nZG9tX2ZuID0gImdkb21fIiAuIGRlY2FtZWxpemUo
JHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAjcHVzaChAY0JvZHksICIg
ICAgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cGFyYW1JRExUeXBlfT4gKiBfZ18ke3BhcmFt
TmFtZX0gPSBXVEY6OlJlZlB0cjwke3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJhbU5h
bWUpPjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEg
IkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7InByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogX2df
JHtwYXJhbU5hbWV9ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2Rv
bV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9ICogX2dfJHtwYXJhbU5h
bWV9ID0gKCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJl
dHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFgg
VE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChfZ18ke3BhcmFt
TmFtZX0sIDApO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwg
KF9nXyR7cGFyYW1OYW1lfSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUg
PSAiX2dfIi4kcGFyYW1OYW1lIGlmICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJldHVy
biJ9OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG15ICRhc3NpZ24gPSAi
IjsKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduX3ByZSA9ICIiOworICAgICAgICAgICAgICAg
IG15ICRhc3NpZ25fcG9zdCA9ICIiOworICAgICAgICAgICAgICAgICRnX3JlcyA9IDA7CisgICAg
ICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikg
eworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAkYXNzaWduID0gIlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtmbl9zaWdf
dHlwZX0+IGdfcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcHJlID0g
IldURjo6Z2V0UHRyKCI7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduX3Bvc3QgPSAi
KSI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAkYXNzaWduID0gIiR7X3JldHVyblR5cGV9IHJlcyA9ICI7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbXkgJGV4Y2VwdGlvbnMgPSAi
IjsKKyAgICAgICAgICAgICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgke2NhbGxfaW1wbF9w
YXJhbXN9IG5lICIiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICIs
IGVjIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICRleGNlcHRpb25zID0gImVjIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgbmVlZCB0aGlzIGZvciBpbmNsdWRpbmcgLi4u
IF9zb21ldGhpbmdfIC0gZm9yIHRoZSBjbGFzcyBhcmdzCisgICAgICAgICAgICAgICAgI2lmICgk
cmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJn
ZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAjfQorICAgICAgICAg
ICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiB8fAor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfaW5zZXJ0X2Jl
Zm9yZSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2Rl
X3JlcGxhY2VfY2hpbGQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEg
Imdkb21fbm9kZV9yZW1vdmVfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRjdXN0
b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCA9IDw8ICJFT0YiOworICAgIGJvb2wgb2sgPSBpdGVt
LT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSk7CisgICAg
aWYgKG9rKQorICAgIHsKKyAgICAgICAgJHtfcmV0dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nhc3Q8
JHtfcmV0dXJuVHlwZX0+KFdlYkNvcmU6OnRvR0RPTSgkcmV0dXJuUGFyYW1OYW1lKSk7IAorICAg
ICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK0VPRgorICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkKTsK
KyAgICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIgJiYK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAnZ2RvbV9kb2N1bWVudF9nZXRf
Y3NzX2NhbnZhc19jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICAvKiBYWFggVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0IChpdGVtLT4ke2ZuX3NpZ19uYW1l
fSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpOyovXG4iICk7CisgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9N
U3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2ln
bn1fR19HRVRfVVRGOChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtl
eGNlcHRpb25zfSkpO1xuIiApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICgkZ19yZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRnX3JlcyA9
ICIke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxf
cGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSkiIDsKKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7
YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJh
bXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KTtcbiIgKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUg
bmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1cm5U
eXBlfT4oV2ViQ29yZTo6dG9HRE9NKGdfcmVzLmdldCgpKSk7IFxuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
aWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RPOiByZXR1cm4gY2Fu
dmFzIG9iamVjdCAqL1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gcmVzO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICJcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJ9XG5cbiIp
OworICAgICAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogZXh0ZXJuIFwiQ1wiICovXG5c
biIpOworICAgIHB1c2goQGNCb2R5UHJpdiwgIn0gLyogZXh0ZXJuIFwiQ1wiICovXG5cbiIpOwor
CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2go
QGhCb2R5SW50ZXJuYWwsICIjZW5kaWYgLyogJHtndWFyZH1fSU5UXyovXG4iKTsKKworICAgIHB1
c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5kaWYg
LyogJGd1YXJkICovXG4iKTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfRU5EX0RFQ0xTXG5c
biIpOworICAgIHB1c2goQGhCb2R5UHJvcCwgIiNlbmRpZiAvKiAke2d1YXJkfV9QUk9QXyovXG4i
KTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIKK3N1YiBXcml0ZURhdGEKK3sKKyAgICBteSAoJG9i
amVjdCwgJG5hbWUpID0gQF87CisKKworICAgICMgV3JpdGUgSW50ZXJuYWwgaGVhZGVyCisgICAg
bXkgJGhkckZOYW1lSW50ZXJuYWwgPSAiJG91dHB1dERpci9pbnQiIC4gJG5hbWUgLiAiLmgiOwor
ICAgIG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFsIikgb3IgZGllICJDb3VsZG4n
dCBvcGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAgcHJpbnQgSU5USEVBREVSIEBo
UHJlZml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAgIHByaW50IElOVEhFQURFUiBA
aEJvZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOworCisgICAgIyBXcml0ZSBQcml2
YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1dERpci9wcml2IiAuICRu
YW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJpdiIpIG9yIGRp
ZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworCisgICAgcHJpbnQgUFJJVkhF
QURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJJ
VkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisgICAgIyBXcml0
ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgbXkgJGltcGxGaWxlTmFtZVByaXYgPSAiJG91
dHB1dERpci9wcml2IiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oUFJJVklNUEwsICI+JGlt
cGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1l
UHJpdiI7CisKKyAgICBwcmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBQUklWSU1Q
TCAiXG4iOworICAgIHByaW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAgICBjbG9zZShQUklW
SU1QTCk7CisKKyAgICAjIFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9pZHMgcmVjdXJzaXZl
IG5pZ2h0bWFyZSkKKyAgICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1l
IC4gInByb3BzLmgiOworICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJvcEZOYW1lIikgb3Ig
ZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAgICAkaGRyUHJvcElu
Y2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJPUEhFQURFUiBAaFBy
ZWZpeDsKKyAgICBwcmludCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5jbHVkZXMgLyBkZWZp
bmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRpZXMuXG5wZXJoYXBz
IC0gYmV0dGVyIC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW4gaGVyZSEqL1xu
IjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAgcHJpbnQgUFJPUEhF
QURFUiAiI2luY2x1ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPlxuIjsKKyAgICBwcmludCBQUk9Q
SEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWhkclByb3BJbmNs
dWRlcyk7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiXG4iIGlmIGtleXMoJWhkclByb3BJbmNsdWRl
cyk7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiXG4iOworICAgIHByaW50IFBST1BIRUFERVIgQGhC
b2R5UHJvcDsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdyaXRlIHB1YmxpYyBoZWFk
ZXIuCisgICAgbXkgJGhkckZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5oIjsKKyAg
ICBvcGVuKEhFQURFUiwgIj4kaGRyRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
aGRyRk5hbWUiOworCisgICAgJGhkckluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisg
ICAgcHJpbnQgSEVBREVSIEBoUHJlZml4OworICAgIHByaW50IEhFQURFUiBAaFByZWZpeEd1YXJk
OworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPlxuIjsK
KyAgICBwcmludCBIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cygl
aGRySW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWhkckluY2x1ZGVz
KTsKKyAgICBwcmludCBIRUFERVIgIlxuIjsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5UHJlOwor
ICAgIHByaW50IEhFQURFUiBtYXAgeyAidHlwZWRlZiBzdHJ1Y3QgXyRfICRfO1xuIiB9IHNvcnQg
a2V5cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVpbXBs
VHlwZWRlZnMpOworICAgIHByaW50IEhFQURFUiBAaEJvZHk7CisKKyAgICBjbG9zZShIRUFERVIp
OworCisgICAgIyBXcml0ZSB0aGUgaW1wbGVtZW50YXRpb24gc291cmNlcworICAgIG15ICRpbXBs
RmlsZU5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihJTVBM
LCAiPiRpbXBsRmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVO
YW1lIjsKKworICAgIHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1
ZGUgXCJjb25maWcuaFwiXG5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJDU3RyaW5nLmhcIlxuIjsKKyAg
ICBwcmludCBJTVBMICIjaW5jbHVkZSBcIlBsYXRmb3JtU3RyaW5nLmhcIlxuIjsKKyAgICBwcmlu
dCBJTVBMICIjaW5jbHVkZSBcIkF0b21pY1N0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAi
I2luY2x1ZGUgXCJ1c3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcIktV
UkwuaFwiXG4iOworICAgIHByaW50IElNUEwgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNv
cnQga2V5cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMICJcbiIgaWYga2V5cyglaW1w
bEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMIEBjQm9keTsKKworICAgIGNsb3NlKElNUEwpOwor
CisgICAgJWltcGxJbmNsdWRlcyA9ICgpOworICAgICVpbXBsVHlwZWRlZnMgPSAoKTsKKyAgICAl
aGRySW5jbHVkZXMgPSAoKTsKKyAgICBAaFByZWZpeCA9ICgpOworICAgIEBoQm9keSA9ICgpOwor
ICAgIEBoQm9keVByaXYgPSAoKTsKKyAgICBAaEJvZHlJbnRlcm5hbCA9ICgpOworICAgIEBoQm9k
eVByb3AgPSAoKTsKKyAgICBAaEJvZHlQcm9wUHJlID0gKCk7CisKKyAgICBAY1ByZWZpeCA9ICgp
OworICAgIEBjQm9keSA9ICgpOworICAgIEBjQm9keVByaXYgPSAoKTsKK30KKworMTsKSW5kZXg6
IFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9ET01Db3JlRXhjZXB0aW9uLmgJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRE9N
Q29yZUV4Y2VwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgKi8KIAog
I2lmbmRlZiBET01Db3JlRXhjZXB0aW9uX2gKLSNkZWZpbmUgRE9NQ29kZUV4Y2VwdGlvbl9oCisj
ZGVmaW5lIERPTUNvcmVFeGNlcHRpb25faAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQmFzZS5oIgog
CkluZGV4OiBXZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vbWFrZV9u
YW1lcy5wbAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQAogbXkgJHRhZ3NGaWxlID0g
IiI7CiBteSAkYXR0cnNGaWxlID0gIiI7CiBteSAkb3V0cHV0RGlyID0gIi4iOworbXkgJGJ0ID0g
IkpTIjsgIyBwaWNrIGEgYmluZGluZyB0eXBlIC0gSlMgb3IgR0RPTSAtIGRlZmF1bHQgYmluZGlu
ZyB0eXBlOiBKUyAqLwogbXkgJXRhZ3MgPSAoKTsKIG15ICVhdHRycyA9ICgpOwogbXkgJXBhcmFt
ZXRlcnMgPSAoKTsKQEAgLTQ5LDYgKzUwLDcgQEAKIEdldE9wdGlvbnMoJ3RhZ3M9cycgPT4gXCR0
YWdzRmlsZSwgCiAgICAgJ2F0dHJzPXMnID0+IFwkYXR0cnNGaWxlLAogICAgICdvdXRwdXREaXI9
cycgPT4gXCRvdXRwdXREaXIsCisgICAgJ2JpbmRpbmdUeXBlPXMnID0+IFwkYnQsCiAgICAgJ2V4
dHJhRGVmaW5lcz1zJyA9PiBcJGV4dHJhRGVmaW5lcywKICAgICAncHJlcHJvY2Vzc29yPXMnID0+
IFwkcHJlcHJvY2Vzc29yKTsKIApAQCAtNjYsNyArNjgsNyBAQAogbWtwYXRoKCRvdXRwdXREaXIp
OwogbXkgJG5hbWVzQmFzZVBhdGggPSAiJG91dHB1dERpci8kcGFyYW1ldGVyc3snbmFtZXNwYWNl
J31OYW1lcyI7CiBteSAkZmFjdG9yeUJhc2VQYXRoID0gIiRvdXRwdXREaXIvJHBhcmFtZXRlcnN7
J25hbWVzcGFjZSd9RWxlbWVudEZhY3RvcnkiOwotbXkgJHdyYXBwZXJGYWN0b3J5QmFzZVBhdGgg
PSAiJG91dHB1dERpci9KUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRXcmFwcGVyRmFj
dG9yeSI7CitteSAkd3JhcHBlckZhY3RvcnlCYXNlUGF0aCA9ICIkb3V0cHV0RGlyLyR7YnR9JHBh
cmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBwZXJGYWN0b3J5IjsKIAogcHJpbnROYW1l
c0hlYWRlckZpbGUoIiRuYW1lc0Jhc2VQYXRoLmgiKTsKIHByaW50TmFtZXNDcHBGaWxlKCIkbmFt
ZXNCYXNlUGF0aC5jcHAiKTsKQEAgLTQzMiw3ICs0MzQsNyBAQAogICAgICAgICBuZXh0IGlmICho
YXNDdXN0b21NYXBwaW5nKCRuYW1lKSk7CiAKICAgICAgICAgbXkgJHVjTmFtZSA9ICRuYW1lc3sk
bmFtZX17InVwcGVyQ2FzZSJ9OwotICAgICAgICBwcmludCBGICIjaW5jbHVkZSBcIkpTJHBhcmFt
ZXRlcnN7J25hbWVzcGFjZSd9JHt1Y05hbWV9RWxlbWVudC5oXCJcbiI7CisgICAgICAgIHByaW50
IEYgIiNpbmNsdWRlIFwiJHtidH0kcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30ke3VjTmFtZX1FbGVt
ZW50LmhcIlxuIjsKICAgICB9CiB9CiAKQEAgLTcyMSwyMCArNzIzLDIwIEBACiAgICAgICAgICMg
SGFjayBmb3IgdGhlIG1lZGlhIHRhZ3MKICAgICAgICAgaWYgKCRuYW1lc3skbmFtZX17ImFwcGx5
QXVkaW9IYWNrIn0pIHsKICAgICAgICAgICAgIHByaW50IEYgPDxFTkQKLXN0YXRpYyBKU05vZGUq
IGNyZWF0ZSR7dWNOYW1lfVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPCRwYXJh
bWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQ+IGVsZW1lbnQpCitzdGF0aWMgJHtidH1Ob2RlKiBj
cmVhdGUke3VjTmFtZX1XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjwkcGFyYW1l
dGVyc3snbmFtZXNwYWNlJ31FbGVtZW50PiBlbGVtZW50KQogewogICAgIGlmICghTWVkaWFQbGF5
ZXI6OmlzQXZhaWxhYmxlKCkpCi0gICAgICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTJHBhcmFtZXRl
cnN7J25hbWVzcGFjZSd9RWxlbWVudChKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRQ
cm90b3R5cGU6OnNlbGYoZXhlYyksIGVsZW1lbnQuZ2V0KCkpOwotICAgIHJldHVybiBuZXcgKGV4
ZWMpIEpTJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9JHt1Y05hbWV9RWxlbWVudChKUyRwYXJhbWV0
ZXJzeyduYW1lc3BhY2UnfSR7dWNOYW1lfUVsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhlYyksIHN0
YXRpY19jYXN0PCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSR7dWNOYW1lfUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7CisgICAgICAgIHJldHVybiBuZXcgKGV4ZWMpICR7YnR9JHBhcmFtZXRlcnN7
J25hbWVzcGFjZSd9RWxlbWVudCgke2J0fSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRQ
cm90b3R5cGU6OnNlbGYoZXhlYyksIGVsZW1lbnQuZ2V0KCkpOworICAgIHJldHVybiBuZXcgKGV4
ZWMpICR7YnR9JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9JHt1Y05hbWV9RWxlbWVudCgke2J0fSRw
YXJhbWV0ZXJzeyduYW1lc3BhY2UnfSR7dWNOYW1lfUVsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhl
YyksIHN0YXRpY19jYXN0PCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSR7dWNOYW1lfUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7CiB9CiAKIEVORAogOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgcHJpbnQgRiA8PEVORAotc3RhdGljIEpTTm9kZSogY3JlYXRlJHt1Y05hbWV9V3JhcHBl
cihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxl
bWVudD4gZWxlbWVudCkKK3N0YXRpYyAke2J0fU5vZGUqIGNyZWF0ZSR7dWNOYW1lfVdyYXBwZXIo
RXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1l
bnQ+IGVsZW1lbnQpCiB7ICAgCi0gICAgcmV0dXJuIG5ldyAoZXhlYykgSlMkcGFyYW1ldGVyc3sn
bmFtZXNwYWNlJ30ke3VjTmFtZX1FbGVtZW50KEpTJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9JHt1
Y05hbWV9RWxlbWVudFByb3RvdHlwZTo6c2VsZihleGVjKSwgc3RhdGljX2Nhc3Q8JHBhcmFtZXRl
cnN7J25hbWVzcGFjZSd9JHt1Y05hbWV9RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKKyAgICBy
ZXR1cm4gbmV3IChleGVjKSAke2J0fSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSR7dWNOYW1lfUVs
ZW1lbnQoJHtidH0kcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30ke3VjTmFtZX1FbGVtZW50UHJvdG90
eXBlOjpzZWxmKGV4ZWMpLCBzdGF0aWNfY2FzdDwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30ke3Vj
TmFtZX1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwogfQogCiBFTkQKQEAgLTc1NSw3ICs3NTcs
NyBAQAogCiAgICAgcHJpbnQgRiAiI2lmICRwYXJhbWV0ZXJzeydndWFyZEZhY3RvcnlXaXRoJ31c
blxuIiBpZiAkcGFyYW1ldGVyc3snZ3VhcmRGYWN0b3J5V2l0aCd9OwogCi0gICAgcHJpbnQgRiAi
I2luY2x1ZGUgXCJKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRXcmFwcGVyRmFjdG9y
eS5oXCJcbiI7CisgICAgcHJpbnQgRiAiI2luY2x1ZGUgXCIke2J0fSRwYXJhbWV0ZXJzeyduYW1l
c3BhY2UnfUVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oXCJcbiI7CiAKICAgICBwcmludEpTRWxlbWVu
dEluY2x1ZGVzKCRGLCBcJXRhZ3MpOwogCkBAIC03NzAsNyArNzcyLDcgQEAKIAogdXNpbmcgbmFt
ZXNwYWNlICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfU5hbWVzOwogCi10eXBlZGVmIEpTTm9kZSog
KCpDcmVhdGUkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50V3JhcHBlckZ1bmN0aW9uKShF
eGVjU3RhdGUqLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQ+KTsK
K3R5cGVkZWYgJHtidH1Ob2RlKiAoKkNyZWF0ZSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1l
bnRXcmFwcGVyRnVuY3Rpb24pKEV4ZWNTdGF0ZSosIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7J25h
bWVzcGFjZSd9RWxlbWVudD4pOwogCiBFTkQKIDsKQEAgLTc3OCw3ICs3ODAsNyBAQAogICAgIHBy
aW50V3JhcHBlckZ1bmN0aW9ucygkRiwgXCV0YWdzKTsKIAogICAgIHByaW50IEYgPDxFTkQKLUpT
Tm9kZSogY3JlYXRlSlMkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31XcmFwcGVyKEV4ZWNTdGF0ZSog
ZXhlYywgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50PiBlbGVtZW50
KQorJHtidH1Ob2RlKiBjcmVhdGUke2J0fSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfVdyYXBwZXIo
RXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1l
bnQ+IGVsZW1lbnQpCiB7ICAgCiAgICAgc3RhdGljIEhhc2hNYXA8V2ViQ29yZTo6QXRvbWljU3Ry
aW5nSW1wbCosIENyZWF0ZSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnRXcmFwcGVyRnVu
Y3Rpb24+IG1hcDsKICAgICBpZiAobWFwLmlzRW1wdHkoKSkgewpAQCAtODA4LDcgKzgxMCw3IEBA
CiAgICAgQ3JlYXRlJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBwZXJGdW5jdGlv
biBjcmVhdGVXcmFwcGVyRnVuY3Rpb24gPSBtYXAuZ2V0KGVsZW1lbnQtPmxvY2FsTmFtZSgpLmlt
cGwoKSk7CiAgICAgaWYgKGNyZWF0ZVdyYXBwZXJGdW5jdGlvbikKICAgICAgICAgcmV0dXJuIGNy
ZWF0ZVdyYXBwZXJGdW5jdGlvbihleGVjLCBlbGVtZW50KTsKLSAgICByZXR1cm4gbmV3IChleGVj
KSBKUyRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQoSlMkcGFyYW1ldGVyc3snbmFtZXNw
YWNlJ31FbGVtZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMpLCBlbGVtZW50LmdldCgpKTsKKyAgICBy
ZXR1cm4gbmV3IChleGVjKSAke2J0fSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQoJHti
dH0kcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMpLCBl
bGVtZW50LmdldCgpKTsKIH0KIAogfQpAQCAtODI5LDggKzgzMSw4IEBACiAKICAgICBwcmludExp
Y2Vuc2VIZWFkZXIoJEYpOwogCi0gICAgcHJpbnQgRiAiI2lmbmRlZiBKUyRwYXJhbWV0ZXJzeydu
YW1lc3BhY2UnfUVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oXG4iOwotICAgIHByaW50IEYgIiNkZWZp
bmUgSlMkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50V3JhcHBlckZhY3RvcnlfaFxuXG4i
OworICAgIHByaW50IEYgIiNpZm5kZWYgJHtidH0kcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVt
ZW50V3JhcHBlckZhY3RvcnlfaFxuIjsKKyAgICBwcmludCBGICIjZGVmaW5lICR7YnR9JHBhcmFt
ZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudFdyYXBwZXJGYWN0b3J5X2hcblxuIjsKIAogICAgIHBy
aW50IEYgIiNpZiAkcGFyYW1ldGVyc3snZ3VhcmRGYWN0b3J5V2l0aCd9XG4iIGlmICRwYXJhbWV0
ZXJzeydndWFyZEZhY3RvcnlXaXRoJ307CiAKQEAgLTg0MywxMCArODQ1LDEwIEBACiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotICAgIGNsYXNzIEpTTm9kZTsKKyAgICBjbGFzcyAke2J0fU5vZGU7CiAgICAgY2xhc3Mg
JHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudDsKIAotICAgIEpTTm9kZSogY3JlYXRlSlMk
cGFyYW1ldGVyc3snbmFtZXNwYWNlJ31XcmFwcGVyKEtKUzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0
cjwkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50Pik7CisgICAgJHtidH1Ob2RlKiBjcmVh
dGUke2J0fSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfVdyYXBwZXIoS0pTOjpFeGVjU3RhdGUqLCBQ
YXNzUmVmUHRyPCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQ+KTsKIAogfQogIApAQCAt
ODU1LDcgKzg1Nyw3IEBACiAKICAgICBwcmludCBGICIjZW5kaWYgLy8gJHBhcmFtZXRlcnN7J2d1
YXJkRmFjdG9yeVdpdGgnfVxuXG4iIGlmICRwYXJhbWV0ZXJzeydndWFyZEZhY3RvcnlXaXRoJ307
CiAKLSAgICBwcmludCBGICIjZW5kaWYgLy8gSlMkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVt
ZW50V3JhcHBlckZhY3RvcnlfaFxuIjsKKyAgICBwcmludCBGICIjZW5kaWYgLy8gJHtidH0kcGFy
YW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50V3JhcHBlckZhY3RvcnlfaFxuIjsKIAogICAgIGNs
b3NlIEY7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23081</attachid>
            <date>2008-08-30 12:47:53 -0700</date>
            <delta_ts>2008-08-30 14:57:59 -0700</delta_ts>
            <desc>added LANGUAGE_GOBJECT</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>222442</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMzE1LDYgKzMxNiw4IEBACiAJV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vic2V0dGluZ3MuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5o
CiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXApAQCAtMzQ0LDcgKzM0Nyw4IEBA
CiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAK
KwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZXZlbnQuY3BwIAogCiB3ZWJraXRndGtfY3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJ
TkdfV0VCS0lUIFwKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMiBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAiZ2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1
ZGUgImludGdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgInByaXZnZG9tRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExp
c3RlbmVySGFjay5oIgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogCkBA
IC00Nyw2ICs1MywxMCBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCituYW1lc3BhY2UgV2ViQ29yZSB7CisJZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50
KiBkb2MpOworfQorCiBleHRlcm4gIkMiIHsKIAogZW51bSB7CkBAIC01NSw2ICs2NSw3IEBACiAg
ICAgTE9BRF9ET05FLAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5L
LAorICAgIEJST1dTRVJfRVZFTlQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2MCw2ICsx
NzEsMTYgQEAKICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBF
X1NUUklORywgR19UWVBFX1NUUklORyk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNb
QlJPV1NFUl9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZs
YWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAw
LAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJr
aXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05F
LCAyLAorICAgICAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisKICAg
ICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8K
QEAgLTI5Miw2ICszMTMsNDYgQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9k
b21fZG9jdW1lbnQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJu
cyBhIEdkb20gd3JhcHBlciBhcm91bmQgYSBEb2N1bWVudCAKKyAqCisgKiBSZXR1cm4gdmFsdWU6
IGEgR2RvbURvY3VtZW50CisgKi8KK0dkb21Eb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9nZXRf
ZG9tX2RvY3VtZW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktp
dFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVG
cmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCXJldHVybiBHRE9N
X0RPQ1VNRU5UKFdlYkNvcmU6OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50KCkpKTsKK30KKwor
LyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoKKyAqIEBmcmFtZTog
YSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBm
cmFtZSdzIGRvY3VtZW50CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBvZiBAZnJhbWUK
KyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIqIGV2ZW50X3R5cGUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEZBTFNFKTsKKworICAgIC8vV2ViS2l0V2Vi
RnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisKKwlyZXR1cm4gYWRkX3dp
bmRvd19ldmVudF9saXN0ZW5lcihmcmFtZSwgY29yZUZyYW1lLCBldmVudF90eXBlKTsKK30KKwor
LyoqCiAgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lOgogICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQogICoKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5o
PgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9nZG9tRG9jdW1lbnQuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC02MSw2ICs2Miw5IEBA
CiBXRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJ
IEdkb21Eb2N1bWVudCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQgICAgICAg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmll
dyAqCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAgICAgICAoV2ViS2l0V2ViRnJhbWUg
ICAgICAgKmZyYW1lKTsKIApAQCAtOTMsNiArOTcsMTAgQEAKIFdFQktJVF9BUEkgSlNHbG9iYWxD
b250ZXh0UmVmCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dCAoV2ViS2l0V2Vi
RnJhbWUgICAgICAgKmZyYW1lKTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl9m
cmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICpuYW1lKTsK
KwogR19FTkRfREVDTFMKIAogI2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExp
c3RlbmVySGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVu
ZXJIYWNrLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVy
SGFjay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIEpTX0RPTV9FVkVO
VF9MSVNURU5FUl9IQUNLX0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX0hBQ0tfSAor
CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisK
KworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dlYktp
dEF2YWlsYWJpbGl0eS5oPgorI2luY2x1ZGUgIldlYkNvcmUvcGFnZS9GcmFtZS5oIgorCitjbGFz
cyBXZWJDb3JlOjpGcmFtZTsKKworZ2Jvb2xlYW4KK2FkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0V2ViRnJhbWUqIHdmLCBXZWJDb3JlOjpGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOworCisjZW5kaWYgLypKU19ET01fRVZFTlRf
TElTVEVORVJfSEFDS19IICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5z
IFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlL2RvbS9F
dmVudC5oIgorI2luY2x1ZGUgIldlYkNvcmUvcGxhdGZvcm0vdGV4dC9DU3RyaW5nLmgiCisjaW5j
bHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3Vt
ZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVu
ZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
KyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRl
ICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgi
CisjaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUva2pzL0pTVmFsdWUuaCIKKyNpbmNsdWRlICJFdmVu
dExpc3RlbmVySGFjay5oIgorI2luY2x1ZGUgIkRlcml2ZWRTb3VyY2VzL0pTSFRNTERvY3VtZW50
LmgiCisjaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUvQVBJL0FQSUNhc3QuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0NTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSW1w
bC5oIgorI2luY2x1ZGUgImdkb21FdmVudC5oIgorI2luY2x1ZGUgImludGdkb21FdmVudC5oIgor
I2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIgor
CisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudCogZG9jKTsK
K30KKworZXh0ZXJuICJDIiB7CisKK30gLy8gZXh0ZXJuICJDIgorCitjbGFzcyBIYWNrRXZlbnRM
aXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIYWNrRXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFdlYktpdFdlYkZyYW1lKiB3ZikgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhhY2tFdmVudExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOworCisgICAgcHJp
dmF0ZToKKyAgICBIYWNrRXZlbnRMaXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2YpIDogbV93Zih3
ZikgeyB9CisgICAgV2ViS2l0V2ViRnJhbWUqIG1fd2Y7Cit9OworCit2b2lkIEhhY2tFdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKK3sK
KyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgcHJpbnRmKCJoYWNrIGhhbmRsZUV2ZW50ICVzXG4i
LCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEdkb21FdmVudCAq
d2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUobV93ZiwgImJyb3dzZXItZXZlbnQiLCAKKyAgICAgICAgd2V2LCBpc1dpbmRv
d0V2ZW50LCAmcmV0dmFsKTsKK30KKworZ2Jvb2xlYW4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5l
cihXZWJLaXRXZWJGcmFtZSAqd2YsIEZyYW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBEb2N1bWVudCogZG9jID0g
ZnJhbWUtPmRvY3VtZW50KCk7CisKKyAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIg
PSBIYWNrRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBkb2MtPmFkZFdpbmRvd0V2ZW50
TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHRydWUpOworCisgICAgcmV0dXJuIFRSVUU7CisKK30g
CisKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHJldmlzaW9uIDM1NzU4KQorKysg
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2
ICs0MCw5IEBACiAKIEdfQkVHSU5fREVDTFMKIAordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50
IFdlYktpdEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgV2ViS2l0RXZl
bnRDbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0IFdlYktpdE5l
dHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3Mg
V2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvZ2Rv
bWRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5o
CShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1MjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykg
MjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdFQktJVF9HRE9NX0RFRklO
RVNfSAorI2RlZmluZSBXRUJLSVRfR0RPTV9ERUZJTkVTX0gKKworI2luY2x1ZGUgPGdsaWIuaD4K
KworI2lmZGVmIEdfT1NfV0lOMzIKKyAgICAjaWZkZWYgQlVJTERJTkdfV0VCS0lUX0dET00KKyAg
ICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCisgICAg
I2Vsc2UKKyAgICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhkbGxpbXBv
cnQpCisgICAgI2VuZGlmCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9PQlNPTEVURV9BUEkgV0VC
S0lUX0dET01fQVBJCisjZWxzZQorICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fYXR0cmli
dXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9P
QlNPTEVURV9BUEkgV0VCS0lUX0dET01fQVBJIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQpKQor
I2VuZGlmCisKKyNpZm5kZWYgV0VCS0lUX0dET01fQVBJCisgICAgI2RlZmluZSBXRUJLSVRfR0RP
TV9BUEkKKyNlbmRpZgorCitHX0JFR0lOX0RFQ0xTCisKKy8qCit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUF0dHJDbGFzcyBHRG9tQXR0ckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21BdHRyIEdEb21B
dHRyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21BdHRyUHJpdmF0ZSBHRG9tQXR0clByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUJhckluZm9DbGFzcyBHRG9tQmFySW5mb0NsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21CYXJJbmZvIEdEb21CYXJJbmZvOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21C
YXJJbmZvUHJpdmF0ZSBHRG9tQmFySW5mb1ByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNh
bnZhc0dyYWRpZW50Q2xhc3MgR0RvbUNhbnZhc0dyYWRpZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNhbnZhc0dyYWRpZW50IEdEb21DYW52YXNHcmFkaWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tQ2FudmFzR3JhZGllbnRQcml2YXRlIEdEb21DYW52YXNHcmFkaWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc1BhdHRlcm5DbGFzcyBHRG9tQ2FudmFzUGF0dGVybkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuIEdEb21DYW52YXNQYXR0ZXJu
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuUHJpdmF0ZSBHRG9tQ2FudmFzUGF0
dGVyblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc1BpeGVsQXJyYXlDbGFzcyBH
RG9tQ2FudmFzUGl4ZWxBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQaXhl
bEFycmF5IEdEb21DYW52YXNQaXhlbEFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQ
aXhlbEFycmF5UHJpdmF0ZSBHRG9tQ2FudmFzUGl4ZWxBcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRENsYXNzIEdEb21DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEIEdEb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFByaXZhdGUgR0RvbUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRBU2VjdGlvbkNsYXNzIEdEb21D
REFUQVNlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ0RBVEFTZWN0aW9uIEdEb21D
REFUQVNlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRBU2VjdGlvblByaXZhdGUgR0Rv
bUNEQVRBU2VjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNoYXJhY3RlckRhdGFD
bGFzcyBHRG9tQ2hhcmFjdGVyRGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DaGFyYWN0
ZXJEYXRhIEdEb21DaGFyYWN0ZXJEYXRhOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DaGFyYWN0ZXJE
YXRhUHJpdmF0ZSBHRG9tQ2hhcmFjdGVyRGF0YVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUNsaXBib2FyZENsYXNzIEdEb21DbGlwYm9hcmRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
Q2xpcGJvYXJkIEdEb21DbGlwYm9hcmQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNsaXBib2FyZFBy
aXZhdGUgR0RvbUNsaXBib2FyZFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNvbW1lbnRD
bGFzcyBHRG9tQ29tbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db21tZW50IEdEb21D
b21tZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db21tZW50UHJpdmF0ZSBHRG9tQ29tbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNvbnNvbGVDbGFzcyBHRG9tQ29uc29sZUNsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db25zb2xlIEdEb21Db25zb2xlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21Db25zb2xlUHJpdmF0ZSBHRG9tQ29uc29sZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNvdW50ZXJDbGFzcyBHRG9tQ291bnRlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21Db3VudGVyIEdEb21Db3VudGVyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db3VudGVyUHJpdmF0
ZSBHRG9tQ291bnRlclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0NoYXJzZXRSdWxl
Q2xhc3MgR0RvbUNTU0NoYXJzZXRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0No
YXJzZXRSdWxlIEdEb21DU1NDaGFyc2V0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTQ2hh
cnNldFJ1bGVQcml2YXRlIEdEb21DU1NDaGFyc2V0UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU0ZvbnRGYWNlUnVsZUNsYXNzIEdEb21DU1NGb250RmFjZVJ1bGVDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tQ1NTRm9udEZhY2VSdWxlIEdEb21DU1NGb250RmFjZVJ1bGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0ZvbnRGYWNlUnVsZVByaXZhdGUgR0RvbUNTU0ZvbnRGYWNl
UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0ltcG9ydFJ1bGVDbGFzcyBHRG9t
Q1NTSW1wb3J0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRSdWxlIEdE
b21DU1NJbXBvcnRSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRSdWxlUHJpdmF0
ZSBHRG9tQ1NTSW1wb3J0UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU01lZGlh
UnVsZUNsYXNzIEdEb21DU1NNZWRpYVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NT
TWVkaWFSdWxlIEdEb21DU1NNZWRpYVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU01lZGlh
UnVsZVByaXZhdGUgR0RvbUNTU01lZGlhUnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUNTU1BhZ2VSdWxlQ2xhc3MgR0RvbUNTU1BhZ2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUNTU1BhZ2VSdWxlIEdEb21DU1NQYWdlUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NT
UGFnZVJ1bGVQcml2YXRlIEdEb21DU1NQYWdlUnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUNTU1ByaW1pdGl2ZVZhbHVlQ2xhc3MgR0RvbUNTU1ByaW1pdGl2ZVZhbHVlQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ByaW1pdGl2ZVZhbHVlIEdEb21DU1NQcmltaXRpdmVWYWx1
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTUHJpbWl0aXZlVmFsdWVQcml2YXRlIEdEb21DU1NQ
cmltaXRpdmVWYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1J1bGVDbGFzcyBH
RG9tQ1NTUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlIEdEb21DU1NSdWxl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlTGlzdENsYXNzIEdEb21DU1NSdWxlTGlzdENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlTGlzdCBHRG9tQ1NTUnVsZUxpc3Q7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1J1bGVMaXN0UHJpdmF0ZSBHRG9tQ1NTUnVsZUxpc3RQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlUHJpdmF0ZSBHRG9tQ1NTUnVsZVByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlRGVjbGFyYXRpb25DbGFzcyBHRG9tQ1NT
U3R5bGVEZWNsYXJhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZURlY2xh
cmF0aW9uIEdEb21DU1NTdHlsZURlY2xhcmF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NT
dHlsZURlY2xhcmF0aW9uUHJpdmF0ZSBHRG9tQ1NTU3R5bGVEZWNsYXJhdGlvblByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlUnVsZUNsYXNzIEdEb21DU1NTdHlsZVJ1bGVDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTU3R5bGVSdWxlIEdEb21DU1NTdHlsZVJ1bGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlUnVsZVByaXZhdGUgR0RvbUNTU1N0eWxlUnVsZVBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlU2hlZXRDbGFzcyBHRG9tQ1NTU3R5
bGVTaGVldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0IEdEb21DU1NT
dHlsZVNoZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0UHJpdmF0ZSBHRG9t
Q1NTU3R5bGVTaGVldFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlQ2xhc3Mg
R0RvbUNTU1ZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlIEdEb21DU1NW
YWx1ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0Q2xhc3MgR0RvbUNTU1ZhbHVl
TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYWx1ZUxpc3QgR0RvbUNTU1ZhbHVl
TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0UHJpdmF0ZSBHRG9tQ1NTVmFs
dWVMaXN0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVQcml2YXRlIEdEb21D
U1NWYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0
aW9uQ2xhc3MgR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIEdEb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlv
bjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25Qcml2YXRlIEdE
b21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNT
U1ZhcmlhYmxlc1J1bGVDbGFzcyBHRG9tQ1NTVmFyaWFibGVzUnVsZUNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NWYXJpYWJsZXNSdWxlIEdEb21DU1NWYXJpYWJsZXNSdWxlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21DU1NWYXJpYWJsZXNSdWxlUHJpdmF0ZSBHRG9tQ1NTVmFyaWFibGVzUnVs
ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURhdGFiYXNlQ2xhc3MgR0RvbURhdGFiYXNl
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURhdGFiYXNlIEdEb21EYXRhYmFzZTsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tRGF0YWJhc2VQcml2YXRlIEdEb21EYXRhYmFzZVByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50Q2xhc3MgR0RvbURvY3VtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbURvY3VtZW50RnJhZ21lbnRDbGFzcyBHRG9tRG9jdW1lbnRGcmFnbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudEZyYWdtZW50IEdEb21Eb2N1bWVudEZy
YWdtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZSBHRG9t
RG9jdW1lbnRGcmFnbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50IEdE
b21Eb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRQcml2YXRlIEdEb21Eb2N1
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50VHlwZUNsYXNzIEdEb21E
b2N1bWVudFR5cGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRUeXBlIEdEb21E
b2N1bWVudFR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50VHlwZVByaXZhdGUgR0Rv
bURvY3VtZW50VHlwZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUFwcGxpY2F0aW9u
Q2FjaGVDbGFzcyBHRG9tRE9NQXBwbGljYXRpb25DYWNoZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21ET01BcHBsaWNhdGlvbkNhY2hlIEdEb21ET01BcHBsaWNhdGlvbkNhY2hlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21ET01BcHBsaWNhdGlvbkNhY2hlUHJpdmF0ZSBHRG9tRE9NQXBwbGljYXRp
b25DYWNoZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUNvcmVFeGNlcHRpb25DbGFz
cyBHRG9tRE9NQ29yZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01Db3Jl
RXhjZXB0aW9uIEdEb21ET01Db3JlRXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01D
b3JlRXhjZXB0aW9uUHJpdmF0ZSBHRG9tRE9NQ29yZUV4Y2VwdGlvblByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3MgR0RvbURPTUltcGxlbWVudGF0aW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUltcGxlbWVudGF0aW9uIEdEb21ET01JbXBs
ZW1lbnRhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NSW1wbGVtZW50YXRpb25Qcml2YXRl
IEdEb21ET01JbXBsZW1lbnRhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTU9i
amVjdCBHRG9tRE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01QYXJzZXJDbGFzcyBH
RG9tRE9NUGFyc2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVBhcnNlciBHRG9tRE9N
UGFyc2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01QYXJzZXJQcml2YXRlIEdEb21ET01QYXJz
ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxlY3Rpb25DbGFzcyBHRG9tRE9N
U2VsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVNlbGVjdGlvbiBHRG9tRE9N
U2VsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxlY3Rpb25Qcml2YXRlIEdEb21E
T01TZWxlY3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01XaW5kb3dDbGFzcyBH
RG9tRE9NV2luZG93Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVdpbmRvdyBHRG9tRE9N
V2luZG93OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01XaW5kb3dQcml2YXRlIEdEb21ET01XaW5k
b3dQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbGVtZW50Q2xhc3MgR0RvbUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRWxlbWVudCBHRG9tRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tRWxlbWVudFByaXZhdGUgR0RvbUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FbnRpdHlDbGFzcyBHRG9tRW50aXR5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUVudGl0eSBHRG9tRW50aXR5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlQcml2YXRl
IEdEb21FbnRpdHlQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlSZWZlcmVuY2VD
bGFzcyBHRG9tRW50aXR5UmVmZXJlbmNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUVudGl0
eVJlZmVyZW5jZSBHRG9tRW50aXR5UmVmZXJlbmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRp
dHlSZWZlcmVuY2VQcml2YXRlIEdEb21FbnRpdHlSZWZlcmVuY2VQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FdmVudENsYXNzIEdEb21FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21FdmVudEV4Y2VwdGlvbkNsYXNzIEdEb21FdmVudEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FdmVudEV4Y2VwdGlvbiBHRG9tRXZlbnRFeGNlcHRpb247Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUV2ZW50RXhjZXB0aW9uUHJpdmF0ZSBHRG9tRXZlbnRFeGNlcHRpb25Qcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FdmVudCBHRG9tRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUV2ZW50UHJpdmF0ZSBHRG9tRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21F
dmVudFRhcmdldCBHRG9tRXZlbnRUYXJnZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUZpbGVDbGFz
cyBHRG9tRmlsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21GaWxlIEdEb21GaWxlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21GaWxlTGlzdENsYXNzIEdEb21GaWxlTGlzdENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21GaWxlTGlzdCBHRG9tRmlsZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUZpbGVMaXN0UHJpdmF0ZSBHRG9tRmlsZUxpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21GaWxlUHJpdmF0ZSBHRG9tRmlsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhpc3Rv
cnlDbGFzcyBHRG9tSGlzdG9yeUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IaXN0b3J5IEdE
b21IaXN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IaXN0b3J5UHJpdmF0ZSBHRG9tSGlzdG9y
eVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBbmNob3JFbGVtZW50Q2xhc3MgR0Rv
bUhUTUxBbmNob3JFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBbmNob3JF
bGVtZW50IEdEb21IVE1MQW5jaG9yRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEFu
Y2hvckVsZW1lbnRQcml2YXRlIEdEb21IVE1MQW5jaG9yRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxBcHBsZXRFbGVtZW50Q2xhc3MgR0RvbUhUTUxBcHBsZXRFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBcHBsZXRFbGVtZW50IEdEb21IVE1MQXBw
bGV0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEFwcGxldEVsZW1lbnRQcml2YXRl
IEdEb21IVE1MQXBwbGV0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxB
cmVhRWxlbWVudENsYXNzIEdEb21IVE1MQXJlYUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTEFyZWFFbGVtZW50IEdEb21IVE1MQXJlYUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxBcmVhRWxlbWVudFByaXZhdGUgR0RvbUhUTUxBcmVhRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRWxlbWVudENsYXNzIEdEb21IVE1MQmFzZUVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJhc2VFbGVtZW50IEdEb21IVE1M
QmFzZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRWxlbWVudFByaXZhdGUg
R0RvbUhUTUxCYXNlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNl
Rm9udEVsZW1lbnRDbGFzcyBHRG9tSFRNTEJhc2VGb250RWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MQmFzZUZvbnRFbGVtZW50IEdEb21IVE1MQmFzZUZvbnRFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQmFzZUZvbnRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJh
c2VGb250RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCbG9ja3F1b3Rl
RWxlbWVudENsYXNzIEdEb21IVE1MQmxvY2txdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50IEdEb21IVE1MQmxvY2txdW90ZUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudFByaXZhdGUgR0RvbUhU
TUxCbG9ja3F1b3RlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCb2R5
RWxlbWVudENsYXNzIEdEb21IVE1MQm9keUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tSFRNTEJvZHlFbGVtZW50IEdEb21IVE1MQm9keUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxCb2R5RWxlbWVudFByaXZhdGUgR0RvbUhUTUxCb2R5RWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCUkVsZW1lbnRDbGFzcyBHRG9tSFRNTEJSRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50IEdEb21IVE1MQlJFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJSRWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3Mg
R0RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCdXR0
b25FbGVtZW50IEdEb21IVE1MQnV0dG9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TEJ1dHRvbkVsZW1lbnRQcml2YXRlIEdEb21IVE1MQnV0dG9uRWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxDYW52YXNFbGVtZW50Q2xhc3MgR0RvbUhUTUxDYW52YXNFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxDYW52YXNFbGVtZW50IEdEb21IVE1M
Q2FudmFzRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTENhbnZhc0VsZW1lbnRQcml2
YXRlIEdEb21IVE1MQ2FudmFzRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxDb2xsZWN0aW9uQ2xhc3MgR0RvbUhUTUxDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxDb2xsZWN0aW9uIEdEb21IVE1MQ29sbGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTENvbGxlY3Rpb25Qcml2YXRlIEdEb21IVE1MQ29sbGVjdGlvblByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Q2xhc3MgR0RvbUhUTUxEaXJl
Y3RvcnlFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXJlY3RvcnlFbGVt
ZW50IEdEb21IVE1MRGlyZWN0b3J5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERp
cmVjdG9yeUVsZW1lbnRQcml2YXRlIEdEb21IVE1MRGlyZWN0b3J5RWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXZFbGVtZW50Q2xhc3MgR0RvbUhUTUxEaXZFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXZFbGVtZW50IEdEb21IVE1MRGl2RWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERpdkVsZW1lbnRQcml2YXRlIEdEb21IVE1M
RGl2RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxETGlzdEVsZW1lbnRD
bGFzcyBHRG9tSFRNTERMaXN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
RExpc3RFbGVtZW50IEdEb21IVE1MRExpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MRExpc3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTERMaXN0RWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxEb2N1bWVudENsYXNzIEdEb21IVE1MRG9jdW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERvY3VtZW50IEdEb21IVE1MRG9jdW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxEb2N1bWVudFByaXZhdGUgR0RvbUhUTUxEb2N1bWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50Q2xhc3MgR0RvbUhUTUxFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50IEdEb21IVE1MRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEVsZW1lbnRQcml2YXRlIEdEb21IVE1MRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbWJlZEVsZW1lbnRDbGFzcyBHRG9tSFRN
TEVtYmVkRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVtZW50
IEdEb21IVE1MRW1iZWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVt
ZW50UHJpdmF0ZSBHRG9tSFRNTEVtYmVkRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxGaWVsZFNldEVsZW1lbnRDbGFzcyBHRG9tSFRNTEZpZWxkU2V0RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRmllbGRTZXRFbGVtZW50IEdEb21IVE1MRmllbGRT
ZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRmllbGRTZXRFbGVtZW50UHJpdmF0
ZSBHRG9tSFRNTEZpZWxkU2V0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxGb250RWxlbWVudENsYXNzIEdEb21IVE1MRm9udEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEZvbnRFbGVtZW50IEdEb21IVE1MRm9udEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxGb250RWxlbWVudFByaXZhdGUgR0RvbUhUTUxGb250RWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb3JtRWxlbWVudENsYXNzIEdEb21IVE1MRm9y
bUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZvcm1FbGVtZW50IEdEb21I
VE1MRm9ybUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb3JtRWxlbWVudFByaXZh
dGUgR0RvbUhUTUxGb3JtRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxG
cmFtZUVsZW1lbnRDbGFzcyBHRG9tSFRNTEZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MRnJhbWVFbGVtZW50IEdEb21IVE1MRnJhbWVFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MRnJhbWVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEZyYW1lRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzcyBHRG9t
SFRNTEZyYW1lU2V0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRnJhbWVT
ZXRFbGVtZW50IEdEb21IVE1MRnJhbWVTZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MRnJhbWVTZXRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEZyYW1lU2V0RWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkRWxlbWVudENsYXNzIEdEb21IVE1MSGVhZEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEhlYWRFbGVtZW50IEdEb21IVE1M
SGVhZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkRWxlbWVudFByaXZhdGUg
R0RvbUhUTUxIZWFkRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFk
aW5nRWxlbWVudENsYXNzIEdEb21IVE1MSGVhZGluZ0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEhlYWRpbmdFbGVtZW50IEdEb21IVE1MSGVhZGluZ0VsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkaW5nRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIZWFkaW5n
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIUkVsZW1lbnRDbGFzcyBH
RG9tSFRNTEhSRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJFbGVtZW50
IEdEb21IVE1MSFJFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTEhSRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxI
dG1sRWxlbWVudENsYXNzIEdEb21IVE1MSHRtbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTEh0bWxFbGVtZW50IEdEb21IVE1MSHRtbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxIdG1sRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIdG1sRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJRnJhbWVFbGVtZW50Q2xhc3MgR0RvbUhUTUxJRnJh
bWVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJRnJhbWVFbGVtZW50IEdE
b21IVE1MSUZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTElGcmFtZUVsZW1l
bnRQcml2YXRlIEdEb21IVE1MSUZyYW1lRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxJbWFnZUVsZW1lbnRDbGFzcyBHRG9tSFRNTEltYWdlRWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW1hZ2VFbGVtZW50IEdEb21IVE1MSW1hZ2VFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW1hZ2VFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEltYWdl
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJbnB1dEVsZW1lbnRDbGFz
cyBHRG9tSFRNTElucHV0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW5w
dXRFbGVtZW50IEdEb21IVE1MSW5wdXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
SW5wdXRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTElucHV0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxJc0luZGV4RWxlbWVudENsYXNzIEdEb21IVE1MSXNJbmRleEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTElzSW5kZXhFbGVtZW50IEdEb21IVE1M
SXNJbmRleEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJc0luZGV4RWxlbWVudFBy
aXZhdGUgR0RvbUhUTUxJc0luZGV4RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxMYWJlbEVsZW1lbnRDbGFzcyBHRG9tSFRNTExhYmVsRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MTGFiZWxFbGVtZW50IEdEb21IVE1MTGFiZWxFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGFiZWxFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTExhYmVsRWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3Mg
R0RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMZWdl
bmRFbGVtZW50IEdEb21IVE1MTGVnZW5kRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TExlZ2VuZEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTGVnZW5kRWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxMSUVsZW1lbnRDbGFzcyBHRG9tSFRNTExJRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTElFbGVtZW50IEdEb21IVE1MTElFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTElFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTExJRWxlbWVu
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMaW5rRWxlbWVudENsYXNzIEdEb21I
VE1MTGlua0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTExpbmtFbGVtZW50
IEdEb21IVE1MTGlua0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMaW5rRWxlbWVu
dFByaXZhdGUgR0RvbUhUTUxMaW5rRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxNYXBFbGVtZW50Q2xhc3MgR0RvbUhUTUxNYXBFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxNYXBFbGVtZW50IEdEb21IVE1MTWFwRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTE1hcEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTWFwRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXJxdWVlRWxlbWVudENsYXNzIEdEb21IVE1MTWFy
cXVlZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1hcnF1ZWVFbGVtZW50
IEdEb21IVE1MTWFycXVlZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXJxdWVl
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNYXJxdWVlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxNZW51RWxlbWVudENsYXNzIEdEb21IVE1MTWVudUVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1lbnVFbGVtZW50IEdEb21IVE1MTWVudUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZW51RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNZW51
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZXRhRWxlbWVudENsYXNz
IEdEb21IVE1MTWV0YUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1ldGFF
bGVtZW50IEdEb21IVE1MTWV0YUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZXRh
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNZXRhRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxNb2RFbGVtZW50Q2xhc3MgR0RvbUhUTUxNb2RFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxNb2RFbGVtZW50IEdEb21IVE1MTW9kRWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTE1vZEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTW9kRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPYmplY3RFbGVtZW50Q2xhc3MgR0RvbUhU
TUxPYmplY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPYmplY3RFbGVt
ZW50IEdEb21IVE1MT2JqZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9iamVj
dEVsZW1lbnRQcml2YXRlIEdEb21IVE1MT2JqZWN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxPTGlzdEVsZW1lbnRDbGFzcyBHRG9tSFRNTE9MaXN0RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT0xpc3RFbGVtZW50IEdEb21IVE1MT0xpc3RFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT0xpc3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TE9MaXN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRHcm91cEVs
ZW1lbnRDbGFzcyBHRG9tSFRNTE9wdEdyb3VwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MT3B0R3JvdXBFbGVtZW50IEdEb21IVE1MT3B0R3JvdXBFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MT3B0R3JvdXBFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE9wdEdyb3Vw
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25FbGVtZW50Q2xh
c3MgR0RvbUhUTUxPcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxP
cHRpb25FbGVtZW50IEdEb21IVE1MT3B0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTE9wdGlvbkVsZW1lbnRQcml2YXRlIEdEb21IVE1MT3B0aW9uRWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbkNsYXNzIEdEb21IVE1MT3B0
aW9uc0NvbGxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uIEdEb21IVE1MT3B0aW9uc0NvbGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxPcHRpb25zQ29sbGVjdGlvblByaXZhdGUgR0RvbUhUTUxPcHRpb25zQ29sbGVjdGlvblByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Q2xhc3MgR0RvbUhU
TUxQYXJhZ3JhcGhFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50IEdEb21IVE1MUGFyYWdyYXBoRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTFBhcmFncmFwaEVsZW1lbnRQcml2YXRlIEdEb21IVE1MUGFyYWdyYXBoRWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhbUVsZW1lbnRDbGFzcyBHRG9tSFRNTFBh
cmFtRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50IEdE
b21IVE1MUGFyYW1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50
UHJpdmF0ZSBHRG9tSFRNTFBhcmFtRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxQcmVFbGVtZW50Q2xhc3MgR0RvbUhUTUxQcmVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxQcmVFbGVtZW50IEdEb21IVE1MUHJlRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTFByZUVsZW1lbnRQcml2YXRlIEdEb21IVE1MUHJlRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxRdW90ZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFF1b3Rl
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50IEdEb21I
VE1MUXVvdGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTFF1b3RlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxTY3JpcHRFbGVtZW50Q2xhc3MgR0RvbUhUTUxTY3JpcHRFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxTY3JpcHRFbGVtZW50IEdEb21IVE1MU2NyaXB0RWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tSFRNTFNjcmlwdEVsZW1lbnRQcml2YXRlIEdEb21IVE1MU2NyaXB0
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTZWxlY3RFbGVtZW50Q2xh
c3MgR0RvbUhUTUxTZWxlY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxT
ZWxlY3RFbGVtZW50IEdEb21IVE1MU2VsZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTFNlbGVjdEVsZW1lbnRQcml2YXRlIEdEb21IVE1MU2VsZWN0RWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTdHlsZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFN0eWxlRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50IEdEb21IVE1M
U3R5bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50UHJpdmF0
ZSBHRG9tSFRNTFN0eWxlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50IEdEb21IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnRQcml2YXRlIEdEb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUNlbGxF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNlbGxFbGVtZW50IEdE
b21IVE1MVGFibGVDZWxsRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ2Vs
bEVsZW1lbnRQcml2YXRlIEdEb21IVE1MVGFibGVDZWxsRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFzcyBHRG9tSFRNTFRhYmxlQ29sRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDb2xFbGVtZW50IEdEb21I
VE1MVGFibGVDb2xFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDb2xFbGVt
ZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlQ29sRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxUYWJsZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFRhYmxlRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVFbGVtZW50IEdEb21IVE1MVGFibGVFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRh
YmxlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZVJvd0VsZW1l
bnRDbGFzcyBHRG9tSFRNTFRhYmxlUm93RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MVGFibGVSb3dFbGVtZW50IEdEb21IVE1MVGFibGVSb3dFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MVGFibGVSb3dFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlUm93RWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Q2xhc3MgR0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IEdEb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRQcml2YXRlIEdEb21I
VE1MVGFibGVTZWN0aW9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnRDbGFzcyBHRG9tSFRNTFRleHRBcmVhRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MVGV4dEFyZWFFbGVtZW50IEdEb21IVE1MVGV4dEFyZWFFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TFRleHRBcmVhRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUaXRsZUVs
ZW1lbnRDbGFzcyBHRG9tSFRNTFRpdGxlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MVGl0bGVFbGVtZW50IEdEb21IVE1MVGl0bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MVGl0bGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRpdGxlRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxVTGlzdEVsZW1lbnRDbGFzcyBHRG9tSFRNTFVMaXN0
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50IEdEb21I
VE1MVUxpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTFVMaXN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUlt
YWdlRGF0YUNsYXNzIEdEb21JbWFnZURhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSW1h
Z2VEYXRhIEdEb21JbWFnZURhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUltYWdlRGF0YVByaXZh
dGUgR0RvbUltYWdlRGF0YVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUphdmFTY3JpcHRD
YWxsRnJhbWVDbGFzcyBHRG9tSmF2YVNjcmlwdENhbGxGcmFtZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21KYXZhU2NyaXB0Q2FsbEZyYW1lIEdEb21KYXZhU2NyaXB0Q2FsbEZyYW1lOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21KYXZhU2NyaXB0Q2FsbEZyYW1lUHJpdmF0ZSBHRG9tSmF2YVNjcmlw
dENhbGxGcmFtZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUtleWJvYXJkRXZlbnRDbGFz
cyBHRG9tS2V5Ym9hcmRFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXlib2FyZEV2
ZW50IEdEb21LZXlib2FyZEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXlib2FyZEV2ZW50
UHJpdmF0ZSBHRG9tS2V5Ym9hcmRFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxv
Y2F0aW9uQ2xhc3MgR0RvbUxvY2F0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxvY2F0
aW9uIEdEb21Mb2NhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTG9jYXRpb25Qcml2YXRlIEdE
b21Mb2NhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lZGlhTGlzdENsYXNzIEdE
b21NZWRpYUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWVkaWFMaXN0IEdEb21NZWRp
YUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lZGlhTGlzdFByaXZhdGUgR0RvbU1lZGlhTGlz
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VFdmVudENsYXNzIEdEb21NZXNz
YWdlRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWVzc2FnZUV2ZW50IEdEb21NZXNz
YWdlRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VFdmVudFByaXZhdGUgR0RvbU1l
c3NhZ2VFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVUeXBlQXJyYXlDbGFz
cyBHRG9tTWltZVR5cGVBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUFy
cmF5IEdEb21NaW1lVHlwZUFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUFycmF5
UHJpdmF0ZSBHRG9tTWltZVR5cGVBcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1p
bWVUeXBlQ2xhc3MgR0RvbU1pbWVUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVU
eXBlIEdEb21NaW1lVHlwZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWltZVR5cGVQcml2YXRlIEdE
b21NaW1lVHlwZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1vdXNlRXZlbnRDbGFzcyBH
RG9tTW91c2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3VzZUV2ZW50IEdEb21N
b3VzZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3VzZUV2ZW50UHJpdmF0ZSBHRG9tTW91
c2VFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU11dGF0aW9uRXZlbnRDbGFzcyBH
RG9tTXV0YXRpb25FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlvbkV2ZW50
IEdEb21NdXRhdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlvbkV2ZW50UHJp
dmF0ZSBHRG9tTXV0YXRpb25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hbWVk
Tm9kZU1hcENsYXNzIEdEb21OYW1lZE5vZGVNYXBDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
TmFtZWROb2RlTWFwIEdEb21OYW1lZE5vZGVNYXA7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hbWVk
Tm9kZU1hcFByaXZhdGUgR0RvbU5hbWVkTm9kZU1hcFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbU5hdmlnYXRvckNsYXNzIEdEb21OYXZpZ2F0b3JDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tTmF2aWdhdG9yIEdEb21OYXZpZ2F0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hdmlnYXRv
clByaXZhdGUgR0RvbU5hdmlnYXRvclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVD
bGFzcyBHRG9tTm9kZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlRmlsdGVyQ2xhc3Mg
R0RvbU5vZGVGaWx0ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUZpbHRlciBHRG9t
Tm9kZUZpbHRlcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUZpbHRlclByaXZhdGUgR0RvbU5v
ZGVGaWx0ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlIEdEb21Ob2RlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlSXRlcmF0b3JDbGFzcyBHRG9tTm9kZUl0ZXJhdG9yQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVJdGVyYXRvciBHRG9tTm9kZUl0ZXJhdG9yOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlSXRlcmF0b3JQcml2YXRlIEdEb21Ob2RlSXRlcmF0b3JQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlTGlzdENsYXNzIEdEb21Ob2RlTGlzdENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlTGlzdCBHRG9tTm9kZUxpc3Q7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbU5vZGVMaXN0UHJpdmF0ZSBHRG9tTm9kZUxpc3RQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21Ob2RlUHJpdmF0ZSBHRG9tTm9kZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbU5vdGF0aW9uQ2xhc3MgR0RvbU5vdGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bU5vdGF0aW9uIEdEb21Ob3RhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm90YXRpb25Qcml2
YXRlIEdEb21Ob3RhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU92ZXJmbG93RXZl
bnRDbGFzcyBHRG9tT3ZlcmZsb3dFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21PdmVy
Zmxvd0V2ZW50IEdEb21PdmVyZmxvd0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21PdmVyZmxv
d0V2ZW50UHJpdmF0ZSBHRG9tT3ZlcmZsb3dFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVBsdWdpbkFycmF5Q2xhc3MgR0RvbVBsdWdpbkFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVBsdWdpbkFycmF5IEdEb21QbHVnaW5BcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
UGx1Z2luQXJyYXlQcml2YXRlIEdEb21QbHVnaW5BcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVBsdWdpbkNsYXNzIEdEb21QbHVnaW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
UGx1Z2luIEdEb21QbHVnaW47Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVBsdWdpblByaXZhdGUgR0Rv
bVBsdWdpblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlv
bkNsYXNzIEdEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uIEdEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb247Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvblByaXZhdGUgR0RvbVByb2Nlc3Np
bmdJbnN0cnVjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVByb2dyZXNzRXZlbnRD
bGFzcyBHRG9tUHJvZ3Jlc3NFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9ncmVz
c0V2ZW50IEdEb21Qcm9ncmVzc0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9ncmVzc0V2
ZW50UHJpdmF0ZSBHRG9tUHJvZ3Jlc3NFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVJhbmdlQ2xhc3MgR0RvbVJhbmdlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJhbmdlRXhj
ZXB0aW9uQ2xhc3MgR0RvbVJhbmdlRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVJhbmdlRXhjZXB0aW9uIEdEb21SYW5nZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
UmFuZ2VFeGNlcHRpb25Qcml2YXRlIEdEb21SYW5nZUV4Y2VwdGlvblByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVJhbmdlIEdEb21SYW5nZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUmFuZ2VQ
cml2YXRlIEdEb21SYW5nZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJlY3RDbGFzcyBH
RG9tUmVjdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21SZWN0IEdEb21SZWN0OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21SZWN0UHJpdmF0ZSBHRG9tUmVjdFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVNjcmVlbkNsYXNzIEdEb21TY3JlZW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
U2NyZWVuIEdEb21TY3JlZW47Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNjcmVlblByaXZhdGUgR0Rv
bVNjcmVlblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTEVycm9yQ2xhc3MgR0RvbVNR
TEVycm9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTEVycm9yIEdEb21TUUxFcnJvcjsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMRXJyb3JQcml2YXRlIEdEb21TUUxFcnJvclByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldENsYXNzIEdEb21TUUxSZXN1bHRTZXRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMUmVzdWx0U2V0IEdEb21TUUxSZXN1bHRTZXQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldFByaXZhdGUgR0RvbVNRTFJlc3VsdFNl
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzcyBH
RG9tU1FMUmVzdWx0U2V0Um93TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxSZXN1
bHRTZXRSb3dMaXN0IEdEb21TUUxSZXN1bHRTZXRSb3dMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21TUUxSZXN1bHRTZXRSb3dMaXN0UHJpdmF0ZSBHRG9tU1FMUmVzdWx0U2V0Um93TGlzdFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0aW9uQ2xhc3MgR0RvbVNRTFRyYW5z
YWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0aW9uIEdEb21TUUxU
cmFuc2FjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMVHJhbnNhY3Rpb25Qcml2YXRlIEdE
b21TUUxUcmFuc2FjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0b3JhZ2VDbGFz
cyBHRG9tU3RvcmFnZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlRXZlbnRDbGFz
cyBHRG9tU3RvcmFnZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0b3JhZ2VFdmVu
dCBHRG9tU3RvcmFnZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlRXZlbnRQcml2
YXRlIEdEb21TdG9yYWdlRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdl
IEdEb21TdG9yYWdlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlUHJpdmF0ZSBHRG9tU3Rv
cmFnZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0eWxlU2hlZXRDbGFzcyBHRG9tU3R5
bGVTaGVldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0IEdEb21TdHlsZVNo
ZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0TGlzdENsYXNzIEdEb21TdHlsZVNo
ZWV0TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0TGlzdCBHRG9tU3R5
bGVTaGVldExpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0eWxlU2hlZXRMaXN0UHJpdmF0ZSBH
RG9tU3R5bGVTaGVldExpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0
UHJpdmF0ZSBHRG9tU3R5bGVTaGVldFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVRleHRD
bGFzcyBHRG9tVGV4dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0RXZlbnRDbGFzcyBH
RG9tVGV4dEV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVRleHRFdmVudCBHRG9tVGV4
dEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0RXZlbnRQcml2YXRlIEdEb21UZXh0RXZl
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0IEdEb21UZXh0OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21UZXh0UHJpdmF0ZSBHRG9tVGV4dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVRyZWVXYWxrZXJDbGFzcyBHRG9tVHJlZVdhbGtlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21UcmVlV2Fsa2VyIEdEb21UcmVlV2Fsa2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UcmVl
V2Fsa2VyUHJpdmF0ZSBHRG9tVHJlZVdhbGtlclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVVJRXZlbnRDbGFzcyBHRG9tVUlFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21VSUV2
ZW50IEdEb21VSUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21VSUV2ZW50UHJpdmF0ZSBHRG9t
VUlFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
Q2xhc3MgR0RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50IEdEb21XZWJLaXRBbmltYXRpb25FdmVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tV2ViS2l0QW5pbWF0aW9uRXZlbnRQcml2YXRlIEdEb21XZWJLaXRBbmltYXRp
b25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlQ2xhc3MgR0RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlIEdEb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVQcml2YXRlIEdE
b21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdl
YktpdFRyYW5zaXRpb25FdmVudENsYXNzIEdEb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50IEdEb21XZWJLaXRUcmFu
c2l0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdFRyYW5zaXRpb25FdmVudFBy
aXZhdGUgR0RvbVdlYktpdFRyYW5zaXRpb25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVdoZWVsRXZlbnRDbGFzcyBHRG9tV2hlZWxFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21XaGVlbEV2ZW50IEdEb21XaGVlbEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XaGVl
bEV2ZW50UHJpdmF0ZSBHRG9tV2hlZWxFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVhNTEh0dHBSZXF1ZXN0Q2xhc3MgR0RvbVhNTEh0dHBSZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3MgR0RvbVhNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uIEdEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb25Qcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvblBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0IEdEb21YTUxIdHRwUmVx
dWVzdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1MSHR0cFJlcXVlc3RQcml2YXRlIEdEb21YTUxI
dHRwUmVxdWVzdFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudENsYXNzIEdEb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50IEdEb21YTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudFByaXZhdGUgR0RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3MgR0RvbVhN
TEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1
ZXN0VXBsb2FkIEdEb21YTUxIdHRwUmVxdWVzdFVwbG9hZDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
WE1MSHR0cFJlcXVlc3RVcGxvYWRQcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdFVwbG9hZFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTFNlcmlhbGl6ZXJDbGFzcyBHRG9tWE1MU2VyaWFs
aXplckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyIEdEb21YTUxTZXJp
YWxpemVyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyUHJpdmF0ZSBHRG9tWE1M
U2VyaWFsaXplclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXZhbHVhdG9yQ2xh
c3MgR0RvbVhQYXRoRXZhbHVhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXZh
bHVhdG9yIEdEb21YUGF0aEV2YWx1YXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhFdmFs
dWF0b3JQcml2YXRlIEdEb21YUGF0aEV2YWx1YXRvclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVhQYXRoRXhjZXB0aW9uQ2xhc3MgR0RvbVhQYXRoRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVhQYXRoRXhjZXB0aW9uIEdEb21YUGF0aEV4Y2VwdGlvbjsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tWFBhdGhFeGNlcHRpb25Qcml2YXRlIEdEb21YUGF0aEV4Y2VwdGlvblByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhwcmVzc2lvbkNsYXNzIEdEb21YUGF0aEV4
cHJlc3Npb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhFeHByZXNzaW9uIEdEb21Y
UGF0aEV4cHJlc3Npb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhwcmVzc2lvblByaXZh
dGUgR0RvbVhQYXRoRXhwcmVzc2lvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRo
TlNSZXNvbHZlckNsYXNzIEdEb21YUGF0aE5TUmVzb2x2ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tWFBhdGhOU1Jlc29sdmVyIEdEb21YUGF0aE5TUmVzb2x2ZXI7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVhQYXRoTlNSZXNvbHZlclByaXZhdGUgR0RvbVhQYXRoTlNSZXNvbHZlclByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoUmVzdWx0Q2xhc3MgR0RvbVhQYXRoUmVzdWx0Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoUmVzdWx0IEdEb21YUGF0aFJlc3VsdDsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhSZXN1bHRQcml2YXRlIEdEb21YUGF0aFJlc3VsdFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhTTFRQcm9jZXNzb3JDbGFzcyBHRG9tWFNMVFByb2Nl
c3NvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yIEdEb21YU0xUUHJv
Y2Vzc29yOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yUHJpdmF0ZSBHRG9tWFNM
VFByb2Nlc3NvclByaXZhdGU7CisqLworCitHX0VORF9ERUNMUworCisjZW5kaWYKSW5kZXg6IFdl
YkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNv
cHkpCkBAIC0yLDYgKzIsNyBAQAogV2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQogCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVf
REVGSU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTIDo9CiBIVE1M
X0ZFQVRVUkVTIDo9CiAKQEAgLTksNiArMTAsNyBAQAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09S
RFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCiB3ZWJjb3JlX2NwcGZs
YWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsgXApAQCAtMjksNiArMzEsNyBAQAogCS1JJChzcmNkaXIpL1dlYkNv
cmUveG1sIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2h0bWwgXAogCS1JJChzcmNkaXIpL1dlYkNv
cmUvYmluZGluZ3MvanMgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbSBcCiAJ
LUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAJLUkkKHNyY2Rp
cikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAgXAogCS1JJChzcmNkaXIpL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmIFwKQEAgLTU1LDcgKzU4LDcgQEAKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JHQkNvbG9yLmx1dC5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVu
dEJhc2VUYWJsZS5jcHAKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJh
c2VUYWJsZS5jcHAgCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvQ1NTR3JhbW1hci5jcHAgXApAQCAtMzU4LDcgKzM2MSw1ODcgQEAKIAlEZXJpdmVkU291cmNl
cy9Vc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHls
ZVNoZWV0c0RhdGEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHAgXAotCURlcml2
ZWRTb3VyY2VzL1hNTE5hbWVzLmgKKwlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQXR0ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21BdHRyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUJh
ckluZm8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0No
YXJzZXRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ1NTRm9udEZhY2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NJbXBvcnRS
dWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNTU01lZGlhUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NN
ZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUNTU1BhZ2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQcmltaXRpdmVWYWx1
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZURl
Y2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVJ1bGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
U1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1N0eWxlU2hlZXQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYWx1ZUxpc3QuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
U1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzUnVs
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DYW52YXNHcmFkaWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
YW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2FudmFzUGF0dGVybi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNQYXR0ZXJuLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1Bp
eGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ2hhcmFjdGVyRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2xpcGJvYXJkLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ29tbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Db21tZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvbnNvbGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NQ29yZUV4Y2VwdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01J
bXBsZW1lbnRhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NUGFyc2VyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9N
U2VsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVNlbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURP
TVdpbmRvdy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50RnJh
Z21lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bURvY3VtZW50VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5UmVmZXJl
bmNlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBbmNob3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
QXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXBwbGV0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TEJSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQlJFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTEJhc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUZv
bnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRm9udEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQm9k
eUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MQ2FudmFzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
Q2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERM
aXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxEaXZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRG9jdW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MRW1iZWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
RmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGaWVsZFNldEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRm9ybUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRnJhbWVT
ZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIZWFkaW5nRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSHRtbEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbWFn
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTElucHV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJ
c0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExJRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMYWJl
bEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MTGlua0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExp
bmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFwRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXJx
dWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1lbnVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZXRh
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxPTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9MaXN0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9w
dEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQ
YXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUGFyYW1FbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQcmVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTY3JpcHRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU3R5
bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxl
Q29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRp
dGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IaXN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhpc3RvcnkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21J
bWFnZURhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tS2V5Ym9hcmRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21LZXli
b2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Mb2NhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVkaWFMaXN0
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTWVzc2FnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lc3NhZ2VFdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1pbWVUeXBlQXJyYXkuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTW91c2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Nb3VzZUV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21NdXRhdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbU11dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5hbWVkTm9kZU1h
cC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbU5hdmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYXZpZ2F0b3Iu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Tm9kZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlSXRlcmF0
b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Ob2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tTm90YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU92ZXJmbG93RXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVBsdWdpbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2lu
QXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJv
Z3Jlc3NFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tUmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJlY3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TY3JlZW4u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGV4dC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHRF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21UcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21VSUV2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdEFu
aW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XaGVlbEV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RF
eGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxT
ZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVhTTFRQcm9jZXNzb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21BdHRyLmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tQmFySW5mby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
QmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNEQVRBU2VjdGlvbi5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ0RBVEFTZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ1NTQ2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNT
U0NoYXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTRm9udEZhY2VSdWxl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DU1NJbXBvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTTWVk
aWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NNZWRpYVJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUHJpbWl0aXZlVmFs
dWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUnVs
ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1J1bGVMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5
bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NWYWx1
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NT
VmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVz
UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUNhbnZhc1BhdHRlcm4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNh
bnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21DaGFyYWN0ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2xpcGJvYXJk
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Db21t
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50
ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NSW1w
bGVtZW50YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTUltcGxlbWVudGF0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21ET01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21E
T01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTVNlbGVjdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3Vt
ZW50VHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRUeXBlLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUVudGl0eS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tRW50aXR5UmVmZXJlbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FbnRpdHlS
ZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVu
dEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnRFeGNlcHRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21GaWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRmlsZUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUZpbGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTEFuY2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFwcGxldEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBcHBsZXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQlJF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJhc2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
QmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQm9keUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxCb2R5RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MQnV0dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxDb2xsZWN0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRGl2RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxFbWJlZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
RmllbGRTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEZvbnRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGcmFt
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MSHRtbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJ
RnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSUZyYW1lRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MSW5wdXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElz
SW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSXNJbmRleEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTExhYmVsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMZWdlbmRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTGVnZW5kRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxN
YXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1hcnF1ZWVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxNZXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1ldGFF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPYmpl
Y3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT2JqZWN0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxP
cHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUGFyYWdyYXBoRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MUHJlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTFNlbGVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
VGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGl0bGVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhp
c3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21JbWFnZURhdGEuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUphdmFT
Y3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tTG9jYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTWVkaWFMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lc3NhZ2VF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1p
bWVUeXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlQXJyYXku
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0
YXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0YXRpb25FdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
TmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21OYXZpZ2F0b3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Ob2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUZpbHRlci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbU5vZGVJdGVyYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUl0ZXJh
dG9yLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm90
YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vdGF0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdp
bkFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Qcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
UmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdlLmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmVjdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU2NyZWVuLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0eWxlU2hlZXRM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRyZWVXYWxrZXIuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21VSUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0QW5pbWF0
aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVdlYktpdEFuaW1hdGlvbkV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21YTUxTZXJpYWxpemVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxTZXJpYWxp
emVyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5oICBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggCiAKIElETF9CSU5ESU5H
UyArPSAgXAogCVdlYkNvcmUvY3NzL0NvdW50ZXIuaWRsIFwKQEAgLTcwMSw2ICsxMjg0LDE2IEBA
CiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU3Ry
aW5nU291cmNlUHJvdmlkZXIuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5n
LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L2dkb21ET01PYmplY3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2Jq
ZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmggXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmggXAogCVdlYkNvcmUvYnJpZGdlL05QX2pzb2Jq
ZWN0LmNwcCBcCiAJV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuaCBcCiAJV2ViQ29yZS9icmlk
Z2UvYy9jX2NsYXNzLmNwcCBcCkBAIC0yMDA4LDkgKzI2MDEsMTIgQEAKICMgLS0tLQogaWYgRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAogd2ViY29yZV9idWlsdF9z
b3VyY2VzICs9IFwKLQlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCisJ
RGVyaXZlZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bURPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKQEAgLTIwNTIsNiArMjY0OCw3
IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9EQVRBQkFTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX0RBVEFCQVNFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9E
QVRBQkFTRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
SlNEYXRhYmFzZS5jcHAgXApAQCAtMjA2Myw3ICsyNjYwLDI3IEBACiAJRGVyaXZlZFNvdXJjZXMv
SlNTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxSZXN1bHRT
ZXRSb3dMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uY3BwIFwKLQlE
ZXJpdmVkU291cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmgKKwlEZXJpdmVkU291cmNlcy9KU1NRTFRy
YW5zYWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21EYXRhYmFzZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMRXJyb3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNRTFJlc3VsdFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxSZXN1bHRTZXQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMVHJhbnNhY3Rp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21EYXRhYmFzZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxF
cnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNl
dFJvd0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNldFJvd0xp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMVHJhbnNhY3Rpb24uaAogCiBJRExfQklORElOR1MgKz0g
XAogCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXApAQCAtMjEzOCwxMiArMjc1NSwyMSBA
QAogIyAtLS0tCiBpZiBFTkFCTEVfRE9NX1NUT1JBR0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFC
TEVfRE9NX1NUT1JBR0U9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRT
b3VyY2VzL0pTU3RvcmFnZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU3Rv
cmFnZUV2ZW50LmgKKwlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU3RvcmFnZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TdG9yYWdlLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU3RvcmFnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbVN0b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3Rv
cmFnZUV2ZW50LmgKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZS5pZGwgXApAQCAtMjIwMyw2ICsyODI5LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCiBG
RUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJ
TkVTX0dET00gKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklE
RU89MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMjI1LDcgKzI4
NTIsMzUgQEAKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9KU1RpbWVSYW5nZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suY3Bw
IFwKLQlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMvSlNW
b2lkQ2FsbGJhY2suaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBdWRpb0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTE1lZGlhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
TWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFZpZGVvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21NZWRpYUVycm9yLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGltZVJhbmdlcy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVZvaWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MTWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTFNvdXJjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxT
b3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UaW1lUmFuZ2Vz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Wb2lkQ2FsbGJhY2suaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvaHRtbC9IVE1M
QXVkaW9FbGVtZW50LmlkbCBcCkBAIC0yMjY5LDYgKzI5MjQsNyBAQAogIyAtLS0tCiBpZiBFTkFC
TEVfWFBBVEgKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YUEFUSD0xCitG
RUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfWFBBVEg9MQogCiB3ZWJjb3JlX2NwcGZsYWdz
ICs9IC1ERU5BQkxFX1hQQVRIPTEKIApAQCAtMjI4NCw3ICsyOTQwLDI3IEBACiAJRGVyaXZlZFNv
dXJjZXMvSlNYUGF0aFJlc3VsdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTWFBhdGhSZXN1bHQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMv
WFBhdGhHcmFtbWFyLmgKKwlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQ
YXRoRXZhbHVhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tWFBhdGhFeHByZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXhw
cmVzc2lvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhSZXN1bHQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV2YWx1YXRvci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhFeGNl
cHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV4cHJlc3Npb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tWFBhdGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhSZXN1
bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoUmVzdWx0LmgKIAogSURMX0JJ
TkRJTkdTICs9IFwKIAlXZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwgXApAQCAtMjM0OSw2
ICszMDI1LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1hTTFQKIEZFQVRVUkVfREVGSU5FU19KQVZB
U0NSSVBUICs9IEVOQUJMRV9YU0xUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9Y
U0xUPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YU0xUPTEKIApAQCAtMjM3Miw2
ICszMDQ5LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1NWRwogRkVBVFVSRV9ERUZJTkVTX0pBVkFT
Q1JJUFQgKz0gRU5BQkxFX1NWRz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NW
Rz0xIC0gYmlnIFRPRE8hIDopCiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTICs9ICQoV2Vi
Q29yZSkvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gCiBXRUJDT1JFX0NTU19WQUxVRV9LRVlX
T1JEUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNjQ5LDYg
KzMzMjcsMjczIEBACiAJRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9YTGlua05hbWVzLmNwcAogCitub3QteWV0OgorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdB
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0FuaW1hdGVkQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQm9vbGVh
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVk
SW50ZWdlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdBbmltYXRlZExlbmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVk
TnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdBbmltYXRlZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRS
ZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRpb25FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDaXJjbGVFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0NpcmNsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0NsaXBQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDbGlwUGF0aEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0NvbG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
Q3Vyc29yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDdXJzb3JFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRGVmc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RGVmc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEb2N1bWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFu
Y2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudEluc3RhbmNlLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdF
bGxpcHNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGxpcHNlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVu
ZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVuZEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFQ29tcG9zaXRlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHRkVGbG9vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZF
RnVuY0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0FFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNCRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNCRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVGdW5jR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jR0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUlt
YWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUltYWdlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRkVNZXJnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU1lcmdl
Tm9kZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU9mZnNldEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNw
b3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVTcG90TGlnaHRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVRpbGVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRmlsdGVyRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGaWx0ZXJFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGb250RmFjZU5hbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFj
ZVNyY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VTcmNFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
R0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdHbHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0dyYWRpZW50RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xlbmd0aC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0xlbmd0aExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGVuZ3RoTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hcmtlckVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTWFza0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
TWFza0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hdHJpeC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdNYXRyaXguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01l
dGFkYXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdNZXRhZGF0YUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR051bWJl
ci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWlu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWludC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWcuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNl
Z0FyY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjQWJzLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdBcmNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdDbG9zZVBhdGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0
aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJl
bC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b0Ficy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BhdGhTZWdMaW5ldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNl
Z0xpbmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNh
bEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdNb3ZldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b0Fi
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXR0ZXJuRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXR0
ZXJuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9pbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHUG9pbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvaW50
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2ludExpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BvbHlnb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BvbHlnb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2x5bGluZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9seWxpbmVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlY3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlbmRlcmluZ0ludGVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1NWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU1ZHRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NldEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0b3BFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1N0b3BFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTdHJpbmdM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0cmluZ0xpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1N0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N3aXRjaEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU3dpdGNoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdTeW1ib2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHVFNwYW5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RT
cGFuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHVGV4dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQYXRoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUZXh0UGF0aEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Rp
dGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVHJhbnNmb3JtLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RyYW5zZm9ybS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUcmFuc2Zvcm1M
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVbml0VHlwZXMuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVc2VF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1VzZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1ZpZXdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdab29tRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9CSU5ESU5HUyAr
PSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcv
U1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTMyMjgsMzYgKzQxNzMsNDIgQEAKICMgU1ZHIEZlYXR1cmVz
CiBpZiBFTkFCTEVfU1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19VU0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfVVNFPTEgIyBi
aWcgVE9ETyEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJjb3JlX2NwcGZs
YWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVD0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT1JFSUdOX09C
SkVDVD0xIAogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogd2Vi
Y29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogZW5kaWYKIAog
aWYgRU5BQkxFX1NWR19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19GT05UUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT05UUz0x
CiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9
IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZJTFRFUlMKIEZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCisjRkVBVFVS
RV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19GRUFUVVJFUyArPSBF
TkFCTEVfU1ZHX0ZJTFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRklM
VEVSUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FT
X0lNQUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVu
ZGlmCiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5B
QkxFX1NWR19BTklNQVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9O
PTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpA
QCAtMzI2NSwxMyArNDIxNiwxNCBAQAogIyBTVkcgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMgKG5l
ZWQgdG8gcGFzcyBhbiBleHRyYSBmbGFnIGlmIHN2ZyBleHBlcmltZW50YWwgZmVhdHVyZXMgYXJl
IGVuYWJsZWQpCiBEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHA6IERlcml2ZWRTb3VyY2VzL1NW
R0VsZW1lbnRGYWN0b3J5LmNwcDsKIERlcml2ZWRTb3VyY2VzL0pTU1ZHRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCitEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMv
U1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwogRGVyaXZlZFNvdXJjZXMvU1ZH
RWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29y
ZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkkKFBFUkwpIC1J
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0
YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmluZXMg
IiQoU1ZHX0ZFQVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAt
SSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3Zn
dGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVz
ICIkKFNWR19GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIGVsc2UKIERl
cml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9u
YW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJz
LmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChX
ZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmlu
IC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAk
KFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiAK
IGVuZGlmICMgU1ZHX0ZMQUdTCiAKQEAgLTMyODAsNyArNDIzMiw3IEBACiBEZXJpdmVkU291cmNl
cy9YTGlua05hbWVzLmg6IERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwOwogCiBEZXJpdmVk
U291cmNlcy9YTGlua05hbWVzLmNwcCA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChX
ZWJDb3JlKS9zdmcveGxpbmthdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0
RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGlyICIk
KEdFTlNPVVJDRVMpIiAKIAogZW5kaWYgIyBFTkQgRU5BQkxFX1NWRwogCkBAIC0zMzYxLDE2ICs0
MzEzLDE2IEBACiAKIGlmIEhUTUxfRkxBR1MKIERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHA6
ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1l
cy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAtSSQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxU
YWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4g
LS1leHRyYURlZmluZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJD
RVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQo
V2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKEhUTUxfRkVBVFVSRVMpIiAtLW91
dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiBlbHNlCiBEZXJpdmVkU291cmNlcy9IVE1MTmFtZXMu
Y3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFn
TmFtZXMuaW4gJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgotCSQoUEVSTCkg
LUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9I
VE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2Jp
bmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4g
LS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tb3V0cHV0RGly
ICIkKEdFTlNPVVJDRVMpIiAKIGVuZGlmICMgSFRNTF9GTEFHUwogCiBEZXJpdmVkU291cmNlcy9Y
TUxOYW1lcy5oOiBEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2Vz
L1hNTE5hbWVzLmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3ht
bC94bWxhdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwg
LS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VS
Q0VTKSIKKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMg
JChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAog
CiB2cGF0aCAlLmlkbCA9IFwKICAgICAkKFdlYkNvcmUpIFwKQEAgLTMzODYsNiArNDMzOCwxNSBA
QAogICAgICQoV2ViQ29yZSkveG1sIFwKICAgICAkKFdlYkNvcmUpL3BsdWdpbnMKIAorRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dkb20lLmg7CisKK0Rlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tJS5jcHA6IERlcml2ZWRTb3VyY2VzL2dkb20lLmNwcDsKKworRGVyaXZl
ZFNvdXJjZXMvZ2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbSUuY3BwOworCitEZXJpdmVkU291
cmNlcy9nZG9tJS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUt
YmluZGluZ3MucGwgLS1pbmNsdWRlICQoV2ViQ29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUp
L2h0bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkvY3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2Ug
LS1pbmNsdWRlICQoV2ViQ29yZSkveG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1
dERpciAiJChHRU5TT1VSQ0VTKSIgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FU19HRE9NKSIg
LS1nZW5lcmF0b3IgR09iamVjdCAkPAorCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNv
dXJjZXMvSlMlLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRT
X0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CkBAIC0zNDAxLDYgKzQzNjIsNyBAQAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVz
UGFyc2VyLnBtIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3Mu
cGwgXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gXAorCVdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBcCiAJV2ViQ29y
ZS9jc3MvaHRtbDQuY3NzIFwKIAlXZWJDb3JlL2Nzcy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nz
cy92aWV3LXNvdXJjZS5jc3MgXApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVu
dFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9nZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5n
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcu
aCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tRXZlbnRUYXJn
ZXROb2RlLmgiCisjaW5jbHVkZSAicHJpdmdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRl
ICJnbGliLW9iamVjdC5oIgorCitjbGFzcyBHU3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgor
ICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJp
bmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAg
R1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBn
X3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9Cit9OworCitleHRlcm4gIkMiIHsK
KworI2RlZmluZSBfR19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKQor
Cit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdk
b21FdmVudFRhcmdldE5vZGUgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
CisJLyoKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtID0gZ2RvbV9ldmVudF90
YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh0aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZXZl
bnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJpbmcoZXZlbnRfdGFyZ2V0X25v
ZGVfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRFdmVudFRhcmdldE5vZGUoX2dfZXZlbnRfdGFy
Z2V0X25vZGVfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRh
cmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAi
Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZnZG9tRXZlbnRUYXJnZXROb2Rl
LmgiCisjaW5jbHVkZSAiaW50Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZn
ZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKwor
V2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21F
dmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZSAqcmVz
OworCXJlcyA9IHN0YXRpY19jYXN0PEdET01FdmVudFRhcmdldE5vZGUqPihnZG9tX2RvbV9vYmpl
Y3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7CisJcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHJlcy0+aW1wbCgpKTsKK30KKworCitleHRlcm4g
IkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRXZlbnRUYXJnZXROb2RlLCBnZG9tX2V2ZW50X3Rh
cmdldF9ub2RlLCBHRE9NX1RZUEVfTk9ERSk7CisKKy8qCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdl
dE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKml0ZW07
Cit9OyAgCisqLworCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUo
b2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRf
VEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKSkKKworLyoKK3ZvaWQKK2dk
b21fZXZlbnRfdGFyZ2V0X25vZGVfc2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVx
dWVzdCwgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSkKK3sKKyAgICBHZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZB
VEUocmVxdWVzdCk7CisgICAgcHJpdi0+aXRlbSA9IGl0ZW07Cit9CisqLworCitzdGF0aWMgdm9p
ZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAg
ICAvKkdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RF
KG9iamVjdCk7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSByZXF1ZXN0
LT5wcml2OyovCisgICAgCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQoR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKiBy
ZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxp
emUgPSBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplOworICAgIAorICAgIC8qZ190eXBl
X2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21FdmVudFRhcmdldE5v
ZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9p
bml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJn
ZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUo
cmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworfSAvKiBleHRl
cm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXRO
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdl
dE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRU
YXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR2RvbUV2ZW50VGFy
Z2V0Tm9kZV9IX18KKyNkZWZpbmUgX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXworI2luY2x1ZGUg
ImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+CisKK0dfQkVH
SU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50
VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2Rv
bUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOworCisjZGVmaW5lIEdET01fVFlQRV9FVkVOVF9UQVJHRVRf
Tk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZl
bnRUYXJnZXROb2RlKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFz
cykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRf
VEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVDbGFzcykpCisjZGVmaW5lIEdET01fSVNf
RVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9JU19F
VkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChr
bGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2RlZmluZSBHRE9NX0VWRU5U
X1RBUkdFVF9OT0RFX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNs
YXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIEdkb21F
dmVudFRhcmdldE5vZGVQcml2YXRlOworCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKworc3RydWN0
IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7CisK
KyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2Rv
bUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFzczsK
K307CisKK1dFQktJVF9HRE9NX0FQSSBHVHlwZQorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRf
dHlwZSAodm9pZCk7CisKK1dFQktJVF9HRE9NX0FQSSB2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9u
b2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXopOwor
CitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXyAqLwor
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5v
ZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50
VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTUV2ZW50
VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19Q
UklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAicHJpdmdkb21Ob2RlLmgi
CitjbGFzcyBXZWJDb3JlOjpOb2RlOworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0
Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOworCitXRUJLSVRfR0RPTV9BUEkgV2ViQ29yZTo6Tm9k
ZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5v
ZGUgKnJlcXVlc3QpOworCisjZW5kaWYKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dk
b21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJnZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworZXh0ZXJuICJD
IiB7CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01PYmpl
Y3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisJLyoKKyAgICBXZWJD
b3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKHRoaXop
OworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0X3R5cGVfYXJnID0gV2ViQ29yZTo6
U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRET01PYmplY3QoX2df
ZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGli
LW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJnZG9tRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0Lmgi
CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKEdkb21ET01PYmplY3QsIGdkb21fZG9t
X29iamVjdCwgR19UWVBFX09CSkVDVCk7CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdFByaXZhdGUg
eworICAgICBHRE9NT2JqZWN0ICptX25vZGU7Cit9OyAgCisKKyNkZWZpbmUgR0RPTV9ET01fT0JK
RUNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2Rv
bV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmpl
Y3QgKiBpdGVtKQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01f
T0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07Cisg
ICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitn
ZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAg
ICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFU
RShyZXF1ZXN0KTsKKyAgICByZXR1cm4gcHJpdi0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBn
ZG9tX2RvbV9vYmplY3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01P
YmplY3QqIHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2Jq
ZWN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgCisgICAgLypwcml2LT5tX25v
ZGUtPmltcGwoKS0+ZGVyZWYoKTsqLworCWRlbGV0ZSBwcml2LT5tX25vZGU7IC8qIGNhbGxzIG1f
aW1wbC0+ZGVyZWYoKSAqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9kb21fb2JqZWN0X3Bh
cmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9t
X29iamVjdF9jbGFzc19pbml0KEdkb21ET01PYmplY3RDbGFzcyogcmVxdWVzdENsYXNzKQorewor
ICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9kb21fb2Jq
ZWN0X2ZpbmFsaXplOworICAgIAorICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0
Q2xhc3MsIHNpemVvZihHZG9tRE9NT2JqZWN0UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9pZCBn
ZG9tX2RvbV9vYmplY3RfaW5pdChHZG9tRE9NT2JqZWN0KiByZXF1ZXN0KQoreworICAgIEdkb21E
T01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVl
c3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OworfSAgIAorCit9IC8qIGV4dGVybiAiQyIg
Ki8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NzcgQEAKKy8qCisgKiBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFU
RUQsIERPIE5PVCBFRElULgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgImdkb21IVE1MQW5jaG9yRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb21IVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MQXJl
YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJsb2NrcXVvdGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b21IVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxCdXR0b25FbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbUhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTERpcmVj
dG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MRW1iZWRFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
SFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGcmFtZVNl
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSFJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSUZy
YW1lRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
SFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTExJRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE1hcEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bUhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE9MaXN0
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxQYXJhZ3JhcGhF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFF1b3RlRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb21IVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MU2Vs
ZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MVGl0bGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxBbmNob3JF
bGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiaW50Z2RvbUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MQmFzZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1
ZGUgImludGdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRN
TEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJpbnRnZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTENh
bnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRGlyZWN0b3J5RWxl
bWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxFbWJlZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUg
ImludGdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEZvcm1FbGVt
ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSGVhZGlu
Z0VsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiaW50Z2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEh0bWxFbGVt
ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJpbnRnZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTGVnZW5k
RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTWFwRWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxNZXRhRWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxPcHRHcm91cEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJpbnRnZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFBh
cmFtRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1
ZGUgImludGdkb21IVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxTY3Jp
cHRFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5j
bHVkZSAiaW50Z2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRh
YmxlRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5o
IgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxUaXRsZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1
ZGUgImludGdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KworI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFwcGxldEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFz
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCdXR0b25FbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDYXB0
aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRExpc3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9y
bUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkaW5nRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIUkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExh
YmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTExJRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1ldGFFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT0xpc3RFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPcHRp
b25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxVTGlz
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBHRE9NTm9kZSogKCpDcmVh
dGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4pOwor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFuY2hvcldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQW5jaG9yRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcHBsZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFwcGxldEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEFwcGxldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXJlYUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZUJhc2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxCYXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVCYXNlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxCYXNlRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmxvY2txdW90ZUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEJsb2NrcXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUJvZHlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJvZHlFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxCb2R5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVCUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQlJFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCUkVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQnV0
dG9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxCdXR0b25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCdXR0b25FbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUNhbnZh
c1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MQ2FudmFzRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNh
cHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlVGFibGVDb2xXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ29sRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MVGFibGVDb2xFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZU1vZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTW9kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
TW9kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVEaXJlY3RvcnlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TERpcmVjdG9yeUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlRGl2V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXZFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxEaXZF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURM
aXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxETGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERMaXN0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVFbWJlZFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MRW1iZWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxFbWJlZEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRmllbGRTZXRXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEZpZWxkU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZvbnRXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb250RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb3JtV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxGb3JtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZyYW1l
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lU2V0V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFtZVNl
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkaW5nV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIZWFk
aW5nRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZGluZ0VsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVhZEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIUkVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEhSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVIdG1sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIdG1sRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
SHRtbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlSUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxJRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJRnJh
bWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUltYWdlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJbnB1
dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSXNJbmRleFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MSXNJbmRleEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElzSW5kZXhFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxhYmVsV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxMYWJlbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMZWdlbmRXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTExlZ2VuZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExlZ2VuZEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTElXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TExJRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTElFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxpbmtXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExpbmtFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVNYXBXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTE1hcEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlTWFycXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFycXVlZUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTE1hcnF1ZWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZU1lbnVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1lbnVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxN
ZW51RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVNZXRhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxNZXRhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWV0YUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT2JqZWN0
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxPYmplY3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9MaXN0V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxPTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9MaXN0RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPcHRHcm91cFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MT3B0R3JvdXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT3B0aW9uV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxPcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBhcmFncmFwaFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MUGFyYWdyYXBoRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYWdyYXBoRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQYXJh
bVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MUGFyYW1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJhbUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUHJlV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxQcmVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQcmVFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVF1b3RlV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxR
dW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTY3JpcHRXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNjcmlw
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNjcmlwdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2VsZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTZWxlY3RF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVN0eWxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTdHlsZUVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxUYWJsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
VGFibGVDZWxsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUZXh0QXJlYVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MVGV4dEFyZWFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGl0bGVXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTFRpdGxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGl0bGVFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlUm93V3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlUm93RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVVTGlzdFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MVUxpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxVTGlzdEVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK0dET01Ob2RlKiBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3Jl
OjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24+IG1h
cDsKKyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAgIG1hcC5zZXQoYVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYXBwbGV0
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXJlYVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
QmFzZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJsb2NrcXVvdGVUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChib2R5
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCUldyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQnV0dG9uV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVDYW52
YXNXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChk
ZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGl2V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURMaXN0
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmaWVsZHNldFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb250VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
Zm9ybVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1XcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJh
bWVTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaGVhZFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhyVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGh0bWxUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChp
ZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJhbWVXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlucHV0
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGFiZWxUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGVnZW5kVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChsaVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGlua1dyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFwV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFy
cXVlZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1ldGFUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChvYmplY3RUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9s
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0R3JvdXBXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9w
dGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocGFyYW1UYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocHJlVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChxVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHNjcmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNjcmlwdFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVN0eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJsZVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Ym9keVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
dGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGV4dEFyZWFX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlVGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRyVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHVsVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbGdyb3Vw
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhl
YWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDZUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbWFnZVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChp
bnNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aGVhZFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7Cisg
ICAgfQorCXByaW50ZigiY3JlYXRlR0RPTUhUTUxXcmFwcGVyOiAlc1xuIiwgZWxlbWVudC0+bG9j
YWxOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgQ3JlYXRlSFRNTEVsZW1lbnRX
cmFwcGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0gbWFwLmdldChlbGVtZW50LT5s
b2NhbE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCisgICAg
ICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVudCk7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEVsZW1lbnQoZWxlbWVudC5nZXQoKSk7Cit9CisKK30KKwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3ODggQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2Rl
Lm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11
ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKy8vIGdjYyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUgSGFz
aE1hcCBwb2ludGVyIHNwZWNpYWxpemF0aW9uIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQgX19H
TlVDX18gJiYgIWRlZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNkZWZp
bmUgSEFTSF9NQVBfUFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbURPTU9iamVj
dC5oIgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTUJpbmRp
bmcuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorCisjaW5j
bHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgImdkb21DU1NTdHlsZVNoZWV0LmgiCisj
aW5jbHVkZSAiaW50Z2RvbUNTU1N0eWxlU2hlZXQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgImludGdkb21Ob2RlLmgiCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIK
KworI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRl
ICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudFR5cGUu
aCIKKyNpbmNsdWRlICJFbnRpdHkuaCIKKyNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21FdmVudFRhcmdldE5vZGUuaCIK
KyNpbmNsdWRlICJnZG9tQXR0ci5oIgorI2luY2x1ZGUgImludGdkb21BdHRyLmgiCisjaW5jbHVk
ZSAiZ2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJnZG9tVGV4dC5oIgorI2luY2x1ZGUg
Imdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJnZG9tQ29tbWVudC5oIgorI2luY2x1ZGUg
Imdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgImdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgImdkb21FbnRpdHkuaCIKKyNpbmNs
dWRlICJnZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNs
dWRlICJnZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJnZG9tRW50aXR5UmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiZ2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxEb2N1
bWVudC5oIgorI2luY2x1ZGUgImdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRl
ICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlICJnZG9tQ1NTUnVsZS5oIgor
I2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgi
CisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgor
I2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5j
bHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgImdkb21DU1NDaGFyc2V0UnVsZS5o
IgorI2luY2x1ZGUgImdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tQ1NTSW1w
b3J0UnVsZS5oIgorI2luY2x1ZGUgImdkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9t
Q1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAi
Z2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
ImludGdkb21FdmVudC5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRXZl
bnQuaCIKKyNpbmNsdWRlICJnZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiZ2RvbUtleWJvYXJk
RXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbU1v
dXNlRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgImdk
b21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVByb2dyZXNzRXZlbnQuaCIKKyNpbmNs
dWRlICJnZG9tVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRl
ICJnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9t
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNp
bmNsdWRlICJNdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgorI2lu
Y2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRl
ICJVSUV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRl
ICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCisjaW5j
bHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisKKyNpbmNsdWRlICJnZG9tSFRN
TENvbGxlY3Rpb24uaCIKKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkhU
TUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisvLyBU
T0RPICNpbmNsdWRlICJpbnRnZG9tSFRNTEFsbENvbGxlY3Rpb24uaCIKKy8vIFRPRE8gI2luY2x1
ZGUgImdkb21IVE1MQWxsQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgImdkb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaCIKKy8vIGVyci4uLiAjaW5jbHVkZSAiaW50Z2RvbU5hbWVkTm9kZXNDb2xsZWN0
aW9uLmgiCisvLyBlcnIuLi4gI2luY2x1ZGUgImdkb21OYW1lZE5vZGVzQ29sbGVjdGlvbi5oIgor
CisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorI2luY2x1ZGUgImdkb21TdG9yYWdlRXZlbnQuaCIK
KyNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNp
ZiAwIC8qIFRPRE8gKi8KKyNpbmNsdWRlICJpbnRnZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgorI2VuZGlm
CisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBYWFggVE9ETyAqLworI2luY2x1
ZGUgImludGdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJnZG9tU1ZH
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgorI2VuZGlm
CisjZW5kaWYKKworI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIkdkb21TVkdFeGNl
cHRpb24uaCIKKyNpbmNsdWRlICJTVkdFeGNlcHRpb24uaCIKKyNlbmRpZgorI2VuZGlmCisKKyNp
bmNsdWRlICJpbnRnZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1J1bGUuaCIK
KyNpbmNsdWRlICJpbnRnZG9tQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNvbW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tRG9j
dW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgImludGdkb21Eb2N1bWVudFR5cGUuaCIKKyNpbmNs
dWRlICJpbnRnZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiaW50Z2RvbUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJpbnRnZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1ByaW1pdGl2
ZVZhbHVlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUVudGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
ImludGdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJpbnRnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiaW50Z2Rv
bVRleHQuaCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJp
bnRnZG9tQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU0ltcG9ydFJ1bGUu
aCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNT
U1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUg
ImludGdkb21DU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUtleWJvYXJkRXZl
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2Rv
bU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1
ZGUgImludGdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVByb2dyZXNzRXZl
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVVJ
RXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNs
dWRlICJpbnRnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVdo
ZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmgiCisjaW5jbHVkZSAiaW50Z2RvbVN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUgImludGdkb21I
VE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTENvbGxlY3Rpb24u
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
Cit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBET01PYmplY3RNYXA7Cit0eXBlZGVm
IEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBHZG9tV3JhcHBlckNhY2hlOyAvKiBBUkchIFVORkFJ
UiEgR0RPTVdyYXBwZXJDYWNoZSBpcyBpbiBXZWJDb3JlOjpEb2N1bWVudCEhICovCisKKy8vIEZv
ciBkZWJ1Z2dpbmcsIGtlZXAgYSBzZXQgb2Ygd3JhcHBlcnMgY3VycmVudGx5IHJlZ2lzdGVyZWQs
IGFuZCBjaGVjayB0aGF0CisvLyBhbGwgYXJlIHVucmVnaXN0ZXJlZCBiZWZvcmUgdGhleSBhcmUg
ZGVzdHJveWVkLiBUaGlzIGhhcyBoZWxwZWQgdXMgZml4IGF0CisvLyBsZWFzdCBvbmUgYnVnLgor
CisjaWYgMAorc3RhdGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKTsKK3N0
YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcik7CitzdGF0aWMgdm9p
ZCByZW1vdmVXcmFwcGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVycyk7CisKKyNp
ZmRlZiBOREVCVUcKKworc3RhdGljIGlubGluZSB2b2lkIGFkZFdyYXBwZXIoR0RPTU9iamVjdCop
Cit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmplY3QqKQor
eworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2RvbVdyYXBw
ZXJDYWNoZSYpCit7Cit9CisKKyNlbHNlCisKK3N0YXRpYyBIYXNoU2V0PEdET01PYmplY3QqPiYg
d3JhcHBlclNldCgpCit7CisgICAgc3RhdGljIEhhc2hTZXQ8R0RPTU9iamVjdCo+IHN0YXRpY1dy
YXBwZXJTZXQ7CisgICAgcmV0dXJuIHN0YXRpY1dyYXBwZXJTZXQ7Cit9CisKK3N0YXRpYyB2b2lk
IGFkZFdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcikKK3sKKyAgICBBU1NFUlQoIXdyYXBwZXJT
ZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgpLmFkZCh3cmFwcGVyKTsK
K30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKQorewor
ICAgIGlmICghd3JhcHBlcikKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh3cmFwcGVyU2V0
KCkuY29udGFpbnMod3JhcHBlcikpOworICAgIHdyYXBwZXJTZXQoKS5yZW1vdmUod3JhcHBlcik7
Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKQoreworICAgIGZvciAoR2RvbVdyYXBwZXJDYWNoZTo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSB3cmFwcGVycy5iZWdpbigpOyBpdCAhPSB3cmFwcGVycy5lbmQoKTsgKytpdCkKKyAgICAg
ICAgcmVtb3ZlV3JhcHBlcihpdC0+c2Vjb25kKTsKK30KKworR0RPTU9iamVjdDo6fkdET01PYmpl
Y3QoKQoreworICAgIEFTU0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5zKHRoaXMpKTsKK30KKwor
I2VuZGlmCisjZW5kaWYgLyogY29tbWVudGVkIG91dCBmb3Igbm93ICovCisKK3N0YXRpYyBHZG9t
V3JhcHBlckNhY2hlJiB3cmFwcGVyQ2FjaGUoKQoreyAKKwkvLyBVTkZBSVIhIGkgd2FudCBvbmUg
b2YgdGhlc2UgcGVyIFdlYkNvcmU6OkRvY3VtZW50LCB0b28hCisgICAgLy8gRG9uJ3QgdXNlIG1h
bGxvYyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxv
Y2suCisgICAgc3RhdGljIEdkb21XcmFwcGVyQ2FjaGUgc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsK
KyAgICByZXR1cm4gc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsKK30KKworc3RhdGljIERPTU9iamVj
dE1hcCYgZG9tT2JqZWN0cygpCit7IAorICAgIC8vIERvbid0IHVzZSBtYWxsb2MgaGVyZS4gQ2Fs
bGluZyBtYWxsb2MgZnJvbSBhIG1hcmsgZnVuY3Rpb24gY2FuIGRlYWRsb2NrLgorICAgIHN0YXRp
YyBET01PYmplY3RNYXAgc3RhdGljRE9NT2JqZWN0czsKKyAgICByZXR1cm4gc3RhdGljRE9NT2Jq
ZWN0czsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qo
dm9pZCogb2JqZWN0SGFuZGxlKSAKK3sKKyAgICBncG9pbnRlciByZXQgPSBkb21PYmplY3RzKCku
Z2V0KG9iamVjdEhhbmRsZSk7CisJcHJpbnRmKCJnZXRET01PYmplY3Q6ICVwICVwXG4iLCBvYmpl
Y3RIYW5kbGUsIHJldCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0
ZV9nZG9tX29iamVjdChHRE9NT2JqZWN0ICpkb2IpCit7CisJZ3BvaW50ZXIgcmVzID0gZ19vYmpl
Y3RfbmV3KGRvYi0+Z2V0X2dvYmpfdHlwZSgpLCBOVUxMKTsKKwlnZG9tX2RvbV9vYmplY3Rfc2V0
X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcyksIGRvYik7CisJcmV0dXJuIHJlczsKK30KKwor
Z3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qodm9pZCogb2JqZWN0
SGFuZGxlLCBHRE9NT2JqZWN0KiB3cmFwcGVyKSAKK3sKKwlwcmludGYoInB1dERPTU9iamVjdDog
JXAgJXBcbiIsIG9iamVjdEhhbmRsZSwgd3JhcHBlcik7CisgICAgLy8gYWRkV3JhcHBlcih3cmFw
cGVyKTsKKwlncG9pbnRlciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAg
ZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIG9iaik7CisJcmV0dXJuIG9iajsKK30KKwor
dm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RI
YW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKTsKKyAgICAvL3Jl
bW92ZVdyYXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7Cit9CisKK2dwb2lu
dGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50
KiBkb2N1bWVudCwgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Z3BvaW50ZXIgPihkb21PYmplY3RzKCkuZ2V0KG5v
ZGUpKTsKKyAgICByZXR1cm4gLyogWFhYIGdycnIgZG9jdW1lbnQtPiAqL3dyYXBwZXJDYWNoZSgp
LmdldChub2RlKTsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5v
ZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit7
CisgICAgaWYgKCFkb2N1bWVudCkgeworCQlmb3JnZXRET01PYmplY3Qobm9kZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgLy9yZW1vdmVXcmFwcGVyKC8qIFhYWCBncnIgZG9jdW1lbnQt
Piovd3JhcHBlckNhY2hlKCkudGFrZShub2RlKSk7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgV2Vi
Q29yZTo6Tm9kZSogbm9kZSwgR0RPTU5vZGUgKndyYXBwZXIpCit7CisgICAgLy9hZGRXcmFwcGVy
KHdyYXBwZXIpOworICAgIGlmICghZG9jdW1lbnQpIHsKKwkJcmV0dXJuIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6cHV0RE9NT2JqZWN0KG5vZGUsIHdyYXBwZXIpIDsKKyAgICB9CisJZ3BvaW50ZXIg
b2JqID0gY3JlYXRlX2dkb21fb2JqZWN0KHdyYXBwZXIpOworICAgIC8qIFhYWCBncnJyIGRvY3Vt
ZW50LT4qL3dyYXBwZXJDYWNoZSgpLnNldChub2RlLCBvYmopOworCXJldHVybiBvYmo7Cit9CisK
K3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIC8vcmVt
b3ZlV3JhcHBlcnMoZG9jdW1lbnQtPndyYXBwZXJDYWNoZSgpKTsKK30KKworI2lmIDAKK3ZvaWQg
R0RPTVNjcmlwdEludGVycHJldGVyOjptYXJrRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCog
ZG9jKQoreworI2lmIDAgLypYWFggVE9ETyovCisgICAgLy8gSWYgYSBub2RlJ3MgR2RvbSB3cmFw
cGVyIGhvbGRzIGN1c3RvbSBwcm9wZXJ0aWVzLCB0aG9zZSBwcm9wZXJ0aWVzIG11c3QKKyAgICAv
LyBwZXJzaXN0IGV2ZXJ5IHRpbWUgdGhlIG5vZGUgaXMgZmV0Y2hlZCBmcm9tIHRoZSBET00uIFNv
LCB3ZSBrZWVwIEdkb20KKyAgICAvLyB3cmFwcGVycyBsaWtlIHRoYXQgZnJvbSBiZWluZyBnYXJi
YWdlIGNvbGxlY3RlZC4KKworICAgIEdkb21XcmFwcGVyQ2FjaGUmIG5vZGVEaWN0ID0gLypkb2Mt
Piovd3JhcHBlckNhY2hlKCk7CisgICAgR2RvbVdyYXBwZXJDYWNoZTo6aXRlcmF0b3Igbm9kZUVu
ZCA9IG5vZGVEaWN0LmVuZCgpOworICAgIGZvciAoR2RvbVdyYXBwZXJDYWNoZTo6aXRlcmF0b3Ig
bm9kZUl0ID0gbm9kZURpY3QuYmVnaW4oKTsgbm9kZUl0ICE9IG5vZGVFbmQ7ICsrbm9kZUl0KSB7
CisgICAgICAgIGdwb2ludGVyIGdOb2RlID0gbm9kZUl0LT5zZWNvbmQ7CisgICAgICAgIFdlYkNv
cmU6Ok5vZGUqIG5vZGUgPSBnTm9kZS0+aW1wbCgpOworCisgICAgICAgIGlmIChnTm9kZS0+bWFy
a2VkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBObyBuZWVkIHRvIHBy
ZXNlcnZlIGEgd3JhcHBlciB0aGF0IGhhcyBubyBjdXN0b20gcHJvcGVydGllcyBvciBpcyBubwor
ICAgICAgICAvLyBsb25nZXIgZmV0Y2hhYmxlIHRocm91Z2ggdGhlIERPTS4KKyAgICAgICAgaWYg
KCFnTm9kZS0+aGFzQ3VzdG9tUHJvcGVydGllcygpIHx8ICFub2RlLT5pbkRvY3VtZW50KCkpCisg
ICAgICAgICAgICAvLy4uLiB1bmxlc3MgdGhlIHdyYXBwZXIgd3JhcHMgYSBsb2FkaW5nIGltYWdl
LCBzaW5jZSB0aGUgIm5ldyBJbWFnZSIKKyAgICAgICAgICAgIC8vIHN5bnRheCBhbGxvd3MgYW4g
b3JwaGFuIGltYWdlIHdyYXBwZXIgdG8gYmUgdGhlIGxhc3QgcmVmZXJlbmNlCisgICAgICAgICAg
ICAvLyB0byBhIGxvYWRpbmcgaW1hZ2UsIHdob3NlIGxvYWQgZXZlbnQgbWlnaHQgaGF2ZSBpbXBv
cnRhbnQgc2lkZS1lZmZlY3RzLgorICAgICAgICAgICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKGlt
Z1RhZykgfHwgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5oYXZlRmlyZWRM
b2FkRXZlbnQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBnTm9kZS0+
bWFyaygpOworICAgIH0KKyNlbmRpZgorfQorCisvKiBYWFggLSByZXF1aXJlcyBsb29raW5nIHVw
IG9iamVjdCAtIGNhbGwgdG8gR19PQkpFQ1QoKSBtYWNybyBpbiBhcmcKKyAqICJ3cmFwcGVyIiB0
byBwdXRET01Ob2RlRm9yRG9jdW1lbnQ/Ki8KK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRl
cjo6dXBkYXRlRE9NTm9kZURvY3VtZW50KFdlYkNvcmU6Ok5vZGUqIG5vZGUsIERvY3VtZW50KiBv
bGREb2MsIERvY3VtZW50KiBuZXdEb2MpCit7CisgICAgQVNTRVJUKG9sZERvYyAhPSBuZXdEb2Mp
OworICAgIGdwb2ludGVyIHdyYXBwZXIgPSBnZXRET01Ob2RlRm9yRG9jdW1lbnQob2xkRG9jLCBu
b2RlKTsKKyAgICBpZiAod3JhcHBlcikgeworICAgICAgICAvL3JlbW92ZVdyYXBwZXIod3JhcHBl
cik7CisgICAgICAgIGdwb2ludGVyIG9iaiA9IHB1dERPTU5vZGVGb3JEb2N1bWVudChuZXdEb2Ms
IG5vZGUsIHdyYXBwZXIpOworICAgICAgICBmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQob2xkRG9j
LCBub2RlKTsKKyAgICAgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIpOworCQlyZXR1cm4gb2JqOwor
ICAgIH0KKwlyZXR1cm4gTlVMTDsgLyogZXJyLi4uICovCit9CisjZW5kaWYKKworZ3BvaW50ZXIg
dG9HRE9NKERvY3VtZW50KiBkb2MpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybiBO
VUxMOyAvKiBYWFggaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvYyk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJl
dHVybiBnb2JqOworCisJR0RPTU9iamVjdCAqcmV0OworCisgICAgaWYgKGRvYy0+aXNIVE1MRG9j
dW1lbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MRG9jdW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTERvY3VtZW50Kj4oZG9jKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChkb2Mt
PmlzU1ZHRG9jdW1lbnQoKSkKKwl7CisJCXJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLworI2lm
IDAKKyAgICAgICAgcmV0ID0gbmV3IEdET01TVkdEb2N1bWVudChzdGF0aWNfY2FzdDxTVkdEb2N1
bWVudCo+KGRvYykpOworI2VuZGlmCisJfQorI2VuZGlmCisgICAgZWxzZQorICAgICAgICByZXQg
PSBuZXcgR0RPTURvY3VtZW50KGRvYyk7CisKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
V3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3bHlDcmVhdGVkKE5vZGUq
IG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4u
Li4gKi8KKyAgICAKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKyAgICAKK2dw
b2ludGVyIHRvR0RPTShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0
dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9j
dW1lbnQoKTsKKyAgICBncG9pbnRlciByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU5vZGVGb3JEb2N1bWVudChkb2MsIG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVy
biByZXQ7CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50ZXIg
dG9HRE9NKENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1
cm4gTlVMTDsgLyogaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAgICAg
ICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3QgKnJldDsKKworICAgIGlmICh2YWx1ZS0+aXNW
YWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZUxpc3Qoc3RhdGljX2Nh
c3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYg
KHZhbHVlLT5pc1NWR1BhaW50KCkpCisJeworCQlyZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAg
ICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHUGFpbnQoc3RhdGljX2Nhc3Q8U1ZHUGFpbnQqPih2YWx1
ZSkpOworCX0KKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdDb2xvcigpKQorCXsKKwkJcmV0dXJu
IE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR0NvbG9yKHN0YXRp
Y19jYXN0PFNWR0NvbG9yKj4odmFsdWUpKTsKKwl9CisjZW5kaWYKKyAgICBlbHNlIGlmICh2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ByaW1pdGl2
ZVZhbHVlKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpKTsKKyAgICBlbHNl
CisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWUodmFsdWUpOworCisgICAgcmV0dXJuIEdE
T01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZhbHVlLCByZXQpOworfQorCitzdGF0
aWMgQUxXQVlTX0lOTElORSBncG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7Cisg
ICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5v
ZGVGb3JEb2N1bWVudChub2RlLT5kb2N1bWVudCgpLCBub2RlKSk7CisgICAgCisgICAgRG9jdW1l
bnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAgR0RPTU5vZGUgKnJldCA9IE5VTEw7Cisg
ICAgCisJcHJpbnRmKCJjcmVhdGVXcmFwcGVyIG5vZGVUeXBlICVkXG4iLCBub2RlLT5ub2RlVHlw
ZSgpKTsKKworICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5cGUoKSkgeworICAgICAgICBjYXNlIE5v
ZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkp
CisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0
PEhUTUxFbGVtZW50Kj4obm9kZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgICAgICBlbHNl
IGlmIChub2RlLT5pc1NWR0VsZW1lbnQoKSkKKwkJCQlyZXR1cm4gTlVMTDsKKyNpZiAwIC8qIFhY
WCBUT0RPICovCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3Rh
dGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG5vZGUpKTsKKyNlbmRpZgorI2VuZGlmCisgICAgICAgICAg
ICBlbHNlCisJCQkJcmV0ID0gbmV3IEdET01FbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihu
b2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVf
Tk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQXR0cihzdGF0aWNfY2FzdDxBdHRyKj4o
bm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0KHN0YXRpY19jYXN0PFRleHQqPihub2Rl
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9O
X05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNEQVRBU2VjdGlvbihzdGF0aWNfY2Fz
dDxDREFUQVNlY3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpFTlRJVFlfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5KHN0
YXRpY19jYXN0PEVudGl0eSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0
cnVjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OkNPTU1FTlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ29tbWVudChzdGF0aWNf
Y2FzdDxDb21tZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2Fj
aGUgdGhlIGRvY3VtZW50IGl0c2VsZiBpbiB0aGUgcGVyLWRvY3VtZW50IGRpY3Rpb25hcnkKKyAg
ICAgICAgICAgIHJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7Cisg
ICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01Eb2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRUeXBlKj4obm9kZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Tk9UQVRJT05fTk9ERToKKyAg
ICAgICAgICAgIHJldCA9IG5ldyBHRE9NTm90YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihu
b2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9G
UkFHTUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Eb2N1bWVudEZyYWdtZW50
KHN0YXRpY19jYXN0PERvY3VtZW50RnJhZ21lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTUVudGl0eVJlZmVyZW5jZShzdGF0aWNfY2FzdDxFbnRpdHlSZWZlcmVu
Y2UqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NTm9kZShub2RlKTsKKyAgICB9CisKKyAgICByZXR1cm4gR0RP
TVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlLCByZXQp
OworfQorIAorZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQorewor
ICAgIGlmICghY29sbGVjdGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICov
CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmpl
Y3QoY29sbGVjdGlvbik7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisK
KwlHRE9NT2JqZWN0ICpyZXQ7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAg
ICAgICAgY2FzZSBIVE1MQ29sbGVjdGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25z
Q29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIDAKKyAg
ICAgICAgY2FzZSBIVE1MQ29sbGVjdGlvbjo6RG9jQWxsOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01IVE1MQWxsQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxl
Y3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxD
b2xsZWN0aW9uKj4oY29sbGVjdGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGNvbGxlY3Rpb24s
IHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQpCit7CisgICAgaWYgKCFl
dmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9pbnRl
ciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZXZlbnQpOworICAg
IGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3QgKnJldDsKKyAg
ICBpZiAoZXZlbnQtPmlzVUlFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNLZXlib2Fy
ZEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUtleWJvYXJkRXZlbnQoc3RhdGlj
X2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5p
c1RleHRFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0RXZlbnQoc3RhdGlj
X2Nhc3Q8VGV4dEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzTW91
c2VFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Nb3VzZUV2ZW50KHN0YXRpY19j
YXN0PE1vdXNlRXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNXaGVl
bEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVdoZWVsRXZlbnQoc3RhdGljX2Nh
c3Q8V2hlZWxFdmVudCo+KGV2ZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzU1ZHWm9vbUV2ZW50KCkpCisJCXsKKwkJCXJldHVybiBOVUxMOyAvKiBUT0RP
ICovCisgICAgICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHWm9vbUV2ZW50KHN0YXRpY19jYXN0
PFNWR1pvb21FdmVudCo+KGV2ZW50KSwgMCk7CisJCX0KKyNlbmRpZgorICAgICAgICBlbHNlCisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTVVJRXZlbnQoc3RhdGljX2Nhc3Q8VUlFdmVudCo+KGV2
ZW50KSk7CisgICAgfSBlbHNlIGlmIChldmVudC0+aXNNdXRhdGlvbkV2ZW50KCkpCisgICAgICAg
IHJldCA9IG5ldyBHRE9NTXV0YXRpb25FdmVudChzdGF0aWNfY2FzdDxNdXRhdGlvbkV2ZW50Kj4o
ZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNPdmVyZmxvd0V2ZW50KCkpCisgICAgICAg
IHJldCA9IG5ldyBHRE9NT3ZlcmZsb3dFdmVudChzdGF0aWNfY2FzdDxPdmVyZmxvd0V2ZW50Kj4o
ZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNNZXNzYWdlRXZlbnQoKSkKKyAgICAgICAg
cmV0ID0gbmV3IEdET01NZXNzYWdlRXZlbnQoc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZl
bnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNQcm9ncmVzc0V2ZW50KCkpIHsKKyAgICAgICAg
aWYgKGV2ZW50LT5pc1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpKQorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8WE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01Qcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFByb2dyZXNzRXZl
bnQqPihldmVudCkpOworICAgIH0KKyNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCisgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzU3RvcmFnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NU3RvcmFn
ZUV2ZW50KHN0YXRpY19jYXN0PFN0b3JhZ2VFdmVudCo+KGV2ZW50KSk7CisjZW5kaWYKKyAgICBl
bHNlIGlmIChldmVudC0+aXNXZWJLaXRBbmltYXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBu
ZXcgR0RPTVdlYktpdEFuaW1hdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdEFuaW1hdGlvbkV2
ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRUcmFuc2l0aW9uRXZl
bnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQoc3RhdGlj
X2Nhc3Q8V2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlCisgICAgICAg
IHJldCA9IG5ldyBHRE9NRXZlbnQoZXZlbnQpOworCisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6cHV0RE9NT2JqZWN0KGV2ZW50LCByZXQpOworfQorCisvKiBUT0RPIFhYWCBobW1t
Li4uIG5vdCBzbyBoYXBweSBhYm91dCB0aGlzIC0gc2hvdWxkIGJlICJuZXdseSBjcmVhdGVkIiAq
LworZ3BvaW50ZXIgdG9HRE9NKFRleHQqIHRleHQpCit7CisJaWYgKCF0ZXh0KQorCQlyZXR1cm4g
TlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0KTsKKwlpZiAoZ29iaikKKwkJ
cmV0dXJuIGdvYmo7CisKKwlHRE9NTm9kZSAqcmV0ID0gbmV3IEdET01UZXh0KHRleHQpOworCXJl
dHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5k
b2N1bWVudCgpLCB0ZXh0LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTUnVsZSogcnVs
ZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4u
LiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9N
T2JqZWN0KHJ1bGUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisJ
R0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7CisgICAgICAgIGNh
c2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5
bGVSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUNTU01lZGlhUnVsZShzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihydWxlKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpGT05UX0ZBQ0VfUlVM
RToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTRm9udEZhY2VSdWxlKHN0YXRpY19jYXN0
PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUGFn
ZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NQ1NTSW1wb3J0UnVsZShzdGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxlKj4ocnVsZSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Q0hBUlNFVF9SVUxF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NDaGFyc2V0UnVsZShzdGF0aWNfY2FzdDxD
U1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NW
YXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1ZhcmlhYmxlc1J1bGUqPihydWxlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NQ1NTUnVsZShydWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHJ1bGUsIHJldCk7CisgICAgcmV0dXJuIHJl
dDsKK30KKworLyogVE9ETzogc2hvdWxkIGJlIHRvR0RPTU5ld2x5Q3JlYXRlZCAqLworZ3BvaW50
ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAg
ICByZXR1cm4gTlVMTDsKKworICAgIC8vIHNob3VsZG4ndCBiZSBvbmU/IEFTU0VSVCghU2NyaXB0
SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChlbGVtZW50LT5kb2N1bWVudCgpLCBl
bGVtZW50KSk7CisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0
RE9NTm9kZUZvckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpOworCWlmIChn
b2JqKQorCQlyZXR1cm4gZ29iajsgLy8gaHVoPyBlcnIuLi4KKworCUdET01Ob2RlICpyZXQ7Cisg
ICAgRG9jdW1lbnQqIGRvYyA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisKKyAgICBpZiAoZWxlbWVu
dC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIo
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAg
ICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkKKwl7CisJCXJldHVybiBOVUxMOyAv
KiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nh
c3Q8U1ZHRWxlbWVudCo+KGVsZW1lbnQpKTsKKwl9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAg
IHJldCA9IG5ldyBHRE9NRWxlbWVudChlbGVtZW50KTsKKworICAgIHJldHVybiBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIGVsZW1lbnQsIHJldCk7Cit9
CisKK2dwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIGlmICgh
c3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4uLiAqLworCisgICAgZ3Bv
aW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHN0eWxlU2hl
ZXQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3Qg
KnJldDsKKyAgICBpZiAoc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJl
dCA9IG5ldyBHRE9NQ1NTU3R5bGVTaGVldChzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5
bGVTaGVldCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01TdHlsZVNoZWV0KHN0
eWxlU2hlZXQpOworCisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KHN0eWxlU2hlZXQsIHJldCk7Cit9CisKKy8qIGRlcml2ZWQgc291cmNlcyBhdXRvLWdlbmVy
YXRlZCAqLworZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBv
YmopOworCitncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIHRhcmdldCkKK3sKKyAgICBpZiAo
IXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgCisjaWYgMAorI2lmIEVOQUJMRShT
VkcpCisgICAgLy8gU1ZHRWxlbWVudEluc3RhbmNlIHN1cHBvcnRzIGJvdGggdG9TVkdFbGVtZW50
SW5zdGFuY2UgYW5kIHRvTm9kZSBzaW5jZSBzbyBtdWNoIG1vdXNlIGhhbmRsaW5nIGNvZGUgZGVw
ZW5kcyBvbiB0b05vZGUgcmV0dXJuaW5nIGEgdmFsaWQgbm9kZS4KKyAgICBTVkdFbGVtZW50SW5z
dGFuY2UqIGluc3RhbmNlID0gdGFyZ2V0LT50b1NWR0VsZW1lbnRJbnN0YW5jZSgpOworICAgIGlm
IChpbnN0YW5jZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShleGVjLCBpbnN0YW5jZSk7CisjZW5k
aWYKKyNlbmRpZgorCisgICAgTm9kZSogbm9kZSA9IHRhcmdldC0+dG9Ob2RlKCk7CisgICAgaWYg
KG5vZGUpCisgICAgICAgIHJldHVybiB0b0dET00obm9kZSk7CisgICAgCisgICAgaWYgKFhNTEh0
dHBSZXF1ZXN0KiB4aHIgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3QoKSkKKyAgICAgICAgLy8g
WE1MSHR0cFJlcXVlc3QgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5l
ZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHhocik7CisKKyAgICBpZiAoWE1MSHR0cFJlcXVl
c3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgpKQorICAg
ICAgICByZXR1cm4gdG9HRE9NKHVwbG9hZCk7CisgICAgCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKKyAgICBpZiAoRE9NQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSB0YXJn
ZXQtPnRvRE9NQXBwbGljYXRpb25DYWNoZSgpKQorICAgICAgICAvLyBET01BcHBsaWNhdGlvbkNh
Y2hlIGlzIGFsd2F5cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSBj
YWNoZURPTU9iamVjdCgpIGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OmdldERPTU9iamVjdChjYWNoZSk7CisjZW5kaWYKKworICAgIC8vIFRoZXJlIGFyZSB0d28g
a2luZHMgb2YgRXZlbnRUYXJnZXRzOiBFdmVudFRhcmdldE5vZGUgYW5kIFhNTEh0dHBSZXF1ZXN0
LgorICAgIC8vIElmIFNWRyBzdXBwb3J0IGlzIGVuYWJsZWQsIHRoZXJlIGlzIGFsc28gU1ZHRWxl
bWVudEluc3RhbmNlLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOVUxM
OworfSAgIAorCitncG9pbnRlciB0b0dET00oV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKiB0YXJn
ZXQpCit7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIAorICAg
IE5vZGUqIG5vZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICBy
ZXR1cm4gdG9HRE9NKG5vZGUpOworICAgIAorCXJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6RXZlbnRUYXJnZXQqPih0YXJnZXQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbURPTU9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxw
IFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMu
CisgKi8KKworI2lmbmRlZiBfX0dkb21ET01PYmplY3RfSF9fCisjZGVmaW5lIF9fR2RvbURPTU9i
amVjdF9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC9nZG9t
ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2Jq
ZWN0IEdkb21ET01PYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIEdk
b21ET01PYmplY3RDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAgICAgICAg
ICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNU
KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01f
VFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0KSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNU
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01f
VFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorI2RlZmluZSBHRE9NX0lTX0RP
TV9PQkpFQ1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1RfQ0xBU1Mo
a2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9P
QkpFQ1QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVf
SU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01P
YmplY3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSBHZG9t
RE9NT2JqZWN0UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0IHsKKyAgICBHT2JqZWN0
IHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21ET01PYmplY3RQcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRf
Y2xhc3M7Cit9OworCitXRUJLSVRfR0RPTV9BUEkgR1R5cGUKK2dkb21fZG9tX29iamVjdF9nZXRf
dHlwZSAodm9pZCk7CisKK1dFQktJVF9HRE9NX0FQSSB2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5p
dF9kb21fb2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0aGl6KTsKKworR19FTkRfREVDTFMKKworI2Vu
ZGlmIC8qIF9fR2RvbURPTU9iamVjdF9IX18gKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RP
TU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01PYmpl
Y3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfX0RPTU9iamVjdF9o
X18KKyNkZWZpbmUgX19ET01PYmplY3RfaF9fCisKKy8vIG5hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgR0RPTU9iamVjdCB7CitwdWJsaWM6CisJdmlydHVhbCB+R0RPTU9iamVjdCgpIHt9CisJ
dmlydHVhbCBpbnQgZ2V0X2dvYmpfdHlwZSgpID0gMDsKK307CisKKy8vIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21E
T01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21E
T01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2Rv
bURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTURPTU9i
amVjdF9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRE9NT2JqZWN0X0hfX19QUklWXworI2luY2x1
ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbURPTU9iamVjdC5oIgorR19CRUdJTl9E
RUNMUworCitjbGFzcyBHRE9NT2JqZWN0OworV0VCS0lUX0dET01fQVBJIEdET01PYmplY3QqCitn
ZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCk7CisKK1dF
QktJVF9HRE9NX0FQSSB2b2lkCitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR2RvbURPTU9i
amVjdCAqcmVxdWVzdCwgR0RPTU9iamVjdCogaXRlbSk7CisKK0dfRU5EX0RFQ0xTCisjZW5kaWYK
KwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
R0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8gTk9U
IEVESVQuCisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaWZuZGVmIEdET01IVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5X2gKKyNkZWZpbmUgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnlf
aAorCisjaW5jbHVkZSAiaW50Z2RvbU5vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEhUTUxFbGVtZW50OworCisgICAg
R0RPTU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7
CisKK30KKyAKKyNlbmRpZiAvLyBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTUV2ZW50VGFyZ2V0Tm9k
ZV9IX19fSU5UXworI2RlZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX0lOVF8KKyNpbmNs
dWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImludGdkb21Ob2RlLmgiCitHX0JFR0lOX0RF
Q0xTCisKK2NsYXNzIEdET01FdmVudFRhcmdldE5vZGUgOiBwdWJsaWMgR0RPTU5vZGUgeworCitw
dWJsaWM6CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZShQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+
IGltcGwpIDogR0RPTU5vZGUoaW1wbCkge30KKwlpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJu
IEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERTsgfQorfTsKKworCitHX0VORF9ERUNMUworI2Vu
ZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsODggQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVu
IChwb3J0ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAo
QykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpZm5kZWYgR2RvbURPTUJpbmRpbmdfaAorI2RlZmluZSBHZG9tRE9N
QmluZGluZ19oCisKKyNpbmNsdWRlIDxranMvaW50ZXJwcmV0ZXIuaD4KKyNpbmNsdWRlIDxranMv
bG9va3VwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRlICJnZG9t
Tm9kZS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJpbnRnZG9tTm9kZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBBdG9taWNTdHJpbmc7CisgICAg
Y2xhc3MgRG9jdW1lbnQ7CisgICAgY2xhc3MgRXZlbnQ7CisgICAgY2xhc3MgRnJhbWU7CisgICAg
Y2xhc3MgS1VSTDsKKyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIFN0cmluZzsKKworI2lmIEVO
QUJMRShTVkcpCisgICAgY2xhc3MgU1ZHRWxlbWVudDsKKyNlbmRpZgorCisgICAgY2xhc3MgR0RP
TVNjcmlwdEludGVycHJldGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyB2b2lkKiBn
ZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsKKyAgICAgICAgc3RhdGljIHZvaWQqIHB1
dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqKTsKKyAgICAgICAgc3Rh
dGljIHZvaWQgZm9yZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisKKyAgICAgICAg
c3RhdGljIHZvaWQqIGdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAg
ICAgICAgc3RhdGljIHZvaWQqIHB1dERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUq
LCBHRE9NTm9kZSogbm9kZVdyYXBwZXIpOworICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRET01O
b2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqLCBOb2RlKik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZv
cmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2lmIDAKKyAgICAgICAg
c3RhdGljIHZvaWQgdXBkYXRlRE9NTm9kZURvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogb2xkRG9j
LCBEb2N1bWVudCogbmV3RG9jKTsKKyAgICAgICAgc3RhdGljIHZvaWQgbWFya0RPTU5vZGVzRm9y
RG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2VuZGlmCisgICAgfTsKKworICAgIC8vIFJldHJpZXZl
IGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIgZm9yIGEgRE9NIG9iamVjdC4K
KyAgICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlubGluZSB2b2lk
KiBjYWNoZURPTU9iamVjdChET01PYmoqIGRvbU9iaikKKyAgICB7CisgICAgICAgIGlmICghZG9t
T2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisgICAgICAg
IGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb21P
YmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgR0RPTU9iamVjdCogcmV0ID0g
bmV3IEdkb21ET01PYmooZG9tT2JqKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6cHV0RE9NT2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisKKyNpZiBFTkFCTEUoU1ZH
KQorICAgIC8vIFJldHJpZXZlIGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIg
Zm9yIGFuIFNWRyBET00gb2JqZWN0LgorICAgIHRlbXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3Mg
R2RvbURPTU9iaj4gaW5saW5lIHZvaWQqIGNhY2hlU1ZHRE9NT2JqZWN0KERPTU9iaiogZG9tT2Jq
LCBTVkdFbGVtZW50KiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgaWYgKCFkb21PYmopCisgICAg
ICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKyAgICAgICAgaWYgKHZvaWQq
IHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvbU9iaikpCisgICAg
ICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBHRE9NT2JqZWN0KiByZXQgPSBuZXcgR2RvbURP
TU9iaihkb21PYmosIGNvbnRleHQpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01PYmplY3QoZG9tT2JqLCByZXQpOworICAgIH0KKyNlbmRpZgorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBHZG9tRE9NQmluZGluZ19oCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLwor
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDE2MjcgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisjIENvcHlyaWdodCAoQykgMjAwOCBBbHAg
VG9rZXIgPGFscEBhdG9rZXIuY29tPgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBh
aW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyMgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisKK3Bh
Y2thZ2UgQ29kZUdlbmVyYXRvckdPYmplY3Q7CisKKyMgRGVmYXVsdCBMaWNlbmNlIFRlbXBsYXRl
cworbXkgJGxpY2VuY2VUZW1wbGF0ZSA9IDw8ICJFT0YiOworLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsXEBsa2NsLm5ldD4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscFxAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KK0VPRgorCitteSAlaW1wbEluY2x1ZGVzID0gKCk7
CitteSAlaGRySW5jbHVkZXMgPSAoKTsKK215ICVoZHJQcm9wSW5jbHVkZXMgPSAoKTsKK215ICVp
bXBsVHlwZWRlZnMgPSAoKTsKKworIyBEZWZhdWx0IGNvbnN0cnVjdG9yCitzdWIgbmV3Cit7Cisg
ICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRyZWZlcmVuY2UgPSB7IH07CisKKyAgICAk
Y29kZUdlbmVyYXRvciA9IHNoaWZ0OworICAgICRvdXRwdXREaXIgPSBzaGlmdDsKKworICAgIGJs
ZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOworICAgIHJldHVybiAkcmVmZXJlbmNlOworfQorCitz
dWIgZmluaXNoCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworfQorCisjIFBhcmFtczogJ2Rv
bUNsYXNzJyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZUludGVyZmFjZQoreworICAgIG15ICRvYmplY3Qg
PSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkZGVmaW5lcyA9IHNo
aWZ0OworCisgICAgbXkgJG5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CisKKyAgICBwcmludCAiJG5h
bWVcbiI7CisKKyAgICAkb2JqZWN0LT5HZW5lcmF0ZSgkZGF0YU5vZGUpOworCisgICAgIyBXcml0
ZSBjaGFuZ2VzCisgICAgbXkgJGZuYW1lID0gImdkb21fIiAuICRuYW1lOyAjZGVjYW1lbGl6ZSgk
bmFtZSk7CisgICAgJGZuYW1lID1+IHMvXy8vZzsKKyAgICAkb2JqZWN0LT5Xcml0ZURhdGEoJGZu
YW1lKTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVudCcgc3RydWN0CitzdWIgR2VuZXJhdGVN
b2R1bGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hp
ZnQ7CisKKyAgICAkbW9kdWxlID0gJGRhdGFOb2RlLT5tb2R1bGU7Cit9CisKK3N1YiBDbHNUb0dP
YmpUeXBlCit7CisgICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OworICAgIHJldHVybiB1YyhkZWNh
bWVsaXplKCRjbGFzc05hbWUpKQorfQorCitzdWIgR2V0UGFyZW50Q2xhc3NOYW1lCit7CisgICAg
bXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdkb21E
T01PYmplY3QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiR2Rv
bSIgLiAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKTsK
K30KK3N1YiBHZXRQYXJlbnRHT2JqVHlwZQoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0Owor
CisgICAgIyA/PyBxdWU/PworICAgICNyZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TGVnYWN5UGFyZW50In07CisgICAgcmV0dXJuICJHRE9NX1RZUEVfRE9NX09CSkVDVCIgaWYgQHsk
ZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHRE9NX1RZUEVfIiAuIENsc1Rv
R09ialR5cGUoJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+cGFyZW50cygw
KSkpOworfQorCisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4w
MQorc3ViIGNhbWVsaXplCit7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICBqb2luKCcnLCBtYXB7
IHVjZmlyc3QgJF8gfSBzcGxpdCgvKD88PVtBLVphLXpdKV8oPz1bQS1aYS16XSl8XGIvLCAkcykp
OworfQorCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1
YiBkZWNhbWVsaXplCit7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICAkcyA9fiBzeyhbXmEtekEt
Wl0/KShbQS1aXSopKFtBLVpdKShbYS16XT8pfXsKKyAgICAgICAgbXkgJGZjID0gcG9zKCRzKT09
MDsKKyAgICAgICAgbXkgKCRwMCwkcDEsJHAyLCRwMykgPSAoJDEsbGMkMixsYyQzLCQ0KTsKKyAg
ICAgICAgbXkgJHQgPSAkcDAgfHwgJGZjID8gJHAwIDogJ18nOworICAgICAgICAkdCAuPSAkcDMg
PyAkcDEgPyAiJHtwMX1fJHAyJHAzIiA6ICIkcDIkcDMiIDogIiRwMSRwMiI7CisgICAgICAgICR0
OworICAgIH1nZTsKKyAgICAkczsKK30KKworc3ViIEdldEhkck5hbWUKK3sKKyAgICAgICAgbXkg
JG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJu
ICJnZG9tJG5hbWUiOworfQorCitzdWIgR2V0Q2xhc3NOYW1lCit7CisgICAgICAgIG15ICRuYW1l
ID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKKworICAgIHJldHVybiAiR2Rv
bSRuYW1lIjsKK30KKworc3ViIEdldEdJbmNsdWRlSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlm
dDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRIZHJOYW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRu
YW1lID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICIi
IGlmICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImxvbmci
OworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0dXJu
ICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJm
bG9hdCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAg
cmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0
IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOworICAgICAg
ICByZXR1cm4gIlJhbmdlLmgiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0
dXJuICJnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIGlmICR0eXBlIGVxICJET01PYmpl
Y3QiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGNoYXIiOworICAg
ICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBj
bGFzcyB3cmFwcGVyCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEg
IkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIiBpZiAk
dHlwZSBlcSAiRXZlbnRUYXJnZXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIg
aWYgJHR5cGUgZXEgImZsb2F0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJib29sZWFuIjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUuaCI7Cit9CisKKyMgcmV0dXJu
cyAxIGlmIHdlIG5lZWQgdG8gY3JlYXRlIGEgZ29iamVjdCB3cmFwcGVyIGFyb3VuZCB0aGUgcmV0
dXJuIHJlc3VsdAorc3ViIElzR0RPTUNsYXNzVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7
CisgICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJl
SG93IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJzaG9ydCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAg
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQg
aW50IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9
CisKK3N1YiBHZXRQcm9wR1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRu
YW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5nIiBpZiAkdHlw
ZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQi
OworICAgIHJldHVybiAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7
CisgICAgcmV0dXJuICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAi
Ym9vbGVhbiIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hhciIgaWYgJHR5
cGUgZXEgImNoYXIiOworICAgIHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAg
IHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAidWNoYXIiIGlm
ICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQiOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICByZXR1cm4gInVp
bnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWludDY0IiBpZiAk
dHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlw
ZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBzaG9ydCI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9y
IjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gIm9iamVjdCI7
Cit9CisKK3N1YiBHZXRHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15
ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1lID0gY2FtZWxp
emUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJn
ZXROb2RlICoiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisgICAgICAgIHJldHVybiAiY29u
c3QgZ2NoYXIgKiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiZ2Zs
b2F0ICIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpSYW5n
ZTo6Q29tcGFyZUhvdyAiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJu
ICJnZG91YmxlICIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAiZ2Jvb2xl
YW4gIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJldHVybiAiZ2NoYXIgIiBpZiAk
dHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAiZ2xvbmcgIiBpZiAkdHlwZSBlcSAibG9u
ZyI7CisgICAgICAgIHJldHVybiAiZ3Nob3J0ICIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAg
ICAgcmV0dXJuICJndWNoYXIgIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgICAgICByZXR1cm4g
Imd1aW50ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJnaW50ICIg
aWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiZ3VpbnQgIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgaW50IjsKKyAgICAgICAgcmV0dXJuICJndWxvbmcgIiBpZiAkdHlwZSBlcSAidW5z
aWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAiZ3VpbnQ2NCAiIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gImd1c2hvcnQgIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgIlJH
QkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAgcmV0dXJu
ICJ2b2lkIiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lICoiOworfQor
CitzdWIgZ2V0SW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRpbmNs
dWRlSGRyID0gR2V0R0luY2x1ZGVIZHIoJHR5cGUpOworICAgIGlmICgkaW5jbHVkZUhkcikgewor
ICAgICAgICBpZiAoJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgcmV0dXJu
ICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkdHlw
ZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3Bp
ZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgIHJldHVybiAiZ2RvbUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5oIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAk
aW5jbHVkZUhkcjsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBh
ZGRQcm9wSW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBn
ZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgICRoZHJQcm9w
SW5jbHVkZXN7JGhkcn0gPSAxOworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkg
eworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3sicHJpdiIuJGhkcn0gPSAxOworICAgICAg
ICAgICAgJGhkclByb3BJbmNsdWRlc3siaW50Ii4kaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9
CisKK30KKworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBt
eSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAg
ICAkaGRySW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0KKworfQorCitzdWIgYWRkSW5jQm9keQor
eworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBl
KTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0g
MTsKKyAgICB9Cit9CisKK3N1YiBHZXRQcml2Rm4KK3sKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9
IHNoaWZ0OworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSBzaGlmdDsKKyAgICBteSAkcmVzID0g
c2hpZnQ7CisgICAgbXkgJHBhcm0gPSBzaGlmdDsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6RXZlbnRUYXJnZXRO
b2RlICogJHJlcyA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoc2VsZikpOyI7CisgICAgfQorICAgIHJldHVy
biAiV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqICRyZXMgPSAoJHtsY2FzZV9pZmFjZW5hbWV9
X2dldF9wcml2YXRlKCRwYXJtKSk7IjsKK30KKworc3ViIHNraXBQcm9wVGVtcG9yYXJpbHkKK3sK
KyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRwcm9wX3R5cGUgPSBzaGlmdDsKKworICAg
ICMgc2tpcCBNZWRpYUxpc3QKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAic3R5bGVzaGVldHM6Ok1l
ZGlhTGlzdCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgI2lmICgkcHJvcF90
eXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAg
ICAjIHNraXAgQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAi
Q1NTVmFyaWFibGVzRGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlw
ZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9
CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9w
X3R5cGUgZXEgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJu
IDE7CisgICAgI30KKworICAgICMgc2tpcCBFdmVudExpc3RlbmVyCisgICAgaWYgKCRwcm9wX3R5
cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
ICMgc2tpcCBET01XaW5kb3cKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRE9NV2luZG93Iikgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAgQ29uc3RydWN0b3JzICh3aGF0
ZXZlciB0aGV5IGFyZSkgZm9yIG5vdy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29uc3RydWN0
b3IkLykgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIGNhbnZhczJkLi4uLgor
ICAgIGlmICgkcHJvcF90eXBlIGVxICJjdXN0b20iKSB7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KKworICAgIGlmICgkcHJvcF90eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBUT0RPOiBTVkcKKyAgICBpZiAoJGNvZGVHZW5l
cmF0b3ItPklzUG9kVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRU
eXBlKCR0eXBlKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9
CisKK3N1YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uCit7CisgICAgbXkgJHR5cGUgPSBz
aGlmdDsKKworICAgICMgc2tpcHBlZCBvdXQgQ2FudmFzUGl4ZWxBcnJheSAtIHNlZSBKU0NhbnZh
c1BpeGVsQXJyYXlDdXN0b20uY3BwIGZvciB3aHkuCisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEg
Ik5vZGUiIG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xsZWN0aW9u
IiBvciAkdHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3IgJHR5cGUgZXEgIlN0eWxlU2hlZXQiIG9yICR0
eXBlIGVxICJDU1NSdWxlIiBvciAkdHlwZSBlcSAiQ1NTVmFsdWUiIG9yICR0eXBlIGVxICJFdmVu
dCIgb3IgJHR5cGUgZXEgIkVsZW1lbnQiIG9yICR0eXBlIGVxICJUZXh0IjsKKyAgICByZXR1cm4g
MDsKK30KKworCisjIEdlbmVyYXRlIGhlYWRlciBhbmQgaW1wbAorc3ViIEdlbmVyYXRlCit7Cisg
ICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAg
bXkgJGhhc0xlZ2FjeVBhcmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikxl
Z2FjeVBhcmVudCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUtPnBhcmVu
dHN9ID4gMDsKKyAgICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVh
bFBhcmVudDsKKyAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRk
YXRhTm9kZSk7CisgICAgbXkgJHBhcmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUoJGRh
dGFOb2RlKTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBt
eSAkY2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkaGRy
TmFtZSA9IEdldEhkck5hbWUoJGludGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhlIGRlZmF1
bHQgaW1wbCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNl
bmNlVGVtcGxhdGUpOworICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNs
dWRlc3siR0RPTUJpbmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIkaGRyTmFtZS5o
In0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7InByaXYke2hkck5hbWV9LmgifSA9IDE7CisKKyAg
ICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01PYmplY3QiOworICAgIG15ICRwYXJlbnRH
SWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15ICRwYXJlbnRIZHJOYW1lID0gImdkb21E
T01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NOYW1lIG5lICJHT2JqZWN0IikKKyAgICB7
CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUs
IDQpOworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9iamVjdCIpIHsK
KyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigkcGFyZW50Q2xh
c3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRyTmFtZSgkcGFy
ZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7Cisg
ICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICAgICAgfQor
ICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAg
ICRpbXBsSW5jbHVkZXN7InByaXYke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICRo
ZHJJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1
ZGVzeyJwcml2JHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAwOworICAgIH0KKworICAgICMgVE9ETyAt
IG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAg
IyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9HRE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJO
b2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRWxlbWVudC5oIn0gPSAxOworICAgICRp
bXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVs
ZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7Cisg
ICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVz
eyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0gMTsK
KyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhlbEFycmF5LmgifSA9IDE7CisgICAgJGltcGxJ
bmNsdWRlc3siVGV4dC5oIn0gPSAxOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlv
bmFsIG9yIGluIGEgaGVhZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAk
aGFja0RlY2xzID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIg
dG9HRE9NKE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NWYWx1ZSogbm9kZSk7
CisgICAgZ3BvaW50ZXIgdG9HRE9NKENTU1J1bGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RP
TShFbGVtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIG5vZGUpOwor
ICAgIGdwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogbm9kZSk7IAorICAgIC8vZ3BvaW50
ZXIgdG9HRE9NKFNWR1BhdGhTZWcqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oU3R5bGVT
aGVldCogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUp
OyAKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIG5vZGUpOyAKKyAgICBncG9pbnRl
ciB0b0dET00oRXZlbnQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oQ2FudmFzUGl4ZWxB
cnJheSogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShUZXh0KiBub2RlKTsgCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKK0VPRgorCisgICAgcHVzaChAY0JvZHksICRoYWNrRGVjbHMpOwor
CisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVhZGVyIGZpbGUu
ICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAkc3RyaW5nQ29udmVydCA9IDw8ICJFT0Yi
OworY2xhc3MgR1N0cmluZ0NvbnZlcnQgeworICAgIHB1YmxpYzoKKyAgICBjb25zdCBnY2hhciAq
bV9zdHI7CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IG1f
c3RyID0gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdl
YkNvcmU6OktVUkwgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoY29uc3QgS0pTOjpVU3RyaW5nICYgcykg
eyBtX3N0ciA9IGdfc3RyZHVwKHMuVVRGOFN0cmluZygpLmNfc3RyKCkpOyB9CisgICAgR1N0cmlu
Z0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBnX3N0cmR1
cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9Cit9OworCitFT0YKKworICAgIHB1c2goQGNC
b2R5LCAkc3RyaW5nQ29udmVydCk7CisKKyAgICBwdXNoKEBjQm9keSwgIm5hbWVzcGFjZSBXZWJD
b3JlIHtcbiIpOworCisgICAgIyBHZXQgY29ycmVjdCBwYXNzL3N0b3JlIHR5cGVzIHJlc3BlY3Rp
bmcgUE9EVHlwZSBmbGFnCisgICAgbXkgJHBvZFR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJQT0RUeXBlIn07CisgICAgbXkgJHBhc3NUeXBlID0gJHBvZFR5cGUgPyAiSlNT
VkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIiA6ICIkaW50ZXJmYWNlTmFtZSoiOworCisgICAg
aWYgKCghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5l
cmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VO
YW1lKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAY0Jv
ZHksICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMsIEpTU1ZHUE9EVHlw
ZVdyYXBwZXI8JHBvZFR5cGU+KiBvYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAg
ICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NO
YW1lKSkgeworICAgICAgICAjICAgICBwdXNoKEBjQm9keSwgIktKUzo6SlNWYWx1ZSogdG9KUyhL
SlM6OkV4ZWNTdGF0ZSogZXhlYywgJHBhc3NUeXBlIG9iaiwgU1ZHRWxlbWVudCogY29udGV4dClc
biIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiZ3BvaW50
ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNzVHlwZSBvYmopXG4iKTsKKyAgICAgICAgI30KKworICAg
ICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAg
ICAgICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2JqZWN0PEpTU1ZH
UE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+LCAkY2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5
cGU+KGV4ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlw
ZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAg
IHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBjYWNoZVNWR0RPTU9iamVjdDwkaW1wbENsYXNzTmFt
ZSwgJGNsYXNzTmFtZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQp
O1xuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
cmV0dXJuIFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lLCBH
RE9NJGludGVyZmFjZU5hbWU+KG9iaik7XG4iKTsKKyAgICAgICAgI30KKyAgICAgICAgcHVzaChA
Y0JvZHksICJ9XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogbmFtZXNwYWNl
IFdlYkNvcmUgKi8gXG4iKTsKKyAgICBteSAkaW1wbENvbnRlbnQgPSAiIjsKKworICAgICMgWFhY
IFRPRE8gcHVzaChAY0JvZHksICJ1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTtcblxuIik7CisgICAg
cHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xuXG4iKTsKKyAgICBwdXNoKEBjQm9keSwgIiNk
ZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cilcbiIpOwor
CisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCisgICAgQGhQcmVmaXggPSBz
cGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICAgICAgI3B1c2goQGhQcmVmaXgsICJc
biIpOworCisgICAgIyBIZWFkZXIgZ3VhcmQKKyAgICAgICAgbXkgJGd1YXJkID0gIl9fIiAuICRj
bGFzc05hbWUgLiAiX0hfXyI7CisKKyAgICBteSAkY2xzQ2FwcyA9IHN1YnN0cihDbHNUb0dPYmpU
eXBlKCRjbGFzc05hbWUpLCA1KTsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gImdkb21fIiAu
IGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpOworICAgICNteSAkcGFyZW50Q2xzQ2FwcyA9ICJH
RE9NXyIgLiBDbHNUb0dPYmpUeXBlKCRwYXJlbnRJbnRlcmZhY2VOYW1lKTsKKworICAgIEBoUHJl
Zml4R3VhcmQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJGd1YXJkCisjZGVmaW5lICRndWFyZAorRU9G
CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5fREVDTFMKKworRU9GCisK
KyAgICBwdXNoKEBoQm9keVByZSwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9
IDw8ICJFT0YiOworCisjZGVmaW5lIEdET01fVFlQRV8ke2Nsc0NhcHN9ICAgICAgICAgICAgKCR7
bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc30ob2Jq
KSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBF
XyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVf
JHtjbHNDYXBzfSwgJGNsYXNzTmFtZSlDbGFzcykKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9
KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQ
RV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAo
R19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkK
KyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNF
X0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1DbGFz
cykpCisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlICR7Y2xhc3NOYW1lfVBy
aXZhdGU7CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICAke3BhcmVudENsYXNzTmFtZX0g
cGFyZW50X2luc3RhbmNlOworCisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisK
K3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xh
c3M7Cit9OworCitXRUJLSVRfR0RPTV9BUEkgR1R5cGUKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRf
dHlwZSAodm9pZCk7CisKK0VPRgorCisgICAgcHVzaChAaEJvZHksICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJHtndWFyZH1fUFJPUF8KKyNk
ZWZpbmUgJHtndWFyZH1fUFJPUF8KK0VPRgorCisgICAgcHVzaChAaEJvZHlQcm9wUHJlLCAkaW1w
bENvbnRlbnQpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19CRUdJTl9ERUNMU1xuIik7CisK
KyAgICAkaGRyUHJvcEluY2x1ZGV7ImdsaWItb2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJ
bmNsdWRleyJpbnQke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgJGhkclByb3BJbmNsdWRl
eyJHRE9NT2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJbmNsdWRleyIke2ludGVyZmFjZU5h
bWV9LmgifSA9IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJHtn
dWFyZH1fSU5UXworI2RlZmluZSAke2d1YXJkfV9JTlRfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3Qu
aCIKKyNpbmNsdWRlICJpbnQke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVj
dC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAgICBpZiAoKCEkaGFzUGFyZW50IG9yICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNN
YW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRv
R0RPTSgke2ludGVyZmFjZU5hbWV9KiBub2RlKTsKK30gLyogbmFtZXNwYWNlIFdlYkNvcmUgKi8g
CitFT0YKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworICAgIH0KKyAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiR19CRUdJTl9ERUNMU1xuIik7CisKKyAgICAjQ2xhc3Mg
ZGVjbGFyYXRpb24KKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAg
ICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgImNsYXNzIEdET00kaW50ZXJmYWNlTmFtZSB7XG4i
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiY2xhc3MgR0RP
TSRpbnRlcmZhY2VOYW1lIDogcHVibGljICRwYXJlbnRHSWZhY2VOYW1lIHtcbiIpOworICAgICAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHR5cGVkZWYgJHBhcmVudEdJZmFjZU5hbWUgQmFz
ZTtcbiIpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHVibGljOlxuIik7CisK
KyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRfZ29ial90eXBlKCkgeyByZXR1
cm4gR0RPTV9UWVBFXyR7Y2xzQ2Fwc307IH1cbiIpOworCisgICAgbXkgJG5lZWRzU1ZHQ29udGV4
dCA9IDA7CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
R0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+IGlt
cGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6ICIiKSAu
ICIpO1xuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
ICAgIHZpcnR1YWwgfkdET00kaW50ZXJmYWNlTmFtZSgpO1xuIikgaWYgKCEkaGFzUGFyZW50IG9y
ICRpbnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpOworCisgICAgaWYgKCEkaGFzUGFyZW50IHx8
ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgI2lmICgkcG9kVHlw
ZSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgSlNTVkdQT0RUeXBl
V3JhcHBlcjwkcG9kVHlwZT4qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1c
biIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxlbWVudCog
Y29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKKyAgICAg
ICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAjICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dDtc
biIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPEpTU1ZH
UE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+ID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2lm
IChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAg
ICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBs
KCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRl
cm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
ICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+IG1faW1wbDtcbiIp
OworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIg
ICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwu
Z2V0KCk7IH1cblxuIik7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0
ZTpcbiIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8V2Vi
Q29yZTo6JGludGVyZmFjZU5hbWU+IG1faW1wbDtcbiIpOworICAgICAgICAjfQorICAgIH0gZWxz
aWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29udmVy
dGVyIn0pIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50
ZXJmYWNlTmFtZSogaW1wbCgpIGNvbnN0XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICB7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKj4oQmFzZTo6aW1wbCgpKTtc
biIpOworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIH1cbiIpOworICAgIH0KKyAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAifTtcbiIpOworCisgICAgIyBDb25zdHJ1Y3RvcgorICAg
IHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06OkdET00kaW50ZXJmYWNlTmFtZShQ
YXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250
ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKVxuIik7CisgICAgaWYgKCRp
bnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IDptX2ltcGwoaW1wbClcbiIpOworICAgIH0gZWxzaWYgKCRoYXNQYXJlbnQpIHsKKyAgICAgICAg
cHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZShpbXBsIiAuICgkcGFyZW50TmVl
ZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIikgaWYgKCRpbnRlcmZhY2VO
YW1lIG5lICJET01XaW5kb3ciKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICA6ICRwYXJlbnRHSWZhY2VOYW1lKClcbiIpIDsKKyAgICAgICAgcHVzaChAY0JvZHksICIg
ICAgLCBtX2NvbnRleHQoY29udGV4dClcbiIpIGlmICRuZWVkc1NWR0NvbnRleHQ7CisgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsKKyAgICB9CisKKyAgICBwdXNo
KEBjQm9keSwgIntcbiIpOworICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKworICAgICMgRGVz
dHJ1Y3RvcgorICAgIGlmICghJGhhc1BhcmVudCkgeworICAgICAgICBwdXNoKEBjQm9keSwgIkdE
T00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOworICAgICAgICBw
dXNoKEBjQm9keSwgIntcbiIpOworCisgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9k
ZSIpIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG1faW1wbC0+ZG9jdW1lbnQoKSwg
bV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgI2lmICgk
cG9kVHlwZSkgeworICAgICAgICAgICAgIyAgICBteSAkYW5pbWF0ZWRUeXBlID0gJGltcGxDbGFz
c05hbWU7CisgICAgICAgICAgICAjICAgICRhbmltYXRlZFR5cGUgPX4gcy9TVkcvU1ZHQW5pbWF0
ZWQvOworCisgICAgICAgICAgICAjICAgICMgU3BlY2lhbCBjYXNlIGZvciBKU1NWR051bWJlcgor
ICAgICAgICAgICAgIyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRh
bmltYXRlZFR5cGUpIGFuZCAkcG9kVHlwZSBuZSAiZmxvYXQiKSB7CisgICAgICAgICAgICAjICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBKU1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRw
b2RUeXBlLCAkYW5pbWF0ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlcihtX2ltcGwuZ2V0KCkpO1xuIik7
CisgICAgICAgICAgICAjICAgIH0KKyAgICAgICAgICAgICN9CisgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVj
dChtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEBjQm9keSwg
IlxufVxuXG4iKTsKKyAgICB9CisKKyAgICAjIERvY3VtZW50IG5lZWRzIGEgc3BlY2lhbCBkZXN0
cnVjdG9yIGJlY2F1c2UgaXQncyBhIHNwZWNpYWwgY2FzZSBmb3IgY2FjaGluZy4gSXQgbmVlZHMK
KyAgICAjIGl0cyBvd24gc3BlY2lhbCBoYW5kbGluZyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRo
ZSBjYWNoaW5nIHRoYXQgTm9kZSBub3JtYWxseSBkb2VzLgorICAgIGlmICgkaW50ZXJmYWNlTmFt
ZSBlcSAiRG9jdW1lbnQiKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNl
TmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAi
e1xuICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHN0
YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihpbXBsKCkpKTtcbn1cblxuIik7
CisgICAgfQorCisgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOwor
ICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbElu
Y2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NO
YW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOwor
CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD4KKyNp
bmNsdWRlICJET01XaW5kb3cuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAq
LworI2luY2x1ZGUgIk5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAq
LworI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9w
dGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5oIiAvKiB5dWtrOiBUT0RPIC0gbWFr
ZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzR3JhZGllbnQuaCIgLyogeXVrazog
VE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1N0eWxlLmgiIC8q
IHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLwor
I2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMg
b3B0aW9uYWwgKi8KKyNpbmNsdWRlICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiIC8qIHl1a2s6IFRP
RE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJwcml2Z2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsIG9uIEV2ZW50VGFyZ2V0
Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCisjaW5jbHVkZSAiJHtoZHJOYW1lfS5o
IgorI2luY2x1ZGUgInByaXYke2hkck5hbWV9LmgiCisjaW5jbHVkZSAiaW50JHtoZHJOYW1lfS5o
IgorI2luY2x1ZGUgIiR7aGRyTmFtZX1wcm9wcy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2lu
Y2x1ZGUgInVzdHJpbmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisKKyNpbmNsdWRlICJDYW52YXNQ
aXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5j
bHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiSFRNTENv
bGxlY3Rpb24uaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAk
aW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworJHtoYWNrRGVjbHN9CisKK0dfQkVHSU5fREVDTFMK
KworJHtzdHJpbmdDb252ZXJ0fQorCitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHtsY2Fz
ZV9pZmFjZW5hbWV9LCAke3BhcmVudEdPYmpUeXBlfSk7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgo
c3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cikKKworLyoKK3N0cnVjdCBfJHtjbGFzc05h
bWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqaXRlbTsK
K307ICAKKworI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBF
X0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFz
c05hbWV9UHJpdmF0ZSkpCisqLworR19FTkRfREVDTFMKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVz
dCkKK3sKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
aWYgKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLworRU9G
CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisgICAgR0RP
TSR7aW50ZXJmYWNlTmFtZX0gKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NJHtpbnRl
cmZhY2VOYW1lfSo+KGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1Qo
cmVxdWVzdCkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfSo+KHJlcy0+aW1wbCgpKTsKK0VPRgorICAgIH0KKyAgICBwdXNoKEBjQm9keVByaXYsICRp
bXBsQ29udGVudCk7CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1lUHJl
Zml4ID0gJGxjYXNlX2lmYWNlbmFtZTsgCisgICAgU0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0dHJp
YnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wTmFtZSA9
IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgbXkgJHBy
b3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUg
PSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFz
c05hbWUgKnRoaXoiOworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7Cisg
ICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAk
dHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisKKyAgICAgICAgaWYgKHNraXBQcm9wVGVt
cG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9Q
OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgYWRkUHJvcEluY0hkcigkcHJvcF90
eXBlKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0dET01fQVBJICR0eXBl
XG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJvcF9nZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5j
dGlvblNpZyk7XG5cbiIpOworCisgICAgICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfR0RP
TV9BUEkgdm9pZFxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3Bfc2V0XyIgLiAiJHByb3BO
YW1lICgkZnVuY3Rpb25TaWcsICR0eXBlIiAuICJ2YWx1ZSk7XG5cbiIpOworICAgIH0KKworICAg
ICMgUHJvcGVydGllcworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworfQorCitHX0JFR0lO
X0RFQ0xTCisKK2VudW0geworICAgIFBST1BfMCwKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwg
JGltcGxDb250ZW50KTsKKworICAgIG15IEB0eHRfaW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15
IEB0eHRfc2V0X3Byb3BzID0gKCk7CisgICAgbXkgQHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAg
IG15ICRwcml2X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNlX2lmYWNlbmFt
ZX0sICJnc2VsZiIsICJzZWxmIik7CisKKyAgICBteSAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7
CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0eV9mbihHT2JqZWN0
ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorCQkJCQkgR1ZhbHVlICogdmFsdWUsCisJCQkJCSBH
UGFyYW1TcGVjICogcHNwZWMpCit7CisJJHtjbGFzc05hbWV9ICpzZWxmID0gR0RPTV8ke2Nsc0Nh
cHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKwlzd2l0Y2ggKHByb3BfaWQpIHsKK0VPRgorICAg
IHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRf
cHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJv
cGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKwkJCQkJIGNvbnN0IEdW
YWx1ZSAqIHZhbHVlLAorCQkJCQkgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworCSR7Y2xhc3NOYW1l
fSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisJc3dpdGNo
IChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9w
KTsKKworICAgIFNLSVBFTlVNOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5h
dHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJvcF9uYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5uYW1lOworICAgICAgICBteSAkc2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3It
PldLX3VjZmlyc3QoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRnZXRwcm9wX25hbWVfZm4gPSAk
Y29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkcHJvcF9uYW1lKTsKKworICAgICAgICBteSAkcHJv
cE5hbWUgPSBkZWNhbWVsaXplKCRwcm9wX25hbWUpOworICAgICAgICBteSAkcHJvcENhcHMgPSB1
YygkcHJvcE5hbWUpOworICAgICAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT50eXBlOworICAgICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUpOworICAg
ICAgICBteSAke3Byb3BFbnVtfSA9ICJQUk9QXyR7cHJvcENhcHN9IjsKKyAgICAgICAgbXkgJHtw
cm9wX2d0eXBlfSA9IGRlY2FtZWxpemUoJHByb3BfdHlwZSk7CisgICAgICAgIGlmICgkcHJvcF9n
dHlwZSBlcSAiZXZlbnRfdGFyZ2V0IikgeworICAgICAgICAgICAgJHByb3BfZ3R5cGUgPSAiZXZl
bnRfdGFyZ2V0X25vZGUiOworICAgICAgICB9CisgICAgICAgIG15ICR7cHJvcEdUeXBlfSA9IHVj
KCRwcm9wX2d0eXBlKTsKKyAgICAgICAgbXkgJGxjYXNlX2d0eXBlbmFtZSA9ICJnZG9tXyIgLiAk
cHJvcF9ndHlwZTsKKworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7Cisg
ICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAk
dHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisgICAgICAgIGlmIChza2lwUHJvcFRlbXBv
cmFyaWx5KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsK
KyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgIiAgICAk
e3Byb3BFbnVtfSxcbiIpOworCisgICAgICAgIG15ICRndHlwZSA9IEdldFByb3BHVHlwZSgkcHJv
cF90eXBlKTsKKyAgICAgICAgbXkgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEQUJMRSI7Cisg
ICAgICAgIG15ICR3cml0ZWFibGUgPSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkvOwor
ICAgICAgICBteSAkY29uc3QgPSAicmVhZC1vbmx5ICI7CisgICAgICAgIGlmICgkd3JpdGVhYmxl
ICYmICRjdXN0b20pIHsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLW9ubHkgKGR1ZSB0byBj
dXN0b20gZnVuY3Rpb25zIG5lZWRlZCBpbiBnZG9td2Via2l0KSI7CisgICAgICAgICAgICBuZXh0
IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICEkY3VzdG9t
KSB7CisgICAgICAgICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURXUklURSI7CisgICAg
ICAgICAgICAkY29uc3QgPSAicmVhZC13cml0ZSAiOworICAgICAgICB9CisKKyAgICAgICAgbXkg
JF9ndHlwZSA9ICRndHlwZTsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAg
ICAgICAgICAgJF9ndHlwZSA9ICJ1aW50IjsgIyB5dWsuCisgICAgICAgIH0KKyAgICAgICAgbXkg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwlnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5IChnX2tsYXNzLCAke3Byb3BFbnVtfSwgCisJCQlnX3BhcmFtX3NwZWNfJHtfZ3R5cGV9
ICgiJHtwcm9wTmFtZX0iLCAvKiBuYW1lICovCisJCQkJIiR7aW50ZXJmYWNlTmFtZX0uJHtwcm9w
TmFtZX0iLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworCQkJCSIke2NvbnN0fSAke3R5cGV9ICR7
aW50ZXJmYWNlTmFtZX0uJHtwcm9wTmFtZX0iLCAvKiBsb25nZXIgKi8KK0VPRgorICAgICAgICBw
dXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworICAgICAgICAkdHh0
X2luc3RhbGxfcHJvcCA9ICIvKiBUT0RPISAkZ3R5cGUgKi9cbiI7CisKKyAgICAgICAgaWYgKCR3
cml0ZWFibGUpIHsKKworICAgICAgICAgICAgbXkgJG9rID0gMDsKKyAgICAgICAgICAgIG15ICRj
b252ZXJ0X2ZuID0gIiI7CisgICAgICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7Cisg
ICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiV2ViQ29yZTo6U3RyaW5nIjsKKyAgICAgICAg
ICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzaWYgKCRndHlw
ZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBu
ZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBp
ZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0Iikg
eworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAi
RE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVh
IHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsK
KyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVx
ICJ1bG9uZyIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9N
V2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdo
YXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxvbmciKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBU
T0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0
CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgICAgICRvayA9
IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAg
ICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIp
IHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBl
IGVxICJjaGFyIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAjIFhYWCBUT0RPIC0gc2tpcCBMb2NhdGlvbgorICAgICAgICAgICAgaWYgKCRp
bnRlcmZhY2VOYW1lIGVxICJMb2NhdGlvbiIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAwOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoJG9rKSB7CisgICAgICAgICAgICAgICAg
cHVzaChAdHh0X3NldF9wcm9wcywgIiAgICBjYXNlICR7cHJvcEVudW19OlxuICAgIHtcbiIpOwor
ICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25z
fTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBnc2VsZi0+
c2V0JHtzZXRwcm9wX25hbWVfZm59KCR7Y29udmVydF9mbn0oZ192YWx1ZV9nZXRfJGd0eXBlICh2
YWx1ZSkpIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiLCBlYyIp
IGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVz
aChAdHh0X3NldF9wcm9wcywgIik7XG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9z
ZXRfcHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICBjYXNlICR7cHJvcEVu
dW19OlxuICAgIHtcbiIpOworCisgICAgICAgIG15ICRleGNlcHRpb24gPSAiIjsKKyAgICAgICAg
aWYgKEB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICRleGNl
cHRpb24gPSAiZWMiOworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAg
IG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRwb3N0X2NvbnZlcnRfZm4gPSAiIjsK
KyAgICAgICAgbXkgJGRvbmUgPSAwOworICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7
CisgICAgICAgICAgICAkY29udmVydF9mbiA9ICJfR19HRVRfVVRGOCgiOworICAgICAgICAgICAg
JHBvc3RfY29udmVydF9mbiA9ICIpIjsKKyAgICAgICAgfQorICAgICAgICBlbHNpZiAoJGd0eXBl
IGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAiV1RGOjpnZXRQdHIo
JHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKCI7CisgICAgICAgICAgICAjJGNvbnZlcnRf
Zm4gPSBHZXRQcml2Rm4oJGludGVyZmFjZU5hbWUsICR7bGNhc2VfZ3R5cGVuYW1lfSwgImdzZWxm
IiwgInNlbGYiKTsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9ICIke2xjYXNlX2d0eXBlbmFt
ZX1fZ2V0X3ByaXZhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+KCI7CisgICAg
ICAgICAgICAjJHBvc3RfY29udmVydF9mbiA9ICIpIjsKKyAgICAgICAgICAgIG15ICRkb21vYmpU
eXBlID0gIkdET00iLiRwcm9wX3R5cGU7CisgICAgICAgICAgICAkdHh0X2dldF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PiBwdHIgPSBn
c2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSk7CisgICAgICAgIGdfdmFsdWVf
c2V0X29iamVjdCAodmFsdWUsIFdlYkNvcmU6OnRvR0RPTShwdHIuZ2V0KCkpKTsKK0VPRgorICAg
ICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisgICAgICAgICAg
ICAkZG9uZSA9IDE7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRkb25lKSB7CisgICAgICAg
ICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF8kX2d0eXBlICh2
YWx1ZSwgJHtjb252ZXJ0X2ZufWdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259
KSR7cG9zdF9jb252ZXJ0X2ZufSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4
dF9nZXRfcHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworCisgICAgICAgICMgaXMg
dGhpcyBfZW50aXJlbHlfIG5lY2Vzc2FyeT8/PworICAgICAgICAjIGNhbiBpdCBiZSBkb25lIHdp
dGggZ2VuZXJpYyBnX3BhcmFtX3NwZWNfZ3R5cGUKKyAgICAgICAgIyBhbmQgZ2V0dGluZyBhIGZl
dyB0aGluZ3MsIGlnbm9yaW5nIHRoZSBtaW4tbWF4IGZvciBleGFtcGxlPworICAgICAgICBpZiAo
JGd0eXBlIGVxICJpbnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJF
T0YiOworCQkJCUdfTUlOSU5ULCAgICAgICAgLyogbWluICovCisJCQkJR19NQVhJTlQsIC8qIG1h
eCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAo
JGd0eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8
PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBGQUxTRSwgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCUdfTUlORkxPQVQsICAgICAgICAvKiBtaW4gKi8KKwkJ
CQlHX01BWEZMT0FULCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHX01JTkRPVUJMRSwgICAgICAgIC8qIG1p
biAqLworCQkJCUdfTUFYRE9VQkxFLCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWlu
ICovCisJCQkJR19NQVhVSU5UNjQsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0
ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAg
ICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAq
LworCQkJCUdfTUFYVUxPTkcsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICov
CitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHX01JTkxPTkcsICAgICAgICAvKiBt
aW4gKi8KKwkJCQlHX01BWExPTkcsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0
ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWluICov
CisJCQkJR19NQVhVSU5ULCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLwor
RU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWluICovCisJ
CQkJR19NQVhVSU5UMTYsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJR19NSU5JTlQ4LCAgICAgICAgLyogbWlu
ICovCisJCQkJR19NQVhJTlQ4LCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAqLwor
CQkJCUdfTUFYVUlOVDgsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgICIiLCAvKiBkZWZh
dWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAg
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCUdET01fVFlQRV8ke3By
b3BHVHlwZX0sIC8qIGdvYmplY3QgdHlwZSAqLworRU9GCisgICAgICAgIH0KKyAgICAgICAgcHVz
aChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkoR1BhcmFtRmxhZ3MpJHtncGFyYW1mbGFnfSkp
OyAgICAgICAgICAgICAgICAgICAKKworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3By
b3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisKKworICAgIH0KKworICAgIHB1c2goQGNCb2R5UHJp
diwgIn07XG5cbiIpOworCisKKyAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CisJZGVmYXVs
dDoKKwkJR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOworCQlicmVhazsKKwl9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAk
dHh0X2dldF9wcm9wKTsKKworICAgICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9GIjsKKwlkZWZhdWx0
OgorCQlHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBw
c3BlYyk7CisJCWJyZWFrOworCX0KK30KK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0
eHRfc2V0X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRfZ2V0X3Byb3BzID0gPDwgIkVPRiI7CisJ
Y2FzZSBQUk9QX0FHRToKKwkJc2VsZi0+YWdlID0gZ192YWx1ZV9nZXRfaW50ICh2YWx1ZSk7CisJ
CWJyZWFrOworCisJY2FzZSBQUk9QX0FHRToKKwkJZ192YWx1ZV9zZXRfaW50KHZhbHVlLCBzZWxm
LT5hZ2UpOworCQlicmVhazsKKworICAgICAgICArICAgZ192YWx1ZV9pbml0KCZwYXJhbXNbMF0s
IEdfVFlQRV9GUk9NX0lOU1RBTkNFKG9iamVjdCkpOworICAgICAgICArICAgZ192YWx1ZV9zZXRf
aW5zdGFuY2UoJnBhcmFtc1swXSwgKGdwb2ludGVyKW9iamVjdCk7CisKK0VPRgorCisKKyAgICAk
aW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9
X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfSogcmVxdWVz
dCA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOyovCisgICAgLyoke2NsYXNzTmFtZX1Qcml2YXRl
KiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworICAgIAorICAgIC8qR09iamVjdENsYXNzICpwYXJl
bnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVlayAoZ190eXBlX3BlZWtfcGFyZW50ICgke3BhcmVu
dEdPYmpUeXBlfSkpOyovCisKKyAgICAvKiBGcmVlIGFueSBtZW1vcnkgb3IgY2xvc2UgYW55IGZp
bGVzICovIAorCisgICAgLypwYXJlbnRfY2xhc3MtPiBmaW5hbGl6ZSAob2JqZWN0KTsqLworCisg
ICAgR19PQkpFQ1RfQ0xBU1MoJHtsY2FzZV9pZmFjZW5hbWV9X3BhcmVudF9jbGFzcyktPmZpbmFs
aXplKG9iamVjdCk7Cit9CisKK0B0eHRfc2V0X3Byb3BzCisKK0B0eHRfZ2V0X3Byb3BzCisKK3N0
YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9jbGFzc19pbml0KCR7Y2xhc3NOYW1lfUNsYXNz
KiByZXF1ZXN0Q2xhc3MpCit7CisJR09iamVjdENsYXNzICpnX2tsYXNzID0gR19PQkpFQ1RfQ0xB
U1MgKHJlcXVlc3RDbGFzcyk7CisgICAgZ19rbGFzcy0+ZmluYWxpemUgPSAke2xjYXNlX2lmYWNl
bmFtZX1fZmluYWxpemU7CisJZ19rbGFzcy0+c2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5h
bWV9X19zZXRfcHJvcGVydHlfZm47CisJZ19rbGFzcy0+Z2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9p
ZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm47CisgICAgCisgICAgQHR4dF9pbnN0YWxsX3Byb3Bz
CisKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZigk
e2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5h
bWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0KQoreworICAgIC8qJHtjbGFzc05hbWV9UHJp
dmF0ZSogcHJpdiA9IEdET01fJHtjbHNDYXBzfV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBy
ZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfSAgIAorCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJp
diwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsSW5jbHVkZXN7ImludGdkb20ke2ludGVyZmFj
ZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNpZm5kZWYg
JHtndWFyZH1fUFJJVl8KKyNkZWZpbmUgJHtndWFyZH1fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorI2luY2x1ZGUgIiR7cGFyZW50SGRyTmFtZX0uaCIKKyNpbmNsdWRlICJHRE9NT2Jq
ZWN0LmgiCisvKiNpbmNsdWRlICJwcml2JHtwYXJlbnRIZHJOYW1lfS5oIiovCisvKkdfQkVHSU5f
REVDTFMqLworLypjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9OyovCisjaW5jbHVkZSAi
JHtpbnRlcmZhY2VOYW1lfS5oIgorRU9GCisKKyAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29u
dGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBHRE9NJHtpbnRlcmZhY2VOYW1lfSA6IHB1YmxpYyAke3BhcmVudEdJZmFj
ZU5hbWV9IHsKKworcHVibGljOgorICAgIEdET00ke2ludGVyZmFjZU5hbWV9KFdlYkNvcmU6OiR7
aW50ZXJmYWNlTmFtZX0qIGltcGwpIDogJHBhcmVudEdJZmFjZU5hbWV9KGltcGwpCisgICAgeyBp
bXBsLT5yZWYoKTsgfQorICAgIH5HRE9NJHtpbnRlcmZhY2VOYW1lfSgpIHsgbV9pbXBsLT5kZXJl
ZigpOyB9CisKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBpbXBsKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbXBsOyB9CisKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5h
bWV9ICptX2ltcGw7Cit9OworCitFT0YKKworICAgICAgICAjcHVzaChAaEJvZHlQcml2LCAkaW1w
bENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSAke2NsYXNzTmFtZX07
CisKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9w
cml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCk7CisKKy8qR19FTkRfREVDTFMqLworCisjZW5k
aWYgLyogJHtndWFyZH1fUFJJVl8gKi8KKworRU9GCisKKyAgICAjcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KChXZWJDb3JlOjpOb2RlKikocmVzKSk7
CisgICAgICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICAgICAjaWYg
KCRwYXJhbUlETFR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICMgWFhYID8/Pz8g
d3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICMgICAgJGltcGxJbmNs
dWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgI30gZWxz
ZSB7CisgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3skaW5jbHVkZUhkcn0gPSAxOworICAgICAg
ICAjfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7Cisg
ICAgICAgICRpbXBsSW5jbHVkZXN7InByaXZnZG9tRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAg
ICAgTE9PUDogZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7
CisgICAgICAgICAgICAjbXkgJGZ1bmN0aW9uTmFtZSA9IGRlY2FtZWxpemUoJGNsYXNzTmFtZSkg
LiAiXyIgLiBkZWNhbWVsaXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAg
ICAgICAgICBteSAkZm5fc2lnX25hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKyAg
ICAgICAgICAgICAgICBteSAkZm5fc2lnX3R5cGUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZTsKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gImdkb21fIiAuIGRlY2FtZWxp
emUoJGludGVyZmFjZU5hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25hbWUpOworICAg
ICAgICAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKyAg
ICAgICAgICAgICAgICBteSAkcmV0X2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRmbl9z
aWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSAiJGNsYXNzTmFt
ZSAqdGhpeiI7CisKKyAgICAgICAgICAgICAgICBteSAkY2FsbF9pbXBsX3BhcmFtcyA9ICIiOwor
ICAgICAgICAgICAgICAgIG15ICRnZG9tX2ZuX3ByZWZpeCA9ICJnZG9tXyIgLiBkZWNhbWVsaXpl
KCRmbl9zaWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X3Byb3BlcnR5IikgeworICAgICAgICAgICAg
ICAgICAgICAjIHJlc2VydmVkIG5hbWUgY2xhc2ggaW4gZ2xpYiEKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfY3NzX3By
b3BlcnR5IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBD
b21wYXJlSG93IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlv
bk5hbWUgZXEgImdkb21fcmFuZ2VfY29tcGFyZV9ib3VuZGFyeV9wb2ludHMiKSB7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFy
ZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5j
dGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQg
TE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIFNW
R0RvY3VtZW50IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIGVxICJHZG9tU1ZHRG9jdW1lbnQgKiIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
aEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1
bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
XG4vKiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5h
bWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlv
bnMgZm9yIG5vdworICAgICAgICAgICAgICAgIG15ICRpc19jdXN0b21fZm4gPSAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAgICAgICAgICAg
ICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9pdGVtIiB8fAor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlv
bl9uYW1lZF9pdGVtIikgeworICAgICAgICAgICAgICAgICAgICAkaXNfY3VzdG9tX2ZuID0gMDsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYg
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRv
cl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9w
YXJlbnRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3Np
YmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3Ry
ZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYgCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9ub2RlIiAm
JiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJh
dG9yX3ByZXZpb3VzX25vZGUiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAi
XG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20g
ZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBu
ZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yZWFjaCBt
eSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAgICBh
ZGRJbmNCb2R5KCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNIZHIo
JHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRH
VHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9
IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25TaWcgLj0gIiwgJHBhcmFtVHlwZSRwYXJhbU5hbWUiOworCisgICAgICAgICAgICAgICAgICAg
IG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgbmUgIkRPTU9iamVjdCIgJiYKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JRExUeXBlIG5lICJFdmVudFRhcmdldCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJpbnRnZG9tJHtwYXJh
bUlETFR5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3sicHJpdmdkb20ke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsgIyB0aGlz
IGlzbid0IHN0cmljdGx5IG5lY2Vzc2FyeSBidXQgb25lIG9mIHRoZSBhdXRvLWdlbmVyYXRlZCBm
aWxlcyBuZWVkZWQgaXQgc28uLi4uCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlw
ZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRwYXJhbU5hbWUgPSAiX2dfIiAuICRwYXJhbU5hbWU7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyAuPSAiLCAkcGFyYW1OYW1lIjsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICRjYWxsX2ltcGxfcGFyYW1zID0gIiRwYXJhbU5hbWUiOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
YWRkSW5jSGRyKCRmbl9zaWdfdHlwZSk7CisgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xz
X3R5cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke2ZuX3Np
Z190eXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAo
JHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRf
aXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUg
ZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCA/Pz8/
IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0g
MTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7ImludGdkb20ke2ZuX3NpZ190eXBl
fS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVz
eyJwcml2Z2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyIke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgIyBYWFggc2tpcCBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAg
ICAgICAgICAjIGJ1dCBza2lwIGZyb20gaGVyZSB0byBhbGxvdyBzb21lIGhlYWRlcnMgdG8gYmUg
Y3JlYXRlZAorICAgICAgICAgICAgICAgICMgZm9yIGEgc3VjY2Vzc2Z1bCBjb21waWxlLgorICAg
ICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmCisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hp
bGQiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9h
cHBlbmRfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBY
WFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rp
b24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExP
T1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJF9yZXR1cm5UeXBl
ID0gJHJldHVyblR5cGU7CisgICAgICAgICAgICAgICAgbXkgJGRvbW9ialR5cGUgPSAiR0RPTSIu
JGZuX3NpZ190eXBlOworICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgJ0RPTU9i
amVjdCcgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAnZ2RvbV9odG1s
X2NhbnZhc19lbGVtZW50X2dldF9jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICAjIFhY
WCBIQUNLIQorICAgICAgICAgICAgICAgICAgICAkX3JldHVyblR5cGUgPSAnR2RvbUNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21vYmpUeXBlID0gJ0dE
T01DYW52YXNSZW5kZXJpbmdDb250ZXh0JzsKKyAgICAgICAgICAgICAgICAgICAgJGdkb21fZm5f
cHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250ZXh0JzsKKyAgICAgICAgICAgICAg
ICAgICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93LiAgc2tpcCBpdC4K
KyAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01PYmplY3QgKFRPRE86
IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAgICAgICAgICAgICAgICAgICAgIyBi
ZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCRmbl9z
aWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIGVxICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQnKSB7CisgICAgICAg
ICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAgICRfcmV0dXJuVHlw
ZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIConOworICAgICAgICAgICAgICAgICAg
ICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEJzsKKyAgICAgICAg
ICAgICAgICAgICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250
ZXh0MmQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGludm9s
dmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgY29udmVy
dCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQor
ICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdE
T01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAKKwor
ICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiV0VCS0lUX0dET01fQVBJICRfcmV0dXJuVHlw
ZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2ln
KVxue1xuIik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7
CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCBy
ZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKHRoaXosIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9ICgke2xjYXNlX2lmYWNlbmFt
ZX1fZ2V0X3ByaXZhdGUodGhpeikpO1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4g
cHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtcbiIpOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJu
X2lmX2ZhaWwgKGl0ZW0pO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
b3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAg
ICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAg
ICAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5J
c1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRw
YXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICMgICAg
JGltcGxUeXBlZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoISRwYXJhbVR5cGVJc1ByaW1pdGl2ZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVm
YXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKyAgICAgICAgICAg
ICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAg
ICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAg
ICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1l
KTsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01D
bGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1J
RExUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6U3Ry
aW5nKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFyYW1JRExUeXBl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNwdXNoKEBjQm9keSwgIiAgICBXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9PiAqIF9nXyR7cGFyYW1OYW1lfSA9IFdURjo6
UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSk+O1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnRUYXJnZXQi
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3sicHJpdmdkb21F
dmVudFRhcmdldE5vZGUuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBfZ18ke3BhcmFtTmFtZX0g
PSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUqPihnZG9tX2V2ZW50X3Rhcmdl
dF9ub2RlX2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBfZ18ke3BhcmFtTmFtZX0gPSAoJHtwYXJh
bV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAi
dm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4g
cHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKF9nXyR7cGFyYW1OYW1lfSwgMCk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoX2dfJHtwYXJhbU5h
bWV9KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJHJldHVyblBhcmFtTmFtZSA9ICJfZ18iLiRwYXJh
bU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJuIn07CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbiA9ICIiOworICAgICAgICAg
ICAgICAgIG15ICRhc3NpZ25fcHJlID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbl9w
b3N0ID0gIiI7CisgICAgICAgICAgICAgICAgJGdfcmVzID0gMDsKKyAgICAgICAgICAgICAgICBp
ZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICRhc3NpZ24gPSAiUGFzc1JlZlB0cjxXZWJDb3JlOjoke2ZuX3NpZ190eXBlfT4gZ19yZXMg
PSAiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wcmUgPSAiV1RGOjpnZXRQdHIo
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcG9zdCA9ICIpIjsKKyAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAi
JHtfcmV0dXJuVHlwZX0gcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBteSAkZXhjZXB0aW9ucyA9ICIiOworICAgICAgICAg
ICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR7Y2FsbF9pbXBsX3BhcmFtc30gbmUgIiIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRleGNlcHRpb25zID0gIiwgZWMiOworICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGV4Y2VwdGlv
bnMgPSAiZWMiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgIyBuZWVkIHRoaXMgZm9yIGluY2x1ZGluZyAuLi4gX3NvbWV0aGluZ18g
LSBmb3IgdGhlIGNsYXNzIGFyZ3MKKyAgICAgICAgICAgICAgICAjaWYgKCRyZXRfaXNfY2xzX3R5
cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190
eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICN9CisgICAgICAgICAgICAgICAgaWYgKCRm
dW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiIHx8CisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiB8fAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfcmVwbGFjZV9jaGls
ZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX3Jl
bW92ZV9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGN1c3RvbV9nZG9tX25vZGVf
YXBwZW5kX2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0tPiR7Zm5fc2lnX25h
bWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KTsKKyAgICBpZiAob2spCisgICAg
eworICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1cm5UeXBl
fT4oV2ViQ29yZTo6dG9HRE9NKCRyZXR1cm5QYXJhbU5hbWUpKTsgCisgICAgICAgIHJldHVybiBy
ZXM7CisgICAgfQorICAgIHJldHVybiBOVUxMOworRU9GCisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOworICAgICAgICAgICAg
ICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2Nv
bnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIC8qIFhYWCBU
T0RPIC0gZ2V0IGNhbnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBs
X3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01TdHJpbmciKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufV9HX0dFVF9VVEY4
KGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7
XG4iICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRnX3JlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGdfcmVzID0gIiR7YXNzaWdufSR7
YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNl
cHRpb25zfSR7YXNzaWduX3Bvc3R9KSIgOworICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259JHthc3Np
Z25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlv
bnN9JHthc3NpZ25fcG9zdH0pO1xuIiApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYg
ISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBl
IG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19j
bHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
ICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihXZWJDb3Jl
Ojp0b0dET00oZ19yZXMuZ2V0KCkpKTsgXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190
eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBjYW52YXMgb2JqZWN0ICov
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxu
Iik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisgICAgICAgIH0K
KworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisgICAgcHVz
aChAY0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisKKyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9cbiIpOworCisgICAgcHVzaChAaEJvZHksICJH
X0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAvKiAkZ3VhcmQgKi9c
biIpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVz
aChAaEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3VhcmR9X1BST1BfKi9cbiIpOworfQorCisjIElu
dGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkg
PSBAXzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVJ
bnRlcm5hbCA9ICIkb3V0cHV0RGlyL2ludCIgLiAkbmFtZSAuICIuaCI7CisgICAgb3BlbihJTlRI
RUFERVIsICI+JGhkckZOYW1lSW50ZXJuYWwiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
aGRyRk5hbWVJbnRlcm5hbCI7CisKKyAgICBwcmludCBJTlRIRUFERVIgQGhQcmVmaXg7CisgICAg
cHJpbnQgSU5USEVBREVSICJcbiI7CisgICAgcHJpbnQgSU5USEVBREVSIEBoQm9keUludGVybmFs
OworICAgIGNsb3NlKElOVEhFQURFUik7CisKKyAgICAjIFdyaXRlIFByaXZhdGUgaGVhZGVyCisg
ICAgbXkgJGhkckZOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL3ByaXYiIC4gJG5hbWUgLiAiLmgiOwor
ICAgIG9wZW4oUFJJVkhFQURFUiwgIj4kaGRyRk5hbWVQcml2Iikgb3IgZGllICJDb3VsZG4ndCBv
cGVuIGZpbGUgJGhkckZOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSEVBREVSIEBoUHJlZml4
OworICAgIHByaW50IFBSSVZIRUFERVIgIlxuIjsKKyAgICBwcmludCBQUklWSEVBREVSIEBoQm9k
eVByaXY7CisgICAgY2xvc2UoUFJJVkhFQURFUik7CisKKyAgICAjIFdyaXRlIFByaXZhdGUgSW1w
bGVtZW50YXRpb24KKyAgICBteSAkaW1wbEZpbGVOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL3ByaXYi
IC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihQUklWSU1QTCwgIj4kaW1wbEZpbGVOYW1lUHJp
diIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWVQcml2IjsKKworICAg
IHByaW50IFBSSVZJTVBMIEBjUHJlZml4OworICAgIHByaW50IFBSSVZJTVBMICJcbiI7CisgICAg
cHJpbnQgUFJJVklNUEwgQGNCb2R5UHJpdjsKKworICAgIGNsb3NlKFBSSVZJTVBMKTsKKworICAg
ICMgV3JpdGUgcHJvcGVydGllcyBoZWFkZXIgKGF2b2lkcyByZWN1cnNpdmUgbmlnaHRtYXJlKQor
ICAgIG15ICRoZHJQcm9wRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAicHJvcHMuaCI7
CisgICAgb3BlbihQUk9QSEVBREVSLCAiPiRoZHJQcm9wRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0
IG9wZW4gZmlsZSAkaGRyUHJvcEZOYW1lIjsKKworICAgICRoZHJQcm9wSW5jbHVkZXN7ImdsaWIt
b2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBQUk9QSEVBREVSIEBoUHJlZml4OworICAgIHBy
aW50IFBST1BIRUFERVIgIi8qIHJlY3Vyc2l2ZSBpbmNsdWRlcyAvIGRlZmluZXMgaXNzdWUgZm9y
Y2VzIHNlcGFyYXRlIGhlYWRlciBmb3IgcHJvcGVydGllcy5cbnBlcmhhcHMgLSBiZXR0ZXIgLSBh
bGwgZ2RvbSBndGsgZnVuY3Rpb25zIHNob3VsZCBiZSBpbiBoZXJlISovXG4iOworICAgIHByaW50
IFBST1BIRUFERVIgQGhCb2R5UHJvcFByZTsKKyAgICBwcmludCBQUk9QSEVBREVSICIjaW5jbHVk
ZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+XG4iOworICAgIHByaW50IFBST1BIRUFERVIgbWFwIHsg
IiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBw
cmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmlu
dCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBAaEJvZHlQcm9wOworCisg
ICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgcHVibGljIGhlYWRlci4KKyAgICBteSAk
aGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4oSEVBREVS
LCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZSI7CisK
KyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBIRUFE
RVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQg
SEVBREVSICIjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+XG4iOworICAgIHByaW50IEhF
QURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJJbmNsdWRlcyk7
CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50
IEhFQURFUiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaEJvZHlQcmU7CisgICAgcHJpbnQgSEVB
REVSIG1hcCB7ICJ0eXBlZGVmIHN0cnVjdCBfJF8gJF87XG4iIH0gc29ydCBrZXlzKCVpbXBsVHlw
ZWRlZnMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWltcGxUeXBlZGVmcyk7Cisg
ICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdy
aXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBzb3VyY2VzCisgICAgbXkgJGltcGxGaWxlTmFtZSA9ICIk
b3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKElNUEwsICI+JGltcGxGaWxl
TmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWUiOworCisgICAg
cHJpbnQgSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcImNvbmZpZy5o
XCJcblxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8d3RmL0dldFB0ci5oPlxuIjsKKyAg
ICBwcmludCBJTVBMICIjaW5jbHVkZSBcIkNTdHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwg
IiNpbmNsdWRlIFwiUGxhdGZvcm1TdHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwgIiNpbmNs
dWRlIFwiQXRvbWljU3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcInVz
dHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiS1VSTC5oXCJcbiI7Cisg
ICAgcHJpbnQgSU1QTCBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVpbXBs
SW5jbHVkZXMpOworICAgIHByaW50IElNUEwgIlxuIiBpZiBrZXlzKCVpbXBsSW5jbHVkZXMpOwor
ICAgIHByaW50IElNUEwgQGNCb2R5OworCisgICAgY2xvc2UoSU1QTCk7CisKKyAgICAlaW1wbElu
Y2x1ZGVzID0gKCk7CisgICAgJWltcGxUeXBlZGVmcyA9ICgpOworICAgICVoZHJJbmNsdWRlcyA9
ICgpOworICAgIEBoUHJlZml4ID0gKCk7CisgICAgQGhCb2R5ID0gKCk7CisgICAgQGhCb2R5UHJp
diA9ICgpOworICAgIEBoQm9keUludGVybmFsID0gKCk7CisgICAgQGhCb2R5UHJvcCA9ICgpOwor
ICAgIEBoQm9keVByb3BQcmUgPSAoKTsKKworICAgIEBjUHJlZml4ID0gKCk7CisgICAgQGNCb2R5
ID0gKCk7CisgICAgQGNCb2R5UHJpdiA9ICgpOworfQorCisxOwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBdIEhU
TUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgIEhUTUxGb3JtRWxlbWVudCAgICAgIGZvcm07CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGVmYXVsdFNlbGVjdGVkOwotI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRl
ZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIHRleHQKICAgICAgICAg
ICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbHNlCkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9o
dG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBA
QAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlYXJjaDsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwogCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmlu
ZygpOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAkocmV2aXNp
b24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSwxNCArMzUsMTQgQEAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvZGU7CiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb2RlQmFzZTsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIGhlaWdodDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBoc3BhY2U7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRG
cm9tU3RyaW5nXSBsb25nIGhzcGFjZTsKICNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG9iamVj
dDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2c3BhY2U7
CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBs
b25nIHZzcGFjZTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHJldmlzaW9uIDM1
NzU4KQorKysgV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw3IEBACiAgICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD05M2UwNDA3YS04
MzgwLTRmZjAtOTc4ZC1mNzczZjJkZWU2YTMKICAgICBdIEhUTUxFbWJlZEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBhbGlnbjsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
CisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBoZWlnaHQ7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhlaWdodDsKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IG5hbWU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBzcmM7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0eXBlOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHdpZHRoOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyB3aWR0aDsKSW5kZXg6IFdlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJl
dmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTYsNyArMTU2LDcgQEAKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VB
R0VfR09CSkVDVCkpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyBkb21haW47CiAjZWxzZQogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGRvbWFpbjsKQEAgLTE4Miw3ICsxODIsNyBAQAogCiAgICAgICAgIE5v
ZGVMaXN0IGdldEVsZW1lbnRzQnlOYW1lKGluIERPTVN0cmluZyBlbGVtZW50TmFtZSk7CiAKLSNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCiAKQEAgLTE5NSw3
ICsxOTUsNyBAQAogICAgICAgICBFbGVtZW50ICAgICAgICAgICAgZWxlbWVudEZyb21Qb2ludChp
biBsb25nIHgsIGluIGxvbmcgeSk7CiAKICAgICAgICAgLy8gTW96aWxsYSBleHRlbnNpb25zCi0j
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgIERPTVNlbGVj
dGlvbiAgICAgICBnZXRTZWxlY3Rpb24oKTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGNoYXJhY3RlclNldDsK
QEAgLTIzNiw3ICsyMzYsNyBAQAogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKGluIERPTVN0cmluZyB0YWduYW1lKTsKIAogICAgICAgICAvLyBOb2RlU2VsZWN0b3IgLSBT
ZWxlY3RvciBBUEkKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAg
ICAgICAgW0N1c3RvbV0gRWxlbWVudCBxdWVyeVNlbGVjdG9yKGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JzLCBpbiBOU1Jlc29sdmVyIHJl
c29sdmVyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtDdXN0
b21dIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIp
CkluZGV4OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUv
ZG9tL0RPTUNvcmVFeGNlcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAog
ICovCiAKICNpZm5kZWYgRE9NQ29yZUV4Y2VwdGlvbl9oCi0jZGVmaW5lIERPTUNvZGVFeGNlcHRp
b25faAorI2RlZmluZSBET01Db3JlRXhjZXB0aW9uX2gKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkJh
c2UuaCIKIApJbmRleDogV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBX
ZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3
LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAot
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJp
ZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9N
U3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZl
bnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZp
c2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC01OSw3ICs1OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
Ym9vbGVhbiBhbHRHcmFwaEtleSk7CiAKICAgICAgICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKLSNp
ZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmICgoIWRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkpICYmICghZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkpCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOwogICAgICAgICAKSW5kZXg6
IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDcgQEAKICAgICAgICAgW0RvTm90Q2hl
Y2tEb21haW5TZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGluIERPTVN0cmluZyBt
ZXNzYWdlLCBpbiBET01TdHJpbmcgdGFyZ2V0T3JpZ2luKQogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAg
ICAgICAgIC8vIEdsb2JhbCBjb25zdHJ1Y3RvcnMKICAgICAgICAgYXR0cmlidXRlIFN0eWxlU2hl
ZXRDb25zdHJ1Y3RvciBTdHlsZVNoZWV0OwogICAgICAgICBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVl
dENvbnN0cnVjdG9yIENTU1N0eWxlU2hlZXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23082</attachid>
            <date>2008-08-30 14:57:59 -0700</date>
            <delta_ts>2008-08-31 10:19:31 -0700</delta_ts>
            <desc>bug-fixing LANGUAGE_GOBJECT</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>225006</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMzE1LDYgKzMxNiw4IEBACiAJV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vic2V0dGluZ3MuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5o
CiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXApAQCAtMzQ0LDcgKzM0Nyw4IEBA
CiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAK
KwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZXZlbnQuY3BwIAogCiB3ZWJraXRndGtfY3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJ
TkdfV0VCS0lUIFwKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMiBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAiZ2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1
ZGUgImludGdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgInByaXZnZG9tRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExp
c3RlbmVySGFjay5oIgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogCkBA
IC00Nyw2ICs1MywxMCBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3Bh
Y2Ugc3RkOwogCituYW1lc3BhY2UgV2ViQ29yZSB7CisJZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50
KiBkb2MpOworfQorCiBleHRlcm4gIkMiIHsKIAogZW51bSB7CkBAIC01NSw2ICs2NSw3IEBACiAg
ICAgTE9BRF9ET05FLAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5L
LAorICAgIEJST1dTRVJfRVZFTlQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2MCw2ICsx
NzEsMTYgQEAKICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBF
X1NUUklORywgR19UWVBFX1NUUklORyk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNb
QlJPV1NFUl9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZs
YWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAw
LAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJr
aXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05F
LCAyLAorICAgICAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisKICAg
ICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8K
QEAgLTI5Miw2ICszMTMsNDYgQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9k
b21fZG9jdW1lbnQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJu
cyBhIEdkb20gd3JhcHBlciBhcm91bmQgYSBEb2N1bWVudCAKKyAqCisgKiBSZXR1cm4gdmFsdWU6
IGEgR2RvbURvY3VtZW50CisgKi8KK0dkb21Eb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9nZXRf
ZG9tX2RvY3VtZW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktp
dFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVG
cmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCXJldHVybiBHRE9N
X0RPQ1VNRU5UKFdlYkNvcmU6OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50KCkpKTsKK30KKwor
LyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoKKyAqIEBmcmFtZTog
YSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBm
cmFtZSdzIGRvY3VtZW50CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBvZiBAZnJhbWUK
KyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIqIGV2ZW50X3R5cGUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEZBTFNFKTsKKworICAgIC8vV2ViS2l0V2Vi
RnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisKKwlyZXR1cm4gYWRkX3dp
bmRvd19ldmVudF9saXN0ZW5lcihmcmFtZSwgY29yZUZyYW1lLCBldmVudF90eXBlKTsKK30KKwor
LyoqCiAgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lOgogICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQogICoKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5o
PgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9nZG9tRG9jdW1lbnQuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC02MSw2ICs2Miw5IEBA
CiBXRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJ
IEdkb21Eb2N1bWVudCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQgICAgICAg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmll
dyAqCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAgICAgICAoV2ViS2l0V2ViRnJhbWUg
ICAgICAgKmZyYW1lKTsKIApAQCAtOTMsNiArOTcsMTAgQEAKIFdFQktJVF9BUEkgSlNHbG9iYWxD
b250ZXh0UmVmCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dCAoV2ViS2l0V2Vi
RnJhbWUgICAgICAgKmZyYW1lKTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl9m
cmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICpuYW1lKTsK
KwogR19FTkRfREVDTFMKIAogI2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExp
c3RlbmVySGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVu
ZXJIYWNrLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVy
SGFjay5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIEpTX0RPTV9FVkVO
VF9MSVNURU5FUl9IQUNLX0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX0hBQ0tfSAor
CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisK
KworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+CisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dlYktp
dEF2YWlsYWJpbGl0eS5oPgorI2luY2x1ZGUgIldlYkNvcmUvcGFnZS9GcmFtZS5oIgorCitjbGFz
cyBXZWJDb3JlOjpGcmFtZTsKKworZ2Jvb2xlYW4KK2FkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0V2ViRnJhbWUqIHdmLCBXZWJDb3JlOjpGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOworCisjZW5kaWYgLypKU19ET01fRVZFTlRf
TElTVEVORVJfSEFDS19IICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5z
IFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlL2RvbS9F
dmVudC5oIgorI2luY2x1ZGUgIldlYkNvcmUvcGxhdGZvcm0vdGV4dC9DU3RyaW5nLmgiCisjaW5j
bHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3Vt
ZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVu
ZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
KyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRl
ICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIkphdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmgi
CisjaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUva2pzL0pTVmFsdWUuaCIKKyNpbmNsdWRlICJFdmVu
dExpc3RlbmVySGFjay5oIgorI2luY2x1ZGUgIkRlcml2ZWRTb3VyY2VzL0pTSFRNTERvY3VtZW50
LmgiCisjaW5jbHVkZSAiSmF2YVNjcmlwdENvcmUvQVBJL0FQSUNhc3QuaCIKKyNpbmNsdWRlICJX
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0NTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSW1w
bC5oIgorI2luY2x1ZGUgImdkb21FdmVudC5oIgorI2luY2x1ZGUgImludGdkb21FdmVudC5oIgor
I2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIgor
CisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudCogZG9jKTsK
K30KKworZXh0ZXJuICJDIiB7CisKK30gLy8gZXh0ZXJuICJDIgorCitjbGFzcyBIYWNrRXZlbnRM
aXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIYWNrRXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFdlYktpdFdlYkZyYW1lKiB3ZikgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhhY2tFdmVudExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOworCisgICAgcHJp
dmF0ZToKKyAgICBIYWNrRXZlbnRMaXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2YpIDogbV93Zih3
ZikgeyB9CisgICAgV2ViS2l0V2ViRnJhbWUqIG1fd2Y7Cit9OworCit2b2lkIEhhY2tFdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKK3sK
KyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgcHJpbnRmKCJoYWNrIGhhbmRsZUV2ZW50ICVzXG4i
LCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEdkb21FdmVudCAq
d2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUobV93ZiwgImJyb3dzZXItZXZlbnQiLCAKKyAgICAgICAgd2V2LCBpc1dpbmRv
d0V2ZW50LCAmcmV0dmFsKTsKK30KKworZ2Jvb2xlYW4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5l
cihXZWJLaXRXZWJGcmFtZSAqd2YsIEZyYW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBEb2N1bWVudCogZG9jID0g
ZnJhbWUtPmRvY3VtZW50KCk7CisKKyAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIg
PSBIYWNrRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBkb2MtPmFkZFdpbmRvd0V2ZW50
TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHRydWUpOworCisgICAgcmV0dXJuIFRSVUU7CisKK30g
CisKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHJldmlzaW9uIDM1NzU4KQorKysg
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2
ICs0MCw5IEBACiAKIEdfQkVHSU5fREVDTFMKIAordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50
IFdlYktpdEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgV2ViS2l0RXZl
bnRDbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0IFdlYktpdE5l
dHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3Mg
V2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvZ2Rv
bWRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5o
CShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1MjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykg
MjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdFQktJVF9HRE9NX0RFRklO
RVNfSAorI2RlZmluZSBXRUJLSVRfR0RPTV9ERUZJTkVTX0gKKworI2luY2x1ZGUgPGdsaWIuaD4K
KworI2lmZGVmIEdfT1NfV0lOMzIKKyAgICAjaWZkZWYgQlVJTERJTkdfV0VCS0lUX0dET00KKyAg
ICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCisgICAg
I2Vsc2UKKyAgICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhkbGxpbXBv
cnQpCisgICAgI2VuZGlmCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9PQlNPTEVURV9BUEkgV0VC
S0lUX0dET01fQVBJCisjZWxzZQorICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fYXR0cmli
dXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9P
QlNPTEVURV9BUEkgV0VCS0lUX0dET01fQVBJIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQpKQor
I2VuZGlmCisKKyNpZm5kZWYgV0VCS0lUX0dET01fQVBJCisgICAgI2RlZmluZSBXRUJLSVRfR0RP
TV9BUEkKKyNlbmRpZgorCitHX0JFR0lOX0RFQ0xTCisKKy8qCit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUF0dHJDbGFzcyBHRG9tQXR0ckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21BdHRyIEdEb21B
dHRyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21BdHRyUHJpdmF0ZSBHRG9tQXR0clByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUJhckluZm9DbGFzcyBHRG9tQmFySW5mb0NsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21CYXJJbmZvIEdEb21CYXJJbmZvOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21C
YXJJbmZvUHJpdmF0ZSBHRG9tQmFySW5mb1ByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNh
bnZhc0dyYWRpZW50Q2xhc3MgR0RvbUNhbnZhc0dyYWRpZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNhbnZhc0dyYWRpZW50IEdEb21DYW52YXNHcmFkaWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tQ2FudmFzR3JhZGllbnRQcml2YXRlIEdEb21DYW52YXNHcmFkaWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc1BhdHRlcm5DbGFzcyBHRG9tQ2FudmFzUGF0dGVybkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuIEdEb21DYW52YXNQYXR0ZXJu
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuUHJpdmF0ZSBHRG9tQ2FudmFzUGF0
dGVyblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc1BpeGVsQXJyYXlDbGFzcyBH
RG9tQ2FudmFzUGl4ZWxBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQaXhl
bEFycmF5IEdEb21DYW52YXNQaXhlbEFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQ
aXhlbEFycmF5UHJpdmF0ZSBHRG9tQ2FudmFzUGl4ZWxBcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRENsYXNzIEdEb21DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEIEdEb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFByaXZhdGUgR0RvbUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRBU2VjdGlvbkNsYXNzIEdEb21D
REFUQVNlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ0RBVEFTZWN0aW9uIEdEb21D
REFUQVNlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRBU2VjdGlvblByaXZhdGUgR0Rv
bUNEQVRBU2VjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNoYXJhY3RlckRhdGFD
bGFzcyBHRG9tQ2hhcmFjdGVyRGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DaGFyYWN0
ZXJEYXRhIEdEb21DaGFyYWN0ZXJEYXRhOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DaGFyYWN0ZXJE
YXRhUHJpdmF0ZSBHRG9tQ2hhcmFjdGVyRGF0YVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUNsaXBib2FyZENsYXNzIEdEb21DbGlwYm9hcmRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
Q2xpcGJvYXJkIEdEb21DbGlwYm9hcmQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNsaXBib2FyZFBy
aXZhdGUgR0RvbUNsaXBib2FyZFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNvbW1lbnRD
bGFzcyBHRG9tQ29tbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db21tZW50IEdEb21D
b21tZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db21tZW50UHJpdmF0ZSBHRG9tQ29tbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNvbnNvbGVDbGFzcyBHRG9tQ29uc29sZUNsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db25zb2xlIEdEb21Db25zb2xlOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21Db25zb2xlUHJpdmF0ZSBHRG9tQ29uc29sZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNvdW50ZXJDbGFzcyBHRG9tQ291bnRlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21Db3VudGVyIEdEb21Db3VudGVyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db3VudGVyUHJpdmF0
ZSBHRG9tQ291bnRlclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0NoYXJzZXRSdWxl
Q2xhc3MgR0RvbUNTU0NoYXJzZXRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0No
YXJzZXRSdWxlIEdEb21DU1NDaGFyc2V0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTQ2hh
cnNldFJ1bGVQcml2YXRlIEdEb21DU1NDaGFyc2V0UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU0ZvbnRGYWNlUnVsZUNsYXNzIEdEb21DU1NGb250RmFjZVJ1bGVDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tQ1NTRm9udEZhY2VSdWxlIEdEb21DU1NGb250RmFjZVJ1bGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0ZvbnRGYWNlUnVsZVByaXZhdGUgR0RvbUNTU0ZvbnRGYWNl
UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0ltcG9ydFJ1bGVDbGFzcyBHRG9t
Q1NTSW1wb3J0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRSdWxlIEdE
b21DU1NJbXBvcnRSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRSdWxlUHJpdmF0
ZSBHRG9tQ1NTSW1wb3J0UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU01lZGlh
UnVsZUNsYXNzIEdEb21DU1NNZWRpYVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NT
TWVkaWFSdWxlIEdEb21DU1NNZWRpYVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU01lZGlh
UnVsZVByaXZhdGUgR0RvbUNTU01lZGlhUnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUNTU1BhZ2VSdWxlQ2xhc3MgR0RvbUNTU1BhZ2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUNTU1BhZ2VSdWxlIEdEb21DU1NQYWdlUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NT
UGFnZVJ1bGVQcml2YXRlIEdEb21DU1NQYWdlUnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUNTU1ByaW1pdGl2ZVZhbHVlQ2xhc3MgR0RvbUNTU1ByaW1pdGl2ZVZhbHVlQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ByaW1pdGl2ZVZhbHVlIEdEb21DU1NQcmltaXRpdmVWYWx1
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTUHJpbWl0aXZlVmFsdWVQcml2YXRlIEdEb21DU1NQ
cmltaXRpdmVWYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1J1bGVDbGFzcyBH
RG9tQ1NTUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlIEdEb21DU1NSdWxl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlTGlzdENsYXNzIEdEb21DU1NSdWxlTGlzdENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlTGlzdCBHRG9tQ1NTUnVsZUxpc3Q7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1J1bGVMaXN0UHJpdmF0ZSBHRG9tQ1NTUnVsZUxpc3RQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlUHJpdmF0ZSBHRG9tQ1NTUnVsZVByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlRGVjbGFyYXRpb25DbGFzcyBHRG9tQ1NT
U3R5bGVEZWNsYXJhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZURlY2xh
cmF0aW9uIEdEb21DU1NTdHlsZURlY2xhcmF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NT
dHlsZURlY2xhcmF0aW9uUHJpdmF0ZSBHRG9tQ1NTU3R5bGVEZWNsYXJhdGlvblByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlUnVsZUNsYXNzIEdEb21DU1NTdHlsZVJ1bGVDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTU3R5bGVSdWxlIEdEb21DU1NTdHlsZVJ1bGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlUnVsZVByaXZhdGUgR0RvbUNTU1N0eWxlUnVsZVBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlU2hlZXRDbGFzcyBHRG9tQ1NTU3R5
bGVTaGVldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0IEdEb21DU1NT
dHlsZVNoZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0UHJpdmF0ZSBHRG9t
Q1NTU3R5bGVTaGVldFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlQ2xhc3Mg
R0RvbUNTU1ZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlIEdEb21DU1NW
YWx1ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0Q2xhc3MgR0RvbUNTU1ZhbHVl
TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYWx1ZUxpc3QgR0RvbUNTU1ZhbHVl
TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0UHJpdmF0ZSBHRG9tQ1NTVmFs
dWVMaXN0UHJpdmF0ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVQcml2YXRlIEdEb21D
U1NWYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0
aW9uQ2xhc3MgR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIEdEb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlv
bjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25Qcml2YXRlIEdE
b21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNT
U1ZhcmlhYmxlc1J1bGVDbGFzcyBHRG9tQ1NTVmFyaWFibGVzUnVsZUNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NWYXJpYWJsZXNSdWxlIEdEb21DU1NWYXJpYWJsZXNSdWxlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21DU1NWYXJpYWJsZXNSdWxlUHJpdmF0ZSBHRG9tQ1NTVmFyaWFibGVzUnVs
ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURhdGFiYXNlQ2xhc3MgR0RvbURhdGFiYXNl
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURhdGFiYXNlIEdEb21EYXRhYmFzZTsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tRGF0YWJhc2VQcml2YXRlIEdEb21EYXRhYmFzZVByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50Q2xhc3MgR0RvbURvY3VtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbURvY3VtZW50RnJhZ21lbnRDbGFzcyBHRG9tRG9jdW1lbnRGcmFnbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudEZyYWdtZW50IEdEb21Eb2N1bWVudEZy
YWdtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZSBHRG9t
RG9jdW1lbnRGcmFnbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50IEdE
b21Eb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRQcml2YXRlIEdEb21Eb2N1
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50VHlwZUNsYXNzIEdEb21E
b2N1bWVudFR5cGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRUeXBlIEdEb21E
b2N1bWVudFR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50VHlwZVByaXZhdGUgR0Rv
bURvY3VtZW50VHlwZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUFwcGxpY2F0aW9u
Q2FjaGVDbGFzcyBHRG9tRE9NQXBwbGljYXRpb25DYWNoZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21ET01BcHBsaWNhdGlvbkNhY2hlIEdEb21ET01BcHBsaWNhdGlvbkNhY2hlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21ET01BcHBsaWNhdGlvbkNhY2hlUHJpdmF0ZSBHRG9tRE9NQXBwbGljYXRp
b25DYWNoZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUNvcmVFeGNlcHRpb25DbGFz
cyBHRG9tRE9NQ29yZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01Db3Jl
RXhjZXB0aW9uIEdEb21ET01Db3JlRXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01D
b3JlRXhjZXB0aW9uUHJpdmF0ZSBHRG9tRE9NQ29yZUV4Y2VwdGlvblByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3MgR0RvbURPTUltcGxlbWVudGF0aW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUltcGxlbWVudGF0aW9uIEdEb21ET01JbXBs
ZW1lbnRhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NSW1wbGVtZW50YXRpb25Qcml2YXRl
IEdEb21ET01JbXBsZW1lbnRhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTU9i
amVjdCBHRG9tRE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01QYXJzZXJDbGFzcyBH
RG9tRE9NUGFyc2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVBhcnNlciBHRG9tRE9N
UGFyc2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01QYXJzZXJQcml2YXRlIEdEb21ET01QYXJz
ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxlY3Rpb25DbGFzcyBHRG9tRE9N
U2VsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVNlbGVjdGlvbiBHRG9tRE9N
U2VsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxlY3Rpb25Qcml2YXRlIEdEb21E
T01TZWxlY3Rpb25Qcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01XaW5kb3dDbGFzcyBH
RG9tRE9NV2luZG93Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVdpbmRvdyBHRG9tRE9N
V2luZG93OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01XaW5kb3dQcml2YXRlIEdEb21ET01XaW5k
b3dQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbGVtZW50Q2xhc3MgR0RvbUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRWxlbWVudCBHRG9tRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tRWxlbWVudFByaXZhdGUgR0RvbUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FbnRpdHlDbGFzcyBHRG9tRW50aXR5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUVudGl0eSBHRG9tRW50aXR5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlQcml2YXRl
IEdEb21FbnRpdHlQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlSZWZlcmVuY2VD
bGFzcyBHRG9tRW50aXR5UmVmZXJlbmNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUVudGl0
eVJlZmVyZW5jZSBHRG9tRW50aXR5UmVmZXJlbmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRp
dHlSZWZlcmVuY2VQcml2YXRlIEdEb21FbnRpdHlSZWZlcmVuY2VQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FdmVudENsYXNzIEdEb21FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21FdmVudEV4Y2VwdGlvbkNsYXNzIEdEb21FdmVudEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FdmVudEV4Y2VwdGlvbiBHRG9tRXZlbnRFeGNlcHRpb247Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUV2ZW50RXhjZXB0aW9uUHJpdmF0ZSBHRG9tRXZlbnRFeGNlcHRpb25Qcml2YXRl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FdmVudCBHRG9tRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUV2ZW50UHJpdmF0ZSBHRG9tRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21F
dmVudFRhcmdldCBHRG9tRXZlbnRUYXJnZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUZpbGVDbGFz
cyBHRG9tRmlsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21GaWxlIEdEb21GaWxlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21GaWxlTGlzdENsYXNzIEdEb21GaWxlTGlzdENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21GaWxlTGlzdCBHRG9tRmlsZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUZpbGVMaXN0UHJpdmF0ZSBHRG9tRmlsZUxpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21GaWxlUHJpdmF0ZSBHRG9tRmlsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhpc3Rv
cnlDbGFzcyBHRG9tSGlzdG9yeUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IaXN0b3J5IEdE
b21IaXN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IaXN0b3J5UHJpdmF0ZSBHRG9tSGlzdG9y
eVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBbmNob3JFbGVtZW50Q2xhc3MgR0Rv
bUhUTUxBbmNob3JFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBbmNob3JF
bGVtZW50IEdEb21IVE1MQW5jaG9yRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEFu
Y2hvckVsZW1lbnRQcml2YXRlIEdEb21IVE1MQW5jaG9yRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxBcHBsZXRFbGVtZW50Q2xhc3MgR0RvbUhUTUxBcHBsZXRFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBcHBsZXRFbGVtZW50IEdEb21IVE1MQXBw
bGV0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEFwcGxldEVsZW1lbnRQcml2YXRl
IEdEb21IVE1MQXBwbGV0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxB
cmVhRWxlbWVudENsYXNzIEdEb21IVE1MQXJlYUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTEFyZWFFbGVtZW50IEdEb21IVE1MQXJlYUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxBcmVhRWxlbWVudFByaXZhdGUgR0RvbUhUTUxBcmVhRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRWxlbWVudENsYXNzIEdEb21IVE1MQmFzZUVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJhc2VFbGVtZW50IEdEb21IVE1M
QmFzZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRWxlbWVudFByaXZhdGUg
R0RvbUhUTUxCYXNlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNl
Rm9udEVsZW1lbnRDbGFzcyBHRG9tSFRNTEJhc2VGb250RWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MQmFzZUZvbnRFbGVtZW50IEdEb21IVE1MQmFzZUZvbnRFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQmFzZUZvbnRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJh
c2VGb250RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCbG9ja3F1b3Rl
RWxlbWVudENsYXNzIEdEb21IVE1MQmxvY2txdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50IEdEb21IVE1MQmxvY2txdW90ZUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudFByaXZhdGUgR0RvbUhU
TUxCbG9ja3F1b3RlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCb2R5
RWxlbWVudENsYXNzIEdEb21IVE1MQm9keUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tSFRNTEJvZHlFbGVtZW50IEdEb21IVE1MQm9keUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxCb2R5RWxlbWVudFByaXZhdGUgR0RvbUhUTUxCb2R5RWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCUkVsZW1lbnRDbGFzcyBHRG9tSFRNTEJSRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50IEdEb21IVE1MQlJFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJSRWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3Mg
R0RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCdXR0
b25FbGVtZW50IEdEb21IVE1MQnV0dG9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TEJ1dHRvbkVsZW1lbnRQcml2YXRlIEdEb21IVE1MQnV0dG9uRWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxDYW52YXNFbGVtZW50Q2xhc3MgR0RvbUhUTUxDYW52YXNFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxDYW52YXNFbGVtZW50IEdEb21IVE1M
Q2FudmFzRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTENhbnZhc0VsZW1lbnRQcml2
YXRlIEdEb21IVE1MQ2FudmFzRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxDb2xsZWN0aW9uQ2xhc3MgR0RvbUhUTUxDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxDb2xsZWN0aW9uIEdEb21IVE1MQ29sbGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTENvbGxlY3Rpb25Qcml2YXRlIEdEb21IVE1MQ29sbGVjdGlvblByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Q2xhc3MgR0RvbUhUTUxEaXJl
Y3RvcnlFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXJlY3RvcnlFbGVt
ZW50IEdEb21IVE1MRGlyZWN0b3J5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERp
cmVjdG9yeUVsZW1lbnRQcml2YXRlIEdEb21IVE1MRGlyZWN0b3J5RWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXZFbGVtZW50Q2xhc3MgR0RvbUhUTUxEaXZFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXZFbGVtZW50IEdEb21IVE1MRGl2RWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERpdkVsZW1lbnRQcml2YXRlIEdEb21IVE1M
RGl2RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxETGlzdEVsZW1lbnRD
bGFzcyBHRG9tSFRNTERMaXN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
RExpc3RFbGVtZW50IEdEb21IVE1MRExpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MRExpc3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTERMaXN0RWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxEb2N1bWVudENsYXNzIEdEb21IVE1MRG9jdW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERvY3VtZW50IEdEb21IVE1MRG9jdW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxEb2N1bWVudFByaXZhdGUgR0RvbUhUTUxEb2N1bWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50Q2xhc3MgR0RvbUhUTUxFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50IEdEb21IVE1MRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEVsZW1lbnRQcml2YXRlIEdEb21IVE1MRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxFbWJlZEVsZW1lbnRDbGFzcyBHRG9tSFRN
TEVtYmVkRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVtZW50
IEdEb21IVE1MRW1iZWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVt
ZW50UHJpdmF0ZSBHRG9tSFRNTEVtYmVkRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxGaWVsZFNldEVsZW1lbnRDbGFzcyBHRG9tSFRNTEZpZWxkU2V0RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRmllbGRTZXRFbGVtZW50IEdEb21IVE1MRmllbGRT
ZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRmllbGRTZXRFbGVtZW50UHJpdmF0
ZSBHRG9tSFRNTEZpZWxkU2V0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxGb250RWxlbWVudENsYXNzIEdEb21IVE1MRm9udEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEZvbnRFbGVtZW50IEdEb21IVE1MRm9udEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxGb250RWxlbWVudFByaXZhdGUgR0RvbUhUTUxGb250RWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb3JtRWxlbWVudENsYXNzIEdEb21IVE1MRm9y
bUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZvcm1FbGVtZW50IEdEb21I
VE1MRm9ybUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb3JtRWxlbWVudFByaXZh
dGUgR0RvbUhUTUxGb3JtRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxG
cmFtZUVsZW1lbnRDbGFzcyBHRG9tSFRNTEZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MRnJhbWVFbGVtZW50IEdEb21IVE1MRnJhbWVFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MRnJhbWVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEZyYW1lRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzcyBHRG9t
SFRNTEZyYW1lU2V0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRnJhbWVT
ZXRFbGVtZW50IEdEb21IVE1MRnJhbWVTZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MRnJhbWVTZXRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEZyYW1lU2V0RWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkRWxlbWVudENsYXNzIEdEb21IVE1MSGVhZEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEhlYWRFbGVtZW50IEdEb21IVE1M
SGVhZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkRWxlbWVudFByaXZhdGUg
R0RvbUhUTUxIZWFkRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFk
aW5nRWxlbWVudENsYXNzIEdEb21IVE1MSGVhZGluZ0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEhlYWRpbmdFbGVtZW50IEdEb21IVE1MSGVhZGluZ0VsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkaW5nRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIZWFkaW5n
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIUkVsZW1lbnRDbGFzcyBH
RG9tSFRNTEhSRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJFbGVtZW50
IEdEb21IVE1MSFJFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTEhSRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxI
dG1sRWxlbWVudENsYXNzIEdEb21IVE1MSHRtbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTEh0bWxFbGVtZW50IEdEb21IVE1MSHRtbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxIdG1sRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIdG1sRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJRnJhbWVFbGVtZW50Q2xhc3MgR0RvbUhUTUxJRnJh
bWVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJRnJhbWVFbGVtZW50IEdE
b21IVE1MSUZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTElGcmFtZUVsZW1l
bnRQcml2YXRlIEdEb21IVE1MSUZyYW1lRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxJbWFnZUVsZW1lbnRDbGFzcyBHRG9tSFRNTEltYWdlRWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW1hZ2VFbGVtZW50IEdEb21IVE1MSW1hZ2VFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW1hZ2VFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEltYWdl
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJbnB1dEVsZW1lbnRDbGFz
cyBHRG9tSFRNTElucHV0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW5w
dXRFbGVtZW50IEdEb21IVE1MSW5wdXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
SW5wdXRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTElucHV0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxJc0luZGV4RWxlbWVudENsYXNzIEdEb21IVE1MSXNJbmRleEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTElzSW5kZXhFbGVtZW50IEdEb21IVE1M
SXNJbmRleEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJc0luZGV4RWxlbWVudFBy
aXZhdGUgR0RvbUhUTUxJc0luZGV4RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxMYWJlbEVsZW1lbnRDbGFzcyBHRG9tSFRNTExhYmVsRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MTGFiZWxFbGVtZW50IEdEb21IVE1MTGFiZWxFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTGFiZWxFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTExhYmVsRWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3Mg
R0RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMZWdl
bmRFbGVtZW50IEdEb21IVE1MTGVnZW5kRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TExlZ2VuZEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTGVnZW5kRWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxMSUVsZW1lbnRDbGFzcyBHRG9tSFRNTExJRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTElFbGVtZW50IEdEb21IVE1MTElFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MTElFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTExJRWxlbWVu
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMaW5rRWxlbWVudENsYXNzIEdEb21I
VE1MTGlua0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTExpbmtFbGVtZW50
IEdEb21IVE1MTGlua0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMaW5rRWxlbWVu
dFByaXZhdGUgR0RvbUhUTUxMaW5rRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxNYXBFbGVtZW50Q2xhc3MgR0RvbUhUTUxNYXBFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxNYXBFbGVtZW50IEdEb21IVE1MTWFwRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTE1hcEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTWFwRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXJxdWVlRWxlbWVudENsYXNzIEdEb21IVE1MTWFy
cXVlZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1hcnF1ZWVFbGVtZW50
IEdEb21IVE1MTWFycXVlZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXJxdWVl
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNYXJxdWVlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxNZW51RWxlbWVudENsYXNzIEdEb21IVE1MTWVudUVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1lbnVFbGVtZW50IEdEb21IVE1MTWVudUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZW51RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNZW51
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZXRhRWxlbWVudENsYXNz
IEdEb21IVE1MTWV0YUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1ldGFF
bGVtZW50IEdEb21IVE1MTWV0YUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZXRh
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNZXRhRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxNb2RFbGVtZW50Q2xhc3MgR0RvbUhUTUxNb2RFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxNb2RFbGVtZW50IEdEb21IVE1MTW9kRWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTE1vZEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTW9kRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPYmplY3RFbGVtZW50Q2xhc3MgR0RvbUhU
TUxPYmplY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPYmplY3RFbGVt
ZW50IEdEb21IVE1MT2JqZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9iamVj
dEVsZW1lbnRQcml2YXRlIEdEb21IVE1MT2JqZWN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxPTGlzdEVsZW1lbnRDbGFzcyBHRG9tSFRNTE9MaXN0RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT0xpc3RFbGVtZW50IEdEb21IVE1MT0xpc3RFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT0xpc3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TE9MaXN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRHcm91cEVs
ZW1lbnRDbGFzcyBHRG9tSFRNTE9wdEdyb3VwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MT3B0R3JvdXBFbGVtZW50IEdEb21IVE1MT3B0R3JvdXBFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MT3B0R3JvdXBFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE9wdEdyb3Vw
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25FbGVtZW50Q2xh
c3MgR0RvbUhUTUxPcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxP
cHRpb25FbGVtZW50IEdEb21IVE1MT3B0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTE9wdGlvbkVsZW1lbnRQcml2YXRlIEdEb21IVE1MT3B0aW9uRWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbkNsYXNzIEdEb21IVE1MT3B0
aW9uc0NvbGxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uIEdEb21IVE1MT3B0aW9uc0NvbGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxPcHRpb25zQ29sbGVjdGlvblByaXZhdGUgR0RvbUhUTUxPcHRpb25zQ29sbGVjdGlvblByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Q2xhc3MgR0RvbUhU
TUxQYXJhZ3JhcGhFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50IEdEb21IVE1MUGFyYWdyYXBoRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTFBhcmFncmFwaEVsZW1lbnRQcml2YXRlIEdEb21IVE1MUGFyYWdyYXBoRWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhbUVsZW1lbnRDbGFzcyBHRG9tSFRNTFBh
cmFtRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50IEdE
b21IVE1MUGFyYW1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50
UHJpdmF0ZSBHRG9tSFRNTFBhcmFtRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxQcmVFbGVtZW50Q2xhc3MgR0RvbUhUTUxQcmVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxQcmVFbGVtZW50IEdEb21IVE1MUHJlRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTFByZUVsZW1lbnRQcml2YXRlIEdEb21IVE1MUHJlRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxRdW90ZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFF1b3Rl
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50IEdEb21I
VE1MUXVvdGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTFF1b3RlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxTY3JpcHRFbGVtZW50Q2xhc3MgR0RvbUhUTUxTY3JpcHRFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxTY3JpcHRFbGVtZW50IEdEb21IVE1MU2NyaXB0RWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tSFRNTFNjcmlwdEVsZW1lbnRQcml2YXRlIEdEb21IVE1MU2NyaXB0
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTZWxlY3RFbGVtZW50Q2xh
c3MgR0RvbUhUTUxTZWxlY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxT
ZWxlY3RFbGVtZW50IEdEb21IVE1MU2VsZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
SFRNTFNlbGVjdEVsZW1lbnRQcml2YXRlIEdEb21IVE1MU2VsZWN0RWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTdHlsZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFN0eWxlRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50IEdEb21IVE1M
U3R5bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50UHJpdmF0
ZSBHRG9tSFRNTFN0eWxlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50IEdEb21IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnRQcml2YXRlIEdEb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUNlbGxF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNlbGxFbGVtZW50IEdE
b21IVE1MVGFibGVDZWxsRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ2Vs
bEVsZW1lbnRQcml2YXRlIEdEb21IVE1MVGFibGVDZWxsRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFzcyBHRG9tSFRNTFRhYmxlQ29sRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDb2xFbGVtZW50IEdEb21I
VE1MVGFibGVDb2xFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDb2xFbGVt
ZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlQ29sRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxUYWJsZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFRhYmxlRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVFbGVtZW50IEdEb21IVE1MVGFibGVFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRh
YmxlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZVJvd0VsZW1l
bnRDbGFzcyBHRG9tSFRNTFRhYmxlUm93RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MVGFibGVSb3dFbGVtZW50IEdEb21IVE1MVGFibGVSb3dFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MVGFibGVSb3dFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlUm93RWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Q2xhc3MgR0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IEdEb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRQcml2YXRlIEdEb21I
VE1MVGFibGVTZWN0aW9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnRDbGFzcyBHRG9tSFRNTFRleHRBcmVhRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MVGV4dEFyZWFFbGVtZW50IEdEb21IVE1MVGV4dEFyZWFFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TFRleHRBcmVhRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUaXRsZUVs
ZW1lbnRDbGFzcyBHRG9tSFRNTFRpdGxlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MVGl0bGVFbGVtZW50IEdEb21IVE1MVGl0bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MVGl0bGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRpdGxlRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxVTGlzdEVsZW1lbnRDbGFzcyBHRG9tSFRNTFVMaXN0
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50IEdEb21I
VE1MVUxpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50UHJp
dmF0ZSBHRG9tSFRNTFVMaXN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUlt
YWdlRGF0YUNsYXNzIEdEb21JbWFnZURhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSW1h
Z2VEYXRhIEdEb21JbWFnZURhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUltYWdlRGF0YVByaXZh
dGUgR0RvbUltYWdlRGF0YVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUphdmFTY3JpcHRD
YWxsRnJhbWVDbGFzcyBHRG9tSmF2YVNjcmlwdENhbGxGcmFtZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21KYXZhU2NyaXB0Q2FsbEZyYW1lIEdEb21KYXZhU2NyaXB0Q2FsbEZyYW1lOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21KYXZhU2NyaXB0Q2FsbEZyYW1lUHJpdmF0ZSBHRG9tSmF2YVNjcmlw
dENhbGxGcmFtZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUtleWJvYXJkRXZlbnRDbGFz
cyBHRG9tS2V5Ym9hcmRFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXlib2FyZEV2
ZW50IEdEb21LZXlib2FyZEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXlib2FyZEV2ZW50
UHJpdmF0ZSBHRG9tS2V5Ym9hcmRFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxv
Y2F0aW9uQ2xhc3MgR0RvbUxvY2F0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxvY2F0
aW9uIEdEb21Mb2NhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTG9jYXRpb25Qcml2YXRlIEdE
b21Mb2NhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lZGlhTGlzdENsYXNzIEdE
b21NZWRpYUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWVkaWFMaXN0IEdEb21NZWRp
YUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lZGlhTGlzdFByaXZhdGUgR0RvbU1lZGlhTGlz
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VFdmVudENsYXNzIEdEb21NZXNz
YWdlRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWVzc2FnZUV2ZW50IEdEb21NZXNz
YWdlRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VFdmVudFByaXZhdGUgR0RvbU1l
c3NhZ2VFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVUeXBlQXJyYXlDbGFz
cyBHRG9tTWltZVR5cGVBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUFy
cmF5IEdEb21NaW1lVHlwZUFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUFycmF5
UHJpdmF0ZSBHRG9tTWltZVR5cGVBcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1p
bWVUeXBlQ2xhc3MgR0RvbU1pbWVUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVU
eXBlIEdEb21NaW1lVHlwZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWltZVR5cGVQcml2YXRlIEdE
b21NaW1lVHlwZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1vdXNlRXZlbnRDbGFzcyBH
RG9tTW91c2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3VzZUV2ZW50IEdEb21N
b3VzZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3VzZUV2ZW50UHJpdmF0ZSBHRG9tTW91
c2VFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU11dGF0aW9uRXZlbnRDbGFzcyBH
RG9tTXV0YXRpb25FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlvbkV2ZW50
IEdEb21NdXRhdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlvbkV2ZW50UHJp
dmF0ZSBHRG9tTXV0YXRpb25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hbWVk
Tm9kZU1hcENsYXNzIEdEb21OYW1lZE5vZGVNYXBDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
TmFtZWROb2RlTWFwIEdEb21OYW1lZE5vZGVNYXA7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hbWVk
Tm9kZU1hcFByaXZhdGUgR0RvbU5hbWVkTm9kZU1hcFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbU5hdmlnYXRvckNsYXNzIEdEb21OYXZpZ2F0b3JDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tTmF2aWdhdG9yIEdEb21OYXZpZ2F0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hdmlnYXRv
clByaXZhdGUgR0RvbU5hdmlnYXRvclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVD
bGFzcyBHRG9tTm9kZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlRmlsdGVyQ2xhc3Mg
R0RvbU5vZGVGaWx0ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUZpbHRlciBHRG9t
Tm9kZUZpbHRlcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUZpbHRlclByaXZhdGUgR0RvbU5v
ZGVGaWx0ZXJQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlIEdEb21Ob2RlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlSXRlcmF0b3JDbGFzcyBHRG9tTm9kZUl0ZXJhdG9yQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVJdGVyYXRvciBHRG9tTm9kZUl0ZXJhdG9yOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlSXRlcmF0b3JQcml2YXRlIEdEb21Ob2RlSXRlcmF0b3JQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlTGlzdENsYXNzIEdEb21Ob2RlTGlzdENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlTGlzdCBHRG9tTm9kZUxpc3Q7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbU5vZGVMaXN0UHJpdmF0ZSBHRG9tTm9kZUxpc3RQcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21Ob2RlUHJpdmF0ZSBHRG9tTm9kZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbU5vdGF0aW9uQ2xhc3MgR0RvbU5vdGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bU5vdGF0aW9uIEdEb21Ob3RhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm90YXRpb25Qcml2
YXRlIEdEb21Ob3RhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU92ZXJmbG93RXZl
bnRDbGFzcyBHRG9tT3ZlcmZsb3dFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21PdmVy
Zmxvd0V2ZW50IEdEb21PdmVyZmxvd0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21PdmVyZmxv
d0V2ZW50UHJpdmF0ZSBHRG9tT3ZlcmZsb3dFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVBsdWdpbkFycmF5Q2xhc3MgR0RvbVBsdWdpbkFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVBsdWdpbkFycmF5IEdEb21QbHVnaW5BcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
UGx1Z2luQXJyYXlQcml2YXRlIEdEb21QbHVnaW5BcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVBsdWdpbkNsYXNzIEdEb21QbHVnaW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
UGx1Z2luIEdEb21QbHVnaW47Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVBsdWdpblByaXZhdGUgR0Rv
bVBsdWdpblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlv
bkNsYXNzIEdEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uIEdEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb247Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvblByaXZhdGUgR0RvbVByb2Nlc3Np
bmdJbnN0cnVjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVByb2dyZXNzRXZlbnRD
bGFzcyBHRG9tUHJvZ3Jlc3NFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9ncmVz
c0V2ZW50IEdEb21Qcm9ncmVzc0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9ncmVzc0V2
ZW50UHJpdmF0ZSBHRG9tUHJvZ3Jlc3NFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVJhbmdlQ2xhc3MgR0RvbVJhbmdlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJhbmdlRXhj
ZXB0aW9uQ2xhc3MgR0RvbVJhbmdlRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVJhbmdlRXhjZXB0aW9uIEdEb21SYW5nZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
UmFuZ2VFeGNlcHRpb25Qcml2YXRlIEdEb21SYW5nZUV4Y2VwdGlvblByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVJhbmdlIEdEb21SYW5nZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUmFuZ2VQ
cml2YXRlIEdEb21SYW5nZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJlY3RDbGFzcyBH
RG9tUmVjdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21SZWN0IEdEb21SZWN0OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21SZWN0UHJpdmF0ZSBHRG9tUmVjdFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVNjcmVlbkNsYXNzIEdEb21TY3JlZW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
U2NyZWVuIEdEb21TY3JlZW47Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNjcmVlblByaXZhdGUgR0Rv
bVNjcmVlblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTEVycm9yQ2xhc3MgR0RvbVNR
TEVycm9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTEVycm9yIEdEb21TUUxFcnJvcjsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMRXJyb3JQcml2YXRlIEdEb21TUUxFcnJvclByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldENsYXNzIEdEb21TUUxSZXN1bHRTZXRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMUmVzdWx0U2V0IEdEb21TUUxSZXN1bHRTZXQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldFByaXZhdGUgR0RvbVNRTFJlc3VsdFNl
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzcyBH
RG9tU1FMUmVzdWx0U2V0Um93TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxSZXN1
bHRTZXRSb3dMaXN0IEdEb21TUUxSZXN1bHRTZXRSb3dMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21TUUxSZXN1bHRTZXRSb3dMaXN0UHJpdmF0ZSBHRG9tU1FMUmVzdWx0U2V0Um93TGlzdFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0aW9uQ2xhc3MgR0RvbVNRTFRyYW5z
YWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0aW9uIEdEb21TUUxU
cmFuc2FjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMVHJhbnNhY3Rpb25Qcml2YXRlIEdE
b21TUUxUcmFuc2FjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0b3JhZ2VDbGFz
cyBHRG9tU3RvcmFnZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlRXZlbnRDbGFz
cyBHRG9tU3RvcmFnZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0b3JhZ2VFdmVu
dCBHRG9tU3RvcmFnZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlRXZlbnRQcml2
YXRlIEdEb21TdG9yYWdlRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdl
IEdEb21TdG9yYWdlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlUHJpdmF0ZSBHRG9tU3Rv
cmFnZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0eWxlU2hlZXRDbGFzcyBHRG9tU3R5
bGVTaGVldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0IEdEb21TdHlsZVNo
ZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0TGlzdENsYXNzIEdEb21TdHlsZVNo
ZWV0TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0TGlzdCBHRG9tU3R5
bGVTaGVldExpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0eWxlU2hlZXRMaXN0UHJpdmF0ZSBH
RG9tU3R5bGVTaGVldExpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0
UHJpdmF0ZSBHRG9tU3R5bGVTaGVldFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVRleHRD
bGFzcyBHRG9tVGV4dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0RXZlbnRDbGFzcyBH
RG9tVGV4dEV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVRleHRFdmVudCBHRG9tVGV4
dEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0RXZlbnRQcml2YXRlIEdEb21UZXh0RXZl
bnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0IEdEb21UZXh0OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21UZXh0UHJpdmF0ZSBHRG9tVGV4dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVRyZWVXYWxrZXJDbGFzcyBHRG9tVHJlZVdhbGtlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21UcmVlV2Fsa2VyIEdEb21UcmVlV2Fsa2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UcmVl
V2Fsa2VyUHJpdmF0ZSBHRG9tVHJlZVdhbGtlclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVVJRXZlbnRDbGFzcyBHRG9tVUlFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21VSUV2
ZW50IEdEb21VSUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21VSUV2ZW50UHJpdmF0ZSBHRG9t
VUlFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
Q2xhc3MgR0RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50IEdEb21XZWJLaXRBbmltYXRpb25FdmVudDsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tV2ViS2l0QW5pbWF0aW9uRXZlbnRQcml2YXRlIEdEb21XZWJLaXRBbmltYXRp
b25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlQ2xhc3MgR0RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlIEdEb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVQcml2YXRlIEdE
b21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdl
YktpdFRyYW5zaXRpb25FdmVudENsYXNzIEdEb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50IEdEb21XZWJLaXRUcmFu
c2l0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdFRyYW5zaXRpb25FdmVudFBy
aXZhdGUgR0RvbVdlYktpdFRyYW5zaXRpb25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVdoZWVsRXZlbnRDbGFzcyBHRG9tV2hlZWxFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21XaGVlbEV2ZW50IEdEb21XaGVlbEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XaGVl
bEV2ZW50UHJpdmF0ZSBHRG9tV2hlZWxFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVhNTEh0dHBSZXF1ZXN0Q2xhc3MgR0RvbVhNTEh0dHBSZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3MgR0RvbVhNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uIEdEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb25Qcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvblBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0IEdEb21YTUxIdHRwUmVx
dWVzdDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1MSHR0cFJlcXVlc3RQcml2YXRlIEdEb21YTUxI
dHRwUmVxdWVzdFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudENsYXNzIEdEb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50IEdEb21YTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudFByaXZhdGUgR0RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3MgR0RvbVhN
TEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1
ZXN0VXBsb2FkIEdEb21YTUxIdHRwUmVxdWVzdFVwbG9hZDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
WE1MSHR0cFJlcXVlc3RVcGxvYWRQcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdFVwbG9hZFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTFNlcmlhbGl6ZXJDbGFzcyBHRG9tWE1MU2VyaWFs
aXplckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyIEdEb21YTUxTZXJp
YWxpemVyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyUHJpdmF0ZSBHRG9tWE1M
U2VyaWFsaXplclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXZhbHVhdG9yQ2xh
c3MgR0RvbVhQYXRoRXZhbHVhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXZh
bHVhdG9yIEdEb21YUGF0aEV2YWx1YXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhFdmFs
dWF0b3JQcml2YXRlIEdEb21YUGF0aEV2YWx1YXRvclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVhQYXRoRXhjZXB0aW9uQ2xhc3MgR0RvbVhQYXRoRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVhQYXRoRXhjZXB0aW9uIEdEb21YUGF0aEV4Y2VwdGlvbjsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tWFBhdGhFeGNlcHRpb25Qcml2YXRlIEdEb21YUGF0aEV4Y2VwdGlvblByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhwcmVzc2lvbkNsYXNzIEdEb21YUGF0aEV4
cHJlc3Npb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhFeHByZXNzaW9uIEdEb21Y
UGF0aEV4cHJlc3Npb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhwcmVzc2lvblByaXZh
dGUgR0RvbVhQYXRoRXhwcmVzc2lvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRo
TlNSZXNvbHZlckNsYXNzIEdEb21YUGF0aE5TUmVzb2x2ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tWFBhdGhOU1Jlc29sdmVyIEdEb21YUGF0aE5TUmVzb2x2ZXI7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbVhQYXRoTlNSZXNvbHZlclByaXZhdGUgR0RvbVhQYXRoTlNSZXNvbHZlclByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoUmVzdWx0Q2xhc3MgR0RvbVhQYXRoUmVzdWx0Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoUmVzdWx0IEdEb21YUGF0aFJlc3VsdDsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhSZXN1bHRQcml2YXRlIEdEb21YUGF0aFJlc3VsdFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhTTFRQcm9jZXNzb3JDbGFzcyBHRG9tWFNMVFByb2Nl
c3NvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yIEdEb21YU0xUUHJv
Y2Vzc29yOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yUHJpdmF0ZSBHRG9tWFNM
VFByb2Nlc3NvclByaXZhdGU7CisqLworCitHX0VORF9ERUNMUworCisjZW5kaWYKSW5kZXg6IFdl
YkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNv
cHkpCkBAIC0yLDYgKzIsNyBAQAogV2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQogCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVf
REVGSU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTIDo9CiBIVE1M
X0ZFQVRVUkVTIDo9CiAKQEAgLTksNiArMTAsNyBAQAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09S
RFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCiB3ZWJjb3JlX2NwcGZs
YWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsgXApAQCAtMjksNiArMzEsNyBAQAogCS1JJChzcmNkaXIpL1dlYkNv
cmUveG1sIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2h0bWwgXAogCS1JJChzcmNkaXIpL1dlYkNv
cmUvYmluZGluZ3MvanMgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbSBcCiAJ
LUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAJLUkkKHNyY2Rp
cikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAgXAogCS1JJChzcmNkaXIpL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmIFwKQEAgLTU1LDcgKzU4LDcgQEAKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JHQkNvbG9yLmx1dC5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVu
dEJhc2VUYWJsZS5jcHAKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJh
c2VUYWJsZS5jcHAgCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvQ1NTR3JhbW1hci5jcHAgXApAQCAtMzU4LDcgKzM2MSw1ODcgQEAKIAlEZXJpdmVkU291cmNl
cy9Vc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHls
ZVNoZWV0c0RhdGEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHAgXAotCURlcml2
ZWRTb3VyY2VzL1hNTE5hbWVzLmgKKwlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQXR0ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21BdHRyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUJh
ckluZm8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0No
YXJzZXRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ1NTRm9udEZhY2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NJbXBvcnRS
dWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNTU01lZGlhUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NN
ZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUNTU1BhZ2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQcmltaXRpdmVWYWx1
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZURl
Y2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVJ1bGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
U1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1N0eWxlU2hlZXQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYWx1ZUxpc3QuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
U1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzUnVs
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DYW52YXNHcmFkaWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
YW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2FudmFzUGF0dGVybi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNQYXR0ZXJuLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1Bp
eGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ2hhcmFjdGVyRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2xpcGJvYXJkLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ29tbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Db21tZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvbnNvbGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NQ29yZUV4Y2VwdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01J
bXBsZW1lbnRhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NUGFyc2VyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9N
U2VsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVNlbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURP
TVdpbmRvdy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50RnJh
Z21lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bURvY3VtZW50VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5UmVmZXJl
bmNlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBbmNob3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
QXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXBwbGV0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TEJSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQlJFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTEJhc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUZv
bnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRm9udEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQm9k
eUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MQ2FudmFzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
Q2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERM
aXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxEaXZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRG9jdW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MRW1iZWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
RmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGaWVsZFNldEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRm9ybUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRnJhbWVT
ZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIZWFkaW5nRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSHRtbEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbWFn
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTElucHV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJ
c0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExJRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMYWJl
bEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MTGlua0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExp
bmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFwRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXJx
dWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1lbnVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZXRh
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxPTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9MaXN0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9w
dEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQ
YXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUGFyYW1FbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQcmVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTY3JpcHRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU3R5
bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxl
Q29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRp
dGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IaXN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhpc3RvcnkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21J
bWFnZURhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tS2V5Ym9hcmRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21LZXli
b2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Mb2NhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVkaWFMaXN0
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTWVzc2FnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lc3NhZ2VFdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1pbWVUeXBlQXJyYXkuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTW91c2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Nb3VzZUV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21NdXRhdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbU11dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5hbWVkTm9kZU1h
cC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbU5hdmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYXZpZ2F0b3Iu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Tm9kZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlSXRlcmF0
b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Ob2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tTm90YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU92ZXJmbG93RXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVBsdWdpbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2lu
QXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJv
Z3Jlc3NFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tUmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJlY3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TY3JlZW4u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGV4dC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHRF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21UcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21VSUV2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdEFu
aW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XaGVlbEV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RF
eGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxT
ZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVhTTFRQcm9jZXNzb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21BdHRyLmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tQmFySW5mby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
QmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNEQVRBU2VjdGlvbi5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ0RBVEFTZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ1NTQ2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNT
U0NoYXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTRm9udEZhY2VSdWxl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DU1NJbXBvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTTWVk
aWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NNZWRpYVJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUHJpbWl0aXZlVmFs
dWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUnVs
ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1J1bGVMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5
bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NWYWx1
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NT
VmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVz
UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUNhbnZhc1BhdHRlcm4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNh
bnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21DaGFyYWN0ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2xpcGJvYXJk
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Db21t
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50
ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NSW1w
bGVtZW50YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTUltcGxlbWVudGF0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21ET01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21E
T01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTVNlbGVjdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3Vt
ZW50VHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRUeXBlLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUVudGl0eS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tRW50aXR5UmVmZXJlbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FbnRpdHlS
ZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVu
dEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnRFeGNlcHRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21GaWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRmlsZUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUZpbGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTEFuY2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFwcGxldEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBcHBsZXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQlJF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJhc2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
QmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQm9keUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxCb2R5RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MQnV0dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxDb2xsZWN0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRGl2RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxFbWJlZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
RmllbGRTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEZvbnRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGcmFt
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MSHRtbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJ
RnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSUZyYW1lRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MSW5wdXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElz
SW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSXNJbmRleEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTExhYmVsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMZWdlbmRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTGVnZW5kRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxN
YXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1hcnF1ZWVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxNZXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1ldGFF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPYmpl
Y3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT2JqZWN0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxP
cHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUGFyYWdyYXBoRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MUHJlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTFNlbGVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
VGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGl0bGVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhp
c3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21JbWFnZURhdGEuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUphdmFT
Y3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tTG9jYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTWVkaWFMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lc3NhZ2VF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1p
bWVUeXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlQXJyYXku
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0
YXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0YXRpb25FdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
TmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21OYXZpZ2F0b3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Ob2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUZpbHRlci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbU5vZGVJdGVyYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUl0ZXJh
dG9yLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm90
YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vdGF0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdp
bkFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Qcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
UmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdlLmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmVjdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU2NyZWVuLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0eWxlU2hlZXRM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRyZWVXYWxrZXIuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21VSUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0QW5pbWF0
aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVdlYktpdEFuaW1hdGlvbkV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21YTUxTZXJpYWxpemVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxTZXJpYWxp
emVyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5oICBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggCiAKIElETF9CSU5ESU5H
UyArPSAgXAogCVdlYkNvcmUvY3NzL0NvdW50ZXIuaWRsIFwKQEAgLTcwMSw2ICsxMjg0LDE2IEBA
CiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU3Ry
aW5nU291cmNlUHJvdmlkZXIuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5n
LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L2dkb21ET01PYmplY3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2Jq
ZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmggXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmggXAogCVdlYkNvcmUvYnJpZGdlL05QX2pzb2Jq
ZWN0LmNwcCBcCiAJV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuaCBcCiAJV2ViQ29yZS9icmlk
Z2UvYy9jX2NsYXNzLmNwcCBcCkBAIC0yMDA4LDkgKzI2MDEsMTIgQEAKICMgLS0tLQogaWYgRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAogd2ViY29yZV9idWlsdF9z
b3VyY2VzICs9IFwKLQlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCisJ
RGVyaXZlZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bURPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKQEAgLTIwNTIsNiArMjY0OCw3
IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9EQVRBQkFTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX0RBVEFCQVNFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9E
QVRBQkFTRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
SlNEYXRhYmFzZS5jcHAgXApAQCAtMjA2Myw3ICsyNjYwLDI3IEBACiAJRGVyaXZlZFNvdXJjZXMv
SlNTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxSZXN1bHRT
ZXRSb3dMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uY3BwIFwKLQlE
ZXJpdmVkU291cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmgKKwlEZXJpdmVkU291cmNlcy9KU1NRTFRy
YW5zYWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21EYXRhYmFzZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMRXJyb3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNRTFJlc3VsdFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxSZXN1bHRTZXQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMVHJhbnNhY3Rp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21EYXRhYmFzZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxF
cnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNl
dFJvd0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNldFJvd0xp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMVHJhbnNhY3Rpb24uaAogCiBJRExfQklORElOR1MgKz0g
XAogCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXApAQCAtMjEzOCwxMiArMjc1NSwyMSBA
QAogIyAtLS0tCiBpZiBFTkFCTEVfRE9NX1NUT1JBR0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFC
TEVfRE9NX1NUT1JBR0U9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRT
b3VyY2VzL0pTU3RvcmFnZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU3Rv
cmFnZUV2ZW50LmgKKwlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU3RvcmFnZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TdG9yYWdlLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU3RvcmFnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbVN0b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3Rv
cmFnZUV2ZW50LmgKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZS5pZGwgXApAQCAtMjIwMyw2ICsyODI5LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCiBG
RUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJ
TkVTX0dET00gKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklE
RU89MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMjI1LDcgKzI4
NTIsMzUgQEAKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9KU1RpbWVSYW5nZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suY3Bw
IFwKLQlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMvSlNW
b2lkQ2FsbGJhY2suaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBdWRpb0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTE1lZGlhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
TWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFZpZGVvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21NZWRpYUVycm9yLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGltZVJhbmdlcy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVZvaWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MTWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTFNvdXJjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxT
b3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UaW1lUmFuZ2Vz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Wb2lkQ2FsbGJhY2suaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvaHRtbC9IVE1M
QXVkaW9FbGVtZW50LmlkbCBcCkBAIC0yMjY5LDYgKzI5MjQsNyBAQAogIyAtLS0tCiBpZiBFTkFC
TEVfWFBBVEgKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YUEFUSD0xCitG
RUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfWFBBVEg9MQogCiB3ZWJjb3JlX2NwcGZsYWdz
ICs9IC1ERU5BQkxFX1hQQVRIPTEKIApAQCAtMjI4NCw3ICsyOTQwLDI3IEBACiAJRGVyaXZlZFNv
dXJjZXMvSlNYUGF0aFJlc3VsdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTWFBhdGhSZXN1bHQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMv
WFBhdGhHcmFtbWFyLmgKKwlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQ
YXRoRXZhbHVhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tWFBhdGhFeHByZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXhw
cmVzc2lvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhSZXN1bHQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV2YWx1YXRvci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhFeGNl
cHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV4cHJlc3Npb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tWFBhdGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhSZXN1
bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoUmVzdWx0LmgKIAogSURMX0JJ
TkRJTkdTICs9IFwKIAlXZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwgXApAQCAtMjM0OSw2
ICszMDI1LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1hTTFQKIEZFQVRVUkVfREVGSU5FU19KQVZB
U0NSSVBUICs9IEVOQUJMRV9YU0xUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9Y
U0xUPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YU0xUPTEKIApAQCAtMjM3Miw2
ICszMDQ5LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1NWRwogRkVBVFVSRV9ERUZJTkVTX0pBVkFT
Q1JJUFQgKz0gRU5BQkxFX1NWRz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NW
Rz0xIC0gYmlnIFRPRE8hIDopCiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTICs9ICQoV2Vi
Q29yZSkvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gCiBXRUJDT1JFX0NTU19WQUxVRV9LRVlX
T1JEUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNjQ5LDYg
KzMzMjcsMjczIEBACiAJRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9YTGlua05hbWVzLmNwcAogCitub3QteWV0OgorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdB
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0FuaW1hdGVkQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQm9vbGVh
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVk
SW50ZWdlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdBbmltYXRlZExlbmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVk
TnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdBbmltYXRlZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRS
ZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRpb25FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDaXJjbGVFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0NpcmNsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0NsaXBQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDbGlwUGF0aEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0NvbG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
Q3Vyc29yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDdXJzb3JFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRGVmc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RGVmc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEb2N1bWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFu
Y2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudEluc3RhbmNlLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdF
bGxpcHNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGxpcHNlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVu
ZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVuZEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFQ29tcG9zaXRlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHRkVGbG9vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZF
RnVuY0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0FFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNCRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNCRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVGdW5jR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jR0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUlt
YWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUltYWdlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRkVNZXJnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU1lcmdl
Tm9kZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU9mZnNldEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNw
b3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVTcG90TGlnaHRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVRpbGVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRmlsdGVyRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGaWx0ZXJFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGb250RmFjZU5hbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFj
ZVNyY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VTcmNFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
R0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdHbHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0dyYWRpZW50RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xlbmd0aC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0xlbmd0aExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGVuZ3RoTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hcmtlckVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTWFza0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
TWFza0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hdHJpeC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdNYXRyaXguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01l
dGFkYXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdNZXRhZGF0YUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR051bWJl
ci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWlu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWludC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWcuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNl
Z0FyY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjQWJzLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdBcmNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdDbG9zZVBhdGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0
aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJl
bC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b0Ficy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BhdGhTZWdMaW5ldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNl
Z0xpbmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNh
bEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdNb3ZldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b0Fi
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXR0ZXJuRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXR0
ZXJuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9pbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHUG9pbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvaW50
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2ludExpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BvbHlnb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BvbHlnb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2x5bGluZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9seWxpbmVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlY3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlbmRlcmluZ0ludGVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1NWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU1ZHRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NldEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0b3BFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1N0b3BFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTdHJpbmdM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0cmluZ0xpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1N0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N3aXRjaEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU3dpdGNoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdTeW1ib2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHVFNwYW5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RT
cGFuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHVGV4dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQYXRoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUZXh0UGF0aEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Rp
dGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVHJhbnNmb3JtLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RyYW5zZm9ybS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUcmFuc2Zvcm1M
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVbml0VHlwZXMuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVc2VF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1VzZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1ZpZXdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdab29tRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9CSU5ESU5HUyAr
PSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcv
U1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTMyMjgsMzYgKzQxNzMsNDIgQEAKICMgU1ZHIEZlYXR1cmVz
CiBpZiBFTkFCTEVfU1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19VU0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfVVNFPTEgIyBi
aWcgVE9ETyEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJjb3JlX2NwcGZs
YWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVD0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT1JFSUdOX09C
SkVDVD0xIAogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogd2Vi
Y29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogZW5kaWYKIAog
aWYgRU5BQkxFX1NWR19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19GT05UUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT05UUz0x
CiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9
IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZJTFRFUlMKIEZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCisjRkVBVFVS
RV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19GRUFUVVJFUyArPSBF
TkFCTEVfU1ZHX0ZJTFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRklM
VEVSUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FT
X0lNQUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVu
ZGlmCiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5B
QkxFX1NWR19BTklNQVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9O
PTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpA
QCAtMzI2NSwxMyArNDIxNiwxNCBAQAogIyBTVkcgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMgKG5l
ZWQgdG8gcGFzcyBhbiBleHRyYSBmbGFnIGlmIHN2ZyBleHBlcmltZW50YWwgZmVhdHVyZXMgYXJl
IGVuYWJsZWQpCiBEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHA6IERlcml2ZWRTb3VyY2VzL1NW
R0VsZW1lbnRGYWN0b3J5LmNwcDsKIERlcml2ZWRTb3VyY2VzL0pTU1ZHRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCitEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMv
U1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwogRGVyaXZlZFNvdXJjZXMvU1ZH
RWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29y
ZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkkKFBFUkwpIC1J
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0
YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmluZXMg
IiQoU1ZHX0ZFQVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAt
SSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3Zn
dGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVz
ICIkKFNWR19GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIGVsc2UKIERl
cml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9u
YW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJz
LmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChX
ZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmlu
IC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAk
KFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiAK
IGVuZGlmICMgU1ZHX0ZMQUdTCiAKQEAgLTMyODAsNyArNDIzMiw3IEBACiBEZXJpdmVkU291cmNl
cy9YTGlua05hbWVzLmg6IERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwOwogCiBEZXJpdmVk
U291cmNlcy9YTGlua05hbWVzLmNwcCA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChX
ZWJDb3JlKS9zdmcveGxpbmthdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0
RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGlyICIk
KEdFTlNPVVJDRVMpIiAKIAogZW5kaWYgIyBFTkQgRU5BQkxFX1NWRwogCkBAIC0zMzYxLDE2ICs0
MzEzLDE2IEBACiAKIGlmIEhUTUxfRkxBR1MKIERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHA6
ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1l
cy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAtSSQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxU
YWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4g
LS1leHRyYURlZmluZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJD
RVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQo
V2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKEhUTUxfRkVBVFVSRVMpIiAtLW91
dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiBlbHNlCiBEZXJpdmVkU291cmNlcy9IVE1MTmFtZXMu
Y3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFn
TmFtZXMuaW4gJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgotCSQoUEVSTCkg
LUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9I
VE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2Jp
bmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4g
LS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tb3V0cHV0RGly
ICIkKEdFTlNPVVJDRVMpIiAKIGVuZGlmICMgSFRNTF9GTEFHUwogCiBEZXJpdmVkU291cmNlcy9Y
TUxOYW1lcy5oOiBEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2Vz
L1hNTE5hbWVzLmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3ht
bC94bWxhdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwg
LS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VS
Q0VTKSIKKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMg
JChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAog
CiB2cGF0aCAlLmlkbCA9IFwKICAgICAkKFdlYkNvcmUpIFwKQEAgLTMzODYsNiArNDMzOCwxNSBA
QAogICAgICQoV2ViQ29yZSkveG1sIFwKICAgICAkKFdlYkNvcmUpL3BsdWdpbnMKIAorRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dkb20lLmg7CisKK0Rlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tJS5jcHA6IERlcml2ZWRTb3VyY2VzL2dkb20lLmNwcDsKKworRGVyaXZl
ZFNvdXJjZXMvZ2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbSUuY3BwOworCitEZXJpdmVkU291
cmNlcy9nZG9tJS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUt
YmluZGluZ3MucGwgLS1pbmNsdWRlICQoV2ViQ29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUp
L2h0bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkvY3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2Ug
LS1pbmNsdWRlICQoV2ViQ29yZSkveG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1
dERpciAiJChHRU5TT1VSQ0VTKSIgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FU19HRE9NKSIg
LS1nZW5lcmF0b3IgR09iamVjdCAkPAorCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNv
dXJjZXMvSlMlLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRT
X0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CkBAIC0zNDAxLDYgKzQzNjIsNyBAQAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVz
UGFyc2VyLnBtIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3Mu
cGwgXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gXAorCVdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBcCiAJV2ViQ29y
ZS9jc3MvaHRtbDQuY3NzIFwKIAlXZWJDb3JlL2Nzcy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nz
cy92aWV3LXNvdXJjZS5jc3MgXApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVu
dFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9nZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5n
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcu
aCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tRXZlbnRUYXJn
ZXROb2RlLmgiCisjaW5jbHVkZSAicHJpdmdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRl
ICJnbGliLW9iamVjdC5oIgorCitjbGFzcyBHU3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgor
ICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJp
bmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAg
R1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBn
X3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9Cit9OworCitleHRlcm4gIkMiIHsK
KworI2RlZmluZSBfR19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKQor
Cit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdk
b21FdmVudFRhcmdldE5vZGUgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
CisJLyoKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtID0gZ2RvbV9ldmVudF90
YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh0aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZXZl
bnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJpbmcoZXZlbnRfdGFyZ2V0X25v
ZGVfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRFdmVudFRhcmdldE5vZGUoX2dfZXZlbnRfdGFy
Z2V0X25vZGVfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRh
cmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAi
Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZnZG9tRXZlbnRUYXJnZXROb2Rl
LmgiCisjaW5jbHVkZSAiaW50Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZn
ZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKwor
V2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21F
dmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZSAqcmVz
OworCXJlcyA9IHN0YXRpY19jYXN0PEdET01FdmVudFRhcmdldE5vZGUqPihnZG9tX2RvbV9vYmpl
Y3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7CisJcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHJlcy0+aW1wbCgpKTsKK30KKworCitleHRlcm4g
IkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRXZlbnRUYXJnZXROb2RlLCBnZG9tX2V2ZW50X3Rh
cmdldF9ub2RlLCBHRE9NX1RZUEVfTk9ERSk7CisKKy8qCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdl
dE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKml0ZW07
Cit9OyAgCisqLworCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUo
b2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRf
VEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKSkKKworLyoKK3ZvaWQKK2dk
b21fZXZlbnRfdGFyZ2V0X25vZGVfc2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVx
dWVzdCwgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSkKK3sKKyAgICBHZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZB
VEUocmVxdWVzdCk7CisgICAgcHJpdi0+aXRlbSA9IGl0ZW07Cit9CisqLworCitzdGF0aWMgdm9p
ZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAg
ICAvKkdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RF
KG9iamVjdCk7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSByZXF1ZXN0
LT5wcml2OyovCisgICAgCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQoR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKiBy
ZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxp
emUgPSBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplOworICAgIAorICAgIC8qZ190eXBl
X2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21FdmVudFRhcmdldE5v
ZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9p
bml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJn
ZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUo
cmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworfSAvKiBleHRl
cm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXRO
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdl
dE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRU
YXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR2RvbUV2ZW50VGFy
Z2V0Tm9kZV9IX18KKyNkZWZpbmUgX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXworI2luY2x1ZGUg
ImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+CisKK0dfQkVH
SU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50
VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2Rv
bUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOworCisjZGVmaW5lIEdET01fVFlQRV9FVkVOVF9UQVJHRVRf
Tk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZl
bnRUYXJnZXROb2RlKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFz
cykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRf
VEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVDbGFzcykpCisjZGVmaW5lIEdET01fSVNf
RVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9JU19F
VkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChr
bGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2RlZmluZSBHRE9NX0VWRU5U
X1RBUkdFVF9OT0RFX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNs
YXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIEdkb21F
dmVudFRhcmdldE5vZGVQcml2YXRlOworCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKworc3RydWN0
IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7CisK
KyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2Rv
bUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFzczsK
K307CisKK1dFQktJVF9HRE9NX0FQSSBHVHlwZQorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRf
dHlwZSAodm9pZCk7CisKK1dFQktJVF9HRE9NX0FQSSB2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9u
b2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXopOwor
CitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXyAqLwor
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5v
ZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50
VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTUV2ZW50
VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19Q
UklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAicHJpdmdkb21Ob2RlLmgi
CitjbGFzcyBXZWJDb3JlOjpOb2RlOworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0
Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOworCitXRUJLSVRfR0RPTV9BUEkgV2ViQ29yZTo6Tm9k
ZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5v
ZGUgKnJlcXVlc3QpOworCisjZW5kaWYKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dk
b21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJnZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworZXh0ZXJuICJD
IiB7CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01PYmpl
Y3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisJLyoKKyAgICBXZWJD
b3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKHRoaXop
OworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0X3R5cGVfYXJnID0gV2ViQ29yZTo6
U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRET01PYmplY3QoX2df
ZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGli
LW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJnZG9tRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0Lmgi
CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKEdkb21ET01PYmplY3QsIGdkb21fZG9t
X29iamVjdCwgR19UWVBFX09CSkVDVCk7CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdFByaXZhdGUg
eworICAgICBHRE9NT2JqZWN0ICptX25vZGU7Cit9OyAgCisKKyNkZWZpbmUgR0RPTV9ET01fT0JK
RUNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2Rv
bV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmpl
Y3QgKiBpdGVtKQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01f
T0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07Cisg
ICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitn
ZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAg
ICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFU
RShyZXF1ZXN0KTsKKyAgICByZXR1cm4gcHJpdi0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBn
ZG9tX2RvbV9vYmplY3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01P
YmplY3QqIHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2Jq
ZWN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgCisgICAgLypwcml2LT5tX25v
ZGUtPmltcGwoKS0+ZGVyZWYoKTsqLworCWRlbGV0ZSBwcml2LT5tX25vZGU7IC8qIGNhbGxzIG1f
aW1wbC0+ZGVyZWYoKSAqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9kb21fb2JqZWN0X3Bh
cmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9t
X29iamVjdF9jbGFzc19pbml0KEdkb21ET01PYmplY3RDbGFzcyogcmVxdWVzdENsYXNzKQorewor
ICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9kb21fb2Jq
ZWN0X2ZpbmFsaXplOworICAgIAorICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0
Q2xhc3MsIHNpemVvZihHZG9tRE9NT2JqZWN0UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9pZCBn
ZG9tX2RvbV9vYmplY3RfaW5pdChHZG9tRE9NT2JqZWN0KiByZXF1ZXN0KQoreworICAgIEdkb21E
T01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVl
c3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OworfSAgIAorCit9IC8qIGV4dGVybiAiQyIg
Ki8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NzcgQEAKKy8qCisgKiBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFU
RUQsIERPIE5PVCBFRElULgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgImdkb21IVE1MQW5jaG9yRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb21IVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MQXJl
YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJsb2NrcXVvdGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b21IVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxCdXR0b25FbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbUhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTERpcmVj
dG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MRW1iZWRFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
SFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGcmFtZVNl
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSFJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSUZy
YW1lRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
SFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTExJRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE1hcEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bUhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE9MaXN0
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxQYXJhZ3JhcGhF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFF1b3RlRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb21IVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MU2Vs
ZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MVGl0bGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxBbmNob3JF
bGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiaW50Z2RvbUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MQmFzZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1
ZGUgImludGdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRN
TEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJpbnRnZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTENh
bnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRGlyZWN0b3J5RWxl
bWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxFbWJlZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUg
ImludGdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEZvcm1FbGVt
ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSGVhZGlu
Z0VsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiaW50Z2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEh0bWxFbGVt
ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJpbnRnZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTGVnZW5k
RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTWFwRWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxNZXRhRWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxPcHRHcm91cEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJpbnRnZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFBh
cmFtRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1
ZGUgImludGdkb21IVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxTY3Jp
cHRFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5j
bHVkZSAiaW50Z2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRh
YmxlRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5o
IgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxUaXRsZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1
ZGUgImludGdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KworI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFwcGxldEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFz
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCdXR0b25FbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDYXB0
aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRExpc3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9y
bUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkaW5nRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIUkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExh
YmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTExJRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1ldGFFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT0xpc3RFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPcHRp
b25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxVTGlz
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBHRE9NTm9kZSogKCpDcmVh
dGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4pOwor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFuY2hvcldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQW5jaG9yRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcHBsZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFwcGxldEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEFwcGxldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXJlYUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZUJhc2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxCYXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVCYXNlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxCYXNlRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmxvY2txdW90ZUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEJsb2NrcXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUJvZHlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJvZHlFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxCb2R5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVCUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQlJFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCUkVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQnV0
dG9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxCdXR0b25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCdXR0b25FbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUNhbnZh
c1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MQ2FudmFzRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNh
cHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlVGFibGVDb2xXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ29sRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MVGFibGVDb2xFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZU1vZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTW9kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
TW9kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVEaXJlY3RvcnlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TERpcmVjdG9yeUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlRGl2V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXZFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxEaXZF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURM
aXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxETGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERMaXN0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVFbWJlZFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MRW1iZWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxFbWJlZEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRmllbGRTZXRXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEZpZWxkU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZvbnRXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb250RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb3JtV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxGb3JtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZyYW1l
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lU2V0V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFtZVNl
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkaW5nV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIZWFk
aW5nRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZGluZ0VsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVhZEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIUkVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEhSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVIdG1sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIdG1sRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
SHRtbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlSUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxJRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJRnJh
bWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUltYWdlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJbnB1
dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSXNJbmRleFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MSXNJbmRleEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElzSW5kZXhFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxhYmVsV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxMYWJlbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMZWdlbmRXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTExlZ2VuZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExlZ2VuZEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTElXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TExJRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTElFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxpbmtXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExpbmtFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVNYXBXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTE1hcEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlTWFycXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFycXVlZUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTE1hcnF1ZWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZU1lbnVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1lbnVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxN
ZW51RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVNZXRhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxNZXRhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWV0YUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT2JqZWN0
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxPYmplY3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9MaXN0V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxPTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9MaXN0RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPcHRHcm91cFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MT3B0R3JvdXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT3B0aW9uV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxPcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBhcmFncmFwaFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MUGFyYWdyYXBoRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYWdyYXBoRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQYXJh
bVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MUGFyYW1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJhbUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUHJlV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxQcmVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQcmVFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVF1b3RlV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxR
dW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTY3JpcHRXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNjcmlw
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNjcmlwdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2VsZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTZWxlY3RF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVN0eWxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTdHlsZUVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxUYWJsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
VGFibGVDZWxsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUZXh0QXJlYVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MVGV4dEFyZWFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGl0bGVXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTFRpdGxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGl0bGVFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlUm93V3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlUm93RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVVTGlzdFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MVUxpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxVTGlzdEVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK0dET01Ob2RlKiBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3Jl
OjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24+IG1h
cDsKKyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAgIG1hcC5zZXQoYVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYXBwbGV0
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXJlYVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
QmFzZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJsb2NrcXVvdGVUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChib2R5
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCUldyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQnV0dG9uV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVDYW52
YXNXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChk
ZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGl2V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURMaXN0
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmaWVsZHNldFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb250VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
Zm9ybVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1XcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJh
bWVTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaGVhZFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhyVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGh0bWxUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChp
ZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJhbWVXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlucHV0
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGFiZWxUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGVnZW5kVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChsaVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGlua1dyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFwV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFy
cXVlZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1ldGFUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChvYmplY3RUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9s
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0R3JvdXBXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9w
dGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocGFyYW1UYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocHJlVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChxVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHNjcmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNjcmlwdFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVN0eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJsZVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Ym9keVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
dGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGV4dEFyZWFX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlVGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRyVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHVsVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbGdyb3Vw
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhl
YWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDZUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbWFnZVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChp
bnNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aGVhZFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7Cisg
ICAgfQorCXByaW50ZigiY3JlYXRlR0RPTUhUTUxXcmFwcGVyOiAlc1xuIiwgZWxlbWVudC0+bG9j
YWxOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgQ3JlYXRlSFRNTEVsZW1lbnRX
cmFwcGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0gbWFwLmdldChlbGVtZW50LT5s
b2NhbE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCisgICAg
ICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVudCk7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEVsZW1lbnQoZWxlbWVudC5nZXQoKSk7Cit9CisKK30KKwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3ODggQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2Rl
Lm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11
ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKy8vIGdjYyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUgSGFz
aE1hcCBwb2ludGVyIHNwZWNpYWxpemF0aW9uIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQgX19H
TlVDX18gJiYgIWRlZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNkZWZp
bmUgSEFTSF9NQVBfUFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbURPTU9iamVj
dC5oIgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTUJpbmRp
bmcuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorCisjaW5j
bHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgImdkb21DU1NTdHlsZVNoZWV0LmgiCisj
aW5jbHVkZSAiaW50Z2RvbUNTU1N0eWxlU2hlZXQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgImludGdkb21Ob2RlLmgiCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIK
KworI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRl
ICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudFR5cGUu
aCIKKyNpbmNsdWRlICJFbnRpdHkuaCIKKyNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21FdmVudFRhcmdldE5vZGUuaCIK
KyNpbmNsdWRlICJnZG9tQXR0ci5oIgorI2luY2x1ZGUgImludGdkb21BdHRyLmgiCisjaW5jbHVk
ZSAiZ2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJnZG9tVGV4dC5oIgorI2luY2x1ZGUg
Imdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJnZG9tQ29tbWVudC5oIgorI2luY2x1ZGUg
Imdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgImdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgImdkb21FbnRpdHkuaCIKKyNpbmNs
dWRlICJnZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNs
dWRlICJnZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJnZG9tRW50aXR5UmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiZ2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxEb2N1
bWVudC5oIgorI2luY2x1ZGUgImdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRl
ICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlICJnZG9tQ1NTUnVsZS5oIgor
I2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgi
CisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgor
I2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5j
bHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgImdkb21DU1NDaGFyc2V0UnVsZS5o
IgorI2luY2x1ZGUgImdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tQ1NTSW1w
b3J0UnVsZS5oIgorI2luY2x1ZGUgImdkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9t
Q1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAi
Z2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
ImludGdkb21FdmVudC5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRXZl
bnQuaCIKKyNpbmNsdWRlICJnZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiZ2RvbUtleWJvYXJk
RXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbU1v
dXNlRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgImdk
b21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVByb2dyZXNzRXZlbnQuaCIKKyNpbmNs
dWRlICJnZG9tVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRl
ICJnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9t
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNp
bmNsdWRlICJNdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgorI2lu
Y2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRl
ICJVSUV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRl
ICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCisjaW5j
bHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisKKyNpbmNsdWRlICJnZG9tSFRN
TENvbGxlY3Rpb24uaCIKKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkhU
TUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisvLyBU
T0RPICNpbmNsdWRlICJpbnRnZG9tSFRNTEFsbENvbGxlY3Rpb24uaCIKKy8vIFRPRE8gI2luY2x1
ZGUgImdkb21IVE1MQWxsQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgImdkb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaCIKKy8vIGVyci4uLiAjaW5jbHVkZSAiaW50Z2RvbU5hbWVkTm9kZXNDb2xsZWN0
aW9uLmgiCisvLyBlcnIuLi4gI2luY2x1ZGUgImdkb21OYW1lZE5vZGVzQ29sbGVjdGlvbi5oIgor
CisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorI2luY2x1ZGUgImdkb21TdG9yYWdlRXZlbnQuaCIK
KyNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNp
ZiAwIC8qIFRPRE8gKi8KKyNpbmNsdWRlICJpbnRnZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgorI2VuZGlm
CisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBYWFggVE9ETyAqLworI2luY2x1
ZGUgImludGdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJnZG9tU1ZH
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgorI2VuZGlm
CisjZW5kaWYKKworI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIkdkb21TVkdFeGNl
cHRpb24uaCIKKyNpbmNsdWRlICJTVkdFeGNlcHRpb24uaCIKKyNlbmRpZgorI2VuZGlmCisKKyNp
bmNsdWRlICJpbnRnZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1J1bGUuaCIK
KyNpbmNsdWRlICJpbnRnZG9tQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNvbW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tRG9j
dW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgImludGdkb21Eb2N1bWVudFR5cGUuaCIKKyNpbmNs
dWRlICJpbnRnZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiaW50Z2RvbUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJpbnRnZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1ByaW1pdGl2
ZVZhbHVlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUVudGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
ImludGdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJpbnRnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiaW50Z2Rv
bVRleHQuaCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJp
bnRnZG9tQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU0ltcG9ydFJ1bGUu
aCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNT
U1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUg
ImludGdkb21DU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUtleWJvYXJkRXZl
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2Rv
bU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1
ZGUgImludGdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVByb2dyZXNzRXZl
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVVJ
RXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNs
dWRlICJpbnRnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVdo
ZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmgiCisjaW5jbHVkZSAiaW50Z2RvbVN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUgImludGdkb21I
VE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTENvbGxlY3Rpb24u
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
Cit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBET01PYmplY3RNYXA7Cit0eXBlZGVm
IEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBHZG9tV3JhcHBlckNhY2hlOyAvKiBBUkchIFVORkFJ
UiEgR0RPTVdyYXBwZXJDYWNoZSBpcyBpbiBXZWJDb3JlOjpEb2N1bWVudCEhICovCisKKy8vIEZv
ciBkZWJ1Z2dpbmcsIGtlZXAgYSBzZXQgb2Ygd3JhcHBlcnMgY3VycmVudGx5IHJlZ2lzdGVyZWQs
IGFuZCBjaGVjayB0aGF0CisvLyBhbGwgYXJlIHVucmVnaXN0ZXJlZCBiZWZvcmUgdGhleSBhcmUg
ZGVzdHJveWVkLiBUaGlzIGhhcyBoZWxwZWQgdXMgZml4IGF0CisvLyBsZWFzdCBvbmUgYnVnLgor
CisjaWYgMAorc3RhdGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKTsKK3N0
YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcik7CitzdGF0aWMgdm9p
ZCByZW1vdmVXcmFwcGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVycyk7CisKKyNp
ZmRlZiBOREVCVUcKKworc3RhdGljIGlubGluZSB2b2lkIGFkZFdyYXBwZXIoR0RPTU9iamVjdCop
Cit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmplY3QqKQor
eworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2RvbVdyYXBw
ZXJDYWNoZSYpCit7Cit9CisKKyNlbHNlCisKK3N0YXRpYyBIYXNoU2V0PEdET01PYmplY3QqPiYg
d3JhcHBlclNldCgpCit7CisgICAgc3RhdGljIEhhc2hTZXQ8R0RPTU9iamVjdCo+IHN0YXRpY1dy
YXBwZXJTZXQ7CisgICAgcmV0dXJuIHN0YXRpY1dyYXBwZXJTZXQ7Cit9CisKK3N0YXRpYyB2b2lk
IGFkZFdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcikKK3sKKyAgICBBU1NFUlQoIXdyYXBwZXJT
ZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgpLmFkZCh3cmFwcGVyKTsK
K30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKQorewor
ICAgIGlmICghd3JhcHBlcikKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh3cmFwcGVyU2V0
KCkuY29udGFpbnMod3JhcHBlcikpOworICAgIHdyYXBwZXJTZXQoKS5yZW1vdmUod3JhcHBlcik7
Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKQoreworICAgIGZvciAoR2RvbVdyYXBwZXJDYWNoZTo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSB3cmFwcGVycy5iZWdpbigpOyBpdCAhPSB3cmFwcGVycy5lbmQoKTsgKytpdCkKKyAgICAg
ICAgcmVtb3ZlV3JhcHBlcihpdC0+c2Vjb25kKTsKK30KKworR0RPTU9iamVjdDo6fkdET01PYmpl
Y3QoKQoreworICAgIEFTU0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5zKHRoaXMpKTsKK30KKwor
I2VuZGlmCisjZW5kaWYgLyogY29tbWVudGVkIG91dCBmb3Igbm93ICovCisKK3N0YXRpYyBHZG9t
V3JhcHBlckNhY2hlJiB3cmFwcGVyQ2FjaGUoKQoreyAKKwkvLyBVTkZBSVIhIGkgd2FudCBvbmUg
b2YgdGhlc2UgcGVyIFdlYkNvcmU6OkRvY3VtZW50LCB0b28hCisgICAgLy8gRG9uJ3QgdXNlIG1h
bGxvYyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxv
Y2suCisgICAgc3RhdGljIEdkb21XcmFwcGVyQ2FjaGUgc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsK
KyAgICByZXR1cm4gc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsKK30KKworc3RhdGljIERPTU9iamVj
dE1hcCYgZG9tT2JqZWN0cygpCit7IAorICAgIC8vIERvbid0IHVzZSBtYWxsb2MgaGVyZS4gQ2Fs
bGluZyBtYWxsb2MgZnJvbSBhIG1hcmsgZnVuY3Rpb24gY2FuIGRlYWRsb2NrLgorICAgIHN0YXRp
YyBET01PYmplY3RNYXAgc3RhdGljRE9NT2JqZWN0czsKKyAgICByZXR1cm4gc3RhdGljRE9NT2Jq
ZWN0czsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qo
dm9pZCogb2JqZWN0SGFuZGxlKSAKK3sKKyAgICBncG9pbnRlciByZXQgPSBkb21PYmplY3RzKCku
Z2V0KG9iamVjdEhhbmRsZSk7CisJcHJpbnRmKCJnZXRET01PYmplY3Q6ICVwICVwXG4iLCBvYmpl
Y3RIYW5kbGUsIHJldCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0
ZV9nZG9tX29iamVjdChHRE9NT2JqZWN0ICpkb2IpCit7CisJZ3BvaW50ZXIgcmVzID0gZ19vYmpl
Y3RfbmV3KGRvYi0+Z2V0X2dvYmpfdHlwZSgpLCBOVUxMKTsKKwlnZG9tX2RvbV9vYmplY3Rfc2V0
X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcyksIGRvYik7CisJcmV0dXJuIHJlczsKK30KKwor
Z3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qodm9pZCogb2JqZWN0
SGFuZGxlLCBHRE9NT2JqZWN0KiB3cmFwcGVyKSAKK3sKKwlwcmludGYoInB1dERPTU9iamVjdDog
JXAgJXBcbiIsIG9iamVjdEhhbmRsZSwgd3JhcHBlcik7CisgICAgLy8gYWRkV3JhcHBlcih3cmFw
cGVyKTsKKwlncG9pbnRlciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAg
ZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIG9iaik7CisJcmV0dXJuIG9iajsKK30KKwor
dm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RI
YW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKTsKKyAgICAvL3Jl
bW92ZVdyYXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7Cit9CisKK2dwb2lu
dGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50
KiBkb2N1bWVudCwgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Z3BvaW50ZXIgPihkb21PYmplY3RzKCkuZ2V0KG5v
ZGUpKTsKKyAgICByZXR1cm4gLyogWFhYIGdycnIgZG9jdW1lbnQtPiAqL3dyYXBwZXJDYWNoZSgp
LmdldChub2RlKTsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5v
ZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit7
CisgICAgaWYgKCFkb2N1bWVudCkgeworCQlmb3JnZXRET01PYmplY3Qobm9kZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgLy9yZW1vdmVXcmFwcGVyKC8qIFhYWCBncnIgZG9jdW1lbnQt
Piovd3JhcHBlckNhY2hlKCkudGFrZShub2RlKSk7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgV2Vi
Q29yZTo6Tm9kZSogbm9kZSwgR0RPTU5vZGUgKndyYXBwZXIpCit7CisgICAgLy9hZGRXcmFwcGVy
KHdyYXBwZXIpOworICAgIGlmICghZG9jdW1lbnQpIHsKKwkJcmV0dXJuIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6cHV0RE9NT2JqZWN0KG5vZGUsIHdyYXBwZXIpIDsKKyAgICB9CisJZ3BvaW50ZXIg
b2JqID0gY3JlYXRlX2dkb21fb2JqZWN0KHdyYXBwZXIpOworICAgIC8qIFhYWCBncnJyIGRvY3Vt
ZW50LT4qL3dyYXBwZXJDYWNoZSgpLnNldChub2RlLCBvYmopOworCXJldHVybiBvYmo7Cit9CisK
K3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIC8vcmVt
b3ZlV3JhcHBlcnMoZG9jdW1lbnQtPndyYXBwZXJDYWNoZSgpKTsKK30KKworI2lmIDAKK3ZvaWQg
R0RPTVNjcmlwdEludGVycHJldGVyOjptYXJrRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCog
ZG9jKQoreworI2lmIDAgLypYWFggVE9ETyovCisgICAgLy8gSWYgYSBub2RlJ3MgR2RvbSB3cmFw
cGVyIGhvbGRzIGN1c3RvbSBwcm9wZXJ0aWVzLCB0aG9zZSBwcm9wZXJ0aWVzIG11c3QKKyAgICAv
LyBwZXJzaXN0IGV2ZXJ5IHRpbWUgdGhlIG5vZGUgaXMgZmV0Y2hlZCBmcm9tIHRoZSBET00uIFNv
LCB3ZSBrZWVwIEdkb20KKyAgICAvLyB3cmFwcGVycyBsaWtlIHRoYXQgZnJvbSBiZWluZyBnYXJi
YWdlIGNvbGxlY3RlZC4KKworICAgIEdkb21XcmFwcGVyQ2FjaGUmIG5vZGVEaWN0ID0gLypkb2Mt
Piovd3JhcHBlckNhY2hlKCk7CisgICAgR2RvbVdyYXBwZXJDYWNoZTo6aXRlcmF0b3Igbm9kZUVu
ZCA9IG5vZGVEaWN0LmVuZCgpOworICAgIGZvciAoR2RvbVdyYXBwZXJDYWNoZTo6aXRlcmF0b3Ig
bm9kZUl0ID0gbm9kZURpY3QuYmVnaW4oKTsgbm9kZUl0ICE9IG5vZGVFbmQ7ICsrbm9kZUl0KSB7
CisgICAgICAgIGdwb2ludGVyIGdOb2RlID0gbm9kZUl0LT5zZWNvbmQ7CisgICAgICAgIFdlYkNv
cmU6Ok5vZGUqIG5vZGUgPSBnTm9kZS0+aW1wbCgpOworCisgICAgICAgIGlmIChnTm9kZS0+bWFy
a2VkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBObyBuZWVkIHRvIHBy
ZXNlcnZlIGEgd3JhcHBlciB0aGF0IGhhcyBubyBjdXN0b20gcHJvcGVydGllcyBvciBpcyBubwor
ICAgICAgICAvLyBsb25nZXIgZmV0Y2hhYmxlIHRocm91Z2ggdGhlIERPTS4KKyAgICAgICAgaWYg
KCFnTm9kZS0+aGFzQ3VzdG9tUHJvcGVydGllcygpIHx8ICFub2RlLT5pbkRvY3VtZW50KCkpCisg
ICAgICAgICAgICAvLy4uLiB1bmxlc3MgdGhlIHdyYXBwZXIgd3JhcHMgYSBsb2FkaW5nIGltYWdl
LCBzaW5jZSB0aGUgIm5ldyBJbWFnZSIKKyAgICAgICAgICAgIC8vIHN5bnRheCBhbGxvd3MgYW4g
b3JwaGFuIGltYWdlIHdyYXBwZXIgdG8gYmUgdGhlIGxhc3QgcmVmZXJlbmNlCisgICAgICAgICAg
ICAvLyB0byBhIGxvYWRpbmcgaW1hZ2UsIHdob3NlIGxvYWQgZXZlbnQgbWlnaHQgaGF2ZSBpbXBv
cnRhbnQgc2lkZS1lZmZlY3RzLgorICAgICAgICAgICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKGlt
Z1RhZykgfHwgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5oYXZlRmlyZWRM
b2FkRXZlbnQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBnTm9kZS0+
bWFyaygpOworICAgIH0KKyNlbmRpZgorfQorCisvKiBYWFggLSByZXF1aXJlcyBsb29raW5nIHVw
IG9iamVjdCAtIGNhbGwgdG8gR19PQkpFQ1QoKSBtYWNybyBpbiBhcmcKKyAqICJ3cmFwcGVyIiB0
byBwdXRET01Ob2RlRm9yRG9jdW1lbnQ/Ki8KK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRl
cjo6dXBkYXRlRE9NTm9kZURvY3VtZW50KFdlYkNvcmU6Ok5vZGUqIG5vZGUsIERvY3VtZW50KiBv
bGREb2MsIERvY3VtZW50KiBuZXdEb2MpCit7CisgICAgQVNTRVJUKG9sZERvYyAhPSBuZXdEb2Mp
OworICAgIGdwb2ludGVyIHdyYXBwZXIgPSBnZXRET01Ob2RlRm9yRG9jdW1lbnQob2xkRG9jLCBu
b2RlKTsKKyAgICBpZiAod3JhcHBlcikgeworICAgICAgICAvL3JlbW92ZVdyYXBwZXIod3JhcHBl
cik7CisgICAgICAgIGdwb2ludGVyIG9iaiA9IHB1dERPTU5vZGVGb3JEb2N1bWVudChuZXdEb2Ms
IG5vZGUsIHdyYXBwZXIpOworICAgICAgICBmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQob2xkRG9j
LCBub2RlKTsKKyAgICAgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIpOworCQlyZXR1cm4gb2JqOwor
ICAgIH0KKwlyZXR1cm4gTlVMTDsgLyogZXJyLi4uICovCit9CisjZW5kaWYKKworZ3BvaW50ZXIg
dG9HRE9NKERvY3VtZW50KiBkb2MpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybiBO
VUxMOyAvKiBYWFggaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvYyk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJl
dHVybiBnb2JqOworCisJR0RPTU9iamVjdCAqcmV0OworCisgICAgaWYgKGRvYy0+aXNIVE1MRG9j
dW1lbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MRG9jdW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTERvY3VtZW50Kj4oZG9jKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChkb2Mt
PmlzU1ZHRG9jdW1lbnQoKSkKKwl7CisJCXJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLworI2lm
IDAKKyAgICAgICAgcmV0ID0gbmV3IEdET01TVkdEb2N1bWVudChzdGF0aWNfY2FzdDxTVkdEb2N1
bWVudCo+KGRvYykpOworI2VuZGlmCisJfQorI2VuZGlmCisgICAgZWxzZQorICAgICAgICByZXQg
PSBuZXcgR0RPTURvY3VtZW50KGRvYyk7CisKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
V3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3bHlDcmVhdGVkKE5vZGUq
IG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4u
Li4gKi8KKyAgICAKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKyAgICAKK2dw
b2ludGVyIHRvR0RPTShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0
dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9j
dW1lbnQoKTsKKyAgICBncG9pbnRlciByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU5vZGVGb3JEb2N1bWVudChkb2MsIG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVy
biByZXQ7CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50ZXIg
dG9HRE9NKENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1
cm4gTlVMTDsgLyogaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAgICAg
ICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3QgKnJldDsKKworICAgIGlmICh2YWx1ZS0+aXNW
YWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZUxpc3Qoc3RhdGljX2Nh
c3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYg
KHZhbHVlLT5pc1NWR1BhaW50KCkpCisJeworCQlyZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAg
ICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHUGFpbnQoc3RhdGljX2Nhc3Q8U1ZHUGFpbnQqPih2YWx1
ZSkpOworCX0KKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdDb2xvcigpKQorCXsKKwkJcmV0dXJu
IE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR0NvbG9yKHN0YXRp
Y19jYXN0PFNWR0NvbG9yKj4odmFsdWUpKTsKKwl9CisjZW5kaWYKKyAgICBlbHNlIGlmICh2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ByaW1pdGl2
ZVZhbHVlKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpKTsKKyAgICBlbHNl
CisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWUodmFsdWUpOworCisgICAgcmV0dXJuIEdE
T01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZhbHVlLCByZXQpOworfQorCitzdGF0
aWMgQUxXQVlTX0lOTElORSBncG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7Cisg
ICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5v
ZGVGb3JEb2N1bWVudChub2RlLT5kb2N1bWVudCgpLCBub2RlKSk7CisgICAgCisgICAgRG9jdW1l
bnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAgR0RPTU5vZGUgKnJldCA9IE5VTEw7Cisg
ICAgCisJcHJpbnRmKCJjcmVhdGVXcmFwcGVyIG5vZGVUeXBlICVkXG4iLCBub2RlLT5ub2RlVHlw
ZSgpKTsKKworICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5cGUoKSkgeworICAgICAgICBjYXNlIE5v
ZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkp
CisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0
PEhUTUxFbGVtZW50Kj4obm9kZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgICAgICBlbHNl
IGlmIChub2RlLT5pc1NWR0VsZW1lbnQoKSkKKwkJCQlyZXR1cm4gTlVMTDsKKyNpZiAwIC8qIFhY
WCBUT0RPICovCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3Rh
dGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG5vZGUpKTsKKyNlbmRpZgorI2VuZGlmCisgICAgICAgICAg
ICBlbHNlCisJCQkJcmV0ID0gbmV3IEdET01FbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihu
b2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVf
Tk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQXR0cihzdGF0aWNfY2FzdDxBdHRyKj4o
bm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0KHN0YXRpY19jYXN0PFRleHQqPihub2Rl
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9O
X05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNEQVRBU2VjdGlvbihzdGF0aWNfY2Fz
dDxDREFUQVNlY3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpFTlRJVFlfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5KHN0
YXRpY19jYXN0PEVudGl0eSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0
cnVjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OkNPTU1FTlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ29tbWVudChzdGF0aWNf
Y2FzdDxDb21tZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2Fj
aGUgdGhlIGRvY3VtZW50IGl0c2VsZiBpbiB0aGUgcGVyLWRvY3VtZW50IGRpY3Rpb25hcnkKKyAg
ICAgICAgICAgIHJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7Cisg
ICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01Eb2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRUeXBlKj4obm9kZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Tk9UQVRJT05fTk9ERToKKyAg
ICAgICAgICAgIHJldCA9IG5ldyBHRE9NTm90YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihu
b2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9G
UkFHTUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Eb2N1bWVudEZyYWdtZW50
KHN0YXRpY19jYXN0PERvY3VtZW50RnJhZ21lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTUVudGl0eVJlZmVyZW5jZShzdGF0aWNfY2FzdDxFbnRpdHlSZWZlcmVu
Y2UqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NTm9kZShub2RlKTsKKyAgICB9CisKKyAgICByZXR1cm4gR0RP
TVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlLCByZXQp
OworfQorIAorZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQorewor
ICAgIGlmICghY29sbGVjdGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICov
CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmpl
Y3QoY29sbGVjdGlvbik7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisK
KwlHRE9NT2JqZWN0ICpyZXQ7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAg
ICAgICAgY2FzZSBIVE1MQ29sbGVjdGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25z
Q29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIDAKKyAg
ICAgICAgY2FzZSBIVE1MQ29sbGVjdGlvbjo6RG9jQWxsOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01IVE1MQWxsQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxl
Y3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxD
b2xsZWN0aW9uKj4oY29sbGVjdGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGNvbGxlY3Rpb24s
IHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQpCit7CisgICAgaWYgKCFl
dmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9pbnRl
ciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZXZlbnQpOworICAg
IGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3QgKnJldDsKKyAg
ICBpZiAoZXZlbnQtPmlzVUlFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNLZXlib2Fy
ZEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUtleWJvYXJkRXZlbnQoc3RhdGlj
X2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5p
c1RleHRFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0RXZlbnQoc3RhdGlj
X2Nhc3Q8VGV4dEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzTW91
c2VFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Nb3VzZUV2ZW50KHN0YXRpY19j
YXN0PE1vdXNlRXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNXaGVl
bEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVdoZWVsRXZlbnQoc3RhdGljX2Nh
c3Q8V2hlZWxFdmVudCo+KGV2ZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzU1ZHWm9vbUV2ZW50KCkpCisJCXsKKwkJCXJldHVybiBOVUxMOyAvKiBUT0RP
ICovCisgICAgICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHWm9vbUV2ZW50KHN0YXRpY19jYXN0
PFNWR1pvb21FdmVudCo+KGV2ZW50KSwgMCk7CisJCX0KKyNlbmRpZgorICAgICAgICBlbHNlCisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTVVJRXZlbnQoc3RhdGljX2Nhc3Q8VUlFdmVudCo+KGV2
ZW50KSk7CisgICAgfSBlbHNlIGlmIChldmVudC0+aXNNdXRhdGlvbkV2ZW50KCkpCisgICAgICAg
IHJldCA9IG5ldyBHRE9NTXV0YXRpb25FdmVudChzdGF0aWNfY2FzdDxNdXRhdGlvbkV2ZW50Kj4o
ZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNPdmVyZmxvd0V2ZW50KCkpCisgICAgICAg
IHJldCA9IG5ldyBHRE9NT3ZlcmZsb3dFdmVudChzdGF0aWNfY2FzdDxPdmVyZmxvd0V2ZW50Kj4o
ZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNNZXNzYWdlRXZlbnQoKSkKKyAgICAgICAg
cmV0ID0gbmV3IEdET01NZXNzYWdlRXZlbnQoc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZl
bnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNQcm9ncmVzc0V2ZW50KCkpIHsKKyAgICAgICAg
aWYgKGV2ZW50LT5pc1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpKQorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8WE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01Qcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFByb2dyZXNzRXZl
bnQqPihldmVudCkpOworICAgIH0KKyNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCisgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzU3RvcmFnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NU3RvcmFn
ZUV2ZW50KHN0YXRpY19jYXN0PFN0b3JhZ2VFdmVudCo+KGV2ZW50KSk7CisjZW5kaWYKKyAgICBl
bHNlIGlmIChldmVudC0+aXNXZWJLaXRBbmltYXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBu
ZXcgR0RPTVdlYktpdEFuaW1hdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdEFuaW1hdGlvbkV2
ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRUcmFuc2l0aW9uRXZl
bnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQoc3RhdGlj
X2Nhc3Q8V2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlCisgICAgICAg
IHJldCA9IG5ldyBHRE9NRXZlbnQoZXZlbnQpOworCisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6cHV0RE9NT2JqZWN0KGV2ZW50LCByZXQpOworfQorCisvKiBUT0RPIFhYWCBobW1t
Li4uIG5vdCBzbyBoYXBweSBhYm91dCB0aGlzIC0gc2hvdWxkIGJlICJuZXdseSBjcmVhdGVkIiAq
LworZ3BvaW50ZXIgdG9HRE9NKFRleHQqIHRleHQpCit7CisJaWYgKCF0ZXh0KQorCQlyZXR1cm4g
TlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0KTsKKwlpZiAoZ29iaikKKwkJ
cmV0dXJuIGdvYmo7CisKKwlHRE9NTm9kZSAqcmV0ID0gbmV3IEdET01UZXh0KHRleHQpOworCXJl
dHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5k
b2N1bWVudCgpLCB0ZXh0LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTUnVsZSogcnVs
ZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4u
LiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9N
T2JqZWN0KHJ1bGUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisJ
R0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7CisgICAgICAgIGNh
c2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5
bGVSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUNTU01lZGlhUnVsZShzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihydWxlKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpGT05UX0ZBQ0VfUlVM
RToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTRm9udEZhY2VSdWxlKHN0YXRpY19jYXN0
PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUGFn
ZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NQ1NTSW1wb3J0UnVsZShzdGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxlKj4ocnVsZSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Q0hBUlNFVF9SVUxF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NDaGFyc2V0UnVsZShzdGF0aWNfY2FzdDxD
U1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NW
YXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1ZhcmlhYmxlc1J1bGUqPihydWxlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NQ1NTUnVsZShydWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHJ1bGUsIHJldCk7CisgICAgcmV0dXJuIHJl
dDsKK30KKworLyogVE9ETzogc2hvdWxkIGJlIHRvR0RPTU5ld2x5Q3JlYXRlZCAqLworZ3BvaW50
ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAg
ICByZXR1cm4gTlVMTDsKKworICAgIC8vIHNob3VsZG4ndCBiZSBvbmU/IEFTU0VSVCghU2NyaXB0
SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChlbGVtZW50LT5kb2N1bWVudCgpLCBl
bGVtZW50KSk7CisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0
RE9NTm9kZUZvckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpOworCWlmIChn
b2JqKQorCQlyZXR1cm4gZ29iajsgLy8gaHVoPyBlcnIuLi4KKworCUdET01Ob2RlICpyZXQ7Cisg
ICAgRG9jdW1lbnQqIGRvYyA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisKKyAgICBpZiAoZWxlbWVu
dC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIo
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAg
ICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkKKwl7CisJCXJldHVybiBOVUxMOyAv
KiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nh
c3Q8U1ZHRWxlbWVudCo+KGVsZW1lbnQpKTsKKwl9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAg
IHJldCA9IG5ldyBHRE9NRWxlbWVudChlbGVtZW50KTsKKworICAgIHJldHVybiBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIGVsZW1lbnQsIHJldCk7Cit9
CisKK2dwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIGlmICgh
c3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4uLiAqLworCisgICAgZ3Bv
aW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHN0eWxlU2hl
ZXQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3Qg
KnJldDsKKyAgICBpZiAoc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJl
dCA9IG5ldyBHRE9NQ1NTU3R5bGVTaGVldChzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5
bGVTaGVldCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01TdHlsZVNoZWV0KHN0
eWxlU2hlZXQpOworCisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KHN0eWxlU2hlZXQsIHJldCk7Cit9CisKKy8qIGRlcml2ZWQgc291cmNlcyBhdXRvLWdlbmVy
YXRlZCAqLworZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBv
YmopOworCitncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIHRhcmdldCkKK3sKKyAgICBpZiAo
IXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgCisjaWYgMAorI2lmIEVOQUJMRShT
VkcpCisgICAgLy8gU1ZHRWxlbWVudEluc3RhbmNlIHN1cHBvcnRzIGJvdGggdG9TVkdFbGVtZW50
SW5zdGFuY2UgYW5kIHRvTm9kZSBzaW5jZSBzbyBtdWNoIG1vdXNlIGhhbmRsaW5nIGNvZGUgZGVw
ZW5kcyBvbiB0b05vZGUgcmV0dXJuaW5nIGEgdmFsaWQgbm9kZS4KKyAgICBTVkdFbGVtZW50SW5z
dGFuY2UqIGluc3RhbmNlID0gdGFyZ2V0LT50b1NWR0VsZW1lbnRJbnN0YW5jZSgpOworICAgIGlm
IChpbnN0YW5jZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShleGVjLCBpbnN0YW5jZSk7CisjZW5k
aWYKKyNlbmRpZgorCisgICAgTm9kZSogbm9kZSA9IHRhcmdldC0+dG9Ob2RlKCk7CisgICAgaWYg
KG5vZGUpCisgICAgICAgIHJldHVybiB0b0dET00obm9kZSk7CisgICAgCisgICAgaWYgKFhNTEh0
dHBSZXF1ZXN0KiB4aHIgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3QoKSkKKyAgICAgICAgLy8g
WE1MSHR0cFJlcXVlc3QgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5l
ZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHhocik7CisKKyAgICBpZiAoWE1MSHR0cFJlcXVl
c3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgpKQorICAg
ICAgICByZXR1cm4gdG9HRE9NKHVwbG9hZCk7CisgICAgCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKKyAgICBpZiAoRE9NQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSB0YXJn
ZXQtPnRvRE9NQXBwbGljYXRpb25DYWNoZSgpKQorICAgICAgICAvLyBET01BcHBsaWNhdGlvbkNh
Y2hlIGlzIGFsd2F5cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSBj
YWNoZURPTU9iamVjdCgpIGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OmdldERPTU9iamVjdChjYWNoZSk7CisjZW5kaWYKKworICAgIC8vIFRoZXJlIGFyZSB0d28g
a2luZHMgb2YgRXZlbnRUYXJnZXRzOiBFdmVudFRhcmdldE5vZGUgYW5kIFhNTEh0dHBSZXF1ZXN0
LgorICAgIC8vIElmIFNWRyBzdXBwb3J0IGlzIGVuYWJsZWQsIHRoZXJlIGlzIGFsc28gU1ZHRWxl
bWVudEluc3RhbmNlLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOVUxM
OworfSAgIAorCitncG9pbnRlciB0b0dET00oV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKiB0YXJn
ZXQpCit7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIAorICAg
IE5vZGUqIG5vZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICBy
ZXR1cm4gdG9HRE9NKG5vZGUpOworICAgIAorCXJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6RXZlbnRUYXJnZXQqPih0YXJnZXQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbURPTU9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxw
IFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMu
CisgKi8KKworI2lmbmRlZiBfX0dkb21ET01PYmplY3RfSF9fCisjZGVmaW5lIF9fR2RvbURPTU9i
amVjdF9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC9nZG9t
ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2Jq
ZWN0IEdkb21ET01PYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIEdk
b21ET01PYmplY3RDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAgICAgICAg
ICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNU
KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01f
VFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0KSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNU
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01f
VFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorI2RlZmluZSBHRE9NX0lTX0RP
TV9PQkpFQ1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1RfQ0xBU1Mo
a2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9P
QkpFQ1QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVf
SU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01P
YmplY3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSBHZG9t
RE9NT2JqZWN0UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0IHsKKyAgICBHT2JqZWN0
IHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21ET01PYmplY3RQcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRf
Y2xhc3M7Cit9OworCitXRUJLSVRfR0RPTV9BUEkgR1R5cGUKK2dkb21fZG9tX29iamVjdF9nZXRf
dHlwZSAodm9pZCk7CisKK1dFQktJVF9HRE9NX0FQSSB2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5p
dF9kb21fb2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0aGl6KTsKKworR19FTkRfREVDTFMKKworI2Vu
ZGlmIC8qIF9fR2RvbURPTU9iamVjdF9IX18gKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RP
TU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01PYmpl
Y3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfX0RPTU9iamVjdF9o
X18KKyNkZWZpbmUgX19ET01PYmplY3RfaF9fCisKKy8vIG5hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgR0RPTU9iamVjdCB7CitwdWJsaWM6CisJdmlydHVhbCB+R0RPTU9iamVjdCgpIHt9CisJ
dmlydHVhbCBpbnQgZ2V0X2dvYmpfdHlwZSgpID0gMDsKK307CisKKy8vIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21E
T01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21E
T01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2Rv
bURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTURPTU9i
amVjdF9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRE9NT2JqZWN0X0hfX19QUklWXworI2luY2x1
ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbURPTU9iamVjdC5oIgorR19CRUdJTl9E
RUNMUworCitjbGFzcyBHRE9NT2JqZWN0OworV0VCS0lUX0dET01fQVBJIEdET01PYmplY3QqCitn
ZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCk7CisKK1dF
QktJVF9HRE9NX0FQSSB2b2lkCitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR2RvbURPTU9i
amVjdCAqcmVxdWVzdCwgR0RPTU9iamVjdCogaXRlbSk7CisKK0dfRU5EX0RFQ0xTCisjZW5kaWYK
KwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
R0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8gTk9U
IEVESVQuCisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaWZuZGVmIEdET01IVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5X2gKKyNkZWZpbmUgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnlf
aAorCisjaW5jbHVkZSAiaW50Z2RvbU5vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEhUTUxFbGVtZW50OworCisgICAg
R0RPTU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7
CisKK30KKyAKKyNlbmRpZiAvLyBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTUV2ZW50VGFyZ2V0Tm9k
ZV9IX19fSU5UXworI2RlZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX0lOVF8KKyNpbmNs
dWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImludGdkb21Ob2RlLmgiCitHX0JFR0lOX0RF
Q0xTCisKK2NsYXNzIEdET01FdmVudFRhcmdldE5vZGUgOiBwdWJsaWMgR0RPTU5vZGUgeworCitw
dWJsaWM6CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZShQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+
IGltcGwpIDogR0RPTU5vZGUoaW1wbCkge30KKwlpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJu
IEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERTsgfQorfTsKKworCitHX0VORF9ERUNMUworI2Vu
ZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsODggQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVu
IChwb3J0ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAo
QykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpZm5kZWYgR2RvbURPTUJpbmRpbmdfaAorI2RlZmluZSBHZG9tRE9N
QmluZGluZ19oCisKKyNpbmNsdWRlIDxranMvaW50ZXJwcmV0ZXIuaD4KKyNpbmNsdWRlIDxranMv
bG9va3VwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRlICJnZG9t
Tm9kZS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJpbnRnZG9tTm9kZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBBdG9taWNTdHJpbmc7CisgICAg
Y2xhc3MgRG9jdW1lbnQ7CisgICAgY2xhc3MgRXZlbnQ7CisgICAgY2xhc3MgRnJhbWU7CisgICAg
Y2xhc3MgS1VSTDsKKyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIFN0cmluZzsKKworI2lmIEVO
QUJMRShTVkcpCisgICAgY2xhc3MgU1ZHRWxlbWVudDsKKyNlbmRpZgorCisgICAgY2xhc3MgR0RP
TVNjcmlwdEludGVycHJldGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyB2b2lkKiBn
ZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsKKyAgICAgICAgc3RhdGljIHZvaWQqIHB1
dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqKTsKKyAgICAgICAgc3Rh
dGljIHZvaWQgZm9yZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisKKyAgICAgICAg
c3RhdGljIHZvaWQqIGdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAg
ICAgICAgc3RhdGljIHZvaWQqIHB1dERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUq
LCBHRE9NTm9kZSogbm9kZVdyYXBwZXIpOworICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRET01O
b2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqLCBOb2RlKik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZv
cmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2lmIDAKKyAgICAgICAg
c3RhdGljIHZvaWQgdXBkYXRlRE9NTm9kZURvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogb2xkRG9j
LCBEb2N1bWVudCogbmV3RG9jKTsKKyAgICAgICAgc3RhdGljIHZvaWQgbWFya0RPTU5vZGVzRm9y
RG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2VuZGlmCisgICAgfTsKKworICAgIC8vIFJldHJpZXZl
IGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIgZm9yIGEgRE9NIG9iamVjdC4K
KyAgICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlubGluZSB2b2lk
KiBjYWNoZURPTU9iamVjdChET01PYmoqIGRvbU9iaikKKyAgICB7CisgICAgICAgIGlmICghZG9t
T2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisgICAgICAg
IGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb21P
YmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgR0RPTU9iamVjdCogcmV0ID0g
bmV3IEdkb21ET01PYmooZG9tT2JqKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6cHV0RE9NT2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisKKyNpZiBFTkFCTEUoU1ZH
KQorICAgIC8vIFJldHJpZXZlIGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIg
Zm9yIGFuIFNWRyBET00gb2JqZWN0LgorICAgIHRlbXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3Mg
R2RvbURPTU9iaj4gaW5saW5lIHZvaWQqIGNhY2hlU1ZHRE9NT2JqZWN0KERPTU9iaiogZG9tT2Jq
LCBTVkdFbGVtZW50KiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgaWYgKCFkb21PYmopCisgICAg
ICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKyAgICAgICAgaWYgKHZvaWQq
IHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvbU9iaikpCisgICAg
ICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBHRE9NT2JqZWN0KiByZXQgPSBuZXcgR2RvbURP
TU9iaihkb21PYmosIGNvbnRleHQpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01PYmplY3QoZG9tT2JqLCByZXQpOworICAgIH0KKyNlbmRpZgorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBHZG9tRE9NQmluZGluZ19oCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLwor
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDE2MjcgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisjIENvcHlyaWdodCAoQykgMjAwOCBBbHAg
VG9rZXIgPGFscEBhdG9rZXIuY29tPgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBh
aW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyMgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisKK3Bh
Y2thZ2UgQ29kZUdlbmVyYXRvckdPYmplY3Q7CisKKyMgRGVmYXVsdCBMaWNlbmNlIFRlbXBsYXRl
cworbXkgJGxpY2VuY2VUZW1wbGF0ZSA9IDw8ICJFT0YiOworLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsXEBsa2NsLm5ldD4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscFxAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KK0VPRgorCitteSAlaW1wbEluY2x1ZGVzID0gKCk7
CitteSAlaGRySW5jbHVkZXMgPSAoKTsKK215ICVoZHJQcm9wSW5jbHVkZXMgPSAoKTsKK215ICVp
bXBsVHlwZWRlZnMgPSAoKTsKKworIyBEZWZhdWx0IGNvbnN0cnVjdG9yCitzdWIgbmV3Cit7Cisg
ICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRyZWZlcmVuY2UgPSB7IH07CisKKyAgICAk
Y29kZUdlbmVyYXRvciA9IHNoaWZ0OworICAgICRvdXRwdXREaXIgPSBzaGlmdDsKKworICAgIGJs
ZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOworICAgIHJldHVybiAkcmVmZXJlbmNlOworfQorCitz
dWIgZmluaXNoCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworfQorCisjIFBhcmFtczogJ2Rv
bUNsYXNzJyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZUludGVyZmFjZQoreworICAgIG15ICRvYmplY3Qg
PSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkZGVmaW5lcyA9IHNo
aWZ0OworCisgICAgbXkgJG5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CisKKyAgICBwcmludCAiJG5h
bWVcbiI7CisKKyAgICAkb2JqZWN0LT5HZW5lcmF0ZSgkZGF0YU5vZGUpOworCisgICAgIyBXcml0
ZSBjaGFuZ2VzCisgICAgbXkgJGZuYW1lID0gImdkb21fIiAuICRuYW1lOyAjZGVjYW1lbGl6ZSgk
bmFtZSk7CisgICAgJGZuYW1lID1+IHMvXy8vZzsKKyAgICAkb2JqZWN0LT5Xcml0ZURhdGEoJGZu
YW1lKTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVudCcgc3RydWN0CitzdWIgR2VuZXJhdGVN
b2R1bGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hp
ZnQ7CisKKyAgICAkbW9kdWxlID0gJGRhdGFOb2RlLT5tb2R1bGU7Cit9CisKK3N1YiBDbHNUb0dP
YmpUeXBlCit7CisgICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OworICAgIHJldHVybiB1YyhkZWNh
bWVsaXplKCRjbGFzc05hbWUpKQorfQorCitzdWIgR2V0UGFyZW50Q2xhc3NOYW1lCit7CisgICAg
bXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdkb21E
T01PYmplY3QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiR2Rv
bSIgLiAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKTsK
K30KK3N1YiBHZXRQYXJlbnRHT2JqVHlwZQoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0Owor
CisgICAgIyA/PyBxdWU/PworICAgICNyZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TGVnYWN5UGFyZW50In07CisgICAgcmV0dXJuICJHRE9NX1RZUEVfRE9NX09CSkVDVCIgaWYgQHsk
ZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHRE9NX1RZUEVfIiAuIENsc1Rv
R09ialR5cGUoJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+cGFyZW50cygw
KSkpOworfQorCisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4w
MQorc3ViIGNhbWVsaXplCit7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICBqb2luKCcnLCBtYXB7
IHVjZmlyc3QgJF8gfSBzcGxpdCgvKD88PVtBLVphLXpdKV8oPz1bQS1aYS16XSl8XGIvLCAkcykp
OworfQorCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1
YiBkZWNhbWVsaXplCit7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICAkcyA9fiBzeyhbXmEtekEt
Wl0/KShbQS1aXSopKFtBLVpdKShbYS16XT8pfXsKKyAgICAgICAgbXkgJGZjID0gcG9zKCRzKT09
MDsKKyAgICAgICAgbXkgKCRwMCwkcDEsJHAyLCRwMykgPSAoJDEsbGMkMixsYyQzLCQ0KTsKKyAg
ICAgICAgbXkgJHQgPSAkcDAgfHwgJGZjID8gJHAwIDogJ18nOworICAgICAgICAkdCAuPSAkcDMg
PyAkcDEgPyAiJHtwMX1fJHAyJHAzIiA6ICIkcDIkcDMiIDogIiRwMSRwMiI7CisgICAgICAgICR0
OworICAgIH1nZTsKKyAgICAkczsKK30KKworc3ViIEdldEhkck5hbWUKK3sKKyAgICAgICAgbXkg
JG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJu
ICJnZG9tJG5hbWUiOworfQorCitzdWIgR2V0Q2xhc3NOYW1lCit7CisgICAgICAgIG15ICRuYW1l
ID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKKworICAgIHJldHVybiAiR2Rv
bSRuYW1lIjsKK30KKworc3ViIEdldEdJbmNsdWRlSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlm
dDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRIZHJOYW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRu
YW1lID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICIi
IGlmICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImxvbmci
OworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0dXJu
ICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJm
bG9hdCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAg
cmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0
IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOworICAgICAg
ICByZXR1cm4gIlJhbmdlLmgiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0
dXJuICJnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIGlmICR0eXBlIGVxICJET01PYmpl
Y3QiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGNoYXIiOworICAg
ICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBj
bGFzcyB3cmFwcGVyCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEg
IkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIiBpZiAk
dHlwZSBlcSAiRXZlbnRUYXJnZXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIg
aWYgJHR5cGUgZXEgImZsb2F0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJib29sZWFuIjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUuaCI7Cit9CisKKyMgcmV0dXJu
cyAxIGlmIHdlIG5lZWQgdG8gY3JlYXRlIGEgZ29iamVjdCB3cmFwcGVyIGFyb3VuZCB0aGUgcmV0
dXJuIHJlc3VsdAorc3ViIElzR0RPTUNsYXNzVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7
CisgICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJl
SG93IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJzaG9ydCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAg
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQg
aW50IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9
CisKK3N1YiBHZXRQcm9wR1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRu
YW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5nIiBpZiAkdHlw
ZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQi
OworICAgIHJldHVybiAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7
CisgICAgcmV0dXJuICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAi
Ym9vbGVhbiIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hhciIgaWYgJHR5
cGUgZXEgImNoYXIiOworICAgIHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAg
IHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAidWNoYXIiIGlm
ICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQiOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICByZXR1cm4gInVp
bnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWludDY0IiBpZiAk
dHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlw
ZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBzaG9ydCI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9y
IjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gIm9iamVjdCI7
Cit9CisKK3N1YiBHZXRHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15
ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1lID0gY2FtZWxp
emUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJn
ZXROb2RlICoiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisgICAgICAgIHJldHVybiAiY29u
c3QgZ2NoYXIgKiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiZ2Zs
b2F0ICIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpSYW5n
ZTo6Q29tcGFyZUhvdyAiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJu
ICJnZG91YmxlICIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAiZ2Jvb2xl
YW4gIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJldHVybiAiZ2NoYXIgIiBpZiAk
dHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAiZ2xvbmcgIiBpZiAkdHlwZSBlcSAibG9u
ZyI7CisgICAgICAgIHJldHVybiAiZ3Nob3J0ICIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAg
ICAgcmV0dXJuICJndWNoYXIgIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgICAgICByZXR1cm4g
Imd1aW50ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJnaW50ICIg
aWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiZ3VpbnQgIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgaW50IjsKKyAgICAgICAgcmV0dXJuICJndWxvbmcgIiBpZiAkdHlwZSBlcSAidW5z
aWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAiZ3VpbnQ2NCAiIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gImd1c2hvcnQgIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgIlJH
QkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAgcmV0dXJu
ICJ2b2lkIiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lICoiOworfQor
CitzdWIgZ2V0SW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRpbmNs
dWRlSGRyID0gR2V0R0luY2x1ZGVIZHIoJHR5cGUpOworICAgIGlmICgkaW5jbHVkZUhkcikgewor
ICAgICAgICBpZiAoJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgcmV0dXJu
ICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkdHlw
ZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3Bp
ZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgIHJldHVybiAiZ2RvbUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5oIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAk
aW5jbHVkZUhkcjsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBh
ZGRQcm9wSW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBn
ZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgICRoZHJQcm9w
SW5jbHVkZXN7JGhkcn0gPSAxOworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkg
eworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3sicHJpdiIuJGhkcn0gPSAxOworICAgICAg
ICAgICAgJGhkclByb3BJbmNsdWRlc3siaW50Ii4kaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9
CisKK30KKworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBt
eSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAg
ICAkaGRySW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0KKworfQorCitzdWIgYWRkSW5jQm9keQor
eworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBl
KTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0g
MTsKKyAgICB9Cit9CisKK3N1YiBHZXRQcml2Rm4KK3sKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9
IHNoaWZ0OworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSBzaGlmdDsKKyAgICBteSAkcmVzID0g
c2hpZnQ7CisgICAgbXkgJHBhcm0gPSBzaGlmdDsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6RXZlbnRUYXJnZXRO
b2RlICogJHJlcyA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoc2VsZikpOyI7CisgICAgfQorICAgIHJldHVy
biAiV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqICRyZXMgPSAoJHtsY2FzZV9pZmFjZW5hbWV9
X2dldF9wcml2YXRlKCRwYXJtKSk7IjsKK30KKworc3ViIHNraXBQcm9wVGVtcG9yYXJpbHkKK3sK
KyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRwcm9wX3R5cGUgPSBzaGlmdDsKKworICAg
ICMgc2tpcCBNZWRpYUxpc3QKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAic3R5bGVzaGVldHM6Ok1l
ZGlhTGlzdCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgI2lmICgkcHJvcF90
eXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAg
ICAjIHNraXAgQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAi
Q1NTVmFyaWFibGVzRGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlw
ZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9
CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9w
X3R5cGUgZXEgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJu
IDE7CisgICAgI30KKworICAgICMgc2tpcCBFdmVudExpc3RlbmVyCisgICAgaWYgKCRwcm9wX3R5
cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
ICMgc2tpcCBET01XaW5kb3cKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRE9NV2luZG93Iikgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAgQ29uc3RydWN0b3JzICh3aGF0
ZXZlciB0aGV5IGFyZSkgZm9yIG5vdy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29uc3RydWN0
b3IkLykgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIGNhbnZhczJkLi4uLgor
ICAgIGlmICgkcHJvcF90eXBlIGVxICJjdXN0b20iKSB7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KKworICAgIGlmICgkcHJvcF90eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBUT0RPOiBTVkcKKyAgICBpZiAoJGNvZGVHZW5l
cmF0b3ItPklzUG9kVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRU
eXBlKCR0eXBlKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9
CisKK3N1YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uCit7CisgICAgbXkgJHR5cGUgPSBz
aGlmdDsKKworICAgICMgc2tpcHBlZCBvdXQgQ2FudmFzUGl4ZWxBcnJheSAtIHNlZSBKU0NhbnZh
c1BpeGVsQXJyYXlDdXN0b20uY3BwIGZvciB3aHkuCisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEg
Ik5vZGUiIG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xsZWN0aW9u
IiBvciAkdHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3IgJHR5cGUgZXEgIlN0eWxlU2hlZXQiIG9yICR0
eXBlIGVxICJDU1NSdWxlIiBvciAkdHlwZSBlcSAiQ1NTVmFsdWUiIG9yICR0eXBlIGVxICJFdmVu
dCIgb3IgJHR5cGUgZXEgIkVsZW1lbnQiIG9yICR0eXBlIGVxICJUZXh0IjsKKyAgICByZXR1cm4g
MDsKK30KKworCisjIEdlbmVyYXRlIGhlYWRlciBhbmQgaW1wbAorc3ViIEdlbmVyYXRlCit7Cisg
ICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAg
bXkgJGhhc0xlZ2FjeVBhcmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikxl
Z2FjeVBhcmVudCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUtPnBhcmVu
dHN9ID4gMDsKKyAgICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVh
bFBhcmVudDsKKyAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRk
YXRhTm9kZSk7CisgICAgbXkgJHBhcmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUoJGRh
dGFOb2RlKTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBt
eSAkY2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkaGRy
TmFtZSA9IEdldEhkck5hbWUoJGludGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhlIGRlZmF1
bHQgaW1wbCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNl
bmNlVGVtcGxhdGUpOworICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNs
dWRlc3siR0RPTUJpbmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIkaGRyTmFtZS5o
In0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7InByaXYke2hkck5hbWV9LmgifSA9IDE7CisKKyAg
ICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01PYmplY3QiOworICAgIG15ICRwYXJlbnRH
SWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15ICRwYXJlbnRIZHJOYW1lID0gImdkb21E
T01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NOYW1lIG5lICJHT2JqZWN0IikKKyAgICB7
CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUs
IDQpOworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9iamVjdCIpIHsK
KyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigkcGFyZW50Q2xh
c3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRyTmFtZSgkcGFy
ZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7Cisg
ICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICAgICAgfQor
ICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAg
ICRpbXBsSW5jbHVkZXN7InByaXYke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICRo
ZHJJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1
ZGVzeyJwcml2JHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAwOworICAgIH0KKworICAgICMgVE9ETyAt
IG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAg
IyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9HRE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJO
b2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRWxlbWVudC5oIn0gPSAxOworICAgICRp
bXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVs
ZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7Cisg
ICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVz
eyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0gMTsK
KyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhlbEFycmF5LmgifSA9IDE7CisgICAgJGltcGxJ
bmNsdWRlc3siVGV4dC5oIn0gPSAxOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlv
bmFsIG9yIGluIGEgaGVhZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAk
aGFja0RlY2xzID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIg
dG9HRE9NKE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NWYWx1ZSogbm9kZSk7
CisgICAgZ3BvaW50ZXIgdG9HRE9NKENTU1J1bGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RP
TShFbGVtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIG5vZGUpOwor
ICAgIGdwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogbm9kZSk7IAorICAgIC8vZ3BvaW50
ZXIgdG9HRE9NKFNWR1BhdGhTZWcqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oU3R5bGVT
aGVldCogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUp
OyAKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIG5vZGUpOyAKKyAgICBncG9pbnRl
ciB0b0dET00oRXZlbnQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oQ2FudmFzUGl4ZWxB
cnJheSogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShUZXh0KiBub2RlKTsgCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKK0VPRgorCisgICAgcHVzaChAY0JvZHksICRoYWNrRGVjbHMpOwor
CisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVhZGVyIGZpbGUu
ICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAkc3RyaW5nQ29udmVydCA9IDw8ICJFT0Yi
OworY2xhc3MgR1N0cmluZ0NvbnZlcnQgeworICAgIHB1YmxpYzoKKyAgICBjb25zdCBnY2hhciAq
bV9zdHI7CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IG1f
c3RyID0gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdl
YkNvcmU6OktVUkwgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoY29uc3QgS0pTOjpVU3RyaW5nICYgcykg
eyBtX3N0ciA9IGdfc3RyZHVwKHMuVVRGOFN0cmluZygpLmNfc3RyKCkpOyB9CisgICAgR1N0cmlu
Z0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBnX3N0cmR1
cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9Cit9OworCitFT0YKKworICAgIHB1c2goQGNC
b2R5LCAkc3RyaW5nQ29udmVydCk7CisKKyAgICBwdXNoKEBjQm9keSwgIm5hbWVzcGFjZSBXZWJD
b3JlIHtcbiIpOworCisgICAgIyBHZXQgY29ycmVjdCBwYXNzL3N0b3JlIHR5cGVzIHJlc3BlY3Rp
bmcgUE9EVHlwZSBmbGFnCisgICAgbXkgJHBvZFR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJQT0RUeXBlIn07CisgICAgbXkgJHBhc3NUeXBlID0gJHBvZFR5cGUgPyAiSlNT
VkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIiA6ICIkaW50ZXJmYWNlTmFtZSoiOworCisgICAg
aWYgKCghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5l
cmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VO
YW1lKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAY0Jv
ZHksICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMsIEpTU1ZHUE9EVHlw
ZVdyYXBwZXI8JHBvZFR5cGU+KiBvYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAg
ICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NO
YW1lKSkgeworICAgICAgICAjICAgICBwdXNoKEBjQm9keSwgIktKUzo6SlNWYWx1ZSogdG9KUyhL
SlM6OkV4ZWNTdGF0ZSogZXhlYywgJHBhc3NUeXBlIG9iaiwgU1ZHRWxlbWVudCogY29udGV4dClc
biIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiZ3BvaW50
ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNzVHlwZSBvYmopXG4iKTsKKyAgICAgICAgI30KKworICAg
ICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAg
ICAgICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2JqZWN0PEpTU1ZH
UE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+LCAkY2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5
cGU+KGV4ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlw
ZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAg
IHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBjYWNoZVNWR0RPTU9iamVjdDwkaW1wbENsYXNzTmFt
ZSwgJGNsYXNzTmFtZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQp
O1xuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
cmV0dXJuIFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lLCBH
RE9NJGludGVyZmFjZU5hbWU+KG9iaik7XG4iKTsKKyAgICAgICAgI30KKyAgICAgICAgcHVzaChA
Y0JvZHksICJ9XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogbmFtZXNwYWNl
IFdlYkNvcmUgKi8gXG4iKTsKKyAgICBteSAkaW1wbENvbnRlbnQgPSAiIjsKKworICAgICMgWFhY
IFRPRE8gcHVzaChAY0JvZHksICJ1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTtcblxuIik7CisgICAg
cHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xuXG4iKTsKKyAgICBwdXNoKEBjQm9keSwgIiNk
ZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cilcbiIpOwor
CisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCisgICAgQGhQcmVmaXggPSBz
cGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICAgICAgI3B1c2goQGhQcmVmaXgsICJc
biIpOworCisgICAgIyBIZWFkZXIgZ3VhcmQKKyAgICAgICAgbXkgJGd1YXJkID0gIl9fIiAuICRj
bGFzc05hbWUgLiAiX0hfXyI7CisKKyAgICBteSAkY2xzQ2FwcyA9IHN1YnN0cihDbHNUb0dPYmpU
eXBlKCRjbGFzc05hbWUpLCA1KTsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gImdkb21fIiAu
IGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpOworICAgICNteSAkcGFyZW50Q2xzQ2FwcyA9ICJH
RE9NXyIgLiBDbHNUb0dPYmpUeXBlKCRwYXJlbnRJbnRlcmZhY2VOYW1lKTsKKworICAgIEBoUHJl
Zml4R3VhcmQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJGd1YXJkCisjZGVmaW5lICRndWFyZAorRU9G
CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5fREVDTFMKKworRU9GCisK
KyAgICBwdXNoKEBoQm9keVByZSwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9
IDw8ICJFT0YiOworCisjZGVmaW5lIEdET01fVFlQRV8ke2Nsc0NhcHN9ICAgICAgICAgICAgKCR7
bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc30ob2Jq
KSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBF
XyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVf
JHtjbHNDYXBzfSwgJGNsYXNzTmFtZSlDbGFzcykKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9
KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQ
RV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAo
R19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkK
KyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNF
X0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1DbGFz
cykpCisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlICR7Y2xhc3NOYW1lfVBy
aXZhdGU7CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICAke3BhcmVudENsYXNzTmFtZX0g
cGFyZW50X2luc3RhbmNlOworCisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisK
K3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xh
c3M7Cit9OworCitXRUJLSVRfR0RPTV9BUEkgR1R5cGUKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRf
dHlwZSAodm9pZCk7CisKK0VPRgorCisgICAgcHVzaChAaEJvZHksICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJHtndWFyZH1fUFJPUF8KKyNk
ZWZpbmUgJHtndWFyZH1fUFJPUF8KK0VPRgorCisgICAgcHVzaChAaEJvZHlQcm9wUHJlLCAkaW1w
bENvbnRlbnQpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19CRUdJTl9ERUNMU1xuIik7CisK
KyAgICAkaGRyUHJvcEluY2x1ZGV7ImdsaWItb2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJ
bmNsdWRleyJpbnQke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgJGhkclByb3BJbmNsdWRl
eyJHRE9NT2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJbmNsdWRleyIke2ludGVyZmFjZU5h
bWV9LmgifSA9IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJHtn
dWFyZH1fSU5UXworI2RlZmluZSAke2d1YXJkfV9JTlRfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3Qu
aCIKKyNpbmNsdWRlICJpbnQke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVj
dC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAgICBpZiAoKCEkaGFzUGFyZW50IG9yICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNN
YW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRv
R0RPTSgke2ludGVyZmFjZU5hbWV9KiBub2RlKTsKK30gLyogbmFtZXNwYWNlIFdlYkNvcmUgKi8g
CitFT0YKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworICAgIH0KKyAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiR19CRUdJTl9ERUNMU1xuIik7CisKKyAgICAjQ2xhc3Mg
ZGVjbGFyYXRpb24KKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAg
ICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgImNsYXNzIEdET00kaW50ZXJmYWNlTmFtZSB7XG4i
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiY2xhc3MgR0RP
TSRpbnRlcmZhY2VOYW1lIDogcHVibGljICRwYXJlbnRHSWZhY2VOYW1lIHtcbiIpOworICAgICAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHR5cGVkZWYgJHBhcmVudEdJZmFjZU5hbWUgQmFz
ZTtcbiIpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHVibGljOlxuIik7CisK
KyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRfZ29ial90eXBlKCkgeyByZXR1
cm4gR0RPTV9UWVBFXyR7Y2xzQ2Fwc307IH1cbiIpOworCisgICAgbXkgJG5lZWRzU1ZHQ29udGV4
dCA9IDA7CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
R0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+IGlt
cGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6ICIiKSAu
ICIpO1xuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
ICAgIHZpcnR1YWwgfkdET00kaW50ZXJmYWNlTmFtZSgpO1xuIikgaWYgKCEkaGFzUGFyZW50IG9y
ICRpbnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpOworCisgICAgaWYgKCEkaGFzUGFyZW50IHx8
ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgI2lmICgkcG9kVHlw
ZSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgSlNTVkdQT0RUeXBl
V3JhcHBlcjwkcG9kVHlwZT4qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1c
biIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxlbWVudCog
Y29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKKyAgICAg
ICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAjICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dDtc
biIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPEpTU1ZH
UE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+ID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2lm
IChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAg
ICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBs
KCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRl
cm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
ICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+IG1faW1wbDtcbiIp
OworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIg
ICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwu
Z2V0KCk7IH1cblxuIik7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0
ZTpcbiIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8V2Vi
Q29yZTo6JGludGVyZmFjZU5hbWU+IG1faW1wbDtcbiIpOworICAgICAgICAjfQorICAgIH0gZWxz
aWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29udmVy
dGVyIn0pIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50
ZXJmYWNlTmFtZSogaW1wbCgpIGNvbnN0XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICB7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKj4oQmFzZTo6aW1wbCgpKTtc
biIpOworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIH1cbiIpOworICAgIH0KKyAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAifTtcbiIpOworCisgICAgIyBDb25zdHJ1Y3RvcgorICAg
IHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06OkdET00kaW50ZXJmYWNlTmFtZShQ
YXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250
ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKVxuIik7CisgICAgaWYgKCRp
bnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IDptX2ltcGwoaW1wbClcbiIpOworICAgIH0gZWxzaWYgKCRoYXNQYXJlbnQpIHsKKyAgICAgICAg
cHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZShpbXBsIiAuICgkcGFyZW50TmVl
ZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIikgaWYgKCRpbnRlcmZhY2VO
YW1lIG5lICJET01XaW5kb3ciKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICA6ICRwYXJlbnRHSWZhY2VOYW1lKClcbiIpIDsKKyAgICAgICAgcHVzaChAY0JvZHksICIg
ICAgLCBtX2NvbnRleHQoY29udGV4dClcbiIpIGlmICRuZWVkc1NWR0NvbnRleHQ7CisgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsKKyAgICB9CisKKyAgICBwdXNo
KEBjQm9keSwgIntcbiIpOworICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKworICAgICMgRGVz
dHJ1Y3RvcgorICAgIGlmICghJGhhc1BhcmVudCkgeworICAgICAgICBwdXNoKEBjQm9keSwgIkdE
T00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOworICAgICAgICBw
dXNoKEBjQm9keSwgIntcbiIpOworCisgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9k
ZSIpIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG1faW1wbC0+ZG9jdW1lbnQoKSwg
bV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgI2lmICgk
cG9kVHlwZSkgeworICAgICAgICAgICAgIyAgICBteSAkYW5pbWF0ZWRUeXBlID0gJGltcGxDbGFz
c05hbWU7CisgICAgICAgICAgICAjICAgICRhbmltYXRlZFR5cGUgPX4gcy9TVkcvU1ZHQW5pbWF0
ZWQvOworCisgICAgICAgICAgICAjICAgICMgU3BlY2lhbCBjYXNlIGZvciBKU1NWR051bWJlcgor
ICAgICAgICAgICAgIyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRh
bmltYXRlZFR5cGUpIGFuZCAkcG9kVHlwZSBuZSAiZmxvYXQiKSB7CisgICAgICAgICAgICAjICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBKU1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRw
b2RUeXBlLCAkYW5pbWF0ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlcihtX2ltcGwuZ2V0KCkpO1xuIik7
CisgICAgICAgICAgICAjICAgIH0KKyAgICAgICAgICAgICN9CisgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVj
dChtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEBjQm9keSwg
IlxufVxuXG4iKTsKKyAgICB9CisKKyAgICAjIERvY3VtZW50IG5lZWRzIGEgc3BlY2lhbCBkZXN0
cnVjdG9yIGJlY2F1c2UgaXQncyBhIHNwZWNpYWwgY2FzZSBmb3IgY2FjaGluZy4gSXQgbmVlZHMK
KyAgICAjIGl0cyBvd24gc3BlY2lhbCBoYW5kbGluZyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRo
ZSBjYWNoaW5nIHRoYXQgTm9kZSBub3JtYWxseSBkb2VzLgorICAgIGlmICgkaW50ZXJmYWNlTmFt
ZSBlcSAiRG9jdW1lbnQiKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNl
TmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAi
e1xuICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHN0
YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihpbXBsKCkpKTtcbn1cblxuIik7
CisgICAgfQorCisgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOwor
ICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbElu
Y2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NO
YW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOwor
CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD4KKyNp
bmNsdWRlICJET01XaW5kb3cuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAq
LworI2luY2x1ZGUgIk5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAq
LworI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9w
dGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5oIiAvKiB5dWtrOiBUT0RPIC0gbWFr
ZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzR3JhZGllbnQuaCIgLyogeXVrazog
VE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1N0eWxlLmgiIC8q
IHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLwor
I2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMg
b3B0aW9uYWwgKi8KKyNpbmNsdWRlICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiIC8qIHl1a2s6IFRP
RE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJwcml2Z2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsIG9uIEV2ZW50VGFyZ2V0
Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCisjaW5jbHVkZSAiJHtoZHJOYW1lfS5o
IgorI2luY2x1ZGUgInByaXYke2hkck5hbWV9LmgiCisjaW5jbHVkZSAiaW50JHtoZHJOYW1lfS5o
IgorI2luY2x1ZGUgIiR7aGRyTmFtZX1wcm9wcy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2lu
Y2x1ZGUgInVzdHJpbmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisKKyNpbmNsdWRlICJDYW52YXNQ
aXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5j
bHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiSFRNTENv
bGxlY3Rpb24uaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAk
aW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworJHtoYWNrRGVjbHN9CisKK0dfQkVHSU5fREVDTFMK
KworJHtzdHJpbmdDb252ZXJ0fQorCitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHtsY2Fz
ZV9pZmFjZW5hbWV9LCAke3BhcmVudEdPYmpUeXBlfSk7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgo
c3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cikKKworLyoKK3N0cnVjdCBfJHtjbGFzc05h
bWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqaXRlbTsK
K307ICAKKworI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBF
X0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFz
c05hbWV9UHJpdmF0ZSkpCisqLworR19FTkRfREVDTFMKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVz
dCkKK3sKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
aWYgKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLworRU9G
CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisgICAgR0RP
TSR7aW50ZXJmYWNlTmFtZX0gKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NJHtpbnRl
cmZhY2VOYW1lfSo+KGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1Qo
cmVxdWVzdCkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfSo+KHJlcy0+aW1wbCgpKTsKK0VPRgorICAgIH0KKyAgICBwdXNoKEBjQm9keVByaXYsICRp
bXBsQ29udGVudCk7CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1lUHJl
Zml4ID0gJGxjYXNlX2lmYWNlbmFtZTsgCisgICAgU0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0dHJp
YnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wTmFtZSA9
IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgbXkgJHBy
b3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUg
PSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFz
c05hbWUgKnRoaXoiOworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7Cisg
ICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAk
dHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisKKyAgICAgICAgaWYgKHNraXBQcm9wVGVt
cG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9Q
OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgYWRkUHJvcEluY0hkcigkcHJvcF90
eXBlKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0dET01fQVBJICR0eXBl
XG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJvcF9nZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5j
dGlvblNpZyk7XG5cbiIpOworCisgICAgICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfR0RP
TV9BUEkgdm9pZFxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3Bfc2V0XyIgLiAiJHByb3BO
YW1lICgkZnVuY3Rpb25TaWcsICR0eXBlIiAuICJ2YWx1ZSk7XG5cbiIpOworICAgIH0KKworICAg
ICMgUHJvcGVydGllcworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworfQorCitHX0JFR0lO
X0RFQ0xTCisKK2VudW0geworICAgIFBST1BfMCwKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwg
JGltcGxDb250ZW50KTsKKworICAgIG15IEB0eHRfaW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15
IEB0eHRfc2V0X3Byb3BzID0gKCk7CisgICAgbXkgQHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAg
IG15ICRwcml2X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNlX2lmYWNlbmFt
ZX0sICJnc2VsZiIsICJzZWxmIik7CisKKyAgICBteSAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7
CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0eV9mbihHT2JqZWN0
ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorCQkJCQkgR1ZhbHVlICogdmFsdWUsCisJCQkJCSBH
UGFyYW1TcGVjICogcHNwZWMpCit7CisJJHtjbGFzc05hbWV9ICpzZWxmID0gR0RPTV8ke2Nsc0Nh
cHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKwlzd2l0Y2ggKHByb3BfaWQpIHsKK0VPRgorICAg
IHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRf
cHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJv
cGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKwkJCQkJIGNvbnN0IEdW
YWx1ZSAqIHZhbHVlLAorCQkJCQkgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworCSR7Y2xhc3NOYW1l
fSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisJc3dpdGNo
IChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9w
KTsKKworICAgIFNLSVBFTlVNOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5h
dHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJvcF9uYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5uYW1lOworICAgICAgICBteSAkc2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3It
PldLX3VjZmlyc3QoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRnZXRwcm9wX25hbWVfZm4gPSAk
Y29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkcHJvcF9uYW1lKTsKKworICAgICAgICBteSAkcHJv
cE5hbWUgPSBkZWNhbWVsaXplKCRwcm9wX25hbWUpOworICAgICAgICBteSAkcHJvcENhcHMgPSB1
YygkcHJvcE5hbWUpOworICAgICAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT50eXBlOworICAgICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUpOworICAg
ICAgICBteSAke3Byb3BFbnVtfSA9ICJQUk9QXyR7cHJvcENhcHN9IjsKKyAgICAgICAgbXkgJHtw
cm9wX2d0eXBlfSA9IGRlY2FtZWxpemUoJHByb3BfdHlwZSk7CisgICAgICAgIGlmICgkcHJvcF9n
dHlwZSBlcSAiZXZlbnRfdGFyZ2V0IikgeworICAgICAgICAgICAgJHByb3BfZ3R5cGUgPSAiZXZl
bnRfdGFyZ2V0X25vZGUiOworICAgICAgICB9CisgICAgICAgIG15ICR7cHJvcEdUeXBlfSA9IHVj
KCRwcm9wX2d0eXBlKTsKKyAgICAgICAgbXkgJGxjYXNlX2d0eXBlbmFtZSA9ICJnZG9tXyIgLiAk
cHJvcF9ndHlwZTsKKworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7Cisg
ICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAk
dHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisgICAgICAgIGlmIChza2lwUHJvcFRlbXBv
cmFyaWx5KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsK
KyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgIiAgICAk
e3Byb3BFbnVtfSxcbiIpOworCisgICAgICAgIG15ICRndHlwZSA9IEdldFByb3BHVHlwZSgkcHJv
cF90eXBlKTsKKyAgICAgICAgbXkgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEQUJMRSI7Cisg
ICAgICAgIG15ICR3cml0ZWFibGUgPSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkvOwor
ICAgICAgICBteSAkY29uc3QgPSAicmVhZC1vbmx5ICI7CisgICAgICAgIGlmICgkd3JpdGVhYmxl
ICYmICRjdXN0b20pIHsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLW9ubHkgKGR1ZSB0byBj
dXN0b20gZnVuY3Rpb25zIG5lZWRlZCBpbiBnZG9td2Via2l0KSI7CisgICAgICAgICAgICBuZXh0
IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICEkY3VzdG9t
KSB7CisgICAgICAgICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURXUklURSI7CisgICAg
ICAgICAgICAkY29uc3QgPSAicmVhZC13cml0ZSAiOworICAgICAgICB9CisKKyAgICAgICAgbXkg
JF9ndHlwZSA9ICRndHlwZTsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAg
ICAgICAgICAgJF9ndHlwZSA9ICJ1aW50IjsgIyB5dWsuCisgICAgICAgIH0KKyAgICAgICAgbXkg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwlnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5IChnX2tsYXNzLCAke3Byb3BFbnVtfSwgCisJCQlnX3BhcmFtX3NwZWNfJHtfZ3R5cGV9
ICgiJHtwcm9wTmFtZX0iLCAvKiBuYW1lICovCisJCQkJIiR7aW50ZXJmYWNlTmFtZX0uJHtwcm9w
TmFtZX0iLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworCQkJCSIke2NvbnN0fSAke3R5cGV9ICR7
aW50ZXJmYWNlTmFtZX0uJHtwcm9wTmFtZX0iLCAvKiBsb25nZXIgKi8KK0VPRgorICAgICAgICBw
dXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworICAgICAgICAkdHh0
X2luc3RhbGxfcHJvcCA9ICIvKiBUT0RPISAkZ3R5cGUgKi9cbiI7CisKKyAgICAgICAgaWYgKCR3
cml0ZWFibGUpIHsKKworICAgICAgICAgICAgbXkgJG9rID0gMDsKKyAgICAgICAgICAgIG15ICRj
b252ZXJ0X2ZuID0gIiI7CisgICAgICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7Cisg
ICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiV2ViQ29yZTo6U3RyaW5nIjsKKyAgICAgICAg
ICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzaWYgKCRndHlw
ZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBu
ZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBp
ZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0Iikg
eworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAi
RE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVh
IHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsK
KyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVx
ICJ1bG9uZyIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9N
V2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdo
YXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxvbmciKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBU
T0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0
CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgICAgICRvayA9
IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAg
ICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIp
IHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBl
IGVxICJjaGFyIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAjIFhYWCBUT0RPIC0gc2tpcCBMb2NhdGlvbgorICAgICAgICAgICAgaWYgKCRp
bnRlcmZhY2VOYW1lIGVxICJMb2NhdGlvbiIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAwOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoJG9rKSB7CisgICAgICAgICAgICAgICAg
cHVzaChAdHh0X3NldF9wcm9wcywgIiAgICBjYXNlICR7cHJvcEVudW19OlxuICAgIHtcbiIpOwor
ICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25z
fTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBnc2VsZi0+
c2V0JHtzZXRwcm9wX25hbWVfZm59KCR7Y29udmVydF9mbn0oZ192YWx1ZV9nZXRfJGd0eXBlICh2
YWx1ZSkpIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiLCBlYyIp
IGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVz
aChAdHh0X3NldF9wcm9wcywgIik7XG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9z
ZXRfcHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICBjYXNlICR7cHJvcEVu
dW19OlxuICAgIHtcbiIpOworCisgICAgICAgIG15ICRleGNlcHRpb24gPSAiIjsKKyAgICAgICAg
aWYgKEB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICRleGNl
cHRpb24gPSAiZWMiOworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAg
IG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRwb3N0X2NvbnZlcnRfZm4gPSAiIjsK
KyAgICAgICAgbXkgJGRvbmUgPSAwOworICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7
CisgICAgICAgICAgICAkY29udmVydF9mbiA9ICJfR19HRVRfVVRGOCgiOworICAgICAgICAgICAg
JHBvc3RfY29udmVydF9mbiA9ICIpIjsKKyAgICAgICAgfQorICAgICAgICBlbHNpZiAoJGd0eXBl
IGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAiV1RGOjpnZXRQdHIo
JHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKCI7CisgICAgICAgICAgICAjJGNvbnZlcnRf
Zm4gPSBHZXRQcml2Rm4oJGludGVyZmFjZU5hbWUsICR7bGNhc2VfZ3R5cGVuYW1lfSwgImdzZWxm
IiwgInNlbGYiKTsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9ICIke2xjYXNlX2d0eXBlbmFt
ZX1fZ2V0X3ByaXZhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+KCI7CisgICAg
ICAgICAgICAjJHBvc3RfY29udmVydF9mbiA9ICIpIjsKKyAgICAgICAgICAgIG15ICRkb21vYmpU
eXBlID0gIkdET00iLiRwcm9wX3R5cGU7CisgICAgICAgICAgICAkdHh0X2dldF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PiBwdHIgPSBn
c2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSk7CisgICAgICAgIGdfdmFsdWVf
c2V0X29iamVjdCAodmFsdWUsIFdlYkNvcmU6OnRvR0RPTShwdHIuZ2V0KCkpKTsKK0VPRgorICAg
ICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisgICAgICAgICAg
ICAkZG9uZSA9IDE7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRkb25lKSB7CisgICAgICAg
ICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF8kX2d0eXBlICh2
YWx1ZSwgJHtjb252ZXJ0X2ZufWdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259
KSR7cG9zdF9jb252ZXJ0X2ZufSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4
dF9nZXRfcHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworCisgICAgICAgICMgaXMg
dGhpcyBfZW50aXJlbHlfIG5lY2Vzc2FyeT8/PworICAgICAgICAjIGNhbiBpdCBiZSBkb25lIHdp
dGggZ2VuZXJpYyBnX3BhcmFtX3NwZWNfZ3R5cGUKKyAgICAgICAgIyBhbmQgZ2V0dGluZyBhIGZl
dyB0aGluZ3MsIGlnbm9yaW5nIHRoZSBtaW4tbWF4IGZvciBleGFtcGxlPworICAgICAgICBpZiAo
JGd0eXBlIGVxICJpbnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJF
T0YiOworCQkJCUdfTUlOSU5ULCAgICAgICAgLyogbWluICovCisJCQkJR19NQVhJTlQsIC8qIG1h
eCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAo
JGd0eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8
PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBGQUxTRSwgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCUdfTUlORkxPQVQsICAgICAgICAvKiBtaW4gKi8KKwkJ
CQlHX01BWEZMT0FULCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHX01JTkRPVUJMRSwgICAgICAgIC8qIG1p
biAqLworCQkJCUdfTUFYRE9VQkxFLCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWlu
ICovCisJCQkJR19NQVhVSU5UNjQsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0
ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAg
ICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAq
LworCQkJCUdfTUFYVUxPTkcsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICov
CitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHX01JTkxPTkcsICAgICAgICAvKiBt
aW4gKi8KKwkJCQlHX01BWExPTkcsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0
ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWluICov
CisJCQkJR19NQVhVSU5ULCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLwor
RU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWluICovCisJ
CQkJR19NQVhVSU5UMTYsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJR19NSU5JTlQ4LCAgICAgICAgLyogbWlu
ICovCisJCQkJR19NQVhJTlQ4LCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAqLwor
CQkJCUdfTUFYVUlOVDgsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgICIiLCAvKiBkZWZh
dWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAg
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCUdET01fVFlQRV8ke3By
b3BHVHlwZX0sIC8qIGdvYmplY3QgdHlwZSAqLworRU9GCisgICAgICAgIH0KKyAgICAgICAgcHVz
aChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkoR1BhcmFtRmxhZ3MpJHtncGFyYW1mbGFnfSkp
OyAgICAgICAgICAgICAgICAgICAKKworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3By
b3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisKKworICAgIH0KKworICAgIHB1c2goQGNCb2R5UHJp
diwgIn07XG5cbiIpOworCisKKyAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CisJZGVmYXVs
dDoKKwkJR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOworCQlicmVhazsKKwl9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAk
dHh0X2dldF9wcm9wKTsKKworICAgICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9GIjsKKwlkZWZhdWx0
OgorCQlHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBw
c3BlYyk7CisJCWJyZWFrOworCX0KK30KK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0
eHRfc2V0X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRfZ2V0X3Byb3BzID0gPDwgIkVPRiI7CisJ
Y2FzZSBQUk9QX0FHRToKKwkJc2VsZi0+YWdlID0gZ192YWx1ZV9nZXRfaW50ICh2YWx1ZSk7CisJ
CWJyZWFrOworCisJY2FzZSBQUk9QX0FHRToKKwkJZ192YWx1ZV9zZXRfaW50KHZhbHVlLCBzZWxm
LT5hZ2UpOworCQlicmVhazsKKworICAgICAgICArICAgZ192YWx1ZV9pbml0KCZwYXJhbXNbMF0s
IEdfVFlQRV9GUk9NX0lOU1RBTkNFKG9iamVjdCkpOworICAgICAgICArICAgZ192YWx1ZV9zZXRf
aW5zdGFuY2UoJnBhcmFtc1swXSwgKGdwb2ludGVyKW9iamVjdCk7CisKK0VPRgorCisKKyAgICAk
aW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9
X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfSogcmVxdWVz
dCA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOyovCisgICAgLyoke2NsYXNzTmFtZX1Qcml2YXRl
KiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworICAgIAorICAgIC8qR09iamVjdENsYXNzICpwYXJl
bnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVlayAoZ190eXBlX3BlZWtfcGFyZW50ICgke3BhcmVu
dEdPYmpUeXBlfSkpOyovCisKKyAgICAvKiBGcmVlIGFueSBtZW1vcnkgb3IgY2xvc2UgYW55IGZp
bGVzICovIAorCisgICAgLypwYXJlbnRfY2xhc3MtPiBmaW5hbGl6ZSAob2JqZWN0KTsqLworCisg
ICAgR19PQkpFQ1RfQ0xBU1MoJHtsY2FzZV9pZmFjZW5hbWV9X3BhcmVudF9jbGFzcyktPmZpbmFs
aXplKG9iamVjdCk7Cit9CisKK0B0eHRfc2V0X3Byb3BzCisKK0B0eHRfZ2V0X3Byb3BzCisKK3N0
YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9jbGFzc19pbml0KCR7Y2xhc3NOYW1lfUNsYXNz
KiByZXF1ZXN0Q2xhc3MpCit7CisJR09iamVjdENsYXNzICpnX2tsYXNzID0gR19PQkpFQ1RfQ0xB
U1MgKHJlcXVlc3RDbGFzcyk7CisgICAgZ19rbGFzcy0+ZmluYWxpemUgPSAke2xjYXNlX2lmYWNl
bmFtZX1fZmluYWxpemU7CisJZ19rbGFzcy0+c2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5h
bWV9X19zZXRfcHJvcGVydHlfZm47CisJZ19rbGFzcy0+Z2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9p
ZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm47CisgICAgCisgICAgQHR4dF9pbnN0YWxsX3Byb3Bz
CisKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZigk
e2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5h
bWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0KQoreworICAgIC8qJHtjbGFzc05hbWV9UHJp
dmF0ZSogcHJpdiA9IEdET01fJHtjbHNDYXBzfV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBy
ZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfSAgIAorCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJp
diwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsSW5jbHVkZXN7ImludGdkb20ke2ludGVyZmFj
ZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNpZm5kZWYg
JHtndWFyZH1fUFJJVl8KKyNkZWZpbmUgJHtndWFyZH1fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorI2luY2x1ZGUgIiR7cGFyZW50SGRyTmFtZX0uaCIKKyNpbmNsdWRlICJHRE9NT2Jq
ZWN0LmgiCisvKiNpbmNsdWRlICJwcml2JHtwYXJlbnRIZHJOYW1lfS5oIiovCisvKkdfQkVHSU5f
REVDTFMqLworLypjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9OyovCisjaW5jbHVkZSAi
JHtpbnRlcmZhY2VOYW1lfS5oIgorRU9GCisKKyAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29u
dGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBHRE9NJHtpbnRlcmZhY2VOYW1lfSA6IHB1YmxpYyAke3BhcmVudEdJZmFj
ZU5hbWV9IHsKKworcHVibGljOgorICAgIEdET00ke2ludGVyZmFjZU5hbWV9KFdlYkNvcmU6OiR7
aW50ZXJmYWNlTmFtZX0qIGltcGwpIDogJHBhcmVudEdJZmFjZU5hbWV9KGltcGwpCisgICAgeyBp
bXBsLT5yZWYoKTsgfQorICAgIH5HRE9NJHtpbnRlcmZhY2VOYW1lfSgpIHsgbV9pbXBsLT5kZXJl
ZigpOyB9CisKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBpbXBsKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbXBsOyB9CisKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5h
bWV9ICptX2ltcGw7Cit9OworCitFT0YKKworICAgICAgICAjcHVzaChAaEJvZHlQcml2LCAkaW1w
bENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSAke2NsYXNzTmFtZX07
CisKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9w
cml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCk7CisKKy8qR19FTkRfREVDTFMqLworCisjZW5k
aWYgLyogJHtndWFyZH1fUFJJVl8gKi8KKworRU9GCisKKyAgICAjcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KChXZWJDb3JlOjpOb2RlKikocmVzKSk7
CisgICAgICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICAgICAjaWYg
KCRwYXJhbUlETFR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICMgWFhYID8/Pz8g
d3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICMgICAgJGltcGxJbmNs
dWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgI30gZWxz
ZSB7CisgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3skaW5jbHVkZUhkcn0gPSAxOworICAgICAg
ICAjfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7Cisg
ICAgICAgICRpbXBsSW5jbHVkZXN7InByaXZnZG9tRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAg
ICAgTE9PUDogZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7
CisgICAgICAgICAgICAjbXkgJGZ1bmN0aW9uTmFtZSA9IGRlY2FtZWxpemUoJGNsYXNzTmFtZSkg
LiAiXyIgLiBkZWNhbWVsaXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAg
ICAgICAgICBteSAkZm5fc2lnX25hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKyAg
ICAgICAgICAgICAgICBteSAkZm5fc2lnX3R5cGUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZTsKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gImdkb21fIiAuIGRlY2FtZWxp
emUoJGludGVyZmFjZU5hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25hbWUpOworICAg
ICAgICAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKyAg
ICAgICAgICAgICAgICBteSAkcmV0X2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRmbl9z
aWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSAiJGNsYXNzTmFt
ZSAqdGhpeiI7CisKKyAgICAgICAgICAgICAgICBteSAkY2FsbF9pbXBsX3BhcmFtcyA9ICIiOwor
ICAgICAgICAgICAgICAgIG15ICRnZG9tX2ZuX3ByZWZpeCA9ICJnZG9tXyIgLiBkZWNhbWVsaXpl
KCRmbl9zaWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X3Byb3BlcnR5IikgeworICAgICAgICAgICAg
ICAgICAgICAjIHJlc2VydmVkIG5hbWUgY2xhc2ggaW4gZ2xpYiEKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfY3NzX3By
b3BlcnR5IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBD
b21wYXJlSG93IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlv
bk5hbWUgZXEgImdkb21fcmFuZ2VfY29tcGFyZV9ib3VuZGFyeV9wb2ludHMiKSB7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFy
ZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5j
dGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQg
TE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIFNW
R0RvY3VtZW50IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIGVxICJHZG9tU1ZHRG9jdW1lbnQgKiIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
aEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1
bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
XG4vKiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5h
bWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlv
bnMgZm9yIG5vdworICAgICAgICAgICAgICAgIG15ICRpc19jdXN0b21fZm4gPSAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAgICAgICAgICAg
ICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9pdGVtIiB8fAor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlv
bl9uYW1lZF9pdGVtIikgeworICAgICAgICAgICAgICAgICAgICAkaXNfY3VzdG9tX2ZuID0gMDsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYg
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRv
cl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9w
YXJlbnRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3Np
YmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3Ry
ZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYgCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9ub2RlIiAm
JiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJh
dG9yX3ByZXZpb3VzX25vZGUiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAi
XG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20g
ZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBu
ZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yZWFjaCBt
eSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAgICBh
ZGRJbmNCb2R5KCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNIZHIo
JHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRH
VHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9
IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25TaWcgLj0gIiwgJHBhcmFtVHlwZSRwYXJhbU5hbWUiOworCisgICAgICAgICAgICAgICAgICAg
IG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgbmUgIkRPTU9iamVjdCIgJiYKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JRExUeXBlIG5lICJFdmVudFRhcmdldCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJpbnRnZG9tJHtwYXJh
bUlETFR5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3sicHJpdmdkb20ke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsgIyB0aGlz
IGlzbid0IHN0cmljdGx5IG5lY2Vzc2FyeSBidXQgb25lIG9mIHRoZSBhdXRvLWdlbmVyYXRlZCBm
aWxlcyBuZWVkZWQgaXQgc28uLi4uCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlw
ZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRwYXJhbU5hbWUgPSAiX2dfIiAuICRwYXJhbU5hbWU7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyAuPSAiLCAkcGFyYW1OYW1lIjsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICRjYWxsX2ltcGxfcGFyYW1zID0gIiRwYXJhbU5hbWUiOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
YWRkSW5jSGRyKCRmbl9zaWdfdHlwZSk7CisgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xz
X3R5cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke2ZuX3Np
Z190eXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAo
JHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRf
aXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUg
ZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCA/Pz8/
IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0g
MTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7ImludGdkb20ke2ZuX3NpZ190eXBl
fS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVz
eyJwcml2Z2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyIke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgIyBYWFggc2tpcCBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAg
ICAgICAgICAjIGJ1dCBza2lwIGZyb20gaGVyZSB0byBhbGxvdyBzb21lIGhlYWRlcnMgdG8gYmUg
Y3JlYXRlZAorICAgICAgICAgICAgICAgICMgZm9yIGEgc3VjY2Vzc2Z1bCBjb21waWxlLgorICAg
ICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmCisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hp
bGQiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9h
cHBlbmRfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBY
WFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rp
b24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExP
T1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJF9yZXR1cm5UeXBl
ID0gJHJldHVyblR5cGU7CisgICAgICAgICAgICAgICAgbXkgJGRvbW9ialR5cGUgPSAiR0RPTSIu
JGZuX3NpZ190eXBlOworICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgJ0RPTU9i
amVjdCcgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAnZ2RvbV9odG1s
X2NhbnZhc19lbGVtZW50X2dldF9jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICAjIFhY
WCBIQUNLIQorICAgICAgICAgICAgICAgICAgICAkX3JldHVyblR5cGUgPSAnR2RvbUNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21vYmpUeXBlID0gJ0dE
T01DYW52YXNSZW5kZXJpbmdDb250ZXh0JzsKKyAgICAgICAgICAgICAgICAgICAgJGdkb21fZm5f
cHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250ZXh0JzsKKyAgICAgICAgICAgICAg
ICAgICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93LiAgc2tpcCBpdC4K
KyAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01PYmplY3QgKFRPRE86
IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAgICAgICAgICAgICAgICAgICAgIyBi
ZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCRmbl9z
aWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIGVxICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQnKSB7CisgICAgICAg
ICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAgICRfcmV0dXJuVHlw
ZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIConOworICAgICAgICAgICAgICAgICAg
ICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEJzsKKyAgICAgICAg
ICAgICAgICAgICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250
ZXh0MmQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGludm9s
dmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgY29udmVy
dCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQor
ICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdE
T01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAKKwor
ICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiV0VCS0lUX0dET01fQVBJICRfcmV0dXJuVHlw
ZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2ln
KVxue1xuIik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7
CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCBy
ZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKHRoaXosIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9ICgke2xjYXNlX2lmYWNlbmFt
ZX1fZ2V0X3ByaXZhdGUodGhpeikpO1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4g
cHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtcbiIpOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJu
X2lmX2ZhaWwgKGl0ZW0pO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
b3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAg
ICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAg
ICAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5J
c1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRw
YXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICMgICAg
JGltcGxUeXBlZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoISRwYXJhbVR5cGVJc1ByaW1pdGl2ZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVm
YXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKyAgICAgICAgICAg
ICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAg
ICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAg
ICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1l
KTsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01D
bGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1J
RExUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6U3Ry
aW5nKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFyYW1JRExUeXBl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNwdXNoKEBjQm9keSwgIiAgICBXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9PiAqIF9nXyR7cGFyYW1OYW1lfSA9IFdURjo6
UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSk+O1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnRUYXJnZXQi
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3sicHJpdmdkb21F
dmVudFRhcmdldE5vZGUuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBfZ18ke3BhcmFtTmFtZX0g
PSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUqPihnZG9tX2V2ZW50X3Rhcmdl
dF9ub2RlX2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBfZ18ke3BhcmFtTmFtZX0gPSAoJHtwYXJh
bV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAi
dm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4g
cHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKF9nXyR7cGFyYW1OYW1lfSwgMCk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoX2dfJHtwYXJhbU5h
bWV9KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJHJldHVyblBhcmFtTmFtZSA9ICJfZ18iLiRwYXJh
bU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJuIn07CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbiA9ICIiOworICAgICAgICAg
ICAgICAgIG15ICRhc3NpZ25fcHJlID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbl9w
b3N0ID0gIiI7CisgICAgICAgICAgICAgICAgJGdfcmVzID0gMDsKKyAgICAgICAgICAgICAgICBp
ZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICRhc3NpZ24gPSAiUGFzc1JlZlB0cjxXZWJDb3JlOjoke2ZuX3NpZ190eXBlfT4gZ19yZXMg
PSAiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wcmUgPSAiV1RGOjpnZXRQdHIo
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcG9zdCA9ICIpIjsKKyAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAi
JHtfcmV0dXJuVHlwZX0gcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBteSAkZXhjZXB0aW9ucyA9ICIiOworICAgICAgICAg
ICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR7Y2FsbF9pbXBsX3BhcmFtc30gbmUgIiIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRleGNlcHRpb25zID0gIiwgZWMiOworICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGV4Y2VwdGlv
bnMgPSAiZWMiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgIyBuZWVkIHRoaXMgZm9yIGluY2x1ZGluZyAuLi4gX3NvbWV0aGluZ18g
LSBmb3IgdGhlIGNsYXNzIGFyZ3MKKyAgICAgICAgICAgICAgICAjaWYgKCRyZXRfaXNfY2xzX3R5
cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190
eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICN9CisgICAgICAgICAgICAgICAgaWYgKCRm
dW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiIHx8CisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiB8fAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfcmVwbGFjZV9jaGls
ZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX3Jl
bW92ZV9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGN1c3RvbV9nZG9tX25vZGVf
YXBwZW5kX2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0tPiR7Zm5fc2lnX25h
bWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KTsKKyAgICBpZiAob2spCisgICAg
eworICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1cm5UeXBl
fT4oV2ViQ29yZTo6dG9HRE9NKCRyZXR1cm5QYXJhbU5hbWUpKTsgCisgICAgICAgIHJldHVybiBy
ZXM7CisgICAgfQorICAgIHJldHVybiBOVUxMOworRU9GCisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOworICAgICAgICAgICAg
ICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2Nv
bnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIC8qIFhYWCBU
T0RPIC0gZ2V0IGNhbnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBs
X3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01TdHJpbmciKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufV9HX0dFVF9VVEY4
KGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7
XG4iICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRnX3JlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGdfcmVzID0gIiR7YXNzaWdufSR7
YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNl
cHRpb25zfSR7YXNzaWduX3Bvc3R9KSIgOworICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259JHthc3Np
Z25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlv
bnN9JHthc3NpZ25fcG9zdH0pO1xuIiApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYg
ISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBl
IG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19j
bHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
ICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihXZWJDb3Jl
Ojp0b0dET00oZ19yZXMuZ2V0KCkpKTsgXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190
eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBjYW52YXMgb2JqZWN0ICov
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxu
Iik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisgICAgICAgIH0K
KworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisgICAgcHVz
aChAY0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisKKyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9cbiIpOworCisgICAgcHVzaChAaEJvZHksICJH
X0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAvKiAkZ3VhcmQgKi9c
biIpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVz
aChAaEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3VhcmR9X1BST1BfKi9cbiIpOworfQorCisjIElu
dGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkg
PSBAXzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVJ
bnRlcm5hbCA9ICIkb3V0cHV0RGlyL2ludCIgLiAkbmFtZSAuICIuaCI7CisgICAgb3BlbihJTlRI
RUFERVIsICI+JGhkckZOYW1lSW50ZXJuYWwiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
aGRyRk5hbWVJbnRlcm5hbCI7CisKKyAgICBwcmludCBJTlRIRUFERVIgQGhQcmVmaXg7CisgICAg
cHJpbnQgSU5USEVBREVSICJcbiI7CisgICAgcHJpbnQgSU5USEVBREVSIEBoQm9keUludGVybmFs
OworICAgIGNsb3NlKElOVEhFQURFUik7CisKKyAgICAjIFdyaXRlIFByaXZhdGUgaGVhZGVyCisg
ICAgbXkgJGhkckZOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL3ByaXYiIC4gJG5hbWUgLiAiLmgiOwor
ICAgIG9wZW4oUFJJVkhFQURFUiwgIj4kaGRyRk5hbWVQcml2Iikgb3IgZGllICJDb3VsZG4ndCBv
cGVuIGZpbGUgJGhkckZOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSEVBREVSIEBoUHJlZml4
OworICAgIHByaW50IFBSSVZIRUFERVIgIlxuIjsKKyAgICBwcmludCBQUklWSEVBREVSIEBoQm9k
eVByaXY7CisgICAgY2xvc2UoUFJJVkhFQURFUik7CisKKyAgICAjIFdyaXRlIFByaXZhdGUgSW1w
bGVtZW50YXRpb24KKyAgICBteSAkaW1wbEZpbGVOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL3ByaXYi
IC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihQUklWSU1QTCwgIj4kaW1wbEZpbGVOYW1lUHJp
diIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWVQcml2IjsKKworICAg
IHByaW50IFBSSVZJTVBMIEBjUHJlZml4OworICAgIHByaW50IFBSSVZJTVBMICJcbiI7CisgICAg
cHJpbnQgUFJJVklNUEwgQGNCb2R5UHJpdjsKKworICAgIGNsb3NlKFBSSVZJTVBMKTsKKworICAg
ICMgV3JpdGUgcHJvcGVydGllcyBoZWFkZXIgKGF2b2lkcyByZWN1cnNpdmUgbmlnaHRtYXJlKQor
ICAgIG15ICRoZHJQcm9wRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAicHJvcHMuaCI7
CisgICAgb3BlbihQUk9QSEVBREVSLCAiPiRoZHJQcm9wRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0
IG9wZW4gZmlsZSAkaGRyUHJvcEZOYW1lIjsKKworICAgICRoZHJQcm9wSW5jbHVkZXN7ImdsaWIt
b2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBQUk9QSEVBREVSIEBoUHJlZml4OworICAgIHBy
aW50IFBST1BIRUFERVIgIi8qIHJlY3Vyc2l2ZSBpbmNsdWRlcyAvIGRlZmluZXMgaXNzdWUgZm9y
Y2VzIHNlcGFyYXRlIGhlYWRlciBmb3IgcHJvcGVydGllcy5cbnBlcmhhcHMgLSBiZXR0ZXIgLSBh
bGwgZ2RvbSBndGsgZnVuY3Rpb25zIHNob3VsZCBiZSBpbiBoZXJlISovXG4iOworICAgIHByaW50
IFBST1BIRUFERVIgQGhCb2R5UHJvcFByZTsKKyAgICBwcmludCBQUk9QSEVBREVSICIjaW5jbHVk
ZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+XG4iOworICAgIHByaW50IFBST1BIRUFERVIgbWFwIHsg
IiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBw
cmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmlu
dCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBAaEJvZHlQcm9wOworCisg
ICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgcHVibGljIGhlYWRlci4KKyAgICBteSAk
aGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4oSEVBREVS
LCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZSI7CisK
KyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBIRUFE
RVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQg
SEVBREVSICIjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+XG4iOworICAgIHByaW50IEhF
QURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJJbmNsdWRlcyk7
CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50
IEhFQURFUiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaEJvZHlQcmU7CisgICAgcHJpbnQgSEVB
REVSIG1hcCB7ICJ0eXBlZGVmIHN0cnVjdCBfJF8gJF87XG4iIH0gc29ydCBrZXlzKCVpbXBsVHlw
ZWRlZnMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWltcGxUeXBlZGVmcyk7Cisg
ICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdy
aXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBzb3VyY2VzCisgICAgbXkgJGltcGxGaWxlTmFtZSA9ICIk
b3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKElNUEwsICI+JGltcGxGaWxl
TmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWUiOworCisgICAg
cHJpbnQgSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcImNvbmZpZy5o
XCJcblxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8d3RmL0dldFB0ci5oPlxuIjsKKyAg
ICBwcmludCBJTVBMICIjaW5jbHVkZSBcIkNTdHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwg
IiNpbmNsdWRlIFwiUGxhdGZvcm1TdHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwgIiNpbmNs
dWRlIFwiQXRvbWljU3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcInVz
dHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiS1VSTC5oXCJcbiI7Cisg
ICAgcHJpbnQgSU1QTCBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVpbXBs
SW5jbHVkZXMpOworICAgIHByaW50IElNUEwgIlxuIiBpZiBrZXlzKCVpbXBsSW5jbHVkZXMpOwor
ICAgIHByaW50IElNUEwgQGNCb2R5OworCisgICAgY2xvc2UoSU1QTCk7CisKKyAgICAlaW1wbElu
Y2x1ZGVzID0gKCk7CisgICAgJWltcGxUeXBlZGVmcyA9ICgpOworICAgICVoZHJJbmNsdWRlcyA9
ICgpOworICAgIEBoUHJlZml4ID0gKCk7CisgICAgQGhCb2R5ID0gKCk7CisgICAgQGhCb2R5UHJp
diA9ICgpOworICAgIEBoQm9keUludGVybmFsID0gKCk7CisgICAgQGhCb2R5UHJvcCA9ICgpOwor
ICAgIEBoQm9keVByb3BQcmUgPSAoKTsKKworICAgIEBjUHJlZml4ID0gKCk7CisgICAgQGNCb2R5
ID0gKCk7CisgICAgQGNCb2R5UHJpdiA9ICgpOworfQorCisxOwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBdIEhU
TUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgIEhUTUxGb3JtRWxlbWVudCAgICAgIGZvcm07CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGVmYXVsdFNlbGVjdGVkOwotI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRl
ZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIHRleHQKICAgICAgICAg
ICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbHNlCkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9o
dG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBA
QAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlYXJjaDsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwogCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmlu
ZygpOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAkocmV2aXNp
b24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSwxNCArMzUsMTQgQEAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvZGU7CiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb2RlQmFzZTsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIGhlaWdodDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBoc3BhY2U7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRG
cm9tU3RyaW5nXSBsb25nIGhzcGFjZTsKICNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG9iamVj
dDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2c3BhY2U7
CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBs
b25nIHZzcGFjZTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHJldmlzaW9uIDM1
NzU4KQorKysgV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw3IEBACiAgICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD05M2UwNDA3YS04
MzgwLTRmZjAtOTc4ZC1mNzczZjJkZWU2YTMKICAgICBdIEhUTUxFbWJlZEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBhbGlnbjsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
CisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBoZWlnaHQ7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhlaWdodDsKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IG5hbWU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBzcmM7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0eXBlOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHdpZHRoOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyB3aWR0aDsKSW5kZXg6IFdlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJl
dmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTYsNyArMTU2LDcgQEAKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VB
R0VfR09CSkVDVCkpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyBkb21haW47CiAjZWxzZQogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGRvbWFpbjsKQEAgLTE4Miw3ICsxODIsNyBAQAogCiAgICAgICAgIE5v
ZGVMaXN0IGdldEVsZW1lbnRzQnlOYW1lKGluIERPTVN0cmluZyBlbGVtZW50TmFtZSk7CiAKLSNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCiAKQEAgLTE5NSw3
ICsxOTUsNyBAQAogICAgICAgICBFbGVtZW50ICAgICAgICAgICAgZWxlbWVudEZyb21Qb2ludChp
biBsb25nIHgsIGluIGxvbmcgeSk7CiAKICAgICAgICAgLy8gTW96aWxsYSBleHRlbnNpb25zCi0j
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgIERPTVNlbGVj
dGlvbiAgICAgICBnZXRTZWxlY3Rpb24oKTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGNoYXJhY3RlclNldDsK
QEAgLTIzNiw3ICsyMzYsNyBAQAogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKGluIERPTVN0cmluZyB0YWduYW1lKTsKIAogICAgICAgICAvLyBOb2RlU2VsZWN0b3IgLSBT
ZWxlY3RvciBBUEkKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAg
ICAgICAgW0N1c3RvbV0gRWxlbWVudCBxdWVyeVNlbGVjdG9yKGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JzLCBpbiBOU1Jlc29sdmVyIHJl
c29sdmVyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtDdXN0
b21dIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIp
CkluZGV4OiBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUv
ZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0
cmluZyB0b1N0cmluZygpOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNl
cHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmgJKHJl
dmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgKi8KIAogI2lmbmRlZiBET01Db3JlRXhjZXB0aW9u
X2gKLSNkZWZpbmUgRE9NQ29kZUV4Y2VwdGlvbl9oCisjZGVmaW5lIERPTUNvcmVFeGNlcHRpb25f
aAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQmFzZS5oIgogCkluZGV4OiBXZWJDb3JlL2RvbS9FdmVu
dEV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24u
aWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9H
T0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3Jt
YXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRl
eDogV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vS2V5Ym9hcmRFdmVudC5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vS2V5
Ym9hcmRFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGFsdEdyYXBoS2V5KTsKIAogICAgICAg
ICAvLyBXZWJLaXQgRXh0ZW5zaW9ucwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
CisjaWYgKCghZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSkgJiYgKCFkZWZpbmVkKExBTkdV
QUdFX0dPQkpFQ1QpKSkKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAg
ICAga2V5Q29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAg
Y2hhckNvZGU7CiAgICAgICAgIApJbmRleDogV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwJKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkK
ICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAg
ICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNv
cmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0
aEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS94bWwvWFBhdGhFeGNl
cHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVk
KExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21w
YXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwog
I2VuZGlmCkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCShyZXZp
c2lvbiAzNTc1OCkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9H
T0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3Jt
YXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRl
eDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNyBAQAogICAgICAgICBbRG9Ob3RD
aGVja0RvbWFpblNlY3VyaXR5LCBDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gRE9NU3RyaW5n
IG1lc3NhZ2UsIGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkK
ICAgICAgICAgLy8gR2xvYmFsIGNvbnN0cnVjdG9ycwogICAgICAgICBhdHRyaWJ1dGUgU3R5bGVT
aGVldENvbnN0cnVjdG9yIFN0eWxlU2hlZXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBDU1NTdHlsZVNo
ZWV0Q29uc3RydWN0b3IgQ1NTU3R5bGVTaGVldDsKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01TZWxl
Y3Rpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCShy
ZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAgIHZvaWQgcmVtb3ZlQWxsUmFuZ2VzKCk7
CiAgICAgICAgIHZvaWQgYWRkUmFuZ2UoaW4gUmFuZ2UgcmFuZ2UpOwogCi0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0
b1N0cmluZygpOwogI2VuZGlmCiAgICAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23089</attachid>
            <date>2008-08-31 10:19:31 -0700</date>
            <delta_ts>2008-09-01 03:41:12 -0700</delta_ts>
            <desc>add_event_listener for element events; added defaultView</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>232897</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMzE1LDYgKzMxNiw4IEBACiAJV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vic2V0dGluZ3MuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5o
CiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtf
YnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXApAQCAtMzQ0LDcgKzM0Nyw4IEBA
CiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAK
KwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZXZlbnQuY3BwIAogCiB3ZWJraXRndGtfY3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJ
TkdfV0VCS0lUIFwKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMiBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAiZ2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1
ZGUgImludGdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgInByaXZnZG9tRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExp
c3RlbmVyV2luZG93LmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAK
QEAgLTQ3LDYgKzUzLDEwIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwlncG9pbnRlciB0b0dET00oRG9jdW1l
bnQqIGRvYyk7Cit9CisKIGV4dGVybiAiQyIgewogCiBlbnVtIHsKQEAgLTU1LDYgKzY1LDcgQEAK
ICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAgICBIT1ZFUklOR19PVkVSX0xJ
TkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMTYwLDYg
KzE3MSwxNiBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAgICAgICBHX1RZ
UEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFs
c1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFs
RmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAg
IDAsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdl
YmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICAgICAgR19UWVBFX05P
TkUsIDIsCisgICAgICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKwog
ICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAq
LwpAQCAtMjkyLDYgKzMxMyw0NiBAQAogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0
X2RvbV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1
cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAorICoKKyAqIFJldHVybiB2YWx1
ZTogYSBHZG9tRG9jdW1lbnQKKyAqLworR2RvbURvY3VtZW50KiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9kb21fZG9jdW1lbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2Vi
S2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisJcmV0dXJuIEdE
T01fRE9DVU1FTlQoV2ViQ29yZTo6dG9HRE9NKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkpOworfQor
CisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyOgorICogQGZyYW1l
OiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIGFkZHMgYW4gZXZlbnQgbGlzdGVuZXIgdG8gdGhl
IGZyYW1lJ3MgZG9jdW1lbnQKKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBuYW1lIG9mIEBmcmFt
ZQorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJL
aXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciogZXZlbnRfdHlwZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgRkFMU0UpOworCisgICAgLy9XZWJLaXRX
ZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKworCXJldHVybiBhZGRf
d2luZG93X2V2ZW50X2xpc3RlbmVyKGZyYW1lLCBjb3JlRnJhbWUsIGV2ZW50X3R5cGUpOworfQor
CisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6IGEgI1dlYktp
dFdlYkZyYW1lCiAgKgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCShy
ZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgSlNfRE9N
X0VWRU5UX0xJU1RFTkVSX05PREVfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfTk9E
RV9ICisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMu
aD4KKworCisjaW5jbHVkZSAicHJpdmdkb21FdmVudFRhcmdldE5vZGUuaCIKKworLyogVE9ETzog
cmV0dXJuIHRoZSBhY3R1YWwgZXZlbnQgbGlzdGVuZXIgY3JlYXRlZCwgd2hpY2ggcmVxdWlyZXMK
KyAqIGEgZ2xpYiB3cmFwcGVyIG9iamVjdCB0byBiZSBjcmVhdGVkLgorICogVE9ETzogcHJvdmlk
ZSBhICdyZW1vdmVfZXZlbnRfbGlzdGVuZXInIHdoaWNoIHRha2VzIHRoYXQgZ2xpYgorICogb2Jq
ZWN0IGFzIGFuIGFyZ3VtZW50ICovCitleHRlcm4gIkMiIHsKK1dFQktJVF9BUEkKK2dib29sZWFu
IGFkZF9ldmVudF9saXN0ZW5lcihHZG9tRXZlbnRUYXJnZXROb2RlICp3ZiwgY29uc3QgY2hhciAq
bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiB1c2VDYXB0dXJlKTsK
K30KKworI2VuZGlmIC8qSlNfRE9NX0VWRU5UX0xJU1RFTkVSX05PREVfSCAqLwpJbmRleDogV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAK
IAogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dl
YmtpdG5ldHdvcmtyZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21Eb2N1bWVudC5oPgog
CiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYxLDYgKzYyLDkgQEAKIFdFQktJVF9BUEkgV2ViS2l0V2Vi
RnJhbWUgKgogd2Via2l0X3dlYl9mcmFtZV9uZXcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcgICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgR2RvbURvY3VtZW50ICoKK3dlYmtp
dF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudCAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAg
KmZyYW1lKTsKKwogV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X3dlYl92aWV3ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCkBAIC05
Myw2ICs5NywxMCBAQAogV0VCS0lUX0FQSSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X2dsb2JhbF9jb250ZXh0IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwog
CitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5l
cihXZWJLaXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5k
aWYKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9u
IDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RPTV9FVkVO
VF9MSVNURU5FUl9XSU5ET1dfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfV0lORE9X
X0gKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5o
PgorCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XZWJLaXRBdmFpbGFiaWxpdHkuaD4KKyNp
bmNsdWRlICJXZWJDb3JlL3BhZ2UvRnJhbWUuaCIKKworY2xhc3MgV2ViQ29yZTo6RnJhbWU7CisK
K2V4dGVybiAiQyIgeworV0VCS0lUX0FQSSBnYm9vbGVhbgorYWRkX3dpbmRvd19ldmVudF9saXN0
ZW5lcihXZWJLaXRXZWJGcmFtZSogd2YsIFdlYkNvcmU6OkZyYW1lICpmcmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7Cit9CisKKyNlbmRpZiAvKkpTX0RP
TV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50
LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcg
SG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtl
bm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0
cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5n
cy5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyV2luZG93Lmgi
CisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lck5vZGUuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5v
ZGUuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisj
aW5jbHVkZSAiU3RyaW5nSW1wbC5oIgorI2luY2x1ZGUgImdkb21FdmVudC5oIgorI2luY2x1ZGUg
IkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUg
IndlYmtpdGV2ZW50LmgiCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKEV2ZW50KiBkb2MpOworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5v
ZGUpOworfQorCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShXZWJLaXRFdmVudCwgd2Vi
a2l0X2V2ZW50LCBHX1RZUEVfT0JKRUNUKTsKKworc3RydWN0IF9XZWJLaXRFdmVudFByaXZhdGUg
eworICAgIEV2ZW50KiBldmVudDsKK307CisKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0dFVF9QUklW
QVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVf
RVZFTlQsIFdlYktpdEV2ZW50UHJpdmF0ZSkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9ldmVudF9m
aW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy9XZWJLaXRFdmVudCogcmVxdWVzdCA9
IFdFQktJVF9FVkVOVChvYmplY3QpOworICAgIC8vV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0g
cmVxdWVzdC0+cHJpdjsKKworICAgIC8vZ19mcmVlKHByaXYtPnVyaSk7CisKKyAgICBHX09CSkVD
VF9DTEFTUyh3ZWJraXRfZXZlbnRfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30K
Kworc3RhdGljIHZvaWQgd2Via2l0X2V2ZW50X2NsYXNzX2luaXQoV2ViS2l0RXZlbnRDbGFzcyog
cmVxdWVzdENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFs
aXplID0gd2Via2l0X2V2ZW50X2ZpbmFsaXplOworCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2
YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKFdlYktpdEV2ZW50UHJpdmF0ZSkpOworfQorCitzdGF0
aWMgdm9pZCB3ZWJraXRfZXZlbnRfaW5pdChXZWJLaXRFdmVudCogcmVxdWVzdCkKK3sKKyAgICBX
ZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSBXRUJLSVRfRVZFTlRfR0VUX1BSSVZBVEUocmVxdWVz
dCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Cit9CisKK1dlYktpdEV2ZW50KiB3ZWJraXRf
ZXZlbnRfbmV3KHZvaWQpCit7CisgICAgV2ViS2l0RXZlbnQqIHJlcXVlc3QgPSBXRUJLSVRfRVZF
TlQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0VWRU5ULCBOVUxMKSk7CisgICAgLy9wcml2LT5l
dmVudCA9IGV2ZW50OworCisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKKy8qCit2b2lkIHdlYmtp
dF9ldmVudF9zZXRfdXJpKFdlYktpdEV2ZW50KiByZXF1ZXN0LCBjb25zdCBnY2hhciogdXJpKQor
eworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0VWRU5UKHJlcXVlc3QpKTsKKyAgICBn
X3JldHVybl9pZl9mYWlsKHVyaSk7CisKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSBy
ZXF1ZXN0LT5wcml2OworCisgICAgZ19mcmVlKHByaXYtPnVyaSk7CisgICAgcHJpdi0+dXJpID0g
Z19zdHJkdXAodXJpKTsKK30KKyovCitHX0NPTlNUX1JFVFVSTiBnY2hhciogd2Via2l0X2V2ZW50
X2dldF9ldmVudF90eXBlKFdlYktpdEV2ZW50KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19FVkVOVChyZXF1ZXN0KSwgTlVMTCk7CisKKyAgICBXZWJLaXRF
dmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworICAgIHJldHVybiBnX3N0cmR1cChw
cml2LT5ldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworfQorCit2b2lkIHdl
YmtpdF9ldmVudF9jYW5jZWxfYnViYmxlICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QsIGdib29sZWFu
IGNhbmNlbCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2
OworICAgIHByaXYtPmV2ZW50LT5zZXRDYW5jZWxCdWJibGUoY2FuY2VsKTsKK30KKwordm9pZCB3
ZWJraXRfZXZlbnRfcHJldmVudF9kZWZhdWx0ICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QpCit7Cisg
ICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5l
dmVudC0+cHJldmVudERlZmF1bHQoKTsKK30KKwordm9pZCB3ZWJraXRfZXZlbnRfc3RvcF9wcm9w
YWdhdGlvbiAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0
ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnN0b3BQcm9wYWdhdGlv
bigpOworfQorCit9IC8vIGV4dGVybiAiQyIKKworY2xhc3MgTm9kZUV2ZW50TGlzdGVuZXIgOiBw
dWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm9k
ZUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9tRXZlbnRUYXJnZXROb2RlKiB3ZikKKyAgICB7IHJl
dHVybiBhZG9wdFJlZihuZXcgTm9kZUV2ZW50TGlzdGVuZXIod2YpKTsgfQorICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgdXNlQ2FwdHVyZSk7CisKKyAgICBwcml2YXRl
OgorICAgIE5vZGVFdmVudExpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUqIHdmKSA6IG1fd2Yo
d2YpIHsgfQorICAgIEdkb21FdmVudFRhcmdldE5vZGUqIG1fd2Y7Cit9OworCit2b2lkIE5vZGVF
dmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgdXNlQ2FwdHVyZSkK
K3sKKyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgcHJpbnRmKCJub2RlIGhhbmRsZUV2ZW50ICVz
XG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEdkb21FdmVu
dCAqd2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUobV93ZiwgImJyb3dzZXItZXZlbnQiLCB3ZXYsIHVzZUNhcHR1cmUsICZy
ZXR2YWwpOworfQorCitjbGFzcyBXaW5kb3dFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlz
dGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVu
ZXI+IGNyZWF0ZShXZWJLaXRXZWJGcmFtZSogd2YpIAorICAgIHsgcmV0dXJuIGFkb3B0UmVmKG5l
dyBXaW5kb3dFdmVudExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZl
bnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOworCisgICAgcHJpdmF0ZToKKyAgICBXaW5k
b3dFdmVudExpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3ZikgOiBtX3dmKHdmKSB7IH0KKyAgICBX
ZWJLaXRXZWJGcmFtZSogbV93ZjsKK307CisKK3ZvaWQgV2luZG93RXZlbnRMaXN0ZW5lcjo6aGFu
ZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZlbnQpCit7CisgICAgZ2Jvb2xl
YW4gcmV0dmFsOworICAgIHByaW50Zigid2luZG93IGhhbmRsZUV2ZW50ICVzXG4iLCBldmVudC0+
dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RP
TV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25h
bWUobV93ZiwgImJyb3dzZXItZXZlbnQiLCB3ZXYsIGlzV2luZG93RXZlbnQsICZyZXR2YWwpOwor
fQorCitnYm9vbGVhbiBhZGRfZXZlbnRfbGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2Ys
IGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4g
dXNlQ2FwdHVyZSkKK3sKKyAgICBXZWJDb3JlOjpOb2RlICpub2RlID0gZ2RvbV9ldmVudF90YXJn
ZXRfbm9kZV9nZXRfcHJpdmF0ZSh3Zik7CisgICAgaWYgKG5vZGUgPT0gTlVMTCB8fCAhbm9kZS0+
aXNFdmVudFRhcmdldE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIFdlYkNvcmU6
OkV2ZW50VGFyZ2V0Tm9kZSAqIGV0biA9IChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdl
dE5vZGUgKj4obm9kZSkpLT50b05vZGUoKTsKKyAgICBpZiAoZXRuID09IE5VTEwpCisgICAgICAg
IHJldHVybiBGQUxTRTsKKworICAgIFJlZlB0cjxOb2RlRXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIg
PSBOb2RlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBldG4tPmFkZEV2ZW50TGlzdGVu
ZXIobmFtZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOworCisgICAgcmV0dXJuIFRSVUU7CisKK30g
CisKK2dib29sZWFuIGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUgKndm
LCBGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKm5hbWUpCit7CisgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgpOwor
CisgICAgUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gV2luZG93RXZlbnRM
aXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBkb2MtPmFkZFdpbmRvd0V2ZW50TGlzdGVuZXIobmFt
ZSwgbGlzdGVuZXIsIHRydWUpOworCisgICAgcmV0dXJuIFRSVUU7CisKK30gCisKSW5kZXg6IFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZGVmaW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw5IEBACiAK
IEdfQkVHSU5fREVDTFMKIAordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50IFdlYktpdEV2ZW50
OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgV2ViS2l0RXZlbnRDbGFzczsKKwog
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0IFdlYktpdE5ldHdvcmtSZXF1ZXN0
OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3MgV2ViS2l0TmV0d29y
a1JlcXVlc3RDbGFzczsKIApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5oCShyZXZpc2lvbiAw
KQorKysgV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1MjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIg
SGFucyBQZXRlciBGcmV5dGhlcgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdFQktJVF9HRE9NX0RFRklORVNfSAorI2RlZmlu
ZSBXRUJLSVRfR0RPTV9ERUZJTkVTX0gKKworI2luY2x1ZGUgPGdsaWIuaD4KKworI2lmZGVmIEdf
T1NfV0lOMzIKKyAgICAjaWZkZWYgQlVJTERJTkdfV0VCS0lUX0dET00KKyAgICAgICAgI2RlZmlu
ZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCisgICAgI2Vsc2UKKyAgICAg
ICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhkbGxpbXBvcnQpCisgICAgI2Vu
ZGlmCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9PQlNPTEVURV9BUEkgV0VCS0lUX0dET01fQVBJ
CisjZWxzZQorICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fYXR0cmlidXRlX18oKHZpc2li
aWxpdHkoImRlZmF1bHQiKSkpCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9PQlNPTEVURV9BUEkg
V0VCS0lUX0dET01fQVBJIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQpKQorI2VuZGlmCisKKyNp
Zm5kZWYgV0VCS0lUX0dET01fQVBJCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkKKyNlbmRp
ZgorCitHX0JFR0lOX0RFQ0xTCisKKy8qCit0eXBlZGVmIHN0cnVjdCBfR0RvbUF0dHJDbGFzcyBH
RG9tQXR0ckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21BdHRyIEdEb21BdHRyOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21BdHRyUHJpdmF0ZSBHRG9tQXR0clByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUJhckluZm9DbGFzcyBHRG9tQmFySW5mb0NsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21CYXJJbmZvIEdEb21CYXJJbmZvOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21CYXJJbmZvUHJpdmF0
ZSBHRG9tQmFySW5mb1ByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc0dyYWRpZW50
Q2xhc3MgR0RvbUNhbnZhc0dyYWRpZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZh
c0dyYWRpZW50IEdEb21DYW52YXNHcmFkaWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFz
R3JhZGllbnRQcml2YXRlIEdEb21DYW52YXNHcmFkaWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNhbnZhc1BhdHRlcm5DbGFzcyBHRG9tQ2FudmFzUGF0dGVybkNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuIEdEb21DYW52YXNQYXR0ZXJuOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DYW52YXNQYXR0ZXJuUHJpdmF0ZSBHRG9tQ2FudmFzUGF0dGVyblByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc1BpeGVsQXJyYXlDbGFzcyBHRG9tQ2FudmFzUGl4
ZWxBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQaXhlbEFycmF5IEdEb21D
YW52YXNQaXhlbEFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DYW52YXNQaXhlbEFycmF5UHJp
dmF0ZSBHRG9tQ2FudmFzUGl4ZWxBcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRENsYXNzIEdEb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIEdEb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRFByaXZhdGUgR0RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRBU2VjdGlvbkNsYXNzIEdEb21DREFUQVNlY3Rpb25D
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ0RBVEFTZWN0aW9uIEdEb21DREFUQVNlY3Rpb247
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNEQVRBU2VjdGlvblByaXZhdGUgR0RvbUNEQVRBU2VjdGlv
blByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNoYXJhY3RlckRhdGFDbGFzcyBHRG9tQ2hh
cmFjdGVyRGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DaGFyYWN0ZXJEYXRhIEdEb21D
aGFyYWN0ZXJEYXRhOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DaGFyYWN0ZXJEYXRhUHJpdmF0ZSBH
RG9tQ2hhcmFjdGVyRGF0YVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNsaXBib2FyZENs
YXNzIEdEb21DbGlwYm9hcmRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ2xpcGJvYXJkIEdE
b21DbGlwYm9hcmQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNsaXBib2FyZFByaXZhdGUgR0RvbUNs
aXBib2FyZFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNvbW1lbnRDbGFzcyBHRG9tQ29t
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db21tZW50IEdEb21Db21tZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21Db21tZW50UHJpdmF0ZSBHRG9tQ29tbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUNvbnNvbGVDbGFzcyBHRG9tQ29uc29sZUNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21Db25zb2xlIEdEb21Db25zb2xlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db25z
b2xlUHJpdmF0ZSBHRG9tQ29uc29sZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNvdW50
ZXJDbGFzcyBHRG9tQ291bnRlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db3VudGVyIEdE
b21Db3VudGVyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Db3VudGVyUHJpdmF0ZSBHRG9tQ291bnRl
clByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0NoYXJzZXRSdWxlQ2xhc3MgR0RvbUNT
U0NoYXJzZXRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0NoYXJzZXRSdWxlIEdE
b21DU1NDaGFyc2V0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTQ2hhcnNldFJ1bGVQcml2
YXRlIEdEb21DU1NDaGFyc2V0UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0Zv
bnRGYWNlUnVsZUNsYXNzIEdEb21DU1NGb250RmFjZVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tQ1NTRm9udEZhY2VSdWxlIEdEb21DU1NGb250RmFjZVJ1bGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU0ZvbnRGYWNlUnVsZVByaXZhdGUgR0RvbUNTU0ZvbnRGYWNlUnVsZVByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU0ltcG9ydFJ1bGVDbGFzcyBHRG9tQ1NTSW1wb3J0UnVs
ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRSdWxlIEdEb21DU1NJbXBvcnRS
dWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NJbXBvcnRSdWxlUHJpdmF0ZSBHRG9tQ1NTSW1w
b3J0UnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU01lZGlhUnVsZUNsYXNzIEdE
b21DU1NNZWRpYVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTTWVkaWFSdWxlIEdE
b21DU1NNZWRpYVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU01lZGlhUnVsZVByaXZhdGUg
R0RvbUNTU01lZGlhUnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1BhZ2VSdWxl
Q2xhc3MgR0RvbUNTU1BhZ2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1BhZ2VS
dWxlIEdEb21DU1NQYWdlUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTUGFnZVJ1bGVQcml2
YXRlIEdEb21DU1NQYWdlUnVsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ByaW1p
dGl2ZVZhbHVlQ2xhc3MgR0RvbUNTU1ByaW1pdGl2ZVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU1ByaW1pdGl2ZVZhbHVlIEdEb21DU1NQcmltaXRpdmVWYWx1ZTsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tQ1NTUHJpbWl0aXZlVmFsdWVQcml2YXRlIEdEb21DU1NQcmltaXRpdmVWYWx1
ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1J1bGVDbGFzcyBHRG9tQ1NTUnVsZUNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NSdWxlIEdEb21DU1NSdWxlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21DU1NSdWxlTGlzdENsYXNzIEdEb21DU1NSdWxlTGlzdENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21DU1NSdWxlTGlzdCBHRG9tQ1NTUnVsZUxpc3Q7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU1J1bGVMaXN0UHJpdmF0ZSBHRG9tQ1NTUnVsZUxpc3RQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21DU1NSdWxlUHJpdmF0ZSBHRG9tQ1NTUnVsZVByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUNTU1N0eWxlRGVjbGFyYXRpb25DbGFzcyBHRG9tQ1NTU3R5bGVEZWNsYXJh
dGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZURlY2xhcmF0aW9uIEdEb21D
U1NTdHlsZURlY2xhcmF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZURlY2xhcmF0
aW9uUHJpdmF0ZSBHRG9tQ1NTU3R5bGVEZWNsYXJhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU1N0eWxlUnVsZUNsYXNzIEdEb21DU1NTdHlsZVJ1bGVDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tQ1NTU3R5bGVSdWxlIEdEb21DU1NTdHlsZVJ1bGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUNTU1N0eWxlUnVsZVByaXZhdGUgR0RvbUNTU1N0eWxlUnVsZVByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUNTU1N0eWxlU2hlZXRDbGFzcyBHRG9tQ1NTU3R5bGVTaGVldENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0IEdEb21DU1NTdHlsZVNoZWV0Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NTdHlsZVNoZWV0UHJpdmF0ZSBHRG9tQ1NTU3R5bGVTaGVl
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlQ2xhc3MgR0RvbUNTU1ZhbHVl
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhbHVlIEdEb21DU1NWYWx1ZTsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0Q2xhc3MgR0RvbUNTU1ZhbHVlTGlzdENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21DU1NWYWx1ZUxpc3QgR0RvbUNTU1ZhbHVlTGlzdDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVMaXN0UHJpdmF0ZSBHRG9tQ1NTVmFsdWVMaXN0UHJpdmF0
ZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tQ1NTVmFsdWVQcml2YXRlIEdEb21DU1NWYWx1ZVByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uQ2xhc3MgR0Rv
bUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1Zh
cmlhYmxlc0RlY2xhcmF0aW9uIEdEb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbjsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25Qcml2YXRlIEdEb21DU1NWYXJpYWJs
ZXNEZWNsYXJhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUNTU1ZhcmlhYmxlc1J1
bGVDbGFzcyBHRG9tQ1NTVmFyaWFibGVzUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21D
U1NWYXJpYWJsZXNSdWxlIEdEb21DU1NWYXJpYWJsZXNSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21DU1NWYXJpYWJsZXNSdWxlUHJpdmF0ZSBHRG9tQ1NTVmFyaWFibGVzUnVsZVByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbURhdGFiYXNlQ2xhc3MgR0RvbURhdGFiYXNlQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbURhdGFiYXNlIEdEb21EYXRhYmFzZTsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tRGF0YWJhc2VQcml2YXRlIEdEb21EYXRhYmFzZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbURvY3VtZW50Q2xhc3MgR0RvbURvY3VtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bURvY3VtZW50RnJhZ21lbnRDbGFzcyBHRG9tRG9jdW1lbnRGcmFnbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudEZyYWdtZW50IEdEb21Eb2N1bWVudEZyYWdtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZSBHRG9tRG9jdW1lbnRGcmFn
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50IEdEb21Eb2N1bWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRQcml2YXRlIEdEb21Eb2N1bWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50VHlwZUNsYXNzIEdEb21Eb2N1bWVudFR5cGVD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tRG9jdW1lbnRUeXBlIEdEb21Eb2N1bWVudFR5cGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURvY3VtZW50VHlwZVByaXZhdGUgR0RvbURvY3VtZW50VHlw
ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUFwcGxpY2F0aW9uQ2FjaGVDbGFzcyBH
RG9tRE9NQXBwbGljYXRpb25DYWNoZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01BcHBs
aWNhdGlvbkNhY2hlIEdEb21ET01BcHBsaWNhdGlvbkNhY2hlOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21ET01BcHBsaWNhdGlvbkNhY2hlUHJpdmF0ZSBHRG9tRE9NQXBwbGljYXRpb25DYWNoZVByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTUNvcmVFeGNlcHRpb25DbGFzcyBHRG9tRE9NQ29y
ZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01Db3JlRXhjZXB0aW9uIEdE
b21ET01Db3JlRXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01Db3JlRXhjZXB0aW9u
UHJpdmF0ZSBHRG9tRE9NQ29yZUV4Y2VwdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bURPTUltcGxlbWVudGF0aW9uQ2xhc3MgR0RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbURPTUltcGxlbWVudGF0aW9uIEdEb21ET01JbXBsZW1lbnRhdGlvbjsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tRE9NSW1wbGVtZW50YXRpb25Qcml2YXRlIEdEb21ET01JbXBs
ZW1lbnRhdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTU9iamVjdCBHRG9tRE9N
T2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01QYXJzZXJDbGFzcyBHRG9tRE9NUGFyc2Vy
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVBhcnNlciBHRG9tRE9NUGFyc2VyOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21ET01QYXJzZXJQcml2YXRlIEdEb21ET01QYXJzZXJQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxlY3Rpb25DbGFzcyBHRG9tRE9NU2VsZWN0aW9uQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVNlbGVjdGlvbiBHRG9tRE9NU2VsZWN0aW9uOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01TZWxlY3Rpb25Qcml2YXRlIEdEb21ET01TZWxlY3Rpb25Q
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21ET01XaW5kb3dDbGFzcyBHRG9tRE9NV2luZG93
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbURPTVdpbmRvdyBHRG9tRE9NV2luZG93OwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21ET01XaW5kb3dQcml2YXRlIEdEb21ET01XaW5kb3dQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21FbGVtZW50Q2xhc3MgR0RvbUVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tRWxlbWVudCBHRG9tRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
RWxlbWVudFByaXZhdGUgR0RvbUVsZW1lbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21F
bnRpdHlDbGFzcyBHRG9tRW50aXR5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUVudGl0eSBH
RG9tRW50aXR5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlQcml2YXRlIEdEb21FbnRpdHlQ
cml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlSZWZlcmVuY2VDbGFzcyBHRG9tRW50
aXR5UmVmZXJlbmNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUVudGl0eVJlZmVyZW5jZSBH
RG9tRW50aXR5UmVmZXJlbmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FbnRpdHlSZWZlcmVuY2VQ
cml2YXRlIEdEb21FbnRpdHlSZWZlcmVuY2VQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21F
dmVudENsYXNzIEdEb21FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FdmVudEV4Y2Vw
dGlvbkNsYXNzIEdEb21FdmVudEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21F
dmVudEV4Y2VwdGlvbiBHRG9tRXZlbnRFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUV2
ZW50RXhjZXB0aW9uUHJpdmF0ZSBHRG9tRXZlbnRFeGNlcHRpb25Qcml2YXRlOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21FdmVudCBHRG9tRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUV2ZW50UHJp
dmF0ZSBHRG9tRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21FdmVudFRhcmdldCBH
RG9tRXZlbnRUYXJnZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUZpbGVDbGFzcyBHRG9tRmlsZUNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21GaWxlIEdEb21GaWxlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21GaWxlTGlzdENsYXNzIEdEb21GaWxlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21GaWxlTGlzdCBHRG9tRmlsZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUZpbGVMaXN0UHJp
dmF0ZSBHRG9tRmlsZUxpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21GaWxlUHJpdmF0
ZSBHRG9tRmlsZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhpc3RvcnlDbGFzcyBHRG9t
SGlzdG9yeUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IaXN0b3J5IEdEb21IaXN0b3J5Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IaXN0b3J5UHJpdmF0ZSBHRG9tSGlzdG9yeVByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBbmNob3JFbGVtZW50Q2xhc3MgR0RvbUhUTUxBbmNob3JF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBbmNob3JFbGVtZW50IEdEb21I
VE1MQW5jaG9yRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEFuY2hvckVsZW1lbnRQ
cml2YXRlIEdEb21IVE1MQW5jaG9yRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxBcHBsZXRFbGVtZW50Q2xhc3MgR0RvbUhUTUxBcHBsZXRFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxBcHBsZXRFbGVtZW50IEdEb21IVE1MQXBwbGV0RWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEFwcGxldEVsZW1lbnRQcml2YXRlIEdEb21IVE1MQXBw
bGV0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxBcmVhRWxlbWVudENs
YXNzIEdEb21IVE1MQXJlYUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEFy
ZWFFbGVtZW50IEdEb21IVE1MQXJlYUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxB
cmVhRWxlbWVudFByaXZhdGUgR0RvbUhUTUxBcmVhRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxCYXNlRWxlbWVudENsYXNzIEdEb21IVE1MQmFzZUVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJhc2VFbGVtZW50IEdEb21IVE1MQmFzZUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRWxlbWVudFByaXZhdGUgR0RvbUhUTUxCYXNl
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCYXNlRm9udEVsZW1lbnRD
bGFzcyBHRG9tSFRNTEJhc2VGb250RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MQmFzZUZvbnRFbGVtZW50IEdEb21IVE1MQmFzZUZvbnRFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MQmFzZUZvbnRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJhc2VGb250RWxlbWVu
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudENsYXNz
IEdEb21IVE1MQmxvY2txdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TEJsb2NrcXVvdGVFbGVtZW50IEdEb21IVE1MQmxvY2txdW90ZUVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudFByaXZhdGUgR0RvbUhUTUxCbG9ja3F1b3Rl
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCb2R5RWxlbWVudENsYXNz
IEdEb21IVE1MQm9keUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJvZHlF
bGVtZW50IEdEb21IVE1MQm9keUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCb2R5
RWxlbWVudFByaXZhdGUgR0RvbUhUTUxCb2R5RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxCUkVsZW1lbnRDbGFzcyBHRG9tSFRNTEJSRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50IEdEb21IVE1MQlJFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MQlJFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEJSRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3MgR0RvbUhUTUxCdXR0
b25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxCdXR0b25FbGVtZW50IEdE
b21IVE1MQnV0dG9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEJ1dHRvbkVsZW1l
bnRQcml2YXRlIEdEb21IVE1MQnV0dG9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxDYW52YXNFbGVtZW50Q2xhc3MgR0RvbUhUTUxDYW52YXNFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxDYW52YXNFbGVtZW50IEdEb21IVE1MQ2FudmFzRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTENhbnZhc0VsZW1lbnRQcml2YXRlIEdEb21IVE1M
Q2FudmFzRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxDb2xsZWN0aW9u
Q2xhc3MgR0RvbUhUTUxDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxD
b2xsZWN0aW9uIEdEb21IVE1MQ29sbGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTENv
bGxlY3Rpb25Qcml2YXRlIEdEb21IVE1MQ29sbGVjdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Q2xhc3MgR0RvbUhUTUxEaXJlY3RvcnlFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXJlY3RvcnlFbGVtZW50IEdEb21IVE1M
RGlyZWN0b3J5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTERpcmVjdG9yeUVsZW1l
bnRQcml2YXRlIEdEb21IVE1MRGlyZWN0b3J5RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxEaXZFbGVtZW50Q2xhc3MgR0RvbUhUTUxEaXZFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxEaXZFbGVtZW50IEdEb21IVE1MRGl2RWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tSFRNTERpdkVsZW1lbnRQcml2YXRlIEdEb21IVE1MRGl2RWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxETGlzdEVsZW1lbnRDbGFzcyBHRG9tSFRN
TERMaXN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRExpc3RFbGVtZW50
IEdEb21IVE1MRExpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRExpc3RFbGVt
ZW50UHJpdmF0ZSBHRG9tSFRNTERMaXN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxEb2N1bWVudENsYXNzIEdEb21IVE1MRG9jdW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTERvY3VtZW50IEdEb21IVE1MRG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxEb2N1bWVudFByaXZhdGUgR0RvbUhUTUxEb2N1bWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50Q2xhc3MgR0RvbUhUTUxFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxFbGVtZW50IEdEb21IVE1MRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTEVsZW1lbnRQcml2YXRlIEdEb21IVE1MRWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxFbWJlZEVsZW1lbnRDbGFzcyBHRG9tSFRNTEVtYmVkRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVtZW50IEdEb21IVE1MRW1i
ZWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRW1iZWRFbGVtZW50UHJpdmF0ZSBH
RG9tSFRNTEVtYmVkRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGaWVs
ZFNldEVsZW1lbnRDbGFzcyBHRG9tSFRNTEZpZWxkU2V0RWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MRmllbGRTZXRFbGVtZW50IEdEb21IVE1MRmllbGRTZXRFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRmllbGRTZXRFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEZp
ZWxkU2V0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb250RWxlbWVu
dENsYXNzIEdEb21IVE1MRm9udEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TEZvbnRFbGVtZW50IEdEb21IVE1MRm9udEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxGb250RWxlbWVudFByaXZhdGUgR0RvbUhUTUxGb250RWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxGb3JtRWxlbWVudENsYXNzIEdEb21IVE1MRm9ybUVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEZvcm1FbGVtZW50IEdEb21IVE1MRm9ybUVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGb3JtRWxlbWVudFByaXZhdGUgR0RvbUhUTUxG
b3JtRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxGcmFtZUVsZW1lbnRD
bGFzcyBHRG9tSFRNTEZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1M
RnJhbWVFbGVtZW50IEdEb21IVE1MRnJhbWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MRnJhbWVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEZyYW1lRWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzcyBHRG9tSFRNTEZyYW1lU2V0
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRnJhbWVTZXRFbGVtZW50IEdE
b21IVE1MRnJhbWVTZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MRnJhbWVTZXRF
bGVtZW50UHJpdmF0ZSBHRG9tSFRNTEZyYW1lU2V0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxIZWFkRWxlbWVudENsYXNzIEdEb21IVE1MSGVhZEVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEhlYWRFbGVtZW50IEdEb21IVE1MSGVhZEVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIZWFk
RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIZWFkaW5nRWxlbWVudENs
YXNzIEdEb21IVE1MSGVhZGluZ0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TEhlYWRpbmdFbGVtZW50IEdEb21IVE1MSGVhZGluZ0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxIZWFkaW5nRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIZWFkaW5nRWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIUkVsZW1lbnRDbGFzcyBHRG9tSFRNTEhSRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJFbGVtZW50IEdEb21IVE1MSFJF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSFJFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TEhSRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxIdG1sRWxlbWVudENs
YXNzIEdEb21IVE1MSHRtbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTEh0
bWxFbGVtZW50IEdEb21IVE1MSHRtbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxI
dG1sRWxlbWVudFByaXZhdGUgR0RvbUhUTUxIdG1sRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxJRnJhbWVFbGVtZW50Q2xhc3MgR0RvbUhUTUxJRnJhbWVFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJRnJhbWVFbGVtZW50IEdEb21IVE1MSUZyYW1l
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTElGcmFtZUVsZW1lbnRQcml2YXRlIEdE
b21IVE1MSUZyYW1lRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJbWFn
ZUVsZW1lbnRDbGFzcyBHRG9tSFRNTEltYWdlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MSW1hZ2VFbGVtZW50IEdEb21IVE1MSW1hZ2VFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MSW1hZ2VFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTEltYWdlRWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJbnB1dEVsZW1lbnRDbGFzcyBHRG9tSFRNTElu
cHV0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW5wdXRFbGVtZW50IEdE
b21IVE1MSW5wdXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MSW5wdXRFbGVtZW50
UHJpdmF0ZSBHRG9tSFRNTElucHV0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxJc0luZGV4RWxlbWVudENsYXNzIEdEb21IVE1MSXNJbmRleEVsZW1lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HRG9tSFRNTElzSW5kZXhFbGVtZW50IEdEb21IVE1MSXNJbmRleEVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxJc0luZGV4RWxlbWVudFByaXZhdGUgR0RvbUhU
TUxJc0luZGV4RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMYWJlbEVs
ZW1lbnRDbGFzcyBHRG9tSFRNTExhYmVsRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MTGFiZWxFbGVtZW50IEdEb21IVE1MTGFiZWxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21IVE1MTGFiZWxFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTExhYmVsRWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3MgR0RvbUhUTUxMZWdl
bmRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMZWdlbmRFbGVtZW50IEdE
b21IVE1MTGVnZW5kRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTExlZ2VuZEVsZW1l
bnRQcml2YXRlIEdEb21IVE1MTGVnZW5kRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxMSUVsZW1lbnRDbGFzcyBHRG9tSFRNTExJRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MTElFbGVtZW50IEdEb21IVE1MTElFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MTElFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTExJRWxlbWVudFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMaW5rRWxlbWVudENsYXNzIEdEb21IVE1MTGlua0VsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTExpbmtFbGVtZW50IEdEb21IVE1MTGlu
a0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxMaW5rRWxlbWVudFByaXZhdGUgR0Rv
bUhUTUxMaW5rRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXBFbGVt
ZW50Q2xhc3MgR0RvbUhUTUxNYXBFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxNYXBFbGVtZW50IEdEb21IVE1MTWFwRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TE1hcEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTWFwRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxNYXJxdWVlRWxlbWVudENsYXNzIEdEb21IVE1MTWFycXVlZUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1hcnF1ZWVFbGVtZW50IEdEb21IVE1MTWFy
cXVlZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNYXJxdWVlRWxlbWVudFByaXZh
dGUgR0RvbUhUTUxNYXJxdWVlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxNZW51RWxlbWVudENsYXNzIEdEb21IVE1MTWVudUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTE1lbnVFbGVtZW50IEdEb21IVE1MTWVudUVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxNZW51RWxlbWVudFByaXZhdGUgR0RvbUhUTUxNZW51RWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZXRhRWxlbWVudENsYXNzIEdEb21IVE1MTWV0
YUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE1ldGFFbGVtZW50IEdEb21I
VE1MTWV0YUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxNZXRhRWxlbWVudFByaXZh
dGUgR0RvbUhUTUxNZXRhRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxN
b2RFbGVtZW50Q2xhc3MgR0RvbUhUTUxNb2RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbUhUTUxNb2RFbGVtZW50IEdEb21IVE1MTW9kRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
RG9tSFRNTE1vZEVsZW1lbnRQcml2YXRlIEdEb21IVE1MTW9kRWxlbWVudFByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbUhUTUxPYmplY3RFbGVtZW50Q2xhc3MgR0RvbUhUTUxPYmplY3RFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPYmplY3RFbGVtZW50IEdEb21IVE1M
T2JqZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9iamVjdEVsZW1lbnRQcml2
YXRlIEdEb21IVE1MT2JqZWN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxPTGlzdEVsZW1lbnRDbGFzcyBHRG9tSFRNTE9MaXN0RWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MT0xpc3RFbGVtZW50IEdEb21IVE1MT0xpc3RFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21IVE1MT0xpc3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE9MaXN0RWxlbWVu
dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRHcm91cEVsZW1lbnRDbGFzcyBH
RG9tSFRNTE9wdEdyb3VwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MT3B0
R3JvdXBFbGVtZW50IEdEb21IVE1MT3B0R3JvdXBFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MT3B0R3JvdXBFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTE9wdEdyb3VwRWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25FbGVtZW50Q2xhc3MgR0RvbUhUTUxP
cHRpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25FbGVtZW50
IEdEb21IVE1MT3B0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9wdGlvbkVs
ZW1lbnRQcml2YXRlIEdEb21IVE1MT3B0aW9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbkNsYXNzIEdEb21IVE1MT3B0aW9uc0NvbGxlY3Rp
b25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uIEdEb21I
VE1MT3B0aW9uc0NvbGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxPcHRpb25zQ29s
bGVjdGlvblByaXZhdGUgR0RvbUhUTUxPcHRpb25zQ29sbGVjdGlvblByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Q2xhc3MgR0RvbUhUTUxQYXJhZ3JhcGhF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50IEdE
b21IVE1MUGFyYWdyYXBoRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFBhcmFncmFw
aEVsZW1lbnRQcml2YXRlIEdEb21IVE1MUGFyYWdyYXBoRWxlbWVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbUhUTUxQYXJhbUVsZW1lbnRDbGFzcyBHRG9tSFRNTFBhcmFtRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50IEdEb21IVE1MUGFyYW1F
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUGFyYW1FbGVtZW50UHJpdmF0ZSBHRG9t
SFRNTFBhcmFtRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxQcmVFbGVt
ZW50Q2xhc3MgR0RvbUhUTUxQcmVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhU
TUxQcmVFbGVtZW50IEdEb21IVE1MUHJlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRN
TFByZUVsZW1lbnRQcml2YXRlIEdEb21IVE1MUHJlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxRdW90ZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFF1b3RlRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50IEdEb21IVE1MUXVvdGVFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MUXVvdGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TFF1b3RlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTY3JpcHRFbGVt
ZW50Q2xhc3MgR0RvbUhUTUxTY3JpcHRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxTY3JpcHRFbGVtZW50IEdEb21IVE1MU2NyaXB0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tSFRNTFNjcmlwdEVsZW1lbnRQcml2YXRlIEdEb21IVE1MU2NyaXB0RWxlbWVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTZWxlY3RFbGVtZW50Q2xhc3MgR0RvbUhUTUxT
ZWxlY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxTZWxlY3RFbGVtZW50
IEdEb21IVE1MU2VsZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFNlbGVjdEVs
ZW1lbnRQcml2YXRlIEdEb21IVE1MU2VsZWN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVj
dCBfR0RvbUhUTUxTdHlsZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFN0eWxlRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50IEdEb21IVE1MU3R5bGVFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MU3R5bGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFN0
eWxlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNhcHRpb25F
bGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50IEdEb21IVE1MVGFibGVDYXB0aW9uRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRQcml2YXRl
IEdEb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3MgR0RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZUNlbGxFbGVtZW50IEdEb21IVE1MVGFibGVD
ZWxsRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRQcml2
YXRlIEdEb21IVE1MVGFibGVDZWxsRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFzcyBHRG9tSFRNTFRhYmxlQ29sRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDb2xFbGVtZW50IEdEb21IVE1MVGFibGVDb2xF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVDb2xFbGVtZW50UHJpdmF0ZSBH
RG9tSFRNTFRhYmxlQ29sRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxU
YWJsZUVsZW1lbnRDbGFzcyBHRG9tSFRNTFRhYmxlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dEb21IVE1MVGFibGVFbGVtZW50IEdEb21IVE1MVGFibGVFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MVGFibGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlRWxlbWVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZVJvd0VsZW1lbnRDbGFzcyBHRG9t
SFRNTFRhYmxlUm93RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGFibGVS
b3dFbGVtZW50IEdEb21IVE1MVGFibGVSb3dFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21I
VE1MVGFibGVSb3dFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRhYmxlUm93RWxlbWVudFByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Q2xhc3MgR0RvbUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50IEdEb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRQcml2YXRlIEdEb21IVE1MVGFibGVTZWN0
aW9uRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUZXh0QXJlYUVsZW1l
bnRDbGFzcyBHRG9tSFRNTFRleHRBcmVhRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21IVE1MVGV4dEFyZWFFbGVtZW50IEdEb21IVE1MVGV4dEFyZWFFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21IVE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRleHRBcmVhRWxl
bWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUhUTUxUaXRsZUVsZW1lbnRDbGFzcyBH
RG9tSFRNTFRpdGxlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGl0bGVF
bGVtZW50IEdEb21IVE1MVGl0bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVGl0
bGVFbGVtZW50UHJpdmF0ZSBHRG9tSFRNTFRpdGxlRWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbUhUTUxVTGlzdEVsZW1lbnRDbGFzcyBHRG9tSFRNTFVMaXN0RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50IEdEb21IVE1MVUxpc3RFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21IVE1MVUxpc3RFbGVtZW50UHJpdmF0ZSBHRG9tSFRN
TFVMaXN0RWxlbWVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUltYWdlRGF0YUNsYXNz
IEdEb21JbWFnZURhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tSW1hZ2VEYXRhIEdEb21J
bWFnZURhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUltYWdlRGF0YVByaXZhdGUgR0RvbUltYWdl
RGF0YVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUphdmFTY3JpcHRDYWxsRnJhbWVDbGFz
cyBHRG9tSmF2YVNjcmlwdENhbGxGcmFtZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21KYXZh
U2NyaXB0Q2FsbEZyYW1lIEdEb21KYXZhU2NyaXB0Q2FsbEZyYW1lOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21KYXZhU2NyaXB0Q2FsbEZyYW1lUHJpdmF0ZSBHRG9tSmF2YVNjcmlwdENhbGxGcmFtZVBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUtleWJvYXJkRXZlbnRDbGFzcyBHRG9tS2V5Ym9h
cmRFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXlib2FyZEV2ZW50IEdEb21LZXli
b2FyZEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21LZXlib2FyZEV2ZW50UHJpdmF0ZSBHRG9t
S2V5Ym9hcmRFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxvY2F0aW9uQ2xhc3Mg
R0RvbUxvY2F0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbUxvY2F0aW9uIEdEb21Mb2Nh
dGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTG9jYXRpb25Qcml2YXRlIEdEb21Mb2NhdGlvblBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1lZGlhTGlzdENsYXNzIEdEb21NZWRpYUxpc3RD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWVkaWFMaXN0IEdEb21NZWRpYUxpc3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbU1lZGlhTGlzdFByaXZhdGUgR0RvbU1lZGlhTGlzdFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VFdmVudENsYXNzIEdEb21NZXNzYWdlRXZlbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWVzc2FnZUV2ZW50IEdEb21NZXNzYWdlRXZlbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbU1lc3NhZ2VFdmVudFByaXZhdGUgR0RvbU1lc3NhZ2VFdmVudFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVUeXBlQXJyYXlDbGFzcyBHRG9tTWltZVR5
cGVBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUFycmF5IEdEb21NaW1l
VHlwZUFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NaW1lVHlwZUFycmF5UHJpdmF0ZSBHRG9t
TWltZVR5cGVBcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVUeXBlQ2xhc3Mg
R0RvbU1pbWVUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1pbWVUeXBlIEdEb21NaW1l
VHlwZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTWltZVR5cGVQcml2YXRlIEdEb21NaW1lVHlwZVBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU1vdXNlRXZlbnRDbGFzcyBHRG9tTW91c2VFdmVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3VzZUV2ZW50IEdEb21Nb3VzZUV2ZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21Nb3VzZUV2ZW50UHJpdmF0ZSBHRG9tTW91c2VFdmVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU11dGF0aW9uRXZlbnRDbGFzcyBHRG9tTXV0YXRpb25F
dmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlvbkV2ZW50IEdEb21NdXRhdGlv
bkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21NdXRhdGlvbkV2ZW50UHJpdmF0ZSBHRG9tTXV0
YXRpb25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hbWVkTm9kZU1hcENsYXNz
IEdEb21OYW1lZE5vZGVNYXBDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTmFtZWROb2RlTWFw
IEdEb21OYW1lZE5vZGVNYXA7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hbWVkTm9kZU1hcFByaXZh
dGUgR0RvbU5hbWVkTm9kZU1hcFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hdmlnYXRv
ckNsYXNzIEdEb21OYXZpZ2F0b3JDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTmF2aWdhdG9y
IEdEb21OYXZpZ2F0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5hdmlnYXRvclByaXZhdGUgR0Rv
bU5hdmlnYXRvclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vZGVDbGFzcyBHRG9tTm9k
ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlRmlsdGVyQ2xhc3MgR0RvbU5vZGVGaWx0
ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUZpbHRlciBHRG9tTm9kZUZpbHRlcjsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tTm9kZUZpbHRlclByaXZhdGUgR0RvbU5vZGVGaWx0ZXJQcml2
YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Ob2RlIEdEb21Ob2RlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21Ob2RlSXRlcmF0b3JDbGFzcyBHRG9tTm9kZUl0ZXJhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbU5vZGVJdGVyYXRvciBHRG9tTm9kZUl0ZXJhdG9yOwordHlwZWRlZiBzdHJ1Y3Qg
X0dEb21Ob2RlSXRlcmF0b3JQcml2YXRlIEdEb21Ob2RlSXRlcmF0b3JQcml2YXRlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21Ob2RlTGlzdENsYXNzIEdEb21Ob2RlTGlzdENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dEb21Ob2RlTGlzdCBHRG9tTm9kZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5v
ZGVMaXN0UHJpdmF0ZSBHRG9tTm9kZUxpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21O
b2RlUHJpdmF0ZSBHRG9tTm9kZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vdGF0aW9u
Q2xhc3MgR0RvbU5vdGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU5vdGF0aW9uIEdE
b21Ob3RhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tTm90YXRpb25Qcml2YXRlIEdEb21Ob3Rh
dGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbU92ZXJmbG93RXZlbnRDbGFzcyBHRG9t
T3ZlcmZsb3dFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21PdmVyZmxvd0V2ZW50IEdE
b21PdmVyZmxvd0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21PdmVyZmxvd0V2ZW50UHJpdmF0
ZSBHRG9tT3ZlcmZsb3dFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVBsdWdpbkFy
cmF5Q2xhc3MgR0RvbVBsdWdpbkFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVBsdWdp
bkFycmF5IEdEb21QbHVnaW5BcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUGx1Z2luQXJyYXlQ
cml2YXRlIEdEb21QbHVnaW5BcnJheVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVBsdWdp
bkNsYXNzIEdEb21QbHVnaW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUGx1Z2luIEdEb21Q
bHVnaW47Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVBsdWdpblByaXZhdGUgR0RvbVBsdWdpblByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbkNsYXNzIEdEb21Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUHJvY2Vzc2lu
Z0luc3RydWN0aW9uIEdEb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBf
R0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvblByaXZhdGUgR0RvbVByb2Nlc3NpbmdJbnN0cnVjdGlv
blByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVByb2dyZXNzRXZlbnRDbGFzcyBHRG9tUHJv
Z3Jlc3NFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9ncmVzc0V2ZW50IEdEb21Q
cm9ncmVzc0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21Qcm9ncmVzc0V2ZW50UHJpdmF0ZSBH
RG9tUHJvZ3Jlc3NFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJhbmdlQ2xhc3Mg
R0RvbVJhbmdlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJhbmdlRXhjZXB0aW9uQ2xhc3Mg
R0RvbVJhbmdlRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJhbmdlRXhjZXB0
aW9uIEdEb21SYW5nZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUmFuZ2VFeGNlcHRp
b25Qcml2YXRlIEdEb21SYW5nZUV4Y2VwdGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVJhbmdlIEdEb21SYW5nZTsKK3R5cGVkZWYgc3RydWN0IF9HRG9tUmFuZ2VQcml2YXRlIEdEb21S
YW5nZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVJlY3RDbGFzcyBHRG9tUmVjdENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21SZWN0IEdEb21SZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dE
b21SZWN0UHJpdmF0ZSBHRG9tUmVjdFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNjcmVl
bkNsYXNzIEdEb21TY3JlZW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tU2NyZWVuIEdEb21T
Y3JlZW47Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNjcmVlblByaXZhdGUgR0RvbVNjcmVlblByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTEVycm9yQ2xhc3MgR0RvbVNRTEVycm9yQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTEVycm9yIEdEb21TUUxFcnJvcjsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tU1FMRXJyb3JQcml2YXRlIEdEb21TUUxFcnJvclByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbVNRTFJlc3VsdFNldENsYXNzIEdEb21TUUxSZXN1bHRTZXRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tU1FMUmVzdWx0U2V0IEdEb21TUUxSZXN1bHRTZXQ7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbVNRTFJlc3VsdFNldFByaXZhdGUgR0RvbVNRTFJlc3VsdFNldFByaXZhdGU7Cit0
eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzcyBHRG9tU1FMUmVzdWx0
U2V0Um93TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxSZXN1bHRTZXRSb3dMaXN0
IEdEb21TUUxSZXN1bHRTZXRSb3dMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TUUxSZXN1bHRT
ZXRSb3dMaXN0UHJpdmF0ZSBHRG9tU1FMUmVzdWx0U2V0Um93TGlzdFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0aW9uQ2xhc3MgR0RvbVNRTFRyYW5zYWN0aW9uQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVNRTFRyYW5zYWN0aW9uIEdEb21TUUxUcmFuc2FjdGlvbjsK
K3R5cGVkZWYgc3RydWN0IF9HRG9tU1FMVHJhbnNhY3Rpb25Qcml2YXRlIEdEb21TUUxUcmFuc2Fj
dGlvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0b3JhZ2VDbGFzcyBHRG9tU3RvcmFn
ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlRXZlbnRDbGFzcyBHRG9tU3RvcmFn
ZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0b3JhZ2VFdmVudCBHRG9tU3RvcmFn
ZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlRXZlbnRQcml2YXRlIEdEb21TdG9y
YWdlRXZlbnRQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlIEdEb21TdG9yYWdl
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdG9yYWdlUHJpdmF0ZSBHRG9tU3RvcmFnZVByaXZhdGU7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0eWxlU2hlZXRDbGFzcyBHRG9tU3R5bGVTaGVldENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0IEdEb21TdHlsZVNoZWV0OwordHlwZWRl
ZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0TGlzdENsYXNzIEdEb21TdHlsZVNoZWV0TGlzdENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0TGlzdCBHRG9tU3R5bGVTaGVldExpc3Q7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVN0eWxlU2hlZXRMaXN0UHJpdmF0ZSBHRG9tU3R5bGVTaGVl
dExpc3RQcml2YXRlOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21TdHlsZVNoZWV0UHJpdmF0ZSBHRG9t
U3R5bGVTaGVldFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVRleHRDbGFzcyBHRG9tVGV4
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0RXZlbnRDbGFzcyBHRG9tVGV4dEV2ZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVRleHRFdmVudCBHRG9tVGV4dEV2ZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21UZXh0RXZlbnRQcml2YXRlIEdEb21UZXh0RXZlbnRQcml2YXRlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21UZXh0IEdEb21UZXh0OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21U
ZXh0UHJpdmF0ZSBHRG9tVGV4dFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVRyZWVXYWxr
ZXJDbGFzcyBHRG9tVHJlZVdhbGtlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UcmVlV2Fs
a2VyIEdEb21UcmVlV2Fsa2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21UcmVlV2Fsa2VyUHJpdmF0
ZSBHRG9tVHJlZVdhbGtlclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVVJRXZlbnRDbGFz
cyBHRG9tVUlFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21VSUV2ZW50IEdEb21VSUV2
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21VSUV2ZW50UHJpdmF0ZSBHRG9tVUlFdmVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Q2xhc3MgR0RvbVdl
YktpdEFuaW1hdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdEFuaW1h
dGlvbkV2ZW50IEdEb21XZWJLaXRBbmltYXRpb25FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
V2ViS2l0QW5pbWF0aW9uRXZlbnRQcml2YXRlIEdEb21XZWJLaXRBbmltYXRpb25FdmVudFByaXZh
dGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3MgR0Rv
bVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktp
dENTU1RyYW5zZm9ybVZhbHVlIEdEb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZTsKK3R5cGVkZWYg
c3RydWN0IF9HRG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVQcml2YXRlIEdEb21XZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZVByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdFRyYW5zaXRp
b25FdmVudENsYXNzIEdEb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HRG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50IEdEb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdlYktpdFRyYW5zaXRpb25FdmVudFByaXZhdGUgR0RvbVdl
YktpdFRyYW5zaXRpb25FdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVdoZWVsRXZl
bnRDbGFzcyBHRG9tV2hlZWxFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XaGVlbEV2
ZW50IEdEb21XaGVlbEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dEb21XaGVlbEV2ZW50UHJpdmF0
ZSBHRG9tV2hlZWxFdmVudFByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1
ZXN0Q2xhc3MgR0RvbVhNTEh0dHBSZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhN
TEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3MgR0RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uIEdEb21YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1MSHR0cFJlcXVlc3RF
eGNlcHRpb25Qcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvblByaXZhdGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0IEdEb21YTUxIdHRwUmVxdWVzdDsKK3R5cGVk
ZWYgc3RydWN0IF9HRG9tWE1MSHR0cFJlcXVlc3RQcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdFBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudENs
YXNzIEdEb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50IEdEb21YTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dFByaXZhdGUgR0RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3MgR0RvbVhNTEh0dHBSZXF1ZXN0
VXBsb2FkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkIEdE
b21YTUxIdHRwUmVxdWVzdFVwbG9hZDsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWE1MSHR0cFJlcXVl
c3RVcGxvYWRQcml2YXRlIEdEb21YTUxIdHRwUmVxdWVzdFVwbG9hZFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVhNTFNlcmlhbGl6ZXJDbGFzcyBHRG9tWE1MU2VyaWFsaXplckNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyIEdEb21YTUxTZXJpYWxpemVyOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21YTUxTZXJpYWxpemVyUHJpdmF0ZSBHRG9tWE1MU2VyaWFsaXplclBy
aXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXZhbHVhdG9yQ2xhc3MgR0RvbVhQYXRo
RXZhbHVhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXZhbHVhdG9yIEdEb21Y
UGF0aEV2YWx1YXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhFdmFsdWF0b3JQcml2YXRl
IEdEb21YUGF0aEV2YWx1YXRvclByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhj
ZXB0aW9uQ2xhc3MgR0RvbVhQYXRoRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR0Rv
bVhQYXRoRXhjZXB0aW9uIEdEb21YUGF0aEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HRG9t
WFBhdGhFeGNlcHRpb25Qcml2YXRlIEdEb21YUGF0aEV4Y2VwdGlvblByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVhQYXRoRXhwcmVzc2lvbkNsYXNzIEdEb21YUGF0aEV4cHJlc3Npb25DbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhFeHByZXNzaW9uIEdEb21YUGF0aEV4cHJlc3Np
b247Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoRXhwcmVzc2lvblByaXZhdGUgR0RvbVhQYXRo
RXhwcmVzc2lvblByaXZhdGU7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRoTlNSZXNvbHZlckNs
YXNzIEdEb21YUGF0aE5TUmVzb2x2ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HRG9tWFBhdGhO
U1Jlc29sdmVyIEdEb21YUGF0aE5TUmVzb2x2ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR0RvbVhQYXRo
TlNSZXNvbHZlclByaXZhdGUgR0RvbVhQYXRoTlNSZXNvbHZlclByaXZhdGU7Cit0eXBlZGVmIHN0
cnVjdCBfR0RvbVhQYXRoUmVzdWx0Q2xhc3MgR0RvbVhQYXRoUmVzdWx0Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVhQYXRoUmVzdWx0IEdEb21YUGF0aFJlc3VsdDsKK3R5cGVkZWYgc3RydWN0
IF9HRG9tWFBhdGhSZXN1bHRQcml2YXRlIEdEb21YUGF0aFJlc3VsdFByaXZhdGU7Cit0eXBlZGVm
IHN0cnVjdCBfR0RvbVhTTFRQcm9jZXNzb3JDbGFzcyBHRG9tWFNMVFByb2Nlc3NvckNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yIEdEb21YU0xUUHJvY2Vzc29yOwordHlw
ZWRlZiBzdHJ1Y3QgX0dEb21YU0xUUHJvY2Vzc29yUHJpdmF0ZSBHRG9tWFNMVFByb2Nlc3NvclBy
aXZhdGU7CisqLworCitHX0VORF9ERUNMUworCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYg
KzIsNyBAQAogV2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQogCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9N
IDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTIDo9CiBIVE1MX0ZFQVRVUkVTIDo9
CiAKQEAgLTksNiArMTAsNyBAQAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMgOj0gJChXZWJD
b3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlIFwKIAktSSQoc3Jj
ZGlyKS9XZWJDb3JlL3BsYXRmb3JtIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsgXApAQCAtMjksNiArMzEsNyBAQAogCS1JJChzcmNkaXIpL1dlYkNvcmUveG1sIFwKIAkt
SSQoc3JjZGlyKS9XZWJDb3JlL2h0bWwgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3Mv
anMgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbSBcCiAJLUkkKHNyY2Rpcikv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvZ2lmIFwKQEAgLTU1LDcgKzU4LDcgQEAKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2
ZW50VGFyZ2V0QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1
dC5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5j
cHAKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAg
CiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvQ1NTR3JhbW1h
ci5jcHAgXApAQCAtMzU4LDcgKzM2MSw1ODcgQEAKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRT
dHlsZVNoZWV0cy5oIFwKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hN
TE5hbWVzLmgKKwlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQXR0ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21BdHRyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUJhckluZm8uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTRm9u
dEZhY2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNTU01lZGlhUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NNZWRpYVJ1bGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUNTU1BhZ2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQcmltaXRpdmVWYWx1
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQcmltaXRpdmVWYWx1ZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQ1NTUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21DU1NSdWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5bGVEZWNs
YXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVNoZWV0
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1N0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ZhbHVlLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYWx1ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNE
ZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNEZWNsYXJh
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21DYW52YXNHcmFkaWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNHcmFkaWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2FudmFzUGF0dGVybi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21DYW52YXNQYXR0ZXJuLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNQ
aXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1BpeGVsQXJyYXkuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2hhcmFj
dGVyRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ29tbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Db21tZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvbnNvbGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ291bnRlci5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NQ29yZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01J
bXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01JbXBsZW1lbnRhdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NU2VsZWN0aW9uLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVdpbmRvdy5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
RG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50RnJhZ21lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50VHlw
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHkuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHlSZWZl
cmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5UmVmZXJlbmNlLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21FdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUZpbGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmls
ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZUxpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxBbmNob3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXBwbGV0RWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXBwbGV0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJSRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQlJFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEJh
c2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxC
b2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQm9keUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
Q2FudmFzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQ2FudmFzRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxE
TGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERMaXN0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxEaXZFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MRW1iZWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRmllbGRTZXRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGb3JtRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRm9ybUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZyYW1lU2V0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRnJhbWVTZXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIZWFkRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxIZWFkaW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIdG1s
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSHRtbEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSW1h
Z2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTElucHV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTElz
SW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJc0luZGV4RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExJRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTGFi
ZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMYWJlbEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
TGlua0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExpbmtFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MTWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1hcnF1
ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXJxdWVlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1lbnVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1l
dGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZXRhRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPTGlzdEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPcHRH
cm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdEdyb3VwRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUGFyYW1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQcmVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQcmVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTY3JpcHRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFN0
eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU3R5bGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZUNv
bEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
VGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVJvd0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxU
aXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRpdGxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IaXN0
b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21JbWFnZURhdGEuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
S2V5Ym9hcmRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21LZXlib2FyZEV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21Mb2NhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVzc2Fn
ZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWltZVR5
cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1pbWVUeXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTW91c2VF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21NdXRhdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU11dGF0
aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5h
dmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21O
b2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlSXRlcmF0b3IuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21O
b2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm90YXRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU92ZXJmbG93RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2luLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVBsdWdpbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
UGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2luQXJyYXkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJvZ3Jlc3NFdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
UmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21S
ZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TY3JlZW4uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVT
aGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRl
eHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGV4dC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHRFdmVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21U
cmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdEFuaW1h
dGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2hlZWxF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxI
dHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
WE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxTZXJpYWxpemVyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVhTTFRQcm9jZXNzb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21BdHRyLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21BdHRyLmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tQmFySW5mby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQmFySW5mby5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tQ0RBVEFTZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NT
Q2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU0NoYXJzZXRSdWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTRm9udEZhY2VSdWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NJ
bXBvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTTWVkaWFSdWxlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NNZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21DU1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NT
UGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NQcmltaXRpdmVWYWx1ZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUnVsZUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1N0
eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVSdWxlLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNT
U1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NWYWx1ZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFi
bGVzRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhcmlhYmxl
c0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVzUnVs
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVzUnVsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNh
bnZhc1BhdHRlcm4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNhbnZhc1BhdHRlcm4u
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21DaGFyYWN0ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DaGFyYWN0
ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Db21tZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50ZXIuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01Db3Jl
RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NSW1wbGVtZW50YXRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21ET01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21ET01TZWxlY3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbURPTVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
RE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1l
bnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50VHlwZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUVudGl0eS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRW50aXR5UmVm
ZXJlbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FbnRpdHlSZWZlcmVuY2UuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVudEV4Y2VwdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21GaWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21GaWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUZpbGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFu
Y2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBbmNob3JFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFwcGxldEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQlJF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQlJFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJhc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
QmFzZUZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJsb2NrcXVv
dGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQmxvY2txdW90ZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQm9keUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MQnV0dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxD
YW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ2FudmFzRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxDb2xsZWN0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRGlyZWN0
b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpcmVjdG9yeUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRGl2RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxFbWJlZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRmllbGRTZXRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MRm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGcmFtZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGcmFtZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxIZWFkRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MSHRtbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxI
dG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJRnJhbWVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSUZyYW1lRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MSW5wdXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSW5w
dXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElzSW5kZXhFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TExhYmVsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTExhYmVsRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTGVnZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1h
cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNYXBFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNZXRhRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1ldGFFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE9MaXN0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPYmplY3RFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRpb25zQ29sbGVj
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MUHJlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFByZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TFNlbGVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxTZWxlY3RF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJs
ZUNvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGl0bGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGl0bGVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhpc3RvcnkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21JbWFnZURhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUphdmFTY3JpcHRD
YWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUphdmFTY3JpcHRDYWxsRnJh
bWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tTG9jYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUxvY2F0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NZXNzYWdl
RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlQXJyYXku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0YXRpb25FdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTmF2aWdhdG9yLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21Ob2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Ob2RlLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tTm9kZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vZGVJdGVy
YXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUl0ZXJhdG9yLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm90YXRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vdGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tT3ZlcmZs
b3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUGx1
Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbkFycmF5LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Qcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmFuZ2UuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdlRXhj
ZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmVjdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNjcmVlbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU2NyZWVuLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3R5bGVT
aGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0eWxlU2hlZXRMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRleHQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRyZWVXYWxrZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21VSUV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21XaGVlbEV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1M
SHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxTZXJpYWxp
emVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxTZXJpYWxpemVyLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5oICBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01I
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dE
T01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggCiAKIElETF9CSU5ESU5HUyArPSAgXAogCVdl
YkNvcmUvY3NzL0NvdW50ZXIuaWRsIFwKQEAgLTcwMSw2ICsxMjg0LDE2IEBACiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJv
dmlkZXIuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9nZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21ET01PYmpl
Y3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmNwcCBcCisJ
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL2dkb21FdmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZn
ZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9t
RXZlbnRUYXJnZXROb2RlLmggXAogCVdlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcCBcCiAJ
V2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuaCBcCiAJV2ViQ29yZS9icmlkZ2UvYy9jX2NsYXNz
LmNwcCBcCkBAIC0yMDA4LDkgKzI2MDEsMTIgQEAKICMgLS0tLQogaWYgRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwK
LQlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCisJRGVyaXZlZFNvdXJj
ZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTUFw
cGxpY2F0aW9uQ2FjaGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTUFwcGxpY2F0
aW9uQ2FjaGUuY3BwCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKQEAgLTIwNTIsNiArMjY0OCw3IEBACiAjIC0tLS0K
IGlmIEVOQUJMRV9EQVRBQkFTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X0RBVEFCQVNFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9EQVRBQkFTRT0xCiAK
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSlNEYXRhYmFzZS5j
cHAgXApAQCAtMjA2Myw3ICsyNjYwLDI3IEBACiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxSZXN1bHRT
ZXRSb3dMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxSZXN1bHRTZXRSb3dMaXN0Lmgg
XAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uY3BwIFwKLQlEZXJpdmVkU291cmNl
cy9KU1NRTFRyYW5zYWN0aW9uLmgKKwlEZXJpdmVkU291cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21EYXRhYmFzZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNRTFJlc3Vs
dFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxSZXN1bHRTZXQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMVHJhbnNh
Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMVHJhbnNhY3Rpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21EYXRhYmFzZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxFcnJvci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3Vs
dFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tU1FMVHJhbnNhY3Rpb24uaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZS5pZGwgXApAQCAtMjEzOCwxMiArMjc1NSwyMSBAQAogIyAtLS0tCiBp
ZiBFTkFCTEVfRE9NX1NUT1JBR0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJM
RV9ET01fU1RPUkFHRT0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfRE9NX1NUT1JB
R0U9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0pTU3Rv
cmFnZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZS5oIFwKIAlEZXJpdmVkU291cmNl
cy9KU1N0b3JhZ2VFdmVudC5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmgK
KwlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U3RvcmFnZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TdG9yYWdlLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3RvcmFn
ZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0
b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZUV2ZW50LmgK
IAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5pZGwgXApAQCAt
MjIwMyw2ICsyODI5LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCiBGRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0g
RU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklERU89MQogd2ViY29y
ZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMjI1LDcgKzI4NTIsMzUgQEAKIAlE
ZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVS
YW5nZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suY3BwIFwKLQlEZXJpdmVk
U291cmNlcy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2su
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBdWRpb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TE1lZGlhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWVkaWFFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTFZpZGVvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVmlkZW9FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21NZWRpYUVycm9yLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRpbWVSYW5nZXMu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGltZVJhbmdlcy5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVZvaWRDYWxsYmFj
ay5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvcHJpdmdkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MTWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFNvdXJj
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxTb3VyY2VFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lZGlh
RXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UaW1lUmFuZ2VzLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Wb2lkQ2FsbGJh
Y2suaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50
LmlkbCBcCkBAIC0yMjY5LDYgKzI5MjQsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfWFBBVEgKIEZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YUEFUSD0xCitGRUFUVVJFX0RFRklO
RVNfR0RPTSArPSBFTkFCTEVfWFBBVEg9MQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X1hQQVRIPTEKIApAQCAtMjI4NCw3ICsyOTQwLDI3IEBACiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0
aFJlc3VsdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTWFBhdGhSZXN1bHQuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFy
LmgKKwlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXZhbHVhdG9y
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhF
eHByZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhSZXN1
bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhSZXN1bHQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21YUGF0aEV2YWx1YXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV4Y2Vw
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhFeGNlcHRpb24uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV4cHJlc3Npb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhOU1Jl
c29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoUmVzdWx0LmgKIAogSURMX0JJTkRJTkdTICs9IFwK
IAlXZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwgXApAQCAtMjM0OSw2ICszMDI1LDcgQEAK
ICMgLS0tLQogaWYgRU5BQkxFX1hTTFQKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVO
QUJMRV9YU0xUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9YU0xUPTEKIAogd2Vi
Y29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YU0xUPTEKIApAQCAtMjM3Miw2ICszMDQ5LDcgQEAK
ICMgLS0tLQogaWYgRU5BQkxFX1NWRwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5B
QkxFX1NWRz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWRz0xIC0gYmlnIFRP
RE8hIDopCiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTICs9ICQoV2ViQ29yZSkvY3NzL1NW
R0NTU1Byb3BlcnR5TmFtZXMuaW4gCiBXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUyArPSAkKFdl
YkNvcmUpL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNjQ5LDYgKzMzMjcsMjczIEBA
CiAJRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTGlua05h
bWVzLmNwcAogCitub3QteWV0OgorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FsdEds
eXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1h
dGVDb2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQW5n
bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkSW50ZWdlci5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZExl
bmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRl
ZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRSZWN0LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRpb25FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdDaXJjbGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0NpcmNsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NsaXBQYXRoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDbGlwUGF0aEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0NvbG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQ3Vyc29yRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDdXJzb3JFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRGVmc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRGVmc0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEb2N1
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEb2N1bWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFuY2UuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudEluc3RhbmNlLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0VsZW1lbnRJbnN0YW5jZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0VsZW1lbnRX
cmFwcGVyRmFjdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGxpcHNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGxpcHNlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVuZEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVD
b21wb3NpdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29tcG9zaXRl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RkVGbG9vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0FFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0FFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNCRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdGRUZ1bmNCRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jR0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jR0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUltYWdlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVNZXJnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFTWVyZ2VOb2Rl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU1lcmdlTm9kZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdGRU9mZnNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVQ
b2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNwb3RMaWdodEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVTcG90TGlnaHRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVRpbGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVUdXJidWxlbmNl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRmlsdGVyRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdGaWx0ZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZU5h
bWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVNyY0VsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VTcmNFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb3Jl
aWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdHbHlwaEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0dyYWRpZW50RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0ltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdJbWFn
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xlbmd0aC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xlbmd0
aExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGVuZ3RoTGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHTGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHTGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hcmtlckVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHTWFza0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWFza0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hdHJpeC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdNYXRyaXguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01ldGFkYXRhRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdNZXRhZGF0YUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR051bWJlci5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWludC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYWludC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0
aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWcuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0FyY0Ficy5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjQWJzLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Bh
dGhTZWdBcmNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDbG9zZVBhdGgu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdM
aW5ldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
UGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXR0
ZXJuRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXR0ZXJuRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9pbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUG9pbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvaW50TGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2ludExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BvbHlnb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvbHlnb25F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2x5bGluZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9seWxpbmVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlY3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1JlbmRlcmluZ0ludGVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NWR0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU1ZHRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTZXRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR1N0b3BFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0
b3BFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTdHJpbmdMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0cmluZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1N0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTdHlsZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N3aXRjaEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHU3dpdGNoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTeW1ib2xFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
VFNwYW5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RTcGFuRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHVGV4dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQYXRoRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdUZXh0UGF0aEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
VGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RpdGxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVHJhbnNmb3JtLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1RyYW5zZm9ybS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVHJhbnNmb3Jt
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUcmFuc2Zvcm1MaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdVbml0VHlwZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVc2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1VzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1ZpZXdFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdab29tRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29y
ZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQu
aWRsIFwKQEAgLTMyMjgsMzYgKzQxNzMsNDIgQEAKICMgU1ZHIEZlYXR1cmVzCiBpZiBFTkFCTEVf
U1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19VU0U9MQor
I0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfVVNFPTEgIyBiaWcgVE9ETyEKIFNW
R19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVAogRkVB
VFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCisj
RkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xIAogU1ZH
X0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogd2ViY29yZV9jcHBmbGFn
cyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NW
R19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT05UUz0x
CisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT05UUz0xCiBTVkdfRkVBVFVS
RVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NW
R19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZJTFRFUlMKIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dE
T00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZJ
TFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRklMVEVSUz0xCiBlbmRp
ZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVf
U1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdl
YmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVO
QUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
U1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BTklN
QVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVf
Y3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpAQCAtMzI2NSwxMyAr
NDIxNiwxNCBAQAogIyBTVkcgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMgKG5lZWQgdG8gcGFzcyBh
biBleHRyYSBmbGFnIGlmIHN2ZyBleHBlcmltZW50YWwgZmVhdHVyZXMgYXJlIGVuYWJsZWQpCiBE
ZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0
b3J5LmNwcDsKIERlcml2ZWRTb3VyY2VzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDog
RGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCitEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZh
Y3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3Rv
cnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3Rh
Z3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0
cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmluZXMgIiQoU1ZHX0ZFQVRV
UkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0
dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVzICIkKFNWR19GRUFU
VVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIGVsc2UKIERlcml2ZWRTb3VyY2Vz
L1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdl
YkNvcmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluCi0JJChQRVJM
KSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcv
c3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tb3V0cHV0RGly
ICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMg
JDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL3N2
Zy9zdmdhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiAKIGVuZGlmICMgU1ZH
X0ZMQUdTCiAKQEAgLTMyODAsNyArNDIzMiw3IEBACiBEZXJpdmVkU291cmNlcy9YTGlua05hbWVz
Lmg6IERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwOwogCiBEZXJpdmVkU291cmNlcy9YTGlu
a05hbWVzLmNwcCA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcv
eGxpbmthdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwg
LS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNP
VVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRy
cyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMp
IiAKIAogZW5kaWYgIyBFTkQgRU5BQkxFX1NWRwogCkBAIC0zMzYxLDE2ICs0MzEzLDE2IEBACiAK
IGlmIEhUTUxfRkxBR1MKIERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkv
ZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAkKFdlYkNv
cmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAt
LWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1leHRyYURlZmlu
ZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVS
TCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRt
bC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKEhUTUxfRkVBVFVSRVMpIiAtLW91dHB1dERpciAiJChH
RU5TT1VSQ0VTKSIgCiBlbHNlCiBEZXJpdmVkU291cmNlcy9IVE1MTmFtZXMuY3BwOiAkKFdlYkNv
cmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gJChX
ZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMu
aW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tb3V0cHV0
RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdl
YkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJD
RVMpIiAKIGVuZGlmICMgSFRNTF9GTEFHUwogCiBEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oOiBE
ZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNw
cDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5p
bgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdl
YkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIKKwkkKFBF
UkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94
bWwveG1sYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogCiB2cGF0aCAlLmlk
bCA9IFwKICAgICAkKFdlYkNvcmUpIFwKQEAgLTMzODYsNiArNDMzOCwxNSBAQAogICAgICQoV2Vi
Q29yZSkveG1sIFwKICAgICAkKFdlYkNvcmUpL3BsdWdpbnMKIAorRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dkb20lLmg7CisKK0Rlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tJS5jcHA6IERlcml2ZWRTb3VyY2VzL2dkb20lLmNwcDsKKworRGVyaXZlZFNvdXJjZXMvZ2Rv
bSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9nZG9tJS5j
cHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwg
LS1pbmNsdWRlICQoV2ViQ29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUpL2h0bWwgLS1pbmNs
dWRlICQoV2ViQ29yZSkvY3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2UgLS1pbmNsdWRlICQo
V2ViQ29yZSkveG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1dERpciAiJChHRU5T
T1VSQ0VTKSIgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FU19HRE9NKSIgLS1nZW5lcmF0b3Ig
R09iamVjdCAkPAorCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNvdXJjZXMvSlMlLmNw
cDsKIAogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAk
KFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zNDAxLDYg
KzQzNjIsNyBAQAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzUGFyc2VyLnBtIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgXAogCVdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gXAorCVdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBcCiAJV2ViQ29yZS9jc3MvaHRtbDQu
Y3NzIFwKIAlXZWJDb3JlL2Nzcy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nzcy92aWV3LXNvdXJj
ZS5jc3MgXApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdldE5vZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXRO
b2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRU
YXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiCisj
aW5jbHVkZSAicHJpdmdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnbGliLW9iamVj
dC5oIgorCitjbGFzcyBHU3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgorICAgIGNvbnN0IGdj
aGFyICptX3N0cjsKKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMp
IHsgbV9zdHIgPSBnX3N0cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZl
cnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9Cit9OworCitleHRlcm4gIkMiIHsKKworI2RlZmluZSBf
R19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKQorCit2b2lkCitnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdl
dE5vZGUgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisJLyoKKyAgICBX
ZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9n
ZXRfcHJpdmF0ZSh0aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZXZlbnRfdGFyZ2V0X25v
ZGVfdHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJpbmcoZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcp
OworICAgIGl0ZW0tPmluaXRFdmVudFRhcmdldE5vZGUoX2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlw
ZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
Z2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiZ2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVk
ZSAiaW50Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0
LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJ3ZWJr
aXRtYXJzaGFsLmgiCisjaW5jbHVkZSAiZ2RvbUV2ZW50LmgiCitlbnVtIHsKKyAgICBCUk9XU0VS
X0VWRU5ULAorCUxBU1RfU0lHTkFMCit9OworCitzdGF0aWMgZ3VpbnQgZXZlbnRfc2lnbmFsc1tM
QVNUX1NJR05BTF0gPSB7IDAsIH07CisKKworV2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3Rh
cmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7Cisg
ICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZSAqcmVzOworCXJlcyA9IHN0YXRpY19jYXN0PEdET01FdmVu
dFRhcmdldE5vZGUqPihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNU
KHJlcXVlc3QpKSk7CisJcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHJl
cy0+aW1wbCgpKTsKK30KKworCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRXZl
bnRUYXJnZXROb2RlLCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlLCBHRE9NX1RZUEVfTk9ERSk7CisK
Ky8qCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJD
b3JlOjpFdmVudFRhcmdldE5vZGUgKml0ZW07Cit9OyAgCisqLworCisjZGVmaW5lIEdET01fRVZF
TlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklW
QVRFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5v
ZGVQcml2YXRlKSkKKworLyoKK3ZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfc2V0X3ByaXZh
dGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCwgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2Rl
ICogaXRlbSkKK3sKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01f
RVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcHJpdi0+aXRlbSA9
IGl0ZW07Cit9CisqLworCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFs
aXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvKkdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVl
c3QgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iamVjdCk7CisgICAgR2RvbUV2ZW50VGFyZ2V0
Tm9kZVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisgICAgCisgICAgR19PQkpFQ1Rf
Q0xBU1MoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmpl
Y3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQo
R2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisJZXZlbnRfc2lnbmFs
c1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisJCUdfVFlQ
RV9GUk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisJCShHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JV
Tl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKwkJMCwKKwkJTlVMTCwKKwkJTlVMTCwKKwkJd2Vi
a2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisJCUdfVFlQRV9OT05FLCAyLAorCQlH
RE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHJl
cXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZTsK
KworICAgIC8qZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdk
b21FdmVudFRhcmdldE5vZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVu
dF90YXJnZXRfbm9kZV9pbml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7CisgICAg
LypHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05P
REVfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30g
ICAKKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9n
ZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L2dkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVm
IF9fR2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18KKyNkZWZpbmUgX19HZG9tRXZlbnRUYXJnZXROb2Rl
X0hfXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZp
bmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdl
dE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJn
ZXROb2RlQ2xhc3MgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOworCisjZGVmaW5lIEdET01fVFlQ
RV9FVkVOVF9UQVJHRVRfTk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdF
VF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRf
Tk9ERV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBH
RE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVDbGFzcykpCisj
ZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNk
ZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2Rl
ZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RB
TkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2
ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5v
ZGVQcml2YXRlIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlOworCisjaW5jbHVkZSAiZ2RvbU5v
ZGUuaCIKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJl
bnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307
CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNz
IHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9HRE9NX0FQSSBHVHlwZQorZ2RvbV9ldmVudF90
YXJnZXRfbm9kZV9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9HRE9NX0FQSSB2b2lkCitnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdl
dE5vZGUgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tRXZlbnRUYXJn
ZXROb2RlX0hfXyAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVu
dFRhcmdldE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdk
b21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRv
a2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZu
ZGVmIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRXZlbnRU
YXJnZXROb2RlX0hfX19QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAi
cHJpdmdkb21Ob2RlLmgiCitjbGFzcyBXZWJDb3JlOjpOb2RlOworCit0eXBlZGVmIHN0cnVjdCBf
R2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOworCitXRUJLSVRfR0RPTV9B
UEkgV2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdk
b21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QpOworCisjZW5kaWYKKwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL2dkb21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9u
IDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3Ry
aW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJp
bmcuaCIKKyNpbmNsdWRlICJnZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3Qu
aCIKKworZXh0ZXJuICJDIiB7CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmpl
Y3QgKEdkb21ET01PYmplY3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
CisJLyoKKyAgICBXZWJDb3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2JqZWN0X2dl
dF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0X3R5cGVf
YXJnID0gV2ViQ29yZTo6U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0ZW0tPmlu
aXRET01PYmplY3QoX2dfZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAvKiBleHRl
cm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2Jq
ZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURP
TU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJn
ZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgInByaXZn
ZG9tRE9NT2JqZWN0LmgiCisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKEdkb21ET01P
YmplY3QsIGdkb21fZG9tX29iamVjdCwgR19UWVBFX09CSkVDVCk7CisKK3N0cnVjdCBfR2RvbURP
TU9iamVjdFByaXZhdGUgeworICAgICBHRE9NT2JqZWN0ICptX25vZGU7Cit9OyAgCisKKyNkZWZp
bmUgR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRf
UFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQcml2YXRl
KSkKKwordm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJl
cXVlc3QsIEdET01PYmplY3QgKiBpdGVtKQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBw
cml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPm1f
bm9kZSA9IGl0ZW07CisgICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+cmVmKCk7Ki8KK30KKwor
R0RPTU9iamVjdCAqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAq
cmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09C
SkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXR1cm4gcHJpdi0+bV9ub2RlOworfQor
CitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQor
eworICAgIEdkb21ET01PYmplY3QqIHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1Qob2JqZWN0KTsK
KyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgCisg
ICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+ZGVyZWYoKTsqLworCWRlbGV0ZSBwcml2LT5tX25v
ZGU7IC8qIGNhbGxzIG1faW1wbC0+ZGVyZWYoKSAqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2Rv
bV9kb21fb2JqZWN0X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRp
YyB2b2lkIGdkb21fZG9tX29iamVjdF9jbGFzc19pbml0KEdkb21ET01PYmplY3RDbGFzcyogcmVx
dWVzdENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXpl
ID0gZ2RvbV9kb21fb2JqZWN0X2ZpbmFsaXplOworICAgIAorICAgIGdfdHlwZV9jbGFzc19hZGRf
cHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihHZG9tRE9NT2JqZWN0UHJpdmF0ZSkpOworfQor
CitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfaW5pdChHZG9tRE9NT2JqZWN0KiByZXF1ZXN0
KQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dF
VF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OworfSAgIAorCit9
IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1M
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1ODIgQEAKKy8qCisgKiBUSElTIEZJTEUgSVMgREVSSVZF
RCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiAga2VlcGluZyBpdCB1
cC10by1kYXRlIGNvdWxkIHBvdGVudGlhbGx5IGJlIGRvbmUgYnkgYWRkaW5nCisgKiAgYSBtYWtl
X25hbWVzLnBsIGdlbmVyYXRvciwgb3IgYnkgd3JpdGluZyBhIHNlcGFyYXRlCisgKiAgZ2VuZXJh
dGVyIHdoaWNoIHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0Lgor
ICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1lbnRX
cmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgImdkb21IVE1MQW5jaG9yRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MQXJlYUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJsb2NrcXVvdGVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21I
VE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxCdXR0b25FbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbUhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJsZUNh
cHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTERpcmVjdG9y
eUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MRW1iZWRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRN
TEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb21IVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxGcmFtZVNldEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbUhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSFJFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSUZyYW1l
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTElzSW5kZXhFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRN
TExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTExJRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb21IVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE1hcEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhU
TUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTE9MaXN0RWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbUhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxQYXJhZ3JhcGhFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
SFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFF1b3RlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MU2VsZWN0
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MVGl0bGVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxBbmNob3JFbGVt
ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MQmFzZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUg
ImludGdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEJv
ZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJpbnRnZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTENhbnZh
c0VsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdk
b21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRGlyZWN0b3J5RWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdk
b21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxFbWJlZEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEZvcm1FbGVtZW50
LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRn
ZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSGVhZGluZ0Vs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEh0bWxFbGVtZW50
LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50
Z2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTGVnZW5kRWxl
bWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50
Z2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MTWFwRWxlbWVudC5o
IgorI2luY2x1ZGUgImludGdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRn
ZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxNZXRhRWxlbWVudC5o
IgorI2luY2x1ZGUgImludGdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdk
b21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxPcHRHcm91cEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFBhcmFt
RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUg
ImludGdkb21IVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxTY3JpcHRF
bGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVk
ZSAiaW50Z2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxl
RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgor
I2luY2x1ZGUgImludGdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdk
b21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxUaXRsZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUg
ImludGdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKwor
I2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFwcGxldEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCdXR0b25FbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRExpc3RFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGaWVsZFNldEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZy
YW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkaW5nRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIUkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExhYmVs
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TExJRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1ldGFFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT0xpc3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25F
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGl0bGVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxVTGlzdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBHRE9NTm9kZSogKCpDcmVhdGVI
VE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4pOworCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFuY2hvcldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQW5jaG9yRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVBcHBsZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFwcGxldEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTEFwcGxldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXJlYUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUJhc2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxC
YXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVCYXNlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxC
YXNlRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmxvY2txdW90ZUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEJsb2NrcXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZUJvZHlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJvZHlFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxCb2R5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVCUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MQlJFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCUkVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQnV0dG9u
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxCdXR0b25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCdXR0b25FbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUNhbnZhc1dy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MQ2FudmFzRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNhcHRp
b25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlVGFibGVDb2xXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ29sRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MVGFibGVDb2xFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZU1vZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTW9kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTW9k
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVE
aXJlY3RvcnlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERp
cmVjdG9yeUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlRGl2V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXZFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxEaXZFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURMaXN0
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxETGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERMaXN0RWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVFbWJlZFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MRW1iZWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxFbWJlZEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRmllbGRTZXRXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTEZpZWxkU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZvbnRXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTEZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb250RWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb3JtV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxG
b3JtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZyYW1lRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lU2V0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFtZVNldEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkaW5nV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIZWFkaW5n
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZGluZ0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVhZEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIUkVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEhSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVIdG1sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIdG1sRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSHRt
bEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
SUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxJRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJRnJhbWVF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlt
YWdlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJbnB1dFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSXNJbmRleFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MSXNJbmRleEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElzSW5kZXhFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxhYmVsV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxMYWJlbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMZWdlbmRXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTExlZ2VuZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExlZ2VuZEVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTElXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExJ
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTElFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxpbmtXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExpbmtFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVNYXBXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTE1hcEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlTWFycXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFycXVlZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TE1hcnF1ZWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZU1lbnVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1lbnVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNZW51
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVN
ZXRhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxNZXRhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWV0YUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT2JqZWN0V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxPYmplY3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9MaXN0V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxPTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9MaXN0RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPcHRHcm91cFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MT3B0R3JvdXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT3B0aW9uV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxPcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBhcmFncmFwaFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MUGFyYWdyYXBoRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYWdyYXBoRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQYXJhbVdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MUGFyYW1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJhbUVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUHJlV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxQcmVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQcmVFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVF1b3RlV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxRdW90
ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTY3JpcHRXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNjcmlwdEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNjcmlwdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2VsZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTZWxlY3RFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVN0eWxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTdHlsZUVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxUYWJsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFi
bGVDZWxsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUZXh0QXJlYVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MVGV4dEFyZWFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGl0bGVXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTFRpdGxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGl0bGVFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlUm93V3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlUm93RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVVTGlzdFdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MVUxpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxVTGlzdEVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK0dET01Ob2RlKiBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3JlOjpB
dG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24+IG1hcDsK
KyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAgIG1hcC5zZXQoYVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYXBwbGV0VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0V3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXJlYVdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmFz
ZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJsb2NrcXVvdGVUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChib2R5VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
YnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCUldyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQnV0dG9uV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVDYW52YXNX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChkZWxU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGl2V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURMaXN0V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmaWVsZHNldFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb250VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZm9y
bVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1XcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVT
ZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaGVhZFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhyVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGh0bWxUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpZnJh
bWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJhbWVXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlucHV0V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGFiZWxUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGVnZW5kVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBlcik7CisgICAgICAgbWFwLnNldChs
aVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGlua1dyYXBwZXIpOworICAgICAg
IG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFwV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFycXVl
ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1ldGFUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChvYmplY3RUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9sVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0R3JvdXBXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9wdGlv
bldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocGFyYW1UYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocHJlVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChxVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHNj
cmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNjcmlwdFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVN0
eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Ym9keVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGV4dEFyZWFXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
VGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHVsVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbGdyb3VwVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRp
bmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDZUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbWFnZVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbnNU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVU
YWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aGVhZFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAg
fQorCXByaW50ZigiY3JlYXRlR0RPTUhUTUxXcmFwcGVyOiAlc1xuIiwgZWxlbWVudC0+bG9jYWxO
YW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgQ3JlYXRlSFRNTEVsZW1lbnRXcmFw
cGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0gbWFwLmdldChlbGVtZW50LT5sb2Nh
bE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCisgICAgICAg
IHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVudCk7CisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTEVsZW1lbnQoZWxlbWVudC5nZXQoKSk7Cit9CisKK30KKwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MDIgQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9y
ZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwg
V2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKy8vIGdjYyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUgSGFzaE1h
cCBwb2ludGVyIHNwZWNpYWxpemF0aW9uIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQgX19HTlVD
X18gJiYgIWRlZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNkZWZpbmUg
SEFTSF9NQVBfUFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2lu
Y2x1ZGUgImdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIgor
I2luY2x1ZGUgIkdET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiR0RPTUhUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnkuaCIKKworI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJnZG9t
Q1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgImludGdkb21DU1NTdHlsZVNoZWV0LmgiCisKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTElt
YWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgImdkb21Ob2Rl
LmgiCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJpbnRnZG9tTm9kZS5oIgorI2lu
Y2x1ZGUgImdkb21Ob2RlLmgiCisKKyNpbmNsdWRlICJBdHRyLmgiCisjaW5jbHVkZSAiQ0RBVEFT
ZWN0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDb21tZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiRW50aXR5LmgiCisjaW5jbHVkZSAiRW50
aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
RXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2RvbUF0dHIuaCIKKyNpbmNsdWRlICJpbnRn
ZG9tQXR0ci5oIgorI2luY2x1ZGUgImdkb21DaGFyYWN0ZXJEYXRhLmgiCisjaW5jbHVkZSAiZ2Rv
bVRleHQuaCIKKyNpbmNsdWRlICJnZG9tQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiZ2RvbUNv
bW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tRG9jdW1l
bnRGcmFnbWVudC5oIgorI2luY2x1ZGUgImdkb21Eb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJn
ZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiZ2RvbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tQ1NT
VmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiZ2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVk
ZSAiZ2RvbUVudGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgImdkb21Ob3RhdGlvbi5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIk5vdGF0aW9uLmgiCisjaW5j
bHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCisjaW5jbHVk
ZSAiZ2RvbUNTU1J1bGUuaCIKKyNpbmNsdWRlICJDU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUg
IkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRl
ICJDU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgIkNT
U1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1ZhcmlhYmxlc1J1bGUuaCIKKyNpbmNsdWRlICJn
ZG9tQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tQ1NTRm9udEZhY2VSdWxlLmgiCisj
aW5jbHVkZSAiZ2RvbUNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tQ1NTTWVkaWFSdWxl
LmgiCisjaW5jbHVkZSAiZ2RvbUNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiZ2RvbUNTU1N0eWxl
UnVsZS5oIgorI2luY2x1ZGUgImdkb21DU1NWYXJpYWJsZXNSdWxlLmgiCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJpbnRnZG9tRXZlbnQuaCIKKworI2luY2x1ZGUgIkNsaXBib2Fy
ZC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbUNsaXBib2FyZC5oIgorI2lu
Y2x1ZGUgImdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbU1lc3NhZ2VFdmVudC5o
IgorI2luY2x1ZGUgImdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbU11dGF0aW9uRXZl
bnQuaCIKKyNpbmNsdWRlICJnZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgImdkb21Qcm9n
cmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVRleHRFdmVudC5oIgorI2luY2x1ZGUgImdkb21V
SUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgImdkb21XaGVlbEV2ZW50
LmgiCisjaW5jbHVkZSAiZ2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1
ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRl
ICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIk92
ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiVGV4
dEV2ZW50LmgiCisjaW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlv
bkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAi
V2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgor
CisjaW5jbHVkZSAiZ2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJBdG9taWNTdHJp
bmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25z
Q29sbGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiaW50Z2RvbUhUTUxBbGxDb2xsZWN0aW9u
LmgiCisvLyBUT0RPICNpbmNsdWRlICJnZG9tSFRNTEFsbENvbGxlY3Rpb24uaCIKKyNpbmNsdWRl
ICJnZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisvLyBlcnIuLi4gI2luY2x1ZGUgImludGdk
b21OYW1lZE5vZGVzQ29sbGVjdGlvbi5oIgorLy8gZXJyLi4uICNpbmNsdWRlICJnZG9tTmFtZWRO
b2Rlc0NvbGxlY3Rpb24uaCIKKworI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyNpbmNsdWRlICJn
ZG9tU3RvcmFnZUV2ZW50LmgiCisjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCisjZW5kaWYKKwor
I2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBUT0RPICovCisjaW5jbHVkZSAiaW50Z2RvbVNWR1pv
b21FdmVudC5oIgorI2luY2x1ZGUgImdkb21TVkdab29tRXZlbnQuaCIKKyNpbmNsdWRlICJTVkda
b29tRXZlbnQuaCIKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBFTkFCTEUoU1ZHKQorI2lmIDAgLyog
WFhYIFRPRE8gKi8KKyNpbmNsdWRlICJpbnRnZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmgi
CisjaW5jbHVkZSAiZ2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNW
R0VsZW1lbnQuaCIKKyNlbmRpZgorI2VuZGlmCisKKyNpZiAwCisjaWYgRU5BQkxFKFNWRykKKyNp
bmNsdWRlICJHZG9tU1ZHRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiU1ZHRXhjZXB0aW9uLmgiCisj
ZW5kaWYKKyNlbmRpZgorCisjaW5jbHVkZSAiaW50Z2RvbUNsaXBib2FyZC5oIgorI2luY2x1ZGUg
ImludGdkb21DU1NSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNEQVRBU2VjdGlvbi5oIgorI2lu
Y2x1ZGUgImludGdkb21Db21tZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbURvY3VtZW50LmgiCisj
aW5jbHVkZSAiaW50Z2RvbURvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tRG9j
dW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUVudGl0eS5oIgorI2luY2x1ZGUgImludGdk
b21FbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUg
ImludGdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgImludGdkb21FbnRpdHlSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlICJpbnRnZG9tTm90YXRpb24uaCIKKyNpbmNsdWRlICJpbnRnZG9t
SFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5o
IgorI2luY2x1ZGUgImludGdkb21UZXh0LmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU0NoYXJzZXRS
dWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgImlu
dGdkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU01lZGlhUnVsZS5oIgor
I2luY2x1ZGUgImludGdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgImludGdkb21DU1NTdHls
ZVJ1bGUuaCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUg
ImludGdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbU1lc3NhZ2VFdmVudC5o
IgorI2luY2x1ZGUgImludGdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbU11dGF0
aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUg
ImludGdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVRleHRFdmVudC5oIgor
I2luY2x1ZGUgImludGdkb21VSUV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVdlYktpdEFuaW1h
dGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgor
I2luY2x1ZGUgImludGdkb21XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgImludGdkb21TdG9yYWdlRXZlbnQuaCIK
KyNpbmNsdWRlICJpbnRnZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiaW50
Z2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gRE9N
T2JqZWN0TWFwOwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gR2RvbVdyYXBwZXJD
YWNoZTsgLyogQVJHISBVTkZBSVIhIEpTV3JhcHBlckNhY2hlIGlzIGluIERvY3VtZW50ISEgKi8K
KworLy8gRm9yIGRlYnVnZ2luZywga2VlcCBhIHNldCBvZiB3cmFwcGVycyBjdXJyZW50bHkgcmVn
aXN0ZXJlZCwgYW5kIGNoZWNrIHRoYXQKKy8vIGFsbCBhcmUgdW5yZWdpc3RlcmVkIGJlZm9yZSB0
aGV5IGFyZSBkZXN0cm95ZWQuIFRoaXMgaGFzIGhlbHBlZCB1cyBmaXggYXQKKy8vIGxlYXN0IG9u
ZSBidWcuCisKKyNpZiAwCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqIHdyYXBw
ZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKTsKK3N0
YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJz
KTsKKworI2lmZGVmIE5ERUJVRworCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkV3JhcHBlcihHRE9N
T2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZVdyYXBwZXIoR0RPTU9i
amVjdCopCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVycyhjb25zdCBH
ZG9tV3JhcHBlckNhY2hlJikKK3sKK30KKworI2Vsc2UKKworc3RhdGljIEhhc2hTZXQ8R0RPTU9i
amVjdCo+JiB3cmFwcGVyU2V0KCkKK3sKKyAgICBzdGF0aWMgSGFzaFNldDxHRE9NT2JqZWN0Kj4g
c3RhdGljV3JhcHBlclNldDsKKyAgICByZXR1cm4gc3RhdGljV3JhcHBlclNldDsKK30KKworc3Rh
dGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKQoreworICAgIEFTU0VSVCgh
d3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAgICB3cmFwcGVyU2V0KCkuYWRkKHdy
YXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmplY3QqIHdyYXBw
ZXIpCit7CisgICAgaWYgKCF3cmFwcGVyKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHdy
YXBwZXJTZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgpLnJlbW92ZSh3
cmFwcGVyKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2RvbVdyYXBw
ZXJDYWNoZSYgd3JhcHBlcnMpCit7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hlOjpjb25zdF9p
dGVyYXRvciBpdCA9IHdyYXBwZXJzLmJlZ2luKCk7IGl0ICE9IHdyYXBwZXJzLmVuZCgpOyArK2l0
KQorICAgICAgICByZW1vdmVXcmFwcGVyKGl0LT5zZWNvbmQpOworfQorCitHRE9NT2JqZWN0Ojp+
R0RPTU9iamVjdCgpCit7CisgICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFpbnModGhpcykp
OworfQorCisjZW5kaWYKKyNlbmRpZiAvKiBjb21tZW50ZWQgb3V0IGZvciBub3cgKi8KKworc3Rh
dGljIEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJDYWNoZSgpCit7IAorCS8vIFVORkFJUiEgaSB3
YW50IG9uZSBvZiB0aGVzZSBwZXIgRG9jdW1lbnQsIHRvbyEKKyAgICAvLyBEb24ndCB1c2UgbWFs
bG9jIGhlcmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9uIGNhbiBkZWFkbG9j
ay4KKyAgICBzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSBzdGF0aWNHZG9tV3JhcHBlckNhY2hlOwor
ICAgIHJldHVybiBzdGF0aWNHZG9tV3JhcHBlckNhY2hlOworfQorCitzdGF0aWMgRE9NT2JqZWN0
TWFwJiBkb21PYmplY3RzKCkKK3sgCisgICAgLy8gRG9uJ3QgdXNlIG1hbGxvYyBoZXJlLiBDYWxs
aW5nIG1hbGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxvY2suCisgICAgc3RhdGlj
IERPTU9iamVjdE1hcCBzdGF0aWNET01PYmplY3RzOworICAgIHJldHVybiBzdGF0aWNET01PYmpl
Y3RzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh2
b2lkKiBvYmplY3RIYW5kbGUpIAoreworICAgIGdwb2ludGVyIHJldCA9IGRvbU9iamVjdHMoKS5n
ZXQob2JqZWN0SGFuZGxlKTsKKwlwcmludGYoImdldERPTU9iamVjdDogJXAgJXBcbiIsIG9iamVj
dEhhbmRsZSwgcmV0KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
X2dkb21fb2JqZWN0KEdET01PYmplY3QgKmRvYikKK3sKKwlncG9pbnRlciByZXMgPSBnX29iamVj
dF9uZXcoZG9iLT5nZXRfZ29ial90eXBlKCksIE5VTEwpOworCWdkb21fZG9tX29iamVjdF9zZXRf
cHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVzKSwgZG9iKTsKKwlyZXR1cm4gcmVzOworfQorCitn
cG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RI
YW5kbGUsIEdET01PYmplY3QqIHdyYXBwZXIpIAoreworICAgIC8vIGFkZFdyYXBwZXIod3JhcHBl
cik7CisJZ3BvaW50ZXIgb2JqID0gY3JlYXRlX2dkb21fb2JqZWN0KHdyYXBwZXIpOworCXByaW50
ZigicHV0RE9NT2JqZWN0OiAlcCAlcCAlcFxuIiwgb2JqZWN0SGFuZGxlLCB3cmFwcGVyLCBvYmop
OworICAgIGRvbU9iamVjdHMoKS5zZXQob2JqZWN0SGFuZGxlLCBvYmopOworCXJldHVybiBvYmo7
Cit9CisKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3Qodm9pZCog
b2JqZWN0SGFuZGxlKQoreworICAgIGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSk7Cisg
ICAgLy9yZW1vdmVXcmFwcGVyKGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSkpOworfQor
CitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChE
b2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGdwb2ludGVyID4oZG9tT2JqZWN0cygpLmdldChub2Rl
KSk7CisgICAgcmV0dXJuIC8qIFhYWCBncnJyIGRvY3VtZW50LT4gKi93cmFwcGVyQ2FjaGUoKS5n
ZXQobm9kZSk7Cit9CisKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2Rl
Rm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICgh
ZG9jdW1lbnQpIHsKKwkJZm9yZ2V0RE9NT2JqZWN0KG5vZGUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIC8vcmVtb3ZlV3JhcHBlcigvKiBYWFggZ3JyIGRvY3VtZW50LT4qL3dyYXBwZXJD
YWNoZSgpLnRha2Uobm9kZSkpOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OnB1dERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUsIEdE
T01Ob2RlICp3cmFwcGVyKQoreworICAgIC8vYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBpZiAo
IWRvY3VtZW50KSB7CisJCW5vZGUtPnJlZigpOworCQlyZXR1cm4gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01PYmplY3Qobm9kZSwgd3JhcHBlcikgOworICAgIH0KKwlncG9pbnRlciBvYmog
PSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgLyogWFhYIGdycnIgZG9jdW1lbnQt
Piovd3JhcHBlckNhY2hlKCkuc2V0KG5vZGUsIG9iaik7CisJcmV0dXJuIG9iajsKK30KKwordm9p
ZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgLy9yZW1vdmVX
cmFwcGVycyhkb2N1bWVudC0+d3JhcHBlckNhY2hlKCkpOworfQorCisjaWYgMAordm9pZCBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50KiBkb2Mp
Cit7CisjaWYgMCAvKlhYWCBUT0RPKi8KKyAgICAvLyBJZiBhIG5vZGUncyBHZG9tIHdyYXBwZXIg
aG9sZHMgY3VzdG9tIHByb3BlcnRpZXMsIHRob3NlIHByb3BlcnRpZXMgbXVzdAorICAgIC8vIHBl
cnNpc3QgZXZlcnkgdGltZSB0aGUgbm9kZSBpcyBmZXRjaGVkIGZyb20gdGhlIERPTS4gU28sIHdl
IGtlZXAgR2RvbQorICAgIC8vIHdyYXBwZXJzIGxpa2UgdGhhdCBmcm9tIGJlaW5nIGdhcmJhZ2Ug
Y29sbGVjdGVkLgorCisgICAgR2RvbVdyYXBwZXJDYWNoZSYgbm9kZURpY3QgPSAvKmRvYy0+Ki93
cmFwcGVyQ2FjaGUoKTsKKyAgICBHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBub2RlRW5kID0g
bm9kZURpY3QuZW5kKCk7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBub2Rl
SXQgPSBub2RlRGljdC5iZWdpbigpOyBub2RlSXQgIT0gbm9kZUVuZDsgKytub2RlSXQpIHsKKyAg
ICAgICAgZ3BvaW50ZXIgZ05vZGUgPSBub2RlSXQtPnNlY29uZDsKKyAgICAgICAgTm9kZSogbm9k
ZSA9IGdOb2RlLT5pbXBsKCk7CisKKyAgICAgICAgaWYgKGdOb2RlLT5tYXJrZWQoKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5vIG5lZWQgdG8gcHJlc2VydmUgYSB3cmFw
cGVyIHRoYXQgaGFzIG5vIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIGlzIG5vCisgICAgICAgIC8vIGxv
bmdlciBmZXRjaGFibGUgdGhyb3VnaCB0aGUgRE9NLgorICAgICAgICBpZiAoIWdOb2RlLT5oYXND
dXN0b21Qcm9wZXJ0aWVzKCkgfHwgIW5vZGUtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgICAgIC8v
Li4uIHVubGVzcyB0aGUgd3JhcHBlciB3cmFwcyBhIGxvYWRpbmcgaW1hZ2UsIHNpbmNlIHRoZSAi
bmV3IEltYWdlIgorICAgICAgICAgICAgLy8gc3ludGF4IGFsbG93cyBhbiBvcnBoYW4gaW1hZ2Ug
d3JhcHBlciB0byBiZSB0aGUgbGFzdCByZWZlcmVuY2UKKyAgICAgICAgICAgIC8vIHRvIGEgbG9h
ZGluZyBpbWFnZSwgd2hvc2UgbG9hZCBldmVudCBtaWdodCBoYXZlIGltcG9ydGFudCBzaWRlLWVm
ZmVjdHMuCisgICAgICAgICAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoaW1nVGFnKSB8fCBzdGF0
aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4obm9kZSktPmhhdmVGaXJlZExvYWRFdmVudCgpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGdOb2RlLT5tYXJrKCk7CisgICAg
fQorI2VuZGlmCit9CisKKy8qIFhYWCAtIHJlcXVpcmVzIGxvb2tpbmcgdXAgb2JqZWN0IC0gY2Fs
bCB0byBHX09CSkVDVCgpIG1hY3JvIGluIGFyZworICogIndyYXBwZXIiIHRvIHB1dERPTU5vZGVG
b3JEb2N1bWVudD8qLworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjp1cGRhdGVET01O
b2RlRG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvYywgRG9jdW1lbnQqIG5ld0Rv
YykKK3sKKyAgICBBU1NFUlQob2xkRG9jICE9IG5ld0RvYyk7CisJc3R5bGVTaGVldC0+cmVmKCk7
CisgICAgZ3BvaW50ZXIgd3JhcHBlciA9IGdldERPTU5vZGVGb3JEb2N1bWVudChvbGREb2MsIG5v
ZGUpOworICAgIGlmICh3cmFwcGVyKSB7CisgICAgICAgIC8vcmVtb3ZlV3JhcHBlcih3cmFwcGVy
KTsKKyAgICAgICAgZ3BvaW50ZXIgb2JqID0gcHV0RE9NTm9kZUZvckRvY3VtZW50KG5ld0RvYywg
bm9kZSwgd3JhcHBlcik7CisgICAgICAgIGZvcmdldERPTU5vZGVGb3JEb2N1bWVudChvbGREb2Ms
IG5vZGUpOworICAgICAgICAvL2FkZFdyYXBwZXIod3JhcHBlcik7CisJCXJldHVybiBvYmo7Cisg
ICAgfQorCXJldHVybiBOVUxMOyAvKiBlcnIuLi4gKi8KK30KKyNlbmRpZgorCitncG9pbnRlciB0
b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIE5V
TEw7IC8qIFhYWCBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdElu
dGVycHJldGVyOjpnZXRET01PYmplY3QoZG9jKTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0
dXJuIGdvYmo7CisKKwlHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBpZiAoZG9jLT5pc0hUTUxEb2N1
bWVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxEb2N1bWVudChzdGF0aWNfY2FzdDxI
VE1MRG9jdW1lbnQqPihkb2MpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKGRvYy0+
aXNTVkdEb2N1bWVudCgpKQorCXsKKwkJcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RPICovCisjaWYg
MAorICAgICAgICByZXQgPSBuZXcgR0RPTVNWR0RvY3VtZW50KHN0YXRpY19jYXN0PFNWR0RvY3Vt
ZW50Kj4oZG9jKSk7CisjZW5kaWYKKwl9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9
IG5ldyBHRE9NRG9jdW1lbnQoZG9jKTsKKworCWRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvYywgcmV0KTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSk7CisKK2dwb2ludGVyIHRvR0RPTU5ld2x5
Q3JlYXRlZChOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5V
TEw7IC8qIGhtbW0uLi4uICovCisgICAgCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7
Cit9CisgICAgCitncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUp
CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgRG9jdW1lbnQqIGRv
YyA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAgZ3BvaW50ZXIgcmV0ID0gR0RPTVNjcmlwdEludGVy
cHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlKTsKKyAgICBpZiAocmV0KQor
ICAgICAgICByZXR1cm4gcmV0OworCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9
CisKK2dwb2ludGVyIHRvR0RPTShDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCF2YWx1ZSkK
KyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmog
PSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh2YWx1ZSk7CisKKyAgICBpZiAo
Z29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKwlHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBp
ZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWVM
aXN0KHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSk7CisjaWYgRU5BQkxFKFNWRykK
KyAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQorCXsKKwkJcmV0dXJuIE5VTEw7IC8q
IFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1BhaW50KHN0YXRpY19jYXN0PFNW
R1BhaW50Kj4odmFsdWUpKTsKKwl9CisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHQ29sb3IoKSkK
Kwl7CisJCXJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gbmV3IEdET01T
VkdDb2xvcihzdGF0aWNfY2FzdDxTVkdDb2xvcio+KHZhbHVlKSk7CisJfQorI2VuZGlmCisgICAg
ZWxzZSBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01DU1NQcmltaXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhbHVlKHZhbHVlKTsKKwor
CXZhbHVlLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01P
YmplY3QodmFsdWUsIHJldCk7Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGdwb2ludGVyIGNy
ZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNTRVJU
KCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KG5vZGUtPmRvY3VtZW50
KCksIG5vZGUpKTsKKyAgICAKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9jdW1lbnQoKTsK
KyAgICBHRE9NTm9kZSAqcmV0ID0gTlVMTDsKKyAgICAKKwlwcmludGYoImNyZWF0ZVdyYXBwZXIg
bm9kZVR5cGUgJWRcbiIsIG5vZGUtPm5vZGVUeXBlKCkpOworCisgICAgc3dpdGNoIChub2RlLT5u
b2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgorICAgICAgICAg
ICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXQgPSBjcmVh
dGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKSk7CisjaWYg
RU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmlzU1ZHRWxlbWVudCgpKQor
CQkJCXJldHVybiBOVUxMOworI2lmIDAgLyogWFhYIFRPRE8gKi8KKyAgICAgICAgICAgICAgICBy
ZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4obm9kZSkp
OworI2VuZGlmCisjZW5kaWYKKyAgICAgICAgICAgIGVsc2UKKwkJCQlyZXQgPSBuZXcgR0RPTUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01BdHRyKHN0YXRpY19jYXN0PEF0dHIqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RP
TVRleHQoc3RhdGljX2Nhc3Q8VGV4dCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NQ0RBVEFTZWN0aW9uKHN0YXRpY19jYXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01FbnRpdHkoc3RhdGljX2Nhc3Q8RW50aXR5Kj4obm9kZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVD
VElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24oc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4obm9kZSkpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01Db21tZW50KHN0YXRpY19jYXN0PENvbW1lbnQqPihub2RlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgorICAgICAg
ICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRo
ZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQorICAgICAgICAgICAgcmV0dXJuIHRvR0RPTShzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUpKTsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9U
WVBFX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTURvY3VtZW50VHlwZShzdGF0aWNf
Y2FzdDxEb2N1bWVudFR5cGUqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBOb2RlOjpOT1RBVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob3Rh
dGlvbihzdGF0aWNfY2FzdDxOb3RhdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgICAgICBy
ZXQgPSBuZXcgR0RPTURvY3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRGcmFnbWVu
dCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElU
WV9SRUZFUkVOQ0VfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5UmVmZXJl
bmNlKHN0YXRpY19jYXN0PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob2RlKG5v
ZGUpOworICAgIH0KKworCWRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KGRvYywgbm9kZSwgcmV0KTsKK30KKyAKK2dwb2lu
dGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKK3sKKyAgICBpZiAoIWNvbGxl
Y3Rpb24pCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgZ3BvaW50
ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNvbGxlY3Rpb24p
OworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisJR0RPTU9iamVjdCAq
cmV0OworICAgIHN3aXRjaCAoY29sbGVjdGlvbi0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgSFRN
TENvbGxlY3Rpb246OlNlbGVjdE9wdGlvbnM6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhU
TUxPcHRpb25zQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihj
b2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyNpZiAwCisgICAgICAgIGNhc2UgSFRN
TENvbGxlY3Rpb246OkRvY0FsbDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTEFsbENv
bGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTENvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAg
ICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01IVE1MQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNv
bGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworCWNvbGxlY3Rpb24tPnJl
ZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChjb2xs
ZWN0aW9uLCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oRXZlbnQqIGV2ZW50KQoreworICAg
IGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisJcHJp
bnRmKCJ0b0dET00gRXZlbnQgdHlwZSAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmdldERPTU9iamVjdChldmVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2Jq
OworCisJR0RPTU9iamVjdCAqcmV0OworICAgIGlmIChldmVudC0+aXNVSUV2ZW50KCkpIHsKKyAg
ICAgICAgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NS2V5Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsK
KyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzVGV4dEV2ZW50KCkpCisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTVRleHRFdmVudChzdGF0aWNfY2FzdDxUZXh0RXZlbnQqPihldmVudCkpOworICAg
ICAgICBlbHNlIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTU1vdXNlRXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KSk7CisgICAg
ICAgIGVsc2UgaWYgKGV2ZW50LT5pc1doZWVsRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NV2hlZWxFdmVudChzdGF0aWNfY2FzdDxXaGVlbEV2ZW50Kj4oZXZlbnQpKTsKKyNpZiBF
TkFCTEUoU1ZHKQorICAgICAgICBlbHNlIGlmIChldmVudC0+aXNTVkdab29tRXZlbnQoKSkKKwkJ
eworCQkJcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgICAgIC8vcmV0ID0gbmV3IEdE
T01TVkdab29tRXZlbnQoc3RhdGljX2Nhc3Q8U1ZHWm9vbUV2ZW50Kj4oZXZlbnQpLCAwKTsKKwkJ
fQorI2VuZGlmCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NVUlFdmVu
dChzdGF0aWNfY2FzdDxVSUV2ZW50Kj4oZXZlbnQpKTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50LT5p
c011dGF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01NdXRhdGlvbkV2ZW50KHN0
YXRpY19jYXN0PE11dGF0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5p
c092ZXJmbG93RXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01PdmVyZmxvd0V2ZW50KHN0
YXRpY19jYXN0PE92ZXJmbG93RXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5p
c01lc3NhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTU1lc3NhZ2VFdmVudChzdGF0
aWNfY2FzdDxNZXNzYWdlRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5pc1By
b2dyZXNzRXZlbnQoKSkgeworICAgICAgICBpZiAoZXZlbnQtPmlzWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudChzdGF0aWNfY2FzdDxYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQqPihldmVu
dCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVByb2dyZXNzRXZl
bnQoc3RhdGljX2Nhc3Q8UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CisgICAgfQorI2lmIEVOQUJM
RShET01fU1RPUkFHRSkKKyAgICBlbHNlIGlmIChldmVudC0+aXNTdG9yYWdlRXZlbnQoKSkKKyAg
ICAgICAgcmV0ID0gbmV3IEdET01TdG9yYWdlRXZlbnQoc3RhdGljX2Nhc3Q8U3RvcmFnZUV2ZW50
Kj4oZXZlbnQpKTsKKyNlbmRpZgorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1dlYktpdEFuaW1hdGlv
bkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQoc3Rh
dGljX2Nhc3Q8V2ViS2l0QW5pbWF0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2
ZW50LT5pc1dlYktpdFRyYW5zaXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTVdl
YktpdFRyYW5zaXRpb25FdmVudChzdGF0aWNfY2FzdDxXZWJLaXRUcmFuc2l0aW9uRXZlbnQqPihl
dmVudCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01FdmVudChldmVudCk7CisK
KwlldmVudC0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9N
T2JqZWN0KGV2ZW50LCByZXQpOworfQorCisvKiBUT0RPIFhYWCBobW1tLi4uIG5vdCBzbyBoYXBw
eSBhYm91dCB0aGlzIC0gc2hvdWxkIGJlICJuZXdseSBjcmVhdGVkIiAqLworZ3BvaW50ZXIgdG9H
RE9NKFRleHQqIHRleHQpCit7CisJaWYgKCF0ZXh0KQorCQlyZXR1cm4gTlVMTDsKKworICAgIGdw
b2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVu
dCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0KTsKKwlpZiAoZ29iaikKKwkJcmV0dXJuIGdvYmo7CisK
KwlHRE9NTm9kZSAqcmV0ID0gbmV3IEdET01UZXh0KHRleHQpOworCXRleHQtPmRvY3VtZW50KCkt
PnJlZigpOworCXJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1
bWVudCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00o
Q1NTUnVsZSogcnVsZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBOVUxMOyAv
KiBYWFggaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6Z2V0RE9NT2JqZWN0KHJ1bGUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVy
biBnb2JqOworCisJR0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7
CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NQ1NTU3R5bGVSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6CisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTUNTU01lZGlhUnVsZShzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1
bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpG
T05UX0ZBQ0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTRm9udEZhY2VSdWxl
KHN0YXRpY19jYXN0PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NQ1NTUGFnZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihydWxlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTSW1wb3J0UnVsZShzdGF0aWNfY2FzdDxDU1NJbXBvcnRS
dWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6
Q0hBUlNFVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NDaGFyc2V0UnVsZShz
dGF0aWNfY2FzdDxDU1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01DU1NWYXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1ZhcmlhYmxlc1J1bGUqPihy
dWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NQ1NTUnVsZShydWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0K
KworCXJ1bGUtPnJlZigpOworICAgIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0
KHJ1bGUsIHJldCk7CisgICAgcmV0dXJuIHJldDsKK30KKworLyogVE9ETzogc2hvdWxkIGJlIHRv
R0RPTU5ld2x5Q3JlYXRlZCAqLworZ3BvaW50ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQpCit7
CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8vIHNob3Vs
ZG4ndCBiZSBvbmU/IEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1
bWVudChlbGVtZW50LT5kb2N1bWVudCgpLCBlbGVtZW50KSk7CisgICAgZ3BvaW50ZXIgZ29iaiA9
IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KGVsZW1lbnQtPmRv
Y3VtZW50KCksIGVsZW1lbnQpOworCWlmIChnb2JqKQorCQlyZXR1cm4gZ29iajsgLy8gaHVoPyBl
cnIuLi4KKworCUdET01Ob2RlICpyZXQ7CisgICAgRG9jdW1lbnQqIGRvYyA9IGVsZW1lbnQtPmRv
Y3VtZW50KCk7CisKKyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICBy
ZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVt
ZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0VsZW1l
bnQoKSkKKwl7CisJCXJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gY3Jl
YXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KGVsZW1lbnQpKTsKKwl9
CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRWxlbWVudChlbGVtZW50
KTsKKworCWRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0
RE9NTm9kZUZvckRvY3VtZW50KGRvYywgZWxlbWVudCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9H
RE9NKFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQpCit7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAg
ICAgICByZXR1cm4gTlVMTDsgLyogZXJyLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RP
TVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qoc3R5bGVTaGVldCk7CisgICAgaWYgKGdv
YmopCisgICAgICAgIHJldHVybiBnb2JqOworCisJR0RPTU9iamVjdCAqcmV0OworICAgIGlmIChz
dHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NT
dHlsZVNoZWV0KHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KSk7CisgICAg
ZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTVN0eWxlU2hlZXQoc3R5bGVTaGVldCk7CisKKwlz
dHlsZVNoZWV0LT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRE
T01PYmplY3Qoc3R5bGVTaGVldCwgcmV0KTsKK30KKworLyogZGVyaXZlZCBzb3VyY2VzIGF1dG8t
Z2VuZXJhdGVkICovCitncG9pbnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9iaik7
CisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldCogdGFyZ2V0KQoreworICAgIGlmICghdGFy
Z2V0KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAKKyNpZiAwCisjaWYgRU5BQkxFKFNWRykK
KyAgICAvLyBTVkdFbGVtZW50SW5zdGFuY2Ugc3VwcG9ydHMgYm90aCB0b1NWR0VsZW1lbnRJbnN0
YW5jZSBhbmQgdG9Ob2RlIHNpbmNlIHNvIG11Y2ggbW91c2UgaGFuZGxpbmcgY29kZSBkZXBlbmRz
IG9uIHRvTm9kZSByZXR1cm5pbmcgYSB2YWxpZCBub2RlLgorICAgIFNWR0VsZW1lbnRJbnN0YW5j
ZSogaW5zdGFuY2UgPSB0YXJnZXQtPnRvU1ZHRWxlbWVudEluc3RhbmNlKCk7CisgICAgaWYgKGlu
c3RhbmNlKQorICAgICAgICByZXR1cm4gdG9HRE9NKGV4ZWMsIGluc3RhbmNlKTsKKyNlbmRpZgor
I2VuZGlmCisKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0LT50b05vZGUoKTsKKyAgICBpZiAobm9k
ZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsKKyAgICAKKyAgICBpZiAoWE1MSHR0cFJl
cXVlc3QqIHhociA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdCgpKQorICAgICAgICAvLyBYTUxI
dHRwUmVxdWVzdCBpcyBhbHdheXMgY3JlYXRlZCB2aWEgR0RPTSwgc28gd2UgZG9uJ3QgbmVlZCB0
byB1c2UgY2FjaGVET01PYmplY3QoKSBoZXJlLgorICAgICAgICByZXR1cm4gR0RPTVNjcmlwdElu
dGVycHJldGVyOjpnZXRET01PYmplY3QoeGhyKTsKKworICAgIGlmIChYTUxIdHRwUmVxdWVzdFVw
bG9hZCogdXBsb2FkID0gdGFyZ2V0LT50b1hNTEh0dHBSZXF1ZXN0VXBsb2FkKCkpCisgICAgICAg
IHJldHVybiB0b0dET00odXBsb2FkKTsKKyAgICAKKyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQorICAgIGlmIChET01BcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+
dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCisgICAgICAgIC8vIERPTUFwcGxpY2F0aW9uQ2FjaGUg
aXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIGNhY2hl
RE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NT2JqZWN0KGNhY2hlKTsKKyNlbmRpZgorCisgICAgLy8gVGhlcmUgYXJlIHR3byBraW5k
cyBvZiBFdmVudFRhcmdldHM6IEV2ZW50VGFyZ2V0Tm9kZSBhbmQgWE1MSHR0cFJlcXVlc3QuCisg
ICAgLy8gSWYgU1ZHIHN1cHBvcnQgaXMgZW5hYmxlZCwgdGhlcmUgaXMgYWxzbyBTVkdFbGVtZW50
SW5zdGFuY2UuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE5VTEw7Cit9
ICAgCisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIHRhcmdldCkKK3sKKyAgICBp
ZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgCisgICAgTm9kZSogbm9kZSA9
IHRhcmdldC0+dG9Ob2RlKCk7CisgICAgaWYgKG5vZGUpCisgICAgICAgIHJldHVybiB0b0dET00o
bm9kZSk7CisgICAgCisJcmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxFdmVudFRhcmdldCo+KHRh
cmdldCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL2dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9nZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR2Rv
bURPTU9iamVjdF9IX18KKyNkZWZpbmUgX19HZG9tRE9NT2JqZWN0X0hfXworI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+CisKK0dfQkVHSU5f
REVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOworCisj
ZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdkb21fZG9tX29iamVjdF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21E
T01PYmplY3QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21E
T01PYmplY3RDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVChvYmopICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCkp
CisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19D
TEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01f
RE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkKKwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIEdkb21ET01PYmplY3RQcml2YXRlOworCitz
dHJ1Y3QgX0dkb21ET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworCisg
ICAgR2RvbURPTU9iamVjdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21ET01PYmpl
Y3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9H
RE9NX0FQSSBHVHlwZQorZ2RvbV9kb21fb2JqZWN0X2dldF90eXBlICh2b2lkKTsKKworV0VCS0lU
X0dET01fQVBJIHZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01P
YmplY3QgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tRE9NT2JqZWN0
X0hfXyAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0LmgJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE0IEBACisjaWZuZGVmIF9fRE9NT2JqZWN0X2hfXworI2RlZmluZSBfX0RPTU9iamVj
dF9oX18KKworLy8gbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHRE9NT2JqZWN0IHsKK3B1
YmxpYzoKKwl2aXJ0dWFsIH5HRE9NT2JqZWN0KCkge30KKwl2aXJ0dWFsIGludCBnZXRfZ29ial90
eXBlKCkgPSAwOworfTsKKworLy8gfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAw
OCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxl
IEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRE9NT2JqZWN0X0hfX19QUklWXworI2RlZmlu
ZSBfX0dET01ET01PYmplY3RfSF9fX1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNp
bmNsdWRlICJnZG9tRE9NT2JqZWN0LmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01PYmpl
Y3Q7CitXRUJLSVRfR0RPTV9BUEkgR0RPTU9iamVjdCoKK2dkb21fZG9tX29iamVjdF9nZXRfcHJp
dmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0KTsKKworV0VCS0lUX0dET01fQVBJIHZvaWQKK2dk
b21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0LCBHRE9NT2Jq
ZWN0KiBpdGVtKTsKKworR19FTkRfREVDTFMKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVy
RmFjdG9yeS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogVEhJUyBGSUxF
IElTIERFUklWRUQgRlJPTSBBTiBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBGSUxFLgorICoga2Vl
cGluZyBpdCB1cC10by1kYXRlIGNvdWxkIHBvdGVudGlhbGx5IGJlIGRvbmUgYnkgYWRkaW5nCisg
KiBhIG1ha2VfbmFtZXMucGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUKKyAq
IGdlbmVyYXRlciB3aGljaCB0YWtlcyBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBhcyBp
bnB1dC4KKyAqCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisKKyNpZm5kZWYgR0RPTUhUTUxFbGVtZW50
V3JhcHBlckZhY3RvcnlfaAorI2RlZmluZSBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9o
CisKKyNpbmNsdWRlICJpbnRnZG9tTm9kZS5oIgorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7CisKKyAgICBH
RE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsK
KworfQorIAorI2VuZGlmIC8vIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2ludGdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9pbnRnZG9tRXZlbnRUYXJnZXROb2Rl
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRXZlbnRUYXJnZXROb2Rl
X0hfX19JTlRfCisjZGVmaW5lIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fSU5UXworI2luY2x1
ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiaW50Z2RvbU5vZGUuaCIKK0dfQkVHSU5fREVD
TFMKKworY2xhc3MgR0RPTUV2ZW50VGFyZ2V0Tm9kZSA6IHB1YmxpYyBHRE9NTm9kZSB7CisKK3B1
YmxpYzoKKyAgICBHRE9NRXZlbnRUYXJnZXROb2RlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9kZT4g
aW1wbCkgOiBHRE9NTm9kZShpbXBsKSB7fQorCWludCBnZXRfZ29ial90eXBlKCkgeyByZXR1cm4g
R0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFOyB9Cit9OworCisKK0dfRU5EX0RFQ0xTCisjZW5k
aWYKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw5MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4g
KHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBHZG9tRE9NQmluZGluZ19oCisjZGVm
aW5lIEdkb21ET01CaW5kaW5nX2gKKworI2luY2x1ZGUgPGtqcy9pbnRlcnByZXRlci5oPgorI2lu
Y2x1ZGUgPGtqcy9sb29rdXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworI2lu
Y2x1ZGUgImdkb21Ob2RlLmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgImlu
dGdkb21Ob2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEF0b21pY1N0
cmluZzsKKyAgICBjbGFzcyBEb2N1bWVudDsKKyAgICBjbGFzcyBFdmVudDsKKyAgICBjbGFzcyBG
cmFtZTsKKyAgICBjbGFzcyBLVVJMOworICAgIGNsYXNzIE5vZGU7CisgICAgY2xhc3MgU3RyaW5n
OworCisjaWYgRU5BQkxFKFNWRykKKyAgICBjbGFzcyBTVkdFbGVtZW50OworI2VuZGlmCisKKyAg
ICBjbGFzcyBHRE9NU2NyaXB0SW50ZXJwcmV0ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3Rh
dGljIHZvaWQqIGdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpOworICAgICAgICBzdGF0
aWMgdm9pZCogcHV0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVjdCopOwor
ICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsK
KworICAgICAgICBzdGF0aWMgdm9pZCogZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50Kiwg
Tm9kZSopOworICAgICAgICBzdGF0aWMgdm9pZCogcHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3Vt
ZW50KiwgTm9kZSosIEdET01Ob2RlKiBub2RlV3JhcHBlcik7CisgICAgICAgIHN0YXRpYyB2b2lk
IGZvcmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAgICAgICAgc3Rh
dGljIHZvaWQgZm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOworCQkjaWYg
MAorICAgICAgICBzdGF0aWMgdm9pZCB1cGRhdGVET01Ob2RlRG9jdW1lbnQoTm9kZSosIERvY3Vt
ZW50KiBvbGREb2MsIERvY3VtZW50KiBuZXdEb2MpOworICAgICAgICBzdGF0aWMgdm9pZCBtYXJr
RE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOworCQkjZW5kaWYKKyAgICB9OworCisgICAg
Ly8gUmV0cmlldmUgZnJvbSBjYWNoZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYSBE
T00gb2JqZWN0LgorICAgIHRlbXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3MgR2RvbURPTU9iaj4g
aW5saW5lIHZvaWQqIGNhY2hlRE9NT2JqZWN0KERPTU9iaiogZG9tT2JqKQorICAgIHsKKyAgICAg
ICAgaWYgKCFkb21PYmopCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4g
Ki8KKyAgICAgICAgaWYgKHZvaWQqIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9N
T2JqZWN0KGRvbU9iaikpCisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBHRE9NT2Jq
ZWN0KiByZXQgPSBuZXcgR2RvbURPTU9iaihkb21PYmopOworCQlkb21PYmotPnJlZigpOworICAg
ICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZG9tT2JqLCBy
ZXQpOworICAgIH0KKworI2lmIEVOQUJMRShTVkcpCisgICAgLy8gUmV0cmlldmUgZnJvbSBjYWNo
ZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYW4gU1ZHIERPTSBvYmplY3QuCisgICAg
dGVtcGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2JqPiBpbmxpbmUgdm9pZCogY2Fj
aGVTVkdET01PYmplY3QoRE9NT2JqKiBkb21PYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpCisgICAg
eworICAgICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFgg
aG1tbS4uLiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVy
OjpnZXRET01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAg
IEdET01PYmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaiwgY29udGV4dCk7CisJCWRv
bU9iai0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERP
TU9iamVjdChkb21PYmosIHJldCk7CisgICAgfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEdkb21ET01CaW5kaW5nX2gKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9pbnRnZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL2ludGdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9pbnRnZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRl
ICJHRE9NT2JqZWN0LmgiCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTY2MSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFpbnQgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0g
U3VpdGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFja2FnZSBDb2Rl
R2VuZXJhdG9yR09iamVjdDsKKworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVzCitteSAkbGlj
ZW5jZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xcQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215ICVoZHJJ
bmNsdWRlcyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkgJWltcGxUeXBlZGVm
cyA9ICgpOworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBteSAkb2Jq
ZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJh
dG9yID0gc2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxlc3MoJHJlZmVy
ZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBmaW5pc2gK
K3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0
cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0Owor
ICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAg
ICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxuIjsKKwor
ICAgICRvYmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdyaXRlIGNoYW5nZXMK
KyAgICBteSAkZm5hbWUgPSAiZ2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXplKCRuYW1lKTsKKyAg
ICAkZm5hbWUgPX4gcy9fLy9nOworICAgICRvYmplY3QtPldyaXRlRGF0YSgkZm5hbWUpOworfQor
CisjIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVsZQorewor
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAg
ICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5cGUKK3sK
KyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxpemUoJGNs
YXNzTmFtZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURPTU9iamVjdCIg
aWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9tIiAuICRjb2Rl
R2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOworfQorc3ViIEdl
dFBhcmVudEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/
IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdh
Y3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJl
bnQifTsKKyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRhTm9kZS0+
cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2JqVHlwZSgk
Y29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Cit9CisK
KworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgY2Ft
ZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsgdWNmaXJzdCAk
XyB9IHNwbGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7Cit9CisKKyMg
QWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGRlY2FtZWxp
emUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8pKFtBLVpd
KikoW0EtWl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAgICAg
ICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBteSAk
dCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/ICIk
e3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAgfWdl
OworICAgICRzOworfQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAkbmFtZSA9ICRj
b2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gImdkb20kbmFt
ZSI7Cit9CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAkY29kZUdl
bmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOwor
fQorCitzdWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAg
ICBteSAkbmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1l
bGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUg
ZXEgImludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5
cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAg
ICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gIiIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxv
bmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7
CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAg
ICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAi
IiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVybiAiUmFuZ2UuaCIg
aWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb21DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCI7CisgICAgICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgY2hhciI7CisgICAgICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKyAgICAg
ICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAg
ICAgcmV0dXJuICJnZG9tRXZlbnRUYXJnZXROb2RlLmgiIGlmICR0eXBlIGVxICJFdmVudFRhcmdl
dCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiZmxvYXQi
OworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImJvb2xlYW4i
OworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgInZvaWQiOwor
CisgICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1cm5zIDEgaWYgd2UgbmVlZCB0byBj
cmVhdGUgYSBnb2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSByZXR1cm4gcmVzdWx0CitzdWIgSXNH
RE9NQ2xhc3NUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUg
PSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJE
T01UaW1lU3RhbXAiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
ZG91YmxlIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImludCI7Cisg
ICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBl
cSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiUkdCQ29s
b3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gMTsKK30KKworc3ViIEdldFByb3BHVHlw
ZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUo
JHR5cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0eXBlIGVxICJET01TdHJpbmciOwor
ICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0dXJuICJub3R5
ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gImRvdWJs
ZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJib29sZWFuIiBpZiAkdHlwZSBl
cSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAg
cmV0dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJpbnQiIGlmICR0
eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEgInVjaGFyIjsK
KyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICJp
bnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAidWludCIgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IjsKKyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAg
ICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9N
IGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2JqZWN0IjsKK30KKworc3ViIEdldEdUeXBl
Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05h
bWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5
cGUpKTsKKworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUgKiIgaWYgJHR5cGUg
ZXEgIkV2ZW50VGFyZ2V0IjsKKyAgICAgICAgcmV0dXJuICJjb25zdCBnY2hhciAqIiBpZiAkdHlw
ZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJnZmxvYXQgIiBpZiAkdHlwZSBlcSAi
ZmxvYXQiOworICAgICAgICByZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJlSG93ICIgaWYg
JHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb3VibGUgIiBpZiAkdHlw
ZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICJnYm9vbGVhbiAiIGlmICR0eXBlIGVxICJi
b29sZWFuIjsKKyAgICAgICAgcmV0dXJuICJnY2hhciAiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAg
ICAgICAgcmV0dXJuICJnbG9uZyAiIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJu
ICJnc2hvcnQgIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gImd1Y2hhciAi
IGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAiZ3VpbnQgIiBpZiAkdHlwZSBl
cSAidW5zaWduZWQiOworICAgICAgICByZXR1cm4gImdpbnQgIiBpZiAkdHlwZSBlcSAiaW50IjsK
KyAgICAgICAgcmV0dXJuICJndWludCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAg
ICAgICByZXR1cm4gImd1bG9uZyAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICAg
ICAgcmV0dXJuICJndWludDY0ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7Cisg
ICAgICAgIHJldHVybiAiZ3VzaG9ydCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7Cisg
ICAgICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RP
IC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlmICR0eXBlIGVx
ICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJbmNIZHIKK3sK
KyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBHZXRHSW5jbHVk
ZUhkcigkdHlwZSk7CisgICAgaWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlmICgkdHlwZSBl
cSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICByZXR1cm4gImdkb21FdmVudFRhcmdldE5v
ZGUuaCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7
CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9y
LgorICAgICAgICAgICAgcmV0dXJuICJnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRyOworICAgICAg
ICB9CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNIZHIKK3sKKyAg
ICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7Cisg
ICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9IDE7
CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAkaGRy
UHJvcEluY2x1ZGVzeyJwcml2Ii4kaGRyfSA9IDE7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1
ZGVzeyJpbnQiLiRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0KKworfQorCitzdWIgYWRkSW5j
SGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIo
JHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgICRoZHJJbmNsdWRlc3skaGRy
fSA9IDE7CisgICAgfQorCit9CisKK3N1YiBhZGRJbmNCb2R5Cit7CisgICAgbXkgJHR5cGUgPSBz
aGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5l
ICIiKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0KK30KKworc3Vi
IEdldFByaXZGbgoreworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CisgICAgbXkgJGxj
YXNlX2lmYWNlbmFtZSA9IHNoaWZ0OworICAgIG15ICRyZXMgPSBzaGlmdDsKKyAgICBteSAkcGFy
bSA9IHNoaWZ0OworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJFdmVudFRhcmdldCIpIHsK
KyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiAkcmVzID0gc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9n
ZXRfcHJpdmF0ZShzZWxmKSk7IjsKKyAgICB9CisgICAgcmV0dXJuICJXZWJDb3JlOjoke2ludGVy
ZmFjZU5hbWV9ICogJHJlcyA9ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHBhcm0p
KTsiOworfQorCitzdWIgc2tpcFByb3BUZW1wb3JhcmlseQoreworICAgIG15ICR0eXBlID0gc2hp
ZnQ7CisgICAgbXkgJHByb3BfdHlwZSA9IHNoaWZ0OworCisgICAgIyBza2lwIE1lZGlhTGlzdAor
ICAgIGlmICgkcHJvcF90eXBlIGVxICJzdHlsZXNoZWV0czo6TWVkaWFMaXN0IikgeworICAgICAg
ICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50VGFyZ2V0
IikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDU1NWYXJpYWJs
ZXNEZWNsYXJhdGlvbgorICAgIGlmICgkcHJvcF90eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJh
dGlvbiIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBza2lwIENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJDU1NTdHlsZURlY2xh
cmF0aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24iKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAg
IyBza2lwIEV2ZW50TGlzdGVuZXIKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50TGlzdGVu
ZXIiKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIERPTVdpbmRv
dworICAgICNpZiAoJHByb3BfdHlwZSBlcSAiRE9NV2luZG93IikgeworICAgICMgICAgcmV0dXJu
IDE7CisgICAgI30KKworICAgICMgc2tpcCBDb25zdHJ1Y3RvcnMgKHdoYXRldmVyIHRoZXkgYXJl
KSBmb3Igbm93LgorICAgIGlmICgkcHJvcF90eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7CisgICAg
ICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgY2FudmFzMmQuLi4uCisgICAgaWYgKCRwcm9w
X3R5cGUgZXEgImN1c3RvbSIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYg
KCRwcm9wX3R5cGUgZXEgIkFycmF5IikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICBpZiAoJHByb3BfdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgeworICAgICAgICByZXR1cm4gMTsK
KyAgICB9CisKKyAgICAjIFRPRE86IFNWRworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQb2RU
eXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIFVzZXNN
YW51YWxUb0pTSW1wbGVtZW50YXRpb24KK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAg
IyBza2lwcGVkIG91dCBDYW52YXNQaXhlbEFycmF5IC0gc2VlIEpTQ2FudmFzUGl4ZWxBcnJheUN1
c3RvbS5jcHAgZm9yIHdoeS4KKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiTm9kZSIgb3IgJHR5
cGUgZXEgIkRvY3VtZW50IiBvciAkdHlwZSBlcSAiSFRNTENvbGxlY3Rpb24iIG9yICR0eXBlIGVx
ICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUgZXEgIkNTU1J1
bGUiIG9yICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IgJHR5cGUgZXEgIkV2ZW50IiBvciAkdHlwZSBl
cSAiRWxlbWVudCIgb3IgJHR5cGUgZXEgIlRleHQiOworICAgIHJldHVybiAwOworfQorCisKKyMg
R2VuZXJhdGUgaGVhZGVyIGFuZCBpbXBsCitzdWIgR2VuZXJhdGUKK3sKKyAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkaGFzTGVnYWN5
UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07
CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAwOworICAg
IG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50OworICAg
IG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05hbWUoJGRhdGFOb2RlKTsKKyAg
ICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJlbnRHT2JqVHlwZSgkZGF0YU5vZGUpOworICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRjbGFzc05hbWUg
PSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOworICAgIG15ICRoZHJOYW1lID0gR2V0SGRy
TmFtZSgkaW50ZXJmYWNlTmFtZSk7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBpbXBsIGhlYWRl
ciB0ZW1wbGF0ZQorICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7
CisgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJHRE9NQmlu
ZGluZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiRoZHJOYW1lLmgifSA9IDE7CisgICAg
JGltcGxJbmNsdWRlc3sicHJpdiR7aGRyTmFtZX0uaCJ9ID0gMTsKKworICAgIG15ICRwYXJlbnRJ
bnRlcmZhY2VOYW1lID0gIkRPTU9iamVjdCI7CisgICAgbXkgJHBhcmVudEdJZmFjZU5hbWUgPSAi
R0RPTU9iamVjdCI7CisgICAgbXkgJHBhcmVudEhkck5hbWUgPSAiZ2RvbURPTU9iamVjdCI7Cisg
ICAgaWYgKCRwYXJlbnRDbGFzc05hbWUgbmUgIkdPYmplY3QiKQorICAgIHsKKyAgICAgICAgJHBh
cmVudEludGVyZmFjZU5hbWUgPSBzdWJzdHIoJHBhcmVudENsYXNzTmFtZSwgNCk7CisgICAgICAg
IGlmICgkcGFyZW50SW50ZXJmYWNlTmFtZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAg
JHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTSIuc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOwor
ICAgICAgICAgICAgJHBhcmVudEhkck5hbWUgPSBHZXRIZHJOYW1lKCRwYXJlbnRJbnRlcmZhY2VO
YW1lKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgICRw
YXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgICAgICB9CisgICAgICAgICRpbXBs
SW5jbHVkZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRl
c3sicHJpdiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGhkckluY2x1ZGVzeyIk
e3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICMkaGRySW5jbHVkZXN7InByaXYke3Bh
cmVudEhkck5hbWV9LmgifSA9IDA7CisgICAgfQorCisgICAgIyBUT0RPIC0gbWFrZSB0aGVzZSBv
bmx5IGluY2x1ZGUgd2hlcmUgbmVlZGVkLCBsaWtld2lzZSB0aGUKKyAgICAjIGZ1bmN0aW9uIGRl
Y2xhcmF0aW9ucyB0b0dET00sIHRvbworICAgICRpbXBsSW5jbHVkZXN7Ik5vZGUuaCJ9ID0gMTsK
KyAgICAkaW1wbEluY2x1ZGVzeyJFbGVtZW50LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3si
Q1NTVmFsdWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDU1NSdWxlLmgifSA9IDE7Cisg
ICAgJGltcGxJbmNsdWRlc3siSFRNTENvbGxlY3Rpb24uaCJ9ID0gMTsKKyAgICAjJGltcGxJbmNs
dWRlc3siU1ZHUGF0aFNlZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IlN0eWxlU2hlZXQu
aCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFdmVudC5oIn0gPSAxOworICAgICRpbXBsSW5j
bHVkZXN7IkNhbnZhc1BpeGVsQXJyYXkuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJET01X
aW5kb3cuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJUZXh0LmgifSA9IDE7CisKKyAgICAj
IFhYWCBUT0RPOiBtYWtlIHRoaXMgb3B0aW9uYWwgb3IgaW4gYSBoZWFkZXIgZmlsZS4gIG9yIGZp
bmQgYSBiZXR0ZXIgd2F5LgorICAgIG15ICRoYWNrRGVjbHMgPSA8PCAiRU9GIjsKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSk7CisgICAgZ3BvaW50
ZXIgdG9HRE9NKENTU1ZhbHVlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oQ1NTUnVsZSog
bm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEVsZW1lbnQqIG5vZGUpOworICAgIGdwb2ludGVy
IHRvR0RPTShEb2N1bWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0
aW9uKiBub2RlKTsgCisgICAgLy9ncG9pbnRlciB0b0dET00oU1ZHUGF0aFNlZyogbm9kZSk7IAor
ICAgIGdwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9H
RE9NKEV2ZW50VGFyZ2V0Tm9kZSogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRh
cmdldCogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShFdmVudCogbm9kZSk7IAorICAgIGdw
b2ludGVyIHRvR0RPTShDYW52YXNQaXhlbEFycmF5KiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9H
RE9NKERPTVdpbmRvdyogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShUZXh0KiBub2RlKTsg
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK0VPRgorCisgICAgcHVzaChAY0JvZHksICRoYWNr
RGVjbHMpOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVh
ZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAkc3RyaW5nQ29udmVydCA9
IDw8ICJFT0YiOworY2xhc3MgR1N0cmluZ0NvbnZlcnQgeworICAgIHB1YmxpYzoKKyAgICBjb25z
dCBnY2hhciAqbV9zdHI7CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0
JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdD
b252ZXJ0KFdlYkNvcmU6OktVUkwgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoY29uc3QgS0pTOjpVU3Ry
aW5nICYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuVVRGOFN0cmluZygpLmNfc3RyKCkpOyB9Cisg
ICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIg
PSBnX3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9Cit9OworCitFT0YKKworICAg
IHB1c2goQGNCb2R5LCAkc3RyaW5nQ29udmVydCk7CisKKyAgICBwdXNoKEBjQm9keSwgIm5hbWVz
cGFjZSBXZWJDb3JlIHtcbiIpOworCisgICAgIyBHZXQgY29ycmVjdCBwYXNzL3N0b3JlIHR5cGVz
IHJlc3BlY3RpbmcgUE9EVHlwZSBmbGFnCisgICAgbXkgJHBvZFR5cGUgPSAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07CisgICAgbXkgJHBhc3NUeXBlID0gJHBvZFR5
cGUgPyAiSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIiA6ICIkaW50ZXJmYWNlTmFtZSoi
OworCisgICAgaWYgKCghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRp
bnRlcmZhY2VOYW1lKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAg
cHVzaChAY0JvZHksICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
U1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiBvYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpXG4i
KTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRp
bXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgICBwdXNoKEBjQm9keSwgIktKUzo6SlNWYWx1
ZSogdG9KUyhLSlM6OkV4ZWNTdGF0ZSogZXhlYywgJHBhc3NUeXBlIG9iaiwgU1ZHRWxlbWVudCog
Y29udGV4dClcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNzVHlwZSBvYmopXG4iKTsKKyAgICAgICAg
I30KKworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgICAgICAjaWYgKCRwb2RUeXBl
KSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2Jq
ZWN0PEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+LCAkY2xhc3NOYW1lLCAke2NsYXNzTmFt
ZX1Qcm90b3R5cGU+KGV4ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxzaWYg
KElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAg
ICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBjYWNoZVNWR0RPTU9iamVjdDwkaW1w
bENsYXNzTmFtZSwgJGNsYXNzTmFtZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmos
IGNvbnRleHQpO1xuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgcmV0dXJuIFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0PFdlYkNvcmU6OiRpbnRlcmZh
Y2VOYW1lLCBHRE9NJGludGVyZmFjZU5hbWU+KG9iaik7XG4iKTsKKyAgICAgICAgI30KKyAgICAg
ICAgcHVzaChAY0JvZHksICJ9XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyog
bmFtZXNwYWNlIFdlYkNvcmUgKi8gXG4iKTsKKyAgICBteSAkaW1wbENvbnRlbnQgPSAiIjsKKwor
ICAgICMgWFhYIFRPRE8gcHVzaChAY0JvZHksICJ1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTtcblxu
Iik7CisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xuXG4iKTsKKyAgICBwdXNoKEBj
Qm9keSwgIiNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0
cilcbiIpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCisgICAgQGhQ
cmVmaXggPSBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICAgICAgI3B1c2goQGhQ
cmVmaXgsICJcbiIpOworCisgICAgIyBIZWFkZXIgZ3VhcmQKKyAgICAgICAgbXkgJGd1YXJkID0g
Il9fIiAuICRjbGFzc05hbWUgLiAiX0hfXyI7CisKKyAgICBteSAkY2xzQ2FwcyA9IHN1YnN0cihD
bHNUb0dPYmpUeXBlKCRjbGFzc05hbWUpLCA1KTsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0g
Imdkb21fIiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpOworICAgICNteSAkcGFyZW50Q2xz
Q2FwcyA9ICJHRE9NXyIgLiBDbHNUb0dPYmpUeXBlKCRwYXJlbnRJbnRlcmZhY2VOYW1lKTsKKwor
ICAgIEBoUHJlZml4R3VhcmQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJGd1YXJkCisjZGVmaW5lICRn
dWFyZAorRU9GCisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5fREVDTFMK
KworRU9GCisKKyAgICBwdXNoKEBoQm9keVByZSwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworCisjZGVmaW5lIEdET01fVFlQRV8ke2Nsc0NhcHN9ICAgICAg
ICAgICAgKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NXyR7Y2xz
Q2Fwc30ob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwg
R0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfSkpCisjZGVmaW5lIEdET01fJHtjbHND
YXBzfV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBH
RE9NX1RZUEVfJHtjbHNDYXBzfSwgJGNsYXNzTmFtZSlDbGFzcykKKyNkZWZpbmUgR0RPTV9JU18k
e2Nsc0NhcHN9KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiks
IEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9X0NMQVNT
KGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Ns
c0NhcHN9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9DTEFTUyhvYmopICAoR19UWVBF
X0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNz
TmFtZX1DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlICR7Y2xh
c3NOYW1lfVByaXZhdGU7CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICAke3BhcmVudENs
YXNzTmFtZX0gcGFyZW50X2luc3RhbmNlOworCisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJp
djsKK307CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBw
YXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfR0RPTV9BUEkgR1R5cGUKKyR7bGNhc2VfaWZhY2Vu
YW1lfV9nZXRfdHlwZSAodm9pZCk7CisKK0VPRgorCisgICAgcHVzaChAaEJvZHksICRpbXBsQ29u
dGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJHtndWFyZH1f
UFJPUF8KKyNkZWZpbmUgJHtndWFyZH1fUFJPUF8KK0VPRgorCisgICAgcHVzaChAaEJvZHlQcm9w
UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19CRUdJTl9ERUNM
U1xuIik7CisKKyAgICAkaGRyUHJvcEluY2x1ZGV7ImdsaWItb2JqZWN0LmgifSA9IDE7CisgICAg
JGhkclByb3BJbmNsdWRleyJpbnQke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgJGhkclBy
b3BJbmNsdWRleyJHRE9NT2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJbmNsdWRleyIke2lu
dGVyZmFjZU5hbWV9LmgifSA9IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNp
Zm5kZWYgJHtndWFyZH1fSU5UXworI2RlZmluZSAke2d1YXJkfV9JTlRfCisjaW5jbHVkZSAiZ2xp
Yi1vYmplY3QuaCIKKyNpbmNsdWRlICJpbnQke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAi
R0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAgICBpZiAoKCEkaGFzUGFy
ZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBh
bmQgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAg
ICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdw
b2ludGVyIHRvR0RPTSgke2ludGVyZmFjZU5hbWV9KiBub2RlKTsKK30gLyogbmFtZXNwYWNlIFdl
YkNvcmUgKi8gCitFT0YKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOwor
ICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19CRUdJTl9ERUNMU1xuIik7CisKKyAg
ICAjQ2xhc3MgZGVjbGFyYXRpb24KKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRv
dyIpIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgImNsYXNzIEdET00kaW50ZXJmYWNl
TmFtZSB7XG4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
Y2xhc3MgR0RPTSRpbnRlcmZhY2VOYW1lIDogcHVibGljICRwYXJlbnRHSWZhY2VOYW1lIHtcbiIp
OworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHR5cGVkZWYgJHBhcmVudEdJZmFj
ZU5hbWUgQmFzZTtcbiIpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHVibGlj
OlxuIik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRfZ29ial90eXBl
KCkgeyByZXR1cm4gR0RPTV9UWVBFXyR7Y2xzQ2Fwc307IH1cbiIpOworCisgICAgbXkgJG5lZWRz
U1ZHQ29udGV4dCA9IDA7CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJu
YWwsICIgICAgR0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFj
ZU5hbWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0
IiA6ICIiKSAuICIpO1xuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIHZpcnR1YWwgfkdET00kaW50ZXJmYWNlTmFtZSgpO1xuIikgaWYgKCEkaGFz
UGFyZW50IG9yICRpbnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpOworCisgICAgaWYgKCEkaGFz
UGFyZW50IHx8ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgI2lm
ICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgSlNT
VkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwu
Z2V0KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZH
RWxlbWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4i
KTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAg
ICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1f
Y29udGV4dDtcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVm
UHRyPEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+ID4gbV9pbXBsO1xuIik7CisgICAgICAg
ICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFt
ZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgICRpbXBsQ2xhc3NO
YW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+IG1f
aW1wbDtcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdCB7IHJldHVy
biBtX2ltcGwuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFs
LCAicHJpdmF0ZTpcbiIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBS
ZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+IG1faW1wbDtcbiIpOworICAgICAgICAjfQor
ICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0
aXZlQ29udmVydGVyIn0pIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJD
b3JlOjokaW50ZXJmYWNlTmFtZSogaW1wbCgpIGNvbnN0XG4iKTsKKyAgICAgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICB7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKj4oQmFzZTo6
aW1wbCgpKTtcbiIpOworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIH1cbiIpOwor
ICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAifTtcbiIpOworCisgICAgIyBDb25zdHJ1
Y3RvcgorICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06OkdET00kaW50ZXJm
YWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVl
ZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKVxuIik7Cisg
ICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgIDptX2ltcGwoaW1wbClcbiIpOworICAgIH0gZWxzaWYgKCRoYXNQYXJlbnQpIHsK
KyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZShpbXBsIiAuICgk
cGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIikgaWYgKCRp
bnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ciKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICA6ICRwYXJlbnRHSWZhY2VOYW1lKClcbiIpIDsKKyAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgLCBtX2NvbnRleHQoY29udGV4dClcbiIpIGlmICRuZWVkc1NWR0NvbnRleHQ7
CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsKKyAgICB9CisK
KyAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKwor
ICAgICMgRGVzdHJ1Y3RvcgorICAgIGlmICghJGhhc1BhcmVudCkgeworICAgICAgICBwdXNoKEBj
Qm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOwor
ICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworCisgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IG1faW1wbC5nZXQoKS0+ZGVyZWYoKTtcbiIpOworICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUg
ZXEgIk5vZGUiKSB7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1bWVudChtX2ltcGwtPmRvY3Vt
ZW50KCksIG1faW1wbC5nZXQoKSk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgICAgICMgICAgbXkgJGFuaW1hdGVkVHlwZSA9ICRp
bXBsQ2xhc3NOYW1lOworICAgICAgICAgICAgIyAgICAkYW5pbWF0ZWRUeXBlID1+IHMvU1ZHL1NW
R0FuaW1hdGVkLzsKKworICAgICAgICAgICAgIyAgICAjIFNwZWNpYWwgY2FzZSBmb3IgSlNTVkdO
dW1iZXIKKyAgICAgICAgICAgICMgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVk
VHlwZSgkYW5pbWF0ZWRUeXBlKSBhbmQgJHBvZFR5cGUgbmUgImZsb2F0IikgeworICAgICAgICAg
ICAgIyAgICAgICAgcHVzaChAY0JvZHksICIgICAgSlNTVkdEeW5hbWljUE9EVHlwZVdyYXBwZXJD
YWNoZTwkcG9kVHlwZSwgJGFuaW1hdGVkVHlwZT46OmZvcmdldFdyYXBwZXIobV9pbXBsLmdldCgp
KTtcbiIpOworICAgICAgICAgICAgIyAgICB9CisgICAgICAgICAgICAjfQorICAgICAgICAgICAg
cHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRE
T01PYmplY3QobV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcHVzaChA
Y0JvZHksICJcbn1cblxuIik7CisgICAgfQorCisgICAgIyBEb2N1bWVudCBuZWVkcyBhIHNwZWNp
YWwgZGVzdHJ1Y3RvciBiZWNhdXNlIGl0J3MgYSBzcGVjaWFsIGNhc2UgZm9yIGNhY2hpbmcuIEl0
IG5lZWRzCisgICAgIyBpdHMgb3duIHNwZWNpYWwgaGFuZGxpbmcgcmF0aGVyIHRoYW4gcmVseWlu
ZyBvbiB0aGUgY2FjaGluZyB0aGF0IE5vZGUgbm9ybWFsbHkgZG9lcy4KKyAgICBpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIkRvY3VtZW50IikgeworICAgICAgICBwdXNoKEBjQm9keSwgIkdET00ke2lu
dGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOworICAgICAgICBwdXNoKEBj
Qm9keSwgIntcbiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9i
amVjdChzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oaW1wbCgpKSk7XG59
XG5cbiIpOworICAgIH0KKworICAgICRpbXBsSW5jbHVkZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9
ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAg
JGltcGxJbmNsdWRlc3siR0RPTU9iamVjdC5oIn0gPSAxOworCisgICAgJGltcGxUeXBlZGVmc3si
JGNsYXNzTmFtZSJ9ID0gMTsKKyAgICAkaW1wbFR5cGVkZWZzeyIke2NsYXNzTmFtZX1DbGFzcyJ9
ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVz
Lmg+CisjaW5jbHVkZSAiRE9NV2luZG93LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0
aW9uYWwgKi8KKyNpbmNsdWRlICJOb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0
aW9uYWwgKi8KKyNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIgLyogeXVrazogVE9ETyAtIG1ha2Ug
dGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIgLyogeXVrazogVE9E
TyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc0dyYWRpZW50LmgiIC8q
IHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNTdHls
ZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9u
YWwgKi8KKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFr
ZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIiAvKiB5
dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAicHJpdmdkb21FdmVu
dFRhcmdldE5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCBvbiBFdmVu
dFRhcmdldCovCisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgorI2luY2x1ZGUgIiR7aGRy
TmFtZX0uaCIKKyNpbmNsdWRlICJwcml2JHtoZHJOYW1lfS5oIgorI2luY2x1ZGUgImludCR7aGRy
TmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5hbWV9cHJvcHMuaCIKKyNpbmNsdWRlICJDU3RyaW5n
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcu
aCIKKyNpbmNsdWRlICJ1c3RyaW5nLmgiCisjaW5jbHVkZSAiS1VSTC5oIgorCisjaW5jbHVkZSAi
Q2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiVGV4dC5o
IgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTUnVsZS5oIgorI2luY2x1ZGUg
IkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgImdkb21FdmVu
dC5oIgorCisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisg
ICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyR7aGFja0RlY2xzfQorCitHX0JFR0lOX0RF
Q0xTCisKKyR7c3RyaW5nQ29udmVydH0KKworR19ERUZJTkVfVFlQRSgke2NsYXNzTmFtZX0sICR7
bGNhc2VfaWZhY2VuYW1lfSwgJHtwYXJlbnRHT2JqVHlwZX0pOworCisjZGVmaW5lIF9HX0dFVF9V
VEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0KHN0cikubV9zdHIpCisKKy8qCitzdHJ1Y3QgXyR7Y2xh
c3NOYW1lfVByaXZhdGUgeworICAgIGNsYXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKml0
ZW07Cit9OyAgCisKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9QUklWQVRFKG9iaikgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7
Y2xhc3NOYW1lfVByaXZhdGUpKQorKi8KK0dfRU5EX0RFQ0xTCitXZWJDb3JlOjoke2ludGVyZmFj
ZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJl
cXVlc3QpCit7CitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKwor
ICAgIGlmICgoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gKi8K
K0VPRgorICAgIH0gZWxzZSB7CisgICAgICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworICAg
IEdET00ke2ludGVyZmFjZU5hbWV9ICpyZXM7CisgICAgcmVzID0gc3RhdGljX2Nhc3Q8R0RPTSR7
aW50ZXJmYWNlTmFtZX0qPihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JK
RUNUKHJlcXVlc3QpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJm
YWNlTmFtZX0qPihyZXMtPmltcGwoKSk7CitFT0YKKyAgICB9CisgICAgcHVzaChAY0JvZHlQcml2
LCAkaW1wbENvbnRlbnQpOworCisgICAgIyBQcm9wZXJ0aWVzCisgICAgbXkgJGZ1bmN0aW9uTmFt
ZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5hbWU7IAorICAgIFNLSVBQUk9QOiBmb3JlYWNoIG15ICRh
dHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJvcE5h
bWUgPSBkZWNhbWVsaXplKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgIG15
ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0
eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIk
Y2xhc3NOYW1lICp0aGl6IjsKKyAgICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkg
eworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisg
ICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEg
aWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworCisgICAgICAgIGlmIChza2lwUHJv
cFRlbXBvcmFyaWx5KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQ
UFJPUDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGFkZFByb3BJbmNIZHIoJHBy
b3BfdHlwZSk7CisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJvcCwgIldFQktJVF9HRE9NX0FQSSAk
dHlwZVxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3BfZ2V0XyIgLiAiJHByb3BOYW1lICgk
ZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lU
X0dET01fQVBJIHZvaWRcbiRmdW5jdGlvbk5hbWVQcmVmaXgiIC4gIl9wcm9wX3NldF8iIC4gIiRw
cm9wTmFtZSAoJGZ1bmN0aW9uU2lnLCAkdHlwZSIgLiAidmFsdWUpO1xuXG4iKTsKKyAgICB9CisK
KyAgICAjIFByb3BlcnRpZXMKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK30KKworR19C
RUdJTl9ERUNMUworCitlbnVtIHsKKyAgICBCUk9XU0VSX0VWRU5ULAorICAgIExBU1RfU0lHTkFM
Cit9OworCitzdGF0aWMgZ3VpbnQgZXZlbnRfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07
CisKK2VudW0geworICAgIFBST1BfMCwKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxD
b250ZW50KTsKKworICAgIG15IEB0eHRfaW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRf
c2V0X3Byb3BzID0gKCk7CisgICAgbXkgQHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAgIG15ICRw
cml2X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNlX2lmYWNlbmFtZX0sICJn
c2VsZiIsICJzZWxmIik7CisKKyAgICBteSAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CitzdGF0
aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0eV9mbihHT2JqZWN0ICogb2Jq
ZWN0LCBndWludCBwcm9wX2lkLAorCQkJCQkgR1ZhbHVlICogdmFsdWUsCisJCQkJCSBHUGFyYW1T
cGVjICogcHNwZWMpCit7CisJJHtjbGFzc05hbWV9ICpzZWxmID0gR0RPTV8ke2Nsc0NhcHN9KG9i
amVjdCk7CisgICAgJHByaXZfZm4KKwlzd2l0Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2go
QHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRfcHJvcCA9
IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlf
Zm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKwkJCQkJIGNvbnN0IEdWYWx1ZSAq
IHZhbHVlLAorCQkJCQkgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworCSR7Y2xhc3NOYW1lfSAqc2Vs
ZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisJc3dpdGNoIChwcm9w
X2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKwor
ICAgIFNLSVBFTlVNOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1
dGVzfSkgeworICAgICAgICBteSAkcHJvcF9uYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5u
YW1lOworICAgICAgICBteSAkc2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX3Vj
Zmlyc3QoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRnZXRwcm9wX25hbWVfZm4gPSAkY29kZUdl
bmVyYXRvci0+V0tfbGNmaXJzdCgkcHJvcF9uYW1lKTsKKworICAgICAgICBteSAkcHJvcE5hbWUg
PSBkZWNhbWVsaXplKCRwcm9wX25hbWUpOworICAgICAgICBteSAkcHJvcENhcHMgPSB1YygkcHJv
cE5hbWUpOworICAgICAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50
eXBlOworICAgICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBt
eSAke3Byb3BFbnVtfSA9ICJQUk9QXyR7cHJvcENhcHN9IjsKKyAgICAgICAgbXkgJHtwcm9wX2d0
eXBlfSA9IGRlY2FtZWxpemUoJHByb3BfdHlwZSk7CisgICAgICAgIGlmICgkcHJvcF9ndHlwZSBl
cSAiZXZlbnRfdGFyZ2V0IikgeworICAgICAgICAgICAgJHByb3BfZ3R5cGUgPSAiZXZlbnRfdGFy
Z2V0X25vZGUiOworICAgICAgICB9CisgICAgICAgIG15ICR7cHJvcEdUeXBlfSA9IHVjKCRwcm9w
X2d0eXBlKTsKKyAgICAgICAgbXkgJGxjYXNlX2d0eXBlbmFtZSA9ICJnZG9tXyIgLiAkcHJvcF9n
dHlwZTsKKworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAg
ICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgJGlt
cGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkdHlwZSBl
cSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisgICAgICAgIGlmIChza2lwUHJvcFRlbXBvcmFyaWx5
KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgIiAgICAke3Byb3BF
bnVtfSxcbiIpOworCisgICAgICAgIG15ICRndHlwZSA9IEdldFByb3BHVHlwZSgkcHJvcF90eXBl
KTsKKyAgICAgICAgbXkgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEQUJMRSI7CisgICAgICAg
IG15ICR3cml0ZWFibGUgPSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkvOworICAgICAg
ICBteSAkY29uc3QgPSAicmVhZC1vbmx5ICI7CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICRj
dXN0b20pIHsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLW9ubHkgKGR1ZSB0byBjdXN0b20g
ZnVuY3Rpb25zIG5lZWRlZCBpbiBnZG9td2Via2l0KSI7CisgICAgICAgICAgICBuZXh0IFNLSVBF
TlVNOworICAgICAgICB9CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICEkY3VzdG9tKSB7Cisg
ICAgICAgICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURXUklURSI7CisgICAgICAgICAg
ICAkY29uc3QgPSAicmVhZC13cml0ZSAiOworICAgICAgICB9CisKKyAgICAgICAgbXkgJF9ndHlw
ZSA9ICRndHlwZTsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAg
ICAgJF9ndHlwZSA9ICJ1aW50IjsgIyB5dWsuCisgICAgICAgIH0KKyAgICAgICAgbXkgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwlnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
IChnX2tsYXNzLCAke3Byb3BFbnVtfSwgCisJCQlnX3BhcmFtX3NwZWNfJHtfZ3R5cGV9ICgiJHtw
cm9wTmFtZX0iLCAvKiBuYW1lICovCisJCQkJIiR7aW50ZXJmYWNlTmFtZX0uJHtwcm9wTmFtZX0i
LCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworCQkJCSIke2NvbnN0fSAke3R5cGV9ICR7aW50ZXJm
YWNlTmFtZX0uJHtwcm9wTmFtZX0iLCAvKiBsb25nZXIgKi8KK0VPRgorICAgICAgICBwdXNoKEB0
eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9ICIvKiBUT0RPISAkZ3R5cGUgKi9cbiI7CisKKyAgICAgICAgaWYgKCR3cml0ZWFi
bGUpIHsKKworICAgICAgICAgICAgbXkgJG9rID0gMDsKKyAgICAgICAgICAgIG15ICRjb252ZXJ0
X2ZuID0gIiI7CisgICAgICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAg
ICAgICAgICAgJGNvbnZlcnRfZm4gPSAiV2ViQ29yZTo6U3RyaW5nIjsKKyAgICAgICAgICAgICAg
ICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzaWYgKCRndHlwZSBlcSAi
Ym9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9N
V2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdo
YXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAg
ICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRv
dWJsZSIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2lu
ZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQg
aXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAg
ICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9u
ZyIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93
IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQn
cyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxvbmciKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBz
a2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAg
ICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7Cisg
ICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICAg
ICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAg
ICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJj
aGFyIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICAjIFhYWCBUT0RPIC0gc2tpcCBMb2NhdGlvbgorICAgICAgICAgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJMb2NhdGlvbiIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAwOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAoJG9rKSB7CisgICAgICAgICAgICAgICAgcHVzaChA
dHh0X3NldF9wcm9wcywgIiAgICBjYXNlICR7cHJvcEVudW19OlxuICAgIHtcbiIpOworICAgICAg
ICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlv
bkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBnc2VsZi0+c2V0JHtz
ZXRwcm9wX25hbWVfZm59KCR7Y29udmVydF9mbn0oZ192YWx1ZV9nZXRfJGd0eXBlICh2YWx1ZSkp
Iik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiLCBlYyIpIGlmIEB7
JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0
X3NldF9wcm9wcywgIik7XG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJv
cHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisKKyAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICBjYXNlICR7cHJvcEVudW19Olxu
ICAgIHtcbiIpOworCisgICAgICAgIG15ICRleGNlcHRpb24gPSAiIjsKKyAgICAgICAgaWYgKEB7
JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICRleGNlcHRpb24g
PSAiZWMiOworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRj
b252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRwb3N0X2NvbnZlcnRfZm4gPSAiIjsKKyAgICAg
ICAgbXkgJGRvbmUgPSAwOworICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAg
ICAgICAgICAkY29udmVydF9mbiA9ICJfR19HRVRfVVRGOCgiOworICAgICAgICAgICAgJHBvc3Rf
Y29udmVydF9mbiA9ICIpIjsKKyAgICAgICAgfQorICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJv
YmplY3QiKSB7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAiV1RGOjpnZXRQdHIoJHtsY2Fz
ZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKCI7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSBH
ZXRQcml2Rm4oJGludGVyZmFjZU5hbWUsICR7bGNhc2VfZ3R5cGVuYW1lfSwgImdzZWxmIiwgInNl
bGYiKTsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9ICIke2xjYXNlX2d0eXBlbmFtZX1fZ2V0
X3ByaXZhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+KCI7CisgICAgICAgICAg
ICAjJHBvc3RfY29udmVydF9mbiA9ICIpIjsKKyAgICAgICAgICAgIG15ICRkb21vYmpUeXBlID0g
IkdET00iLiRwcm9wX3R5cGU7CisgICAgICAgICAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7
CisgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PiBwdHIgPSBnc2VsZi0+
JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSk7CisgICAgICAgIGdfdmFsdWVfc2V0X29i
amVjdCAodmFsdWUsIFdlYkNvcmU6OnRvR0RPTShwdHIuZ2V0KCkpKTsKK0VPRgorICAgICAgICAg
ICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisgICAgICAgICAgICAkZG9u
ZSA9IDE7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRkb25lKSB7CisgICAgICAgICAgICBw
dXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF8kX2d0eXBlICh2YWx1ZSwg
JHtjb252ZXJ0X2ZufWdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KSR7cG9z
dF9jb252ZXJ0X2ZufSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRf
cHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworCisgICAgICAgICMgaXMgdGhpcyBf
ZW50aXJlbHlfIG5lY2Vzc2FyeT8/PworICAgICAgICAjIGNhbiBpdCBiZSBkb25lIHdpdGggZ2Vu
ZXJpYyBnX3BhcmFtX3NwZWNfZ3R5cGUKKyAgICAgICAgIyBhbmQgZ2V0dGluZyBhIGZldyB0aGlu
Z3MsIGlnbm9yaW5nIHRoZSBtaW4tbWF4IGZvciBleGFtcGxlPworICAgICAgICBpZiAoJGd0eXBl
IGVxICJpbnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOwor
CQkJCUdfTUlOSU5ULCAgICAgICAgLyogbWluICovCisJCQkJR19NQVhJTlQsIC8qIG1heCAqLwor
CQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBl
IGVxICJib29sZWFuIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9G
IjsKKyAgICAgICAgICAgICAgICBGQUxTRSwgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJv
cCA9IDw8ICJFT0YiOworCQkJCUdfTUlORkxPQVQsICAgICAgICAvKiBtaW4gKi8KKwkJCQlHX01B
WEZMT0FULCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHX01JTkRPVUJMRSwgICAgICAgIC8qIG1pbiAqLwor
CQkJCUdfTUFYRE9VQkxFLCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLwor
RU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWluICovCisJ
CQkJR19NQVhVSU5UNjQsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAqLworCQkJ
CUdfTUFYVUxPTkcsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YK
KyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHX01JTkxPTkcsICAgICAgICAvKiBtaW4gKi8K
KwkJCQlHX01BWExPTkcsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWluICovCisJCQkJ
R19NQVhVSU5ULCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWluICovCisJCQkJR19N
QVhVSU5UMTYsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5z
dGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJR19NSU5JTlQ4LCAgICAgICAgLyogbWluICovCisJ
CQkJR19NQVhJTlQ4LCAvKiBtYXggKi8KKwkJCQkwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAgICR0eHRf
aW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJMCwgICAgICAgIC8qIG1pbiAqLworCQkJCUdf
TUFYVUlOVDgsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAkdHh0X2lu
c3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICov
CitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAgICAgICAg
ICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCUdET01fVFlQRV8ke3Byb3BHVHlw
ZX0sIC8qIGdvYmplY3QgdHlwZSAqLworRU9GCisgICAgICAgIH0KKyAgICAgICAgcHVzaChAdHh0
X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkoR1BhcmFtRmxhZ3MpJHtncGFyYW1mbGFnfSkpOyAgICAg
ICAgICAgICAgICAgICAKKworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAk
dHh0X2luc3RhbGxfcHJvcCk7CisKKworICAgIH0KKworICAgIHB1c2goQGNCb2R5UHJpdiwgIn07
XG5cbiIpOworCisKKyAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CisJZGVmYXVsdDoKKwkJ
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMp
OworCQlicmVhazsKKwl9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dl
dF9wcm9wKTsKKworICAgICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9GIjsKKwlkZWZhdWx0OgorCQlH
X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7
CisJCWJyZWFrOworCX0KK30KK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0eHRfc2V0
X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRfZ2V0X3Byb3BzID0gPDwgIkVPRiI7CisJY2FzZSBQ
Uk9QX0FHRToKKwkJc2VsZi0+YWdlID0gZ192YWx1ZV9nZXRfaW50ICh2YWx1ZSk7CisJCWJyZWFr
OworCisJY2FzZSBQUk9QX0FHRToKKwkJZ192YWx1ZV9zZXRfaW50KHZhbHVlLCBzZWxmLT5hZ2Up
OworCQlicmVhazsKKworICAgICAgICArICAgZ192YWx1ZV9pbml0KCZwYXJhbXNbMF0sIEdfVFlQ
RV9GUk9NX0lOU1RBTkNFKG9iamVjdCkpOworICAgICAgICArICAgZ192YWx1ZV9zZXRfaW5zdGFu
Y2UoJnBhcmFtc1swXSwgKGdwb2ludGVyKW9iamVjdCk7CisKK0VPRgorCisgICAgIyBUT0RPOiB3
b3JrIG91dCBpZiBpdCdzIGFwcHJvcHJpYXRlIHRvIHNwbGl0IHRoaXMgaW50byBtYW55IGRpZmZl
cmVudAorICAgICMgc2lnbmFscyBlLmcuICJjbGljayIgZXRjLgorICAgIG15ICR0eHRfaW5zdGFs
bF9zaWduYWxzID0gIiI7CisKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIp
IHsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3NpZ25hbHMgPSA8PCAiRU9GIjsKKyAgICBldmVudF9z
aWduYWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwKKyAg
ICAgICAgR19UWVBFX0ZST01fQ0xBU1MocmVxdWVzdENsYXNzKSwKKyAgICAgICAgKEdTaWduYWxG
bGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAwLAor
ICAgICAgICBOVUxMLAorICAgICAgICBOVUxMLAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lE
X19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgIEdET01f
VFlQRV9FVkVOVCwgR19UWVBFX0JPT0xFQU4pOworRU9GCisgICAgfQorCisgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6
ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLyoke2NsYXNzTmFtZX0qIHJlcXVlc3QgPSBHRE9N
XyR7Y2xzQ2Fwc30ob2JqZWN0KTsqLworICAgIC8qJHtjbGFzc05hbWV9UHJpdmF0ZSogcHJpdiA9
IHJlcXVlc3QtPnByaXY7Ki8KKyAgICAKKyAgICAvKkdPYmplY3RDbGFzcyAqcGFyZW50X2NsYXNz
ID0gZ190eXBlX2NsYXNzX3BlZWsgKGdfdHlwZV9wZWVrX3BhcmVudCAoJHtwYXJlbnRHT2JqVHlw
ZX0pKTsqLworCisgICAgLyogRnJlZSBhbnkgbWVtb3J5IG9yIGNsb3NlIGFueSBmaWxlcyAqLyAK
KworICAgIC8qcGFyZW50X2NsYXNzLT4gZmluYWxpemUgKG9iamVjdCk7Ki8KKworICAgIEdfT0JK
RUNUX0NMQVNTKCR7bGNhc2VfaWZhY2VuYW1lfV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmpl
Y3QpOworfQorCitAdHh0X3NldF9wcm9wcworCitAdHh0X2dldF9wcm9wcworCitzdGF0aWMgdm9p
ZCAke2xjYXNlX2lmYWNlbmFtZX1fY2xhc3NfaW5pdCgke2NsYXNzTmFtZX1DbGFzcyogcmVxdWVz
dENsYXNzKQoreworCUdPYmplY3RDbGFzcyAqZ19rbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChyZXF1
ZXN0Q2xhc3MpOworICAgIGdfa2xhc3MtPmZpbmFsaXplID0gJHtsY2FzZV9pZmFjZW5hbWV9X2Zp
bmFsaXplOworCWdfa2xhc3MtPnNldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0
X3Byb3BlcnR5X2ZuOworCWdfa2xhc3MtPmdldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1l
fV9fZ2V0X3Byb3BlcnR5X2ZuOworICAgIAorQHR4dF9pbnN0YWxsX3Byb3BzCisKKyR0eHRfaW5z
dGFsbF9zaWduYWxzCisKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xh
c3MsIHNpemVvZigke2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgJHts
Y2FzZV9pZmFjZW5hbWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0KQoreworICAgIC8qJHtj
bGFzc05hbWV9UHJpdmF0ZSogcHJpdiA9IEdET01fJHtjbHNDYXBzfV9HRVRfUFJJVkFURShyZXF1
ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfSAgIAorCitFT0YKKworICAgIHB1
c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsSW5jbHVkZXN7ImludGdk
b20ke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
CisKKyNpZm5kZWYgJHtndWFyZH1fUFJJVl8KKyNkZWZpbmUgJHtndWFyZH1fUFJJVl8KKyNpbmNs
dWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIiR7cGFyZW50SGRyTmFtZX0uaCIKKyNpbmNs
dWRlICJHRE9NT2JqZWN0LmgiCisvKiNpbmNsdWRlICJwcml2JHtwYXJlbnRIZHJOYW1lfS5oIiov
CisvKkdfQkVHSU5fREVDTFMqLworLypjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Oyov
CisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgorRU9GCisKKyAgICBwdXNoKEBoQm9keVBy
aXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHRE9NJHtpbnRlcmZhY2VOYW1lfSA6IHB1YmxpYyAk
e3BhcmVudEdJZmFjZU5hbWV9IHsKKworcHVibGljOgorICAgIEdET00ke2ludGVyZmFjZU5hbWV9
KFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGltcGwpIDogJHBhcmVudEdJZmFjZU5hbWV9KGlt
cGwpCisgICAgeyBpbXBsLT5yZWYoKTsgfQorICAgIH5HRE9NJHtpbnRlcmZhY2VOYW1lfSgpIHsg
bV9pbXBsLT5kZXJlZigpOyB9CisKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBpbXBs
KCkgY29uc3QgeyByZXR1cm4gbV9pbXBsOyB9CisKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjok
e2ludGVyZmFjZU5hbWV9ICptX2ltcGw7Cit9OworCitFT0YKKworICAgICAgICAjcHVzaChAaEJv
ZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Cisv
L30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSAk
e2NsYXNzTmFtZX07CisKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFj
ZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCk7CisKKy8qR19FTkRfREVD
TFMqLworCisjZW5kaWYgLyogJHtndWFyZH1fUFJJVl8gKi8KKworRU9GCisKKyAgICAjcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KChXZWJDb3JlOjpO
b2RlKikocmVzKSk7CisgICAgICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKwor
ICAgICAgICAjaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAg
ICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICMg
ICAgJGltcGxJbmNsdWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAg
ICAgICAgI30gZWxzZSB7CisgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3skaW5jbHVkZUhkcn0g
PSAxOworICAgICAgICAjfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9
LmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7InByaXZnZG9tRE9NT2JqZWN0LmgifSA9
IDE7CisKKyAgICAgICAgTE9PUDogZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5m
dW5jdGlvbnN9KSB7CisgICAgICAgICAgICAjbXkgJGZ1bmN0aW9uTmFtZSA9IGRlY2FtZWxpemUo
JGNsYXNzTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1l
KTsKKyAgICAgICAgICAgICAgICBteSAkZm5fc2lnX25hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+bmFtZTsKKyAgICAgICAgICAgICAgICBteSAkZm5fc2lnX3R5cGUgPSAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+dHlwZTsKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gImdkb21f
IiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZm5fc2ln
X25hbWUpOworICAgICAgICAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3Np
Z190eXBlKTsKKyAgICAgICAgICAgICAgICBteSAkcmV0X2lzX2Nsc190eXBlID0gSXNHRE9NQ2xh
c3NUeXBlKCRmbl9zaWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TaWcg
PSAiJGNsYXNzTmFtZSAqdGhpeiI7CisKKyAgICAgICAgICAgICAgICBteSAkY2FsbF9pbXBsX3Bh
cmFtcyA9ICIiOworICAgICAgICAgICAgICAgIG15ICRnZG9tX2ZuX3ByZWZpeCA9ICJnZG9tXyIg
LiBkZWNhbWVsaXplKCRmbl9zaWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0
aW9uTmFtZSBlcSAiZ2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X3Byb3BlcnR5Iikgewor
ICAgICAgICAgICAgICAgICAgICAjIHJlc2VydmVkIG5hbWUgY2xhc2ggaW4gZ2xpYiEKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlv
bl9zZXRfY3NzX3Byb3BlcnR5IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
IyBYWFggc2tpcCBDb21wYXJlSG93IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAg
aWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fcmFuZ2VfY29tcGFyZV9ib3VuZGFyeV9wb2ludHMi
KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tp
cHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29t
cGFyZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAg
ICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAj
IFhYWCBza2lwIFNWR0RvY3VtZW50IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAg
aWYgKCRyZXR1cm5UeXBlIGVxICJHZG9tU1ZHRG9jdW1lbnQgKiIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBm
dW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24g
JHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBzb21lIGN1
c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgIG15ICRpc19jdXN0b21fZm4g
PSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9Owor
ICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlv
bl9pdGVtIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0
bWxfY29sbGVjdGlvbl9uYW1lZF9pdGVtIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25OYW1lIGVxICJnZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZSIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgJGlzX2N1c3RvbV9mbiA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3JfbmV4dF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIgJiYgCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQi
ICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaW5z
ZXJ0X2JlZm9yZSIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2Rv
bV9ub2RlX3JlcGxhY2VfY2hpbGQiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5h
bWUgbmUgImdkb21fdHJlZV93YWxrZXJfcGFyZW50X25vZGUiICYmIAorICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2ZpcnN0X2NoaWxkIiAmJiAK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9s
YXN0X2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2Rv
bV90cmVlX3dhbGtlcl9wcmV2aW91c19zaWJsaW5nIiAmJiAKKyAgICAgICAgICAgICAgICAgICAg
JGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9uZXh0X3NpYmxpbmciICYmIAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZp
b3VzX25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9t
X3RyZWVfd2Fsa2VyX25leHRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9wcmV2aW91c19ub2RlIikgeworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVy
c30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlw
ZTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jQm9keSgkcGFyYW1JRExUeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAg
ICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAg
ICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsICRwYXJhbVR5cGUkcGFyYW1OYW1l
IjsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01D
bGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1f
aXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBl
IG5lICJET01PYmplY3QiICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtSURM
VHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siaW50Z2RvbSR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7InByaXZnZG9tJHtwYXJhbUlETFR5cGV9Lmgi
fSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJh
bUlETFR5cGV9LmgifSA9IDE7ICMgdGhpcyBpc24ndCBzdHJpY3RseSBuZWNlc3NhcnkgYnV0IG9u
ZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQgZmlsZXMgbmVlZGVkIGl0IHNvLi4uLgorICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUgfHwgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmlu
ZyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1OYW1lID0gIl9nXyIgLiAkcGFy
YW1OYW1lOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgk
Y2FsbF9pbXBsX3BhcmFtcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9w
YXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3Bh
cmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGFkZEluY0hkcigkZm5fc2lnX3R5cGUpOworICAgICAg
ICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAk
aW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9zaWdfdHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworCisgICAg
ICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRv
ci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkV2
ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJpbnRnZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJGltcGxJbmNsdWRlc3sicHJpdmdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAx
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tJHtm
bl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtmbl9zaWdfdHlwZX0uaCJ9
ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAgY3VzdG9tIGZ1
bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgIyBidXQgc2tpcCBmcm9tIGhlcmUgdG8g
YWxsb3cgc29tZSBoZWFkZXJzIHRvIGJlIGNyZWF0ZWQKKyAgICAgICAgICAgICAgICAjIGZvciBh
IHN1Y2Nlc3NmdWwgY29tcGlsZS4KKyAgICAgICAgICAgICAgICBpZiAoJGlzX2N1c3RvbV9mbiAm
JgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVtb3Zl
X2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9u
b2RlX2luc2VydF9iZWZvcmUiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
bmUgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIikgeworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0
aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4v
KiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIG15ICRfcmV0dXJuVHlwZSA9ICRyZXR1cm5UeXBlOworICAgICAgICAgICAgICAg
IG15ICRkb21vYmpUeXBlID0gIkdET00iLiRmbl9zaWdfdHlwZTsKKyAgICAgICAgICAgICAgICBp
ZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgZXEgJ2dkb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfY29udGV4dCcpIHsK
KyAgICAgICAgICAgICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgJF9y
ZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0IConOworICAgICAgICAgICAg
ICAgICAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dCc7CisgICAg
ICAgICAgICAgICAgICAgICRnZG9tX2ZuX3ByZWZpeCA9ICdnZG9tX2NhbnZhc19yZW5kZXJpbmdf
Y29udGV4dCc7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0b28gaW52
b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVzdCBjb252
ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91dCBob3cp
CisgICAgICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3JlYXRlIGEg
R0RPTURvbU9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgJ0RPTU9iamVjdCcgJiYKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAnZ2RvbV9kb2N1bWVudF9nZXRfY3NzX2Nh
bnZhc19jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBIQUNLIQorICAgICAg
ICAgICAgICAgICAgICAkX3JldHVyblR5cGUgPSAnR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RCAqJzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRCc7CisgICAgICAgICAgICAgICAgICAgICRnZG9tX2ZuX3ByZWZpeCA9ICdn
ZG9tX2NhbnZhc19yZW5kZXJpbmdfY29udGV4dDJkJzsKKyAgICAgICAgICAgICAgICAgICAgbmV4
dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93LiAgc2tpcCBpdC4KKyAgICAgICAg
ICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01PYmplY3QgKFRPRE86IGJyb3dzZSBK
UyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAgICAgICAgICAgICAgICAgICAgIyBiZXR0ZXI6IHdv
cmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIldF
QktJVF9HRE9NX0FQSSAkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7
XG5cbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIkX3JldHVyblR5cGVcbiRm
dW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZylcbntcbiIpOworCisgICAgICAgICAgICAgICAgaWYg
KCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RP
OiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAwKTtcbiIpOworICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAq
IGl0ZW0gPSAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKHRoaXopKTtcbiIpOworICAg
ICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoaXRlbSwg
MCk7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsIChpdGVtKTtcbiIpOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5w
YXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1l
bGl6ZSgkcGFyYW0tPm5hbWUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBl
ID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlSXNQcmlt
aXRpdmUgPSAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRwYXJhbUlETFR5cGUpOwor
ICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5
cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGFkZEluY0hkcigkcGFyYW1J
RExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgewor
ICAgICAgICAgICAgICAgICAgICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke3BhcmFtSURMVHlw
ZX0ifSA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYg
KCEkcGFyYW1UeXBlSXNQcmltaXRpdmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
cmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhY
WCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKCRwYXJhbU5h
bWUsIDApO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKCRw
YXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAkcmV0dXJuUGFy
YW1OYW1lID0gIiI7CisgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0
aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBl
ID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0
R1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUg
PSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBh
cmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6U3RyaW5nIF9nXyR7
cGFyYW1OYW1lfSA9IFdlYkNvcmU6OlN0cmluZygkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9nZG9tX2ZuID0gImdkb21fIiAu
IGRlY2FtZWxpemUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAjcHVz
aChAY0JvZHksICIgICAgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cGFyYW1JRExUeXBlfT4g
KiBfZ18ke3BhcmFtTmFtZX0gPSBXVEY6OlJlZlB0cjwke3BhcmFtX2dkb21fZm59X2dldF9wcml2
YXRlKCRwYXJhbU5hbWUpPjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJh
bUlETFR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7InByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXZlbnRUYXJn
ZXROb2RlICogX2dfJHtwYXJhbU5hbWV9ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJn
ZXROb2RlKj4oZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9ICog
X2dfJHtwYXJhbU5hbWV9ID0gKCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFt
ZSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
IChfZ18ke3BhcmFtTmFtZX0sIDApO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0
dXJuX2lmX2ZhaWwgKF9nXyR7cGFyYW1OYW1lfSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICRyZXR1
cm5QYXJhbU5hbWUgPSAiX2dfIi4kcGFyYW1OYW1lIGlmICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlJldHVybiJ9OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG15
ICRhc3NpZ24gPSAiIjsKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduX3ByZSA9ICIiOworICAg
ICAgICAgICAgICAgIG15ICRhc3NpZ25fcG9zdCA9ICIiOworICAgICAgICAgICAgICAgICRnX3Jl
cyA9IDA7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlz
X2N1c3RvbV9mbikgeworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBl
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduID0gIlBhc3NSZWZQdHI8V2ViQ29y
ZTo6JHtmbl9zaWdfdHlwZX0+IGdfcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRh
c3NpZ25fcHJlID0gIldURjo6Z2V0UHRyKCI7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNz
aWduX3Bvc3QgPSAiKSI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAkYXNzaWduID0gIiR7X3JldHVyblR5cGV9IHJlcyA9ICI7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbXkgJGV4
Y2VwdGlvbnMgPSAiIjsKKyAgICAgICAgICAgICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4
Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgk
e2NhbGxfaW1wbF9wYXJhbXN9IG5lICIiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhj
ZXB0aW9ucyA9ICIsIGVjIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICRleGNlcHRpb25zID0gImVjIjsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgbmVlZCB0aGlzIGZvciBp
bmNsdWRpbmcgLi4uIF9zb21ldGhpbmdfIC0gZm9yIHRoZSBjbGFzcyBhcmdzCisgICAgICAgICAg
ICAgICAgI2lmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1w
bEluY2x1ZGVzeyJnZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAj
fQorICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfYXBwZW5k
X2NoaWxkIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25v
ZGVfaW5zZXJ0X2JlZm9yZSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBl
cSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgZXEgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAg
ICAgIG15ICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCA9IDw8ICJFT0YiOworICAgIGJv
b2wgb2sgPSBpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRp
b25zfSk7CisgICAgaWYgKG9rKQorICAgIHsKKyAgICAgICAgJHtfcmV0dXJuVHlwZX0gcmVzID0g
c3RhdGljX2Nhc3Q8JHtfcmV0dXJuVHlwZX0+KFdlYkNvcmU6OnRvR0RPTSgkcmV0dXJuUGFyYW1O
YW1lKSk7IAorICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK0VP
RgorICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgJGN1c3RvbV9nZG9tX25vZGVfYXBw
ZW5kX2NoaWxkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRP
TU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAnZ2RvbV9k
b2N1bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICAvKiBYWFggVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0IChpdGVtLT4k
e2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpOyovXG4iICk7
CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdf
dHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICAke2Fzc2lnbn1fR19HRVRfVVRGOChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1w
bF9wYXJhbXN9JHtleGNlcHRpb25zfSkpO1xuIiApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICgkZ19yZXMpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICRnX3JlcyA9ICIke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0o
JHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSkiIDsKKyAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgICR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2Nh
bGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KTtcbiIgKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAo
JHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2Fz
dDwke19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKGdfcmVzLmdldCgpKSk7IFxuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RP
OiByZXR1cm4gY2FudmFzIG9iamVjdCAqL1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gcmVz
O1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICJcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICJ9XG5cbiIpOworICAgICAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogZXh0ZXJu
IFwiQ1wiICovXG5cbiIpOworICAgIHB1c2goQGNCb2R5UHJpdiwgIn0gLyogZXh0ZXJuIFwiQ1wi
ICovXG5cbiIpOworCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIkdfRU5EX0RFQ0xTXG5cbiIp
OworICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIjZW5kaWYgLyogJHtndWFyZH1fSU5UXyovXG4i
KTsKKworICAgIHB1c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJv
ZHksICIjZW5kaWYgLyogJGd1YXJkICovXG4iKTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdf
RU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2goQGhCb2R5UHJvcCwgIiNlbmRpZiAvKiAke2d1YXJk
fV9QUk9QXyovXG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIKK3N1YiBXcml0ZURhdGEKK3sK
KyAgICBteSAoJG9iamVjdCwgJG5hbWUpID0gQF87CisKKworICAgICMgV3JpdGUgSW50ZXJuYWwg
aGVhZGVyCisgICAgbXkgJGhkckZOYW1lSW50ZXJuYWwgPSAiJG91dHB1dERpci9pbnQiIC4gJG5h
bWUgLiAiLmgiOworICAgIG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFsIikgb3Ig
ZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAgcHJpbnQg
SU5USEVBREVSIEBoUHJlZml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAgIHByaW50
IElOVEhFQURFUiBAaEJvZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOworCisgICAg
IyBXcml0ZSBQcml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1dERp
ci9wcml2IiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1l
UHJpdiIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworCisgICAg
cHJpbnQgUFJJVkhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7Cisg
ICAgcHJpbnQgUFJJVkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIpOwor
CisgICAgIyBXcml0ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgbXkgJGltcGxGaWxlTmFt
ZVByaXYgPSAiJG91dHB1dERpci9wcml2IiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oUFJJ
VklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
aW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICBw
cmludCBQUklWSU1QTCAiXG4iOworICAgIHByaW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAg
ICBjbG9zZShQUklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9p
ZHMgcmVjdXJzaXZlIG5pZ2h0bWFyZSkKKyAgICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXRE
aXIvIiAuICRuYW1lIC4gInByb3BzLmgiOworICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJv
cEZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAg
ICAkaGRyUHJvcEluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJP
UEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5j
bHVkZXMgLyBkZWZpbmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRp
ZXMuXG5wZXJoYXBzIC0gYmV0dGVyIC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUg
aW4gaGVyZSEqL1xuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAg
cHJpbnQgUFJPUEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPlxuIjsKKyAg
ICBwcmludCBQUk9QSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMo
JWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiXG4iIGlmIGtleXMoJWhk
clByb3BJbmNsdWRlcyk7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiXG4iOworICAgIHByaW50IFBS
T1BIRUFERVIgQGhCb2R5UHJvcDsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdyaXRl
IHB1YmxpYyBoZWFkZXIuCisgICAgbXkgJGhkckZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1l
IC4gIi5oIjsKKyAgICBvcGVuKEhFQURFUiwgIj4kaGRyRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0
IG9wZW4gZmlsZSAkaGRyRk5hbWUiOworCisgICAgJGhkckluY2x1ZGVzeyJnbGliLW9iamVjdC5o
In0gPSAxOworCisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4OworICAgIHByaW50IEhFQURFUiBA
aFByZWZpeEd1YXJkOworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC9nZG9tZGVm
aW5lcy5oPlxuIjsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9
IHNvcnQga2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMo
JWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIjsKKyAgICBwcmludCBIRUFERVIg
QGhCb2R5UHJlOworICAgIHByaW50IEhFQURFUiBtYXAgeyAidHlwZWRlZiBzdHJ1Y3QgXyRfICRf
O1xuIiB9IHNvcnQga2V5cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBp
ZiBrZXlzKCVpbXBsVHlwZWRlZnMpOworICAgIHByaW50IEhFQURFUiBAaEJvZHk7CisKKyAgICBj
bG9zZShIRUFERVIpOworCisgICAgIyBXcml0ZSB0aGUgaW1wbGVtZW50YXRpb24gc291cmNlcwor
ICAgIG15ICRpbXBsRmlsZU5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmNwcCI7Cisg
ICAgb3BlbihJTVBMLCAiPiRpbXBsRmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmls
ZSAkaW1wbEZpbGVOYW1lIjsKKworICAgIHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQg
SU1QTCAiI2luY2x1ZGUgXCJjb25maWcuaFwiXG5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJDU3RyaW5n
LmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcIlBsYXRmb3JtU3RyaW5nLmhcIlxu
IjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcIkF0b21pY1N0cmluZy5oXCJcbiI7CisgICAg
cHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJ1c3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIj
aW5jbHVkZSBcIktVUkwuaFwiXG4iOworICAgIHByaW50IElNUEwgbWFwIHsgIiNpbmNsdWRlIFwi
JF9cIlxuIiB9IHNvcnQga2V5cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMICJcbiIg
aWYga2V5cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMIEBjQm9keTsKKworICAgIGNs
b3NlKElNUEwpOworCisgICAgJWltcGxJbmNsdWRlcyA9ICgpOworICAgICVpbXBsVHlwZWRlZnMg
PSAoKTsKKyAgICAlaGRySW5jbHVkZXMgPSAoKTsKKyAgICBAaFByZWZpeCA9ICgpOworICAgIEBo
Qm9keSA9ICgpOworICAgIEBoQm9keVByaXYgPSAoKTsKKyAgICBAaEJvZHlJbnRlcm5hbCA9ICgp
OworICAgIEBoQm9keVByb3AgPSAoKTsKKyAgICBAaEJvZHlQcm9wUHJlID0gKCk7CisKKyAgICBA
Y1ByZWZpeCA9ICgpOworICAgIEBjQm9keSA9ICgpOworICAgIEBjQm9keVByaXYgPSAoKTsKK30K
KworMTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkocmV2aXNpb24gMzU3NTgp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw3ICsyNyw3IEBACiAgICAgXSBIVE1MT3B0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRlZmF1bHRT
ZWxlY3RlZDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ICAgICAgICAgICB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAjZWxzZQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCShyZXZp
c2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBzZWFyY2g7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4
dDsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgW0Rv
bnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
QXBwbGV0RWxlbWVudC5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9odG1sL0hUTUxB
cHBsZXRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTQgKzM1LDE0IEBACiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBjb2RlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgY29kZUJhc2U7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBoZWlnaHQ7Ci0jaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVm
aW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaHNwYWNlOwogI2Vsc2UKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyBoc3BhY2U7CiAjZW5kaWYK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIG5hbWU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyBvYmplY3Q7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFH
RV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgdnNwYWNlOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyB2c3BhY2U7CkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTEVtYmVkRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAgICAgICBJbXBs
ZW1lbnRhdGlvblVVSUQ9OTNlMDQwN2EtODM4MC00ZmYwLTk3OGQtZjc3M2YyZGVlNmEzCiAgICAg
XSBIVE1MRW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWxpZ247Ci0jaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0OwogI2Vsc2UKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyBoZWlnaHQ7
CkBAIC0zOCw3ICszOCw3IEBACiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc3JjOwogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB3aWR0aDsKICNl
bHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcg
d2lkdGg7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDcgKzE1Niw3IEBACiAKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRp
dGxlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyOwotI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZG9tYWluOwogI2Vs
c2UKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21haW47CkBAIC0xODIs
NyArMTgyLDcgQEAKIAogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5TmFtZShpbiBET01T
dHJpbmcgZWxlbWVudE5hbWUpOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQor
I2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBMb2NhdGlvbiBsb2Nh
dGlvbjsKICNlbmRpZgogCkBAIC0xOTUsNyArMTk1LDcgQEAKICAgICAgICAgRWxlbWVudCAgICAg
ICAgICAgIGVsZW1lbnRGcm9tUG9pbnQoaW4gbG9uZyB4LCBpbiBsb25nIHkpOwogCiAgICAgICAg
IC8vIE1vemlsbGEgZXh0ZW5zaW9ucwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkK
KyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpKQogICAgICAgICBET01TZWxlY3Rpb24gICAgICAgZ2V0U2VsZWN0aW9uKCk7CiAjZW5k
aWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxd
IERPTVN0cmluZyBjaGFyYWN0ZXJTZXQ7CkBAIC0yMzYsNyArMjM2LDcgQEAKICAgICAgICAgTm9k
ZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBET01TdHJpbmcgdGFnbmFtZSk7CiAKICAg
ICAgICAgLy8gTm9kZVNlbGVjdG9yIC0gU2VsZWN0b3IgQVBJCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmlu
ZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgIFtDdXN0b21dIEVsZW1lbnQgcXVlcnlTZWxl
Y3RvcihpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNl
bGVjdG9ycywgaW4gTlNSZXNvbHZlciByZXNvbHZlcikKICAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICBbQ3VzdG9tXSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGlu
IFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3Jz
LCBpbiBOU1Jlc29sdmVyIHJlc29sdmVyKQpJbmRleDogV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRp
b24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAkocmV2
aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkK
ICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgogCkluZGV4
OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vRE9NQ29yZUV4Y2VwdGlvbi5oCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0RP
TUNvcmVFeGNlcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICovCiAK
ICNpZm5kZWYgRE9NQ29yZUV4Y2VwdGlvbl9oCi0jZGVmaW5lIERPTUNvZGVFeGNlcHRpb25faAor
I2RlZmluZSBET01Db3JlRXhjZXB0aW9uX2gKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2UuaCIK
IApJbmRleDogV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3Jl
L2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4g
YSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5n
IHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiAz
NTc1OCkKKysrIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC01OSw3ICs1OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVh
biBhbHRHcmFwaEtleSk7CiAKICAgICAgICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKLSNpZiAhZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmICgoIWRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkpICYmICghZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkpCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOwogICAgICAgICAKSW5kZXg6IFdlYkNv
cmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RP
TUNvcmVFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0RPTUNv
cmVFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxs
YSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmlu
ZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNTc1OCkK
KysrIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzcs
NyArMzcsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBu
YW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdl
OwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBP
dmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVt
XSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4g
YSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5n
IHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAzNTc1OCkK
KysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyAr
MTU1LDcgQEAKICAgICAgICAgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0eSwgQ3VzdG9tXSB2b2lk
IHBvc3RNZXNzYWdlKGluIERPTVN0cmluZyBtZXNzYWdlLCBpbiBET01TdHJpbmcgdGFyZ2V0T3Jp
Z2luKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIEdsb2JhbCBjb25zdHJ1Y3RvcnMK
ICAgICAgICAgYXR0cmlidXRlIFN0eWxlU2hlZXRDb25zdHJ1Y3RvciBTdHlsZVNoZWV0OwogICAg
ICAgICBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldENvbnN0cnVjdG9yIENTU1N0eWxlU2hlZXQ7Cklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL3BhZ2Uv
RE9NU2VsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQAogICAgICAg
ICB2b2lkIHJlbW92ZUFsbFJhbmdlcygpOwogICAgICAgICB2b2lkIGFkZFJhbmdlKGluIFJhbmdl
IHJhbmdlKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAg
ICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgogICAgIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23093</attachid>
            <date>2008-08-31 17:05:32 -0700</date>
            <delta_ts>2008-09-01 03:41:12 -0700</delta_ts>
            <desc>big tidyup, no manual compile intervention required</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>259520</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMjIwLDYgKzIyMSw3IEBACiAKICMgV2ViS2l0CiB3ZWJraXRn
dGtfaF9hcGkgOj0KK2dkb21ndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9CiB3ZWJr
aXRndGtfY3BwZmxhZ3MgOj0KIHdlYmtpdGd0a19idWlsdF9zb3VyY2VzIDo9CkBAIC0yMzIsOCAr
MjM0LDEzIEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0
LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkkKHdlYmtpdGd0a19o
X2FwaSkgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCisJJChnZG9tZ3Rr
X2hfYXBpKSBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmggXAorCVdlYktp
dC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCBcCisJV2ViS2l0L2d0ay93ZWJraXQvZ2RvbS5o
IAogCisjV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAorCiBsaWJ3ZWJraXRfMV8wX2xh
X1NPVVJDRVMgPSBcCiAJJCh3ZWJraXRndGtfc291cmNlcykKIApAQCAtMzA0LDYgKzMxMSwzMzYg
QEAKIHdlYmNvcmVfbGliYWRkICs9IC1sZ3N0aW50ZXJmYWNlcy0wLjEwIC1sZ3N0dmlkZW8tMC4x
MAogZW5kaWYKIAorV2ViS2l0L2d0ay93ZWJraXQvZ2RvbURvY3VtZW50Lmg6IERlcml2ZWRTb3Vy
Y2VzL2dkb21Eb2N1bWVudC5oCisJY3AgRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50LmggV2Vi
S2l0L2d0ay93ZWJraXQvZ2RvbURvY3VtZW50LmgKKworV2ViS2l0L2d0ay93ZWJraXQvZ2RvbURP
TU9iamVjdC5oOiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbURPTU9iamVjdC5oCisJY3AgV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL2dkb21ET01PYmplY3QuaCBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9t
RE9NT2JqZWN0LmgKKworV2ViS2l0L2d0ay93ZWJraXQvZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oOiBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisJY3AgV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdldE5vZGUuaCBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9t
RXZlbnRUYXJnZXROb2RlLmgKKworCitnZG9tZ3RrX2hfYXBpICs9IFwKKwlXZWJLaXQvZ3RrL3dl
YmtpdC9nZG9tRG9jdW1lbnQuaFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tRXZlbnRUYXJnZXRO
b2RlLmhcCisJV2ViS2l0L2d0ay93ZWJraXQvZ2RvbURPTU9iamVjdC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21BdHRyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUF0dHJwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21CYXJJbmZvLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUJhckluZm9wcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNHcmFkaWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21DYW52YXNHcmFkaWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZh
c1BhdHRlcm4uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2FudmFzUGF0dGVybnByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1BpeGVsQXJyYXkuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ2FudmFzUGl4ZWxBcnJheXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21DREFUQVNlY3Rpb24uaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ0RBVEFTZWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ2hhcmFjdGVyRGF0YS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21DaGFyYWN0ZXJEYXRhcHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2xpcGJvYXJkLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUNsaXBib2FyZHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvbW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ29tbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNv
bnNvbGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ29uc29sZXByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUNvdW50ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ291bnRlcnByb3BzLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUNTU0NoYXJzZXRSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTRm9udEZh
Y2VSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0ZvbnRGYWNlUnVsZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0ltcG9ydFJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Q1NTSW1wb3J0UnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU01lZGlhUnVsZS5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NNZWRpYVJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21DU1NQYWdlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQYWdlUnVsZXBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNTU1ByaW1pdGl2ZVZhbHVlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ1NTUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNT
U1J1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1N0eWxlRGVjbGFyYXRpb25wcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5
bGVSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5bGVTaGVldC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVNoZWV0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ1NTVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFsdWVMaXN0LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUNTU1ZhbHVlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNTU1ZhbHVlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzRGVjbGFy
YXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25wcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNSdWxlLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUNTU1ZhcmlhYmxlc1J1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21E
YXRhYmFzZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21EYXRhYmFzZXByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbURvY3VtZW50RnJhZ21lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9j
dW1lbnRGcmFnbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRUeXBlLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbURvY3VtZW50VHlwZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTUFwcGxpY2F0
aW9uQ2FjaGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NQXBwbGljYXRpb25DYWNoZXByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTUNvcmVFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tRE9NQ29yZUV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURP
TUltcGxlbWVudGF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTUltcGxlbWVudGF0aW9u
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NUGFyc2VyLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbURPTVBhcnNlcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVNlbGVjdGlv
bi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01TZWxlY3Rpb25wcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb21ET01XaW5kb3cuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NV2luZG93cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b21FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUVudGl0eXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUVudGl0eVJl
ZmVyZW5jZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHlSZWZlcmVuY2Vwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb21FdmVudEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b21FdmVudEV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUV2ZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmls
ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21GaWxlTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b21GaWxlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUZpbGVwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IaXN0b3J5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhpc3Rvcnlw
cm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQW5jaG9yRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21IVE1MQW5jaG9yRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxBcHBsZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBcHBsZXRF
bGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEFyZWFFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBcmVhRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxCYXNlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUZvbnRFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRm9udEVsZW1lbnRwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TEJvZHlFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCb2R5RWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCUkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTEJSRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0
b25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENhbnZhc0VsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTENhbnZhc0VsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MQ29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQ29sbGVjdGlvbnByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTERpdkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpdkVsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRExpc3RFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxETGlzdEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MRG9jdW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERvY3VtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRW1iZWRF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxFbWJlZEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRmllbGRTZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxGaWVsZFNldEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MRm9udEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZvbnRFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZvcm1FbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxGb3JtRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEZyYW1lRWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTEZyYW1lU2V0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxIZWFkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZEVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEhlYWRpbmdFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTEhSRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSFJF
bGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEh0bWxFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIdG1sRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJRnJh
bWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEltYWdlRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSW1hZ2VFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTElucHV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
SW5wdXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJc0luZGV4RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMYWJlbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTExhYmVsRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdl
bmRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExJRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MTElFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExpbmtF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMaW5rRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXBFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxNYXBFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1hcnF1ZWVF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXJxdWVlRWxlbWVudHByb3BzLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZW51RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MTWVudUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWV0
YUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1ldGFFbGVtZW50cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTE1vZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT2JqZWN0
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MT2JqZWN0RWxlbWVudHByb3BzLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPTGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE9MaXN0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxP
cHRHcm91cEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdEdyb3VwRWxlbWVu
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxPcHRpb25FbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxPcHRpb25FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxP
cHRpb25zQ29sbGVjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFBhcmFtRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MUGFyYW1FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTFByZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFByZUVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUXVvdGVFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxRdW90ZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MU2NyaXB0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2NyaXB0RWxlbWVu
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTZWxlY3RFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxTZWxlY3RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTFN0eWxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU3R5bGVF
bGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MVGFibGVDZWxsRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxl
Q29sRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTFRhYmxlUm93RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRleHRBcmVhRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGV4dEFyZWFFbGVtZW50cHJvcHMuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTFRpdGxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MVGl0bGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFVMaXN0RWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVUxpc3RFbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSW1hZ2VEYXRhLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUltYWdl
RGF0YXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSmF2YVNjcmlwdENhbGxGcmFtZXByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUtleWJvYXJkRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tS2V5Ym9h
cmRFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUxvY2F0aW9uLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUxvY2F0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVkaWFM
aXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhTGlzdHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbU1lc3NhZ2VFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21NZXNzYWdlRXZl
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21NaW1lVHlwZUFycmF5LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbU1pbWVUeXBlQXJyYXlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21N
aW1lVHlwZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21NaW1lVHlwZXByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbU1vdXNlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTW91c2VFdmVu
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU11dGF0aW9uRXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tTXV0YXRpb25FdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5h
bWVkTm9kZU1hcC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYW1lZE5vZGVNYXBwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb21OYXZpZ2F0b3IuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTmF2
aWdhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUZpbHRlci5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Ob2RlRmlsdGVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9k
ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlSXRlcmF0b3IuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTm9kZUl0ZXJhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUxpc3Qu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUxpc3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21Ob2RlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm90YXRpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tTm90YXRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21PdmVy
Zmxvd0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU92ZXJmbG93RXZlbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb21QbHVnaW5BcnJheS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21Q
bHVnaW5BcnJheXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVBsdWdpbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21QbHVnaW5wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJvY2Vzc2luZ0luc3RydWN0
aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJvZ3Jlc3NFdmVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Qcm9ncmVzc0V2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
UmFuZ2VFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUmFuZ2VFeGNlcHRpb25wcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21SYW5nZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21S
YW5nZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJlY3QuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tUmVjdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNjcmVlbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TY3JlZW5wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxFcnJv
ci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxFcnJvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNRTFJlc3VsdFNldC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxSZXN1bHRTZXRw
cm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxSZXN1bHRTZXRSb3dMaXN0LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNRTFJlc3VsdFNldFJvd0xpc3Rwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TUUxUcmFuc2FjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxUcmFuc2Fj
dGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0b3JhZ2VFdmVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TdG9yYWdlRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
dG9yYWdlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0b3JhZ2Vwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TdHlsZVNoZWV0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0eWxlU2hlZXRM
aXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0eWxlU2hlZXRMaXN0cHJvcHMuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU3R5bGVTaGVldHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRl
eHRFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21UZXh0RXZlbnRwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21UZXh0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb21UcmVlV2Fsa2VyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRy
ZWVXYWxrZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21VSUV2ZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVVJRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRB
bmltYXRpb25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRBbmltYXRpb25FdmVu
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlcHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVdlYktpdFRyYW5zaXRpb25FdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVdoZWVsRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2hlZWxFdmVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tWE1MSHR0cFJlcXVlc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21YTUxTZXJpYWxpemVyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTFNlcmlhbGl6
ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV2YWx1YXRvci5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb21YUGF0aEV2YWx1YXRvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVhQYXRoRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXhjZXB0aW9ucHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhFeHByZXNzaW9uLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVhQYXRoRXhwcmVzc2lvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQ
YXRoTlNSZXNvbHZlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aE5TUmVzb2x2ZXJwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aFJlc3VsdC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21YUGF0aFJlc3VsdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhTTFRQcm9jZXNz
b3IuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFNMVFByb2Nlc3NvcnByb3BzLmgKKwogd2Via2l0
Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaCBcCiAJV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKQEAgLTMxNSwxMSArNjUyLDE1IEBACiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vidmlldy5oCiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAor
CiB3ZWJraXRndGtfYnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10
eXBlcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdGVudW10eXBlcy5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXRtYXJz
aGFsLmggXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCisJV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmggXAorCVdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVt
dHlwZXMuaAogCiB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIFwKQEAgLTM0NCw3ICs2ODUsOCBAQAogCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViaGlzdG9yeWl0ZW0uY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5n
cy5jcHAgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisJV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2
ZW50LmNwcCAKIAogd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKIAktREJVSUxESU5HX1dFQktJVCBc
CkBAIC0zNjMsNiArNzA1LDggQEAKIHN0YW1wX2ZpbGVzIDo9IFwKIAlzdGFtcC13ZWJraXRtYXJz
aGFsLmNwcCBcCiAJc3RhbXAtd2Via2l0bWFyc2hhbC5oIFwKKwlzdGFtcC1nZG9tZW51bXR5cGVz
LmNwcCBcCisJc3RhbXAtZ2RvbWVudW10eXBlcy5oIFwKIAlzdGFtcC13ZWJraXRlbnVtdHlwZXMu
Y3BwIFwKIAlzdGFtcC13ZWJraXRlbnVtdHlwZXMuaAogCkBAIC00NDIsNiArNzg2LDU0IEBACiAJ
JiYgY3AgeGdlbi1ndGMgJEAgXAogCSYmIHJtIC1mIHhnZW4tZ3RjCiAKK1dlYktpdC9ndGsvd2Vi
a2l0L2dkb21lbnVtdHlwZXMuaDogc3RhbXAtZ2RvbWVudW10eXBlcy5oCisJQHRydWUKK3N0YW1w
LWdkb21lbnVtdHlwZXMuaDogJChnZG9tZ3RrX2hfYXBpKSBHTlVtYWtlZmlsZQorCShjZCAkKHNy
Y2RpcikgXAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZoZWFkICIjaWZuZGVmIEdET01fRU5V
TV9UWVBFU19IXG4iIFwKKwkJCS0tZmhlYWQgIiNkZWZpbmUgR0RPTV9FTlVNX1RZUEVTX0hcblxu
IiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cblxuIiBcCisJCQktLWZo
ZWFkICJHX0JFR0lOX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFpbCAiR19FTkRfREVDTFNcblxuIiBc
CisJCQktLWZ0YWlsICIjZW5kaWZcbiIgXAorCQkJLS1mcHJvZCAiI2luY2x1ZGUgPEBmaWxlbmFt
ZUA+XG5cbiIgXAorCQkJLS1lcHJvZCAiI2RlZmluZSBHRE9NX1RZUEVfQEVOVU1TSE9SVEAgQGVu
dW1fbmFtZUBfZ2V0X3R5cGUoKVxuXG4iIFwKKwkJCS0tZXByb2QgIldFQktJVF9BUEkgR1R5cGVc
bkBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpO1xuXG4iIFwKKwkJCSQoZ2RvbWd0a19oX2FwaSkg
fCBcCisJCQlzZWQgJ3MsV2ViS2l0L2d0ay8sLCcgfCBcCisJCXNlZCAncyx3ZWJfa2l0LGdkb20s
JyB8IFwKKwkJc2VkICdzLEdET01fVFlQRV9LSVQsR0RPTV9UWVBFLCcgXAorCQkpID4geGdlbi1j
Z3RoIFwKKwkmJiAoY21wIC1zIHhnZW4tY2d0aCBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5
cGVzLmggfHwgY3AgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCkg
XAorCSYmIHJtIC1mIHhnZW4tY2d0aCBcCisJJiYgZWNobyB0aW1lc3RhbXAgPiAkKEBGKQorCisj
ICAgICAgICAgICAgICAtLWZoZWFkICIjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+XG5c
biIgCisKK0Rlcml2ZWRTb3VyY2VzL2dkb21lbnVtdHlwZXMuY3BwOiAkKGdkb21ndGtfaF9hcGkp
IEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYgZ2xpYi1ta2VudW1zIFwKKwkJCS0t
ZmhlYWQgIiNpbmNsdWRlIDxjb25maWcuaD5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+XG4iIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIFwiJCh0b3BfYnVpbGRkaXIp
L1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaFwiXG5cbiIgXAorCQkJLS1maGVhZCAi
ZXh0ZXJuIFwiQ1wiIHtcblxuIiBcCisJCQktLWZwcm9kICJcbi8qIGVudW1lcmF0aW9ucyBmcm9t
IFwiQGZpbGVuYW1lQFwiICovIiBcCisJCQktLXZoZWFkICJzdGF0aWMgY29uc3QgR0BUeXBlQFZh
bHVlIF9AZW51bV9uYW1lQF92YWx1ZXNbXSA9IHsiIFwKKwkJCS0tdnByb2QgIiAgICB7IEBWQUxV
RU5BTUVALCBcIkBWQUxVRU5BTUVAXCIsIFwiQHZhbHVlbmlja0BcIiB9LCIgXAorCQkJLS12dGFp
bCAiICAgIHsgMCwgTlVMTCwgTlVMTCB9XG59O1xuXG4iIFwKKwkJCS0tdnRhaWwgIkdUeXBlIEBl
bnVtX25hbWVAX2dldF90eXBlKHZvaWQpXG57XG4iIFwKKwkJCS0tdnRhaWwgIiAgICBzdGF0aWMg
R1R5cGUgdHlwZSA9IDA7XG5cbiIgXAorCQkJLS12dGFpbCAiICAgIGlmICghdHlwZSlcbiIgXAor
CQkJLS12dGFpbCAiICAgICAgICB0eXBlID0gZ19AdHlwZUBfcmVnaXN0ZXJfc3RhdGljKFwiQEVu
dW1OYW1lQFwiLCBfQGVudW1fbmFtZUBfdmFsdWVzKTtcblxuIiBcCisJCQktLXZ0YWlsICIgICAg
cmV0dXJuIHR5cGU7XG59XG5cbiIgXAorCQkJLS1mdGFpbCAifVxuIiBcCisJCSQoZ2RvbWd0a19o
X2FwaSkgfCBcCisJCXNlZCAncyx3ZWJfa2l0LGdkb20sJyBcCisJCSkgPiB4Z2VuLWNndGMgXAor
CSYmIGNwIHhnZW4tY2d0YyAkQCBcCisJJiYgcm0gLWYgeGdlbi1jZ3RjCisKICMgRU5EIFdFQktJ
VCBHVEsrCiAjCiAjIEZpbGVzIHRoYXQgd2lsbCBiZSBkaXN0cmlidXRlZApJbmRleDogV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw5IEBA
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA4
IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgogICogQ29weXJpZ2h0IChD
KSAyMDA4IENvbGxhYm9yYSBMdGQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRo
IENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqCisgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
ICAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgpAQCAtNDAsNiArNDIsMTIgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgImdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRl
ICJpbnRnZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJwcml2Z2RvbURvY3VtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgogCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogCkBAIC00Nyw2ICs1NSwxMCBAQAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisJZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBkb2MpOworfQorCiBleHRl
cm4gIkMiIHsKIAogZW51bSB7CkBAIC01NSw2ICs2Nyw3IEBACiAgICAgTE9BRF9ET05FLAogICAg
IFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAorICAgIEJST1dTRVJfRVZF
TlQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2MCw2ICsxNzMsMTYgQEAKICAgICAgICAg
ICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBFX1NUUklORywgR19UWVBFX1NU
UklORyk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBn
X3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xB
U1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5f
TEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVM
TCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19P
QkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAgICAg
R0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisKICAgICAvKgogICAgICAqIGltcGxl
bWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTI5Miw2ICszMTUsNDYg
QEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQ6CisgKiBA
ZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJucyBhIEdkb20gd3JhcHBlciBh
cm91bmQgYSBEb2N1bWVudCAKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgR2RvbURvY3VtZW50Cisg
Ki8KK0dkb21Eb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50KFdlYktp
dFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSog
cHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUp
OworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCXJldHVybiBHRE9NX0RPQ1VNRU5UKFdlYkNvcmU6
OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50KCkpKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2Vi
X2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUK
KyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBmcmFtZSdzIGRvY3VtZW50Cisg
KgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBvZiBAZnJhbWUKKyAqLworZ2Jvb2xlYW4gd2Vi
a2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIq
IGV2ZW50X3R5cGUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9G
UkFNRShmcmFtZSksIEZBTFNFKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2
ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Cisg
ICAgQVNTRVJUKGNvcmVGcmFtZSk7CisKKwlyZXR1cm4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5l
cihmcmFtZSwgY29yZUZyYW1lLCBldmVudF90eXBlKTsKK30KKworLyoqCiAgKiB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF9uYW1lOgogICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQogICoKSW5kZXg6
IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktp
dC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9OT0RF
X0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX05PREVfSAorCisjaW5jbHVkZSA8Z2xp
Yi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKworI2luY2x1ZGUgInBy
aXZnZG9tRXZlbnRUYXJnZXROb2RlLmgiCisKKy8qIFRPRE86IHJldHVybiB0aGUgYWN0dWFsIGV2
ZW50IGxpc3RlbmVyIGNyZWF0ZWQsIHdoaWNoIHJlcXVpcmVzCisgKiBhIGdsaWIgd3JhcHBlciBv
YmplY3QgdG8gYmUgY3JlYXRlZC4KKyAqIFRPRE86IHByb3ZpZGUgYSAncmVtb3ZlX2V2ZW50X2xp
c3RlbmVyJyB3aGljaCB0YWtlcyB0aGF0IGdsaWIKKyAqIG9iamVjdCBhcyBhbiBhcmd1bWVudCAq
LworZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJCitnYm9vbGVhbiBhZGRfZXZlbnRfbGlzdGVuZXIo
R2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSk7Cit9CisKKyNlbmRpZiAvKkpTX0RP
TV9FVkVOVF9MSVNURU5FUl9OT0RFX0ggKi8KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJh
bWUuaAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFs
cCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMjYsNiArMjcsNyBAQAogCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KICNp
bmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
Z2RvbURvY3VtZW50Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNjEsNiArNjMsOSBAQAogV0VC
S0lUX0FQSSBXZWJLaXRXZWJGcmFtZSAqCiB3ZWJraXRfd2ViX2ZyYW1lX25ldyAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKIAorV0VCS0lUX0FQSSBHZG9t
RG9jdW1lbnQgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50ICAgICAgIChXZWJL
aXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgog
d2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAg
ICpmcmFtZSk7CiAKQEAgLTkzLDYgKzk4LDEwIEBACiBXRUJLSVRfQVBJIEpTR2xvYmFsQ29udGV4
dFJlZgogd2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQgKFdlYktpdFdlYkZyYW1l
ICAgICAgICpmcmFtZSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfZnJhbWVf
YWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqbmFtZSk7CisKIEdf
RU5EX0RFQ0xTCiAKICNlbmRpZgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5l
cldpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJX
aW5kb3cuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJX
aW5kb3cuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNp
Zm5kZWYgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1dJTkRPV19ICisjZGVmaW5lIEpTX0RPTV9FVkVO
VF9MSVNURU5FUl9XSU5ET1dfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtp
dC93ZWJraXRkZWZpbmVzLmg+CisKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1dlYktpdEF2
YWlsYWJpbGl0eS5oPgorI2luY2x1ZGUgIldlYkNvcmUvcGFnZS9GcmFtZS5oIgorCitjbGFzcyBX
ZWJDb3JlOjpGcmFtZTsKKworZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJIGdib29sZWFuCithZGRf
d2luZG93X2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3ZiwgV2ViQ29yZTo6RnJhbWUg
KmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKK30K
KworI2VuZGlmIC8qSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1dJTkRPV19IICovCkluZGV4OiBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZXZlbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0ZXZlbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+Cisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiU3RyaW5nSW1wbC5oIgorCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKworCisjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXZl
bnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgor
I2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIkV2ZW50
TGlzdGVuZXJXaW5kb3cuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyTm9kZS5oIgorI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJTdHJpbmdJbXBsLmgiCisjaW5jbHVkZSAiZ2RvbUV2
ZW50LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2Jq
ZWN0LmgiCisjaW5jbHVkZSAid2Via2l0ZXZlbnQuaCIKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+CisKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KyAgICBncG9pbnRlciB0b0dET00oRXZlbnQqIGRvYyk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2
ZW50VGFyZ2V0Tm9kZSogbm9kZSk7Cit9CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBF
KFdlYktpdEV2ZW50LCB3ZWJraXRfZXZlbnQsIEdfVFlQRV9PQkpFQ1QpOworCitzdHJ1Y3QgX1dl
YktpdEV2ZW50UHJpdmF0ZSB7CisgICAgRXZlbnQqIGV2ZW50OworfTsKKworI2RlZmluZSBXRUJL
SVRfRVZFTlRfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChv
YmopLCBXRUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZlbnRQcml2YXRlKSkKKworc3RhdGljIHZv
aWQgd2Via2l0X2V2ZW50X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvL1dlYktp
dEV2ZW50KiByZXF1ZXN0ID0gV0VCS0lUX0VWRU5UKG9iamVjdCk7CisgICAgLy9XZWJLaXRFdmVu
dFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworCisgICAgLy9nX2ZyZWUocHJpdi0+dXJp
KTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9ldmVudF9wYXJlbnRfY2xhc3MpLT5maW5h
bGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfY2xhc3NfaW5pdChX
ZWJLaXRFdmVudENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVx
dWVzdENsYXNzKS0+ZmluYWxpemUgPSB3ZWJraXRfZXZlbnRfZmluYWxpemU7CisKKyAgICBnX3R5
cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoV2ViS2l0RXZlbnRQcml2
YXRlKSk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9ldmVudF9pbml0KFdlYktpdEV2ZW50KiBy
ZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9FVkVOVF9H
RVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsKK30KKworV2Vi
S2l0RXZlbnQqIHdlYmtpdF9ldmVudF9uZXcodm9pZCkKK3sKKyAgICBXZWJLaXRFdmVudCogcmVx
dWVzdCA9IFdFQktJVF9FVkVOVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfRVZFTlQsIE5VTEwp
KTsKKyAgICAvL3ByaXYtPmV2ZW50ID0gZXZlbnQ7CisKKyAgICByZXR1cm4gcmVxdWVzdDsKK30K
KworLyoKK3ZvaWQgd2Via2l0X2V2ZW50X3NldF91cmkoV2ViS2l0RXZlbnQqIHJlcXVlc3QsIGNv
bnN0IGdjaGFyKiB1cmkpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfRVZFTlQo
cmVxdWVzdCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKKworICAgIFdlYktpdEV2ZW50
UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAgICBnX2ZyZWUocHJpdi0+dXJpKTsK
KyAgICBwcml2LT51cmkgPSBnX3N0cmR1cCh1cmkpOworfQorKi8KK0dfQ09OU1RfUkVUVVJOIGdj
aGFyKiB3ZWJraXRfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoV2ViS2l0RXZlbnQqIHJlcXVlc3QpCit7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0VWRU5UKHJlcXVlc3QpLCBOVUxM
KTsKKworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAg
cmV0dXJuIGdfc3RyZHVwKHByaXYtPmV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7Cit9CisKK3ZvaWQgd2Via2l0X2V2ZW50X2NhbmNlbF9idWJibGUgIChXZWJLaXRFdmVudCAq
cmVxdWVzdCwgZ2Jvb2xlYW4gY2FuY2VsKQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJp
diA9IHJlcXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnNldENhbmNlbEJ1YmJsZShjYW5j
ZWwpOworfQorCit2b2lkIHdlYmtpdF9ldmVudF9wcmV2ZW50X2RlZmF1bHQgIChXZWJLaXRFdmVu
dCAqcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5w
cml2OworICAgIHByaXYtPmV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworfQorCit2b2lkIHdlYmtp
dF9ldmVudF9zdG9wX3Byb3BhZ2F0aW9uICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QpCit7CisgICAg
V2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5ldmVu
dC0+c3RvcFByb3BhZ2F0aW9uKCk7Cit9CisKK30gLy8gZXh0ZXJuICJDIgorCitjbGFzcyBOb2Rl
RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxOb2RlRXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21FdmVudFRhcmdldE5v
ZGUqIHdmKQorICAgIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOb2RlRXZlbnRMaXN0ZW5lcih3Zikp
OyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCB1c2VDYXB0dXJl
KTsKKworICAgIHByaXZhdGU6CisgICAgTm9kZUV2ZW50TGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0
Tm9kZSogd2YpIDogbV93Zih3ZikgeyB9CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZSogbV93ZjsK
K307CisKK3ZvaWQgTm9kZUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwg
Ym9vbCB1c2VDYXB0dXJlKQoreworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBwcmludGYoIm5v
ZGUgaGFuZGxlRXZlbnQgJXNcbiIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYkNvcmU6OnRvR0RPTShldmVu
dCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCAiYnJvd3Nlci1ldmVudCIsIHdl
diwgdXNlQ2FwdHVyZSwgJnJldHZhbCk7Cit9CisKK2NsYXNzIFdpbmRvd0V2ZW50TGlzdGVuZXIg
OiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
V2luZG93RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFdlYktpdFdlYkZyYW1lKiB3ZikgCisgICAgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdpbmRvd0V2ZW50TGlzdGVuZXIod2YpKTsgfQorICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgaXNXaW5kb3dFdmVudCk7CisKKyAgICBw
cml2YXRlOgorICAgIFdpbmRvd0V2ZW50TGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmKSA6IG1f
d2Yod2YpIHsgfQorICAgIFdlYktpdFdlYkZyYW1lKiBtX3dmOworfTsKKwordm9pZCBXaW5kb3dF
dmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVu
dCkKK3sKKyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgcHJpbnRmKCJ3aW5kb3cgaGFuZGxlRXZl
bnQgJXNcbiIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgR2Rv
bUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYkNvcmU6OnRvR0RPTShldmVudCkpOworICAgIGdf
c2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCAiYnJvd3Nlci1ldmVudCIsIHdldiwgaXNXaW5kb3dF
dmVudCwgJnJldHZhbCk7Cit9CisKK2dib29sZWFuIGFkZF9ldmVudF9saXN0ZW5lcihHZG9tRXZl
bnRUYXJnZXROb2RlICp3ZiwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiB1c2VDYXB0dXJlKQoreworICAgIFdlYkNvcmU6Ok5vZGUgKm5vZGUg
PSBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKHdmKTsKKyAgICBpZiAobm9kZSA9
PSBOVUxMIHx8ICFub2RlLT5pc0V2ZW50VGFyZ2V0Tm9kZSgpKQorICAgICAgICByZXR1cm4gRkFM
U0U7CisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogZXRuID0gKHN0YXRpY19jYXN0PFdl
YkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqPihub2RlKSktPnRvTm9kZSgpOworICAgIGlmIChldG4g
PT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCisgICAgUmVmUHRyPE5vZGVFdmVudExp
c3RlbmVyPiBsaXN0ZW5lciA9IE5vZGVFdmVudExpc3RlbmVyOjpjcmVhdGUod2YpOworICAgIGV0
bi0+YWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7CisKKyAgICBy
ZXR1cm4gVFJVRTsKKworfSAKKworZ2Jvb2xlYW4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihX
ZWJLaXRXZWJGcmFtZSAqd2YsIEZyYW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBEb2N1bWVudCogZG9jID0gZnJh
bWUtPmRvY3VtZW50KCk7CisKKyAgICBSZWZQdHI8V2luZG93RXZlbnRMaXN0ZW5lcj4gbGlzdGVu
ZXIgPSBXaW5kb3dFdmVudExpc3RlbmVyOjpjcmVhdGUod2YpOworICAgIGRvYy0+YWRkV2luZG93
RXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5lciwgdHJ1ZSk7CisKKyAgICByZXR1cm4gVFJVRTsK
KworfSAKKwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAkocmV2aXNpb24gMzU3NTgp
CisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQwLDYgKzQwLDkgQEAKIAogR19CRUdJTl9ERUNMUwogCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RXZlbnQgV2ViS2l0RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnRDbGFzcyBXZWJL
aXRFdmVudENsYXNzOworCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3QgV2Vi
S2l0TmV0d29ya1JlcXVlc3Q7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RD
bGFzcyBXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzOwogCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtp
dC9nZG9tZGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L2dkb21kZWZp
bmVzLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBM
dWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0
IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgV0VCS0lUX0dET01f
REVGSU5FU19ICisjZGVmaW5lIFdFQktJVF9HRE9NX0RFRklORVNfSAorCisjaW5jbHVkZSA8Z2xp
Yi5oPgorCisjaWZkZWYgR19PU19XSU4zMgorICAgICNpZmRlZiBCVUlMRElOR19XRUJLSVRfR0RP
TQorICAgICAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkK
KyAgICAjZWxzZQorICAgICAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQSSBfX2RlY2xzcGVjKGRs
bGltcG9ydCkKKyAgICAjZW5kaWYKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9NX09CU09MRVRFX0FQ
SSBXRUJLSVRfR0RPTV9BUEkKKyNlbHNlCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19h
dHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyAgICAjZGVmaW5lIFdFQktJVF9H
RE9NX09CU09MRVRFX0FQSSBXRUJLSVRfR0RPTV9BUEkgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRl
ZCkpCisjZW5kaWYKKworI2lmbmRlZiBXRUJLSVRfR0RPTV9BUEkKKyAgICAjZGVmaW5lIFdFQktJ
VF9HRE9NX0FQSQorI2VuZGlmCisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOworCit0eXBlZGVmIHN0cnVjdCBf
R2RvbUF0dHIgR2RvbUF0dHI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUF0dHJDbGFzcyBHZG9tQXR0
ckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21CYXJJbmZvIEdkb21CYXJJbmZvOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21CYXJJbmZvQ2xhc3MgR2RvbUJhckluZm9DbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ2FudmFzR3JhZGllbnQgR2RvbUNhbnZhc0dyYWRpZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21DYW52YXNHcmFkaWVudENsYXNzIEdkb21DYW52YXNHcmFkaWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQYXR0ZXJuIEdkb21DYW52YXNQYXR0ZXJuOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21DYW52YXNQYXR0ZXJuQ2xhc3MgR2RvbUNhbnZhc1BhdHRlcm5DbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGl4ZWxBcnJheSBHZG9tQ2FudmFzUGl4ZWxBcnJh
eTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGl4ZWxBcnJheUNsYXNzIEdkb21DYW52YXNQ
aXhlbEFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRCBHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRDbGFzcyBHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNEQVRBU2VjdGlvbiBHZG9tQ0RBVEFTZWN0aW9u
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DREFUQVNlY3Rpb25DbGFzcyBHZG9tQ0RBVEFTZWN0aW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNoYXJhY3RlckRhdGEgR2RvbUNoYXJhY3RlckRh
dGE7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNoYXJhY3RlckRhdGFDbGFzcyBHZG9tQ2hhcmFjdGVy
RGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DbGlwYm9hcmQgR2RvbUNsaXBib2FyZDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tQ2xpcGJvYXJkQ2xhc3MgR2RvbUNsaXBib2FyZENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21Db21tZW50IEdkb21Db21tZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21Db21tZW50Q2xhc3MgR2RvbUNvbW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q29uc29sZSBHZG9tQ29uc29sZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ29uc29sZUNsYXNzIEdk
b21Db25zb2xlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvdW50ZXIgR2RvbUNvdW50ZXI7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvdW50ZXJDbGFzcyBHZG9tQ291bnRlckNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21DU1NDaGFyc2V0UnVsZSBHZG9tQ1NTQ2hhcnNldFJ1bGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUNTU0NoYXJzZXRSdWxlQ2xhc3MgR2RvbUNTU0NoYXJzZXRSdWxlQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ZvbnRGYWNlUnVsZSBHZG9tQ1NTRm9udEZhY2VS
dWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NGb250RmFjZVJ1bGVDbGFzcyBHZG9tQ1NTRm9u
dEZhY2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ltcG9ydFJ1bGUgR2RvbUNT
U0ltcG9ydFJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ltcG9ydFJ1bGVDbGFzcyBHZG9t
Q1NTSW1wb3J0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NNZWRpYVJ1bGUgR2Rv
bUNTU01lZGlhUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTTWVkaWFSdWxlQ2xhc3MgR2Rv
bUNTU01lZGlhUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NQYWdlUnVsZSBHZG9t
Q1NTUGFnZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1BhZ2VSdWxlQ2xhc3MgR2RvbUNT
U1BhZ2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ByaW1pdGl2ZVZhbHVlIEdk
b21DU1NQcmltaXRpdmVWYWx1ZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUHJpbWl0aXZlVmFs
dWVDbGFzcyBHZG9tQ1NTUHJpbWl0aXZlVmFsdWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTUnVsZSBHZG9tQ1NTUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZUNsYXNzIEdk
b21DU1NSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1J1bGVMaXN0IEdkb21DU1NS
dWxlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZUxpc3RDbGFzcyBHZG9tQ1NTUnVs
ZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbiBHZG9t
Q1NTU3R5bGVEZWNsYXJhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTU3R5bGVEZWNsYXJh
dGlvbkNsYXNzIEdkb21DU1NTdHlsZURlY2xhcmF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNTU1N0eWxlUnVsZSBHZG9tQ1NTU3R5bGVSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21D
U1NTdHlsZVJ1bGVDbGFzcyBHZG9tQ1NTU3R5bGVSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNTU1N0eWxlU2hlZXQgR2RvbUNTU1N0eWxlU2hlZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUNTU1N0eWxlU2hlZXRDbGFzcyBHZG9tQ1NTU3R5bGVTaGVldENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21DU1NWYWx1ZSBHZG9tQ1NTVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1Zh
bHVlQ2xhc3MgR2RvbUNTU1ZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhbHVl
TGlzdCBHZG9tQ1NTVmFsdWVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYWx1ZUxpc3RD
bGFzcyBHZG9tQ1NTVmFsdWVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1Zhcmlh
Ymxlc0RlY2xhcmF0aW9uIEdkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbjsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25DbGFzcyBHZG9tQ1NTVmFyaWFibGVzRGVj
bGFyYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzUnVsZSBHZG9t
Q1NTVmFyaWFibGVzUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzUnVsZUNs
YXNzIEdkb21DU1NWYXJpYWJsZXNSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURhdGFi
YXNlIEdkb21EYXRhYmFzZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRGF0YWJhc2VDbGFzcyBHZG9t
RGF0YWJhc2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRGcmFnbWVudCBHZG9t
RG9jdW1lbnRGcmFnbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRGcmFnbWVudENs
YXNzIEdkb21Eb2N1bWVudEZyYWdtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3Vt
ZW50IEdkb21Eb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRDbGFzcyBHZG9t
RG9jdW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRUeXBlIEdkb21Eb2N1
bWVudFR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50VHlwZUNsYXNzIEdkb21Eb2N1
bWVudFR5cGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NQXBwbGljYXRpb25DYWNoZSBH
ZG9tRE9NQXBwbGljYXRpb25DYWNoZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NQXBwbGljYXRp
b25DYWNoZUNsYXNzIEdkb21ET01BcHBsaWNhdGlvbkNhY2hlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbURPTUNvcmVFeGNlcHRpb24gR2RvbURPTUNvcmVFeGNlcHRpb247Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbURPTUNvcmVFeGNlcHRpb25DbGFzcyBHZG9tRE9NQ29yZUV4Y2VwdGlvbkNsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01JbXBsZW1lbnRhdGlvbiBHZG9tRE9NSW1wbGVtZW50
YXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3MgR2RvbURP
TUltcGxlbWVudGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVBhcnNlciBHZG9t
RE9NUGFyc2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01QYXJzZXJDbGFzcyBHZG9tRE9NUGFy
c2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVNlbGVjdGlvbiBHZG9tRE9NU2VsZWN0
aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01TZWxlY3Rpb25DbGFzcyBHZG9tRE9NU2VsZWN0
aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVdpbmRvdyBHZG9tRE9NV2luZG93Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01XaW5kb3dDbGFzcyBHZG9tRE9NV2luZG93Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUVsZW1lbnQgR2RvbUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUVsZW1lbnRDbGFzcyBHZG9tRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21F
bnRpdHkgR2RvbUVudGl0eTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRW50aXR5Q2xhc3MgR2RvbUVu
dGl0eUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbnRpdHlSZWZlcmVuY2UgR2RvbUVudGl0
eVJlZmVyZW5jZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRW50aXR5UmVmZXJlbmNlQ2xhc3MgR2Rv
bUVudGl0eVJlZmVyZW5jZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudEV4Y2VwdGlv
biBHZG9tRXZlbnRFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50RXhjZXB0aW9u
Q2xhc3MgR2RvbUV2ZW50RXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50
IEdkb21FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRDbGFzcyBHZG9tRXZlbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmlsZSBHZG9tRmlsZTsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRmlsZUNsYXNzIEdkb21GaWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUZpbGVMaXN0
IEdkb21GaWxlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmlsZUxpc3RDbGFzcyBHZG9tRmls
ZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSGlzdG9yeSBHZG9tSGlzdG9yeTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSGlzdG9yeUNsYXNzIEdkb21IaXN0b3J5Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxBbmNob3JFbGVtZW50IEdkb21IVE1MQW5jaG9yRWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFuY2hvckVsZW1lbnRDbGFzcyBHZG9tSFRNTEFuY2hvckVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFwcGxldEVsZW1lbnQgR2RvbUhU
TUxBcHBsZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQXBwbGV0RWxlbWVudENs
YXNzIEdkb21IVE1MQXBwbGV0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
QXJlYUVsZW1lbnQgR2RvbUhUTUxBcmVhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TEFyZWFFbGVtZW50Q2xhc3MgR2RvbUhUTUxBcmVhRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MQmFzZUVsZW1lbnQgR2RvbUhUTUxCYXNlRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEJhc2VFbGVtZW50Q2xhc3MgR2RvbUhUTUxCYXNlRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUZvbnRFbGVtZW50IEdkb21IVE1MQmFzZUZvbnRF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUZvbnRFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxCYXNlRm9udEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJsb2Nr
cXVvdGVFbGVtZW50IEdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudENsYXNzIEdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJvZHlFbGVtZW50IEdkb21IVE1MQm9keUVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCb2R5RWxlbWVudENsYXNzIEdkb21IVE1M
Qm9keUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJSRWxlbWVudCBHZG9t
SFRNTEJSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJSRWxlbWVudENsYXNzIEdk
b21IVE1MQlJFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCdXR0b25FbGVt
ZW50IEdkb21IVE1MQnV0dG9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJ1dHRv
bkVsZW1lbnRDbGFzcyBHZG9tSFRNTEJ1dHRvbkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTENhbnZhc0VsZW1lbnQgR2RvbUhUTUxDYW52YXNFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MQ2FudmFzRWxlbWVudENsYXNzIEdkb21IVE1MQ2FudmFzRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ29sbGVjdGlvbiBHZG9tSFRNTENvbGxlY3Rp
b247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxDb2xsZWN0aW9uQ2xhc3MgR2RvbUhUTUxDb2xs
ZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50IEdk
b21IVE1MRGlyZWN0b3J5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERpcmVjdG9y
eUVsZW1lbnRDbGFzcyBHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTERpdkVsZW1lbnQgR2RvbUhUTUxEaXZFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MRGl2RWxlbWVudENsYXNzIEdkb21IVE1MRGl2RWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRExpc3RFbGVtZW50IEdkb21IVE1MRExpc3RFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRExpc3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxETGlzdEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERvY3VtZW50IEdkb21IVE1MRG9j
dW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEb2N1bWVudENsYXNzIEdkb21IVE1MRG9j
dW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEVsZW1lbnQgR2RvbUhUTUxFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRWxlbWVudENsYXNzIEdkb21IVE1MRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRW1iZWRFbGVtZW50IEdkb21IVE1MRW1i
ZWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRW1iZWRFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxFbWJlZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZpZWxkU2V0
RWxlbWVudCBHZG9tSFRNTEZpZWxkU2V0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TEZpZWxkU2V0RWxlbWVudENsYXNzIEdkb21IVE1MRmllbGRTZXRFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxGb250RWxlbWVudCBHZG9tSFRNTEZvbnRFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9udEVsZW1lbnRDbGFzcyBHZG9tSFRNTEZvbnRFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb3JtRWxlbWVudCBHZG9tSFRNTEZvcm1F
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9ybUVsZW1lbnRDbGFzcyBHZG9tSFRN
TEZvcm1FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGcmFtZUVsZW1lbnQg
R2RvbUhUTUxGcmFtZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGcmFtZUVsZW1l
bnRDbGFzcyBHZG9tSFRNTEZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MRnJhbWVTZXRFbGVtZW50IEdkb21IVE1MRnJhbWVTZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Q2xhc3MgR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhlYWRFbGVtZW50IEdkb21IVE1MSGVhZEVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIZWFkRWxlbWVudENsYXNzIEdkb21IVE1M
SGVhZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhlYWRpbmdFbGVtZW50
IEdkb21IVE1MSGVhZGluZ0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIZWFkaW5n
RWxlbWVudENsYXNzIEdkb21IVE1MSGVhZGluZ0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTEhSRWxlbWVudCBHZG9tSFRNTEhSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTEhSRWxlbWVudENsYXNzIEdkb21IVE1MSFJFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxIdG1sRWxlbWVudCBHZG9tSFRNTEh0bWxFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MSHRtbEVsZW1lbnRDbGFzcyBHZG9tSFRNTEh0bWxFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJRnJhbWVFbGVtZW50IEdkb21IVE1MSUZyYW1lRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElGcmFtZUVsZW1lbnRDbGFzcyBHZG9tSFRN
TElGcmFtZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEltYWdlRWxlbWVu
dCBHZG9tSFRNTEltYWdlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEltYWdlRWxl
bWVudENsYXNzIEdkb21IVE1MSW1hZ2VFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxJbnB1dEVsZW1lbnQgR2RvbUhUTUxJbnB1dEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxJbnB1dEVsZW1lbnRDbGFzcyBHZG9tSFRNTElucHV0RWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSXNJbmRleEVsZW1lbnQgR2RvbUhUTUxJc0luZGV4RWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElzSW5kZXhFbGVtZW50Q2xhc3MgR2RvbUhUTUxJ
c0luZGV4RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGFiZWxFbGVtZW50
IEdkb21IVE1MTGFiZWxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGFiZWxFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxMYWJlbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTExlZ2VuZEVsZW1lbnQgR2RvbUhUTUxMZWdlbmRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MTGVnZW5kRWxlbWVudENsYXNzIEdkb21IVE1MTGVnZW5kRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTElFbGVtZW50IEdkb21IVE1MTElFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTElFbGVtZW50Q2xhc3MgR2RvbUhUTUxMSUVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExpbmtFbGVtZW50IEdkb21IVE1MTGlua0VsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMaW5rRWxlbWVudENsYXNzIEdkb21IVE1MTGlu
a0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1hcEVsZW1lbnQgR2RvbUhU
TUxNYXBFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWFwRWxlbWVudENsYXNzIEdk
b21IVE1MTWFwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWFycXVlZUVs
ZW1lbnQgR2RvbUhUTUxNYXJxdWVlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1h
cnF1ZWVFbGVtZW50Q2xhc3MgR2RvbUhUTUxNYXJxdWVlRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MTWVudUVsZW1lbnQgR2RvbUhUTUxNZW51RWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTE1lbnVFbGVtZW50Q2xhc3MgR2RvbUhUTUxNZW51RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWV0YUVsZW1lbnQgR2RvbUhUTUxNZXRhRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1ldGFFbGVtZW50Q2xhc3MgR2RvbUhUTUxNZXRh
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTW9kRWxlbWVudCBHZG9tSFRN
TE1vZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNb2RFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxNb2RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPYmplY3RFbGVt
ZW50IEdkb21IVE1MT2JqZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9iamVj
dEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9iamVjdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTE9MaXN0RWxlbWVudCBHZG9tSFRNTE9MaXN0RWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTE9MaXN0RWxlbWVudENsYXNzIEdkb21IVE1MT0xpc3RFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQgR2RvbUhUTUxPcHRHcm91
cEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRHcm91cEVsZW1lbnRDbGFzcyBH
ZG9tSFRNTE9wdEdyb3VwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0
aW9uRWxlbWVudCBHZG9tSFRNTE9wdGlvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxPcHRpb25FbGVtZW50Q2xhc3MgR2RvbUhUTUxPcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbiBHZG9tSFRNTE9wdGlvbnNDb2xsZWN0
aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25DbGFzcyBHZG9t
SFRNTE9wdGlvbnNDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQYXJh
Z3JhcGhFbGVtZW50IEdkb21IVE1MUGFyYWdyYXBoRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTFBhcmFncmFwaEVsZW1lbnRDbGFzcyBHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFtRWxlbWVudCBHZG9tSFRNTFBhcmFtRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFtRWxlbWVudENsYXNzIEdkb21IVE1M
UGFyYW1FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQcmVFbGVtZW50IEdk
b21IVE1MUHJlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFByZUVsZW1lbnRDbGFz
cyBHZG9tSFRNTFByZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFF1b3Rl
RWxlbWVudCBHZG9tSFRNTFF1b3RlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFF1
b3RlRWxlbWVudENsYXNzIEdkb21IVE1MUXVvdGVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxTY3JpcHRFbGVtZW50IEdkb21IVE1MU2NyaXB0RWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTFNjcmlwdEVsZW1lbnRDbGFzcyBHZG9tSFRNTFNjcmlwdEVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNlbGVjdEVsZW1lbnQgR2RvbUhUTUxTZWxl
Y3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2VsZWN0RWxlbWVudENsYXNzIEdk
b21IVE1MU2VsZWN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU3R5bGVF
bGVtZW50IEdkb21IVE1MU3R5bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU3R5
bGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxTdHlsZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQgR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzIEdkb21I
VE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFi
bGVDZWxsRWxlbWVudCBHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQgR2RvbUhUTUxUYWJs
ZUNvbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFz
cyBHZG9tSFRNTFRhYmxlQ29sRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
VGFibGVFbGVtZW50IEdkb21IVE1MVGFibGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MVGFibGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTFRhYmxlUm93RWxlbWVudCBHZG9tSFRNTFRhYmxlUm93RWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlUm93RWxlbWVudENsYXNzIEdkb21IVE1MVGFi
bGVSb3dFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50IEdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRleHRBcmVhRWxlbWVudCBHZG9tSFRNTFRl
eHRBcmVhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRleHRBcmVhRWxlbWVudENs
YXNzIEdkb21IVE1MVGV4dEFyZWFFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxUaXRsZUVsZW1lbnQgR2RvbUhUTUxUaXRsZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxUaXRsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFRpdGxlRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MVUxpc3RFbGVtZW50IEdkb21IVE1MVUxpc3RFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVUxpc3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxVTGlzdEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSW1hZ2VEYXRhIEdkb21JbWFnZURhdGE7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUltYWdlRGF0YUNsYXNzIEdkb21JbWFnZURhdGFDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZSBHZG9tSmF2YVNjcmlwdENhbGxG
cmFtZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZUNsYXNzIEdkb21K
YXZhU2NyaXB0Q2FsbEZyYW1lQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUtleWJvYXJkRXZl
bnQgR2RvbUtleWJvYXJkRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUtleWJvYXJkRXZlbnRD
bGFzcyBHZG9tS2V5Ym9hcmRFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Mb2NhdGlv
biBHZG9tTG9jYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUxvY2F0aW9uQ2xhc3MgR2RvbUxv
Y2F0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lZGlhTGlzdCBHZG9tTWVkaWFMaXN0
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZWRpYUxpc3RDbGFzcyBHZG9tTWVkaWFMaXN0Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lc3NhZ2VFdmVudCBHZG9tTWVzc2FnZUV2ZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21NZXNzYWdlRXZlbnRDbGFzcyBHZG9tTWVzc2FnZUV2ZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQXJyYXkgR2RvbU1pbWVUeXBlQXJyYXk7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQXJyYXlDbGFzcyBHZG9tTWltZVR5cGVBcnJheUNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NaW1lVHlwZSBHZG9tTWltZVR5cGU7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbU1pbWVUeXBlQ2xhc3MgR2RvbU1pbWVUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbU1vdXNlRXZlbnQgR2RvbU1vdXNlRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bU1vdXNlRXZlbnRDbGFzcyBHZG9tTW91c2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21NdXRhdGlvbkV2ZW50IEdkb21NdXRhdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21N
dXRhdGlvbkV2ZW50Q2xhc3MgR2RvbU11dGF0aW9uRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tTmFtZWROb2RlTWFwIEdkb21OYW1lZE5vZGVNYXA7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bU5hbWVkTm9kZU1hcENsYXNzIEdkb21OYW1lZE5vZGVNYXBDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tTmF2aWdhdG9yIEdkb21OYXZpZ2F0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5hdmln
YXRvckNsYXNzIEdkb21OYXZpZ2F0b3JDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUZp
bHRlciBHZG9tTm9kZUZpbHRlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUZpbHRlckNsYXNz
IEdkb21Ob2RlRmlsdGVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGUgR2RvbU5vZGU7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVDbGFzcyBHZG9tTm9kZUNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21Ob2RlSXRlcmF0b3IgR2RvbU5vZGVJdGVyYXRvcjsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tTm9kZUl0ZXJhdG9yQ2xhc3MgR2RvbU5vZGVJdGVyYXRvckNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21Ob2RlTGlzdCBHZG9tTm9kZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5v
ZGVMaXN0Q2xhc3MgR2RvbU5vZGVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vdGF0
aW9uIEdkb21Ob3RhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm90YXRpb25DbGFzcyBHZG9t
Tm90YXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tT3ZlcmZsb3dFdmVudCBHZG9tT3Zl
cmZsb3dFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tT3ZlcmZsb3dFdmVudENsYXNzIEdkb21P
dmVyZmxvd0V2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbkFycmF5IEdkb21Q
bHVnaW5BcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luQXJyYXlDbGFzcyBHZG9tUGx1
Z2luQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luIEdkb21QbHVnaW47Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbkNsYXNzIEdkb21QbHVnaW5DbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uIEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbkNsYXNzIEdkb21Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvZ3Jlc3NF
dmVudCBHZG9tUHJvZ3Jlc3NFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvZ3Jlc3NFdmVu
dENsYXNzIEdkb21Qcm9ncmVzc0V2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJhbmdl
RXhjZXB0aW9uIEdkb21SYW5nZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmFuZ2VF
eGNlcHRpb25DbGFzcyBHZG9tUmFuZ2VFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tUmFuZ2UgR2RvbVJhbmdlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SYW5nZUNsYXNzIEdkb21S
YW5nZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SZWN0IEdkb21SZWN0OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21SZWN0Q2xhc3MgR2RvbVJlY3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
U2NyZWVuIEdkb21TY3JlZW47Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNjcmVlbkNsYXNzIEdkb21T
Y3JlZW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMRXJyb3IgR2RvbVNRTEVycm9yOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxFcnJvckNsYXNzIEdkb21TUUxFcnJvckNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXQgR2RvbVNRTFJlc3VsdFNldDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0Q2xhc3MgR2RvbVNRTFJlc3VsdFNldENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0IEdkb21TUUxSZXN1bHRTZXRSb3dM
aXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Q2xhc3MgR2RvbVNR
TFJlc3VsdFNldFJvd0xpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMVHJhbnNhY3Rp
b24gR2RvbVNRTFRyYW5zYWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxUcmFuc2FjdGlv
bkNsYXNzIEdkb21TUUxUcmFuc2FjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9y
YWdlRXZlbnQgR2RvbVN0b3JhZ2VFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3RvcmFnZUV2
ZW50Q2xhc3MgR2RvbVN0b3JhZ2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9y
YWdlIEdkb21TdG9yYWdlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9yYWdlQ2xhc3MgR2RvbVN0
b3JhZ2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldCBHZG9tU3R5bGVTaGVl
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldENsYXNzIEdkb21TdHlsZVNoZWV0Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hlZXRMaXN0IEdkb21TdHlsZVNoZWV0TGlz
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldExpc3RDbGFzcyBHZG9tU3R5bGVTaGVl
dExpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dEV2ZW50IEdkb21UZXh0RXZlbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRleHRFdmVudENsYXNzIEdkb21UZXh0RXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dCBHZG9tVGV4dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
VGV4dENsYXNzIEdkb21UZXh0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRyZWVXYWxrZXIg
R2RvbVRyZWVXYWxrZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRyZWVXYWxrZXJDbGFzcyBHZG9t
VHJlZVdhbGtlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21VSUV2ZW50IEdkb21VSUV2ZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21VSUV2ZW50Q2xhc3MgR2RvbVVJRXZlbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQgR2RvbVdlYktpdEFuaW1hdGlv
bkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRBbmltYXRpb25FdmVudENsYXNzIEdk
b21XZWJLaXRBbmltYXRpb25FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZSBHZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWU7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3MgR2RvbVdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktpdFRyYW5zaXRpb25FdmVu
dCBHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRU
cmFuc2l0aW9uRXZlbnRDbGFzcyBHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVdoZWVsRXZlbnQgR2RvbVdoZWVsRXZlbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVdoZWVsRXZlbnRDbGFzcyBHZG9tV2hlZWxFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiBHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3MgR2Rv
bVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0
dHBSZXF1ZXN0IEdkb21YTUxIdHRwUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0
cFJlcXVlc3RDbGFzcyBHZG9tWE1MSHR0cFJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50IEdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudENs
YXNzIEdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQgR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZENsYXNzIEdkb21YTUxIdHRwUmVx
dWVzdFVwbG9hZENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxTZXJpYWxpemVyIEdkb21Y
TUxTZXJpYWxpemVyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxTZXJpYWxpemVyQ2xhc3MgR2Rv
bVhNTFNlcmlhbGl6ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhFdmFsdWF0b3Ig
R2RvbVhQYXRoRXZhbHVhdG9yOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV2YWx1YXRvckNs
YXNzIEdkb21YUGF0aEV2YWx1YXRvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV4
Y2VwdGlvbiBHZG9tWFBhdGhFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXhj
ZXB0aW9uQ2xhc3MgR2RvbVhQYXRoRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVhQYXRoRXhwcmVzc2lvbiBHZG9tWFBhdGhFeHByZXNzaW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21YUGF0aEV4cHJlc3Npb25DbGFzcyBHZG9tWFBhdGhFeHByZXNzaW9uQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVhQYXRoTlNSZXNvbHZlciBHZG9tWFBhdGhOU1Jlc29sdmVyOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21YUGF0aE5TUmVzb2x2ZXJDbGFzcyBHZG9tWFBhdGhOU1Jlc29sdmVyQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoUmVzdWx0IEdkb21YUGF0aFJlc3VsdDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhSZXN1bHRDbGFzcyBHZG9tWFBhdGhSZXN1bHRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tWFNMVFByb2Nlc3NvciBHZG9tWFNMVFByb2Nlc3NvcjsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tWFNMVFByb2Nlc3NvckNsYXNzIEdkb21YU0xUUHJvY2Vzc29yQ2xh
c3M7CisKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAgICAgICAgICAgIChnZG9tX2Rv
bV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RF
ICAgICAgICAgICAgKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0FUVFIgICAgICAgICAgICAoZ2RvbV9hdHRyX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9CQVJfSU5GTyAgICAgICAgICAgIChnZG9tX2Jhcl9pbmZvX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9DQU5WQVNfR1JBRElFTlQgICAgICAgICAgICAoZ2RvbV9jYW52
YXNfZ3JhZGllbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19QQVRURVJO
ICAgICAgICAgICAgKGdkb21fY2FudmFzX3BhdHRlcm5fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0NBTlZBU19QSVhFTF9BUlJBWSAgICAgICAgICAgIChnZG9tX2NhbnZhc19waXhlbF9h
cnJheV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0FOVkFTX1JFTkRFUklOR19DT05U
RVhUMkQgICAgICAgICAgICAoZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0RBVEFfU0VDVElPTiAgICAgICAgICAgIChnZG9tX2Nk
YXRhX3NlY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NIQVJBQ1RFUl9EQVRB
ICAgICAgICAgICAgKGdkb21fY2hhcmFjdGVyX2RhdGFfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0NMSVBCT0FSRCAgICAgICAgICAgIChnZG9tX2NsaXBib2FyZF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfQ09NTUVOVCAgICAgICAgICAgIChnZG9tX2NvbW1lbnRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NPTlNPTEUgICAgICAgICAgICAoZ2RvbV9jb25zb2xl
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DT1VOVEVSICAgICAgICAgICAgKGdkb21f
Y291bnRlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX0NIQVJTRVRfUlVMRSAg
ICAgICAgICAgIChnZG9tX2Nzc19jaGFyc2V0X3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0NTU19GT05UX0ZBQ0VfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19mb250X2ZhY2Vf
cnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX0lNUE9SVF9SVUxFICAgICAg
ICAgICAgKGdkb21fY3NzX2ltcG9ydF9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9DU1NfTUVESUFfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19tZWRpYV9ydWxlX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfUEFHRV9SVUxFICAgICAgICAgICAgKGdkb21fY3Nz
X3BhZ2VfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1BSSU1JVElWRV9W
QUxVRSAgICAgICAgICAgIChnZG9tX2Nzc19wcmltaXRpdmVfdmFsdWVfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0NTU19SVUxFICAgICAgICAgICAgKGdkb21fY3NzX3J1bGVfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19SVUxFX0xJU1QgICAgICAgICAgICAoZ2RvbV9j
c3NfcnVsZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfU1RZTEVfREVD
TEFSQVRJT04gICAgICAgICAgICAoZ2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19TVFlMRV9SVUxFICAgICAgICAgICAgKGdkb21fY3Nz
X3N0eWxlX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19TVFlMRV9TSEVF
VCAgICAgICAgICAgIChnZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfQ1NTX1ZBTFVFICAgICAgICAgICAgKGdkb21fY3NzX3ZhbHVlX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFMVUVfTElTVCAgICAgICAgICAgIChnZG9tX2Nzc192
YWx1ZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFSSUFCTEVTX0RF
Q0xBUkFUSU9OICAgICAgICAgICAgKGdkb21fY3NzX3ZhcmlhYmxlc19kZWNsYXJhdGlvbl9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZBUklBQkxFU19SVUxFICAgICAgICAgICAg
KGdkb21fY3NzX3ZhcmlhYmxlc19ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9E
QVRBQkFTRSAgICAgICAgICAgIChnZG9tX2RhdGFiYXNlX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAgICAgIChnZG9tX2RvY3VtZW50X2ZyYWdt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET0NVTUVOVCAgICAgICAgICAgIChn
ZG9tX2RvY3VtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET0NVTUVOVF9UWVBF
ICAgICAgICAgICAgKGdkb21fZG9jdW1lbnRfdHlwZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfRE9NX0FQUExJQ0FUSU9OX0NBQ0hFICAgICAgICAgICAgKGdkb21fZG9tX2FwcGxpY2F0
aW9uX2NhY2hlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET01fQ09SRV9FWENFUFRJ
T04gICAgICAgICAgICAoZ2RvbV9kb21fY29yZV9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0RPTV9JTVBMRU1FTlRBVElPTiAgICAgICAgICAgIChnZG9tX2RvbV9pbXBs
ZW1lbnRhdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9NX1BBUlNFUiAgICAg
ICAgICAgIChnZG9tX2RvbV9wYXJzZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RP
TV9TRUxFQ1RJT04gICAgICAgICAgICAoZ2RvbV9kb21fc2VsZWN0aW9uX2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9ET01fV0lORE9XICAgICAgICAgICAgKGdkb21fZG9tX3dpbmRvd19n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VOVElUWSAgICAgICAgICAgIChn
ZG9tX2VudGl0eV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRU5USVRZX1JFRkVSRU5D
RSAgICAgICAgICAgIChnZG9tX2VudGl0eV9yZWZlcmVuY2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0VWRU5UX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9tX2V2ZW50X2V4Y2VwdGlv
bl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRVZFTlQgICAgICAgICAgICAoZ2RvbV9l
dmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRklMRSAgICAgICAgICAgIChnZG9t
X2ZpbGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0ZJTEVfTElTVCAgICAgICAgICAg
IChnZG9tX2ZpbGVfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSElTVE9SWSAg
ICAgICAgICAgIChnZG9tX2hpc3RvcnlfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hU
TUxfQU5DSE9SX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0FQUExFVF9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9BUkVBX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2FyZWFfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CQVNFX0VMRU1FTlQgICAgICAgICAg
ICAoZ2RvbV9odG1sX2Jhc2VfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
SFRNTF9CQVNFX0ZPTlRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYmFzZV9mb250X2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQkxPQ0tRVU9URV9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9ibG9ja3F1b3RlX2VsZW1lbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQk9EWV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9ib2R5X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxCUl9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbGJyX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfQlVUVE9OX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2J1dHRv
bl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0NBTlZBU19FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfSFRNTF9DT0xMRUNUSU9OICAgICAgICAgICAgKGdkb21faHRtbF9jb2xs
ZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0RJUkVDVE9SWV9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9kaXJlY3RvcnlfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9ESVZfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
ZGl2X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxEX0xJU1RfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxkX2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfSFRNTF9ET0NVTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZG9jdW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRUxFTUVOVCAgICAgICAgICAg
IChnZG9tX2h0bWxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9F
TUJFRF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZJRUxEX1NFVF9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbF9maWVsZF9zZXRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9GT05UX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2ZvbnRfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GT1JNX0VMRU1FTlQgICAgICAgICAg
ICAoZ2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
SFRNTF9GUkFNRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9mcmFtZV9lbGVtZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZSQU1FX1NFVF9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9IRUFEX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2hlYWRfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9IRUFESU5HX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTEhSX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1saHJfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9IVE1MX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX2h0bWxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTElfRlJBTUVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxpX2ZyYW1lX2VsZW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSU1BR0VfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9JTlBVVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9pbnB1dF9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0lTX0lOREVYX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX2lzX2luZGV4X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfTEFCRUxfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbGFi
ZWxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9MRUdFTkRfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbGVnZW5kX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxMSV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGxpX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTElOS19FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0hUTUxfTUFQX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX21hcF9lbGVtZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01BUlFVRUVfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfbWFycXVlZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX01FTlVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWVudV9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01FVEFfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9IVE1MX01PRF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9tb2RfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PQkpFQ1RfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxPX0xJU1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxvX2xpc3RfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PUFRfR1JPVVBfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfT1BUSU9OX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX29w
dGlvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX09QVElPTlNf
Q09MTEVDVElPTiAgICAgICAgICAgIChnZG9tX2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1BBUkFHUkFQSF9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF9wYXJhZ3JhcGhfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9QQVJBTV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9wYXJhbV9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1BSRV9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9wcmVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9RVU9URV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9xdW90ZV9lbGVtZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1NDUklQVF9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9zY3JpcHRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9TRUxFQ1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfc2VsZWN0X2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfU1RZTEVfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9UQUJMRV9DQVBUSU9OX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X3RhYmxlX2NhcHRpb25fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRN
TF9UQUJMRV9DRUxMX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX2NlbGxfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DT0xfRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
dGFibGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9S
T1dfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfU0VDVElPTl9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfVEVYVF9BUkVBX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X3RleHRfYXJlYV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RJ
VExFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RpdGxlX2VsZW1lbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxVX0xJU1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9t
X2h0bWx1X2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSU1BR0Vf
REFUQSAgICAgICAgICAgIChnZG9tX2ltYWdlX2RhdGFfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0pBVkFfU0NSSVBUX0NBTExfRlJBTUUgICAgICAgICAgICAoZ2RvbV9qYXZhX3Njcmlw
dF9jYWxsX2ZyYW1lX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9LRVlCT0FSRF9FVkVO
VCAgICAgICAgICAgIChnZG9tX2tleWJvYXJkX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9MT0NBVElPTiAgICAgICAgICAgIChnZG9tX2xvY2F0aW9uX2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9NRURJQV9MSVNUICAgICAgICAgICAgKGdkb21fbWVkaWFfbGlzdF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUVTU0FHRV9FVkVOVCAgICAgICAgICAgIChn
ZG9tX21lc3NhZ2VfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01JTUVfVFlQ
RV9BUlJBWSAgICAgICAgICAgIChnZG9tX21pbWVfdHlwZV9hcnJheV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfTUlNRV9UWVBFICAgICAgICAgICAgKGdkb21fbWltZV90eXBlX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NT1VTRV9FVkVOVCAgICAgICAgICAgIChnZG9tX21v
dXNlX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NVVRBVElPTl9FVkVOVCAg
ICAgICAgICAgIChnZG9tX211dGF0aW9uX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9OQU1FRF9OT0RFX01BUCAgICAgICAgICAgIChnZG9tX25hbWVkX25vZGVfbWFwX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OQVZJR0FUT1IgICAgICAgICAgICAoZ2RvbV9uYXZp
Z2F0b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05PREVfRklMVEVSICAgICAgICAg
ICAgKGdkb21fbm9kZV9maWx0ZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05PREUg
ICAgICAgICAgICAoZ2RvbV9ub2RlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT0RF
X0lURVJBVE9SICAgICAgICAgICAgKGdkb21fbm9kZV9pdGVyYXRvcl9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfTk9ERV9MSVNUICAgICAgICAgICAgKGdkb21fbm9kZV9saXN0X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT1RBVElPTiAgICAgICAgICAgIChnZG9tX25vdGF0
aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9PVkVSRkxPV19FVkVOVCAgICAgICAg
ICAgIChnZG9tX292ZXJmbG93X2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9Q
TFVHSU5fQVJSQVkgICAgICAgICAgICAoZ2RvbV9wbHVnaW5fYXJyYXlfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX1BMVUdJTiAgICAgICAgICAgIChnZG9tX3BsdWdpbl9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiAgICAgICAgICAgIChn
ZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1BST0dSRVNTX0VWRU5UICAgICAgICAgICAgKGdkb21fcHJvZ3Jlc3NfZXZlbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX1JBTkdFX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9tX3Jh
bmdlX2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUkFOR0UgICAgICAg
ICAgICAoZ2RvbV9yYW5nZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUkVDVCAgICAg
ICAgICAgIChnZG9tX3JlY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NDUkVFTiAg
ICAgICAgICAgIChnZG9tX3NjcmVlbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1FM
X0VSUk9SICAgICAgICAgICAgKGdkb21fc3FsX2Vycm9yX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9TUUxfUkVTVUxUX1NFVCAgICAgICAgICAgIChnZG9tX3NxbF9yZXN1bHRfc2V0X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxfUkVTVUxUX1NFVF9ST1dfTElTVCAgICAg
ICAgICAgIChnZG9tX3NxbF9yZXN1bHRfc2V0X3Jvd19saXN0X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9TUUxfVFJBTlNBQ1RJT04gICAgICAgICAgICAoZ2RvbV9zcWxfdHJhbnNhY3Rp
b25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NUT1JBR0VfRVZFTlQgICAgICAgICAg
ICAoZ2RvbV9zdG9yYWdlX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TVE9S
QUdFICAgICAgICAgICAgKGdkb21fc3RvcmFnZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfU1RZTEVfU0hFRVQgICAgICAgICAgICAoZ2RvbV9zdHlsZV9zaGVldF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfU1RZTEVfU0hFRVRfTElTVCAgICAgICAgICAgIChnZG9tX3N0eWxl
X3NoZWV0X2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1RFWFRfRVZFTlQgICAg
ICAgICAgICAoZ2RvbV90ZXh0X2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9U
RVhUICAgICAgICAgICAgKGdkb21fdGV4dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
VFJFRV9XQUxLRVIgICAgICAgICAgICAoZ2RvbV90cmVlX3dhbGtlcl9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfVUlfRVZFTlQgICAgICAgICAgICAoZ2RvbV91aV9ldmVudF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfV0VCX0tJVF9BTklNQVRJT05fRVZFTlQgICAgICAgICAg
ICAoZ2RvbV93ZWJfa2l0X2FuaW1hdGlvbl9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfV0VCX0tJVF9DU1NfVFJBTlNGT1JNX1ZBTFVFICAgICAgICAgICAgKGdkb21fd2ViX2tp
dF9jc3NfdHJhbnNmb3JtX3ZhbHVlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9XRUJf
S0lUX1RSQU5TSVRJT05fRVZFTlQgICAgICAgICAgICAoZ2RvbV93ZWJfa2l0X3RyYW5zaXRpb25f
ZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1dIRUVMX0VWRU5UICAgICAgICAg
ICAgKGdkb21fd2hlZWxfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hNTF9I
VFRQX1JFUVVFU1RfRVhDRVBUSU9OICAgICAgICAgICAgKGdkb21feG1sX2h0dHBfcmVxdWVzdF9l
eGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1Qg
ICAgICAgICAgICAoZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9YTUxfSFRUUF9SRVFVRVNUX1BST0dSRVNTX0VWRU5UICAgICAgICAgICAgKGdkb21f
eG1sX2h0dHBfcmVxdWVzdF9wcm9ncmVzc19ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfWE1MX0hUVFBfUkVRVUVTVF9VUExPQUQgICAgICAgICAgICAoZ2RvbV94bWxfaHR0cF9y
ZXF1ZXN0X3VwbG9hZF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWE1MX1NFUklBTEla
RVIgICAgICAgICAgICAoZ2RvbV94bWxfc2VyaWFsaXplcl9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfWF9QQVRIX0VWQUxVQVRPUiAgICAgICAgICAgIChnZG9tX3hfcGF0aF9ldmFsdWF0
b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9FWENFUFRJT04gICAgICAg
ICAgICAoZ2RvbV94X3BhdGhfZXhjZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9YX1BBVEhfRVhQUkVTU0lPTiAgICAgICAgICAgIChnZG9tX3hfcGF0aF9leHByZXNzaW9uX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YX1BBVEhfTlNfUkVTT0xWRVIgICAgICAgICAg
ICAoZ2RvbV94X3BhdGhfbnNfcmVzb2x2ZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1hfUEFUSF9SRVNVTFQgICAgICAgICAgICAoZ2RvbV94X3BhdGhfcmVzdWx0X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9YU0xUX1BST0NFU1NPUiAgICAgICAgICAgIChnZG9tX3hzbHRf
cHJvY2Vzc29yX2dldF90eXBlKCkpCitHX0VORF9ERUNMUworCisjZW5kaWYKSW5kZXg6IFdlYktp
dC9ndGsvd2Via2l0L2dkb20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9t
LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tLmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTYwIEBACisjaW5jbHVkZSA8d2Via2l0L2dkb21FdmVudFRhcmdldE5vZGUu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbURPTU9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9n
ZG9tQXR0ci5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tQmFySW5mby5oPgorI2luY2x1ZGUgPHdl
YmtpdC9nZG9tQ2FudmFzR3JhZGllbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUNhbnZhc1Bh
dHRlcm4uaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUNhbnZhc1BpeGVsQXJyYXkuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvZ2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9nZG9tQ0RBVEFTZWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21DaGFyYWN0ZXJE
YXRhLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21DbGlwYm9hcmQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvZ2RvbUNvbW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUNvbnNvbGUuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvZ2RvbUNvdW50ZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUNTU0NoYXJz
ZXRSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21DU1NGb250RmFjZVJ1bGUuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvZ2RvbUNTU0ltcG9ydFJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUNT
U01lZGlhUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tQ1NTUGFnZVJ1bGUuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvZ2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmg+CisjaW5jbHVkZSA8d2Via2l0L2dk
b21DU1NSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21DU1NSdWxlTGlzdC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9nZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9n
ZG9tQ1NTU3R5bGVSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21DU1NTdHlsZVNoZWV0Lmg+
CisjaW5jbHVkZSA8d2Via2l0L2dkb21DU1NWYWx1ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9t
Q1NTVmFsdWVMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21DU1NWYXJpYWJsZXNEZWNsYXJh
dGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tQ1NTVmFyaWFibGVzUnVsZS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9nZG9tRGF0YWJhc2UuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbURvY3VtZW50
RnJhZ21lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbURvY3VtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L2dkb21Eb2N1bWVudFR5cGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbURPTUFwcGxp
Y2F0aW9uQ2FjaGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbURPTUNvcmVFeGNlcHRpb24uaD4K
KyNpbmNsdWRlIDx3ZWJraXQvZ2RvbURPTUltcGxlbWVudGF0aW9uLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L2dkb21ET01QYXJzZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbURPTVNlbGVjdGlvbi5o
PgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tRE9NV2luZG93Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dk
b21FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21FbnRpdHkuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvZ2RvbUVudGl0eVJlZmVyZW5jZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tRXZlbnRF
eGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L2dkb21GaWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21GaWxlTGlzdC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9nZG9tSGlzdG9yeS5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tSFRNTEFuY2hv
ckVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxBcHBsZXRFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L2dkb21IVE1MQXJlYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
Z2RvbUhUTUxCYXNlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tSFRNTEJhc2VGb250
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MQm9keUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvZ2RvbUhUTUxCUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxCdXR0b25F
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MQ2FudmFzRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9nZG9tSFRNTENvbGxlY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2Rv
bUhUTUxEaXJlY3RvcnlFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MRGl2RWxl
bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tSFRNTERMaXN0RWxlbWVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9nZG9tSFRNTERvY3VtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1M
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tSFRNTEVtYmVkRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9nZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9nZG9tSFRNTEZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MRm9ybUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxGcmFtZUVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvZ2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
Z2RvbUhUTUxIZWFkRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tSFRNTEhlYWRpbmdF
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MSFJFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L2dkb21IVE1MSHRtbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhU
TUxJRnJhbWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MSW1hZ2VFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MSW5wdXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L2dkb21IVE1MSXNJbmRleEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhU
TUxMYWJlbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxMZWdlbmRFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MTElFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L2dkb21IVE1MTGlua0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxNYXBF
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MTWFycXVlZUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxNZW51RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9n
ZG9tSFRNTE1ldGFFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MTW9kRWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tSFRNTE9iamVjdEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvZ2RvbUhUTUxPTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhU
TUxPcHRHcm91cEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxPcHRpb25FbGVt
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaD4KKyNp
bmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L2dkb21IVE1MUGFyYW1FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MUHJl
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tSFRNTFF1b3RlRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9nZG9tSFRNTFNjcmlwdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
Z2RvbUhUTUxTZWxlY3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MU3R5bGVF
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvZ2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2Rv
bUhUTUxUYWJsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxUYWJsZVJvd0Vs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1MVGV4dEFyZWFFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L2dkb21IVE1MVGl0bGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21IVE1M
VUxpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21JbWFnZURhdGEuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvZ2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
Z2RvbUtleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbUxvY2F0aW9uLmg+Cisj
aW5jbHVkZSA8d2Via2l0L2dkb21NZWRpYUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbU1l
c3NhZ2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tTWltZVR5cGVBcnJheS5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9nZG9tTWltZVR5cGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbU1vdXNl
RXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbU11dGF0aW9uRXZlbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvZ2RvbU5hbWVkTm9kZU1hcC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tTmF2aWdh
dG9yLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21Ob2RlRmlsdGVyLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L2dkb21Ob2RlLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21Ob2RlSXRlcmF0b3IuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvZ2RvbU5vZGVMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21Ob3Rh
dGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tT3ZlcmZsb3dFdmVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9nZG9tUGx1Z2luQXJyYXkuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbVBsdWdpbi5o
PgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg+CisjaW5jbHVk
ZSA8d2Via2l0L2dkb21Qcm9ncmVzc0V2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21SYW5n
ZUV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tUmFuZ2UuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvZ2RvbVJlY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbVNjcmVlbi5oPgorI2luY2x1
ZGUgPHdlYmtpdC9nZG9tU1FMRXJyb3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbVNRTFJlc3Vs
dFNldC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9nZG9tU1FMVHJhbnNhY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2Rv
bVN0b3JhZ2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tU3RvcmFnZS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9nZG9tU3R5bGVTaGVldC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tU3R5bGVT
aGVldExpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbVRleHRFdmVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9nZG9tVGV4dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tVHJlZVdhbGtlci5oPgor
I2luY2x1ZGUgPHdlYmtpdC9nZG9tVUlFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbVdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbVdoZWVsRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
Z2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21YTUxI
dHRwUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9nZG9tWE1MU2VyaWFsaXplci5oPgorI2luY2x1ZGUgPHdlYmtpdC9n
ZG9tWFBhdGhFdmFsdWF0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbVhQYXRoRXhjZXB0aW9u
Lmg+CisjaW5jbHVkZSA8d2Via2l0L2dkb21YUGF0aEV4cHJlc3Npb24uaD4KKyNpbmNsdWRlIDx3
ZWJraXQvZ2RvbVhQYXRoTlNSZXNvbHZlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9nZG9tWFBhdGhS
ZXN1bHQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvZ2RvbVhTTFRQcm9jZXNzb3IuaD4KSW5kZXg6IFdl
YkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNv
cHkpCkBAIC0yLDYgKzIsNyBAQAogV2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQogCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVf
REVGSU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTIDo9CiBIVE1M
X0ZFQVRVUkVTIDo9CiAKQEAgLTksNiArMTAsNyBAQAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09S
RFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCiB3ZWJjb3JlX2NwcGZs
YWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsgXApAQCAtMjksNiArMzEsNyBAQAogCS1JJChzcmNkaXIpL1dlYkNv
cmUveG1sIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2h0bWwgXAogCS1JJChzcmNkaXIpL1dlYkNv
cmUvYmluZGluZ3MvanMgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbSBcCiAJ
LUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAJLUkkKHNyY2Rp
cikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAgXAogCS1JJChzcmNkaXIpL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmIFwKQEAgLTU1LDcgKzU4LDcgQEAKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JHQkNvbG9yLmx1dC5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVu
dEJhc2VUYWJsZS5jcHAKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJh
c2VUYWJsZS5jcHAgCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvQ1NTR3JhbW1hci5jcHAgXApAQCAtMzU4LDcgKzM2MSw1ODcgQEAKIAlEZXJpdmVkU291cmNl
cy9Vc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHls
ZVNoZWV0c0RhdGEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHAgXAotCURlcml2
ZWRTb3VyY2VzL1hNTE5hbWVzLmgKKwlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tQXR0ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21BdHRyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUJh
ckluZm8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0No
YXJzZXRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0NoYXJzZXRSdWxlLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ1NTRm9udEZhY2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NJbXBvcnRS
dWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUNTU01lZGlhUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NN
ZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUNTU1BhZ2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NQcmltaXRpdmVWYWx1
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21DU1NSdWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZURl
Y2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NTdHlsZVJ1bGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
U1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1N0eWxlU2hlZXQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYWx1ZUxpc3QuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
U1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ1NTVmFyaWFibGVzUnVs
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21DYW52YXNHcmFkaWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21D
YW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2FudmFzUGF0dGVybi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNQYXR0ZXJuLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1Bp
eGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tQ2hhcmFjdGVyRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tQ2xpcGJvYXJkLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ29tbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Db21tZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvbnNvbGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NQ29yZUV4Y2VwdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21ET01J
bXBsZW1lbnRhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9NUGFyc2VyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRE9N
U2VsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURPTVNlbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURP
TVdpbmRvdy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbURvY3VtZW50RnJh
Z21lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bURvY3VtZW50VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FbnRpdHku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRW50aXR5UmVmZXJl
bmNlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tRmlsZUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBbmNob3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbUhUTUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
QXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQXBwbGV0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRN
TEJSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQlJFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTEJhc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQmFzZUZv
bnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCYXNlRm9udEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MQm9k
eUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MQ2FudmFzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
Q2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERM
aXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxEaXZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRG9jdW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21IVE1MRW1iZWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
RmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGaWVsZFNldEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRm9ybUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MRnJhbWVT
ZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxIZWFkaW5nRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MSHRtbEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbWFn
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTElucHV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxJ
c0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExJRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMYWJl
bEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MTGlua0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTExp
bmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFwRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MTWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNYXJx
dWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1lbnVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxNZXRh
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxPTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9MaXN0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9w
dEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQ
YXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhZ3JhcGhF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUGFyYW1FbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbUhUTUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxQcmVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxTY3JpcHRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU2VsZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU3R5
bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxl
Q29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRhYmxlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhU
TUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFRp
dGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21IaXN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhpc3RvcnkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21J
bWFnZURhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tS2V5Ym9hcmRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21LZXli
b2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21Mb2NhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWVkaWFMaXN0
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTWVzc2FnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lc3NhZ2VFdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1pbWVUeXBlQXJyYXkuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tTW91c2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Nb3VzZUV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21NdXRhdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbU11dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5hbWVkTm9kZU1h
cC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbU5hdmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21OYXZpZ2F0b3Iu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
Tm9kZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlSXRlcmF0
b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21Ob2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21Ob2RlTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tTm90YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbU92ZXJmbG93RXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVBsdWdpbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUGx1Z2lu
QXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUHJv
Z3Jlc3NFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tUmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVJlY3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TY3JlZW4u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGV4dC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVRleHRF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21UcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21VSUV2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVdlYktpdEFu
aW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21XaGVlbEV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWE1MSHR0cFJlcXVlc3RF
eGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21YTUxT
ZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVhTTFRQcm9jZXNzb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21BdHRyLmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tQmFySW5mby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
QmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNEQVRBU2VjdGlvbi5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ0RBVEFTZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ1NTQ2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNT
U0NoYXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTRm9udEZhY2VSdWxl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21DU1NJbXBvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTTWVk
aWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NNZWRpYVJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUHJpbWl0aXZlVmFs
dWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTUnVs
ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1J1bGVMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5
bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DU1NWYWx1
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NT
VmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ1NTVmFyaWFibGVz
UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUNhbnZhc1BhdHRlcm4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNh
bnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNQaXhlbEFycmF5LmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvcHJpdmdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21DaGFyYWN0ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ2xpcGJvYXJk
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Db21t
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50
ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NSW1w
bGVtZW50YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTUltcGxlbWVudGF0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21ET01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21E
T01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTVNlbGVjdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURPTVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3VtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbURvY3Vt
ZW50VHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRG9jdW1lbnRUeXBlLmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUVudGl0eS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tRW50aXR5UmVmZXJlbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FbnRpdHlS
ZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21FdmVu
dEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRXZlbnRFeGNlcHRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21GaWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tRmlsZUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUZpbGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTEFuY2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFwcGxldEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBcHBsZXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQlJF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEJhc2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
QmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQm9keUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxCb2R5RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MQnV0dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxDb2xsZWN0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRN
TERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRGl2RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxFbWJlZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
RmllbGRTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEZvbnRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxGcmFt
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhU
TUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MSHRtbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJ
RnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSUZyYW1lRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MSW5wdXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTElz
SW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MSXNJbmRleEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTExhYmVsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
SFRNTExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMZWdlbmRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTGVnZW5kRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tSFRNTE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxN
YXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1hcnF1ZWVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxNZXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1ldGFF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPYmpl
Y3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MT2JqZWN0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxP
cHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUGFyYWdyYXBoRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MUHJlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MUXVvdGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tSFRNTFNlbGVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFN0eWxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1M
VGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21I
VE1MVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MVGl0bGVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhp
c3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21JbWFnZURhdGEuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUphdmFT
Y3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tTG9jYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTWVkaWFMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJp
dmdkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lc3NhZ2VF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1p
bWVUeXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU1pbWVUeXBlQXJyYXku
aCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0
YXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTXV0YXRpb25FdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
TmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21OYXZpZ2F0b3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Ob2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUZpbHRlci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbU5vZGVJdGVyYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUl0ZXJh
dG9yLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tTm90
YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbU5vdGF0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdpbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVBsdWdp
bkFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21Qcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9t
UmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVJhbmdlLmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmVjdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU2NyZWVuLmggXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3By
aXZnZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVN0eWxlU2hlZXRM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9wcml2Z2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVRyZWVXYWxrZXIuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
cHJpdmdkb21VSUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0QW5pbWF0
aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVdlYktpdEFuaW1hdGlvbkV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgg
XAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9wcml2Z2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L3ByaXZnZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21YTUxTZXJpYWxpemVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YTUxTZXJpYWxp
emVyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tWFNMVFByb2Nlc3Nvci5oICBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggCiAKIElETF9CSU5ESU5H
UyArPSAgXAogCVdlYkNvcmUvY3NzL0NvdW50ZXIuaWRsIFwKQEAgLTcwMSw2ICsxMjg0LDE2IEBA
CiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU3Ry
aW5nU291cmNlUHJvdmlkZXIuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5n
LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9nZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L2dkb21ET01PYmplY3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2Jq
ZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmggXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL3ByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmggXAogCVdlYkNvcmUvYnJpZGdlL05QX2pzb2Jq
ZWN0LmNwcCBcCiAJV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuaCBcCiAJV2ViQ29yZS9icmlk
Z2UvYy9jX2NsYXNzLmNwcCBcCkBAIC0yMDA4LDkgKzI2MDEsMTIgQEAKICMgLS0tLQogaWYgRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAogd2ViY29yZV9idWlsdF9z
b3VyY2VzICs9IFwKLQlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCisJ
RGVyaXZlZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2Rv
bURPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKQEAgLTIwNTIsNiArMjY0OCw3
IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9EQVRBQkFTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX0RBVEFCQVNFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9E
QVRBQkFTRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
SlNEYXRhYmFzZS5jcHAgXApAQCAtMjA2Myw3ICsyNjYwLDI3IEBACiAJRGVyaXZlZFNvdXJjZXMv
SlNTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxSZXN1bHRT
ZXRSb3dMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uY3BwIFwKLQlE
ZXJpdmVkU291cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmgKKwlEZXJpdmVkU291cmNlcy9KU1NRTFRy
YW5zYWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21EYXRhYmFzZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMRXJyb3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNRTFJlc3VsdFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TUUxSZXN1bHRTZXQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1FMVHJhbnNhY3Rp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21EYXRhYmFzZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxF
cnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2
Z2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNl
dFJvd0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVNRTFJlc3VsdFNldFJvd0xp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL3ByaXZnZG9tU1FMVHJhbnNhY3Rpb24uaAogCiBJRExfQklORElOR1MgKz0g
XAogCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXApAQCAtMjEzOCwxMiArMjc1NSwyMSBA
QAogIyAtLS0tCiBpZiBFTkFCTEVfRE9NX1NUT1JBR0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFC
TEVfRE9NX1NUT1JBR0U9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRT
b3VyY2VzL0pTU3RvcmFnZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU3Rv
cmFnZUV2ZW50LmgKKwlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU3RvcmFnZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TdG9yYWdlLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU3RvcmFnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9wcml2Z2RvbVN0b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tU3Rv
cmFnZUV2ZW50LmgKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZS5pZGwgXApAQCAtMjIwMyw2ICsyODI5LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCiBG
RUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJ
TkVTX0dET00gKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklE
RU89MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMjI1LDcgKzI4
NTIsMzUgQEAKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9KU1RpbWVSYW5nZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suY3Bw
IFwKLQlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMvSlNW
b2lkQ2FsbGJhY2suaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbUhUTUxBdWRpb0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tSFRNTE1lZGlhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1M
TWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21IVE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tSFRNTFZpZGVvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21I
VE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21NZWRpYUVycm9yLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tVGltZVJhbmdlcy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVZvaWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxBdWRpb0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvcHJpdmdkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvcHJpdmdkb21IVE1MTWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tSFRNTFNvdXJjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbUhUTUxT
b3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tSFRNTFZpZGVvRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9wcml2Z2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9w
cml2Z2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UaW1lUmFuZ2Vz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21Wb2lkQ2FsbGJhY2suaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvaHRtbC9IVE1M
QXVkaW9FbGVtZW50LmlkbCBcCkBAIC0yMjY5LDYgKzI5MjQsNyBAQAogIyAtLS0tCiBpZiBFTkFC
TEVfWFBBVEgKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YUEFUSD0xCitG
RUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfWFBBVEg9MQogCiB3ZWJjb3JlX2NwcGZsYWdz
ICs9IC1ERU5BQkxFX1hQQVRIPTEKIApAQCAtMjI4NCw3ICsyOTQwLDI3IEBACiAJRGVyaXZlZFNv
dXJjZXMvSlNYUGF0aFJlc3VsdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTWFBhdGhSZXN1bHQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMv
WFBhdGhHcmFtbWFyLmgKKwlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQ
YXRoRXZhbHVhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tWFBhdGhFeHByZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoRXhw
cmVzc2lvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tWFBhdGhSZXN1bHQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV2YWx1YXRvci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdk
b21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhFeGNl
cHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvcHJpdmdkb21YUGF0aEV4cHJlc3Npb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9wcml2Z2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3ByaXZn
ZG9tWFBhdGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL3ByaXZnZG9tWFBhdGhSZXN1
bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9wcml2Z2RvbVhQYXRoUmVzdWx0LmgKIAogSURMX0JJ
TkRJTkdTICs9IFwKIAlXZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwgXApAQCAtMjM0OSw2
ICszMDI1LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1hTTFQKIEZFQVRVUkVfREVGSU5FU19KQVZB
U0NSSVBUICs9IEVOQUJMRV9YU0xUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9Y
U0xUPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YU0xUPTEKIApAQCAtMjM3Miw2
ICszMDQ5LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1NWRwogRkVBVFVSRV9ERUZJTkVTX0pBVkFT
Q1JJUFQgKz0gRU5BQkxFX1NWRz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NW
Rz0xIC0gYmlnIFRPRE8hIDopCiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTICs9ICQoV2Vi
Q29yZSkvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gCiBXRUJDT1JFX0NTU19WQUxVRV9LRVlX
T1JEUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNjQ5LDYg
KzMzMjcsMjczIEBACiAJRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9YTGlua05hbWVzLmNwcAogCitub3QteWV0OgorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdB
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0FuaW1hdGVkQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkQm9vbGVh
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVk
SW50ZWdlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdBbmltYXRlZExlbmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVk
TnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0FuaW1hdGVkTnVtYmVyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdBbmltYXRlZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0ZWRS
ZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHQW5pbWF0
aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdBbmltYXRpb25FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDaXJjbGVFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0NpcmNsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0NsaXBQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDbGlwUGF0aEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0NvbG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
Q3Vyc29yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdDdXJzb3JFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRGVmc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RGVmc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0Rlc2NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdEb2N1bWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFu
Y2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRWxlbWVudEluc3RhbmNlLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdF
bGxpcHNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdFbGxpcHNlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVu
ZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVCbGVuZEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFQ29tcG9zaXRlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHRkVGbG9vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZF
RnVuY0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY0FFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNCRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdGRUZ1bmNCRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVGdW5jR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVGdW5jR0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUlt
YWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRUltYWdlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRkVNZXJnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU1lcmdl
Tm9kZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRU9mZnNldEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVNw
b3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRkVTcG90TGlnaHRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGRVRpbGVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRmlsdGVyRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGaWx0ZXJFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdGb250RmFjZU5hbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFj
ZVNyY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VTcmNFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
R0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHR0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b21TVkdHbHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0dyYWRpZW50RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0ltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xlbmd0aC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR0xlbmd0aExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGVuZ3RoTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hcmtlckVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTWFza0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZH
TWFza0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01hdHJpeC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdNYXRyaXguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01l
dGFkYXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdNZXRhZGF0YUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR051bWJl
ci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWlu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYWludC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tU1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWcuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNl
Z0FyY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjQWJzLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdBcmNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdDbG9zZVBhdGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0
aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJl
bC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b0Ficy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BhdGhTZWdMaW5ldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNl
Z0xpbmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNh
bEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHUGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BhdGhT
ZWdNb3ZldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b0Fi
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb21TVkdQYXR0ZXJuRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQYXR0
ZXJuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9pbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHUG9pbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1BvaW50
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2ludExpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1BvbHlnb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1BvbHlnb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdQb2x5bGluZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUG9seWxpbmVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlY3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHUmVjdEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1JlbmRlcmluZ0ludGVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb21TVkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbVNWR1NWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU1ZHRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb21TVkdTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1NldEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0b3BFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbVNWR1N0b3BFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdTdHJpbmdM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N0cmluZ0xpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbVNWR1N0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1N3aXRjaEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHU3dpdGNoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21T
VkdTeW1ib2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHVFNwYW5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RT
cGFuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tU1ZHVGV4dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tU1ZHVGV4dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQYXRoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUZXh0UGF0aEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tU1ZHVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1Rp
dGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHVHJhbnNmb3JtLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1RyYW5zZm9ybS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
U1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdUcmFuc2Zvcm1M
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVbml0VHlwZXMuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tU1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdVc2VF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbVNWR1VzZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bVNWR1ZpZXdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb21TVkdab29tRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9CSU5ESU5HUyAr
PSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcv
U1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTMyMjgsMzYgKzQxNzMsNDIgQEAKICMgU1ZHIEZlYXR1cmVz
CiBpZiBFTkFCTEVfU1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19VU0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfVVNFPTEgIyBi
aWcgVE9ETyEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJjb3JlX2NwcGZs
YWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVD0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT1JFSUdOX09C
SkVDVD0xIAogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogd2Vi
Y29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogZW5kaWYKIAog
aWYgRU5BQkxFX1NWR19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19GT05UUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT05UUz0x
CiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9
IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZJTFRFUlMKIEZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCisjRkVBVFVS
RV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19GRUFUVVJFUyArPSBF
TkFCTEVfU1ZHX0ZJTFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRklM
VEVSUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FT
X0lNQUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVu
ZGlmCiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5B
QkxFX1NWR19BTklNQVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9O
PTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpA
QCAtMzI2NSwxMyArNDIxNiwxNCBAQAogIyBTVkcgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMgKG5l
ZWQgdG8gcGFzcyBhbiBleHRyYSBmbGFnIGlmIHN2ZyBleHBlcmltZW50YWwgZmVhdHVyZXMgYXJl
IGVuYWJsZWQpCiBEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHA6IERlcml2ZWRTb3VyY2VzL1NW
R0VsZW1lbnRGYWN0b3J5LmNwcDsKIERlcml2ZWRTb3VyY2VzL0pTU1ZHRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCitEZXJpdmVk
U291cmNlcy9nZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMv
U1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwogRGVyaXZlZFNvdXJjZXMvU1ZH
RWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29y
ZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkkKFBFUkwpIC1J
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0
YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmluZXMg
IiQoU1ZHX0ZFQVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAt
SSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3Zn
dGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVz
ICIkKFNWR19GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIGVsc2UKIERl
cml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9u
YW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJz
LmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChX
ZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmlu
IC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAk
KFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiAK
IGVuZGlmICMgU1ZHX0ZMQUdTCiAKQEAgLTMyODAsNyArNDIzMiw3IEBACiBEZXJpdmVkU291cmNl
cy9YTGlua05hbWVzLmg6IERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwOwogCiBEZXJpdmVk
U291cmNlcy9YTGlua05hbWVzLmNwcCA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChX
ZWJDb3JlKS9zdmcveGxpbmthdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0
RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGlyICIk
KEdFTlNPVVJDRVMpIiAKIAogZW5kaWYgIyBFTkQgRU5BQkxFX1NWRwogCkBAIC0zMzYxLDE2ICs0
MzEzLDE2IEBACiAKIGlmIEhUTUxfRkxBR1MKIERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHA6
ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1l
cy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAtSSQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxU
YWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4g
LS1leHRyYURlZmluZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJD
RVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQo
V2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKEhUTUxfRkVBVFVSRVMpIiAtLW91
dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiBlbHNlCiBEZXJpdmVkU291cmNlcy9IVE1MTmFtZXMu
Y3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFn
TmFtZXMuaW4gJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgotCSQoUEVSTCkg
LUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9I
VE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2Jp
bmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4g
LS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tb3V0cHV0RGly
ICIkKEdFTlNPVVJDRVMpIiAKIGVuZGlmICMgSFRNTF9GTEFHUwogCiBEZXJpdmVkU291cmNlcy9Y
TUxOYW1lcy5oOiBEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2Vz
L1hNTE5hbWVzLmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3ht
bC94bWxhdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwg
LS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VS
Q0VTKSIKKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMg
JChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAog
CiB2cGF0aCAlLmlkbCA9IFwKICAgICAkKFdlYkNvcmUpIFwKQEAgLTMzODYsNiArNDMzOCwxNSBA
QAogICAgICQoV2ViQ29yZSkveG1sIFwKICAgICAkKFdlYkNvcmUpL3BsdWdpbnMKIAorRGVyaXZl
ZFNvdXJjZXMvcHJpdmdkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dkb20lLmg7CisKK0Rlcml2ZWRT
b3VyY2VzL3ByaXZnZG9tJS5jcHA6IERlcml2ZWRTb3VyY2VzL2dkb20lLmNwcDsKKworRGVyaXZl
ZFNvdXJjZXMvZ2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbSUuY3BwOworCitEZXJpdmVkU291
cmNlcy9nZG9tJS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUt
YmluZGluZ3MucGwgLS1pbmNsdWRlICQoV2ViQ29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUp
L2h0bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkvY3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2Ug
LS1pbmNsdWRlICQoV2ViQ29yZSkveG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1
dERpciAiJChHRU5TT1VSQ0VTKSIgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FU19HRE9NKSIg
LS1nZW5lcmF0b3IgR09iamVjdCAkPAorCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNv
dXJjZXMvSlMlLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRT
X0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CkBAIC0zNDAxLDYgKzQzNjIsNyBAQAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVz
UGFyc2VyLnBtIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3Mu
cGwgXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gXAorCVdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBcCiAJV2ViQ29y
ZS9jc3MvaHRtbDQuY3NzIFwKIAlXZWJDb3JlL2Nzcy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nz
cy92aWV3LXNvdXJjZS5jc3MgXApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21FdmVu
dFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
RXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9nZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5n
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcu
aCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tRXZlbnRUYXJn
ZXROb2RlLmgiCisjaW5jbHVkZSAicHJpdmdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRl
ICJnbGliLW9iamVjdC5oIgorCitjbGFzcyBHU3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgor
ICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJp
bmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAg
R1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBn
X3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9Cit9OworCitleHRlcm4gIkMiIHsK
KworI2RlZmluZSBfR19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKQor
Cit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdk
b21FdmVudFRhcmdldE5vZGUgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
CisJLyoKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtID0gZ2RvbV9ldmVudF90
YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh0aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZXZl
bnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJpbmcoZXZlbnRfdGFyZ2V0X25v
ZGVfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRFdmVudFRhcmdldE5vZGUoX2dfZXZlbnRfdGFy
Z2V0X25vZGVfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21FdmVudFRh
cmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAi
Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZnZG9tRXZlbnRUYXJnZXROb2Rl
LmgiCisjaW5jbHVkZSAiaW50Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgInByaXZn
ZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNp
bmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSAiZ2RvbUV2ZW50LmgiCitlbnVtIHsK
KyAgICBCUk9XU0VSX0VWRU5ULAorCUxBU1RfU0lHTkFMCit9OworCitzdGF0aWMgZ3VpbnQgZXZl
bnRfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CisKKworV2ViQ29yZTo6Tm9kZSAqCitn
ZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJl
cXVlc3QpCit7CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZSAqcmVzOworCXJlcyA9IHN0YXRpY19j
YXN0PEdET01FdmVudFRhcmdldE5vZGUqPihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RP
TV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7CisJcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29y
ZTo6Tm9kZSo+KHJlcy0+aW1wbCgpKTsKK30KKworCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVf
VFlQRShHZG9tRXZlbnRUYXJnZXROb2RlLCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlLCBHRE9NX1RZ
UEVfTk9ERSk7CisKKy8qCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIHsKKyAg
ICBjbGFzcyBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKml0ZW07Cit9OyAgCisqLworCisjZGVm
aW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RB
TkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21F
dmVudFRhcmdldE5vZGVQcml2YXRlKSkKKworLyoKK3ZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25v
ZGVfc2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCwgV2ViQ29yZTo6RXZl
bnRUYXJnZXROb2RlICogaXRlbSkKK3sKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSog
cHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAg
cHJpdi0+aXRlbSA9IGl0ZW07Cit9CisqLworCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3Rhcmdl
dF9ub2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvKkdkb21FdmVudFRhcmdl
dE5vZGUqIHJlcXVlc3QgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iamVjdCk7CisgICAgR2Rv
bUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisgICAgCisg
ICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9wYXJlbnRfY2xhc3MpLT5m
aW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2Rl
X2NsYXNzX2luaXQoR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisJ
ZXZlbnRfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVu
dCIsCisJCUdfVFlQRV9GUk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisJCShHU2lnbmFsRmxhZ3Mp
KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKwkJMCwKKwkJTlVMTCwKKwkJ
TlVMTCwKKwkJd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisJCUdfVFlQRV9O
T05FLCAyLAorCQlHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKworICAgIEdfT0JK
RUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9maW5hbGl6ZTsKKworICAgIC8qZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFz
cywgc2l6ZW9mKEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZv
aWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVl
c3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZF
TlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9
IHByaXY7Ki8KK30gICAKKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL2dkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9nZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9r
ZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAq
LworCisjaWZuZGVmIF9fR2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18KKyNkZWZpbmUgX19HZG9tRXZl
bnRUYXJnZXROb2RlX0hfXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0cnVjdCBf
R2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3M7CisKKyNk
ZWZpbmUgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFICAgICAgICAgICAgKGdkb21fZXZlbnRf
dGFyZ2V0X25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERShv
YmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZ
UEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGUpKQorI2RlZmluZSBHRE9N
X0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0
Tm9kZUNsYXNzKSkKKyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9ERShvYmopICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFS
R0VUX05PREUpKQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNTKGtsYXNz
KSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVOVF9UQVJH
RVRfTk9ERSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX0NMQVNTKG9iaikg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdF
VF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGU7CisKKyNp
bmNsdWRlICJnZG9tTm9kZS5oIgorCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgeworICAg
IEdkb21Ob2RlIHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21FdmVudFRhcmdldE5vZGVQcml2
YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgeworICAg
IEdkb21Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorZ2Rv
bV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgdm9pZAor
Z2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50X3RhcmdldF9ub2RlIChHZG9tRXZlbnRU
YXJnZXROb2RlICp0aGl6KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8qIF9fR2RvbUV2ZW50
VGFyZ2V0Tm9kZV9IX18gKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9t
RXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3By
aXZnZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vcHJpdmdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdo
dG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKwor
I2lmbmRlZiBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX1BSSVZfCisjZGVmaW5lIF9fR0RPTUV2
ZW50VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1
ZGUgInByaXZnZG9tTm9kZS5oIgorY2xhc3MgV2ViQ29yZTo6Tm9kZTsKKwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKKworV0VCS0lUX0FQ
SSBXZWJDb3JlOjpOb2RlICoKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2Rv
bUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCk7CisKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vZ2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL2dkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL2dkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRv
a2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUgIkNTdHJp
bmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmlu
Zy5oIgorI2luY2x1ZGUgImdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5o
IgorCitleHRlcm4gIkMiIHsKKwordm9pZAorZ2RvbV9kb21fb2JqZWN0X2luaXRfZG9tX29iamVj
dCAoR2RvbURPTU9iamVjdCAqdGhpeikKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTsK
KwkvKgorICAgIFdlYkNvcmU6OkRPTU9iamVjdCAqIGl0ZW0gPSBnZG9tX2RvbV9vYmplY3RfZ2V0
X3ByaXZhdGUodGhpeik7CisgICAgV2ViQ29yZTo6U3RyaW5nIF9nX2RvbV9vYmplY3RfdHlwZV9h
cmcgPSBXZWJDb3JlOjpTdHJpbmcoZG9tX29iamVjdF90eXBlX2FyZyk7CisgICAgaXRlbS0+aW5p
dERPTU9iamVjdChfZ19kb21fb2JqZWN0X3R5cGVfYXJnKTsKKwkqLworfQorCit9IC8qIGV4dGVy
biAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vcHJpdmdkb21ET01PYmpl
Y3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9N
T2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0Pgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgImdk
b21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAicHJpdmdk
b21ET01PYmplY3QuaCIKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbURPTU9i
amVjdCwgZ2RvbV9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKTsKKworc3RydWN0IF9HZG9tRE9N
T2JqZWN0UHJpdmF0ZSB7CisgICAgIEdET01PYmplY3QgKm1fbm9kZTsKK307ICAKKworI2RlZmlu
ZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9Q
UklWQVRFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdFByaXZhdGUp
KQorCit2b2lkCitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVx
dWVzdCwgR0RPTU9iamVjdCAqIGl0ZW0pCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHBy
aXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcHJpdi0+bV9u
b2RlID0gaXRlbTsKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5yZWYoKTsqLworfQorCitH
RE9NT2JqZWN0ICoKK2dkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpy
ZXF1ZXN0KQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JK
RUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJldHVybiBwcml2LT5tX25vZGU7Cit9CisK
K3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7
CisgICAgR2RvbURPTU9iamVjdCogcmVxdWVzdCA9IEdET01fRE9NX09CSkVDVChvYmplY3QpOwor
ICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICAKKyAg
ICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5kZXJlZigpOyovCisJZGVsZXRlIHByaXYtPm1fbm9k
ZTsgLyogY2FsbHMgbV9pbXBsLT5kZXJlZigpICovCisKKyAgICBHX09CSkVDVF9DTEFTUyhnZG9t
X2RvbV9vYmplY3RfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGlj
IHZvaWQgZ2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQoR2RvbURPTU9iamVjdENsYXNzKiByZXF1
ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxpemUg
PSBnZG9tX2RvbV9vYmplY3RfZmluYWxpemU7CisgICAgCisgICAgZ190eXBlX2NsYXNzX2FkZF9w
cml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21ET01PYmplY3RQcml2YXRlKSk7Cit9CisK
K3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9pbml0KEdkb21ET01PYmplY3QqIHJlcXVlc3Qp
Cit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VU
X1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Cit9ICAgCisKK30g
LyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4MiBAQAorLyoKKyAqIFRISVMgRklMRSBJUyBERVJJVkVE
IEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFURUQgRklMRS4KKyAqICBrZWVwaW5nIGl0IHVw
LXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqICBhIG1ha2Vf
bmFtZXMucGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUKKyAqICBnZW5lcmF0
ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggYXMgaW5wdXQuCisg
KgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRl
ciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpbmNsdWRlICJnZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxBcmVhRWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
SFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MQmxvY2txdW90ZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhU
TUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MRGlyZWN0b3J5
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxFbWJlZEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1M
Rm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTEZyYW1lU2V0RWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxJRnJhbWVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MSXNJbmRleEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1M
TGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MTWFwRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRN
TE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MT0xpc3RFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFBhcmFncmFwaEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFBhcmFtRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21I
VE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MUXVvdGVFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbUhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxTZWxlY3RF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbUhUTUxUaXRsZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEFuY2hvckVsZW1l
bnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEFwcGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxCYXNlRWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MQm9k
eUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUg
ImludGdkb21IVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MQ2FudmFz
RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgor
I2luY2x1ZGUgImludGdkb21IVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2Rv
bUhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50
LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2Rv
bUhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEVtYmVkRWxlbWVudC5o
IgorI2luY2x1ZGUgImludGdkb21IVE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50
Z2RvbUhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MRm9ybUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdk
b21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxIZWFkaW5nRWxl
bWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJp
bnRnZG9tSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSHRtbEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRn
ZG9tSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MSW5wdXRFbGVtZW50
LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxMZWdlbmRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRn
ZG9tSFRNTExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxNYXBFbGVtZW50Lmgi
CisjaW5jbHVkZSAiaW50Z2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdk
b21IVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTE1ldGFFbGVtZW50Lmgi
CisjaW5jbHVkZSAiaW50Z2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2Rv
bUhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTE9wdEdyb3VwRWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgImlu
dGdkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MUGFyYW1F
bGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFNjcmlwdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJpbnRnZG9tSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisj
aW5jbHVkZSAiaW50Z2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiaW50Z2Rv
bUhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tSFRNTFRpdGxlRWxlbWVu
dC5oIgorI2luY2x1ZGUgImludGdkb21IVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUhUTUxVTGlzdEVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCisj
aW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXBwbGV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
QmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNhcHRpb25F
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJh
bWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhSRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGFiZWxF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
TElFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFVMaXN0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit0eXBlZGVmIEdET01Ob2RlKiAoKkNyZWF0ZUhU
TUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uKShQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlQW5jaG9yV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxBbmNob3JFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUFwcGxldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXBwbGV0RWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MQXBwbGV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxBcmVhRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MQXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlQmFzZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJh
c2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUJhc2VGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNlRm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJh
c2VGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVCbG9ja3F1b3RlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCbG9ja3F1b3RlRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MQmxvY2txdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlQm9keVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQm9keUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEJvZHlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUJSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxCUkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJSRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCdXR0b25X
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTEJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQ2FudmFzV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxDYW52YXNFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2FwdGlv
bldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVD
YXB0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVUYWJsZUNvbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVDb2xFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxUYWJsZUNvbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlTW9kV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNb2RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNb2RF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURp
cmVjdG9yeVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MRGlyZWN0b3J5RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGly
ZWN0b3J5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVEaXZXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpdkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERpdkVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRExpc3RX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTERMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRExpc3RFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUVtYmVkV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxFbWJlZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGaWVsZFNldFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MRmllbGRTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGaWVsZFNldEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRm9udFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MRm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvbnRFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZvcm1XcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZv
cm1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRnJhbWVFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZyYW1lU2V0RWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVTZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhlYWRpbmdF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkaW5nRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIZWFkRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlSFJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhSRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MSFJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUh0bWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEh0bWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIdG1s
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJ
RnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTElGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSW1h
Z2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTEltYWdlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlucHV0V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxJbnB1dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJc0luZGV4V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxJc0luZGV4RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGFiZWxXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTExhYmVsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGFiZWxFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxlZ2VuZFdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MTGVnZW5kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGVnZW5kRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMSVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTElF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxMSUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGlua1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTGlua0VsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTExpbmtFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZU1hcFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFwRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MTWFwRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVNYXJxdWVlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNYXJxdWVlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
TWFycXVlZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlTWVudVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MTWVudUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1lbnVF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1l
dGFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTE1ldGFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNZXRhRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPYmplY3RXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTE9iamVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT0xpc3RXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTE9MaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT0xpc3RFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxPcHRHcm91cEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPcHRpb25XcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTE9wdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUGFyYWdyYXBoV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJhZ3JhcGhFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBhcmFtV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxQYXJhbUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQcmVXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTFByZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFByZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFF1b3Rl
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNjcmlwdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU2NyaXB0RWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTZWxlY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNlbGVjdEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU3R5bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFN0eWxlRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MU3R5bGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFRhYmxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVDZWxsV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJs
ZUNlbGxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNlbGxFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRleHRBcmVhV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxUZXh0QXJlYUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUaXRsZVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MVGl0bGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVSb3dXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TFRhYmxlUm93RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVSb3dFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVVMaXN0V3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxVTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFVMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworR0RPTU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHN0YXRpYyBIYXNoTWFwPFdlYkNvcmU6OkF0
b21pY1N0cmluZ0ltcGwqLCBDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbj4gbWFwOwor
ICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7CisgICAgICAgbWFwLnNldChhVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlQW5jaG9yV3JhcHBlcik7CisgICAgICAgbWFwLnNldChhcHBsZXRUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBcHBsZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBcmVhV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChiYXNlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmFzZVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoYmFzZWZvbnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNl
Rm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmxvY2txdW90ZVRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJvZHlUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCb2R5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChi
clRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJSV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChidXR0b25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCdXR0b25XcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGNhbnZhc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUNhbnZhc1dy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoY2FwdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY29sVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRlbFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
ZGlyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGlyZWN0b3J5V3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChkaXZUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXZXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGRsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRExpc3RXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGVtYmVkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
RW1iZWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZpZWxkc2V0VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlRmllbGRTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZvbnRUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb250V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb3Jt
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9ybVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGcmFtZVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoZnJhbWVzZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGcmFtZVNl
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoZWFkVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlSGVhZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaHJUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVIUldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaHRtbFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUh0bWxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlmcmFt
ZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlGcmFtZVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoaW1nVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGlucHV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW5wdXRXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGlzaW5kZXhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVJc0luZGV4V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsYWJlbFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUxhYmVsV3JhcHBlcik7CisgICAgICAgbWFwLnNldChsZWdlbmRUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMZWdlbmRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxp
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTElXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGxpbmtUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMaW5rV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChtYXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNYXBXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KG1hcnF1ZWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNYXJxdWVl
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChtZW51VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlTWVudVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWV0YVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZU1ldGFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9iamVjdFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZU9iamVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob2xUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPTGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
b3B0Z3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRHcm91cFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQob3B0aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0aW9u
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
UGFyYWdyYXBoV3JhcHBlcik7CisgICAgICAgbWFwLnNldChwYXJhbVRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVBhcmFtV3JhcHBlcik7CisgICAgICAgbWFwLnNldChwcmVUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHFUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVRdW90ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2Ny
aXB0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2NyaXB0V3JhcHBlcik7CisgICAgICAg
bWFwLnNldChzZWxlY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KHN0eWxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU3R5
bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRhYmxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlVGFibGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRib2R5VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0ZFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQodGV4dGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUZXh0QXJlYVdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQodGl0bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVU
aXRsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVUYWJsZVJvd1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQodWxUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVVTGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY29sZ3JvdXBUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoaDJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChoM1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGg0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGlu
Z1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNlRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGltYWdlVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGluc1Rh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
a2V5Z2VuVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChsaXN0aW5nVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBl
cik7CisgICAgICAgbWFwLnNldCh0Zm9vdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRh
YmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGhUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoZWFkVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFw
LnNldCh4bXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICB9
CisJcHJpbnRmKCJjcmVhdGVHRE9NSFRNTFdyYXBwZXI6ICVzXG4iLCBlbGVtZW50LT5sb2NhbE5h
bWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBDcmVhdGVIVE1MRWxlbWVudFdyYXBw
ZXJGdW5jdGlvbiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24gPSBtYXAuZ2V0KGVsZW1lbnQtPmxvY2Fs
TmFtZSgpLmltcGwoKSk7CisgICAgaWYgKGNyZWF0ZVdyYXBwZXJGdW5jdGlvbikKKyAgICAgICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbihlbGVtZW50KTsKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MRWxlbWVudChlbGVtZW50LmdldCgpKTsKK30KKworfQorCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgwMiBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3Jn
KQorICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBX
ZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworLy8gZ2NjIDMueCBjYW4ndCBoYW5kbGUgaW5jbHVkaW5nIHRoZSBIYXNoTWFw
IHBvaW50ZXIgc3BlY2lhbGl6YXRpb24gaW4gdGhpcyBmaWxlCisjaWYgZGVmaW5lZCBfX0dOVUNf
XyAmJiAhZGVmaW5lZCBfX0dMSUJDWFhfXyAvLyBsZXNzIHRoYW4gZ2NjIDMuNAorI2RlZmluZSBI
QVNIX01BUF9QVFJfU1BFQ19XT1JLQVJPVU5EIDEKKyNlbmRpZgorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5j
bHVkZSAiZ2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgInByaXZnZG9tRE9NT2JqZWN0LmgiCisj
aW5jbHVkZSAiR0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1lbnRXcmFwcGVy
RmFjdG9yeS5oIgorCisjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgImdkb21D
U1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1N0eWxlU2hlZXQuaCIKKworI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW1h
Z2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiZ2RvbU5vZGUu
aCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImludGdkb21Ob2RlLmgiCisjaW5j
bHVkZSAiZ2RvbU5vZGUuaCIKKworI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDREFUQVNl
Y3Rpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJFbnRpdHkuaCIKKyNpbmNsdWRlICJFbnRp
dHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21F
dmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tQXR0ci5oIgorI2luY2x1ZGUgImludGdk
b21BdHRyLmgiCisjaW5jbHVkZSAiZ2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJnZG9t
VGV4dC5oIgorI2luY2x1ZGUgImdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJnZG9tQ29t
bWVudC5oIgorI2luY2x1ZGUgImdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgImdkb21Eb2N1bWVu
dEZyYWdtZW50LmgiCisjaW5jbHVkZSAiZ2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgImdk
b21FbnRpdHkuaCIKKyNpbmNsdWRlICJnZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb21DU1NW
YWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJnZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRl
ICJnZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiZ2RvbU5vdGF0aW9uLmgiCisjaW5j
bHVkZSAiZ2RvbUhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgImdkb21Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNs
dWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRl
ICJnZG9tQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAi
Q1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUg
IkNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NT
U3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgImdk
b21DU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgImdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNp
bmNsdWRlICJnZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgImdkb21DU1NNZWRpYVJ1bGUu
aCIKKyNpbmNsdWRlICJnZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tQ1NTU3R5bGVS
dWxlLmgiCisjaW5jbHVkZSAiZ2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgImludGdkb21FdmVudC5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJk
LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tQ2xpcGJvYXJkLmgiCisjaW5j
bHVkZSAiZ2RvbUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tTWVzc2FnZUV2ZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tTXV0YXRpb25FdmVu
dC5oIgorI2luY2x1ZGUgImdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVByb2dy
ZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVVJ
RXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRl
ICJnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVdoZWVsRXZlbnQu
aCIKKyNpbmNsdWRlICJnZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVk
ZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUg
Ik1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJNdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiT3Zl
cmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0
RXZlbnQuaCIKKyNpbmNsdWRlICJVSUV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJX
aGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisK
KyNpbmNsdWRlICJnZG9tSFRNTENvbGxlY3Rpb24uaCIKKworI2luY2x1ZGUgIkF0b21pY1N0cmlu
Zy5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmgiCisvLyBUT0RPICNpbmNsdWRlICJpbnRnZG9tSFRNTEFsbENvbGxlY3Rpb24u
aCIKKy8vIFRPRE8gI2luY2x1ZGUgImdkb21IVE1MQWxsQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUg
Imdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKy8vIGVyci4uLiAjaW5jbHVkZSAiaW50Z2Rv
bU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisvLyBlcnIuLi4gI2luY2x1ZGUgImdkb21OYW1lZE5v
ZGVzQ29sbGVjdGlvbi5oIgorCisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorI2luY2x1ZGUgImdk
b21TdG9yYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKKyNlbmRpZgorCisj
aWYgRU5BQkxFKFNWRykKKyNpZiAwIC8qIFRPRE8gKi8KKyNpbmNsdWRlICJpbnRnZG9tU1ZHWm9v
bUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIlNWR1pv
b21FdmVudC5oIgorI2VuZGlmCisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBY
WFggVE9ETyAqLworI2luY2x1ZGUgImludGdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIK
KyNpbmNsdWRlICJnZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiU1ZH
RWxlbWVudC5oIgorI2VuZGlmCisjZW5kaWYKKworI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorI2lu
Y2x1ZGUgIkdkb21TVkdFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJTVkdFeGNlcHRpb24uaCIKKyNl
bmRpZgorI2VuZGlmCisKKyNpbmNsdWRlICJpbnRnZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAi
aW50Z2RvbUNTU1J1bGUuaCIKKyNpbmNsdWRlICJpbnRnZG9tQ0RBVEFTZWN0aW9uLmgiCisjaW5j
bHVkZSAiaW50Z2RvbUNvbW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJpbnRnZG9tRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgImludGdkb21Eb2N1
bWVudFR5cGUuaCIKKyNpbmNsdWRlICJpbnRnZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiaW50Z2Rv
bUVsZW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAi
aW50Z2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUVudGl0eVJlZmVy
ZW5jZS5oIgorI2luY2x1ZGUgImludGdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgImludGdkb21I
VE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgi
CisjaW5jbHVkZSAiaW50Z2RvbVRleHQuaCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTQ2hhcnNldFJ1
bGUuaCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiaW50
Z2RvbUNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRlICJpbnRnZG9tQ1NTTWVkaWFSdWxlLmgiCisj
aW5jbHVkZSAiaW50Z2RvbUNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiaW50Z2RvbUNTU1N0eWxl
UnVsZS5oIgorI2luY2x1ZGUgImludGdkb21DU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5jbHVkZSAi
aW50Z2RvbUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tTWVzc2FnZUV2ZW50Lmgi
CisjaW5jbHVkZSAiaW50Z2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tTXV0YXRp
b25FdmVudC5oIgorI2luY2x1ZGUgImludGdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAi
aW50Z2RvbVByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tVGV4dEV2ZW50LmgiCisj
aW5jbHVkZSAiaW50Z2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tV2ViS2l0QW5pbWF0
aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisj
aW5jbHVkZSAiaW50Z2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJpbnRnZG9tWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiaW50Z2RvbVN0b3JhZ2VFdmVudC5oIgor
I2luY2x1ZGUgImludGdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJpbnRn
ZG9tSFRNTENvbGxlY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOworCit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBET01P
YmplY3RNYXA7Cit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBHZG9tV3JhcHBlckNh
Y2hlOyAvKiBBUkchIFVORkFJUiEgSlNXcmFwcGVyQ2FjaGUgaXMgaW4gRG9jdW1lbnQhISAqLwor
CisvLyBGb3IgZGVidWdnaW5nLCBrZWVwIGEgc2V0IG9mIHdyYXBwZXJzIGN1cnJlbnRseSByZWdp
c3RlcmVkLCBhbmQgY2hlY2sgdGhhdAorLy8gYWxsIGFyZSB1bnJlZ2lzdGVyZWQgYmVmb3JlIHRo
ZXkgYXJlIGRlc3Ryb3llZC4gVGhpcyBoYXMgaGVscGVkIHVzIGZpeCBhdAorLy8gbGVhc3Qgb25l
IGJ1Zy4KKworI2lmIDAKK3N0YXRpYyB2b2lkIGFkZFdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBl
cik7CitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmplY3QqIHdyYXBwZXIpOworc3Rh
dGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMp
OworCisjaWZkZWYgTkRFQlVHCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRXcmFwcGVyKEdET01P
YmplY3QqKQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2Jq
ZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdk
b21XcmFwcGVyQ2FjaGUmKQoreworfQorCisjZWxzZQorCitzdGF0aWMgSGFzaFNldDxHRE9NT2Jq
ZWN0Kj4mIHdyYXBwZXJTZXQoKQoreworICAgIHN0YXRpYyBIYXNoU2V0PEdET01PYmplY3QqPiBz
dGF0aWNXcmFwcGVyU2V0OworICAgIHJldHVybiBzdGF0aWNXcmFwcGVyU2V0OworfQorCitzdGF0
aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqIHdyYXBwZXIpCit7CisgICAgQVNTRVJUKCF3
cmFwcGVyU2V0KCkuY29udGFpbnMod3JhcHBlcikpOworICAgIHdyYXBwZXJTZXQoKS5hZGQod3Jh
cHBlcik7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBl
cikKK3sKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQod3Jh
cHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAgICB3cmFwcGVyU2V0KCkucmVtb3ZlKHdy
YXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVycyhjb25zdCBHZG9tV3JhcHBl
ckNhY2hlJiB3cmFwcGVycykKK3sKKyAgICBmb3IgKEdkb21XcmFwcGVyQ2FjaGU6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gd3JhcHBlcnMuYmVnaW4oKTsgaXQgIT0gd3JhcHBlcnMuZW5kKCk7ICsraXQp
CisgICAgICAgIHJlbW92ZVdyYXBwZXIoaXQtPnNlY29uZCk7Cit9CisKK0dET01PYmplY3Q6On5H
RE9NT2JqZWN0KCkKK3sKKyAgICBBU1NFUlQoIXdyYXBwZXJTZXQoKS5jb250YWlucyh0aGlzKSk7
Cit9CisKKyNlbmRpZgorI2VuZGlmIC8qIGNvbW1lbnRlZCBvdXQgZm9yIG5vdyAqLworCitzdGF0
aWMgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlckNhY2hlKCkKK3sgCisJLy8gVU5GQUlSISBpIHdh
bnQgb25lIG9mIHRoZXNlIHBlciBEb2N1bWVudCwgdG9vIQorICAgIC8vIERvbid0IHVzZSBtYWxs
b2MgaGVyZS4gQ2FsbGluZyBtYWxsb2MgZnJvbSBhIG1hcmsgZnVuY3Rpb24gY2FuIGRlYWRsb2Nr
LgorICAgIHN0YXRpYyBHZG9tV3JhcHBlckNhY2hlIHN0YXRpY0dkb21XcmFwcGVyQ2FjaGU7Cisg
ICAgcmV0dXJuIHN0YXRpY0dkb21XcmFwcGVyQ2FjaGU7Cit9CisKK3N0YXRpYyBET01PYmplY3RN
YXAmIGRvbU9iamVjdHMoKQoreyAKKyAgICAvLyBEb24ndCB1c2UgbWFsbG9jIGhlcmUuIENhbGxp
bmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9uIGNhbiBkZWFkbG9jay4KKyAgICBzdGF0aWMg
RE9NT2JqZWN0TWFwIHN0YXRpY0RPTU9iamVjdHM7CisgICAgcmV0dXJuIHN0YXRpY0RPTU9iamVj
dHM7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZv
aWQqIG9iamVjdEhhbmRsZSkgCit7CisgICAgZ3BvaW50ZXIgcmV0ID0gZG9tT2JqZWN0cygpLmdl
dChvYmplY3RIYW5kbGUpOworCXByaW50ZigiZ2V0RE9NT2JqZWN0OiAlcCAlcFxuIiwgb2JqZWN0
SGFuZGxlLCByZXQpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVf
Z2RvbV9vYmplY3QoR0RPTU9iamVjdCAqZG9iKQoreworCWdwb2ludGVyIHJlcyA9IGdfb2JqZWN0
X25ldyhkb2ItPmdldF9nb2JqX3R5cGUoKSwgTlVMTCk7CisJZ2RvbV9kb21fb2JqZWN0X3NldF9w
cml2YXRlKEdET01fRE9NX09CSkVDVChyZXMpLCBkb2IpOworCXJldHVybiByZXM7Cit9CisKK2dw
b2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhh
bmRsZSwgR0RPTU9iamVjdCogd3JhcHBlcikgCit7CisgICAgLy8gYWRkV3JhcHBlcih3cmFwcGVy
KTsKKwlncG9pbnRlciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisJcHJpbnRm
KCJwdXRET01PYmplY3Q6ICVwICVwICVwXG4iLCBvYmplY3RIYW5kbGUsIHdyYXBwZXIsIG9iaik7
CisgICAgZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIG9iaik7CisJcmV0dXJuIG9iajsK
K30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCh2b2lkKiBv
YmplY3RIYW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKTsKKyAg
ICAvL3JlbW92ZVdyYXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7Cit9CisK
K2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KERv
Y3VtZW50KiBkb2N1bWVudCwgTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Z3BvaW50ZXIgPihkb21PYmplY3RzKCkuZ2V0KG5vZGUp
KTsKKyAgICByZXR1cm4gLyogWFhYIGdycnIgZG9jdW1lbnQtPiAqL3dyYXBwZXJDYWNoZSgpLmdl
dChub2RlKTsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVG
b3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFk
b2N1bWVudCkgeworCQlmb3JnZXRET01PYmplY3Qobm9kZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgLy9yZW1vdmVXcmFwcGVyKC8qIFhYWCBncnIgZG9jdW1lbnQtPiovd3JhcHBlckNh
Y2hlKCkudGFrZShub2RlKSk7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6
cHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogbm9kZSwgR0RP
TU5vZGUgKndyYXBwZXIpCit7CisgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIpOworICAgIGlmICgh
ZG9jdW1lbnQpIHsKKwkJbm9kZS0+cmVmKCk7CisJCXJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OnB1dERPTU9iamVjdChub2RlLCB3cmFwcGVyKSA7CisgICAgfQorCWdwb2ludGVyIG9iaiA9
IGNyZWF0ZV9nZG9tX29iamVjdCh3cmFwcGVyKTsKKyAgICAvKiBYWFggZ3JyciBkb2N1bWVudC0+
Ki93cmFwcGVyQ2FjaGUoKS5zZXQobm9kZSwgb2JqKTsKKwlyZXR1cm4gb2JqOworfQorCit2b2lk
IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1
bWVudCogZG9jdW1lbnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKKyAgICAvL3JlbW92ZVdy
YXBwZXJzKGRvY3VtZW50LT53cmFwcGVyQ2FjaGUoKSk7Cit9CisKKyNpZiAwCit2b2lkIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6bWFya0RPTU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvYykK
K3sKKyNpZiAwIC8qWFhYIFRPRE8qLworICAgIC8vIElmIGEgbm9kZSdzIEdkb20gd3JhcHBlciBo
b2xkcyBjdXN0b20gcHJvcGVydGllcywgdGhvc2UgcHJvcGVydGllcyBtdXN0CisgICAgLy8gcGVy
c2lzdCBldmVyeSB0aW1lIHRoZSBub2RlIGlzIGZldGNoZWQgZnJvbSB0aGUgRE9NLiBTbywgd2Ug
a2VlcCBHZG9tCisgICAgLy8gd3JhcHBlcnMgbGlrZSB0aGF0IGZyb20gYmVpbmcgZ2FyYmFnZSBj
b2xsZWN0ZWQuCisKKyAgICBHZG9tV3JhcHBlckNhY2hlJiBub2RlRGljdCA9IC8qZG9jLT4qL3dy
YXBwZXJDYWNoZSgpOworICAgIEdkb21XcmFwcGVyQ2FjaGU6Oml0ZXJhdG9yIG5vZGVFbmQgPSBu
b2RlRGljdC5lbmQoKTsKKyAgICBmb3IgKEdkb21XcmFwcGVyQ2FjaGU6Oml0ZXJhdG9yIG5vZGVJ
dCA9IG5vZGVEaWN0LmJlZ2luKCk7IG5vZGVJdCAhPSBub2RlRW5kOyArK25vZGVJdCkgeworICAg
ICAgICBncG9pbnRlciBnTm9kZSA9IG5vZGVJdC0+c2Vjb25kOworICAgICAgICBOb2RlKiBub2Rl
ID0gZ05vZGUtPmltcGwoKTsKKworICAgICAgICBpZiAoZ05vZGUtPm1hcmtlZCgpKQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm8gbmVlZCB0byBwcmVzZXJ2ZSBhIHdyYXBw
ZXIgdGhhdCBoYXMgbm8gY3VzdG9tIHByb3BlcnRpZXMgb3IgaXMgbm8KKyAgICAgICAgLy8gbG9u
Z2VyIGZldGNoYWJsZSB0aHJvdWdoIHRoZSBET00uCisgICAgICAgIGlmICghZ05vZGUtPmhhc0N1
c3RvbVByb3BlcnRpZXMoKSB8fCAhbm9kZS0+aW5Eb2N1bWVudCgpKQorICAgICAgICAgICAgLy8u
Li4gdW5sZXNzIHRoZSB3cmFwcGVyIHdyYXBzIGEgbG9hZGluZyBpbWFnZSwgc2luY2UgdGhlICJu
ZXcgSW1hZ2UiCisgICAgICAgICAgICAvLyBzeW50YXggYWxsb3dzIGFuIG9ycGhhbiBpbWFnZSB3
cmFwcGVyIHRvIGJlIHRoZSBsYXN0IHJlZmVyZW5jZQorICAgICAgICAgICAgLy8gdG8gYSBsb2Fk
aW5nIGltYWdlLCB3aG9zZSBsb2FkIGV2ZW50IG1pZ2h0IGhhdmUgaW1wb3J0YW50IHNpZGUtZWZm
ZWN0cy4KKyAgICAgICAgICAgIGlmICghbm9kZS0+aGFzVGFnTmFtZShpbWdUYWcpIHx8IHN0YXRp
Y19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2RlKS0+aGF2ZUZpcmVkTG9hZEV2ZW50KCkpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZ05vZGUtPm1hcmsoKTsKKyAgICB9
CisjZW5kaWYKK30KKworLyogWFhYIC0gcmVxdWlyZXMgbG9va2luZyB1cCBvYmplY3QgLSBjYWxs
IHRvIEdfT0JKRUNUKCkgbWFjcm8gaW4gYXJnCisgKiAid3JhcHBlciIgdG8gcHV0RE9NTm9kZUZv
ckRvY3VtZW50PyovCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnVwZGF0ZURPTU5v
ZGVEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9jLCBEb2N1bWVudCogbmV3RG9j
KQoreworICAgIEFTU0VSVChvbGREb2MgIT0gbmV3RG9jKTsKKwlzdHlsZVNoZWV0LT5yZWYoKTsK
KyAgICBncG9pbnRlciB3cmFwcGVyID0gZ2V0RE9NTm9kZUZvckRvY3VtZW50KG9sZERvYywgbm9k
ZSk7CisgICAgaWYgKHdyYXBwZXIpIHsKKyAgICAgICAgLy9yZW1vdmVXcmFwcGVyKHdyYXBwZXIp
OworICAgICAgICBncG9pbnRlciBvYmogPSBwdXRET01Ob2RlRm9yRG9jdW1lbnQobmV3RG9jLCBu
b2RlLCB3cmFwcGVyKTsKKyAgICAgICAgZm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG9sZERvYywg
bm9kZSk7CisgICAgICAgIC8vYWRkV3JhcHBlcih3cmFwcGVyKTsKKwkJcmV0dXJuIG9iajsKKyAg
ICB9CisJcmV0dXJuIE5VTEw7IC8qIGVyci4uLiAqLworfQorI2VuZGlmCisKK2dwb2ludGVyIHRv
R0RPTShEb2N1bWVudCogZG9jKQoreworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gTlVM
TDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb2MpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1
cm4gZ29iajsKKworCUdET01PYmplY3QgKnJldDsKKworICAgIGlmIChkb2MtPmlzSFRNTERvY3Vt
ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhU
TUxEb2N1bWVudCo+KGRvYykpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5p
c1NWR0RvY3VtZW50KCkpCisJeworCQlyZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gKi8KKyNpZiAw
CisgICAgICAgIHJldCA9IG5ldyBHRE9NU1ZHRG9jdW1lbnQoc3RhdGljX2Nhc3Q8U1ZHRG9jdW1l
bnQqPihkb2MpKTsKKyNlbmRpZgorCX0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAgcmV0ID0g
bmV3IEdET01Eb2N1bWVudChkb2MpOworCisJZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNj
cmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMgZ3Bv
aW50ZXIgY3JlYXRlV3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3bHlD
cmVhdGVkKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVM
TDsgLyogaG1tbS4uLi4gKi8KKyAgICAKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsK
K30KKyAgICAKK2dwb2ludGVyIHRvR0RPTShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkK
KyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBEb2N1bWVudCogZG9j
ID0gbm9kZS0+ZG9jdW1lbnQoKTsKKyAgICBncG9pbnRlciByZXQgPSBHRE9NU2NyaXB0SW50ZXJw
cmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChkb2MsIG5vZGUpOworICAgIGlmIChyZXQpCisg
ICAgICAgIHJldHVybiByZXQ7CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30K
KworZ3BvaW50ZXIgdG9HRE9NKENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQor
ICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9
IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChn
b2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworCUdET01PYmplY3QgKnJldDsKKworICAgIGlm
ICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZUxp
c3Qoc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKKyNpZiBFTkFCTEUoU1ZHKQor
ICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR1BhaW50KCkpCisJeworCQlyZXR1cm4gTlVMTDsgLyog
VE9ETyAqLworICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHUGFpbnQoc3RhdGljX2Nhc3Q8U1ZH
UGFpbnQqPih2YWx1ZSkpOworCX0KKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdDb2xvcigpKQor
CXsKKwkJcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNW
R0NvbG9yKHN0YXRpY19jYXN0PFNWR0NvbG9yKj4odmFsdWUpKTsKKwl9CisjZW5kaWYKKyAgICBl
bHNlIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXQgPSBuZXcgR0RP
TUNTU1ByaW1pdGl2ZVZhbHVlKHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUp
KTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWUodmFsdWUpOworCisJ
dmFsdWUtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9i
amVjdCh2YWx1ZSwgcmV0KTsKK30KKworc3RhdGljIEFMV0FZU19JTkxJTkUgZ3BvaW50ZXIgY3Jl
YXRlV3JhcHBlcihOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBBU1NFUlQo
IVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQobm9kZS0+ZG9jdW1lbnQo
KSwgbm9kZSkpOworICAgIAorICAgIERvY3VtZW50KiBkb2MgPSBub2RlLT5kb2N1bWVudCgpOwor
ICAgIEdET01Ob2RlICpyZXQgPSBOVUxMOworICAgIAorCXByaW50ZigiY3JlYXRlV3JhcHBlciBu
b2RlVHlwZSAlZFxuIiwgbm9kZS0+bm9kZVR5cGUoKSk7CisKKyAgICBzd2l0Y2ggKG5vZGUtPm5v
ZGVUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CisgICAgICAgICAg
ICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICAgICAgICAgIHJldCA9IGNyZWF0
ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KG5vZGUpKTsKKyNpZiBF
TkFCTEUoU1ZHKQorICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+aXNTVkdFbGVtZW50KCkpCisJ
CQkJcmV0dXJuIE5VTEw7CisjaWYgMCAvKiBYWFggVE9ETyAqLworICAgICAgICAgICAgICAgIHJl
dCA9IGNyZWF0ZUdET01TVkdXcmFwcGVyKHN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihub2RlKSk7
CisjZW5kaWYKKyNlbmRpZgorICAgICAgICAgICAgZWxzZQorCQkJCXJldCA9IG5ldyBHRE9NRWxl
bWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUF0dHIoc3RhdGljX2Nhc3Q8QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9N
VGV4dChzdGF0aWNfY2FzdDxUZXh0Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01DREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6CisgICAgICAg
ICAgICByZXQgPSBuZXcgR0RPTUVudGl0eShzdGF0aWNfY2FzdDxFbnRpdHkqPihub2RlKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNU
SU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVByb2Nlc3NpbmdJbnN0cnVjdGlv
bihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CisgICAgICAgICAgICBy
ZXQgPSBuZXcgR0RPTUNvbW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CisgICAgICAg
ICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIHRoZSBkb2N1bWVudCBpdHNlbGYgaW4gdGhl
IHBlci1kb2N1bWVudCBkaWN0aW9uYXJ5CisgICAgICAgICAgICByZXR1cm4gdG9HRE9NKHN0YXRp
Y19jYXN0PERvY3VtZW50Kj4obm9kZSkpOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZ
UEVfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnRUeXBlKHN0YXRpY19j
YXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vdGF0
aW9uKHN0YXRpY19jYXN0PE5vdGF0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NRG9jdW1lbnRGcmFnbWVudChzdGF0aWNfY2FzdDxEb2N1bWVudEZyYWdtZW50
Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZ
X1JFRkVSRU5DRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01FbnRpdHlSZWZlcmVu
Y2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vZGUobm9k
ZSk7CisgICAgfQorCisJZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlLCByZXQpOworfQorIAorZ3BvaW50
ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQoreworICAgIGlmICghY29sbGVj
dGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9pbnRl
ciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoY29sbGVjdGlvbik7
CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKwlHRE9NT2JqZWN0ICpy
ZXQ7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBIVE1M
Q29sbGVjdGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRN
TE9wdGlvbnNDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlvbio+KGNv
bGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIDAKKyAgICAgICAgY2FzZSBIVE1M
Q29sbGVjdGlvbjo6RG9jQWxsOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQWxsQ29s
bGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAg
ICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29s
bGVjdGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisJY29sbGVjdGlvbi0+cmVm
KCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGNvbGxl
Y3Rpb24sIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQpCit7CisgICAg
aWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKwlwcmlu
dGYoInRvR0RPTSBFdmVudCB0eXBlICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NT2JqZWN0KGV2ZW50KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7
CisKKwlHRE9NT2JqZWN0ICpyZXQ7CisgICAgaWYgKGV2ZW50LT5pc1VJRXZlbnQoKSkgeworICAg
ICAgICBpZiAoZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01LZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCkpOwor
ICAgICAgICBlbHNlIGlmIChldmVudC0+aXNUZXh0RXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NVGV4dEV2ZW50KHN0YXRpY19jYXN0PFRleHRFdmVudCo+KGV2ZW50KSk7CisgICAg
ICAgIGVsc2UgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NTW91c2VFdmVudChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpKTsKKyAgICAg
ICAgZWxzZSBpZiAoZXZlbnQtPmlzV2hlZWxFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01XaGVlbEV2ZW50KHN0YXRpY19jYXN0PFdoZWVsRXZlbnQqPihldmVudCkpOworI2lmIEVO
QUJMRShTVkcpCisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVudCgpKQorCQl7
CisJCQlyZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAgICAgICAgICAgLy9yZXQgPSBuZXcgR0RP
TVNWR1pvb21FdmVudChzdGF0aWNfY2FzdDxTVkdab29tRXZlbnQqPihldmVudCksIDApOworCQl9
CisjZW5kaWYKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01VSUV2ZW50
KHN0YXRpY19jYXN0PFVJRXZlbnQqPihldmVudCkpOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlz
TXV0YXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTU11dGF0aW9uRXZlbnQoc3Rh
dGljX2Nhc3Q8TXV0YXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlz
T3ZlcmZsb3dFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTU92ZXJmbG93RXZlbnQoc3Rh
dGljX2Nhc3Q8T3ZlcmZsb3dFdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlz
TWVzc2FnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NTWVzc2FnZUV2ZW50KHN0YXRp
Y19jYXN0PE1lc3NhZ2VFdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzUHJv
Z3Jlc3NFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50KHN0YXRpY19jYXN0PFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCo+KGV2ZW50
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NUHJvZ3Jlc3NFdmVu
dChzdGF0aWNfY2FzdDxQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICB9CisjaWYgRU5BQkxF
KERPTV9TVE9SQUdFKQorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1N0b3JhZ2VFdmVudCgpKQorICAg
ICAgICByZXQgPSBuZXcgR0RPTVN0b3JhZ2VFdmVudChzdGF0aWNfY2FzdDxTdG9yYWdlRXZlbnQq
PihldmVudCkpOworI2VuZGlmCisgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0QW5pbWF0aW9u
RXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01XZWJLaXRBbmltYXRpb25FdmVudChzdGF0
aWNfY2FzdDxXZWJLaXRBbmltYXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZl
bnQtPmlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdFRyYW5zaXRpb25FdmVudCo+KGV2
ZW50KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTUV2ZW50KGV2ZW50KTsKKwor
CWV2ZW50LT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01P
YmplY3QoZXZlbnQsIHJldCk7Cit9CisKKy8qIFRPRE8gWFhYIGhtbW0uLi4gbm90IHNvIGhhcHB5
IGFib3V0IHRoaXMgLSBzaG91bGQgYmUgIm5ld2x5IGNyZWF0ZWQiICovCitncG9pbnRlciB0b0dE
T00oVGV4dCogdGV4dCkKK3sKKwlpZiAoIXRleHQpCisJCXJldHVybiBOVUxMOworCisgICAgZ3Bv
aW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50
KHRleHQtPmRvY3VtZW50KCksIHRleHQpOworCWlmIChnb2JqKQorCQlyZXR1cm4gZ29iajsKKwor
CUdET01Ob2RlICpyZXQgPSBuZXcgR0RPTVRleHQodGV4dCk7CisJdGV4dC0+ZG9jdW1lbnQoKS0+
cmVmKCk7CisJcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3Vt
ZW50KHRleHQtPmRvY3VtZW50KCksIHRleHQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShD
U1NSdWxlKiBydWxlKQoreworICAgIGlmICghcnVsZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8q
IFhYWCBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpnZXRET01PYmplY3QocnVsZSk7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJu
IGdvYmo7CisKKwlHRE9NT2JqZWN0ICpyZXQ7CisgICAgc3dpdGNoIChydWxlLT50eXBlKCkpIHsK
KyAgICAgICAgY2FzZSBDU1NSdWxlOjpTVFlMRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01DU1NTdHlsZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6TUVESUFfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTTWVkaWFSdWxlKHN0YXRpY19jYXN0PENTU01lZGlhUnVs
ZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OkZP
TlRfRkFDRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NGb250RmFjZVJ1bGUo
c3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6UEFHRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01DU1NQYWdlUnVsZShzdGF0aWNfY2FzdDxDU1NQYWdlUnVsZSo+KHJ1bGUpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OklNUE9SVF9SVUxFOgorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01DU1NJbXBvcnRSdWxlKHN0YXRpY19jYXN0PENTU0ltcG9ydFJ1
bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpD
SEFSU0VUX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0NoYXJzZXRSdWxlKHN0
YXRpY19jYXN0PENTU0NoYXJzZXRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQ1NTUnVsZTo6VkFSSUFCTEVTX1JVTEU6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUNTU1ZhcmlhYmxlc1J1bGUoc3RhdGljX2Nhc3Q8Q1NTVmFyaWFibGVzUnVsZSo+KHJ1
bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01DU1NSdWxlKHJ1bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQor
CisJcnVsZS0+cmVmKCk7CisgICAgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qo
cnVsZSwgcmV0KTsKKyAgICByZXR1cm4gcmV0OworfQorCisvKiBUT0RPOiBzaG91bGQgYmUgdG9H
RE9NTmV3bHlDcmVhdGVkICovCitncG9pbnRlciB0b0dET00oRWxlbWVudCogZWxlbWVudCkKK3sK
KyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8gc2hvdWxk
bid0IGJlIG9uZT8gQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3Vt
ZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpKTsKKyAgICBncG9pbnRlciBnb2JqID0g
R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZWxlbWVudC0+ZG9j
dW1lbnQoKSwgZWxlbWVudCk7CisJaWYgKGdvYmopCisJCXJldHVybiBnb2JqOyAvLyBodWg/IGVy
ci4uLgorCisJR0RPTU5vZGUgKnJldDsKKyAgICBEb2N1bWVudCogZG9jID0gZWxlbWVudC0+ZG9j
dW1lbnQoKTsKKworICAgIGlmIChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgIHJl
dCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGVsZW1l
bnQpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKGVsZW1lbnQtPmlzU1ZHRWxlbWVu
dCgpKQorCXsKKwkJcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBjcmVh
dGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4oZWxlbWVudCkpOworCX0K
KyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01FbGVtZW50KGVsZW1lbnQp
OworCisJZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRE
T01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBlbGVtZW50LCByZXQpOworfQorCitncG9pbnRlciB0b0dE
T00oU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisgICAg
ICAgIHJldHVybiBOVUxMOyAvKiBlcnIuLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChzdHlsZVNoZWV0KTsKKyAgICBpZiAoZ29i
aikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKwlHRE9NT2JqZWN0ICpyZXQ7CisgICAgaWYgKHN0
eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1N0
eWxlU2hlZXQoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpKTsKKyAgICBl
bHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NU3R5bGVTaGVldChzdHlsZVNoZWV0KTsKKworCXN0
eWxlU2hlZXQtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERP
TU9iamVjdChzdHlsZVNoZWV0LCByZXQpOworfQorCisvKiBkZXJpdmVkIHNvdXJjZXMgYXV0by1n
ZW5lcmF0ZWQgKi8KK2dwb2ludGVyIHRvR0RPTShYTUxIdHRwUmVxdWVzdFVwbG9hZCogb2JqKTsK
KworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0KiB0YXJnZXQpCit7CisgICAgaWYgKCF0YXJn
ZXQpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIAorI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQor
ICAgIC8vIFNWR0VsZW1lbnRJbnN0YW5jZSBzdXBwb3J0cyBib3RoIHRvU1ZHRWxlbWVudEluc3Rh
bmNlIGFuZCB0b05vZGUgc2luY2Ugc28gbXVjaCBtb3VzZSBoYW5kbGluZyBjb2RlIGRlcGVuZHMg
b24gdG9Ob2RlIHJldHVybmluZyBhIHZhbGlkIG5vZGUuCisgICAgU1ZHRWxlbWVudEluc3RhbmNl
KiBpbnN0YW5jZSA9IHRhcmdldC0+dG9TVkdFbGVtZW50SW5zdGFuY2UoKTsKKyAgICBpZiAoaW5z
dGFuY2UpCisgICAgICAgIHJldHVybiB0b0dET00oZXhlYywgaW5zdGFuY2UpOworI2VuZGlmCisj
ZW5kaWYKKworICAgIE5vZGUqIG5vZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAgIGlmIChub2Rl
KQorICAgICAgICByZXR1cm4gdG9HRE9NKG5vZGUpOworICAgIAorICAgIGlmIChYTUxIdHRwUmVx
dWVzdCogeGhyID0gdGFyZ2V0LT50b1hNTEh0dHBSZXF1ZXN0KCkpCisgICAgICAgIC8vIFhNTEh0
dHBSZXF1ZXN0IGlzIGFsd2F5cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRv
IHVzZSBjYWNoZURPTU9iamVjdCgpIGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh4aHIpOworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0VXBs
b2FkKiB1cGxvYWQgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3RVcGxvYWQoKSkKKyAgICAgICAg
cmV0dXJuIHRvR0RPTSh1cGxvYWQpOworICAgIAorI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCisgICAgaWYgKERPTUFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gdGFyZ2V0LT50
b0RPTUFwcGxpY2F0aW9uQ2FjaGUoKSkKKyAgICAgICAgLy8gRE9NQXBwbGljYXRpb25DYWNoZSBp
cyBhbHdheXMgY3JlYXRlZCB2aWEgR0RPTSwgc28gd2UgZG9uJ3QgbmVlZCB0byB1c2UgY2FjaGVE
T01PYmplY3QoKSBoZXJlLgorICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpn
ZXRET01PYmplY3QoY2FjaGUpOworI2VuZGlmCisKKyAgICAvLyBUaGVyZSBhcmUgdHdvIGtpbmRz
IG9mIEV2ZW50VGFyZ2V0czogRXZlbnRUYXJnZXROb2RlIGFuZCBYTUxIdHRwUmVxdWVzdC4KKyAg
ICAvLyBJZiBTVkcgc3VwcG9ydCBpcyBlbmFibGVkLCB0aGVyZSBpcyBhbHNvIFNWR0VsZW1lbnRJ
bnN0YW5jZS4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlVMTDsKK30g
ICAKKworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0Tm9kZSogdGFyZ2V0KQoreworICAgIGlm
ICghdGFyZ2V0KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAKKyAgICBOb2RlKiBub2RlID0g
dGFyZ2V0LT50b05vZGUoKTsKKyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShu
b2RlKTsKKyAgICAKKwlyZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PEV2ZW50VGFyZ2V0Kj4odGFy
Z2V0KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL2dkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vZ2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL2dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxr
Y2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpZm5kZWYgX19HZG9t
RE9NT2JqZWN0X0hfXworI2RlZmluZSBfX0dkb21ET01PYmplY3RfSF9fCisjaW5jbHVkZSAiZ2xp
Yi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lO
X0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0IEdkb21ET01PYmplY3Q7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIEdkb21ET01PYmplY3RDbGFzczsKKwor
I2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAgICAgICAgICAgIChnZG9tX2RvbV9vYmplY3Rf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUKG9iaikgICAgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9t
RE9NT2JqZWN0KSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0NMQVNTKGtsYXNzKSAgICAoR19U
WVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9t
RE9NT2JqZWN0Q2xhc3MpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1Qp
KQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9N
X0RPTV9PQkpFQ1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChv
YmopLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykpCisKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSBHZG9tRE9NT2JqZWN0UHJpdmF0ZTsKKwor
c3RydWN0IF9HZG9tRE9NT2JqZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKwor
ICAgIEdkb21ET01PYmplY3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRE9NT2Jq
ZWN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRf
QVBJIEdUeXBlCitnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJ
IHZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRo
aXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tRE9NT2JqZWN0X0hfXyAqLwor
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0
IEBACisjaWZuZGVmIF9fRE9NT2JqZWN0X2hfXworI2RlZmluZSBfX0RPTU9iamVjdF9oX18KKwor
Ly8gbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHRE9NT2JqZWN0IHsKK3B1YmxpYzoKKwl2
aXJ0dWFsIH5HRE9NT2JqZWN0KCkge30KKwl2aXJ0dWFsIGludCBnZXRfZ29ial90eXBlKCkgPSAw
OworfTsKKworLy8gfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9wcml2Z2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL3ByaXZnZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9r
ZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAq
LworCisKKyNpZm5kZWYgX19HRE9NRE9NT2JqZWN0X0hfX19QUklWXworI2RlZmluZSBfX0dET01E
T01PYmplY3RfSF9fX1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJn
ZG9tRE9NT2JqZWN0LmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01PYmplY3Q7CitXRUJL
SVRfQVBJIEdET01PYmplY3QqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9i
amVjdCAqcmVxdWVzdCk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9w
cml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QqIGl0ZW0pOworCitHX0VO
RF9ERUNMUworI2VuZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBUSElTIEZJTEUgSVMgREVSSVZFRCBGUk9NIEFO
IEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBrZWVwaW5nIGl0IHVwLXRvLWRhdGUg
Y291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqIGEgbWFrZV9uYW1lcy5wbCBn
ZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogZ2VuZXJhdGVyIHdoaWNoIHRh
a2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKworI2lmbmRlZiBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCisj
ZGVmaW5lIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKKworI2luY2x1ZGUgImludGdk
b21Ob2RlLmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKyAgICBjbGFzcyBIVE1MRWxlbWVudDsKKworICAgIEdET01Ob2RlKiBjcmVhdGVHRE9N
SFRNTFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4pOworCit9CisgCisjZW5kaWYgLy8g
R0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL2ludGdkb21FdmVudFRhcmdldE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vaW50Z2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL2ludGdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fz
c29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBU
b2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgor
ICovCisKKworI2lmbmRlZiBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX0lOVF8KKyNkZWZpbmUg
X19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19JTlRfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIK
KyNpbmNsdWRlICJpbnRnZG9tTm9kZS5oIgorR19CRUdJTl9ERUNMUworCitjbGFzcyBHRE9NRXZl
bnRUYXJnZXROb2RlIDogcHVibGljIEdET01Ob2RlIHsKKworcHVibGljOgorICAgIEdET01FdmVu
dFRhcmdldE5vZGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpOb2RlPiBpbXBsKSA6IEdET01Ob2RlKGlt
cGwpIHt9CisJaW50IGdldF9nb2JqX3R5cGUoKSB7IHJldHVybiBHRE9NX1RZUEVfRVZFTlRfVEFS
R0VUX05PREU7IH0KK307CisKKworR19FTkRfREVDTFMKKyNlbmRpZgorCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkxIEBACisvKgorICog
IENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisg
KiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5p
ZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaWZuZGVmIEdkb21ET01CaW5kaW5nX2gKKyNkZWZpbmUgR2RvbURPTUJpbmRpbmdf
aAorCisjaW5jbHVkZSA8a2pzL2ludGVycHJldGVyLmg+CisjaW5jbHVkZSA8a2pzL2xvb2t1cC5o
PgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisjaW5jbHVkZSAiZ2RvbU5vZGUuaCIK
KyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiaW50Z2RvbU5vZGUuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgQXRvbWljU3RyaW5nOworICAgIGNsYXNzIERv
Y3VtZW50OworICAgIGNsYXNzIEV2ZW50OworICAgIGNsYXNzIEZyYW1lOworICAgIGNsYXNzIEtV
Ukw7CisgICAgY2xhc3MgTm9kZTsKKyAgICBjbGFzcyBTdHJpbmc7CisKKyNpZiBFTkFCTEUoU1ZH
KQorICAgIGNsYXNzIFNWR0VsZW1lbnQ7CisjZW5kaWYKKworICAgIGNsYXNzIEdET01TY3JpcHRJ
bnRlcnByZXRlciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgdm9pZCogZ2V0RE9NT2Jq
ZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisgICAgICAgIHN0YXRpYyB2b2lkKiBwdXRET01PYmpl
Y3Qodm9pZCogb2JqZWN0SGFuZGxlLCBHRE9NT2JqZWN0Kik7CisgICAgICAgIHN0YXRpYyB2b2lk
IGZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpOworCisgICAgICAgIHN0YXRpYyB2
b2lkKiBnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqLCBOb2RlKik7CisgICAgICAgIHN0
YXRpYyB2b2lkKiBwdXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqLCBOb2RlKiwgR0RPTU5v
ZGUqIG5vZGVXcmFwcGVyKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZm9yZ2V0RE9NTm9kZUZvckRv
Y3VtZW50KERvY3VtZW50KiwgTm9kZSopOworICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRBbGxE
T01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50Kik7CisJCSNpZiAwCisgICAgICAgIHN0YXRpYyB2
b2lkIHVwZGF0ZURPTU5vZGVEb2N1bWVudChOb2RlKiwgRG9jdW1lbnQqIG9sZERvYywgRG9jdW1l
bnQqIG5ld0RvYyk7CisgICAgICAgIHN0YXRpYyB2b2lkIG1hcmtET01Ob2Rlc0ZvckRvY3VtZW50
KERvY3VtZW50Kik7CisJCSNlbmRpZgorICAgIH07CisKKyAgICAvLyBSZXRyaWV2ZSBmcm9tIGNh
Y2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBhIERPTSBvYmplY3QuCisgICAgdGVt
cGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2JqPiBpbmxpbmUgdm9pZCogY2FjaGVE
T01PYmplY3QoRE9NT2JqKiBkb21PYmopCisgICAgeworICAgICAgICBpZiAoIWRvbU9iaikKKyAg
ICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLworICAgICAgICBpZiAodm9p
ZCogcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9tT2JqKSkKKyAg
ICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIEdET01PYmplY3QqIHJldCA9IG5ldyBHZG9t
RE9NT2JqKGRvbU9iaik7CisJCWRvbU9iai0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChkb21PYmosIHJldCk7CisgICAgfQorCisjaWYg
RU5BQkxFKFNWRykKKyAgICAvLyBSZXRyaWV2ZSBmcm9tIGNhY2hlLCBvciBjcmVhdGUsIGEgR2Rv
bSB3cmFwcGVyIGZvciBhbiBTVkcgRE9NIG9iamVjdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBET01P
YmosIGNsYXNzIEdkb21ET01PYmo+IGlubGluZSB2b2lkKiBjYWNoZVNWR0RPTU9iamVjdChET01P
YmoqIGRvbU9iaiwgU1ZHRWxlbWVudCogY29udGV4dCkKKyAgICB7CisgICAgICAgIGlmICghZG9t
T2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisgICAgICAg
IGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb21P
YmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgR0RPTU9iamVjdCogcmV0ID0g
bmV3IEdkb21ET01PYmooZG9tT2JqLCBjb250ZXh0KTsKKwkJZG9tT2JqLT5yZWYoKTsKKyAgICAg
ICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvbU9iaiwgcmV0
KTsKKyAgICB9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
R2RvbURPTUJpbmRpbmdfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2ludGdkb21ET01P
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vaW50Z2RvbURPTU9i
amVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2ludGdkb21ET01P
YmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKwpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVj
dC5wbQkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yR09iamVjdC5wbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNjYxIEBACisjCisjIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorIyBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyMKKyMg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyMgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JHT2JqZWN0Owor
CisjIERlZmF1bHQgTGljZW5jZSBUZW1wbGF0ZXMKK215ICRsaWNlbmNlVGVtcGxhdGUgPSA8PCAi
RU9GIjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbFxAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxh
bHBcQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCitF
T0YKKworbXkgJWltcGxJbmNsdWRlcyA9ICgpOworbXkgJWhkckluY2x1ZGVzID0gKCk7CitteSAl
aGRyUHJvcEluY2x1ZGVzID0gKCk7CitteSAlaW1wbFR5cGVkZWZzID0gKCk7CisKKyMgRGVmYXVs
dCBjb25zdHJ1Y3Rvcgorc3ViIG5ldworeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBt
eSAkcmVmZXJlbmNlID0geyB9OworCisgICAgJGNvZGVHZW5lcmF0b3IgPSBzaGlmdDsKKyAgICAk
b3V0cHV0RGlyID0gc2hpZnQ7CisKKyAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKKyAg
ICByZXR1cm4gJHJlZmVyZW5jZTsKK30KKworc3ViIGZpbmlzaAoreworICAgIG15ICRvYmplY3Qg
PSBzaGlmdDsKK30KKworIyBQYXJhbXM6ICdkb21DbGFzcycgc3RydWN0CitzdWIgR2VuZXJhdGVJ
bnRlcmZhY2UKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0g
c2hpZnQ7CisgICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKKworICAgIG15ICRuYW1lID0gJGRhdGFO
b2RlLT5uYW1lOworCisgICAgcHJpbnQgIiRuYW1lXG4iOworCisgICAgJG9iamVjdC0+R2VuZXJh
dGUoJGRhdGFOb2RlKTsKKworICAgICMgV3JpdGUgY2hhbmdlcworICAgIG15ICRmbmFtZSA9ICJn
ZG9tXyIgLiAkbmFtZTsgI2RlY2FtZWxpemUoJG5hbWUpOworICAgICRmbmFtZSA9fiBzL18vL2c7
CisgICAgJG9iamVjdC0+V3JpdGVEYXRhKCRmbmFtZSk7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9j
dW1lbnQnIHN0cnVjdAorc3ViIEdlbmVyYXRlTW9kdWxlCit7CisgICAgbXkgJG9iamVjdCA9IHNo
aWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgJG1vZHVsZSA9ICRkYXRhTm9k
ZS0+bW9kdWxlOworfQorCitzdWIgQ2xzVG9HT2JqVHlwZQoreworICAgIG15ICRjbGFzc05hbWUg
PSBzaGlmdDsKKyAgICByZXR1cm4gdWMoZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSkKK30KKworc3Vi
IEdldFBhcmVudENsYXNzTmFtZQoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAg
IyA/PyBxdWU/PworICAgICNyZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TGVnYWN5UGFyZW50In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5
UGFyZW50In07CisgICAgcmV0dXJuICJHZG9tRE9NT2JqZWN0IiBpZiBAeyRkYXRhTm9kZS0+cGFy
ZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdkb20iIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9k
dWxlKCRkYXRhTm9kZS0+cGFyZW50cygwKSk7Cit9CitzdWIgR2V0UGFyZW50R09ialR5cGUKK3sK
KyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJu
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAi
R0RPTV9UWVBFX0RPTV9PQkpFQ1QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAg
IHJldHVybiAiR0RPTV9UWVBFXyIgLiBDbHNUb0dPYmpUeXBlKCRjb2RlR2VuZXJhdG9yLT5TdHJp
cE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpKTsKK30KKworCisjIEFsZ29yaXRobSB0YWtl
biBmcm9tIFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1YiBjYW1lbGl6ZQoreworICAgIG15ICRz
ID0gc2hpZnQ7CisgICAgam9pbignJywgbWFweyB1Y2ZpcnN0ICRfIH0gc3BsaXQoLyg/PD1bQS1a
YS16XSlfKD89W0EtWmEtel0pfFxiLywgJHMpKTsKK30KKworIyBBbGdvcml0aG0gdGFrZW4gZnJv
bSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgZGVjYW1lbGl6ZQoreworICAgIG15ICRzID0g
c2hpZnQ7CisgICAgJHMgPX4gc3soW15hLXpBLVpdPykoW0EtWl0qKShbQS1aXSkoW2Etel0/KX17
CisgICAgICAgIG15ICRmYyA9IHBvcygkcyk9PTA7CisgICAgICAgIG15ICgkcDAsJHAxLCRwMiwk
cDMpID0gKCQxLGxjJDIsbGMkMywkNCk7CisgICAgICAgIG15ICR0ID0gJHAwIHx8ICRmYyA/ICRw
MCA6ICdfJzsKKyAgICAgICAgJHQgLj0gJHAzID8gJHAxID8gIiR7cDF9XyRwMiRwMyIgOiAiJHAy
JHAzIiA6ICIkcDEkcDIiOworICAgICAgICAkdDsKKyAgICB9Z2U7CisgICAgJHM7Cit9CisKK3N1
YiBHZXRIZHJOYW1lCit7CisgICAgICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlw
TW9kdWxlKHNoaWZ0KTsKKworICAgIHJldHVybiAiZ2RvbSRuYW1lIjsKK30KKworc3ViIEdldENs
YXNzTmFtZQoreworICAgICAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVs
ZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRHSW5jbHVk
ZUhkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0SGRy
TmFtZSgkdHlwZSk7CisgICAgICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFtZSgk
dHlwZSkpOworCisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAg
cmV0dXJuICIiIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJzaG9ydCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuICIi
IGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlw
ZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJFdmVu
dExpc3RlbmVyIjsKKyAgICAgICAgcmV0dXJuICJSYW5nZS5oIiBpZiAkdHlwZSBlcSAiQ29tcGFy
ZUhvdyI7CisgICAgICAgIHJldHVybiAiZ2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiBp
ZiAkdHlwZSBlcSAiRE9NT2JqZWN0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBjaGFyIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7
ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorICAgICAgICByZXR1cm4gImdsaWItb2Jq
ZWN0LmgiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gImdkb21FdmVu
dFRhcmdldE5vZGUuaCIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKworICAgICAgICByZXR1
cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJmbG9hdCI7CisKKyAgICAgICAgcmV0dXJu
ICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisKKyAgICAgICAgcmV0dXJu
ICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1l
LmgiOworfQorCisjIHJldHVybnMgMSBpZiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGdvYmplY3Qgd3Jh
cHBlciBhcm91bmQgdGhlIHJldHVybiByZXN1bHQKK3N1YiBJc0dET01DbGFzc1R5cGUKK3sKKyAg
ICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlw
ZSk7CisKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAg
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJm
bG9hdCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlw
ZSBlcSAidWNoYXIiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQiOwor
ICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxv
bmcgbG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7
CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBE
T00gY2xhc3Mgd3JhcHBlcgorCisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ2b2lkIjsK
KworICAgIHJldHVybiAxOworfQorCitzdWIgR2V0UHJvcEdUeXBlCit7CisgICAgbXkgJHR5cGUg
PSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICByZXR1
cm4gInN0cmluZyIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuICJmbG9hdCIg
aWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICByZXR1cm4gIm5vdHlldHN1cHBvcnRlZCIgaWYgJHR5
cGUgZXEgIkNvbXBhcmVIb3ciOworICAgIHJldHVybiAiZG91YmxlIiBpZiAkdHlwZSBlcSAiZG91
YmxlIjsKKyAgICByZXR1cm4gImJvb2xlYW4iIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICBy
ZXR1cm4gImNoYXIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICByZXR1cm4gImxvbmciIGlmICR0
eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAg
ICByZXR1cm4gInVjaGFyIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgIHJldHVybiAidWludCIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgImlu
dCI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICBy
ZXR1cm4gInVpbnQ2NCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgcmV0
dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgIHJldHVybiAidXNo
b3J0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJldHVybiAidWxvbmciIGlm
ICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorCisg
ICAgcmV0dXJuICJvYmplY3QiOworfQorCitzdWIgR2V0R1R5cGUKK3sKKyAgICBteSAkdHlwZSA9
IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisgICAgICAg
ICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFtZSgkdHlwZSkpOworCisgICAgICAgIHJl
dHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqIiBpZiAkdHlwZSBlcSAiRXZlbnRUYXJnZXQiOwor
ICAgICAgICByZXR1cm4gImNvbnN0IGdjaGFyICoiIGlmICR0eXBlIGVxICJET01TdHJpbmciOwor
ICAgICAgICByZXR1cm4gImdmbG9hdCAiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgICAgIHJl
dHVybiAiV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVIb3cgIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhv
dyI7CisgICAgICAgIHJldHVybiAiZ2RvdWJsZSAiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAg
ICAgICByZXR1cm4gImdib29sZWFuICIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgICAgICBy
ZXR1cm4gImdjaGFyICIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gImdsb25n
ICIgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4gImdzaG9ydCAiIGlmICR0eXBl
IGVxICJzaG9ydCI7CisgICAgICAgIHJldHVybiAiZ3VjaGFyICIgaWYgJHR5cGUgZXEgInVjaGFy
IjsKKyAgICAgICAgcmV0dXJuICJndWludCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAg
ICAgIHJldHVybiAiZ2ludCAiIGlmICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1cm4gImd1
aW50ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAgIHJldHVybiAiZ3Vsb25n
ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4gImd1aW50NjQg
IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuICJndXNo
b3J0ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuICJndWxv
bmciIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBl
cgorCisgICAgICAgIHJldHVybiAidm9pZCIgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0
dXJuICIkbmFtZSAqIjsKK30KKworc3ViIGdldEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hp
ZnQ7CisKKyAgICBteSAkaW5jbHVkZUhkciA9IEdldEdJbmNsdWRlSGRyKCR0eXBlKTsKKyAgICBp
ZiAoJGluY2x1ZGVIZHIpIHsKKyAgICAgICAgaWYgKCR0eXBlIGVxICJFdmVudFRhcmdldCIpIHsK
KyAgICAgICAgICAgIHJldHVybiAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIjsKKyAgICAgICAgfQor
ICAgICAgICBlbHNpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICMgWFhY
ID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICAgICByZXR1
cm4gImdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCI7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICByZXR1cm4gJGluY2x1ZGVIZHI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuICIiOworfQorCitzdWIgYWRkUHJvcEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7
CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikg
eworICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICAgICAgaWYgKElzR0RP
TUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRoZHJQcm9wSW5jbHVkZXN7InByaXYi
LiRoZHJ9ID0gMTsKKyAgICAgICAgICAgICRoZHJQcm9wSW5jbHVkZXN7ImludCIuJGhkcn0gPSAx
OworICAgICAgICB9CisgICAgfQorCit9CisKK3N1YiBhZGRJbmNIZHIKK3sKKyAgICBteSAkdHlw
ZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRo
ZHIgbmUgIiIpIHsKKyAgICAgICAgJGhkckluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICB9CisKK30K
Kworc3ViIGFkZEluY0JvZHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhk
ciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGlt
cGxJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgfQorfQorCitzdWIgR2V0UHJpdkZuCit7CisgICAg
bXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gc2hp
ZnQ7CisgICAgbXkgJHJlcyA9IHNoaWZ0OworICAgIG15ICRwYXJtID0gc2hpZnQ7CisKKyAgICBp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICByZXR1cm4gIldl
YkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqICRyZXMgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVu
dFRhcmdldE5vZGUqPihnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKHNlbGYpKTsi
OworICAgIH0KKyAgICByZXR1cm4gIldlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiAkcmVzID0g
KCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgkcGFybSkpOyI7Cit9CisKK3N1YiBza2lw
UHJvcFRlbXBvcmFyaWx5Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkcHJvcF90
eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXAgTWVkaWFMaXN0CisgICAgaWYgKCRwcm9wX3R5cGUg
ZXEgInN0eWxlc2hlZXRzOjpNZWRpYUxpc3QiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgICNpZiAoJHByb3BfdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgIyAgICByZXR1
cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uCisgICAg
aWYgKCRwcm9wX3R5cGUgZXEgIkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIikgeworICAgICAgICBy
ZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24K
KyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7CisgICAgIyAg
ICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiIp
IHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgRXZlbnRMaXN0ZW5l
cgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAjICAgIHJl
dHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgRE9NV2luZG93CisgICAgI2lmICgkcHJvcF90
eXBlIGVxICJET01XaW5kb3ciKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAg
IyBza2lwIENvbnN0cnVjdG9ycyAod2hhdGV2ZXIgdGhleSBhcmUpIGZvciBub3cuCisgICAgaWYg
KCRwcm9wX3R5cGUgPX4gL0NvbnN0cnVjdG9yJC8pIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
fQorCisgICAgIyBjYW52YXMyZC4uLi4KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiY3VzdG9tIikg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQXJy
YXkiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmICgkcHJvcF90eXBlIGVx
ICJET01UaW1lU3RhbXAiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgVE9E
TzogU1ZHCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJHR5cGUpIHx8ICRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdWIgVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRh
dGlvbgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXBwZWQgb3V0IENhbnZh
c1BpeGVsQXJyYXkgLSBzZWUgSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBmb3Igd2h5Lgor
ICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJOb2RlIiBvciAkdHlwZSBlcSAiRG9jdW1lbnQiIG9y
ICR0eXBlIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IgJHR5cGUgZXEgIlNWR1BhdGhTZWciIG9yICR0
eXBlIGVxICJTdHlsZVNoZWV0IiBvciAkdHlwZSBlcSAiQ1NTUnVsZSIgb3IgJHR5cGUgZXEgIkNT
U1ZhbHVlIiBvciAkdHlwZSBlcSAiRXZlbnQiIG9yICR0eXBlIGVxICJFbGVtZW50IiBvciAkdHlw
ZSBlcSAiVGV4dCI7CisgICAgcmV0dXJuIDA7Cit9CisKKworIyBHZW5lcmF0ZSBoZWFkZXIgYW5k
IGltcGwKK3N1YiBHZW5lcmF0ZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAk
ZGF0YU5vZGUgPSBzaGlmdDsKKworICAgIG15ICRoYXNMZWdhY3lQYXJlbnQgPSAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICBteSAkaGFzUmVhbFBh
cmVudCA9IEB7JGRhdGFOb2RlLT5wYXJlbnRzfSA+IDA7CisgICAgbXkgJGhhc1BhcmVudCA9ICRo
YXNMZWdhY3lQYXJlbnQgfHwgJGhhc1JlYWxQYXJlbnQ7CisgICAgbXkgJHBhcmVudENsYXNzTmFt
ZSA9IEdldFBhcmVudENsYXNzTmFtZSgkZGF0YU5vZGUpOworICAgIG15ICRwYXJlbnRHT2JqVHlw
ZSA9IEdldFBhcmVudEdPYmpUeXBlKCRkYXRhTm9kZSk7CisgICAgbXkgJGludGVyZmFjZU5hbWUg
PSAkZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkaW50
ZXJmYWNlTmFtZSk7CisgICAgbXkgJGhkck5hbWUgPSBHZXRIZHJOYW1lKCRpbnRlcmZhY2VOYW1l
KTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGltcGwgaGVhZGVyIHRlbXBsYXRlCisgICAgQGNQ
cmVmaXggPSBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICBwdXNoKEBjUHJlZml4
LCAiXG4iKTsKKworICAgICRpbXBsSW5jbHVkZXN7IkdET01CaW5kaW5nLmgifSA9IDE7CisgICAg
JGltcGxJbmNsdWRlc3siJGhkck5hbWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJwcml2
JHtoZHJOYW1lfS5oIn0gPSAxOworCisgICAgbXkgJHBhcmVudEludGVyZmFjZU5hbWUgPSAiRE9N
T2JqZWN0IjsKKyAgICBteSAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICBt
eSAkcGFyZW50SGRyTmFtZSA9ICJnZG9tRE9NT2JqZWN0IjsKKyAgICBpZiAoJHBhcmVudENsYXNz
TmFtZSBuZSAiR09iamVjdCIpCisgICAgeworICAgICAgICAkcGFyZW50SW50ZXJmYWNlTmFtZSA9
IHN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgaWYgKCRwYXJlbnRJbnRlcmZh
Y2VOYW1lIG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9
ICJHRE9NIi5zdWJzdHIoJHBhcmVudENsYXNzTmFtZSwgNCk7CisgICAgICAgICAgICAkcGFyZW50
SGRyTmFtZSA9IEdldEhkck5hbWUoJHBhcmVudEludGVyZmFjZU5hbWUpOworICAgICAgICB9Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAi
R0RPTU9iamVjdCI7CisgICAgICAgIH0KKyAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRI
ZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJwcml2JHtwYXJlbnRIZHJO
YW1lfS5oIn0gPSAxOworICAgICAgICAkaGRySW5jbHVkZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9
ID0gMTsKKyAgICAgICAgIyRoZHJJbmNsdWRlc3sicHJpdiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0g
MDsKKyAgICB9CisKKyAgICAjIFRPRE8gLSBtYWtlIHRoZXNlIG9ubHkgaW5jbHVkZSB3aGVyZSBu
ZWVkZWQsIGxpa2V3aXNlIHRoZQorICAgICMgZnVuY3Rpb24gZGVjbGFyYXRpb25zIHRvR0RPTSwg
dG9vCisgICAgJGltcGxJbmNsdWRlc3siTm9kZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7
IkVsZW1lbnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDU1NWYWx1ZS5oIn0gPSAxOwor
ICAgICRpbXBsSW5jbHVkZXN7IkNTU1J1bGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJI
VE1MQ29sbGVjdGlvbi5oIn0gPSAxOworICAgICMkaW1wbEluY2x1ZGVzeyJTVkdQYXRoU2VnLmgi
fSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siU3R5bGVTaGVldC5oIn0gPSAxOworICAgICRpbXBs
SW5jbHVkZXN7IkV2ZW50LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ2FudmFzUGl4ZWxB
cnJheS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkRPTVdpbmRvdy5oIn0gPSAxOworICAg
ICRpbXBsSW5jbHVkZXN7IlRleHQuaCJ9ID0gMTsKKworICAgICMgWFhYIFRPRE86IG1ha2UgdGhp
cyBvcHRpb25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3YXkuCisg
ICAgbXkgJGhhY2tEZWNscyA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdw
b2ludGVyIHRvR0RPTShOb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oQ1NTVmFsdWUq
IG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NSdWxlKiBub2RlKTsKKyAgICBncG9pbnRl
ciB0b0dET00oRWxlbWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBu
b2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oSFRNTENvbGxlY3Rpb24qIG5vZGUpOyAKKyAgICAv
L2dwb2ludGVyIHRvR0RPTShTVkdQYXRoU2VnKiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9HRE9N
KFN0eWxlU2hlZXQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXROb2Rl
KiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0KiBub2RlKTsgCisgICAg
Z3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKENhbnZh
c1BpeGVsQXJyYXkqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRE9NV2luZG93KiBub2Rl
KTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKFRleHQqIG5vZGUpOyAKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJGhhY2tEZWNscyk7CisKKyAgICAjIFhY
WCBUT0RPOiBtYWtlIHRoaXMgb3B0aW9uYWwgb3IgaW4gYSBoZWFkZXIgZmlsZS4gIG9yIGZpbmQg
YSBiZXR0ZXIgd2F5LgorICAgIG15ICRzdHJpbmdDb252ZXJ0ID0gPDwgIkVPRiI7CitjbGFzcyBH
U3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgorICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAg
ICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0
cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6S1VS
TCBjb25zdCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
IH0KKyAgICBHU3RyaW5nQ29udmVydChjb25zdCBLSlM6OlVTdHJpbmcgJiBzKSB7IG1fc3RyID0g
Z19zdHJkdXAocy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChX
ZWJDb3JlOjpBdG9taWNTdHJpbmcgY29uc3QmcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7IH0KK307CisKK0VPRgorCisgICAgcHVzaChAY0JvZHksICRzdHJp
bmdDb252ZXJ0KTsKKworICAgIHB1c2goQGNCb2R5LCAibmFtZXNwYWNlIFdlYkNvcmUge1xuIik7
CisKKyAgICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQT0RUeXBl
IGZsYWcKKyAgICBteSAkcG9kVHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlBPRFR5cGUifTsKKyAgICBteSAkcGFzc1R5cGUgPSAkcG9kVHlwZSA/ICJKU1NWR1BPRFR5cGVX
cmFwcGVyPCRwb2RUeXBlPioiIDogIiRpbnRlcmZhY2VOYW1lKiI7CisKKyAgICBpZiAoJHtpbnRl
cmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01hbnVhbFRvSlNJ
bXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkg
eworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiS0pTOjpKU1ZhbHVlKiB0b0pTKEtKUzo6RXhl
Y1N0YXRlKiBleGVjLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogb2JqLCBTVkdFbGVt
ZW50KiBjb250ZXh0KVxuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29u
dGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICAgcHVzaChAY0Jv
ZHksICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMsICRwYXNzVHlwZSBv
YmosIFNWR0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgImdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjokcGFzc1R5cGUgb2Jq
KVxuIik7CisgICAgICAgICN9CisKKyAgICAgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKyAgICAg
ICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVy
biBjYWNoZVNWR0RPTU9iamVjdDxKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiwgJGNsYXNz
TmFtZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQpO1xuIik7Cisg
ICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENs
YXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gY2FjaGVT
VkdET01PYmplY3Q8JGltcGxDbGFzc05hbWUsICRjbGFzc05hbWUsICR7Y2xhc3NOYW1lfVByb3Rv
dHlwZT4oZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBXZWJDb3JlOjpjYWNoZURPTU9iamVjdDxX
ZWJDb3JlOjokaW50ZXJmYWNlTmFtZSwgR0RPTSRpbnRlcmZhY2VOYW1lPihvYmopO1xuIik7Cisg
ICAgICAgICN9CisgICAgICAgIHB1c2goQGNCb2R5LCAifVxuIik7CisgICAgfQorCisgICAgcHVz
aChAY0JvZHksICJ9IC8qIG5hbWVzcGFjZSBXZWJDb3JlICovIFxuIik7CisgICAgbXkgJGltcGxD
b250ZW50ID0gIiI7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNCb2R5LCAidXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiZXh0ZXJuIFwiQ1wiIHtcblxu
Iik7CisgICAgcHVzaChAY0JvZHksICIjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdTdHJpbmdD
b252ZXJ0KHN0cikubV9zdHIpXG4iKTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGhlYWRlciB0
ZW1wbGF0ZQorICAgIEBoUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7Cisg
ICAgICAgICNwdXNoKEBoUHJlZml4LCAiXG4iKTsKKworICAgICMgSGVhZGVyIGd1YXJkCisgICAg
ICAgIG15ICRndWFyZCA9ICJfXyIgLiAkY2xhc3NOYW1lIC4gIl9IX18iOworCisgICAgbXkgJGNs
c0NhcHMgPSBzdWJzdHIoQ2xzVG9HT2JqVHlwZSgkY2xhc3NOYW1lKSwgNSk7CisgICAgbXkgJGxj
YXNlX2lmYWNlbmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKTsKKyAg
ICAjbXkgJHBhcmVudENsc0NhcHMgPSAiR0RPTV8iIC4gQ2xzVG9HT2JqVHlwZSgkcGFyZW50SW50
ZXJmYWNlTmFtZSk7CisKKyAgICBAaFByZWZpeEd1YXJkID0gPDwgIkVPRiI7CisjaWZuZGVmICRn
dWFyZAorI2RlZmluZSAkZ3VhcmQKK0VPRgorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
CitHX0JFR0lOX0RFQ0xTCisKK0VPRgorCisgICAgcHVzaChAaEJvZHlQcmUsICRpbXBsQ29udGVu
dCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworI2RlZmluZSBHRE9NX1RZUEVf
JHtjbHNDYXBzfSAgICAgICAgICAgICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV8ke2Nsc0NhcHN9KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RB
TkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX0pKQorI2Rl
ZmluZSBHRE9NXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
Q0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICRjbGFzc05hbWUpQ2xhc3MpCisj
ZGVmaW5lIEdET01fSVNfJHtjbHNDYXBzfShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNU
QU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdET01fSVNf
JHtjbHNDYXBzfV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyks
ICBHRE9NX1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfJHtj
bHNDYXBzfSwgJHtjbGFzc05hbWV9Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05h
bWV9UHJpdmF0ZSAke2NsYXNzTmFtZX1Qcml2YXRlOworCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSB7
CisgICAgJHtwYXJlbnRDbGFzc05hbWV9IHBhcmVudF9pbnN0YW5jZTsKKworICAgICR7Y2xhc3NO
YW1lfVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfUNsYXNzIHsKKyAg
ICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorJHts
Y2FzZV9pZmFjZW5hbWV9X2dldF90eXBlICh2b2lkKTsKKworRU9GCisKKyAgICBwdXNoKEBoQm9k
eSwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2lmbmRl
ZiAke2d1YXJkfV9QUk9QXworI2RlZmluZSAke2d1YXJkfV9QUk9QXworRU9GCisKKyAgICBwdXNo
KEBoQm9keVByb3BQcmUsICRpbXBsQ29udGVudCk7CisKKyAgICBwdXNoKEBoQm9keVByb3AsICJH
X0JFR0lOX0RFQ0xTXG4iKTsKKworICAgICRoZHJQcm9wSW5jbHVkZXsiZ2xpYi1vYmplY3QuaCJ9
ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7ImludCR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsK
KyAgICAkaGRyUHJvcEluY2x1ZGV7IkdET01PYmplY3QuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcElu
Y2x1ZGV7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8
ICJFT0YiOworI2lmbmRlZiAke2d1YXJkfV9JTlRfCisjZGVmaW5lICR7Z3VhcmR9X0lOVF8KKyNp
bmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImludCR7cGFyZW50SGRyTmFtZX0uaCIK
KyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgor
RU9GCisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworCisgICAgIGlm
ICgke2ludGVyZmFjZU5hbWV9IGVxICJET01XaW5kb3ciIHx8ICghJGhhc1BhcmVudCBvciAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFu
dWFsVG9KU0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VOYW1lKSkgeworICAgICAgICAkaW1wbENv
bnRlbnQgPSA8PCAiRU9GIjsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dE
T00oJHtpbnRlcmZhY2VOYW1lfSogbm9kZSk7Cit9IC8qIG5hbWVzcGFjZSBXZWJDb3JlICovIAor
RU9GCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKyAgICB9CisgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgI0NsYXNzIGRl
Y2xhcmF0aW9uCisgICAgI2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAg
ICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgImNsYXNzIEdET00kaW50ZXJmYWNlTmFtZSB7XG4i
KTsKKyAgICAjfSBlbHNlIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgImNsYXNzIEdE
T00kaW50ZXJmYWNlTmFtZSA6IHB1YmxpYyAkcGFyZW50R0lmYWNlTmFtZSB7XG4iKTsKKyAgICAg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB0eXBlZGVmICRwYXJlbnRHSWZhY2VOYW1lIEJh
c2U7XG4iKTsKKyAgICAjfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJwdWJsaWM6XG4iKTsK
KworICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgaW50IGdldF9nb2JqX3R5cGUoKSB7IHJl
dHVybiBHRE9NX1RZUEVfJHtjbHNDYXBzfTsgfVxuIik7CisKKyAgICBteSAkbmVlZHNTVkdDb250
ZXh0ID0gMDsKKyAgICAjIENvbnN0cnVjdG9yCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAg
ICBHRE9NJGludGVyZmFjZU5hbWUoUGFzc1JlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4g
aW1wbCIgLiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQiIDogIiIp
IC4gIik7XG4iKTsKKworICAgICMgRGVzdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICIgICAgdmlydHVhbCB+R0RPTSRpbnRlcmZhY2VOYW1lKCk7XG4iKSBpZiAoISRoYXNQYXJlbnQg
b3IgJGludGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50Iikgb3IgJGludGVyZmFjZU5hbWUgZXEgIkRP
TVdpbmRvdyI7CisKKyAgICBpZiAoISRoYXNQYXJlbnQgfHwgKCRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogaW1w
bCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuIik7CisgICAgICAgICMgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZXh0LmdldCgpOyB9XG5cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICJwcml2YXRlOlxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwg
IiAgICBSZWZQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0O1xuIik7CisgICAgICAgICMgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlw
ZT4gPiBtX2ltcGw7XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250
ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5
SW50ZXJuYWwsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2lt
cGwuZ2V0KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
U1ZHRWxlbWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxu
XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOwor
ICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+
IG1fY29udGV4dDtcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
UmVmUHRyPCRpbXBsQ2xhc3NOYW1lID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2Ugewor
ICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNl
TmFtZSogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRlOlxuIik7CisgICAgICAgICAgICBw
dXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4g
bV9pbXBsO1xuIik7CisgICAgICAgICN9CisgICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgeworICAgICAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgIFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBsKCkgY29u
c3RcbiIpOworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHtcbiIpOworICAgICAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6JGludGVyZmFjZU5hbWUqPihCYXNlOjppbXBsKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhC
b2R5SW50ZXJuYWwsICIgICAgfVxuIik7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICJ9O1xuIik7CisKKyAgICAjIENvbnN0cnVjdG9yCisgICAgcHVzaChAY0JvZHksICJHRE9NJHtp
bnRlcmZhY2VOYW1lfTo6R0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGlu
dGVyZmFjZU5hbWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBj
b250ZXh0IiA6ICIiKSAuICIpXG4iKTsKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdp
bmRvdyIpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOm1faW1wbChpbXBsKVxuIik7Cisg
ICAgfSBlbHNpZiAoJGhhc1BhcmVudCkgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6ICRw
YXJlbnRHSWZhY2VOYW1lKGltcGwiIC4gKCRwYXJlbnROZWVkc1NWR0NvbnRleHQgPyAiLCBjb250
ZXh0IiA6ICIiKSAuICIpXG4iKSBpZiAoJGludGVyZmFjZU5hbWUgbmUgIkRPTVdpbmRvdyIpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDogJHBhcmVudEdJZmFjZU5h
bWUoKVxuIikgOworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAsIG1fY29udGV4dChjb250ZXh0
KVxuIikgaWYgJG5lZWRzU1ZHQ29udGV4dDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBt
X2ltcGwoaW1wbClcbiIpOworICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAg
cHVzaChAY0JvZHksICJ9XG5cbiIpOworCisgICAgIyBEZXN0cnVjdG9yCisgICAgaWYgKCEkaGFz
UGFyZW50IG9yICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgcHVz
aChAY0JvZHksICJHRE9NJHtpbnRlcmZhY2VOYW1lfTo6fkdET00kaW50ZXJmYWNlTmFtZSgpXG4i
KTsKKyAgICAgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKworICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBtX2ltcGwuZ2V0KCktPmRlcmVmKCk7XG4iKTsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJOb2RlIikgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6
R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQobV9pbXBsLT5k
b2N1bWVudCgpLCBtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICAgICAjICAgIG15ICRhbmltYXRlZFR5cGUg
PSAkaW1wbENsYXNzTmFtZTsKKyAgICAgICAgICAgICMgICAgJGFuaW1hdGVkVHlwZSA9fiBzL1NW
Ry9TVkdBbmltYXRlZC87CisKKyAgICAgICAgICAgICMgICAgIyBTcGVjaWFsIGNhc2UgZm9yIEpT
U1ZHTnVtYmVyCisgICAgICAgICAgICAjICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmlt
YXRlZFR5cGUoJGFuaW1hdGVkVHlwZSkgYW5kICRwb2RUeXBlIG5lICJmbG9hdCIpIHsKKyAgICAg
ICAgICAgICMgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIEpTU1ZHRHluYW1pY1BPRFR5cGVXcmFw
cGVyQ2FjaGU8JHBvZFR5cGUsICRhbmltYXRlZFR5cGU+Ojpmb3JnZXRXcmFwcGVyKG1faW1wbC5n
ZXQoKSk7XG4iKTsKKyAgICAgICAgICAgICMgICAgfQorICAgICAgICAgICAgI30KKyAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9y
Z2V0RE9NT2JqZWN0KG1faW1wbC5nZXQoKSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1
c2goQGNCb2R5LCAiXG59XG5cbiIpOworICAgIH0KKworICAgICMgRG9jdW1lbnQgbmVlZHMgYSBz
cGVjaWFsIGRlc3RydWN0b3IgYmVjYXVzZSBpdCdzIGEgc3BlY2lhbCBjYXNlIGZvciBjYWNoaW5n
LiBJdCBuZWVkcworICAgICMgaXRzIG93biBzcGVjaWFsIGhhbmRsaW5nIHJhdGhlciB0aGFuIHJl
bHlpbmcgb24gdGhlIGNhY2hpbmcgdGhhdCBOb2RlIG5vcm1hbGx5IGRvZXMuCisgICAgaWYgKCRp
bnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICJHRE9N
JHtpbnRlcmZhY2VOYW1lfTo6fkdET00kaW50ZXJmYWNlTmFtZSgpXG4iKTsKKyAgICAgICAgcHVz
aChAY0JvZHksICJ7XG4gICAgV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRE
T01PYmplY3Qoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KGltcGwoKSkp
O1xufVxuXG4iKTsKKyAgICB9CisKKyAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmVudEhkck5hbWV9
LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOwor
ICAgICRpbXBsSW5jbHVkZXN7IkdET01PYmplY3QuaCJ9ID0gMTsKKworICAgICRpbXBsVHlwZWRl
ZnN7IiRjbGFzc05hbWUifSA9IDE7CisgICAgJGltcGxUeXBlZGVmc3siJHtjbGFzc05hbWV9Q2xh
c3MifSA9IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRk
ZWZpbmVzLmg+CisjaW5jbHVkZSAiRE9NV2luZG93LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRo
aXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJOb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRo
aXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIgLyogeXVrazogVE9ETyAt
IG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIgLyogeXVr
azogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc0dyYWRpZW50
LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52
YXNTdHlsZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVk
ZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMg
b3B0aW9uYWwgKi8KKyNpbmNsdWRlICJwcml2Z2RvbURPTU9iamVjdC5oIiAvKiB5dWtrOiBUT0RP
IC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiZ2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAicHJpdmdk
b21FdmVudFRhcmdldE5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCBv
biBFdmVudFRhcmdldCovCisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgorI2luY2x1ZGUg
IiR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICJwcml2JHtoZHJOYW1lfS5oIgorI2luY2x1ZGUgImlu
dCR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5hbWV9cHJvcHMuaCIKKyNpbmNsdWRlICJD
U3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNT
dHJpbmcuaCIKKyNpbmNsdWRlICJ1c3RyaW5nLmgiCisjaW5jbHVkZSAiS1VSTC5oIgorCisjaW5j
bHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAi
VGV4dC5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTUnVsZS5oIgorI2lu
Y2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgImdk
b21FdmVudC5oIgorCisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQp
OworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyR7aGFja0RlY2xzfQorCitHX0JF
R0lOX0RFQ0xTCisKKyR7c3RyaW5nQ29udmVydH0KKworR19ERUZJTkVfVFlQRSgke2NsYXNzTmFt
ZX0sICR7bGNhc2VfaWZhY2VuYW1lfSwgJHtwYXJlbnRHT2JqVHlwZX0pOworCisjZGVmaW5lIF9H
X0dFVF9VVEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0KHN0cikubV9zdHIpCisKKy8qCitzdHJ1Y3Qg
XyR7Y2xhc3NOYW1lfVByaXZhdGUgeworICAgIGNsYXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKml0ZW07Cit9OyAgCisKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9QUklWQVRFKG9i
aikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fw
c30sICR7Y2xhc3NOYW1lfVByaXZhdGUpKQorKi8KK0dfRU5EX0RFQ0xTCitXZWJDb3JlOjoke2lu
dGVyZmFjZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFt
ZX0gKnJlcXVlc3QpCit7CitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50
KTsKKworICAgIGlmICgoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAg
ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRP
RE8gKi8KK0VPRgorICAgIH0gZWxzZSB7CisgICAgICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0Yi
OworICAgIEdET00ke2ludGVyZmFjZU5hbWV9ICpyZXM7CisgICAgcmVzID0gc3RhdGljX2Nhc3Q8
R0RPTSR7aW50ZXJmYWNlTmFtZX0qPihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9E
T01fT0JKRUNUKHJlcXVlc3QpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7
aW50ZXJmYWNlTmFtZX0qPihyZXMtPmltcGwoKSk7CitFT0YKKyAgICB9CisgICAgcHVzaChAY0Jv
ZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgIyBQcm9wZXJ0aWVzCisgICAgbXkgJGZ1bmN0
aW9uTmFtZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5hbWU7IAorICAgIFNLSVBQUk9QOiBmb3JlYWNo
IG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAk
cHJvcE5hbWUgPSBkZWNhbWVsaXplKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAg
ICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAg
IG15ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICRmdW5jdGlvblNp
ZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKyAgICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCisgICAgICAgIGlm
ICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0
ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgi
fSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworCisgICAgICAgIGlmIChz
a2lwUHJvcFRlbXBvcmFyaWx5KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4
dCBTS0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGFkZFByb3BJbmNI
ZHIoJHByb3BfdHlwZSk7CisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJvcCwgIldFQktJVF9BUEkg
JHR5cGVcbiRmdW5jdGlvbk5hbWVQcmVmaXgiIC4gIl9wcm9wX2dldF8iIC4gIiRwcm9wTmFtZSAo
JGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJvcCwgIldFQktJ
VF9BUEkgdm9pZFxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3Bfc2V0XyIgLiAiJHByb3BO
YW1lICgkZnVuY3Rpb25TaWcsICR0eXBlIiAuICJ2YWx1ZSk7XG5cbiIpOworICAgIH0KKworICAg
ICMgUHJvcGVydGllcworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworfQorCitHX0JFR0lO
X0RFQ0xTCisKK2VudW0geworICAgIEJST1dTRVJfRVZFTlQsCisgICAgTEFTVF9TSUdOQUwKK307
CisKK3N0YXRpYyBndWludCBldmVudF9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKKwor
ZW51bSB7CisgICAgUFJPUF8wLAorRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRl
bnQpOworCisgICAgbXkgQHR4dF9pbnN0YWxsX3Byb3BzID0gKCk7CisgICAgbXkgQHR4dF9zZXRf
cHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X2dldF9wcm9wcyA9ICgpOworCisgICAgbXkgJHByaXZf
Zm4gPSBHZXRQcml2Rm4oJGludGVyZmFjZU5hbWUsICR7bGNhc2VfaWZhY2VuYW1lfSwgImdzZWxm
IiwgInNlbGYiKTsKKworICAgIG15ICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2
b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3Qs
IGd1aW50IHByb3BfaWQsCisJCQkJCSBHVmFsdWUgKiB2YWx1ZSwKKwkJCQkJIEdQYXJhbVNwZWMg
KiBwc3BlYykKK3sKKwkke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0
KTsKKyAgICAkcHJpdl9mbgorCXN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0
X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICBteSAkdHh0X3NldF9wcm9wID0gPDwg
IkVPRiI7CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9mbihH
T2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorCQkJCQkgY29uc3QgR1ZhbHVlICogdmFs
dWUsCisJCQkJCSBHUGFyYW1TcGVjICogcHNwZWMpCit7CisJJHtjbGFzc05hbWV9ICpzZWxmID0g
R0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKwlzd2l0Y2ggKHByb3BfaWQp
IHsKK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0eHRfc2V0X3Byb3ApOworCisgICAg
U0tJUEVOVU06IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9
KSB7CisgICAgICAgIG15ICRwcm9wX25hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7
CisgICAgICAgIG15ICRzZXRwcm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJGdldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJh
dG9yLT5XS19sY2ZpcnN0KCRwcm9wX25hbWUpOworCisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRl
Y2FtZWxpemUoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRwcm9wQ2FwcyA9IHVjKCRwcm9wTmFt
ZSk7CisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7
CisgICAgICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICR7
cHJvcEVudW19ID0gIlBST1BfJHtwcm9wQ2Fwc30iOworICAgICAgICBteSAke3Byb3BfZ3R5cGV9
ID0gZGVjYW1lbGl6ZSgkcHJvcF90eXBlKTsKKyAgICAgICAgaWYgKCRwcm9wX2d0eXBlIGVxICJl
dmVudF90YXJnZXQiKSB7CisgICAgICAgICAgICAkcHJvcF9ndHlwZSA9ICJldmVudF90YXJnZXRf
bm9kZSI7CisgICAgICAgIH0KKyAgICAgICAgbXkgJHtwcm9wR1R5cGV9ID0gdWMoJHByb3BfZ3R5
cGUpOworICAgICAgICBteSAkbGNhc2VfZ3R5cGVuYW1lID0gImdkb21fIiAuICRwcm9wX2d0eXBl
OworCisgICAgICAgIG15ICRjdXN0b20gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b20ifTsKKworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0pIHsKKyAgICAgICAgICAg
IG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxIGlmICR0eXBlIGVxICJD
U1NTdHlsZURlY2xhcmF0aW9uIjsKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5
cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9
CisgICAgICAgICAgICAKKyAgICAgICAgcHVzaChAY0JvZHlQcml2LCAiICAgICR7cHJvcEVudW19
LFxuIik7CisKKyAgICAgICAgbXkgJGd0eXBlID0gR2V0UHJvcEdUeXBlKCRwcm9wX3R5cGUpOwor
ICAgICAgICBteSAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURBQkxFIjsKKyAgICAgICAgbXkg
JHdyaXRlYWJsZSA9ICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS87CisgICAgICAgIG15
ICRjb25zdCA9ICJyZWFkLW9ubHkgIjsKKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgJGN1c3Rv
bSkgeworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtb25seSAoZHVlIHRvIGN1c3RvbSBmdW5j
dGlvbnMgbmVlZGVkIGluIGdkb213ZWJraXQpIjsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07
CisgICAgICAgIH0KKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgISRjdXN0b20pIHsKKyAgICAg
ICAgICAgICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBRFdSSVRFIjsKKyAgICAgICAgICAgICRj
b25zdCA9ICJyZWFkLXdyaXRlICI7CisgICAgICAgIH0KKworICAgICAgICBteSAkX2d0eXBlID0g
JGd0eXBlOworICAgICAgICBpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAk
X2d0eXBlID0gInVpbnQiOyAjIHl1ay4KKyAgICAgICAgfQorICAgICAgICBteSAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworCWdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdf
a2xhc3MsICR7cHJvcEVudW19LCAKKwkJCWdfcGFyYW1fc3BlY18ke19ndHlwZX0gKCIke3Byb3BO
YW1lfSIsIC8qIG5hbWUgKi8KKwkJCQkiJHtpbnRlcmZhY2VOYW1lfS4ke3Byb3BOYW1lfSIsIC8q
IHNob3J0IGRlc2NyaXB0aW9uICovCisJCQkJIiR7Y29uc3R9ICR7dHlwZX0gJHtpbnRlcmZhY2VO
YW1lfS4ke3Byb3BOYW1lfSIsIC8qIGxvbmdlciAqLworRU9GCisgICAgICAgIHB1c2goQHR4dF9p
bnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gIi8qIFRPRE8hICRndHlwZSAqL1xuIjsKKworICAgICAgICBpZiAoJHdyaXRlYWJsZSkg
eworCisgICAgICAgICAgICBteSAkb2sgPSAwOworICAgICAgICAgICAgbXkgJGNvbnZlcnRfZm4g
PSAiIjsKKyAgICAgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAg
ICAgICAkY29udmVydF9mbiA9ICJXZWJDb3JlOjpTdHJpbmciOworICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJib29s
ZWFuIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5k
b3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBp
dCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAgICAg
ICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91Ymxl
IikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ci
KSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdz
IGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAgICAg
ICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVsb25nIikg
eworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7
ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFi
b3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAg
InB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAg
ICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVjaGFyIikgeworICAgICAg
ICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIi
KSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICMgWFhYIFRPRE8gLSBza2lwIExvY2F0aW9uCisgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5h
bWUgZXEgIkxvY2F0aW9uIikgeworICAgICAgICAgICAgICAgICRvayA9IDA7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICgkb2spIHsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRf
c2V0X3Byb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAg
ICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGdzZWxmLT5zZXQke3NldHBy
b3BfbmFtZV9mbn0oJHtjb252ZXJ0X2ZufShnX3ZhbHVlX2dldF8kZ3R5cGUgKHZhbHVlKSkiKTsK
KworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIsIGVjIikgaWYgQHskYXR0
cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0
X3Byb3BzLCAiKTtcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywg
IiAgICAgICAgYnJlYWs7XG4gICAgfVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAg
e1xuIik7CisKKyAgICAgICAgbXkgJGV4Y2VwdGlvbiA9ICIiOworICAgICAgICBpZiAoQHskYXR0
cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgJGV4Y2VwdGlvbiA9ICJl
YyI7CisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpF
eGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgbXkgJGNvbnZl
cnRfZm4gPSAiIjsKKyAgICAgICAgbXkgJHBvc3RfY29udmVydF9mbiA9ICIiOworICAgICAgICBt
eSAkZG9uZSA9IDA7CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAg
ICAgICRjb252ZXJ0X2ZuID0gIl9HX0dFVF9VVEY4KCI7CisgICAgICAgICAgICAkcG9zdF9jb252
ZXJ0X2ZuID0gIikiOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgIm9iamVj
dCIpIHsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9ICJXVEY6OmdldFB0cigke2xjYXNlX2d0
eXBlbmFtZX1fZ2V0X3ByaXZhdGUoIjsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9IEdldFBy
aXZGbigkaW50ZXJmYWNlTmFtZSwgJHtsY2FzZV9ndHlwZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIp
OworICAgICAgICAgICAgIyRjb252ZXJ0X2ZuID0gIiR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJp
dmF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4oIjsKKyAgICAgICAgICAgICMk
cG9zdF9jb252ZXJ0X2ZuID0gIikiOworICAgICAgICAgICAgbXkgJGRvbW9ialR5cGUgPSAiR0RP
TSIuJHByb3BfdHlwZTsKKyAgICAgICAgICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAg
ICAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+IHB0ciA9IGdzZWxmLT4ke2dl
dHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KTsKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0
ICh2YWx1ZSwgV2ViQ29yZTo6dG9HRE9NKHB0ci5nZXQoKSkpOworRU9GCisgICAgICAgICAgICBw
dXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKyAgICAgICAgICAgICRkb25lID0g
MTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghJGRvbmUpIHsKKyAgICAgICAgICAgIHB1c2go
QHR4dF9nZXRfcHJvcHMsICIgICAgICAgIGdfdmFsdWVfc2V0XyRfZ3R5cGUgKHZhbHVlLCAke2Nv
bnZlcnRfZm59Z3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pJHtwb3N0X2Nv
bnZlcnRfZm59KTtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcHVzaChAdHh0X2dldF9wcm9w
cywgIiAgICAgICAgYnJlYWs7XG4gICAgfVxuIik7CisKKyAgICAgICAgIyBpcyB0aGlzIF9lbnRp
cmVseV8gbmVjZXNzYXJ5Pz8/CisgICAgICAgICMgY2FuIGl0IGJlIGRvbmUgd2l0aCBnZW5lcmlj
IGdfcGFyYW1fc3BlY19ndHlwZQorICAgICAgICAjIGFuZCBnZXR0aW5nIGEgZmV3IHRoaW5ncywg
aWdub3JpbmcgdGhlIG1pbi1tYXggZm9yIGV4YW1wbGU/CisgICAgICAgIGlmICgkZ3R5cGUgZXEg
ImludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJ
R19NSU5JTlQsICAgICAgICAvKiBtaW4gKi8KKwkJCQlHX01BWElOVCwgLyogbWF4ICovCisJCQkJ
MCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEg
ImJvb2xlYW4iKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOwor
ICAgICAgICAgICAgICAgIEZBTFNFLCAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNp
ZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0g
PDwgIkVPRiI7CisJCQkJR19NSU5GTE9BVCwgICAgICAgIC8qIG1pbiAqLworCQkJCUdfTUFYRkxP
QVQsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAg
fSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxf
cHJvcCA9IDw8ICJFT0YiOworCQkJCUdfTUlORE9VQkxFLCAgICAgICAgLyogbWluICovCisJCQkJ
R19NQVhET1VCTEUsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YK
KyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAkdHh0
X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCTAsICAgICAgICAvKiBtaW4gKi8KKwkJCQlH
X01BWFVJTlQ2NCwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgor
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVsb25nIikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWluICovCisJCQkJR19N
QVhVTE9ORywgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxvbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCUdfTUlOTE9ORywgICAgICAgIC8qIG1pbiAqLworCQkJ
CUdfTUFYTE9ORywgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgor
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAgICAkdHh0X2lu
c3RhbGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCTAsICAgICAgICAvKiBtaW4gKi8KKwkJCQlHX01B
WFVJTlQsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAg
ICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworCQkJCTAsICAgICAgICAvKiBtaW4gKi8KKwkJCQlHX01BWFVJ
TlQxNiwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgInVjaGFyIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKwkJCQlHX01JTklOVDgsICAgICAgICAvKiBtaW4gKi8KKwkJCQlH
X01BWElOVDgsIC8qIG1heCAqLworCQkJCTAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJjaGFyIikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKwkJCQkwLCAgICAgICAgLyogbWluICovCisJCQkJR19NQVhV
SU5UOCwgLyogbWF4ICovCisJCQkJMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFs
bF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KK0VP
RgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisJCQkJR0RPTV9UWVBFXyR7cHJvcEdUeXBlfSwg
LyogZ29iamVjdCB0eXBlICovCitFT0YKKyAgICAgICAgfQorICAgICAgICBwdXNoKEB0eHRfaW5z
dGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworICAgICAgICAkdHh0X2luc3RhbGxfcHJv
cCA9IDw8ICJFT0YiOworCQkJCShHUGFyYW1GbGFncykke2dwYXJhbWZsYWd9KSk7ICAgICAgICAg
ICAgICAgICAgIAorCitFT0YKKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRf
aW5zdGFsbF9wcm9wKTsKKworCisgICAgfQorCisgICAgcHVzaChAY0JvZHlQcml2LCAifTtcblxu
Iik7CisKKworICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKKwlkZWZhdWx0OgorCQlHX09C
SkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisJ
CWJyZWFrOworCX0KK30KK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3By
b3ApOworCisgICAgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworCWRlZmF1bHQ6CisJCUdfT0JK
RUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKwkJ
YnJlYWs7CisJfQorfQorRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJv
cCk7CisKKyAgICBteSAkdHh0X3NldF9nZXRfcHJvcHMgPSA8PCAiRU9GIjsKKwljYXNlIFBST1Bf
QUdFOgorCQlzZWxmLT5hZ2UgPSBnX3ZhbHVlX2dldF9pbnQgKHZhbHVlKTsKKwkJYnJlYWs7CisK
KwljYXNlIFBST1BfQUdFOgorCQlnX3ZhbHVlX3NldF9pbnQodmFsdWUsIHNlbGYtPmFnZSk7CisJ
CWJyZWFrOworCisgICAgICAgICsgICBnX3ZhbHVlX2luaXQoJnBhcmFtc1swXSwgR19UWVBFX0ZS
T01fSU5TVEFOQ0Uob2JqZWN0KSk7CisgICAgICAgICsgICBnX3ZhbHVlX3NldF9pbnN0YW5jZSgm
cGFyYW1zWzBdLCAoZ3BvaW50ZXIpb2JqZWN0KTsKKworRU9GCisKKyAgICAjIFRPRE86IHdvcmsg
b3V0IGlmIGl0J3MgYXBwcm9wcmlhdGUgdG8gc3BsaXQgdGhpcyBpbnRvIG1hbnkgZGlmZmVyZW50
CisgICAgIyBzaWduYWxzIGUuZy4gImNsaWNrIiBldGMuCisgICAgbXkgJHR4dF9pbnN0YWxsX3Np
Z25hbHMgPSAiIjsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikgewor
ICAgICAgICAkdHh0X2luc3RhbGxfc2lnbmFscyA9IDw8ICJFT0YiOworICAgIGV2ZW50X3NpZ25h
bHNbQlJPV1NFUl9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAg
ICBHX1RZUEVfRlJPTV9DTEFTUyhyZXF1ZXN0Q2xhc3MpLAorICAgICAgICAoR1NpZ25hbEZsYWdz
KShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgIDAsCisgICAg
ICAgIE5VTEwsCisgICAgICAgIE5VTEwsCisgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09C
SkVDVF9CT09MRUFOLAorICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgR0RPTV9UWVBF
X0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CitFT0YKKyAgICB9CisKKyAgICAkaW1wbENvbnRlbnQg
PSA8PCAiRU9GIjsKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplKEdP
YmplY3QqIG9iamVjdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfSogcmVxdWVzdCA9IEdET01fJHtj
bHNDYXBzfShvYmplY3QpOyovCisgICAgLyoke2NsYXNzTmFtZX1Qcml2YXRlKiBwcml2ID0gcmVx
dWVzdC0+cHJpdjsqLworICAgIAorICAgIC8qR09iamVjdENsYXNzICpwYXJlbnRfY2xhc3MgPSBn
X3R5cGVfY2xhc3NfcGVlayAoZ190eXBlX3BlZWtfcGFyZW50ICgke3BhcmVudEdPYmpUeXBlfSkp
OyovCisKKyAgICAvKiBGcmVlIGFueSBtZW1vcnkgb3IgY2xvc2UgYW55IGZpbGVzICovIAorCisg
ICAgLypwYXJlbnRfY2xhc3MtPiBmaW5hbGl6ZSAob2JqZWN0KTsqLworCisgICAgR19PQkpFQ1Rf
Q0xBU1MoJHtsY2FzZV9pZmFjZW5hbWV9X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7
Cit9CisKK0B0eHRfc2V0X3Byb3BzCisKK0B0eHRfZ2V0X3Byb3BzCisKK3N0YXRpYyB2b2lkICR7
bGNhc2VfaWZhY2VuYW1lfV9jbGFzc19pbml0KCR7Y2xhc3NOYW1lfUNsYXNzKiByZXF1ZXN0Q2xh
c3MpCit7CisJR09iamVjdENsYXNzICpnX2tsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKHJlcXVlc3RD
bGFzcyk7CisgICAgZ19rbGFzcy0+ZmluYWxpemUgPSAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxp
emU7CisJZ19rbGFzcy0+c2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJv
cGVydHlfZm47CisJZ19rbGFzcy0+Z2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19n
ZXRfcHJvcGVydHlfZm47CisgICAgCitAdHh0X2luc3RhbGxfcHJvcHMKKworJHR4dF9pbnN0YWxs
X3NpZ25hbHMKKworICAgIC8qZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywg
c2l6ZW9mKCR7Y2xhc3NOYW1lfVByaXZhdGUpKTsqLworfQorCitzdGF0aWMgdm9pZCAke2xjYXNl
X2lmYWNlbmFtZX1faW5pdCgke2NsYXNzTmFtZX0qIHJlcXVlc3QpCit7CisgICAgLyoke2NsYXNz
TmFtZX1Qcml2YXRlKiBwcml2ID0gR0RPTV8ke2Nsc0NhcHN9X0dFVF9QUklWQVRFKHJlcXVlc3Qp
OworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OyovCit9ICAgCisKK0VPRgorCisgICAgcHVzaChA
Y0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxJbmNsdWRlc3siaW50Z2RvbSR7
aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKwor
I2lmbmRlZiAke2d1YXJkfV9QUklWXworI2RlZmluZSAke2d1YXJkfV9QUklWXworI2luY2x1ZGUg
ImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiJHtwYXJlbnRIZHJOYW1lfS5oIgorI2luY2x1ZGUg
IkdET01PYmplY3QuaCIKKy8qI2luY2x1ZGUgInByaXYke3BhcmVudEhkck5hbWV9LmgiKi8KKy8q
R19CRUdJTl9ERUNMUyovCisvKmNsYXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX07Ki8KKyNp
bmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJpdiwg
JGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy9uYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEdET00ke2ludGVyZmFjZU5hbWV9IDogcHVibGljICR7cGFy
ZW50R0lmYWNlTmFtZX0geworCitwdWJsaWM6CisgICAgR0RPTSR7aW50ZXJmYWNlTmFtZX0oV2Vi
Q29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCkgOiAkcGFyZW50R0lmYWNlTmFtZX0oaW1wbCkK
KyAgICB7IGltcGwtPnJlZigpOyB9CisgICAgfkdET00ke2ludGVyZmFjZU5hbWV9KCkgeyBtX2lt
cGwtPmRlcmVmKCk7IH0KKworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGltcGwoKSBj
b25zdCB7IHJldHVybiBtX2ltcGw7IH0KKworCitwcml2YXRlOgorICAgIFdlYkNvcmU6OiR7aW50
ZXJmYWNlTmFtZX0gKm1faW1wbDsKK307CisKK0VPRgorCisgICAgICAgICNwdXNoKEBoQm9keVBy
aXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9ICR7Y2xh
c3NOYW1lfTsKKworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lmYWNlbmFt
ZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKworLypHX0VORF9ERUNMUyov
CisKKyNlbmRpZiAvKiAke2d1YXJkfV9QUklWXyAqLworCitFT0YKKworICAgICNyZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oKFdlYkNvcmU6Ok5vZGUq
KShyZXMpKTsKKyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
ICAgICNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgIyBY
WFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgIyAgICAk
aW1wbEluY2x1ZGVzeyJKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0gPSAxOworICAgICAg
ICAjfSBlbHNlIHsKKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyRpbmNsdWRlSGRyfSA9IDE7
CisgICAgICAgICN9CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9
ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3sicHJpdmdkb21ET01PYmplY3QuaCJ9ID0gMTsK
KworICAgICAgICBMT09QOiBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0
aW9uc30pIHsKKyAgICAgICAgICAgICNteSAkZnVuY3Rpb25OYW1lID0gZGVjYW1lbGl6ZSgkY2xh
c3NOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpOwor
ICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5u
YW1lOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlOworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV8iIC4g
ZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRmbl9zaWdfbmFt
ZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldHVyblR5cGUgPSBHZXRHVHlwZSgkZm5fc2lnX3R5
cGUpOworICAgICAgICAgICAgICAgIG15ICRyZXRfaXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5
cGUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIk
Y2xhc3NOYW1lICp0aGl6IjsKKworICAgICAgICAgICAgICAgIG15ICRjYWxsX2ltcGxfcGFyYW1z
ID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gImdkb21fIiAuIGRl
Y2FtZWxpemUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkiKSB7CisgICAg
ICAgICAgICAgICAgICAgICMgcmVzZXJ2ZWQgbmFtZSBjbGFzaCBpbiBnbGliIQorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdkb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3Nl
dF9jc3NfcHJvcGVydHkiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAjIFhY
WCBza2lwIENvbXBhcmVIb3cgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAo
JGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyIpIHsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGlu
ZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBDb21wYXJl
SG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhY
IHNraXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAo
JHJldHVyblR5cGUgZXEgIkdkb21TVkdEb2N1bWVudCAqIikgeworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0
aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1
bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIHNvbWUgY3VzdG9t
IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgbXkgJGlzX2N1c3RvbV9mbiA9ICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisgICAg
ICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xsZWN0aW9uX2l0
ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9j
b2xsZWN0aW9uX25hbWVkX2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5h
bWUgZXEgImdkb21fZWxlbWVudF9zZXRfYXR0cmlidXRlIikgeworICAgICAgICAgICAgICAgICAg
ICAkaXNfY3VzdG9tX2ZuID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
aWYgKCRpc19jdXN0b21fZm4gJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
bmUgImdkb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYg
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRf
YmVmb3JlIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25v
ZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAiZ2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3Rf
Y2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3Ry
ZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisgICAgICAg
ICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNf
bm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJl
ZV93YWxrZXJfbmV4dF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX3ByZXZpb3VzX25vZGUiKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVu
Y3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJc
bi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwor
ICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkg
eworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwor
ICAgICAgICAgICAgICAgICAgICBhZGRJbmNCb2R5KCRwYXJhbUlETFR5cGUpOworICAgICAgICAg
ICAgICAgICAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAg
IG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25TaWcgLj0gIiwgJHBhcmFtVHlwZSRwYXJhbU5hbWUiOwor
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNz
VHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19j
bHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgbmUg
IkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JRExUeXBl
IG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJpbnRnZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJGltcGxJbmNsdWRlc3sicHJpdmdkb20ke3BhcmFtSURMVHlwZX0uaCJ9ID0g
MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmFtSURM
VHlwZX0uaCJ9ID0gMTsgIyB0aGlzIGlzbid0IHN0cmljdGx5IG5lY2Vzc2FyeSBidXQgb25lIG9m
IHRoZSBhdXRvLWdlbmVyYXRlZCBmaWxlcyBuZWVkZWQgaXQgc28uLi4uCisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
aWYgKCRwYXJhbV9pc19jbHNfdHlwZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbU5hbWUgPSAiX2dfIiAuICRwYXJhbU5h
bWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjYWxs
X2ltcGxfcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFt
cyAuPSAiLCAkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRjYWxsX2ltcGxfcGFyYW1z
ID0gIiRwYXJhbU5hbWUiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRmbl9zaWdfdHlwZSk7CisgICAgICAgICAg
ICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBs
VHlwZWRlZnN7Ikdkb20ke2ZuX3NpZ190eXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb21DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRXZlbnRU
YXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
ImludGdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJwcml2Z2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20ke2ZuX3Np
Z190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ZuX3NpZ190eXBlfS5oIn0gPSAx
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBjdXN0b20gZnVuY3Rp
b25zIGZvciBub3cKKyAgICAgICAgICAgICAgICAjIGJ1dCBza2lwIGZyb20gaGVyZSB0byBhbGxv
dyBzb21lIGhlYWRlcnMgdG8gYmUgY3JlYXRlZAorICAgICAgICAgICAgICAgICMgZm9yIGEgc3Vj
Y2Vzc2Z1bCBjb21waWxlLgorICAgICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmCisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZW1vdmVfY2hp
bGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVf
aW5zZXJ0X2JlZm9yZSIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAi
Z2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAg
IHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25O
YW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhY
WCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAg
ICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgbXkgJF9yZXR1cm5UeXBlID0gJHJldHVyblR5cGU7CisgICAgICAgICAgICAgICAgbXkg
JGRvbW9ialR5cGUgPSAiR0RPTSIuJGZuX3NpZ190eXBlOworICAgICAgICAgICAgICAgIGlmICgk
Zm5fc2lnX3R5cGUgZXEgJ0RPTU9iamVjdCcgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAnZ2RvbV9odG1sX2NhbnZhc19lbGVtZW50X2dldF9jb250ZXh0JykgeworICAg
ICAgICAgICAgICAgICAgICAjIFhYWCBIQUNLIQorICAgICAgICAgICAgICAgICAgICAkX3JldHVy
blR5cGUgPSAnR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQgKic7CisgICAgICAgICAgICAgICAg
ICAgICRkb21vYmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0JzsKKyAgICAgICAg
ICAgICAgICAgICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250
ZXh0JzsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZl
ZCBmb3Igbm93LiAgc2tpcCBpdC4KKyAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQg
dG8gYSBET01PYmplY3QgKFRPRE86IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAg
ICAgICAgICAgICAgICAgICAgIyBiZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9N
RG9tT2JqZWN0CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFz
X2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAg
ICAgICAgICAgICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEICon
OworICAgICAgICAgICAgICAgICAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEJzsKKyAgICAgICAgICAgICAgICAgICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21f
Y2FudmFzX3JlbmRlcmluZ19jb250ZXh0MmQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExP
T1A7ICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAg
ICAgICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNv
ZGUgdG8gZmluZCBvdXQgaG93KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBv
dXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiV0VCS0lU
X0FQSSAkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOwor
CisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5h
bWUgKCRmdW5jdGlvblNpZylcbntcbiIpOworCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4g
cHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAwKTtcbiIpOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJu
X2lmX2ZhaWwgKHRoaXopO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGl0ZW0gPSAo
JHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKHRoaXopKTtcbiIpOworICAgICAgICAgICAg
ICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBY
WFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoaXRlbSwgMCk7XG4iKTsK
KyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICBnX3JldHVybl9pZl9mYWlsIChpdGVtKTtcbiIpOworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJz
fSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFy
YW0tPm5hbWUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFt
LT50eXBlOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlSXNQcmltaXRpdmUgPSAk
Y29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAg
ICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFt
SURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAg
ICAgICAgICAgICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke3BhcmFtSURMVHlwZX0ifSA9IDE7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCEkcGFyYW1U
eXBlSXNQcmltaXRpdmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlw
ZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiBy
ZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKCRwYXJhbU5hbWUsIDApO1xu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKCRwYXJhbU5hbWUp
O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0g
IiI7CisgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFt
LT50eXBlOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBh
cmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVs
aXplKCRwYXJhbS0+bmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Ns
c190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6U3RyaW5nIF9nXyR7cGFyYW1OYW1l
fSA9IFdlYkNvcmU6OlN0cmluZygkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9nZG9tX2ZuID0gImdkb21fIiAuIGRlY2FtZWxp
emUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAjcHVzaChAY0JvZHks
ICIgICAgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cGFyYW1JRExUeXBlfT4gKiBfZ18ke3Bh
cmFtTmFtZX0gPSBXVEY6OlJlZlB0cjwke3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJh
bU5hbWUpPjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUg
ZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5j
bHVkZXN7InByaXZnZG9tRXZlbnRUYXJnZXROb2RlLmgifSA9IDE7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICog
X2dfJHtwYXJhbU5hbWV9ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4o
Z2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9ICogX2dfJHtwYXJh
bU5hbWV9ID0gKCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBY
WFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChfZ18ke3Bh
cmFtTmFtZX0sIDApO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2Zh
aWwgKF9nXyR7cGFyYW1OYW1lfSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5h
bWUgPSAiX2dfIi4kcGFyYW1OYW1lIGlmICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJl
dHVybiJ9OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG15ICRhc3NpZ24g
PSAiIjsKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduX3ByZSA9ICIiOworICAgICAgICAgICAg
ICAgIG15ICRhc3NpZ25fcG9zdCA9ICIiOworICAgICAgICAgICAgICAgICRnX3JlcyA9IDA7Cisg
ICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9m
bikgeworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAkYXNzaWduID0gIlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtmbl9z
aWdfdHlwZX0+IGdfcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcHJl
ID0gIldURjo6Z2V0UHRyKCI7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduX3Bvc3Qg
PSAiKSI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAkYXNzaWduID0gIiR7X3JldHVyblR5cGV9IHJlcyA9ICI7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbXkgJGV4Y2VwdGlvbnMg
PSAiIjsKKyAgICAgICAgICAgICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9
KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV4Y2Vw
dGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgke2NhbGxfaW1w
bF9wYXJhbXN9IG5lICIiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9
ICIsIGVjIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRleGNlcHRpb25zID0gImVjIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgbmVlZCB0aGlzIGZvciBpbmNsdWRpbmcg
Li4uIF9zb21ldGhpbmdfIC0gZm9yIHRoZSBjbGFzcyBhcmdzCisgICAgICAgICAgICAgICAgI2lm
ICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVz
eyJnZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAjfQorICAgICAg
ICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiB8
fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfaW5zZXJ0
X2JlZm9yZSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9u
b2RlX3JlcGxhY2VfY2hpbGQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
ZXEgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRj
dXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCA9IDw8ICJFT0YiOworICAgIGJvb2wgb2sgPSBp
dGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSk7Cisg
ICAgaWYgKG9rKQorICAgIHsKKyAgICAgICAgJHtfcmV0dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nh
c3Q8JHtfcmV0dXJuVHlwZX0+KFdlYkNvcmU6OnRvR0RPTSgkcmV0dXJuUGFyYW1OYW1lKSk7IAor
ICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK0VPRgorICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxk
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIg
JiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAnZ2RvbV9kb2N1bWVudF9n
ZXRfY3NzX2NhbnZhc19jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICAvKiBYWFggVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0IChpdGVtLT4ke2ZuX3NpZ19u
YW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpOyovXG4iICk7CisgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAi
RE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fz
c2lnbn1fR19HRVRfVVRGOChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9
JHtleGNlcHRpb25zfSkpO1xuIiApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICgkZ19yZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRnX3Jl
cyA9ICIke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2lt
cGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSkiIDsKKyAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
ICR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9w
YXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KTtcbiIgKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5
cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1
cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKGdfcmVzLmdldCgpKSk7IFxuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RPOiByZXR1cm4g
Y2FudmFzIG9iamVjdCAqL1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gcmVzO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICJcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJ9XG5c
biIpOworICAgICAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogZXh0ZXJuIFwiQ1wiICov
XG5cbiIpOworICAgIHB1c2goQGNCb2R5UHJpdiwgIn0gLyogZXh0ZXJuIFwiQ1wiICovXG5cbiIp
OworCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIjZW5kaWYgLyogJHtndWFyZH1fSU5UXyovXG4iKTsKKworICAg
IHB1c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5k
aWYgLyogJGd1YXJkICovXG4iKTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfRU5EX0RFQ0xT
XG5cbiIpOworICAgIHB1c2goQGhCb2R5UHJvcCwgIiNlbmRpZiAvKiAke2d1YXJkfV9QUk9QXyov
XG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIKK3N1YiBXcml0ZURhdGEKK3sKKyAgICBteSAo
JG9iamVjdCwgJG5hbWUpID0gQF87CisKKworICAgICMgV3JpdGUgSW50ZXJuYWwgaGVhZGVyCisg
ICAgbXkgJGhkckZOYW1lSW50ZXJuYWwgPSAiJG91dHB1dERpci9pbnQiIC4gJG5hbWUgLiAiLmgi
OworICAgIG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFsIikgb3IgZGllICJDb3Vs
ZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAgcHJpbnQgSU5USEVBREVS
IEBoUHJlZml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAgIHByaW50IElOVEhFQURF
UiBAaEJvZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOworCisgICAgIyBXcml0ZSBQ
cml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1dERpci9wcml2IiAu
ICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJpdiIpIG9y
IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworCisgICAgcHJpbnQgUFJJ
VkhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7CisgICAgcHJpbnQg
UFJJVkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisgICAgIyBX
cml0ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgbXkgJGltcGxGaWxlTmFtZVByaXYgPSAi
JG91dHB1dERpci9wcml2IiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oUFJJVklNUEwsICI+
JGltcGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVO
YW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBQUklW
SU1QTCAiXG4iOworICAgIHByaW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAgICBjbG9zZShQ
UklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9pZHMgcmVjdXJz
aXZlIG5pZ2h0bWFyZSkKKyAgICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRu
YW1lIC4gInByb3BzLmgiOworICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJvcEZOYW1lIikg
b3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAgICAkaGRyUHJv
cEluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJPUEhFQURFUiBA
aFByZWZpeDsKKyAgICBwcmludCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5jbHVkZXMgLyBk
ZWZpbmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRpZXMuXG5wZXJo
YXBzIC0gYmV0dGVyIC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW4gaGVyZSEq
L1xuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAgcHJpbnQgUFJP
UEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50
IFBST1BIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRyUHJv
cEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cyglaGRyUHJvcElu
Y2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJPUEhFQURF
UiBAaEJvZHlQcm9wOworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgcHVibGlj
IGhlYWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgi
OworICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBm
aWxlICRoZHJGTmFtZSI7CisKKyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0LmgifSA9IDE7
CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4
R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMu
aD5cbiI7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0
IGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJJ
bmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiI7CisgICAgcHJpbnQgSEVBREVSIEBoQm9k
eVByZTsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgInR5cGVkZWYgc3RydWN0IF8kXyAkXztcbiIg
fSBzb3J0IGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5
cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5OworCisgICAgY2xvc2Uo
SEVBREVSKTsKKworICAgICMgV3JpdGUgdGhlIGltcGxlbWVudGF0aW9uIHNvdXJjZXMKKyAgICBt
eSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9w
ZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGlt
cGxGaWxlTmFtZSI7CisKKyAgICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHByaW50IElNUEwg
IiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiQ1N0cmluZy5oXCJc
biI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJQbGF0Zm9ybVN0cmluZy5oXCJcbiI7Cisg
ICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJBdG9taWNTdHJpbmcuaFwiXG4iOworICAgIHByaW50
IElNUEwgIiNpbmNsdWRlIFwidXN0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1
ZGUgXCJLVVJMLmhcIlxuIjsKKyAgICBwcmludCBJTVBMIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJc
biIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCAiXG4iIGlmIGtl
eXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAgICBjbG9zZShJ
TVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAgICAlaW1wbFR5cGVkZWZzID0gKCk7
CisgICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBAaEJvZHkg
PSAoKTsKKyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAgQGhCb2R5SW50ZXJuYWwgPSAoKTsKKyAg
ICBAaEJvZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJvcFByZSA9ICgpOworCisgICAgQGNQcmVm
aXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7Cit9CisKKzE7
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysg
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NyArMjcsNyBAQAogICAgIF0gSFRNTE9wdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkZWZhdWx0U2VsZWN0
ZWQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAg
ICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRp
b24pOwogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgc2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQ7CiAK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51
bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxBcHBsZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFwcGxl
dEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0
RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE0ICszNSwxNCBAQAogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29k
ZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGNvZGVCYXNlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0OwotI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQo
TEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhzcGFjZTsKICNlbHNlCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaHNwYWNlOwogI2VuZGlmCiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgb2JqZWN0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkK
KyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHZzcGFjZTsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydEZyb21TdHJpbmddIGxvbmcgdnNwYWNlOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVt
ZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAgSW1wbGVtZW50
YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZmMC05NzhkLWY3NzNmMmRlZTZhMwogICAgIF0gSFRN
TEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwotI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8
IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKICNlbHNlCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaGVpZ2h0OwpAQCAt
MzgsNyArMzgsNyBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7Ci0jaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgd2lkdGg7CiAjZWxzZQog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHdpZHRo
OwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQAogCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0aXRsZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWZlcnJlcjsKLSNpZiBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRvbWFpbjsKICNlbHNlCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOwpAQCAtMTgyLDcgKzE4
Miw3IEBACiAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4gRE9NU3RyaW5n
IGVsZW1lbnROYW1lKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAo
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
KQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9jYXRpb247
CiAjZW5kaWYKIApAQCAtMTk1LDcgKzE5NSw3IEBACiAgICAgICAgIEVsZW1lbnQgICAgICAgICAg
ICBlbGVtZW50RnJvbVBvaW50KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKIAogICAgICAgICAvLyBN
b3ppbGxhIGV4dGVuc2lvbnMKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYg
KGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KSkKICAgICAgICAgRE9NU2VsZWN0aW9uICAgICAgIGdldFNlbGVjdGlvbigpOwogI2VuZGlmCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01T
dHJpbmcgY2hhcmFjdGVyU2V0OwpAQCAtMjM2LDcgKzIzNiw3IEBACiAgICAgICAgIE5vZGVMaXN0
IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gRE9NU3RyaW5nIHRhZ25hbWUpOwogCiAgICAgICAg
IC8vIE5vZGVTZWxlY3RvciAtIFNlbGVjdG9yIEFQSQotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExB
TkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICBbQ3VzdG9tXSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3Io
aW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3Rv
cnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgW0N1c3RvbV0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChpbiBbQ29u
dmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9ycywgaW4g
TlNSZXNvbHZlciByZXNvbHZlcikKSW5kZXg6IFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJKHJldmlzaW9u
IDM1NzU4KQorKysgV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAg
IG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAg
ICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2Vi
Q29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RP
TUNvcmVFeGNlcHRpb24uaAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9ET01Db3Jl
RXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAqLwogCiAjaWZu
ZGVmIERPTUNvcmVFeGNlcHRpb25faAotI2RlZmluZSBET01Db2RlRXhjZXB0aW9uX2gKKyNkZWZp
bmUgRE9NQ29yZUV4Y2VwdGlvbl9oCiAKICNpbmNsdWRlICJFeGNlcHRpb25CYXNlLmgiCiAKSW5k
ZXg6IFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20v
RXZlbnRFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8
fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96
aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0
cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2aXNpb24gMzU3NTgp
CisrKyBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTks
NyArNTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gYWx0
R3JhcGhLZXkpOwogCiAgICAgICAgIC8vIFdlYktpdCBFeHRlbnNpb25zCi0jaWYgIWRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoKCFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
KSAmJiAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpKQogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL2Rv
bS9ET01Db3JlRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01Db3Jl
RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9ET01Db3JlRXhj
ZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29t
cGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsK
ICNlbmRpZgpJbmRleDogV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBX
ZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3
LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAot
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJp
ZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9N
U3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8
fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96
aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0
cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBX
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3
IEBACiAgICAgICAgIFtEb05vdENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0
TWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSwgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikK
ICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBHbG9iYWwgY29uc3RydWN0b3JzCiAgICAg
ICAgIGF0dHJpYnV0ZSBTdHlsZVNoZWV0Q29uc3RydWN0b3IgU3R5bGVTaGVldDsKICAgICAgICAg
YXR0cmlidXRlIENTU1N0eWxlU2hlZXRDb25zdHJ1Y3RvciBDU1NTdHlsZVNoZWV0OwpJbmRleDog
V2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L0RPTVNlbGVjdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9wYWdlL0RPTVNl
bGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAKICAgICAgICAgdm9p
ZCByZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgdm9pZCBhZGRSYW5nZShpbiBSYW5nZSByYW5n
ZSk7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtE
b250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKICAgICB9OwpJbmRleDogV2Vi
S2l0VG9vbHMvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvR05VbWFr
ZWZpbGUuYW0JKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0J
KHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBACiAjIEd0a0xhdW5jaGVyCiBQcm9ncmFtc19H
dGtMYXVuY2hlcl9DUFBGTEFHUyA9IFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQo
c3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0
ayBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23096</attachid>
            <date>2008-09-01 03:41:12 -0700</date>
            <delta_ts>2008-09-01 13:13:10 -0700</delta_ts>
            <desc>respect file conventions, remove tabs</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>262694</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMjIwLDYgKzIyMSw3IEBACiAKICMgV2ViS2l0CiB3ZWJraXRn
dGtfaF9hcGkgOj0KK2dkb21ndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9CiB3ZWJr
aXRndGtfY3BwZmxhZ3MgOj0KIHdlYmtpdGd0a19idWlsdF9zb3VyY2VzIDo9CkBAIC0yMzIsOCAr
MjM0LDEzIEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0
LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkkKHdlYmtpdGd0a19o
X2FwaSkgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCisJJChnZG9tZ3Rr
X2hfYXBpKSBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmggXAorCVdlYktp
dC9ndGsvd2Via2l0L2dkb20uaCAKIAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMu
aAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgKKwogbGlid2Via2l0XzFfMF9sYV9T
T1VSQ0VTID0gXAogCSQod2Via2l0Z3RrX3NvdXJjZXMpCiAKQEAgLTMwNCw2ICszMTEsMzM4IEBA
CiB3ZWJjb3JlX2xpYmFkZCArPSAtbGdzdGludGVyZmFjZXMtMC4xMCAtbGdzdHZpZGVvLTAuMTAK
IGVuZGlmCiAKK1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6IFdlYktpdC9ndGsv
d2Via2l0L0dkb21Eb2N1bWVudC5oCisKK1dlYktpdC9ndGsvd2Via2l0L0dkb21Eb2N1bWVudC5o
OiBEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnQuaAorCWNwIERlcml2ZWRTb3VyY2VzL0dkb21E
b2N1bWVudC5oIFdlYktpdC9ndGsvd2Via2l0L0dkb21Eb2N1bWVudC5oCisKK1dlYktpdC9ndGsv
d2Via2l0L0dkb21ET01PYmplY3QuaDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuaAorCWNwIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmggV2ViS2l0L2d0
ay93ZWJraXQvR2RvbURPTU9iamVjdC5oCisKK1dlYktpdC9ndGsvd2Via2l0L0dkb21FdmVudFRh
cmdldE5vZGUuaDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAor
CWNwIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggV2ViS2l0L2d0
ay93ZWJraXQvR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisKKworZ2RvbWd0a19oX2FwaSArPSBcCisJ
V2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50LmhcCisJV2ViS2l0L2d0ay93ZWJraXQvR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oXAorCVdlYktpdC9ndGsvd2Via2l0L0dkb21ET01PYmplY3QuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQXR0ci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21BdHRycHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQmFySW5mby5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21CYXJJbmZvcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzR3JhZGllbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzR3JhZGllbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DYW52YXNQYXR0ZXJuLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRl
cm5wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQaXhlbEFycmF5LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BpeGVsQXJyYXlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFT
ZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNEQVRBU2VjdGlvbnByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNoYXJhY3RlckRhdGEuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2hh
cmFjdGVyRGF0YXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNsaXBib2FyZC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
b21tZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Db25zb2xlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbnNvbGVwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Db3VudGVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNv
dW50ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NDaGFyc2V0UnVsZS5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DU1NDaGFyc2V0UnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU0ZvbnRGYWNlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NGb250RmFjZVJ1
bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NJbXBvcnRSdWxlLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NNZWRpYVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTTWVkaWFSdWxlcHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTUGFnZVJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQcmltaXRpdmVWYWx1
ZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQcmltaXRpdmVWYWx1ZXByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1J1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZUxp
c3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZUxpc3Rwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZURlY2xhcmF0aW9ucHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVSdWxlLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1N0eWxlUnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxl
U2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVldHByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVl
TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZUxpc3Rwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1Zh
cmlhYmxlc0RlY2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzUnVsZS5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlcHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRGF0YWJhc2UuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRGF0YWJhc2Vwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbURvY3VtZW50RnJhZ21lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21E
b2N1bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50VHlwZS5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudFR5cGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21ET01BcHBsaWNhdGlvbkNhY2hlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUFwcGxpY2F0
aW9uQ2FjaGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9uLmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21ET01JbXBsZW1lbnRhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01J
bXBsZW1lbnRhdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVBhcnNlci5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJzZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21ET01TZWxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NU2VsZWN0aW9ucHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2luZG93LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bURPTVdpbmRvd3Byb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0
eS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21FbnRpdHlSZWZlcmVuY2UuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5UmVmZXJl
bmNlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnRFeGNlcHRpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRXZlbnRFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUZpbGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmlsZUxpc3QuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRmlsZUxpc3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxl
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSGlzdG9yeS5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IaXN0b3J5cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1lbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQXBwbGV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MQXBwbGV0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVh
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXJlYUVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEJhc2VFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VG
b250RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQm9k
eUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MQnV0dG9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQnV0dG9u
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTENvbGxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENv
bGxlY3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXZFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxEaXZFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERMaXN0RWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRExpc3RFbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTERvY3VtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxEb2N1bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEVtYmVkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRmllbGRTZXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEZvbnRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxG
b250RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9ybUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxG
cmFtZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVTZXRFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEhlYWRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRp
bmdFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkaW5nRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTEhSRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1s
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSHRtbEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MSUZyYW1lRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJ
bWFnZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEltYWdlRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJbnB1dEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxJc0luZGV4RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSXNJbmRleEVsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGFiZWxFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxMYWJlbEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MTGVnZW5kRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGVnZW5k
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTExJRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxMaW5rRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGlua0VsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFwRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MTWFwRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxNYXJxdWVlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFycXVlZUVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTE1ldGFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZXRhRWxl
bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNb2RFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxNb2RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTE9iamVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9iamVjdEVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPTGlzdEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxP
cHRHcm91cEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MUGFyYWdyYXBoRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYWdy
YXBoRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxQcmVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQ
cmVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUXVvdGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFNjcmlwdEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2VsZWN0RWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2VsZWN0RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFN0eWxlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25F
bGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VGFibGVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VGFibGVTZWN0aW9uRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0
QXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUaXRsZUVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRpdGxlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxVTGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFVMaXN0RWxlbWVu
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0YS5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21JbWFnZURhdGFwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0
Q2FsbEZyYW1lLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUphdmFTY3JpcHRDYWxsRnJhbWVwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21LZXlib2FyZEV2ZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUtleWJvYXJkRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Mb2NhdGlv
bi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Mb2NhdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbU1lZGlhTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3Rwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNzYWdlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTWVzc2FnZUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJh
eS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTWltZVR5cGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Nb3VzZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU1vdXNlRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NdXRhdGlvbkV2ZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21OYW1lZE5vZGVNYXAuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2Rl
TWFwcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmF2aWdhdG9yLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU5hdmlnYXRvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUZpbHRlcnByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU5vZGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUl0ZXJhdG9yLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU5vZGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVMaXN0cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTm9kZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vdGF0
aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vdGF0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tT3ZlcmZsb3dFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21PdmVyZmxvd0V2
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2luQXJyYXkuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUGx1Z2luQXJyYXlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVn
aW4uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2lucHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2Nl
c3NpbmdJbnN0cnVjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2dyZXNzRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvZ3Jlc3NFdmVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVJhbmdlRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdl
RXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2UuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUmFuZ2Vwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21SZWN0LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVJlY3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TY3Jl
ZW4uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU2NyZWVucHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1FMRXJyb3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMRXJyb3Jwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1FMUmVzdWx0U2V0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93
TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1FMVHJhbnNhY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1FMVHJhbnNhY3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFnZUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU3RvcmFnZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlcHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TdHlsZVNoZWV0TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21UZXh0RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21U
ZXh0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVHJlZVdhbGtlci5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21UcmVlV2Fsa2VycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVUlFdmVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21VSUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0
QW5pbWF0aW9uRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21XaGVlbEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdoZWVsRXZl
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbnByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxI
dHRwUmVxdWVzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBs
b2FkLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkcHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tWE1MU2VyaWFsaXplci5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21YTUxTZXJpYWxpemVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0
b3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0b3Jwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YUGF0aEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0
aEV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhwcmVzc2lvbi5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4cHJlc3Npb25wcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhO
U1Jlc29sdmVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhSZXN1bHQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWFBhdGhSZXN1bHRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21YU0xUUHJvY2Vzc29yLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQcm9jZXNzb3Jwcm9w
cy5oCisKIHdlYmtpdGd0a19oX2FwaSArPSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Lmgg
XAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaCBcCkBAIC0zMTUsMTIgKzY1NCwx
NyBAQAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmggXAogCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAogCisjIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdk
b21kZWZpbmVzLmgKKwogd2Via2l0Z3RrX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL3dlYmtpdGVudW10eXBlcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXRtYXJzaGFsLmggXAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGVudW10eXBlcy5oCiAKKyMJRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5j
cHAgCisjCVdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaAorCiB3ZWJraXRndGtfc291
cmNlcyArPSBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIFwKQEAgLTM0
NCw3ICs2ODgsOSBAQAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwIFwKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgXAorCVdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcCAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGV2ZW50LmggCiAKIHdlYmtpdGd0a19jcHBmbGFncyArPSBcCiAJLURCVUlMRElOR19XRUJL
SVQgXApAQCAtMzY2LDYgKzcxMiw5IEBACiAJc3RhbXAtd2Via2l0ZW51bXR5cGVzLmNwcCBcCiAJ
c3RhbXAtd2Via2l0ZW51bXR5cGVzLmgKIAorIwlzdGFtcC1nZG9tZW51bXR5cGVzLmNwcCAKKyMJ
c3RhbXAtZ2RvbWVudW10eXBlcy5oIAorCiBXRUJLSVRfTUFSU0hBTCA9ICQoR0VOU09VUkNFUykv
d2Via2l0bWFyc2hhbAogV0VCS0lUX01BUlNIQUxfTElTVCA9ICQoV0VCS0lUX01BUlNIQUwpLmxp
c3QKIApAQCAtNDQyLDYgKzc5MSw1NCBAQAogCSYmIGNwIHhnZW4tZ3RjICRAIFwKIAkmJiBybSAt
ZiB4Z2VuLWd0YwogCitXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmg6IHN0YW1wLWdk
b21lbnVtdHlwZXMuaAorCUB0cnVlCitzdGFtcC1nZG9tZW51bXR5cGVzLmg6ICQoZ2RvbWd0a19o
X2FwaSkgR05VbWFrZWZpbGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAor
CQkJLS1maGVhZCAiI2lmbmRlZiBHRE9NX0VOVU1fVFlQRVNfSFxuIiBcCisJCQktLWZoZWFkICIj
ZGVmaW5lIEdET01fRU5VTV9UWVBFU19IXG5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+XG5cbiIgXAorCQkJLS1maGVhZCAiR19CRUdJTl9ERUNMU1xuXG4iIFwKKwkJ
CS0tZnRhaWwgIkdfRU5EX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFpbCAiI2VuZGlmXG4iIFwKKwkJ
CS0tZnByb2QgIiNpbmNsdWRlIDxAZmlsZW5hbWVAPlxuXG4iIFwKKwkJCS0tZXByb2QgIiNkZWZp
bmUgR0RPTV9UWVBFX0BFTlVNU0hPUlRAIEBlbnVtX25hbWVAX2dldF90eXBlKClcblxuIiBcCisJ
CQktLWVwcm9kICJXRUJLSVRfQVBJIEdUeXBlXG5AZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKTtc
blxuIiBcCisJCQkkKGdkb21ndGtfaF9hcGkpIHwgXAorCQkJc2VkICdzLFdlYktpdC9ndGsvLCwn
IHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxnZG9tLCcgfCBcCisJCXNlZCAncyxHRE9NX1RZUEVfS0lU
LEdET01fVFlQRSwnIFwKKwkJKSA+IHhnZW4tY2d0aCBcCisJJiYgKGNtcCAtcyB4Z2VuLWNndGgg
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oIHx8IGNwIHhnZW4tY2d0aCBXZWJLaXQv
Z3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgpIFwKKwkmJiBybSAtZiB4Z2VuLWNndGggXAorCSYm
IGVjaG8gdGltZXN0YW1wID4gJChARikKKworIyAgICAgICAgICAgICAgLS1maGVhZCAiI2luY2x1
ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPlxuXG4iIAorCitEZXJpdmVkU291cmNlcy9nZG9tZW51
bXR5cGVzLmNwcDogJChnZG9tZ3RrX2hfYXBpKSBHTlVtYWtlZmlsZQorCShjZCAkKHNyY2Rpcikg
XAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Y29uZmlnLmg+XG4i
IFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuIiBcCisJCQktLWZoZWFk
ICIjaW5jbHVkZSBcIiQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5
cGVzLmhcIlxuXG4iIFwKKwkJCS0tZmhlYWQgImV4dGVybiBcIkNcIiB7XG5cbiIgXAorCQkJLS1m
cHJvZCAiXG4vKiBlbnVtZXJhdGlvbnMgZnJvbSBcIkBmaWxlbmFtZUBcIiAqLyIgXAorCQkJLS12
aGVhZCAic3RhdGljIGNvbnN0IEdAVHlwZUBWYWx1ZSBfQGVudW1fbmFtZUBfdmFsdWVzW10gPSB7
IiBcCisJCQktLXZwcm9kICIgICAgeyBAVkFMVUVOQU1FQCwgXCJAVkFMVUVOQU1FQFwiLCBcIkB2
YWx1ZW5pY2tAXCIgfSwiIFwKKwkJCS0tdnRhaWwgIiAgICB7IDAsIE5VTEwsIE5VTEwgfVxufTtc
blxuIiBcCisJCQktLXZ0YWlsICJHVHlwZSBAZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKVxue1xu
IiBcCisJCQktLXZ0YWlsICIgICAgc3RhdGljIEdUeXBlIHR5cGUgPSAwO1xuXG4iIFwKKwkJCS0t
dnRhaWwgIiAgICBpZiAoIXR5cGUpXG4iIFwKKwkJCS0tdnRhaWwgIiAgICAgICAgdHlwZSA9IGdf
QHR5cGVAX3JlZ2lzdGVyX3N0YXRpYyhcIkBFbnVtTmFtZUBcIiwgX0BlbnVtX25hbWVAX3ZhbHVl
cyk7XG5cbiIgXAorCQkJLS12dGFpbCAiICAgIHJldHVybiB0eXBlO1xufVxuXG4iIFwKKwkJCS0t
ZnRhaWwgIn1cbiIgXAorCQkkKGdkb21ndGtfaF9hcGkpIHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxn
ZG9tLCcgXAorCQkpID4geGdlbi1jZ3RjIFwKKwkmJiBjcCB4Z2VuLWNndGMgJEAgXAorCSYmIHJt
IC1mIHhnZW4tY2d0YworCiAjIEVORCBXRUJLSVQgR1RLKwogIwogIyBGaWxlcyB0aGF0IHdpbGwg
YmUgZGlzdHJpYnV0ZWQKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJl
dmlzaW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsOSBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxl
IEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBp
bWVuZGlvLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CiAgKgorICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTQwLDYgKzQyLDEyIEBACiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnQuaCIK
KyNpbmNsdWRlICJFdmVudExpc3RlbmVyV2luZG93LmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9BUElDYXN0Lmg+CiAKQEAgLTQ3LDYgKzU1LDEwIEBACiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwlncG9p
bnRlciB0b0dET00oRG9jdW1lbnQqIGRvYyk7Cit9CisKIGV4dGVybiAiQyIgewogCiBlbnVtIHsK
QEAgLTU1LDYgKzY3LDcgQEAKICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAg
ICBIT1ZFUklOR19PVkVSX0xJTkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05B
TAogfTsKIApAQCAtMTYwLDYgKzE3MywxNiBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIs
CiAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtp
dF93ZWJfZnJhbWVfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nl
ci1ldmVudCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAg
ICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNU
SU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVM
TCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAg
ICAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdf
VFlQRV9CT09MRUFOKTsKKwogICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1
YWwgbWV0aG9kcwogICAgICAqLwpAQCAtMjkyLDYgKzMxNSw1MyBAQAogfQogCiAvKioKKyAqIHdl
YmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2Vi
RnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAor
ICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tRG9jdW1lbnQKKyAqLworR2RvbURvY3VtZW50KiB3
ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBO
VUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7
CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVG
cmFtZSk7CisJcmV0dXJuIEdET01fRE9DVU1FTlQoV2ViQ29yZTo6dG9HRE9NKGNvcmVGcmFtZS0+
ZG9jdW1lbnQoKSkpOworfQorCisvKiBYWFggVE9ETzogbWFrZSB0aGlzIG5vdCB0YWtlIGZyYW1l
KiBhcyBhbiBhcmd1bWVudCwKKyAqIGFuZCBtYWtlIGl0IHJldHVybiBhIEdkb21FdmVudExpc3Rl
bmVyIGNsYXNzICovCitleHRlcm4gIkMiIHsKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93aW5k
b3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNvbnN0
IGNoYXIgKm5hbWUpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xp
c3RlbmVyOgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIGFkZHMgYW4gZXZl
bnQgbGlzdGVuZXIgdG8gdGhlIGZyYW1lJ3MgZG9jdW1lbnQKKyAqCisgKiBSZXR1cm4gdmFsdWU6
IHRoZSBuYW1lIG9mIEBmcmFtZQorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9l
dmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogZXZlbnRfdHlwZSkKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgRkFMU0Up
OworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKwor
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1l
KTsKKworCXJldHVybiBhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKGZyYW1lLCBjb3JlRnJhbWUs
IGV2ZW50X3R5cGUpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAg
KiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCiAgKgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQv
RXZlbnRMaXN0ZW5lck5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVu
dExpc3RlbmVyTm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRM
aXN0ZW5lck5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisKKyNpZm5kZWYgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX05PREVfSAorI2RlZmluZSBKU19ET01f
RVZFTlRfTElTVEVORVJfTk9ERV9ICisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdGRlZmluZXMuaD4KKworCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IgorCisvKiBUT0RPOiByZXR1cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3
aGljaCByZXF1aXJlcworICogYSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisg
KiBUT0RPOiBwcm92aWRlIGEgJ3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhh
dCBnbGliCisgKiBvYmplY3QgYXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lU
X0FQSQorZ2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndm
LCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu
IHVzZUNhcHR1cmUpOworfQorCisjZW5kaWYgLypKU19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9I
ICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDM1NzU4KQor
KysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIg
RnJleXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDcgQEAKIAogI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5l
dHdvcmtyZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1bWVudC5oPgogCiBHX0JF
R0lOX0RFQ0xTCiAKQEAgLTYxLDYgKzYzLDkgQEAKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUg
Kgogd2Via2l0X3dlYl9mcmFtZV9uZXcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgR2RvbURvY3VtZW50ICoKK3dlYmtpdF93ZWJf
ZnJhbWVfZ2V0X2RvbV9kb2N1bWVudCAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1l
KTsKKwogV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dl
Yl92aWV3ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCkBAIC05Myw2ICs5
OCwxMCBAQAogV0VCS0lUX0FQSSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X2dsb2JhbF9jb250ZXh0IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCitXRUJL
SVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJL
aXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIgICAgICAgICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKSW5k
ZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCisr
KyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENh
c3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNU
RU5FUl9XSU5ET1dfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfV0lORE9XX0gKKwor
I2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisK
K2V4dGVybiAiQyIgeworLyogVE9ETzogbWFrZSBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0
byBiZSByZXR1cm5lZCBoZXJlICovCit9CisKKyNlbmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5F
Ul9XSU5ET1dfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0
ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1
ZGUgIlN0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRN
TERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUg
Ik5vZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXaW5k
b3cuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyTm9kZS5oIgorI2luY2x1ZGUgIkV2ZW50VGFy
Z2V0Tm9kZS5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcu
aCIKKyNpbmNsdWRlICJTdHJpbmdJbXBsLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisjaW5j
bHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0LmgiCisj
aW5jbHVkZSAid2Via2l0ZXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oIgorCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2
ZW50KiBkb2MpOworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOwor
fQorCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShXZWJLaXRFdmVudCwgd2Via2l0X2V2
ZW50LCBHX1RZUEVfT0JKRUNUKTsKKworc3RydWN0IF9XZWJLaXRFdmVudFByaXZhdGUgeworICAg
IEV2ZW50KiBldmVudDsKK307CisKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0dFVF9QUklWQVRFKG9i
aikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfRVZFTlQs
IFdlYktpdEV2ZW50UHJpdmF0ZSkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9ldmVudF9maW5hbGl6
ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy9XZWJLaXRFdmVudCogcmVxdWVzdCA9IFdFQktJ
VF9FVkVOVChvYmplY3QpOworICAgIC8vV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVz
dC0+cHJpdjsKKworICAgIC8vZ19mcmVlKHByaXYtPnVyaSk7CisKKyAgICBHX09CSkVDVF9DTEFT
Uyh3ZWJraXRfZXZlbnRfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3Rh
dGljIHZvaWQgd2Via2l0X2V2ZW50X2NsYXNzX2luaXQoV2ViS2l0RXZlbnRDbGFzcyogcmVxdWVz
dENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0g
d2Via2l0X2V2ZW50X2ZpbmFsaXplOworCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJl
cXVlc3RDbGFzcywgc2l6ZW9mKFdlYktpdEV2ZW50UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9p
ZCB3ZWJraXRfZXZlbnRfaW5pdChXZWJLaXRFdmVudCogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRF
dmVudFByaXZhdGUqIHByaXYgPSBXRUJLSVRfRVZFTlRfR0VUX1BSSVZBVEUocmVxdWVzdCk7Cisg
ICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Cit9CisKK1dlYktpdEV2ZW50KiB3ZWJraXRfZXZlbnRf
bmV3KHZvaWQpCit7CisgICAgV2ViS2l0RXZlbnQqIHJlcXVlc3QgPSBXRUJLSVRfRVZFTlQoZ19v
YmplY3RfbmV3KFdFQktJVF9UWVBFX0VWRU5ULCBOVUxMKSk7CisgICAgLy9wcml2LT5ldmVudCA9
IGV2ZW50OworCisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKKy8qCit2b2lkIHdlYmtpdF9ldmVu
dF9zZXRfdXJpKFdlYktpdEV2ZW50KiByZXF1ZXN0LCBjb25zdCBnY2hhciogdXJpKQoreworICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0VWRU5UKHJlcXVlc3QpKTsKKyAgICBnX3JldHVy
bl9pZl9mYWlsKHVyaSk7CisKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0
LT5wcml2OworCisgICAgZ19mcmVlKHByaXYtPnVyaSk7CisgICAgcHJpdi0+dXJpID0gZ19zdHJk
dXAodXJpKTsKK30KKyovCitHX0NPTlNUX1JFVFVSTiBnY2hhciogd2Via2l0X2V2ZW50X2dldF9l
dmVudF90eXBlKFdlYktpdEV2ZW50KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9JU19FVkVOVChyZXF1ZXN0KSwgTlVMTCk7CisKKyAgICBXZWJLaXRFdmVudFBy
aXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworICAgIHJldHVybiBnX3N0cmR1cChwcml2LT5l
dmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworfQorCit2b2lkIHdlYmtpdF9l
dmVudF9jYW5jZWxfYnViYmxlICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QsIGdib29sZWFuIGNhbmNl
bCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworICAg
IHByaXYtPmV2ZW50LT5zZXRDYW5jZWxCdWJibGUoY2FuY2VsKTsKK30KKwordm9pZCB3ZWJraXRf
ZXZlbnRfcHJldmVudF9kZWZhdWx0ICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QpCit7CisgICAgV2Vi
S2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5ldmVudC0+
cHJldmVudERlZmF1bHQoKTsKK30KKwordm9pZCB3ZWJraXRfZXZlbnRfc3RvcF9wcm9wYWdhdGlv
biAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJp
diA9IHJlcXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnN0b3BQcm9wYWdhdGlvbigpOwor
fQorCitXRUJLSVRfQVBJIGdib29sZWFuCithZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKFdlYktp
dFdlYkZyYW1lKiB3ZiwgRnJhbWUgKmZyYW1lLCBjb25zdCBjaGFyICpuYW1lKTsKKworfSAvLyBl
eHRlcm4gIkMiCisKK2NsYXNzIE5vZGVFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVu
ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vZGVFdmVudExpc3RlbmVyPiBj
cmVhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3
IE5vZGVFdmVudExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQo
RXZlbnQqLCBib29sIHVzZUNhcHR1cmUpOworCisgICAgcHJpdmF0ZToKKyAgICBOb2RlRXZlbnRM
aXN0ZW5lcihHZG9tRXZlbnRUYXJnZXROb2RlKiB3ZikgOiBtX3dmKHdmKSB7IH0KKyAgICBHZG9t
RXZlbnRUYXJnZXROb2RlKiBtX3dmOworfTsKKwordm9pZCBOb2RlRXZlbnRMaXN0ZW5lcjo6aGFu
ZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4g
cmV0dmFsOworICAgIHByaW50Zigibm9kZSBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZF
TlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1f
d2YsICJicm93c2VyLWV2ZW50Iiwgd2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKK30KKworY2xh
c3MgV2luZG93RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBjcmVhdGUoV2ViS2l0
V2ViRnJhbWUqIHdmKSAKKyAgICB7IHJldHVybiBhZG9wdFJlZihuZXcgV2luZG93RXZlbnRMaXN0
ZW5lcih3ZikpOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCBp
c1dpbmRvd0V2ZW50KTsKKworICAgIHByaXZhdGU6CisgICAgV2luZG93RXZlbnRMaXN0ZW5lcihX
ZWJLaXRXZWJGcmFtZSogd2YpIDogbV93Zih3ZikgeyB9CisgICAgV2ViS2l0V2ViRnJhbWUqIG1f
d2Y7Cit9OworCit2b2lkIFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBl
dmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQoreworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBw
cmludGYoIndpbmRvdyBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6
dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsICJicm93c2Vy
LWV2ZW50Iiwgd2V2LCBpc1dpbmRvd0V2ZW50LCAmcmV0dmFsKTsKK30KKworZ2Jvb2xlYW4gYWRk
X2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1cmUpCit7Cisg
ICAgV2ViQ29yZTo6Tm9kZSAqbm9kZSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZh
dGUod2YpOworICAgIGlmIChub2RlID09IE5VTEwgfHwgIW5vZGUtPmlzRXZlbnRUYXJnZXROb2Rl
KCkpCisgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUg
KiBldG4gPSAoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICo+KG5vZGUpKS0+
dG9Ob2RlKCk7CisgICAgaWYgKGV0biA9PSBOVUxMKQorICAgICAgICByZXR1cm4gRkFMU0U7CisK
KyAgICBSZWZQdHI8Tm9kZUV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gTm9kZUV2ZW50TGlzdGVu
ZXI6OmNyZWF0ZSh3Zik7CisgICAgZXRuLT5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVy
LCB1c2VDYXB0dXJlKTsKKworICAgIHJldHVybiBUUlVFOworCit9IAorCitnYm9vbGVhbiBhZGRf
d2luZG93X2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lICp3ZiwgRnJhbWUgKmZyYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQorewor
ICAgIERvY3VtZW50KiBkb2MgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKworICAgIFJlZlB0cjxXaW5k
b3dFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IFdpbmRvd0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3
Zik7CisgICAgZG9jLT5hZGRXaW5kb3dFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB0cnVl
KTsKKworICAgIHJldHVybiBUUlVFOworCit9IAorCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRkZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVm
aW5lcy5oCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOSBAQAogCiBHX0JFR0lOX0RFQ0xTCiAK
K3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudCBXZWJLaXRFdmVudDsKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRFdmVudENsYXNzIFdlYktpdEV2ZW50Q2xhc3M7CisKIHR5cGVkZWYgc3RydWN0IF9X
ZWJLaXROZXR3b3JrUmVxdWVzdCBXZWJLaXROZXR3b3JrUmVxdWVzdDsKIHR5cGVkZWYgc3RydWN0
IF9XZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzIFdlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3M7CiAK
SW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsv
d2Via2l0L2dkb21kZWZpbmVzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTI5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xA
bGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRo
ZXIKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmbmRlZiBXRUJLSVRfR0RPTV9ERUZJTkVTX0gKKyNkZWZpbmUgV0VCS0lUX0dET01fREVG
SU5FU19ICisKKyNpbmNsdWRlIDxnbGliLmg+CisKKyNpZmRlZiBHX09TX1dJTjMyCisgICAgI2lm
ZGVmIEJVSUxESU5HX1dFQktJVF9HRE9NCisgICAgICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJ
IF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorICAgICNlbHNlCisgICAgICAgICNkZWZpbmUgV0VCS0lU
X0dET01fQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorICAgICNlbmRpZgorICAgICNkZWZpbmUg
V0VCS0lUX0dET01fT0JTT0xFVEVfQVBJIFdFQktJVF9HRE9NX0FQSQorI2Vsc2UKKyAgICAjZGVm
aW5lIFdFQktJVF9HRE9NX0FQSSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0Iikp
KQorICAgICNkZWZpbmUgV0VCS0lUX0dET01fT0JTT0xFVEVfQVBJIFdFQktJVF9HRE9NX0FQSSBf
X2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSkKKyNlbmRpZgorCisjaWZuZGVmIFdFQktJVF9HRE9N
X0FQSQorICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJCisjZW5kaWYKKworR19CRUdJTl9ERUNM
UworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXRO
b2RlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyBHZG9tRXZlbnRU
YXJnZXROb2RlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdCBHZG9tRE9NT2Jq
ZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RDbGFzcyBHZG9tRE9NT2JqZWN0Q2xh
c3M7CisKK3R5cGVkZWYgc3RydWN0IF9HZG9tQXR0ciBHZG9tQXR0cjsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tQXR0ckNsYXNzIEdkb21BdHRyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUJhcklu
Zm8gR2RvbUJhckluZm87Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUJhckluZm9DbGFzcyBHZG9tQmFy
SW5mb0NsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNHcmFkaWVudCBHZG9tQ2FudmFz
R3JhZGllbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc0dyYWRpZW50Q2xhc3MgR2RvbUNh
bnZhc0dyYWRpZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BhdHRlcm4gR2Rv
bUNhbnZhc1BhdHRlcm47Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BhdHRlcm5DbGFzcyBH
ZG9tQ2FudmFzUGF0dGVybkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQaXhlbEFy
cmF5IEdkb21DYW52YXNQaXhlbEFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQaXhl
bEFycmF5Q2xhc3MgR2RvbUNhbnZhc1BpeGVsQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIEdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRENsYXNzIEdkb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ0RBVEFT
ZWN0aW9uIEdkb21DREFUQVNlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNEQVRBU2VjdGlv
bkNsYXNzIEdkb21DREFUQVNlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2hhcmFj
dGVyRGF0YSBHZG9tQ2hhcmFjdGVyRGF0YTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2hhcmFjdGVy
RGF0YUNsYXNzIEdkb21DaGFyYWN0ZXJEYXRhQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNs
aXBib2FyZCBHZG9tQ2xpcGJvYXJkOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DbGlwYm9hcmRDbGFz
cyBHZG9tQ2xpcGJvYXJkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvbW1lbnQgR2RvbUNv
bW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvbW1lbnRDbGFzcyBHZG9tQ29tbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db25zb2xlIEdkb21Db25zb2xlOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21Db25zb2xlQ2xhc3MgR2RvbUNvbnNvbGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tQ291bnRlciBHZG9tQ291bnRlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ291bnRlckNsYXNz
IEdkb21Db3VudGVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0NoYXJzZXRSdWxlIEdk
b21DU1NDaGFyc2V0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTQ2hhcnNldFJ1bGVDbGFz
cyBHZG9tQ1NTQ2hhcnNldFJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTRm9udEZh
Y2VSdWxlIEdkb21DU1NGb250RmFjZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ZvbnRG
YWNlUnVsZUNsYXNzIEdkb21DU1NGb250RmFjZVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tQ1NTSW1wb3J0UnVsZSBHZG9tQ1NTSW1wb3J0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTSW1wb3J0UnVsZUNsYXNzIEdkb21DU1NJbXBvcnRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUNTU01lZGlhUnVsZSBHZG9tQ1NTTWVkaWFSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21DU1NNZWRpYVJ1bGVDbGFzcyBHZG9tQ1NTTWVkaWFSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUNTU1BhZ2VSdWxlIEdkb21DU1NQYWdlUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTUGFnZVJ1bGVDbGFzcyBHZG9tQ1NTUGFnZVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tQ1NTUHJpbWl0aXZlVmFsdWUgR2RvbUNTU1ByaW1pdGl2ZVZhbHVlOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21DU1NQcmltaXRpdmVWYWx1ZUNsYXNzIEdkb21DU1NQcmltaXRpdmVWYWx1ZUNsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NSdWxlIEdkb21DU1NSdWxlOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21DU1NSdWxlQ2xhc3MgR2RvbUNTU1J1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tQ1NTUnVsZUxpc3QgR2RvbUNTU1J1bGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NS
dWxlTGlzdENsYXNzIEdkb21DU1NSdWxlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21D
U1NTdHlsZURlY2xhcmF0aW9uIEdkb21DU1NTdHlsZURlY2xhcmF0aW9uOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21DU1NTdHlsZURlY2xhcmF0aW9uQ2xhc3MgR2RvbUNTU1N0eWxlRGVjbGFyYXRpb25D
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTU3R5bGVSdWxlIEdkb21DU1NTdHlsZVJ1bGU7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlUnVsZUNsYXNzIEdkb21DU1NTdHlsZVJ1bGVD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTU3R5bGVTaGVldCBHZG9tQ1NTU3R5bGVTaGVl
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTU3R5bGVTaGVldENsYXNzIEdkb21DU1NTdHlsZVNo
ZWV0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhbHVlIEdkb21DU1NWYWx1ZTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFsdWVDbGFzcyBHZG9tQ1NTVmFsdWVDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tQ1NTVmFsdWVMaXN0IEdkb21DU1NWYWx1ZUxpc3Q7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUNTU1ZhbHVlTGlzdENsYXNzIEdkb21DU1NWYWx1ZUxpc3RDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24gR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbkNs
YXNzIEdkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21DU1NWYXJpYWJsZXNSdWxlIEdkb21DU1NWYXJpYWJsZXNSdWxlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21DU1NWYXJpYWJsZXNSdWxlQ2xhc3MgR2RvbUNTU1ZhcmlhYmxlc1J1bGVDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRGF0YWJhc2UgR2RvbURhdGFiYXNlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21EYXRhYmFzZUNsYXNzIEdkb21EYXRhYmFzZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21Eb2N1bWVudEZyYWdtZW50IEdkb21Eb2N1bWVudEZyYWdtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21Eb2N1bWVudEZyYWdtZW50Q2xhc3MgR2RvbURvY3VtZW50RnJhZ21lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnQgR2RvbURvY3VtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21Eb2N1bWVudENsYXNzIEdkb21Eb2N1bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21Eb2N1bWVudFR5cGUgR2RvbURvY3VtZW50VHlwZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9j
dW1lbnRUeXBlQ2xhc3MgR2RvbURvY3VtZW50VHlwZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21ET01BcHBsaWNhdGlvbkNhY2hlIEdkb21ET01BcHBsaWNhdGlvbkNhY2hlOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21ET01BcHBsaWNhdGlvbkNhY2hlQ2xhc3MgR2RvbURPTUFwcGxpY2F0aW9uQ2Fj
aGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NQ29yZUV4Y2VwdGlvbiBHZG9tRE9NQ29y
ZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NQ29yZUV4Y2VwdGlvbkNsYXNzIEdk
b21ET01Db3JlRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUltcGxlbWVu
dGF0aW9uIEdkb21ET01JbXBsZW1lbnRhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NSW1w
bGVtZW50YXRpb25DbGFzcyBHZG9tRE9NSW1wbGVtZW50YXRpb25DbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tRE9NUGFyc2VyIEdkb21ET01QYXJzZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURP
TVBhcnNlckNsYXNzIEdkb21ET01QYXJzZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9N
U2VsZWN0aW9uIEdkb21ET01TZWxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVNlbGVj
dGlvbkNsYXNzIEdkb21ET01TZWxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9N
V2luZG93IEdkb21ET01XaW5kb3c7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVdpbmRvd0NsYXNz
IEdkb21ET01XaW5kb3dDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRWxlbWVudCBHZG9tRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRWxlbWVudENsYXNzIEdkb21FbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVudGl0eSBHZG9tRW50aXR5OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21FbnRpdHlDbGFzcyBHZG9tRW50aXR5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVu
dGl0eVJlZmVyZW5jZSBHZG9tRW50aXR5UmVmZXJlbmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21F
bnRpdHlSZWZlcmVuY2VDbGFzcyBHZG9tRW50aXR5UmVmZXJlbmNlQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUV2ZW50RXhjZXB0aW9uIEdkb21FdmVudEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tRXZlbnRFeGNlcHRpb25DbGFzcyBHZG9tRXZlbnRFeGNlcHRpb25DbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRXZlbnQgR2RvbUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21F
dmVudENsYXNzIEdkb21FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21GaWxlIEdkb21G
aWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21GaWxlQ2xhc3MgR2RvbUZpbGVDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRmlsZUxpc3QgR2RvbUZpbGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21GaWxlTGlzdENsYXNzIEdkb21GaWxlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
aXN0b3J5IEdkb21IaXN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IaXN0b3J5Q2xhc3MgR2Rv
bUhpc3RvcnlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFuY2hvckVsZW1lbnQgR2Rv
bUhUTUxBbmNob3JFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQW5jaG9yRWxlbWVu
dENsYXNzIEdkb21IVE1MQW5jaG9yRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MQXBwbGV0RWxlbWVudCBHZG9tSFRNTEFwcGxldEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxBcHBsZXRFbGVtZW50Q2xhc3MgR2RvbUhUTUxBcHBsZXRFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBcmVhRWxlbWVudCBHZG9tSFRNTEFyZWFFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQXJlYUVsZW1lbnRDbGFzcyBHZG9tSFRNTEFyZWFFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCYXNlRWxlbWVudCBHZG9tSFRNTEJh
c2VFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUVsZW1lbnRDbGFzcyBHZG9t
SFRNTEJhc2VFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCYXNlRm9udEVs
ZW1lbnQgR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxC
YXNlRm9udEVsZW1lbnRDbGFzcyBHZG9tSFRNTEJhc2VGb250RWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQgR2RvbUhUTUxCbG9ja3F1b3RlRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxCbG9ja3F1b3RlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQm9k
eUVsZW1lbnQgR2RvbUhUTUxCb2R5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJv
ZHlFbGVtZW50Q2xhc3MgR2RvbUhUTUxCb2R5RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MQlJFbGVtZW50IEdkb21IVE1MQlJFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MQlJFbGVtZW50Q2xhc3MgR2RvbUhUTUxCUkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQgR2RvbUhUTUxCdXR0b25FbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MQnV0dG9uRWxlbWVudENsYXNzIEdkb21IVE1MQnV0dG9uRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ2FudmFzRWxlbWVudCBHZG9tSFRNTENh
bnZhc0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxDYW52YXNFbGVtZW50Q2xhc3Mg
R2RvbUhUTUxDYW52YXNFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxDb2xs
ZWN0aW9uIEdkb21IVE1MQ29sbGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTENvbGxl
Y3Rpb25DbGFzcyBHZG9tSFRNTENvbGxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTERpcmVjdG9yeUVsZW1lbnQgR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudENsYXNzIEdkb21IVE1MRGlyZWN0b3J5RWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRGl2RWxlbWVudCBHZG9tSFRNTERp
dkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEaXZFbGVtZW50Q2xhc3MgR2RvbUhU
TUxEaXZFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxETGlzdEVsZW1lbnQg
R2RvbUhUTUxETGlzdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxETGlzdEVsZW1l
bnRDbGFzcyBHZG9tSFRNTERMaXN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MRG9jdW1lbnQgR2RvbUhUTUxEb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERv
Y3VtZW50Q2xhc3MgR2RvbUhUTUxEb2N1bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MRWxlbWVudCBHZG9tSFRNTEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxF
bWJlZEVsZW1lbnQgR2RvbUhUTUxFbWJlZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxFbWJlZEVsZW1lbnRDbGFzcyBHZG9tSFRNTEVtYmVkRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MRmllbGRTZXRFbGVtZW50IEdkb21IVE1MRmllbGRTZXRFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRmllbGRTZXRFbGVtZW50Q2xhc3MgR2RvbUhUTUxGaWVs
ZFNldEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZvbnRFbGVtZW50IEdk
b21IVE1MRm9udEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb250RWxlbWVudENs
YXNzIEdkb21IVE1MRm9udEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZv
cm1FbGVtZW50IEdkb21IVE1MRm9ybUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxG
b3JtRWxlbWVudENsYXNzIEdkb21IVE1MRm9ybUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTEZyYW1lRWxlbWVudCBHZG9tSFRNTEZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEZyYW1lRWxlbWVudENsYXNzIEdkb21IVE1MRnJhbWVFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQgR2RvbUhUTUxGcmFtZVNl
dEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzcyBH
ZG9tSFRNTEZyYW1lU2V0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSGVh
ZEVsZW1lbnQgR2RvbUhUTUxIZWFkRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhl
YWRFbGVtZW50Q2xhc3MgR2RvbUhUTUxIZWFkRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MSGVhZGluZ0VsZW1lbnQgR2RvbUhUTUxIZWFkaW5nRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTEhlYWRpbmdFbGVtZW50Q2xhc3MgR2RvbUhUTUxIZWFkaW5nRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSFJFbGVtZW50IEdkb21IVE1MSFJFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSFJFbGVtZW50Q2xhc3MgR2RvbUhUTUxIUkVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEh0bWxFbGVtZW50IEdkb21IVE1M
SHRtbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIdG1sRWxlbWVudENsYXNzIEdk
b21IVE1MSHRtbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElGcmFtZUVs
ZW1lbnQgR2RvbUhUTUxJRnJhbWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSUZy
YW1lRWxlbWVudENsYXNzIEdkb21IVE1MSUZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MSW1hZ2VFbGVtZW50IEdkb21IVE1MSW1hZ2VFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MSW1hZ2VFbGVtZW50Q2xhc3MgR2RvbUhUTUxJbWFnZUVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElucHV0RWxlbWVudCBHZG9tSFRNTElucHV0RWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElucHV0RWxlbWVudENsYXNzIEdkb21IVE1M
SW5wdXRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJc0luZGV4RWxlbWVu
dCBHZG9tSFRNTElzSW5kZXhFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSXNJbmRl
eEVsZW1lbnRDbGFzcyBHZG9tSFRNTElzSW5kZXhFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxMYWJlbEVsZW1lbnQgR2RvbUhUTUxMYWJlbEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxMYWJlbEVsZW1lbnRDbGFzcyBHZG9tSFRNTExhYmVsRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGVnZW5kRWxlbWVudCBHZG9tSFRNTExlZ2VuZEVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3MgR2RvbUhU
TUxMZWdlbmRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMSUVsZW1lbnQg
R2RvbUhUTUxMSUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMSUVsZW1lbnRDbGFz
cyBHZG9tSFRNTExJRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGlua0Vs
ZW1lbnQgR2RvbUhUTUxMaW5rRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExpbmtF
bGVtZW50Q2xhc3MgR2RvbUhUTUxMaW5rRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MTWFwRWxlbWVudCBHZG9tSFRNTE1hcEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxNYXBFbGVtZW50Q2xhc3MgR2RvbUhUTUxNYXBFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxNYXJxdWVlRWxlbWVudCBHZG9tSFRNTE1hcnF1ZWVFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWFycXVlZUVsZW1lbnRDbGFzcyBHZG9tSFRNTE1hcnF1ZWVF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNZW51RWxlbWVudCBHZG9tSFRN
TE1lbnVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWVudUVsZW1lbnRDbGFzcyBH
ZG9tSFRNTE1lbnVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNZXRhRWxl
bWVudCBHZG9tSFRNTE1ldGFFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWV0YUVs
ZW1lbnRDbGFzcyBHZG9tSFRNTE1ldGFFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxNb2RFbGVtZW50IEdkb21IVE1MTW9kRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTE1vZEVsZW1lbnRDbGFzcyBHZG9tSFRNTE1vZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTE9iamVjdEVsZW1lbnQgR2RvbUhUTUxPYmplY3RFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MT2JqZWN0RWxlbWVudENsYXNzIEdkb21IVE1MT2JqZWN0RWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT0xpc3RFbGVtZW50IEdkb21IVE1MT0xp
c3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT0xpc3RFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxPTGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdEdyb3Vw
RWxlbWVudCBHZG9tSFRNTE9wdEdyb3VwRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TE9wdEdyb3VwRWxlbWVudENsYXNzIEdkb21IVE1MT3B0R3JvdXBFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRpb25FbGVtZW50IEdkb21IVE1MT3B0aW9uRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdGlvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTE9wdGlv
bkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9u
IEdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRp
b25zQ29sbGVjdGlvbkNsYXNzIEdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25DbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQgR2RvbUhUTUxQYXJhZ3JhcGhFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudENsYXNzIEdkb21I
VE1MUGFyYWdyYXBoRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUGFyYW1F
bGVtZW50IEdkb21IVE1MUGFyYW1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUGFy
YW1FbGVtZW50Q2xhc3MgR2RvbUhUTUxQYXJhbUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFByZUVsZW1lbnQgR2RvbUhUTUxQcmVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MUHJlRWxlbWVudENsYXNzIEdkb21IVE1MUHJlRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MUXVvdGVFbGVtZW50IEdkb21IVE1MUXVvdGVFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUXVvdGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxRdW90ZUVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNjcmlwdEVsZW1lbnQgR2RvbUhUTUxT
Y3JpcHRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2NyaXB0RWxlbWVudENsYXNz
IEdkb21IVE1MU2NyaXB0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2Vs
ZWN0RWxlbWVudCBHZG9tSFRNTFNlbGVjdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxTZWxlY3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxTZWxlY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxTdHlsZUVsZW1lbnQgR2RvbUhUTUxTdHlsZUVsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxTdHlsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFN0eWxlRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudCBHZG9t
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNh
cHRpb25FbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50IEdkb21IVE1MVGFibGVDZWxsRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRDbGFzcyBHZG9t
SFRNTFRhYmxlQ2VsbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxl
Q29sRWxlbWVudCBHZG9tSFRNTFRhYmxlQ29sRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTFRhYmxlQ29sRWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVDb2xFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUVsZW1lbnQgR2RvbUhUTUxUYWJsZUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxl
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVSb3dFbGVtZW50IEdk
b21IVE1MVGFibGVSb3dFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVSb3dF
bGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudENsYXNzIEdkb21I
VE1MVGFibGVTZWN0aW9uRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGV4
dEFyZWFFbGVtZW50IEdkb21IVE1MVGV4dEFyZWFFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MVGV4dEFyZWFFbGVtZW50Q2xhc3MgR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRpdGxlRWxlbWVudCBHZG9tSFRNTFRpdGxlRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRpdGxlRWxlbWVudENsYXNzIEdkb21IVE1MVGl0
bGVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxVTGlzdEVsZW1lbnQgR2Rv
bUhUTUxVTGlzdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxVTGlzdEVsZW1lbnRD
bGFzcyBHZG9tSFRNTFVMaXN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21JbWFn
ZURhdGEgR2RvbUltYWdlRGF0YTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSW1hZ2VEYXRhQ2xhc3Mg
R2RvbUltYWdlRGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21KYXZhU2NyaXB0Q2FsbEZy
YW1lIEdkb21KYXZhU2NyaXB0Q2FsbEZyYW1lOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21KYXZhU2Ny
aXB0Q2FsbEZyYW1lQ2xhc3MgR2RvbUphdmFTY3JpcHRDYWxsRnJhbWVDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tS2V5Ym9hcmRFdmVudCBHZG9tS2V5Ym9hcmRFdmVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tS2V5Ym9hcmRFdmVudENsYXNzIEdkb21LZXlib2FyZEV2ZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUxvY2F0aW9uIEdkb21Mb2NhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tTG9jYXRpb25DbGFzcyBHZG9tTG9jYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
TWVkaWFMaXN0IEdkb21NZWRpYUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lZGlhTGlzdENs
YXNzIEdkb21NZWRpYUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWVzc2FnZUV2ZW50
IEdkb21NZXNzYWdlRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lc3NhZ2VFdmVudENsYXNz
IEdkb21NZXNzYWdlRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGVBcnJh
eSBHZG9tTWltZVR5cGVBcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGVBcnJheUNs
YXNzIEdkb21NaW1lVHlwZUFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBl
IEdkb21NaW1lVHlwZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGVDbGFzcyBHZG9tTWlt
ZVR5cGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTW91c2VFdmVudCBHZG9tTW91c2VFdmVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTW91c2VFdmVudENsYXNzIEdkb21Nb3VzZUV2ZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU11dGF0aW9uRXZlbnQgR2RvbU11dGF0aW9uRXZlbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU11dGF0aW9uRXZlbnRDbGFzcyBHZG9tTXV0YXRpb25FdmVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21OYW1lZE5vZGVNYXAgR2RvbU5hbWVkTm9kZU1h
cDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTmFtZWROb2RlTWFwQ2xhc3MgR2RvbU5hbWVkTm9kZU1h
cENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21OYXZpZ2F0b3IgR2RvbU5hdmlnYXRvcjsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tTmF2aWdhdG9yQ2xhc3MgR2RvbU5hdmlnYXRvckNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlRmlsdGVyIEdkb21Ob2RlRmlsdGVyOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21Ob2RlRmlsdGVyQ2xhc3MgR2RvbU5vZGVGaWx0ZXJDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tTm9kZSBHZG9tTm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUNsYXNzIEdk
b21Ob2RlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVJdGVyYXRvciBHZG9tTm9kZUl0
ZXJhdG9yOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlSXRlcmF0b3JDbGFzcyBHZG9tTm9kZUl0
ZXJhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVMaXN0IEdkb21Ob2RlTGlzdDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUxpc3RDbGFzcyBHZG9tTm9kZUxpc3RDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tTm90YXRpb24gR2RvbU5vdGF0aW9uOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21Ob3RhdGlvbkNsYXNzIEdkb21Ob3RhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21PdmVyZmxvd0V2ZW50IEdkb21PdmVyZmxvd0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21P
dmVyZmxvd0V2ZW50Q2xhc3MgR2RvbU92ZXJmbG93RXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tUGx1Z2luQXJyYXkgR2RvbVBsdWdpbkFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Q
bHVnaW5BcnJheUNsYXNzIEdkb21QbHVnaW5BcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21QbHVnaW4gR2RvbVBsdWdpbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luQ2xhc3MgR2Rv
bVBsdWdpbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24g
R2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvY2Vzc2lu
Z0luc3RydWN0aW9uQ2xhc3MgR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbkNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21Qcm9ncmVzc0V2ZW50IEdkb21Qcm9ncmVzc0V2ZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21Qcm9ncmVzc0V2ZW50Q2xhc3MgR2RvbVByb2dyZXNzRXZlbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tUmFuZ2VFeGNlcHRpb24gR2RvbVJhbmdlRXhjZXB0aW9uOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21SYW5nZUV4Y2VwdGlvbkNsYXNzIEdkb21SYW5nZUV4Y2VwdGlvbkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SYW5nZSBHZG9tUmFuZ2U7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVJhbmdlQ2xhc3MgR2RvbVJhbmdlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJl
Y3QgR2RvbVJlY3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJlY3RDbGFzcyBHZG9tUmVjdENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TY3JlZW4gR2RvbVNjcmVlbjsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tU2NyZWVuQ2xhc3MgR2RvbVNjcmVlbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21T
UUxFcnJvciBHZG9tU1FMRXJyb3I7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTEVycm9yQ2xhc3Mg
R2RvbVNRTEVycm9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldCBHZG9t
U1FMUmVzdWx0U2V0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRDbGFzcyBHZG9t
U1FMUmVzdWx0U2V0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldFJvd0xp
c3QgR2RvbVNRTFJlc3VsdFNldFJvd0xpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3Vs
dFNldFJvd0xpc3RDbGFzcyBHZG9tU1FMUmVzdWx0U2V0Um93TGlzdENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21TUUxUcmFuc2FjdGlvbiBHZG9tU1FMVHJhbnNhY3Rpb247Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbVNRTFRyYW5zYWN0aW9uQ2xhc3MgR2RvbVNRTFRyYW5zYWN0aW9uQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVN0b3JhZ2VFdmVudCBHZG9tU3RvcmFnZUV2ZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21TdG9yYWdlRXZlbnRDbGFzcyBHZG9tU3RvcmFnZUV2ZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVN0b3JhZ2UgR2RvbVN0b3JhZ2U7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVN0b3JhZ2VDbGFzcyBHZG9tU3RvcmFnZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21T
dHlsZVNoZWV0IEdkb21TdHlsZVNoZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0
Q2xhc3MgR2RvbVN0eWxlU2hlZXRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVl
dExpc3QgR2RvbVN0eWxlU2hlZXRMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0
TGlzdENsYXNzIEdkb21TdHlsZVNoZWV0TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21U
ZXh0RXZlbnQgR2RvbVRleHRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dEV2ZW50Q2xh
c3MgR2RvbVRleHRFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UZXh0IEdkb21UZXh0
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UZXh0Q2xhc3MgR2RvbVRleHRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tVHJlZVdhbGtlciBHZG9tVHJlZVdhbGtlcjsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tVHJlZVdhbGtlckNsYXNzIEdkb21UcmVlV2Fsa2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVVJRXZlbnQgR2RvbVVJRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVVJRXZlbnRDbGFz
cyBHZG9tVUlFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRBbmltYXRpb25F
dmVudCBHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktp
dEFuaW1hdGlvbkV2ZW50Q2xhc3MgR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlIEdkb21XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVD
bGFzcyBHZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50IEdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudENsYXNzIEdkb21XZWJLaXRUcmFu
c2l0aW9uRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2hlZWxFdmVudCBHZG9tV2hl
ZWxFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2hlZWxFdmVudENsYXNzIEdkb21XaGVlbEV2
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uIEdk
b21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb25DbGFzcyBHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25DbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3QgR2RvbVhNTEh0dHBSZXF1ZXN0OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdENsYXNzIEdkb21YTUxIdHRwUmVxdWVzdENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQgR2Rv
bVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50Q2xhc3MgR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZCBHZG9tWE1M
SHR0cFJlcXVlc3RVcGxvYWQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0VXBs
b2FkQ2xhc3MgR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVhNTFNlcmlhbGl6ZXIgR2RvbVhNTFNlcmlhbGl6ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVhNTFNlcmlhbGl6ZXJDbGFzcyBHZG9tWE1MU2VyaWFsaXplckNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21YUGF0aEV2YWx1YXRvciBHZG9tWFBhdGhFdmFsdWF0b3I7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVhQYXRoRXZhbHVhdG9yQ2xhc3MgR2RvbVhQYXRoRXZhbHVhdG9yQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXhjZXB0aW9uIEdkb21YUGF0aEV4Y2VwdGlvbjsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tWFBhdGhFeGNlcHRpb25DbGFzcyBHZG9tWFBhdGhFeGNlcHRpb25DbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhFeHByZXNzaW9uIEdkb21YUGF0aEV4cHJlc3Np
b247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXhwcmVzc2lvbkNsYXNzIEdkb21YUGF0aEV4
cHJlc3Npb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhOU1Jlc29sdmVyIEdkb21Y
UGF0aE5TUmVzb2x2ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoTlNSZXNvbHZlckNsYXNz
IEdkb21YUGF0aE5TUmVzb2x2ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhSZXN1
bHQgR2RvbVhQYXRoUmVzdWx0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aFJlc3VsdENsYXNz
IEdkb21YUGF0aFJlc3VsdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YU0xUUHJvY2Vzc29y
IEdkb21YU0xUUHJvY2Vzc29yOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YU0xUUHJvY2Vzc29yQ2xh
c3MgR2RvbVhTTFRQcm9jZXNzb3JDbGFzczsKKworCisjZGVmaW5lIEdET01fVFlQRV9ET01fT0JK
RUNUICAgICAgICAgICAgKGdkb21fZG9tX29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfRVZFTlRfVEFSR0VUX05PREUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQVRUUiAgICAgICAgICAgIChnZG9tX2F0
dHJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0JBUl9JTkZPICAgICAgICAgICAgKGdk
b21fYmFyX2luZm9fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19HUkFESUVO
VCAgICAgICAgICAgIChnZG9tX2NhbnZhc19ncmFkaWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfQ0FOVkFTX1BBVFRFUk4gICAgICAgICAgICAoZ2RvbV9jYW52YXNfcGF0dGVybl9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0FOVkFTX1BJWEVMX0FSUkFZICAgICAgICAg
ICAgKGdkb21fY2FudmFzX3BpeGVsX2FycmF5X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9DQU5WQVNfUkVOREVSSU5HX0NPTlRFWFQyRCAgICAgICAgICAgIChnZG9tX2NhbnZhc19yZW5k
ZXJpbmdfY29udGV4dDJkX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DREFUQV9TRUNU
SU9OICAgICAgICAgICAgKGdkb21fY2RhdGFfc2VjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfQ0hBUkFDVEVSX0RBVEEgICAgICAgICAgICAoZ2RvbV9jaGFyYWN0ZXJfZGF0YV9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0xJUEJPQVJEICAgICAgICAgICAgKGdkb21f
Y2xpcGJvYXJkX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DT01NRU5UICAgICAgICAg
ICAgKGdkb21fY29tbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ09OU09MRSAg
ICAgICAgICAgIChnZG9tX2NvbnNvbGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NP
VU5URVIgICAgICAgICAgICAoZ2RvbV9jb3VudGVyX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9DU1NfQ0hBUlNFVF9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX2NoYXJzZXRfcnVsZV9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX0ZPTlRfRkFDRV9SVUxFICAgICAgICAg
ICAgKGdkb21fY3NzX2ZvbnRfZmFjZV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9DU1NfSU1QT1JUX1JVTEUgICAgICAgICAgICAoZ2RvbV9jc3NfaW1wb3J0X3J1bGVfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19NRURJQV9SVUxFICAgICAgICAgICAgKGdkb21f
Y3NzX21lZGlhX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19QQUdFX1JV
TEUgICAgICAgICAgICAoZ2RvbV9jc3NfcGFnZV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9DU1NfUFJJTUlUSVZFX1ZBTFVFICAgICAgICAgICAgKGdkb21fY3NzX3ByaW1pdGl2
ZV92YWx1ZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1JVTEUgICAgICAgICAg
ICAoZ2RvbV9jc3NfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1JVTEVf
TElTVCAgICAgICAgICAgIChnZG9tX2Nzc19ydWxlX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0NTU19TVFlMRV9ERUNMQVJBVElPTiAgICAgICAgICAgIChnZG9tX2Nzc19zdHls
ZV9kZWNsYXJhdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1NUWUxFX1JV
TEUgICAgICAgICAgICAoZ2RvbV9jc3Nfc3R5bGVfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfQ1NTX1NUWUxFX1NIRUVUICAgICAgICAgICAgKGdkb21fY3NzX3N0eWxlX3NoZWV0
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFMVUUgICAgICAgICAgICAoZ2Rv
bV9jc3NfdmFsdWVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19WQUxVRV9MSVNU
ICAgICAgICAgICAgKGdkb21fY3NzX3ZhbHVlX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0NTU19WQVJJQUJMRVNfREVDTEFSQVRJT04gICAgICAgICAgICAoZ2RvbV9jc3NfdmFy
aWFibGVzX2RlY2xhcmF0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFS
SUFCTEVTX1JVTEUgICAgICAgICAgICAoZ2RvbV9jc3NfdmFyaWFibGVzX3J1bGVfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RBVEFCQVNFICAgICAgICAgICAgKGdkb21fZGF0YWJhc2Vf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAg
ICAgKGdkb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0RPQ1VNRU5UICAgICAgICAgICAgKGdkb21fZG9jdW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0RPQ1VNRU5UX1RZUEUgICAgICAgICAgICAoZ2RvbV9kb2N1bWVudF90eXBlX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET01fQVBQTElDQVRJT05fQ0FDSEUgICAgICAg
ICAgICAoZ2RvbV9kb21fYXBwbGljYXRpb25fY2FjaGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0RPTV9DT1JFX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9tX2RvbV9jb3JlX2V4Y2Vw
dGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9NX0lNUExFTUVOVEFUSU9OICAg
ICAgICAgICAgKGdkb21fZG9tX2ltcGxlbWVudGF0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9ET01fUEFSU0VSICAgICAgICAgICAgKGdkb21fZG9tX3BhcnNlcl9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfRE9NX1NFTEVDVElPTiAgICAgICAgICAgIChnZG9tX2RvbV9z
ZWxlY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9XSU5ET1cgICAgICAg
ICAgICAoZ2RvbV9kb21fd2luZG93X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FTEVN
RU5UICAgICAgICAgICAgKGdkb21fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfRU5USVRZICAgICAgICAgICAgKGdkb21fZW50aXR5X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9FTlRJVFlfUkVGRVJFTkNFICAgICAgICAgICAgKGdkb21fZW50aXR5X3JlZmVyZW5j
ZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRVZFTlRfRVhDRVBUSU9OICAgICAgICAg
ICAgKGdkb21fZXZlbnRfZXhjZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9F
VkVOVCAgICAgICAgICAgIChnZG9tX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9GSUxFICAgICAgICAgICAgKGdkb21fZmlsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfRklMRV9MSVNUICAgICAgICAgICAgKGdkb21fZmlsZV9saXN0X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9ISVNUT1JZICAgICAgICAgICAgKGdkb21faGlzdG9yeV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9BTkNIT1JfRUxFTUVOVCAgICAgICAgICAgIChnZG9t
X2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxf
QVBQTEVUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0FSRUFfRUxFTUVOVCAgICAgICAgICAgIChn
ZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1M
X0JBU0VfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYmFzZV9lbGVtZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0JBU0VfRk9OVF9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbF9iYXNlX2ZvbnRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9CTE9DS1FVT1RFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Jsb2NrcXVv
dGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CT0RZX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX2JvZHlfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTEJSX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sYnJfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CVVRUT05fRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0hUTUxfQ0FOVkFTX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2NhbnZhc19l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0NPTExFQ1RJT04gICAg
ICAgICAgICAoZ2RvbV9odG1sX2NvbGxlY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxfRElSRUNUT1JZX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2RpcmVjdG9y
eV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0RJVl9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9kaXZfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTERfTElTVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGRfbGlzdF9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0RPQ1VNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9kb2N1bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
SFRNTF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9lbGVtZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9IVE1MX0VNQkVEX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X2VtYmVkX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRklFTERf
U0VUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2ZpZWxkX3NldF9lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZPTlRfRUxFTUVOVCAgICAgICAgICAgIChn
ZG9tX2h0bWxfZm9udF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1M
X0ZPUk1fRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZSQU1FX0VMRU1FTlQgICAgICAgICAgICAoZ2Rv
bV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxf
RlJBTUVfU0VUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0hFQURfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfaGVhZF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MX0hFQURJTkdfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaGVhZGluZ19lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MSFJfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxocl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MX0hUTUxfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaHRtbF9lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MSV9GUkFNRV9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbGlfZnJhbWVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
SFRNTF9JTUFHRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9pbWFnZV9lbGVtZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0lOUFVUX0VMRU1FTlQgICAgICAgICAg
ICAoZ2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfSVNfSU5ERVhfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaXNfaW5kZXhfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9MQUJFTF9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF9sYWJlbF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX0xFR0VORF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9sZWdlbmRf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTExJX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sbGlfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9MSU5LX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2xpbmtfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9NQVBfRUxFTUVOVCAgICAgICAgICAg
IChnZG9tX2h0bWxfbWFwX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hU
TUxfTUFSUVVFRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9tYXJxdWVlX2VsZW1lbnRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTUVOVV9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF9tZW51X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfTUVUQV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9tZXRhX2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTU9EX0VMRU1FTlQgICAgICAgICAgICAo
Z2RvbV9odG1sX21vZF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1M
X09CSkVDVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTE9fTElTVF9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbG9fbGlzdF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MX09QVF9HUk9VUF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9vcHRfZ3JvdXBfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PUFRJT05fRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfT1BUSU9OU19DT0xMRUNUSU9OICAgICAgICAgICAgKGdkb21faHRtbF9v
cHRpb25zX2NvbGxlY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfUEFS
QUdSQVBIX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3BhcmFncmFwaF9lbGVtZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1BBUkFNX0VMRU1FTlQgICAgICAgICAg
ICAoZ2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfUFJFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3ByZV9lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1FVT1RFX0VMRU1FTlQgICAgICAgICAgICAo
Z2RvbV9odG1sX3F1b3RlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hU
TUxfU0NSSVBUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1NFTEVDVF9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9TVFlMRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9zdHlsZV9lbGVtZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX0NBUFRJT05fRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfY2FwdGlvbl9lbGVtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX0NFTExfRUxFTUVOVCAgICAgICAgICAgIChn
ZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MX1RBQkxFX0NPTF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9jb2xf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX1RBQkxFX1JPV19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90
YWJsZV9yb3dfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJM
RV9TRUNUSU9OX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9URVhUX0FSRUFfRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfVElUTEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
dGl0bGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTFVfTElTVF9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbHVfbGlzdF9lbGVtZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9JTUFHRV9EQVRBICAgICAgICAgICAgKGdkb21faW1hZ2VfZGF0YV9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSkFWQV9TQ1JJUFRfQ0FMTF9GUkFNRSAgICAg
ICAgICAgIChnZG9tX2phdmFfc2NyaXB0X2NhbGxfZnJhbWVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0tFWUJPQVJEX0VWRU5UICAgICAgICAgICAgKGdkb21fa2V5Ym9hcmRfZXZlbnRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0xPQ0FUSU9OICAgICAgICAgICAgKGdkb21f
bG9jYXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01FRElBX0xJU1QgICAgICAg
ICAgICAoZ2RvbV9tZWRpYV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NRVNT
QUdFX0VWRU5UICAgICAgICAgICAgKGdkb21fbWVzc2FnZV9ldmVudF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfTUlNRV9UWVBFX0FSUkFZICAgICAgICAgICAgKGdkb21fbWltZV90eXBl
X2FycmF5X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NSU1FX1RZUEUgICAgICAgICAg
ICAoZ2RvbV9taW1lX3R5cGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01PVVNFX0VW
RU5UICAgICAgICAgICAgKGdkb21fbW91c2VfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX01VVEFUSU9OX0VWRU5UICAgICAgICAgICAgKGdkb21fbXV0YXRpb25fZXZlbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05BTUVEX05PREVfTUFQICAgICAgICAgICAgKGdk
b21fbmFtZWRfbm9kZV9tYXBfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05BVklHQVRP
UiAgICAgICAgICAgIChnZG9tX25hdmlnYXRvcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfTk9ERV9GSUxURVIgICAgICAgICAgICAoZ2RvbV9ub2RlX2ZpbHRlcl9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfTk9ERSAgICAgICAgICAgIChnZG9tX25vZGVfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX05PREVfSVRFUkFUT1IgICAgICAgICAgICAoZ2RvbV9ub2RlX2l0
ZXJhdG9yX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT0RFX0xJU1QgICAgICAgICAg
ICAoZ2RvbV9ub2RlX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05PVEFUSU9O
ICAgICAgICAgICAgKGdkb21fbm90YXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X09WRVJGTE9XX0VWRU5UICAgICAgICAgICAgKGdkb21fb3ZlcmZsb3dfZXZlbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX1BMVUdJTl9BUlJBWSAgICAgICAgICAgIChnZG9tX3BsdWdp
bl9hcnJheV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUExVR0lOICAgICAgICAgICAg
KGdkb21fcGx1Z2luX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9QUk9DRVNTSU5HX0lO
U1RSVUNUSU9OICAgICAgICAgICAgKGdkb21fcHJvY2Vzc2luZ19pbnN0cnVjdGlvbl9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUFJPR1JFU1NfRVZFTlQgICAgICAgICAgICAoZ2RvbV9w
cm9ncmVzc19ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUkFOR0VfRVhDRVBU
SU9OICAgICAgICAgICAgKGdkb21fcmFuZ2VfZXhjZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9SQU5HRSAgICAgICAgICAgIChnZG9tX3JhbmdlX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9SRUNUICAgICAgICAgICAgKGdkb21fcmVjdF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfU0NSRUVOICAgICAgICAgICAgKGdkb21fc2NyZWVuX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9TUUxfRVJST1IgICAgICAgICAgICAoZ2RvbV9zcWxfZXJyb3Jf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NRTF9SRVNVTFRfU0VUICAgICAgICAgICAg
KGdkb21fc3FsX3Jlc3VsdF9zZXRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NRTF9S
RVNVTFRfU0VUX1JPV19MSVNUICAgICAgICAgICAgKGdkb21fc3FsX3Jlc3VsdF9zZXRfcm93X2xp
c3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NRTF9UUkFOU0FDVElPTiAgICAgICAg
ICAgIChnZG9tX3NxbF90cmFuc2FjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
U1RPUkFHRV9FVkVOVCAgICAgICAgICAgIChnZG9tX3N0b3JhZ2VfZXZlbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX1NUT1JBR0UgICAgICAgICAgICAoZ2RvbV9zdG9yYWdlX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TVFlMRV9TSEVFVCAgICAgICAgICAgIChnZG9tX3N0
eWxlX3NoZWV0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TVFlMRV9TSEVFVF9MSVNU
ICAgICAgICAgICAgKGdkb21fc3R5bGVfc2hlZXRfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfVEVYVF9FVkVOVCAgICAgICAgICAgIChnZG9tX3RleHRfZXZlbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX1RFWFQgICAgICAgICAgICAoZ2RvbV90ZXh0X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9UUkVFX1dBTEtFUiAgICAgICAgICAgIChnZG9tX3RyZWVf
d2Fsa2VyX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9VSV9FVkVOVCAgICAgICAgICAg
IChnZG9tX3VpX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9XRUJfS0lUX0FO
SU1BVElPTl9FVkVOVCAgICAgICAgICAgIChnZG9tX3dlYl9raXRfYW5pbWF0aW9uX2V2ZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9XRUJfS0lUX0NTU19UUkFOU0ZPUk1fVkFMVUUg
ICAgICAgICAgICAoZ2RvbV93ZWJfa2l0X2Nzc190cmFuc2Zvcm1fdmFsdWVfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX1dFQl9LSVRfVFJBTlNJVElPTl9FVkVOVCAgICAgICAgICAgIChn
ZG9tX3dlYl9raXRfdHJhbnNpdGlvbl9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfV0hFRUxfRVZFTlQgICAgICAgICAgICAoZ2RvbV93aGVlbF9ldmVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfWE1MX0hUVFBfUkVRVUVTVF9FWENFUFRJT04gICAgICAgICAgICAo
Z2RvbV94bWxfaHR0cF9yZXF1ZXN0X2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfWE1MX0hUVFBfUkVRVUVTVCAgICAgICAgICAgIChnZG9tX3htbF9odHRwX3JlcXVlc3Rf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1RfUFJPR1JFU1Nf
RVZFTlQgICAgICAgICAgICAoZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3Byb2dyZXNzX2V2ZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YTUxfSFRUUF9SRVFVRVNUX1VQTE9BRCAgICAg
ICAgICAgIChnZG9tX3htbF9odHRwX3JlcXVlc3RfdXBsb2FkX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9YTUxfU0VSSUFMSVpFUiAgICAgICAgICAgIChnZG9tX3htbF9zZXJpYWxpemVy
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YX1BBVEhfRVZBTFVBVE9SICAgICAgICAg
ICAgKGdkb21feF9wYXRoX2V2YWx1YXRvcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
WF9QQVRIX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9tX3hfcGF0aF9leGNlcHRpb25fZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9FWFBSRVNTSU9OICAgICAgICAgICAgKGdk
b21feF9wYXRoX2V4cHJlc3Npb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFU
SF9OU19SRVNPTFZFUiAgICAgICAgICAgIChnZG9tX3hfcGF0aF9uc19yZXNvbHZlcl9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWF9QQVRIX1JFU1VMVCAgICAgICAgICAgIChnZG9tX3hf
cGF0aF9yZXN1bHRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hTTFRfUFJPQ0VTU09S
ICAgICAgICAgICAgKGdkb21feHNsdF9wcm9jZXNzb3JfZ2V0X3R5cGUoKSkKK0dfRU5EX0RFQ0xT
CisKKyNlbmRpZgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvZ2RvbS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9ndGsvd2Via2l0L2dkb20uaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Vi
a2l0L2dkb20uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNjAgQEAKKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NT2JqZWN0
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21BdHRyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21C
YXJJbmZvLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DYW52YXNHcmFkaWVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tQ2FudmFzUGF0dGVybi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2Fu
dmFzUGl4ZWxBcnJheS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DREFUQVNlY3Rpb24uaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUNoYXJhY3RlckRhdGEuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNsaXBi
b2FyZC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ29tbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tQ29uc29sZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ291bnRlci5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tQ1NTQ2hhcnNldFJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNT
U0ZvbnRGYWNlUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTSW1wb3J0UnVsZS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTTWVkaWFSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21DU1NQYWdlUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1J1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUNTU1J1bGVMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NTdHlsZURlY2xhcmF0aW9u
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NTdHlsZVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUNTU1N0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ZhbHVlLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NWYWx1ZUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NW
YXJpYWJsZXNSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21EYXRhYmFzZS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tRG9jdW1lbnRGcmFnbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
RG9jdW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURvY3VtZW50VHlwZS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tRE9NQ29yZUV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NSW1wbGVtZW50
YXRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTVBhcnNlci5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tRE9NU2VsZWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01XaW5kb3cu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUVudGl0eS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRW50aXR5UmVmZXJlbmNlLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21FdmVudEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
RXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUZpbGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUZpbGVMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IaXN0b3J5Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21IVE1MQW5jaG9yRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
SFRNTEFwcGxldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxBcmVhRWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJhc2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MQmFzZUZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MQmxvY2txdW90ZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCb2R5RWxl
bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJSRWxlbWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxDYW52YXNFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQ29sbGVjdGlvbi5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxEaXZFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1M
RExpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRG9jdW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MRW1iZWRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRmllbGRTZXRFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRm9udEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxGb3JtRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRN
TEZyYW1lRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZyYW1lU2V0RWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEhlYWRFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxIUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIdG1sRWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxJbWFnZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJbnB1
dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTExhYmVsRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxMSUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxMaW5rRWxlbWVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tSFRNTE1hcEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxNYXJxdWVlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE1lbnVFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTWV0YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUhUTUxNb2RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MT2Jq
ZWN0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9MaXN0RWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTE9wdGlvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxP
cHRpb25zQ29sbGVjdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFBhcmFncmFwaEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxQYXJhbUVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxQcmVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MUXVvdGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MU2NyaXB0RWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxTdHlsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxUYWJsZUNhcHRpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVD
ZWxsRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUZXh0QXJl
YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUaXRsZUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxVTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUltYWdlRGF0YS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSmF2YVNjcmlwdENhbGxGcmFt
ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tTG9jYXRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1lZGlhTGlzdC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tTWVzc2FnZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21NaW1lVHlwZUFycmF5Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21NaW1lVHlwZS5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tTW91c2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTXV0
YXRpb25FdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTmFtZWROb2RlTWFwLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21OYXZpZ2F0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVG
aWx0ZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbU5vZGVJdGVyYXRvci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTm9kZUxpc3QuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbU5vdGF0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21PdmVy
Zmxvd0V2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21QbHVnaW5BcnJheS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tUGx1Z2luLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVByb2dyZXNzRXZlbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbVJhbmdlRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21SYW5nZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUmVjdC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tU2NyZWVuLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxFcnJvci5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tU1FMUmVzdWx0U2V0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxS
ZXN1bHRTZXRSb3dMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxUcmFuc2FjdGlvbi5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU3RvcmFnZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21TdG9yYWdlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TdHlsZVNoZWV0Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21TdHlsZVNoZWV0TGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
VGV4dEV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21UZXh0Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21UcmVlV2Fsa2VyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21VSUV2ZW50Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bVdlYktpdFRyYW5zaXRpb25FdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2hlZWxFdmVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhN
TEh0dHBSZXF1ZXN0VXBsb2FkLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxTZXJpYWxpemVy
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YUGF0aEV2YWx1YXRvci5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tWFBhdGhFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRoRXhw
cmVzc2lvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhOU1Jlc29sdmVyLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21YUGF0aFJlc3VsdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFNM
VFByb2Nlc3Nvci5oPgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvR05V
bWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiBXZWJDb3JlIDo9ICQo
c3JjZGlyKS9XZWJDb3JlCiAKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUIDo9IExBTkdVQUdF
X0pBVkFTQ1JJUFQ9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gOj0gTEFOR1VBR0VfR09CSkVDVD0x
CiBTVkdfRkVBVFVSRVMgOj0KIEhUTUxfRkVBVFVSRVMgOj0KIApAQCAtOSw2ICsxMCw3IEBACiBX
RUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUyA6PSAkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsg
XAogCS1JJChzcmNkaXIpL1dlYkNvcmUgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0g
XAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yayBcCkBAIC0yOSw2ICszMSw3
IEBACiAJLUkkKHNyY2RpcikvV2ViQ29yZS94bWwgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvaHRt
bCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9qcyBcCisJLUkkKHNyY2RpcikvV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2JtcCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYg
XApAQCAtNTUsNyArNTgsNyBAQAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
Lmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRCYXNlLmx1dC5oIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3IubHV0LmggXAotCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlLmNwcAorCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlLmNwcCAKIAogd2ViY29yZV9idWlsdF9zb3Vy
Y2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9DU1NHcmFtbWFyLmNwcCBcCkBAIC0zNTgsNyArMzYx
LDU4NyBAQAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogCURlcml2
ZWRTb3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0YS5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1hNTE5hbWVzLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaAorCURlcml2ZWRTb3Vy
Y2VzL1hNTE5hbWVzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21BdHRyLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUF0dHIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUJhckluZm8uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ0RB
VEFTZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ZvbnRGYWNlUnVs
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NT
SW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlhUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVJ1bGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1Zh
cmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRpZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRpZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRl
cm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2hhcmFjdGVyRGF0
YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DbGlwYm9hcmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJk
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNvbW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ291bnRlci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db3VudGVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNl
cHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUltcGxlbWVudGF0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21ET01QYXJzZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NUGFyc2VyLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21ET01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21E
b2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21E
b2N1bWVudEZyYWdtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudFR5cGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUVudGl0eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHku
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21FbnRpdHlSZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmlsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlTGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXJl
YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFyZWFFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJsb2Nr
cXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEJ1dHRvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJ1dHRvbkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVj
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERMaXN0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MRExpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGly
ZWN0b3J5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpdkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRG9jdW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb250RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZy
YW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhl
YWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkaW5nRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TElGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTEltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTElucHV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW5wdXRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSXNJbmRleEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTExlZ2VuZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExlZ2VuZEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFycXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MTW9kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
T2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0
aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFByZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxR
dW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU3R5bGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxs
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MVGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRpdGxlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MVUxpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxVTGlzdEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSGlzdG9yeS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSW1hZ2VEYXRhLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0
Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUtleWJvYXJkRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUxvY2F0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTWVzc2FnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlw
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tTWltZVR5cGVBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFy
cmF5LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTmFtZWROb2RlTWFwLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hbWVk
Tm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmF2aWdhdG9yLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbU5hdmlnYXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2Rl
RmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2Rl
SXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob3RhdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob3RhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21PdmVyZmxvd0V2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VF
eGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU2NyZWVuLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVl
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNo
ZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21UZXh0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0RXZlbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21UcmVl
V2Fsa2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVUlFdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdl
YktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1
ZXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhN
TEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1
ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxTZXJpYWxpemVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVhNTFNlcmlhbGl6ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVhTTFRQcm9jZXNzb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nlc3Nvci5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUF0dHIuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUF0dHIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21CYXJJbmZv
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21CYXJJbmZvLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ0RBVEFTZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1ND
aGFyc2V0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1
bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUNTU0ltcG9ydFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21D
U1NNZWRpYVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU01lZGlhUnVs
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNT
U1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1J1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tQ1NTUnVsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21D
U1NTdHlsZURlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NT
dHlsZURlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVS
dWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZVJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tQ1NTVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ZhbHVl
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWVMaXN0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2Fu
dmFzR3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc0dyYWRp
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzUGF0dGVybi5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUNhbnZhc1BpeGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNoYXJh
Y3RlckRhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DbGlwYm9hcmQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUNvbW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNv
bW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db25zb2xlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db25zb2xlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tQ291bnRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ291bnRlci5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTUNvcmVFeGNlcHRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tRE9NSW1wbGVtZW50YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21ET01QYXJzZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTVBhcnNl
ci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTVNlbGVjdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21E
T01XaW5kb3cuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21Eb2N1bWVudEZyYWdtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21Eb2N1bWVudEZyYWdtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9j
dW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudFR5cGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
RW50aXR5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbnRpdHkuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUVudGl0eVJlZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FdmVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUV2ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21FdmVudEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUZpbGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21GaWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tRmlsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFu
Y2hvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQXBwbGV0RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFwcGxldEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQXJlYUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxCUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
QmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJvZHlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TENhbnZhc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxDYW52
YXNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENvbGxlY3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTERMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
RGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEb2N1bWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVtYmVk
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRm9udEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTEZvcm1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTEZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZy
YW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGcmFtZVNldEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSFJFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTEhlYWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MSGVhZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MSGVhZGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxI
ZWFkaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIdG1sRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEh0bWxFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTElGcmFtZUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTEltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSXNJbmRl
eEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJc0luZGV4RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMSUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MTGFiZWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTExlZ2VuZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExpbmtF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGlua0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MTWFycXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxNZW51RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TE1lbnVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1ldGFFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWV0YUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTW9kRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MT0xpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MT0xpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TE9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPYmpl
Y3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRpb25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT3B0aW9uRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTFBhcmFtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTFBhcmFtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUHJlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxRdW90ZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MU3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU3R5
bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNhcHRp
b25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNlbGxFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MVGFibGVSb3dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUaXRs
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSGlzdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSGlzdG9yeS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUltYWdl
RGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSW1hZ2VEYXRhLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUtleWJvYXJkRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUtleWJvYXJkRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Mb2Nh
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTG9jYXRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZWRpYUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lc3Nh
Z2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVzc2FnZUV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbU1pbWVUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
TWltZVR5cGVBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWltZVR5cGVB
cnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21NdXRhdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21NdXRhdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTmFtZWROb2Rl
TWFwLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21OYW1lZE5vZGVNYXAuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21OYXZpZ2F0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbU5hdmlnYXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5v
ZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21Ob2RlRmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUl0ZXJh
dG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlSXRlcmF0b3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tTm9kZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob3Rh
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm90YXRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21PdmVyZmxvd0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21PdmVyZmxvd0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21QbHVnaW4uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21QbHVnaW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tUGx1Z2luQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVBy
b2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2dyZXNzRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SYW5nZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21S
YW5nZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2VFeGNl
cHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SZWN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21SZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
U2NyZWVuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TY3JlZW4uaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21TdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3R5
bGVTaGVldExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0eWxlU2hlZXRM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGV4dC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tVGV4dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRl
eHRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGV4dEV2ZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tVHJlZVdhbGtlci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVVJRXZlbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRBbmltYXRpb25FdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVdoZWVsRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVx
dWVzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTFNlcmlhbGl6ZXIuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVhNTFNlcmlhbGl6ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Y
U0xUUHJvY2Vzc29yLmggIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50
V3JhcHBlckZhY3RvcnkuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuaCAKIAogSURMX0JJTkRJTkdTICs9ICBcCiAJV2ViQ29yZS9jc3Mv
Q291bnRlci5pZGwgXApAQCAtNzAxLDYgKzEyODQsMTYgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oIFwK
KwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR0RPTUJpbmRpbmcuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01P
YmplY3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oIFwKKwlX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwIFwKKwlXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20v
R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuaCBcCiAJV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIFwK
IAlXZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5oIFwKIAlXZWJDb3JlL2JyaWRnZS9jL2NfY2xh
c3MuY3BwIFwKQEAgLTIwMDgsOSArMjYwMSwxMiBAQAogIyAtLS0tCiBpZiBFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJM
RV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0g
XAotCURlcml2ZWRTb3VyY2VzL0pTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAKKwlEZXJpdmVkU291
cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9N
QXBwbGljYXRpb25DYWNoZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NQXBw
bGljYXRpb25DYWNoZS5jcHAKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbApAQCAtMjA1Miw2ICsyNjQ4LDcgQEAKICMg
LS0tLQogaWYgRU5BQkxFX0RBVEFCQVNFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBF
TkFCTEVfREFUQUJBU0U9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX0RBVEFCQVNF
PTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9KU0RhdGFi
YXNlLmNwcCBcCkBAIC0yMDYzLDcgKzI2NjAsMjcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1NRTFJl
c3VsdFNldFJvd0xpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xp
c3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFuc2FjdGlvbi5jcHAgXAotCURlcml2ZWRT
b3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaAorCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbURhdGFiYXNlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxFcnJvci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FM
UmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxU
cmFuc2FjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbi5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURhdGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNR
TEVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxFcnJvci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFJlc3VsdFNldC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
U1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFRy
YW5zYWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxUcmFuc2FjdGlv
bi5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmlkbCBc
CkBAIC0yMTM4LDEyICsyNzU1LDIxIEBACiAjIC0tLS0KIGlmIEVOQUJMRV9ET01fU1RPUkFHRQog
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRV
UkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCiAKIHdlYmNvcmVfYnVpbHRf
c291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmNwcCBcCiAJRGVyaXZlZFNv
dXJjZXMvSlNTdG9yYWdlLmggXAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmNwcCBc
Ci0JRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQuaAorCURlcml2ZWRTb3VyY2VzL0pTU3Rv
cmFnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2VFdmVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21TdG9yYWdlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3RvcmFnZUV2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlRXZlbnQuaAogCiBJRExfQklO
RElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmlkbCBcCkBAIC0yMjAzLDYgKzI4
MjksNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfVklERU8KIEZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IEVOQUJMRV9WSURFTz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfVklE
RU89MQogCiBIVE1MX0ZFQVRVUkVTICs9IEVOQUJMRV9WSURFTz0xCiB3ZWJjb3JlX2NwcGZsYWdz
ICs9IC1ERU5BQkxFX1ZJREVPPTEKQEAgLTIyMjUsNyArMjg1MiwzNSBAQAogCURlcml2ZWRTb3Vy
Y2VzL0pTVGltZVJhbmdlcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5oIFwK
IAlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pT
Vm9pZENhbGxiYWNrLmgKKwlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTEF1ZGlvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MQXVkaW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVkaWFFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxTb3VyY2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVmlkZW9F
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGltZVJhbmdlcy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Wb2lk
Q2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVm9pZENhbGxiYWNrLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEF1ZGlvRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxNZWRpYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
U291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNvdXJj
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVmlkZW9FbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVmlkZW9FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVkaWFFcnJvci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tTWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRpbWVSYW5nZXMu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVZvaWRDYWxsYmFjay5oCiAKIElETF9CSU5ESU5HUyArPSBc
CiAJV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRsIFwKQEAgLTIyNjksNiArMjkyNCw3
IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9YUEFUSAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX1hQQVRIPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9YUEFUSD0x
CiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFBBVEg9MQogCkBAIC0yMjg0LDcgKzI5
NDAsMjcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVzdWx0LmNwcCBcCiAJRGVyaXZlZFNv
dXJjZXMvSlNYUGF0aFJlc3VsdC5oIFwKIAlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuY3Bw
IFwKLQlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaAorCURlcml2ZWRTb3VyY2VzL1hQYXRo
R3JhbW1hci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4cHJlc3Npb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0
aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhOU1Jlc29sdmVyLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21YUGF0aFJlc3VsdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXZh
bHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV2YWx1YXRvci5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVhQYXRoRXhwcmVzc2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tWFBhdGhFeHByZXNzaW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBh
dGhOU1Jlc29sdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aE5TUmVz
b2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aFJlc3VsdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhSZXN1bHQuaAogCiBJRExfQklORElOR1Mg
Kz0gXAogCVdlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbCBcCkBAIC0yMzQ5LDYgKzMwMjUs
NyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfWFNMVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX1hTTFQ9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1hTTFQ9MQog
CiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1hTTFQ9MQogCkBAIC0yMzcyLDYgKzMwNDks
NyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfU1ZHCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHPTEgLSBi
aWcgVE9ETyEgOikKIAogV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFNRVMgKz0gJChXZWJDb3JlKS9j
c3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbiAKIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTICs9
ICQoV2ViQ29yZSkvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTI2NDksNiArMzMyNywy
NzMgQEAKIAlEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hM
aW5rTmFtZXMuY3BwCiAKK25vdC15ZXQ6CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbHRHbHlwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
QWx0R2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmdsZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRl
Q29sb3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0FuaW1hdGVkQW5nbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0
ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkQm9vbGVhbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdBbmltYXRlZEVudW1lcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmlt
YXRlZEludGVnZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2Vy
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZExlbmd0aC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZExlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1h
dGVkTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWROdW1iZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWROdW1iZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Fu
aW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdB
bmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Fu
aW1hdGVkUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFJlY3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkU3RyaW5nLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0FuaW1hdGVkU3RyaW5nLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdB
bmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRpb25FbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NpcmNsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHQ2lyY2xlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ2xpcFBh
dGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NsaXBQYXRoRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29sb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NvbXBvbmVudFRyYW5zZmVy
RnVuY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDdXJzb3JF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0N1cnNvckVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZmluaXRpb25TcmNFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0RlZmluaXRpb25TcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdEZWZzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEZWZzRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRGVzY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0RvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RvY3VtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50SW5zdGFuY2UuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxl
bWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsbGlwc2VF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUJsZW5kRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUJsZW5kRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb21w
b3NpdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGRUZsb29kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jQUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jQUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZFRnVuY0JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1
bmNHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRkVGdW5jUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFSW1hZ2VFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGRU1lcmdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVPZmZzZXRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGRVBvaW50TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFU3BvdExpZ2h0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFVGlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRkVUaWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVR1cmJ1
bGVuY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGaWx0ZXJFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Zv
bnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGb250RmFjZU5hbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRG
YWNlTmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlU3JjRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdHRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHR2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ds
eXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR3JhZGllbnRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0ltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGVuZ3RoLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
TGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMZW5ndGhMaXN0LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdMaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWFya2VyRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXJrZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXNrRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWF0cml4LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWV0YWRhdGFF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01ldGFkYXRhRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdOdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTnVtYmVyLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR051bWJlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhaW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhaW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdQYXRoU2VnLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQXJjQWJz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdBcmNBYnMuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdBcmNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHUGF0aFNlZ0FyY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0Nsb3Nl
UGF0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0
aFNlZ0xpbmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRv
UmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ01vdmV0
b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTW92ZXRvQWJzLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1BhdHRlcm5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdHRlcm5FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdQb2ludC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9pbnRMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvaW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHUG9seWdvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9s
eWdvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2x5bGluZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVjdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdS
ZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVuZGVyaW5nSW50ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1JlbmRlcmluZ0ludGVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
U1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTVkdFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NldEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU2V0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHU3RvcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHU3RvcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0cmluZ0xpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RyaW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHU3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0eWxl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdTd2l0Y2hFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdTeW1ib2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N5bWJv
bEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RSZWZFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RSZWZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVFNwYW5FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdUZXh0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdU
ZXh0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGl0bGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUcmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHVHJhbnNmb3JtLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUcmFu
c2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VuaXRUeXBlcy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdVbml0VHlwZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VzZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHVmlld0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVmll
d0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1pvb21FdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdab29tRXZlbnQuaCAKKwogSURMX0JJTkRJTkdTICs9IFwKIAlX
ZWJDb3JlL3N2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsIFwKIAlXZWJDb3JlL3N2Zy9TVkdBRWxl
bWVudC5pZGwgXApAQCAtMzIyOCwzNiArNDE3Myw0MiBAQAogIyBTVkcgRmVhdHVyZXMKIGlmIEVO
QUJMRV9TVkdfVVNFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX1VT
RT0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19VU0U9MSAjIGJpZyBUT0RP
IQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfVVNFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0g
LURFTkFCTEVfU1ZHX1VTRT0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNU
CiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNU
PTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEg
CiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCiB3ZWJjb3JlX2Nw
cGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCiBlbmRpZgogCiBpZiBFTkFC
TEVfU1ZHX0ZPTlRTCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0ZP
TlRTPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKIFNWR19G
RUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFC
TEVfU1ZHX0ZPTlRTPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfRklMVEVSUwogRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKKyNGRUFUVVJFX0RFRklO
RVNfR0RPTSArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9T
VkdfRklMVEVSUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GSUxURVJTPTEK
IGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQVNfSU1BR0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVO
QUJMRV9TVkdfQVNfSU1BR0U9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9
MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfQVNfSU1BR0U9MQogZW5kaWYKIAog
aWYgRU5BQkxFX1NWR19BTklNQVRJT04KIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVO
QUJMRV9TVkdfQU5JTUFUSU9OPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZH
X0FOSU1BVElPTj0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogd2Vi
Y29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIGVuZGlmCkBAIC0zMjY1
LDEzICs0MjE2LDE0IEBACiAjIFNWRyB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1lcyAobmVlZCB0byBw
YXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBhcmUgZW5hYmxl
ZCkKIERlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVu
dEZhY3RvcnkuY3BwOwogRGVyaXZlZFNvdXJjZXMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3Rvcnku
Y3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKK0Rlcml2ZWRTb3VyY2Vz
L0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVt
ZW50RmFjdG9yeS5jcHAKIAogaWYgU1ZHX0ZMQUdTCiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50
RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcv
c3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNv
cmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4g
LS1hdHRycyAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbiAtLWV4dHJhRGVmaW5lcyAiJChTVkdf
RkVBVFVSRVMpIiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIKKwkkKFBFUkwpIC1JJChXZWJD
b3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmlu
IC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmluZXMgIiQoU1ZH
X0ZFQVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogZWxzZQogRGVyaXZlZFNv
dXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBs
ICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkk
KFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUp
L3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1vdXRw
dXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2Ny
aXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29y
ZSkvc3ZnL3N2Z2F0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIAogZW5kaWYg
IyBTVkdfRkxBR1MKIApAQCAtMzI4MCw3ICs0MjMyLDcgQEAKIERlcml2ZWRTb3VyY2VzL1hMaW5r
TmFtZXMuaDogRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2Vz
L1hMaW5rTmFtZXMuY3BwIDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUp
L3N2Zy94bGlua2F0dHJzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQo
R0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAt
LWF0dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09V
UkNFUykiIAogCiBlbmRpZiAjIEVORCBFTkFCTEVfU1ZHCiAKQEAgLTMzNjEsMTYgKzQzMTMsMTYg
QEAKIAogaWYgSFRNTF9GTEFHUwogRGVyaXZlZFNvdXJjZXMvSFRNTE5hbWVzLmNwcDogJChXZWJD
b3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluICQo
V2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVz
LmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLWV4dHJh
RGVmaW5lcyAiJChIVE1MX0ZFQVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJ
JChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3Jl
KS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmli
dXRlTmFtZXMuaW4gLS1leHRyYURlZmluZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0RGly
ICIkKEdFTlNPVVJDRVMpIiAKIGVsc2UKIERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHA6ICQo
V2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5p
biAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAtSSQoV2Vi
Q29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdO
YW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1v
dXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJz
ICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1vdXRwdXREaXIgIiQoR0VO
U09VUkNFUykiIAogZW5kaWYgIyBIVE1MX0ZMQUdTCiAKIERlcml2ZWRTb3VyY2VzL1hNTE5hbWVz
Lmg6IERlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMvWE1MTmFt
ZXMuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkveG1sL3htbGF0
dHJzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJz
ICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgor
CSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNv
cmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiAKIHZwYXRo
ICUuaWRsID0gXAogICAgICQoV2ViQ29yZSkgXApAQCAtMzM4Niw2ICs0MzM4LDE1IEBACiAgICAg
JChXZWJDb3JlKS94bWwgXAogICAgICQoV2ViQ29yZSkvcGx1Z2lucwogCitEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvR2RvbSUuaDsKKworRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb20lLmNwcDogRGVyaXZlZFNvdXJjZXMvR2RvbSUuY3BwOworCitEZXJpdmVk
U291cmNlcy9HZG9tJS5oOiBEZXJpdmVkU291cmNlcy9HZG9tJS5jcHA7CisKK0Rlcml2ZWRTb3Vy
Y2VzL0dkb20lLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKwkkKFBFUkwpIC1JJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1i
aW5kaW5ncy5wbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9kb20gLS1pbmNsdWRlICQoV2ViQ29yZSkv
aHRtbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9jc3MgLS1pbmNsdWRlICQoV2ViQ29yZSkvcGFnZSAt
LWluY2x1ZGUgJChXZWJDb3JlKS94bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkvc3ZnIC0tb3V0cHV0
RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTX0dET00pIiAt
LWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKIERlcml2ZWRTb3VyY2VzL0pTJS5oOiBEZXJpdmVkU291
cmNlcy9KUyUuY3BwOwogCiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOiAlLmlkbCAkKFNDUklQVFNf
QklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
QEAgLTM0MDEsNiArNDM2Miw3IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQ
YXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5w
bCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3Jl
L2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1aXJrcy5jc3MgXAogCVdlYkNvcmUvY3Nz
L3ZpZXctc291cmNlLmNzcyBcCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0
aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJ
bmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3Qu
aCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgor
I2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9iamVj
dC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAid2Vi
a2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIkdkb21FdmVudC5oIgorZW51bSB7CisgICAgQlJPV1NF
Ul9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25h
bHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCisKK1dlYkNvcmU6Ok5vZGUgKgorZ2RvbV9ldmVu
dF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0KQor
eworICAgIEdET01FdmVudFRhcmdldE5vZGUgKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxH
RE9NRXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdET01fRE9N
X09CSkVDVChyZXF1ZXN0KSkpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6
Ok5vZGUqPihyZXMtPmltcGwoKSk7Cit9CisKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZ
UEUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSwgZ2RvbV9ldmVudF90YXJnZXRfbm9kZSwgR0RPTV9UWVBF
X05PREUpOworCisvKgorc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSB7CisgICAg
Y2xhc3MgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICppdGVtOworfTsgIAorKi8KKworI2RlZmlu
ZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZl
bnRUYXJnZXROb2RlUHJpdmF0ZSkpCisKKy8qCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2Rl
X3NldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50
VGFyZ2V0Tm9kZSAqIGl0ZW0pCit7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHBy
aXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHBy
aXYtPml0ZW0gPSBpdGVtOworfQorKi8KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRf
bm9kZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJnZXRO
b2RlKiByZXF1ZXN0ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERShvYmplY3QpOworICAgIEdkb21F
dmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworICAgIAorICAg
IEdfT0JKRUNUX0NMQVNTKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfcGFyZW50X2NsYXNzKS0+Zmlu
YWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9j
bGFzc19pbml0KEdkb21FdmVudFRhcmdldE5vZGVDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAg
IGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZl
bnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhyZXF1ZXN0Q2xhc3MpLAorICAgICAgICAo
R1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAg
ICAgIDAsCisgICAgICAgIE5VTEwsCisgICAgICAgIE5VTEwsCisgICAgICAgIHdlYmtpdF9tYXJz
aGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAg
ICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisKKyAgICBHX09CSkVDVF9DTEFT
UyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZmluYWxp
emU7CisKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVv
ZihHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkpOyovCit9CisKK3N0YXRpYyB2b2lkIGdkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfaW5pdChHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0KQorewor
ICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdF
VF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2Oyov
Cit9ICAgCisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fUFJJ
Vl8KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19QUklWXworI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21Ob2RlLmgiCitjbGFzcyBXZWJDb3Jl
OjpOb2RlOworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRU
YXJnZXROb2RlOworCitXRUJLSVRfQVBJIFdlYkNvcmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJn
ZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0KTsKKworI2Vu
ZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAi
RXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmpl
Y3QuaCIKKworY2xhc3MgR1N0cmluZ0NvbnZlcnQgeworICAgIHB1YmxpYzoKKyAgICBjb25zdCBn
Y2hhciAqbV9zdHI7CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBz
KSB7IG1fc3RyID0gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdDb252
ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorfTsKKworZXh0ZXJuICJDIiB7CisKKyNkZWZpbmUg
X0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cikKKwordm9pZAorZ2Rv
bV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50X3RhcmdldF9ub2RlIChHZG9tRXZlbnRUYXJn
ZXROb2RlICp0aGl6KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworICAgIC8qCisg
ICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSA9IGdkb21fZXZlbnRfdGFyZ2V0X25v
ZGVfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgV2ViQ29yZTo6U3RyaW5nIF9nX2V2ZW50X3Rhcmdl
dF9ub2RlX3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5nKGV2ZW50X3RhcmdldF9ub2RlX3R5cGVf
YXJnKTsKKyAgICBpdGVtLT5pbml0RXZlbnRUYXJnZXROb2RlKF9nX2V2ZW50X3RhcmdldF9ub2Rl
X3R5cGVfYXJnKTsKKyAgICAqLworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBM
dWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIkdkb21ET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmpl
Y3QuaCIKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbURPTU9iamVjdCwgZ2Rv
bV9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJp
dmF0ZSB7CisgICAgIEdET01PYmplY3QgKm1fbm9kZTsKK307ICAKKworI2RlZmluZSBHRE9NX0RP
TV9PQkpFQ1RfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChv
YmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdFByaXZhdGUpKQorCit2b2lk
CitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCwgR0RP
TU9iamVjdCAqIGl0ZW0pCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9N
X0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcHJpdi0+bV9ub2RlID0gaXRl
bTsKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5yZWYoKTsqLworfQorCitHRE9NT2JqZWN0
ICoKK2dkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0KQor
eworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9Q
UklWQVRFKHJlcXVlc3QpOworICAgIHJldHVybiBwcml2LT5tX25vZGU7Cit9CisKK3N0YXRpYyB2
b2lkIGdkb21fZG9tX29iamVjdF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgR2Rv
bURPTU9iamVjdCogcmVxdWVzdCA9IEdET01fRE9NX09CSkVDVChvYmplY3QpOworICAgIEdkb21E
T01PYmplY3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICAKKyAgICAvKnByaXYt
Pm1fbm9kZS0+aW1wbCgpLT5kZXJlZigpOyovCisgICAgZGVsZXRlIHByaXYtPm1fbm9kZTsgLyog
Y2FsbHMgbV9pbXBsLT5kZXJlZigpICovCisKKyAgICBHX09CSkVDVF9DTEFTUyhnZG9tX2RvbV9v
YmplY3RfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQg
Z2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQoR2RvbURPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xh
c3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9t
X2RvbV9vYmplY3RfZmluYWxpemU7CisgICAgCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRl
KHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21ET01PYmplY3RQcml2YXRlKSk7Cit9CisKK3N0YXRp
YyB2b2lkIGdkb21fZG9tX29iamVjdF9pbml0KEdkb21ET01PYmplY3QqIHJlcXVlc3QpCit7Cisg
ICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZB
VEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Cit9ICAgCisKK30gLyogZXh0
ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJn
ZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50
VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2lmbmRlZiBfX0dkb21FdmVudFRh
cmdldE5vZGVfSF9fCisjZGVmaW5lIF9fR2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18KKyNpbmNsdWRl
ICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0df
QkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2
ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3Mg
R2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOworCisjZGVmaW5lIEdET01fVFlQRV9FVkVOVF9UQVJH
RVRfTk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9t
RXZlbnRUYXJnZXROb2RlKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhr
bGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfRVZF
TlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVDbGFzcykpCisjZGVmaW5lIEdET01f
SVNfRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
VFlQRSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9J
U19FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBF
KChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2RlZmluZSBHRE9NX0VW
RU5UX1RBUkdFVF9OT0RFX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9k
ZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIEdk
b21FdmVudFRhcmdldE5vZGVQcml2YXRlOworCisjaW5jbHVkZSAiR2RvbU5vZGUuaCIKKworc3Ry
dWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7
CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBf
R2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFz
czsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5
cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5p
dF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeik7CisKK0dfRU5E
X0RFQ0xTCisKKyNlbmRpZiAvKiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fICovCisKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9r
ZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5j
bHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAi
QXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisKK2V4dGVybiAiQyIgeworCit2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5p
dF9kb21fb2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0aGl6KQoreworICAgIGdfcmV0dXJuX2lmX2Zh
aWwgKHRoaXopOworCS8qCisgICAgV2ViQ29yZTo6RE9NT2JqZWN0ICogaXRlbSA9IGdkb21fZG9t
X29iamVjdF9nZXRfcHJpdmF0ZSh0aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZG9tX29i
amVjdF90eXBlX2FyZyA9IFdlYkNvcmU6OlN0cmluZyhkb21fb2JqZWN0X3R5cGVfYXJnKTsKKyAg
ICBpdGVtLT5pbml0RE9NT2JqZWN0KF9nX2RvbV9vYmplY3RfdHlwZV9hcmcpOworCSovCit9CisK
K30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0
ZUdkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJp
dmF0ZUdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9Qcml2YXRlR2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2Vy
LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVm
IF9fR0RPTURPTU9iamVjdF9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRE9NT2JqZWN0X0hfX19Q
UklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5o
IgorR19CRUdJTl9ERUNMUworCitjbGFzcyBHRE9NT2JqZWN0OworV0VCS0lUX0FQSSBHRE9NT2Jq
ZWN0KgorZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3Qp
OworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHZG9tRE9N
T2JqZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0KiBpdGVtKTsKKworR19FTkRfREVDTFMKKyNlbmRp
ZgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDU4MiBAQAorLyoKKyAqIFRISVMgRklMRSBJUyBERVJJVkVEIEZST00gQU4gQVVUT01B
VElDQUxMWSBHRU5FUkFURUQgRklMRS4KKyAqICBrZWVwaW5nIGl0IHVwLXRvLWRhdGUgY291bGQg
cG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqICBhIG1ha2VfbmFtZXMucGwgZ2VuZXJh
dG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUKKyAqICBnZW5lcmF0ZXIgd2hpY2ggdGFrZXMg
SlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggYXMgaW5wdXQuCisgKgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+Cisg
KgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRl
ICJHZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxB
cHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJhc2VGb250RWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxCUkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTENh
bnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1M
TW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRExpc3RFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRm9udEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxGcmFt
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEhlYWRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRN
TEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJH
ZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTGVnZW5kRWxlbWVudC5o
IgorI2luY2x1ZGUgIkdkb21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxMaW5r
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIkdk
b21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE1lbnVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MT2Jq
ZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9wdGlvbkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTFBhcmFtRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MUHJlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkdkb21IVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxT
Y3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGV4dEFy
ZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVUxpc3RFbGVt
ZW50LmgiCisKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxBbmNob3JFbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxCYXNlRm9udEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21IVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTENhbnZhc0Vs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRExpc3RFbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21IVE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxG
b3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEZyYW1lRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxI
UkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxIdG1sRWxlbWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJc0luZGV4
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTExhYmVsRWxlbWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE1hcEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxPYmpl
Y3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT0xpc3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxQcmVFbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21IVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxT
dHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxUYWJsZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRh
YmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFVMaXN0RWxlbWVu
dC5oIgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisKKyNpbmNsdWRlICJIVE1MQW5jaG9yRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFy
ZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbWJlZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZv
bnRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MSFJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJc0lu
ZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFwRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZW51RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPcHRHcm91
cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFF1b3RlRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVJv
d0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVUxpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiQ1N0
cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CisKK3R5cGVkZWYgR0RPTU5vZGUqICgqQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rp
b24pKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsKKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVB
bmNob3JXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTEFuY2hvckVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFuY2hvckVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQXBw
bGV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxBcHBsZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBcHBsZXRFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFyZWFX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTEFyZWFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBcmVhRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCYXNlV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxCYXNlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmFzZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQmFzZUZvbnRXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEJhc2VGb250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmFzZUZvbnRFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTEJsb2NrcXVvdGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCbG9ja3F1b3RlRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCb2R5V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxCb2R5RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQm9keUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQlJXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEJSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQlJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJ1dHRvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQnV0dG9uRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVDYW52YXNXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTENhbnZhc0VsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNh
cHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxUYWJsZUNvbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ29sRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNb2RXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTE1vZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1vZEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRGlyZWN0b3J5V3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxE
aXJlY3RvcnlFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxEaXJlY3RvcnlFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURpdldyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
RGl2RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGl2RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVETGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRExpc3RFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxETGlzdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRW1iZWRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEVtYmVkRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGaWVsZFNldEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEZpZWxkU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGb250RWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlRm9ybVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRm9ybUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEZvcm1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZy
YW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVGcmFtZVNldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MRnJhbWVTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxG
cmFtZVNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlSGVhZGluZ1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVhZGluZ0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TEhlYWRpbmdFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUhlYWRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhlYWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFk
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVI
UldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MSFJFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIUkVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSHRtbFdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MSHRtbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlGcmFtZVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSUZy
YW1lRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSUZyYW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJbWFnZVdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSW1hZ2VF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSW5wdXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElucHV0RWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlzSW5kZXhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElzSW5kZXhFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxJc0luZGV4RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVMYWJlbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTGFiZWxFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlTGVnZW5kV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxMZWdlbmRFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxMZWdlbmRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZUxJV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxMSUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TExJRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVMaW5rV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxMaW5rRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWFwV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxNYXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNYXBFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTE1hcnF1ZWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNYXJxdWVlRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNZW51V3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxNZW51RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWVudUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWV0YVdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWV0YUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9iamVjdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MT2JqZWN0RWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVPTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MT0xpc3RFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxPTGlzdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlT3B0R3JvdXBXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9wdEdyb3VwRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9wdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MT3B0aW9uRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVQYXJhZ3JhcGhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFBhcmFncmFwaEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFncmFwaEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUGFyYW1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFBhcmFtRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MUGFyYW1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVByZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MUHJlRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MUHJlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVRdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MUXVvdGVFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxRdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlU2NyaXB0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTY3JpcHRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxT
Y3JpcHRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZVNlbGVjdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MU2VsZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2Vs
ZWN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVTdHlsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MU3R5bGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTdHlsZUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFi
bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTFRhYmxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlU2Vj
dGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlVGV4dEFyZWFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRleHRBcmVhRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZVRpdGxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUaXRsZUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFRpdGxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVUYWJsZVJvd1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVSb3dFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxUYWJsZVJvd0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlVUxpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFVMaXN0RWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MVUxpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitHRE9NTm9kZSog
Y3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgc3RhdGljIEhhc2hNYXA8V2ViQ29yZTo6QXRvbWljU3RyaW5nSW1wbCosIENyZWF0
ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uPiBtYXA7CisgICAgaWYgKG1hcC5pc0VtcHR5KCkp
IHsKKyAgICAgICBtYXAuc2V0KGFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBbmNob3JX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFwcGxldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUFwcGxldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYXJlYVRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUFyZWFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJhc2VUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChiYXNlZm9u
dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VGb250V3JhcHBlcik7CisgICAgICAg
bWFwLnNldChibG9ja3F1b3RlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmxvY2txdW90
ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYm9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUJvZHlXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJyVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlQlJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJ1dHRvblRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUJ1dHRvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY2FudmFzVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQ2FudmFzV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChjYXB0aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDYXB0aW9uV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChjb2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJs
ZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFwLnNldChkaXJUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRpdlRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpdldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGxUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVETGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
ZW1iZWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVFbWJlZFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoZmllbGRzZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGaWVsZFNldFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoZm9udFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZvcm1UYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVGb3JtV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmcmFtZVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUZyYW1lV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmcmFtZXNldFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1lU2V0V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChoMVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGhlYWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChoclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhSV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChodG1sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
SHRtbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaWZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlSUZyYW1lV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbWdUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW5wdXRUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbnB1dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlzSW5kZXhXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGxhYmVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGFiZWxXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGxlZ2VuZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUxlZ2VuZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVMSVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlua1RhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUxpbmtXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1hcFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZU1hcFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWFycXVlZVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KG1lbnVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZW51V3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChtZXRhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWV0YVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQob2JqZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT2Jq
ZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZU9MaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChvcHRncm91cFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcik7CisgICAgICAgbWFwLnNldChvcHRpb25U
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KHBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQYXJhZ3JhcGhXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KHBhcmFtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUGFyYW1XcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHByZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBy
ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVF1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChzY3JpcHRUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVTY3JpcHRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHNlbGVjdFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc3R5
bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTdHlsZVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQodGFibGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQodGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNl
Y3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0ZXh0YXJlYVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRleHRBcmVhV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0
aXRsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRpdGxlV3JhcHBlcik7CisgICAgICAg
bWFwLnNldCh0clRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlUm93V3JhcHBlcik7
CisgICAgICAgbWFwLnNldCh1bFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVVMaXN0V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChjb2xncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoMlRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgzVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChoNVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGg2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoaW1hZ2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJ
bWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW5zVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFwLnNldChrZXlnZW5UYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpc3RpbmdUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRm
b290VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldCh0aFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2VsbFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQodGhlYWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHhtcFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgIH0KKyAgICBwcmludGYoImNyZWF0ZUdE
T01IVE1MV3JhcHBlcjogJXNcbiIsIGVsZW1lbnQtPmxvY2FsTmFtZSgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdy
YXBwZXJGdW5jdGlvbiA9IG1hcC5nZXQoZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAg
ICBpZiAoY3JlYXRlV3JhcHBlckZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBl
ckZ1bmN0aW9uKGVsZW1lbnQpOworICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbGVtZW50KGVsZW1l
bnQuZ2V0KCkpOworfQorCit9CisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRl
SW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19JTlRf
CisjZGVmaW5lIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fSU5UXworI2luY2x1ZGUgImdsaWIt
b2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob2RlLmgiCitHX0JFR0lOX0RFQ0xT
CisKK2NsYXNzIEdET01FdmVudFRhcmdldE5vZGUgOiBwdWJsaWMgR0RPTU5vZGUgeworCitwdWJs
aWM6CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZShQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGlt
cGwpIDogR0RPTU5vZGUoaW1wbCkge30KKyAgICBpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJu
IEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERTsgfQorfTsKKworCitHX0VORF9ERUNMUworI2Vu
ZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsODAxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJp
IFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5
cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisvLyBnY2MgMy54IGNhbid0IGhhbmRs
ZSBpbmNsdWRpbmcgdGhlIEhhc2hNYXAgcG9pbnRlciBzcGVjaWFsaXphdGlvbiBpbiB0aGlzIGZp
bGUKKyNpZiBkZWZpbmVkIF9fR05VQ19fICYmICFkZWZpbmVkIF9fR0xJQkNYWF9fIC8vIGxlc3Mg
dGhhbiBnY2MgMy40CisjZGVmaW5lIEhBU0hfTUFQX1BUUl9TUEVDX1dPUktBUk9VTkQgMQorI2Vu
ZGlmCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2lu
Y2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1
ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisKKyNpbmNsdWRlICJDU1NTdHls
ZVNoZWV0LmgiCisjaW5jbHVkZSAiR2RvbUNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUNTU1N0eWxlU2hlZXQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiR2RvbU5vZGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTm9kZS5oIgorCisjaW5jbHVkZSAiQXR0ci5oIgor
I2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVk
ZSAiQ29tbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkVudGl0eS5o
IgorI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50Lmgi
CisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIkdkb21BdHRyLmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21BdHRyLmgiCisjaW5jbHVkZSAiR2RvbUNoYXJhY3Rl
ckRhdGEuaCIKKyNpbmNsdWRlICJHZG9tVGV4dC5oIgorI2luY2x1ZGUgIkdkb21DREFUQVNlY3Rp
b24uaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudC5o
IgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3Vt
ZW50VHlwZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHkuaCIKKyNpbmNsdWRlICJHZG9tRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUHJp
bWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVk
ZSAiR2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5j
bHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNp
bmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlICJHZG9tQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkNTU0No
YXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NT
SW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1Bh
Z2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTVmFyaWFi
bGVzUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgIkdk
b21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2lu
Y2x1ZGUgIkdkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUGFnZVJ1bGUuaCIK
KyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxl
c1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
RXZlbnQuaCIKKworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisj
aW5jbHVkZSAiR2RvbUNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkdkb21LZXlib2FyZEV2ZW50Lmgi
CisjaW5jbHVkZSAiR2RvbU1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50
LmgiCisjaW5jbHVkZSAiR2RvbU11dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZs
b3dFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiR2Rv
bVRleHRFdmVudC5oIgorI2luY2x1ZGUgIkdkb21VSUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdl
YktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdFRyYW5zaXRpb25FdmVu
dC5oIgorI2luY2x1ZGUgIkdkb21XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNs
dWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAi
TXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIk92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJQ
cm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiVUlFdmVu
dC5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0
VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorCisjaW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0
aW9uLmgiCisKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVj
dGlvbi5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorLy8gVE9ETyAjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQWxsQ29sbGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVk
ZSAiR2RvbUhUTUxBbGxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRpb25zQ29s
bGVjdGlvbi5oIgorLy8gZXJyLi4uICNpbmNsdWRlICJQcml2YXRlSW50R2RvbU5hbWVkTm9kZXND
b2xsZWN0aW9uLmgiCisvLyBlcnIuLi4gI2luY2x1ZGUgIkdkb21OYW1lZE5vZGVzQ29sbGVjdGlv
bi5oIgorCisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorI2luY2x1ZGUgIkdkb21TdG9yYWdlRXZl
bnQuaCIKKyNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNW
RykKKyNpZiAwIC8qIFRPRE8gKi8KKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVNWR1pvb21FdmVu
dC5oIgorI2luY2x1ZGUgIkdkb21TVkdab29tRXZlbnQuaCIKKyNpbmNsdWRlICJTVkdab29tRXZl
bnQuaCIKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBFTkFCTEUoU1ZHKQorI2lmIDAgLyogWFhYIFRP
RE8gKi8KKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5o
IgorI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJT
VkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisjaWYgMAorI2lmIEVOQUJMRShTVkcpCisj
aW5jbHVkZSAiR2RvbVNWR0V4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgor
I2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ2xpcGJvYXJkLmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNvbW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudFR5
cGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUVudGl0eS5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTVmFsdWVMaXN0
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERvY3VtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbVRleHQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0No
YXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NGb250RmFjZVJ1bGUuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTUGFn
ZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTWVzc2FnZUV2
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21NdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21P
dmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Qcm9ncmVzc0V2ZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21UZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVdlYktpdEFuaW1hdGlv
bkV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tU3RvcmFnZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxDb2xsZWN0aW9u
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
KwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gRE9NT2JqZWN0TWFwOwordHlwZWRl
ZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gR2RvbVdyYXBwZXJDYWNoZTsgLyogQVJHISBVTkZB
SVIhIEpTV3JhcHBlckNhY2hlIGlzIGluIERvY3VtZW50ISEgKi8KKworLy8gRm9yIGRlYnVnZ2lu
Zywga2VlcCBhIHNldCBvZiB3cmFwcGVycyBjdXJyZW50bHkgcmVnaXN0ZXJlZCwgYW5kIGNoZWNr
IHRoYXQKKy8vIGFsbCBhcmUgdW5yZWdpc3RlcmVkIGJlZm9yZSB0aGV5IGFyZSBkZXN0cm95ZWQu
IFRoaXMgaGFzIGhlbHBlZCB1cyBmaXggYXQKKy8vIGxlYXN0IG9uZSBidWcuCisKKyNpZiAwCitz
dGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqIHdyYXBwZXIpOworc3RhdGljIHZvaWQg
cmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKTsKK3N0YXRpYyB2b2lkIHJlbW92ZVdy
YXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKTsKKworI2lmZGVmIE5ERUJV
RworCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KikKK3sKK30KKwor
c3RhdGljIGlubGluZSB2b2lkIHJlbW92ZVdyYXBwZXIoR0RPTU9iamVjdCopCit7Cit9CisKK3N0
YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJikK
K3sKK30KKworI2Vsc2UKKworc3RhdGljIEhhc2hTZXQ8R0RPTU9iamVjdCo+JiB3cmFwcGVyU2V0
KCkKK3sKKyAgICBzdGF0aWMgSGFzaFNldDxHRE9NT2JqZWN0Kj4gc3RhdGljV3JhcHBlclNldDsK
KyAgICByZXR1cm4gc3RhdGljV3JhcHBlclNldDsKK30KKworc3RhdGljIHZvaWQgYWRkV3JhcHBl
cihHRE9NT2JqZWN0KiB3cmFwcGVyKQoreworICAgIEFTU0VSVCghd3JhcHBlclNldCgpLmNvbnRh
aW5zKHdyYXBwZXIpKTsKKyAgICB3cmFwcGVyU2V0KCkuYWRkKHdyYXBwZXIpOworfQorCitzdGF0
aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmplY3QqIHdyYXBwZXIpCit7CisgICAgaWYgKCF3
cmFwcGVyKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHdyYXBwZXJTZXQoKS5jb250YWlu
cyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgpLnJlbW92ZSh3cmFwcGVyKTsKK30KKworc3Rh
dGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMp
Cit7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hlOjpjb25zdF9pdGVyYXRvciBpdCA9IHdyYXBw
ZXJzLmJlZ2luKCk7IGl0ICE9IHdyYXBwZXJzLmVuZCgpOyArK2l0KQorICAgICAgICByZW1vdmVX
cmFwcGVyKGl0LT5zZWNvbmQpOworfQorCitHRE9NT2JqZWN0Ojp+R0RPTU9iamVjdCgpCit7Cisg
ICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFpbnModGhpcykpOworfQorCisjZW5kaWYKKyNl
bmRpZiAvKiBjb21tZW50ZWQgb3V0IGZvciBub3cgKi8KKworc3RhdGljIEdkb21XcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJDYWNoZSgpCit7IAorICAgIC8vIFVORkFJUiEgaSB3YW50IG9uZSBvZiB0aGVz
ZSBwZXIgRG9jdW1lbnQsIHRvbyEKKyAgICAvLyBEb24ndCB1c2UgbWFsbG9jIGhlcmUuIENhbGxp
bmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9uIGNhbiBkZWFkbG9jay4KKyAgICBzdGF0aWMg
R2RvbVdyYXBwZXJDYWNoZSBzdGF0aWNHZG9tV3JhcHBlckNhY2hlOworICAgIHJldHVybiBzdGF0
aWNHZG9tV3JhcHBlckNhY2hlOworfQorCitzdGF0aWMgRE9NT2JqZWN0TWFwJiBkb21PYmplY3Rz
KCkKK3sgCisgICAgLy8gRG9uJ3QgdXNlIG1hbGxvYyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9t
IGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxvY2suCisgICAgc3RhdGljIERPTU9iamVjdE1hcCBz
dGF0aWNET01PYmplY3RzOworICAgIHJldHVybiBzdGF0aWNET01PYmplY3RzOworfQorCitncG9p
bnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5k
bGUpIAoreworICAgIGdwb2ludGVyIHJldCA9IGRvbU9iamVjdHMoKS5nZXQob2JqZWN0SGFuZGxl
KTsKKyAgICBwcmludGYoImdldERPTU9iamVjdDogJXAgJXBcbiIsIG9iamVjdEhhbmRsZSwgcmV0
KTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlX2dkb21fb2Jq
ZWN0KEdET01PYmplY3QgKmRvYikKK3sKKyAgICBncG9pbnRlciByZXMgPSBnX29iamVjdF9uZXco
ZG9iLT5nZXRfZ29ial90eXBlKCksIE5VTEwpOworICAgIGdkb21fZG9tX29iamVjdF9zZXRfcHJp
dmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVzKSwgZG9iKTsKKyAgICByZXR1cm4gcmVzOworfQorCitn
cG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RI
YW5kbGUsIEdET01PYmplY3QqIHdyYXBwZXIpIAoreworICAgIC8vIGFkZFdyYXBwZXIod3JhcHBl
cik7CisgICAgZ3BvaW50ZXIgb2JqID0gY3JlYXRlX2dkb21fb2JqZWN0KHdyYXBwZXIpOworICAg
IHByaW50ZigicHV0RE9NT2JqZWN0OiAlcCAlcCAlcFxuIiwgb2JqZWN0SGFuZGxlLCB3cmFwcGVy
LCBvYmopOworICAgIGRvbU9iamVjdHMoKS5zZXQob2JqZWN0SGFuZGxlLCBvYmopOworICAgIHJl
dHVybiBvYmo7Cit9CisKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmpl
Y3Qodm9pZCogb2JqZWN0SGFuZGxlKQoreworICAgIGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhh
bmRsZSk7CisgICAgLy9yZW1vdmVXcmFwcGVyKGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRs
ZSkpOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JE
b2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFkb2N1
bWVudCkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGdwb2ludGVyID4oZG9tT2JqZWN0cygp
LmdldChub2RlKSk7CisgICAgcmV0dXJuIC8qIFhYWCBncnJyIGRvY3VtZW50LT4gKi93cmFwcGVy
Q2FjaGUoKS5nZXQobm9kZSk7Cit9CisKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3Jn
ZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlKQorewor
ICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgZm9yZ2V0RE9NT2JqZWN0KG5vZGUpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIC8vcmVtb3ZlV3JhcHBlcigvKiBYWFggZ3JyIGRvY3Vt
ZW50LT4qL3dyYXBwZXJDYWNoZSgpLnRha2Uobm9kZSkpOworfQorCitncG9pbnRlciBHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQs
IE5vZGUqIG5vZGUsIEdET01Ob2RlICp3cmFwcGVyKQoreworICAgIC8vYWRkV3JhcHBlcih3cmFw
cGVyKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIG5vZGUtPnJlZigpOworICAgICAg
ICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qobm9kZSwgd3JhcHBl
cikgOworICAgIH0KKyAgICBncG9pbnRlciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBl
cik7CisgICAgLyogWFhYIGdycnIgZG9jdW1lbnQtPiovd3JhcHBlckNhY2hlKCkuc2V0KG5vZGUs
IG9iaik7CisgICAgcmV0dXJuIG9iajsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAg
IEFTU0VSVChkb2N1bWVudCk7CisgICAgLy9yZW1vdmVXcmFwcGVycyhkb2N1bWVudC0+d3JhcHBl
ckNhY2hlKCkpOworfQorCisjaWYgMAordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtE
T01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50KiBkb2MpCit7CisjaWYgMCAvKlhYWCBUT0RPKi8K
KyAgICAvLyBJZiBhIG5vZGUncyBHZG9tIHdyYXBwZXIgaG9sZHMgY3VzdG9tIHByb3BlcnRpZXMs
IHRob3NlIHByb3BlcnRpZXMgbXVzdAorICAgIC8vIHBlcnNpc3QgZXZlcnkgdGltZSB0aGUgbm9k
ZSBpcyBmZXRjaGVkIGZyb20gdGhlIERPTS4gU28sIHdlIGtlZXAgR2RvbQorICAgIC8vIHdyYXBw
ZXJzIGxpa2UgdGhhdCBmcm9tIGJlaW5nIGdhcmJhZ2UgY29sbGVjdGVkLgorCisgICAgR2RvbVdy
YXBwZXJDYWNoZSYgbm9kZURpY3QgPSAvKmRvYy0+Ki93cmFwcGVyQ2FjaGUoKTsKKyAgICBHZG9t
V3JhcHBlckNhY2hlOjppdGVyYXRvciBub2RlRW5kID0gbm9kZURpY3QuZW5kKCk7CisgICAgZm9y
IChHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBub2RlSXQgPSBub2RlRGljdC5iZWdpbigpOyBu
b2RlSXQgIT0gbm9kZUVuZDsgKytub2RlSXQpIHsKKyAgICAgICAgZ3BvaW50ZXIgZ05vZGUgPSBu
b2RlSXQtPnNlY29uZDsKKyAgICAgICAgTm9kZSogbm9kZSA9IGdOb2RlLT5pbXBsKCk7CisKKyAg
ICAgICAgaWYgKGdOb2RlLT5tYXJrZWQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIC8vIE5vIG5lZWQgdG8gcHJlc2VydmUgYSB3cmFwcGVyIHRoYXQgaGFzIG5vIGN1c3RvbSBw
cm9wZXJ0aWVzIG9yIGlzIG5vCisgICAgICAgIC8vIGxvbmdlciBmZXRjaGFibGUgdGhyb3VnaCB0
aGUgRE9NLgorICAgICAgICBpZiAoIWdOb2RlLT5oYXNDdXN0b21Qcm9wZXJ0aWVzKCkgfHwgIW5v
ZGUtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgICAgIC8vLi4uIHVubGVzcyB0aGUgd3JhcHBlciB3
cmFwcyBhIGxvYWRpbmcgaW1hZ2UsIHNpbmNlIHRoZSAibmV3IEltYWdlIgorICAgICAgICAgICAg
Ly8gc3ludGF4IGFsbG93cyBhbiBvcnBoYW4gaW1hZ2Ugd3JhcHBlciB0byBiZSB0aGUgbGFzdCBy
ZWZlcmVuY2UKKyAgICAgICAgICAgIC8vIHRvIGEgbG9hZGluZyBpbWFnZSwgd2hvc2UgbG9hZCBl
dmVudCBtaWdodCBoYXZlIGltcG9ydGFudCBzaWRlLWVmZmVjdHMuCisgICAgICAgICAgICBpZiAo
IW5vZGUtPmhhc1RhZ05hbWUoaW1nVGFnKSB8fCBzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50
Kj4obm9kZSktPmhhdmVGaXJlZExvYWRFdmVudCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIGdOb2RlLT5tYXJrKCk7CisgICAgfQorI2VuZGlmCit9CisKKy8qIFhYWCAt
IHJlcXVpcmVzIGxvb2tpbmcgdXAgb2JqZWN0IC0gY2FsbCB0byBHX09CSkVDVCgpIG1hY3JvIGlu
IGFyZworICogIndyYXBwZXIiIHRvIHB1dERPTU5vZGVGb3JEb2N1bWVudD8qLworZ3BvaW50ZXIg
R0RPTVNjcmlwdEludGVycHJldGVyOjp1cGRhdGVET01Ob2RlRG9jdW1lbnQoTm9kZSogbm9kZSwg
RG9jdW1lbnQqIG9sZERvYywgRG9jdW1lbnQqIG5ld0RvYykKK3sKKyAgICBBU1NFUlQob2xkRG9j
ICE9IG5ld0RvYyk7CisgICAgc3R5bGVTaGVldC0+cmVmKCk7CisgICAgZ3BvaW50ZXIgd3JhcHBl
ciA9IGdldERPTU5vZGVGb3JEb2N1bWVudChvbGREb2MsIG5vZGUpOworICAgIGlmICh3cmFwcGVy
KSB7CisgICAgICAgIC8vcmVtb3ZlV3JhcHBlcih3cmFwcGVyKTsKKyAgICAgICAgZ3BvaW50ZXIg
b2JqID0gcHV0RE9NTm9kZUZvckRvY3VtZW50KG5ld0RvYywgbm9kZSwgd3JhcHBlcik7CisgICAg
ICAgIGZvcmdldERPTU5vZGVGb3JEb2N1bWVudChvbGREb2MsIG5vZGUpOworICAgICAgICAvL2Fk
ZFdyYXBwZXIod3JhcHBlcik7CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIHJldHVy
biBOVUxMOyAvKiBlcnIuLi4gKi8KK30KKyNlbmRpZgorCitncG9pbnRlciB0b0dET00oRG9jdW1l
bnQqIGRvYykKK3sKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBo
bW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpn
ZXRET01PYmplY3QoZG9jKTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisK
KyAgICBHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBpZiAoZG9jLT5pc0hUTUxEb2N1bWVudCgpKQor
ICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxEb2N1bWVudChzdGF0aWNfY2FzdDxIVE1MRG9jdW1l
bnQqPihkb2MpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKGRvYy0+aXNTVkdEb2N1
bWVudCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RPICovCisjaWYg
MAorICAgICAgICByZXQgPSBuZXcgR0RPTVNWR0RvY3VtZW50KHN0YXRpY19jYXN0PFNWR0RvY3Vt
ZW50Kj4oZG9jKSk7CisjZW5kaWYKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJl
dCA9IG5ldyBHRE9NRG9jdW1lbnQoZG9jKTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJu
IEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvYywgcmV0KTsKK30KKworc3Rh
dGljIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSk7CisKK2dwb2ludGVyIHRvR0RP
TU5ld2x5Q3JlYXRlZChOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0
dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisgICAgCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIo
bm9kZSk7Cit9CisgICAgCitncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAo
IW5vZGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgRG9jdW1l
bnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAgZ3BvaW50ZXIgcmV0ID0gR0RPTVNjcmlw
dEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlKTsKKyAgICBpZiAo
cmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9k
ZSk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCF2
YWx1ZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVy
IGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh2YWx1ZSk7CisKKyAg
ICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7
CisKKyAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9N
Q1NTVmFsdWVMaXN0KHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSk7CisjaWYgRU5B
QkxFKFNWRykKKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1Bh
aW50KHN0YXRpY19jYXN0PFNWR1BhaW50Kj4odmFsdWUpKTsKKyAgICB9CisgICAgZWxzZSBpZiAo
dmFsdWUtPmlzU1ZHQ29sb3IoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RP
ICovCisgICAgICAgIC8vcmV0ID0gbmV3IEdET01TVkdDb2xvcihzdGF0aWNfY2FzdDxTVkdDb2xv
cio+KHZhbHVlKSk7CisgICAgfQorI2VuZGlmCisgICAgZWxzZSBpZiAodmFsdWUtPmlzUHJpbWl0
aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NQcmltaXRpdmVWYWx1ZShzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKSk7CisgICAgZWxzZQorICAgICAgICBy
ZXQgPSBuZXcgR0RPTUNTU1ZhbHVlKHZhbHVlKTsKKworICAgIHZhbHVlLT5yZWYoKTsKKyAgICBy
ZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QodmFsdWUsIHJldCk7Cit9
CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9k
ZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NTm9kZUZvckRvY3VtZW50KG5vZGUtPmRvY3VtZW50KCksIG5vZGUpKTsKKyAgICAKKyAg
ICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9jdW1lbnQoKTsKKyAgICBHRE9NTm9kZSAqcmV0ID0g
TlVMTDsKKyAgICAKKyAgICBwcmludGYoImNyZWF0ZVdyYXBwZXIgbm9kZVR5cGUgJWRcbiIsIG5v
ZGUtPm5vZGVUeXBlKCkpOworCisgICAgc3dpdGNoIChub2RlLT5ub2RlVHlwZSgpKSB7CisgICAg
ICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRN
TEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIo
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAg
ICAgICAgIGVsc2UgaWYgKG5vZGUtPmlzU1ZHRWxlbWVudCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBOVUxMOworI2lmIDAgLyogWFhYIFRPRE8gKi8KKyAgICAgICAgICAgICAgICByZXQgPSBj
cmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4obm9kZSkpOworI2Vu
ZGlmCisjZW5kaWYKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01BdHRyKHN0YXRpY19jYXN0PEF0dHIqPihub2RlKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTVRleHQoc3RhdGljX2Nhc3Q8VGV4dCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NQ0RBVEFTZWN0aW9uKHN0YXRpY19jYXN0PENEQVRBU2VjdGlvbio+KG5vZGUp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9OT0RFOgor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01FbnRpdHkoc3RhdGljX2Nhc3Q8RW50aXR5Kj4obm9k
ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19J
TlNUUlVDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24oc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4obm9kZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01Db21tZW50KHN0YXRpY19jYXN0PENvbW1lbnQqPihub2RlKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgor
ICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxm
IGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQorICAgICAgICAgICAgcmV0dXJuIHRvR0RP
TShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUpKTsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTURvY3VtZW50VHlwZShz
dGF0aWNfY2FzdDxEb2N1bWVudFR5cGUqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBOb2RlOjpOT1RBVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdE
T01Ob3RhdGlvbihzdGF0aWNfY2FzdDxOb3RhdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAg
ICAgICByZXQgPSBuZXcgR0RPTURvY3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRG
cmFnbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5
UmVmZXJlbmNlKHN0YXRpY19jYXN0PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01O
b2RlKG5vZGUpOworICAgIH0KKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KGRvYywgbm9kZSwgcmV0KTsKK30K
KyAKK2dwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKK3sKKyAgICBp
ZiAoIWNvbGxlY3Rpb24pCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisg
ICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNv
bGxlY3Rpb24pOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAg
R0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAoY29sbGVjdGlvbi0+dHlwZSgpKSB7CisgICAg
ICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OlNlbGVjdE9wdGlvbnM6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyNpZiAwCisgICAg
ICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OkRvY0FsbDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NSFRNTEFsbENvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTENvbGxlY3Rpb24qPihjb2xsZWN0
aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29s
bGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IGNvbGxlY3Rpb24tPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1
dERPTU9iamVjdChjb2xsZWN0aW9uLCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oRXZlbnQq
IGV2ZW50KQoreworICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1t
Li4uLiAqLworCisgICAgcHJpbnRmKCJ0b0dET00gRXZlbnQgdHlwZSAlc1xuIiwgZXZlbnQtPnR5
cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChldmVudCk7CisgICAgaWYgKGdvYmopCisg
ICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIGlmIChldmVu
dC0+aXNVSUV2ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkK
KyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NS2V5Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXli
b2FyZEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzVGV4dEV2ZW50
KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVRleHRFdmVudChzdGF0aWNfY2FzdDxUZXh0
RXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkp
CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU1vdXNlRXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VF
dmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1doZWVsRXZlbnQoKSkK
KyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NV2hlZWxFdmVudChzdGF0aWNfY2FzdDxXaGVlbEV2
ZW50Kj4oZXZlbnQpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICBlbHNlIGlmIChldmVudC0+
aXNTVkdab29tRXZlbnQoKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8q
IFRPRE8gKi8KKyAgICAgICAgICAgIC8vcmV0ID0gbmV3IEdET01TVkdab29tRXZlbnQoc3RhdGlj
X2Nhc3Q8U1ZHWm9vbUV2ZW50Kj4oZXZlbnQpLCAwKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NVUlFdmVudChzdGF0aWNfY2FzdDxV
SUV2ZW50Kj4oZXZlbnQpKTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50LT5pc011dGF0aW9uRXZlbnQo
KSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01NdXRhdGlvbkV2ZW50KHN0YXRpY19jYXN0PE11dGF0
aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5pc092ZXJmbG93RXZlbnQo
KSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01PdmVyZmxvd0V2ZW50KHN0YXRpY19jYXN0PE92ZXJm
bG93RXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5pc01lc3NhZ2VFdmVudCgp
KQorICAgICAgICByZXQgPSBuZXcgR0RPTU1lc3NhZ2VFdmVudChzdGF0aWNfY2FzdDxNZXNzYWdl
RXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5pc1Byb2dyZXNzRXZlbnQoKSkg
eworICAgICAgICBpZiAoZXZlbnQtPmlzWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KCkpCisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudChzdGF0
aWNfY2FzdDxYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQqPihldmVudCkpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8
UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CisgICAgfQorI2lmIEVOQUJMRShET01fU1RPUkFHRSkK
KyAgICBlbHNlIGlmIChldmVudC0+aXNTdG9yYWdlRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3
IEdET01TdG9yYWdlRXZlbnQoc3RhdGljX2Nhc3Q8U3RvcmFnZUV2ZW50Kj4oZXZlbnQpKTsKKyNl
bmRpZgorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1dlYktpdEFuaW1hdGlvbkV2ZW50KCkpCisgICAg
ICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8V2ViS2l0
QW5pbWF0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5pc1dlYktpdFRy
YW5zaXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTVdlYktpdFRyYW5zaXRpb25F
dmVudChzdGF0aWNfY2FzdDxXZWJLaXRUcmFuc2l0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVs
c2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01FdmVudChldmVudCk7CisKKyAgICBldmVudC0+cmVm
KCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGV2ZW50
LCByZXQpOworfQorCisvKiBUT0RPIFhYWCBobW1tLi4uIG5vdCBzbyBoYXBweSBhYm91dCB0aGlz
IC0gc2hvdWxkIGJlICJuZXdseSBjcmVhdGVkIiAqLworZ3BvaW50ZXIgdG9HRE9NKFRleHQqIHRl
eHQpCit7CisgICAgaWYgKCF0ZXh0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2lu
dGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudCh0
ZXh0LT5kb2N1bWVudCgpLCB0ZXh0KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdv
Ymo7CisKKyAgICBHRE9NTm9kZSAqcmV0ID0gbmV3IEdET01UZXh0KHRleHQpOworICAgIHRleHQt
PmRvY3VtZW50KCktPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1
dERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0LCByZXQpOworfQorCitn
cG9pbnRlciB0b0dET00oQ1NTUnVsZSogcnVsZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAg
IHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdE
T01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHJ1bGUpOworCisgICAgaWYgKGdvYmop
CisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRj
aCAocnVsZS0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAg
ICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5bGVSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxl
UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6
Ok1FRElBX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU01lZGlhUnVsZShzdGF0
aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NSdWxlOjpGT05UX0ZBQ0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NQ1NTRm9udEZhY2VSdWxlKHN0YXRpY19jYXN0PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAg
ICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUGFnZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1
bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpJ
TVBPUlRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTSW1wb3J0UnVsZShzdGF0
aWNfY2FzdDxDU1NJbXBvcnRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ1NTUnVsZTo6Q0hBUlNFVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdE
T01DU1NDaGFyc2V0UnVsZShzdGF0aWNfY2FzdDxDU1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENT
U1ZhcmlhYmxlc1J1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUnVsZShydWxlKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgIH0KKworICAgIHJ1bGUtPnJlZigpOworICAgIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6cHV0RE9NT2JqZWN0KHJ1bGUsIHJldCk7CisgICAgcmV0dXJuIHJldDsKK30KKwor
LyogVE9ETzogc2hvdWxkIGJlIHRvR0RPTU5ld2x5Q3JlYXRlZCAqLworZ3BvaW50ZXIgdG9HRE9N
KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm4g
TlVMTDsKKworICAgIC8vIHNob3VsZG4ndCBiZSBvbmU/IEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0
ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChlbGVtZW50LT5kb2N1bWVudCgpLCBlbGVtZW50KSk7
CisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZv
ckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpOworICAgIGlmIChnb2JqKQor
ICAgICAgICByZXR1cm4gZ29iajsgLy8gaHVoPyBlcnIuLi4KKworICAgIEdET01Ob2RlICpyZXQ7
CisgICAgRG9jdW1lbnQqIGRvYyA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisKKyAgICBpZiAoZWxl
bWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBw
ZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CisjaWYgRU5BQkxFKFNWRykK
KyAgICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBw
ZXIoc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICB9CisjZW5kaWYKKyAg
ICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRWxlbWVudChlbGVtZW50KTsKKworICAgIGRv
Yy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZv
ckRvY3VtZW50KGRvYywgZWxlbWVudCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKFN0eWxl
U2hlZXQqIHN0eWxlU2hlZXQpCit7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAgICAgICByZXR1
cm4gTlVMTDsgLyogZXJyLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdElu
dGVycHJldGVyOjpnZXRET01PYmplY3Qoc3R5bGVTaGVldCk7CisgICAgaWYgKGdvYmopCisgICAg
ICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIGlmIChzdHlsZVNo
ZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NTdHlsZVNo
ZWV0KHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KSk7CisgICAgZWxzZQor
ICAgICAgICByZXQgPSBuZXcgR0RPTVN0eWxlU2hlZXQoc3R5bGVTaGVldCk7CisKKyAgICBzdHls
ZVNoZWV0LT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01P
YmplY3Qoc3R5bGVTaGVldCwgcmV0KTsKK30KKworLyogZGVyaXZlZCBzb3VyY2VzIGF1dG8tZ2Vu
ZXJhdGVkICovCitncG9pbnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9iaik7CisK
K2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldCogdGFyZ2V0KQoreworICAgIGlmICghdGFyZ2V0
KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAKKyNpZiAwCisjaWYgRU5BQkxFKFNWRykKKyAg
ICAvLyBTVkdFbGVtZW50SW5zdGFuY2Ugc3VwcG9ydHMgYm90aCB0b1NWR0VsZW1lbnRJbnN0YW5j
ZSBhbmQgdG9Ob2RlIHNpbmNlIHNvIG11Y2ggbW91c2UgaGFuZGxpbmcgY29kZSBkZXBlbmRzIG9u
IHRvTm9kZSByZXR1cm5pbmcgYSB2YWxpZCBub2RlLgorICAgIFNWR0VsZW1lbnRJbnN0YW5jZSog
aW5zdGFuY2UgPSB0YXJnZXQtPnRvU1ZHRWxlbWVudEluc3RhbmNlKCk7CisgICAgaWYgKGluc3Rh
bmNlKQorICAgICAgICByZXR1cm4gdG9HRE9NKGV4ZWMsIGluc3RhbmNlKTsKKyNlbmRpZgorI2Vu
ZGlmCisKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0LT50b05vZGUoKTsKKyAgICBpZiAobm9kZSkK
KyAgICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsKKyAgICAKKyAgICBpZiAoWE1MSHR0cFJlcXVl
c3QqIHhociA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdCgpKQorICAgICAgICAvLyBYTUxIdHRw
UmVxdWVzdCBpcyBhbHdheXMgY3JlYXRlZCB2aWEgR0RPTSwgc28gd2UgZG9uJ3QgbmVlZCB0byB1
c2UgY2FjaGVET01PYmplY3QoKSBoZXJlLgorICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVy
cHJldGVyOjpnZXRET01PYmplY3QoeGhyKTsKKworICAgIGlmIChYTUxIdHRwUmVxdWVzdFVwbG9h
ZCogdXBsb2FkID0gdGFyZ2V0LT50b1hNTEh0dHBSZXF1ZXN0VXBsb2FkKCkpCisgICAgICAgIHJl
dHVybiB0b0dET00odXBsb2FkKTsKKyAgICAKKyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQorICAgIGlmIChET01BcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9E
T01BcHBsaWNhdGlvbkNhY2hlKCkpCisgICAgICAgIC8vIERPTUFwcGxpY2F0aW9uQ2FjaGUgaXMg
YWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIGNhY2hlRE9N
T2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0
RE9NT2JqZWN0KGNhY2hlKTsKKyNlbmRpZgorCisgICAgLy8gVGhlcmUgYXJlIHR3byBraW5kcyBv
ZiBFdmVudFRhcmdldHM6IEV2ZW50VGFyZ2V0Tm9kZSBhbmQgWE1MSHR0cFJlcXVlc3QuCisgICAg
Ly8gSWYgU1ZHIHN1cHBvcnQgaXMgZW5hYmxlZCwgdGhlcmUgaXMgYWxzbyBTVkdFbGVtZW50SW5z
dGFuY2UuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE5VTEw7Cit9ICAg
CisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIHRhcmdldCkKK3sKKyAgICBpZiAo
IXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgCisgICAgTm9kZSogbm9kZSA9IHRh
cmdldC0+dG9Ob2RlKCk7CisgICAgaWYgKG5vZGUpCisgICAgICAgIHJldHVybiB0b0dET00obm9k
ZSk7CisgICAgCisgICAgcmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxFdmVudFRhcmdldCo+KHRh
cmdldCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR2Rv
bURPTU9iamVjdF9IX18KKyNkZWZpbmUgX19HZG9tRE9NT2JqZWN0X0hfXworI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJ
Tl9ERUNMUworCit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdCBHZG9tRE9NT2JqZWN0Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RDbGFzcyBHZG9tRE9NT2JqZWN0Q2xhc3M7CisK
KyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9PQkpFQ1QgICAgICAgICAgICAoZ2RvbV9kb21fb2JqZWN0
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRE9NX09CSkVDVChvYmopICAgICAgICAgICAgKEdf
VFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2Rv
bURPTU9iamVjdCkpCisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgICAgKEdf
VFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2Rv
bURPTU9iamVjdENsYXNzKSkKKyNkZWZpbmUgR0RPTV9JU19ET01fT0JKRUNUKG9iaikgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNU
KSkKKyNkZWZpbmUgR0RPTV9JU19ET01fT0JKRUNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNL
X0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fT0JKRUNUKSkKKyNkZWZpbmUgR0RP
TV9ET01fT0JKRUNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorCit0eXBl
ZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdFByaXZhdGUgR2RvbURPTU9iamVjdFByaXZhdGU7CisK
K3N0cnVjdCBfR2RvbURPTU9iamVjdCB7CisgICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisK
KyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbURPTU9i
amVjdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lU
X0FQSSBHVHlwZQorZ2RvbV9kb21fb2JqZWN0X2dldF90eXBlICh2b2lkKTsKKworV0VCS0lUX0FQ
SSB2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5pdF9kb21fb2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0
aGl6KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8qIF9fR2RvbURPTU9iamVjdF9IX18gKi8K
KwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01PYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NCBAQAorI2lmbmRlZiBfX0RPTU9iamVjdF9oX18KKyNkZWZpbmUgX19ET01PYmplY3RfaF9fCisK
Ky8vIG5hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0RPTU9iamVjdCB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+R0RPTU9iamVjdCgpIHt9CisgICAgdmlydHVhbCBpbnQgZ2V0X2dvYmpfdHlw
ZSgpID0gMDsKK307CisKKy8vIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRN
TEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACisv
KgorICogVEhJUyBGSUxFIElTIERFUklWRUQgRlJPTSBBTiBBVVRPTUFUSUNBTExZIEdFTkVSQVRF
RCBGSUxFLgorICoga2VlcGluZyBpdCB1cC10by1kYXRlIGNvdWxkIHBvdGVudGlhbGx5IGJlIGRv
bmUgYnkgYWRkaW5nCisgKiBhIG1ha2VfbmFtZXMucGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5n
IGEgc2VwYXJhdGUKKyAqIGdlbmVyYXRlciB3aGljaCB0YWtlcyBKU0hUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnkuaCBhcyBpbnB1dC4KKyAqCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisKKyNpZm5kZWYg
R0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAorI2RlZmluZSBHRE9NSFRNTEVsZW1lbnRX
cmFwcGVyRmFjdG9yeV9oCisKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU5vZGUuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNz
IEhUTUxFbGVtZW50OworCisgICAgR0RPTU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK30KKyAKKyNlbmRpZiAvLyBHRE9NSFRNTEVsZW1lbnRX
cmFwcGVyRmFjdG9yeV9oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDkxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhh
cnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBD
b3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIEdkb21ET01CaW5k
aW5nX2gKKyNkZWZpbmUgR2RvbURPTUJpbmRpbmdfaAorCisjaW5jbHVkZSA8a2pzL2ludGVycHJl
dGVyLmg+CisjaW5jbHVkZSA8a2pzL2xvb2t1cC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorCisjaW5jbHVkZSAiR2RvbU5vZGUuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ICAgIGNsYXNzIEF0b21pY1N0cmluZzsKKyAgICBjbGFzcyBEb2N1bWVudDsKKyAgICBjbGFzcyBF
dmVudDsKKyAgICBjbGFzcyBGcmFtZTsKKyAgICBjbGFzcyBLVVJMOworICAgIGNsYXNzIE5vZGU7
CisgICAgY2xhc3MgU3RyaW5nOworCisjaWYgRU5BQkxFKFNWRykKKyAgICBjbGFzcyBTVkdFbGVt
ZW50OworI2VuZGlmCisKKyAgICBjbGFzcyBHRE9NU2NyaXB0SW50ZXJwcmV0ZXIgeworICAgIHB1
YmxpYzoKKyAgICAgICAgc3RhdGljIHZvaWQqIGdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5k
bGUpOworICAgICAgICBzdGF0aWMgdm9pZCogcHV0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRs
ZSwgR0RPTU9iamVjdCopOworICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRET01PYmplY3Qodm9p
ZCogb2JqZWN0SGFuZGxlKTsKKworICAgICAgICBzdGF0aWMgdm9pZCogZ2V0RE9NTm9kZUZvckRv
Y3VtZW50KERvY3VtZW50KiwgTm9kZSopOworICAgICAgICBzdGF0aWMgdm9pZCogcHV0RE9NTm9k
ZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSosIEdET01Ob2RlKiBub2RlV3JhcHBlcik7Cisg
ICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5v
ZGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudChE
b2N1bWVudCopOworCQkjaWYgMAorICAgICAgICBzdGF0aWMgdm9pZCB1cGRhdGVET01Ob2RlRG9j
dW1lbnQoTm9kZSosIERvY3VtZW50KiBvbGREb2MsIERvY3VtZW50KiBuZXdEb2MpOworICAgICAg
ICBzdGF0aWMgdm9pZCBtYXJrRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOworCQkjZW5k
aWYKKyAgICB9OworCisgICAgLy8gUmV0cmlldmUgZnJvbSBjYWNoZSwgb3IgY3JlYXRlLCBhIEdk
b20gd3JhcHBlciBmb3IgYSBET00gb2JqZWN0LgorICAgIHRlbXBsYXRlPGNsYXNzIERPTU9iaiwg
Y2xhc3MgR2RvbURPTU9iaj4gaW5saW5lIHZvaWQqIGNhY2hlRE9NT2JqZWN0KERPTU9iaiogZG9t
T2JqKQorICAgIHsKKyAgICAgICAgaWYgKCFkb21PYmopCisgICAgICAgICAgICByZXR1cm4gTlVM
TDsgLyogWFhYIGhtbW0uLi4gKi8KKyAgICAgICAgaWYgKHZvaWQqIHJldCA9IEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvbU9iaikpCisgICAgICAgICAgICByZXR1cm4gcmV0
OworICAgICAgICBHRE9NT2JqZWN0KiByZXQgPSBuZXcgR2RvbURPTU9iaihkb21PYmopOworCQlk
b21PYmotPnJlZigpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRE
T01PYmplY3QoZG9tT2JqLCByZXQpOworICAgIH0KKworI2lmIEVOQUJMRShTVkcpCisgICAgLy8g
UmV0cmlldmUgZnJvbSBjYWNoZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYW4gU1ZH
IERPTSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2Jq
PiBpbmxpbmUgdm9pZCogY2FjaGVTVkdET01PYmplY3QoRE9NT2JqKiBkb21PYmosIFNWR0VsZW1l
bnQqIGNvbnRleHQpCisgICAgeworICAgICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJl
dHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RP
TVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJl
dHVybiByZXQ7CisgICAgICAgIEdET01PYmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9i
aiwgY29udGV4dCk7CisJCWRvbU9iai0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChkb21PYmosIHJldCk7CisgICAgfQorI2VuZGlmCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdkb21ET01CaW5kaW5nX2gKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbURPTU9iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbURPTU9iamVjdC5o
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9N
T2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTY2MSBAQAorIworIyBDb3B5
cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5l
dD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisjCisj
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorIyBCb3N0
b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFja2FnZSBDb2RlR2VuZXJhdG9yR09iamVjdDsK
KworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVzCitteSAkbGljZW5jZVRlbXBsYXRlID0gPDwg
IkVPRiI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xcQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8
YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLwor
RU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215ICVoZHJJbmNsdWRlcyA9ICgpOworbXkg
JWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkgJWltcGxUeXBlZGVmcyA9ICgpOworCisjIERlZmF1
bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAg
bXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJhdG9yID0gc2hpZnQ7CisgICAg
JG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7Cisg
ICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBmaW5pc2gKK3sKKyAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0cnVjdAorc3ViIEdlbmVyYXRl
SW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9
IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAgICBteSAkbmFtZSA9ICRkYXRh
Tm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxuIjsKKworICAgICRvYmplY3QtPkdlbmVy
YXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdyaXRlIGNoYW5nZXMKKyAgICBteSAkZm5hbWUgPSAi
R2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXplKCRuYW1lKTsKKyAgICAkZm5hbWUgPX4gcy9fLy9n
OworICAgICRvYmplY3QtPldyaXRlRGF0YSgkZm5hbWUpOworfQorCisjIFBhcmFtczogJ2lkbERv
Y3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVsZQoreworICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICRtb2R1bGUgPSAkZGF0YU5v
ZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5cGUKK3sKKyAgICBteSAkY2xhc3NOYW1l
ID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxpemUoJGNsYXNzTmFtZSkpCit9CisKK3N1
YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAg
ICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2Fj
eVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURPTU9iamVjdCIgaWYgQHskZGF0YU5vZGUtPnBh
cmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9tIiAuICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1v
ZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOworfQorc3ViIEdldFBhcmVudEdPYmpUeXBlCit7
CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVy
biAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4g
IkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAg
ICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2JqVHlwZSgkY29kZUdlbmVyYXRvci0+U3Ry
aXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Cit9CisKKworIyBBbGdvcml0aG0gdGFr
ZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgY2FtZWxpemUKK3sKKyAgICBteSAk
cyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsgdWNmaXJzdCAkXyB9IHNwbGl0KC8oPzw9W0Et
WmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7Cit9CisKKyMgQWxnb3JpdGhtIHRha2VuIGZy
b20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGRlY2FtZWxpemUKK3sKKyAgICBteSAkcyA9
IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8pKFtBLVpdKikoW0EtWl0pKFthLXpdPyl9
eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAgICAgICBteSAoJHAwLCRwMSwkcDIs
JHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBteSAkdCA9ICRwMCB8fCAkZmMgPyAk
cDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/ICIke3AxfV8kcDIkcDMiIDogIiRw
MiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAgfWdlOworICAgICRzOworfQorCitz
dWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJp
cE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRD
bGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1
bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitzdWIgR2V0R0luY2x1
ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldEhk
ck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUo
JHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImludCI7CisgICAgICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlw
ZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImNoYXIiOworICAg
ICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICIiIGlm
ICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAg
ICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgICAgIHJldHVybiAi
IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5
cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRXZl
bnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVybiAiUmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBh
cmVIb3ciOworICAgICAgICByZXR1cm4gIkdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIg
aWYgJHR5cGUgZXEgIkRPTU9iamVjdCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgY2hhciI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3Ii
OyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKyAgICAgICAgcmV0dXJuICJnbGliLW9i
amVjdC5oIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJHZG9tRXZl
bnRUYXJnZXROb2RlLmgiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisKKyAgICAgICAgcmV0
dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiZmxvYXQiOworCisgICAgICAgIHJldHVy
biAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworCisgICAgICAgIHJldHVy
biAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuICIkbmFt
ZS5oIjsKK30KKworIyByZXR1cm5zIDEgaWYgd2UgbmVlZCB0byBjcmVhdGUgYSBnb2JqZWN0IHdy
YXBwZXIgYXJvdW5kIHRoZSByZXR1cm4gcmVzdWx0CitzdWIgSXNHRE9NQ2xhc3NUeXBlCit7Cisg
ICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5
cGUpOworCisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
ZmxvYXQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgICAgICByZXR1cm4gMCBpZiAkdHlw
ZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIGxvbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQi
OworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0g
RE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidm9pZCI7
CisKKyAgICByZXR1cm4gMTsKK30KKworc3ViIEdldFByb3BHVHlwZQoreworICAgIG15ICR0eXBl
ID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0
dXJuICJzdHJpbmciIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgIHJldHVybiAiZmxvYXQi
IGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0dXJuICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0
eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gImRvdWJsZSIgaWYgJHR5cGUgZXEgImRv
dWJsZSI7CisgICAgcmV0dXJuICJib29sZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAg
cmV0dXJuICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgcmV0dXJuICJsb25nIiBpZiAk
dHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJzaG9ydCI7Cisg
ICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICByZXR1cm4gInVpbnQi
IGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJp
bnQiOworICAgIHJldHVybiAidWludCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAg
cmV0dXJuICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJl
dHVybiAidWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICByZXR1cm4gInVz
aG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICByZXR1cm4gInVsb25nIiBp
ZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKwor
ICAgIHJldHVybiAib2JqZWN0IjsKK30KKworc3ViIEdldEdUeXBlCit7CisgICAgbXkgJHR5cGUg
PSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworICAgICAg
ICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICBy
ZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUgKiIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsK
KyAgICAgICAgcmV0dXJuICJjb25zdCBnY2hhciAqIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsK
KyAgICAgICAgcmV0dXJuICJnZmxvYXQgIiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICBy
ZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJlSG93ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVI
b3ciOworICAgICAgICByZXR1cm4gImdkb3VibGUgIiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAg
ICAgICAgcmV0dXJuICJnYm9vbGVhbiAiIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICAgICAg
cmV0dXJuICJnY2hhciAiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuICJnbG9u
ZyAiIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuICJnc2hvcnQgIiBpZiAkdHlw
ZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gImd1Y2hhciAiIGlmICR0eXBlIGVxICJ1Y2hh
ciI7CisgICAgICAgIHJldHVybiAiZ3VpbnQgIiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAg
ICAgICByZXR1cm4gImdpbnQgIiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuICJn
dWludCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gImd1bG9u
ZyAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuICJndWludDY0
ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgICAgIHJldHVybiAiZ3Vz
aG9ydCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiZ3Vs
b25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBw
ZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJl
dHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNo
aWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBHZXRHSW5jbHVkZUhkcigkdHlwZSk7CisgICAg
aWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7
CisgICAgICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCI7CisgICAgICAgIH0K
KyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAjIFhY
WCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgcmV0
dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRyOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIp
IHsKKyAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIGlmIChJc0dE
T01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJQcml2
YXRlIi4kaGRyfSA9IDE7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJQcml2YXRlSW50
Ii4kaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9CisKK30KKworc3ViIGFkZEluY0hkcgorewor
ICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsK
KyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaGRySW5jbHVkZXN7JGhkcn0gPSAxOwor
ICAgIH0KKworfQorCitzdWIgYWRkSW5jQm9keQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisK
KyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgewor
ICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICB9Cit9CisKK3N1YiBHZXRQcml2
Rm4KK3sKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OworICAgIG15ICRsY2FzZV9pZmFj
ZW5hbWUgPSBzaGlmdDsKKyAgICBteSAkcmVzID0gc2hpZnQ7CisgICAgbXkgJHBhcm0gPSBzaGlm
dDsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAg
IHJldHVybiAiV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogJHJlcyA9IHN0YXRpY19jYXN0PFdl
YkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZh
dGUoc2VsZikpOyI7CisgICAgfQorICAgIHJldHVybiAiV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1l
fSAqICRyZXMgPSAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCRwYXJtKSk7IjsKK30K
Kworc3ViIHNraXBQcm9wVGVtcG9yYXJpbHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAg
IG15ICRwcm9wX3R5cGUgPSBzaGlmdDsKKworICAgICMgc2tpcCBNZWRpYUxpc3QKKyAgICBpZiAo
JHByb3BfdHlwZSBlcSAic3R5bGVzaGVldHM6Ok1lZGlhTGlzdCIpIHsKKyAgICAgICAgcmV0dXJu
IDE7CisgICAgfQorCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAg
ICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgQ1NTVmFyaWFibGVzRGVjbGFy
YXRpb24KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24iKSB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIp
IHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkNTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBF
dmVudExpc3RlbmVyCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJFdmVudExpc3RlbmVyIikgewor
ICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBET01XaW5kb3cKKyAgICAj
aWYgKCRwcm9wX3R5cGUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAg
ICN9CisKKyAgICAjIHNraXAgQ29uc3RydWN0b3JzICh3aGF0ZXZlciB0aGV5IGFyZSkgZm9yIG5v
dy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29uc3RydWN0b3IkLykgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICAjIGNhbnZhczJkLi4uLgorICAgIGlmICgkcHJvcF90eXBlIGVx
ICJjdXN0b20iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmICgkcHJvcF90
eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYgKCRw
cm9wX3R5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgIyBUT0RPOiBTVkcKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUG9kVHlwZSgkdHlw
ZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKSkgeworICAgICAg
ICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBVc2VzTWFudWFsVG9K
U0ltcGxlbWVudGF0aW9uCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgICMgc2tpcHBl
ZCBvdXQgQ2FudmFzUGl4ZWxBcnJheSAtIHNlZSBKU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3Bw
IGZvciB3aHkuCisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIk5vZGUiIG9yICR0eXBlIGVxICJE
b2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAkdHlwZSBlcSAiU1ZHUGF0
aFNlZyIgb3IgJHR5cGUgZXEgIlN0eWxlU2hlZXQiIG9yICR0eXBlIGVxICJDU1NSdWxlIiBvciAk
dHlwZSBlcSAiQ1NTVmFsdWUiIG9yICR0eXBlIGVxICJFdmVudCIgb3IgJHR5cGUgZXEgIkVsZW1l
bnQiIG9yICR0eXBlIGVxICJUZXh0IjsKKyAgICByZXR1cm4gMDsKK30KKworCisjIEdlbmVyYXRl
IGhlYWRlciBhbmQgaW1wbAorc3ViIEdlbmVyYXRlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0
OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgbXkgJGhhc0xlZ2FjeVBhcmVudCA9
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIG15
ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMDsKKyAgICBteSAkaGFz
UGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVudDsKKyAgICBteSAkcGFy
ZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRkYXRhTm9kZSk7CisgICAgbXkgJHBh
cmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUoJGRhdGFOb2RlKTsKKyAgICBteSAkaW50
ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkY2xhc3NOYW1lID0gR2V0Q2xh
c3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkaGRyTmFtZSA9IEdldEhkck5hbWUoJGlu
dGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1wbCBoZWFkZXIgdGVtcGxh
dGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgIHB1
c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNsdWRlc3siR0RPTUJpbmRpbmcuaCJ9
ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIkaGRyTmFtZS5oIn0gPSAxOworICAgICRpbXBsSW5j
bHVkZXN7IlByaXZhdGUke2hkck5hbWV9LmgifSA9IDE7CisKKyAgICBteSAkcGFyZW50SW50ZXJm
YWNlTmFtZSA9ICJET01PYmplY3QiOworICAgIG15ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01P
YmplY3QiOworICAgIG15ICRwYXJlbnRIZHJOYW1lID0gIkdkb21ET01PYmplY3QiOworICAgIGlm
ICgkcGFyZW50Q2xhc3NOYW1lIG5lICJHT2JqZWN0IikKKyAgICB7CisgICAgICAgICRwYXJlbnRJ
bnRlcmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOworICAgICAgICBpZiAo
JHBhcmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICRwYXJl
bnRHSWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAg
ICAgICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7
CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAkcGFyZW50
R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1
ZGVzeyIke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IlBy
aXZhdGUke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICRoZHJJbmNsdWRlc3siJHtw
YXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1ZGVzeyJQcml2YXRlJHtw
YXJlbnRIZHJOYW1lfS5oIn0gPSAwOworICAgIH0KKworICAgICMgVE9ETyAtIG1ha2UgdGhlc2Ug
b25seSBpbmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAgIyBmdW5jdGlvbiBk
ZWNsYXJhdGlvbnMgdG9HRE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siRWxlbWVudC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7
IkNTU1ZhbHVlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVsZS5oIn0gPSAxOwor
ICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7CisgICAgIyRpbXBsSW5j
bHVkZXN7IlNWR1BhdGhTZWcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJTdHlsZVNoZWV0
LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0gMTsKKyAgICAkaW1wbElu
Y2x1ZGVzeyJDYW52YXNQaXhlbEFycmF5LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRE9N
V2luZG93LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siVGV4dC5oIn0gPSAxOworCisgICAg
IyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVhZGVyIGZpbGUuICBvciBm
aW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAkaGFja0RlY2xzID0gPDwgIkVPRiI7CituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpOworICAgIGdwb2lu
dGVyIHRvR0RPTShDU1NWYWx1ZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKENTU1J1bGUq
IG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShFbGVtZW50KiBub2RlKTsKKyAgICBncG9pbnRl
ciB0b0dET00oRG9jdW1lbnQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVj
dGlvbiogbm9kZSk7IAorICAgIC8vZ3BvaW50ZXIgdG9HRE9NKFNWR1BhdGhTZWcqIG5vZGUpOyAK
KyAgICBncG9pbnRlciB0b0dET00oU3R5bGVTaGVldCogbm9kZSk7IAorICAgIGdwb2ludGVyIHRv
R0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRU
YXJnZXQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnQqIG5vZGUpOyAKKyAgICBn
cG9pbnRlciB0b0dET00oQ2FudmFzUGl4ZWxBcnJheSogbm9kZSk7IAorICAgIGdwb2ludGVyIHRv
R0RPTShET01XaW5kb3cqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oVGV4dCogbm9kZSk7
IAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitFT0YKKworICAgIHB1c2goQGNCb2R5LCAkaGFj
a0RlY2xzKTsKKworICAgICMgWFhYIFRPRE86IG1ha2UgdGhpcyBvcHRpb25hbCBvciBpbiBhIGhl
YWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3YXkuCisgICAgbXkgJHN0cmluZ0NvbnZlcnQg
PSA8PCAiRU9GIjsKK2NsYXNzIEdTdHJpbmdDb252ZXJ0IHsKKyAgICBwdWJsaWM6CisgICAgY29u
c3QgZ2NoYXIgKm1fc3RyOworICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25z
dCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMudXRmOCgpLmRhdGEoKSk7IH0KKyAgICBHU3RyaW5n
Q29udmVydChXZWJDb3JlOjpLVVJMIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KGNvbnN0IEtKUzo6VVN0
cmluZyAmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLlVURjhTdHJpbmcoKS5jX3N0cigpKTsgfQor
ICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IG1fc3Ry
ID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorfTsKKworRU9GCisKKyAg
ICBwdXNoKEBjQm9keSwgJHN0cmluZ0NvbnZlcnQpOworCisgICAgcHVzaChAY0JvZHksICJuYW1l
c3BhY2UgV2ViQ29yZSB7XG4iKTsKKworICAgICMgR2V0IGNvcnJlY3QgcGFzcy9zdG9yZSB0eXBl
cyByZXNwZWN0aW5nIFBPRFR5cGUgZmxhZworICAgIG15ICRwb2RUeXBlID0gJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9OworICAgIG15ICRwYXNzVHlwZSA9ICRwb2RU
eXBlID8gIkpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiIgOiAiJGludGVyZmFjZU5hbWUq
IjsKKworICAgIGlmICgke2ludGVyZmFjZU5hbWV9IGVxICJET01XaW5kb3ciIHx8ICghJGhhc1Bh
cmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkg
YW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VOYW1lKSkgeworICAg
ICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICJLSlM6OkpT
VmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMsIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBv
ZFR5cGU+KiBvYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAgICAgI30gZWxzaWYg
KElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAg
ICAgICAjICAgICBwdXNoKEBjQm9keSwgIktKUzo6SlNWYWx1ZSogdG9KUyhLSlM6OkV4ZWNTdGF0
ZSogZXhlYywgJHBhc3NUeXBlIG9iaiwgU1ZHRWxlbWVudCogY29udGV4dClcbiIpOworICAgICAg
ICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiZ3BvaW50ZXIgdG9HRE9NKFdl
YkNvcmU6OiRwYXNzVHlwZSBvYmopXG4iKTsKKyAgICAgICAgI30KKworICAgICAgICBwdXNoKEBj
Qm9keSwgIntcbiIpOworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVz
aChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2JqZWN0PEpTU1ZHUE9EVHlwZVdyYXBw
ZXI8JHBvZFR5cGU+LCAkY2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGV4ZWMsIG9i
aiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250
ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgIHB1c2goQGNCb2R5
LCAiICAgIHJldHVybiBjYWNoZVNWR0RPTU9iamVjdDwkaW1wbENsYXNzTmFtZSwgJGNsYXNzTmFt
ZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQpO1xuIik7CisgICAg
ICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIFdlYkNv
cmU6OmNhY2hlRE9NT2JqZWN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lLCBHRE9NJGludGVyZmFj
ZU5hbWU+KG9iaik7XG4iKTsKKyAgICAgICAgI30KKyAgICAgICAgcHVzaChAY0JvZHksICJ9XG4i
KTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogbmFtZXNwYWNlIFdlYkNvcmUgKi8g
XG4iKTsKKyAgICBteSAkaW1wbENvbnRlbnQgPSAiIjsKKworICAgICMgWFhYIFRPRE8gcHVzaChA
Y0JvZHksICJ1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTtcblxuIik7CisgICAgcHVzaChAY0JvZHks
ICJleHRlcm4gXCJDXCIge1xuXG4iKTsKKyAgICBwdXNoKEBjQm9keSwgIiNkZWZpbmUgX0dfR0VU
X1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cilcbiIpOworCisgICAgIyBBZGQg
dGhlIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCisgICAgQGhQcmVmaXggPSBzcGxpdCgiXHIiLCAk
bGljZW5jZVRlbXBsYXRlKTsKKyAgICAgICAgI3B1c2goQGhQcmVmaXgsICJcbiIpOworCisgICAg
IyBIZWFkZXIgZ3VhcmQKKyAgICAgICAgbXkgJGd1YXJkID0gIl9fIiAuICRjbGFzc05hbWUgLiAi
X0hfXyI7CisKKyAgICBteSAkY2xzQ2FwcyA9IHN1YnN0cihDbHNUb0dPYmpUeXBlKCRjbGFzc05h
bWUpLCA1KTsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gImdkb21fIiAuIGRlY2FtZWxpemUo
JGludGVyZmFjZU5hbWUpOworICAgICNteSAkcGFyZW50Q2xzQ2FwcyA9ICJHRE9NXyIgLiBDbHNU
b0dPYmpUeXBlKCRwYXJlbnRJbnRlcmZhY2VOYW1lKTsKKworICAgIEBoUHJlZml4R3VhcmQgPSA8
PCAiRU9GIjsKKyNpZm5kZWYgJGd1YXJkCisjZGVmaW5lICRndWFyZAorRU9GCisKKyAgICAkaW1w
bENvbnRlbnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5fREVDTFMKKworRU9GCisKKyAgICBwdXNoKEBo
Qm9keVByZSwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOwor
CisjZGVmaW5lIEdET01fVFlQRV8ke2Nsc0NhcHN9ICAgICAgICAgICAgKCR7bGNhc2VfaWZhY2Vu
YW1lfV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc30ob2JqKSAgICAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30s
ICR7Y2xhc3NOYW1lfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9DTEFTUyhrbGFzcykgICAg
KEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfJHtjbHNDYXBzfSwg
JGNsYXNzTmFtZSlDbGFzcykKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9KG9iaikgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9
KSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNL
X0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RP
TV8ke2Nsc0NhcHN9X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1DbGFzcykpCisKK3R5cGVk
ZWYgc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlICR7Y2xhc3NOYW1lfVByaXZhdGU7CisKK3N0
cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICAke3BhcmVudENsYXNzTmFtZX0gcGFyZW50X2luc3Rh
bmNlOworCisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfJHtj
bGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitX
RUJLSVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOworCitF
T0YKKworICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50
ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7Z3VhcmR9X1BS
T1BfCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxDb250ZW50KTsKKworICAg
IHB1c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgJGhkclByb3BJbmNs
dWRleyJnbGliLW9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiUHJpdmF0ZUlu
dCR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7IkdET01PYmpl
Y3QuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0g
MTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2lmbmRlZiAke2d1YXJkfV9JTlRf
CisjZGVmaW5lICR7Z3VhcmR9X0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5o
IgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBlcSAi
RE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbigk
aW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKCR7aW50ZXJmYWNlTmFtZX0qIG5v
ZGUpOworfSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAqLyAKK0VPRgorICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICRpbXBsQ29udGVudCk7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJH
X0JFR0lOX0RFQ0xTXG4iKTsKKworICAgICNDbGFzcyBkZWNsYXJhdGlvbgorICAgICNpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJu
YWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUge1xuIik7CisgICAgI30gZWxzZSB7CisgICAg
ICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUgOiBwdWJs
aWMgJHBhcmVudEdJZmFjZU5hbWUge1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICIgICAgdHlwZWRlZiAkcGFyZW50R0lmYWNlTmFtZSBCYXNlO1xuIik7CisgICAgI30KKyAgICBw
dXNoKEBoQm9keUludGVybmFsLCAicHVibGljOlxuIik7CisKKyAgICBwdXNoKEBoQm9keUludGVy
bmFsLCAiICAgIGludCBnZXRfZ29ial90eXBlKCkgeyByZXR1cm4gR0RPTV9UWVBFXyR7Y2xzQ2Fw
c307IH1cbiIpOworCisgICAgbXkgJG5lZWRzU1ZHQ29udGV4dCA9IDA7CisgICAgIyBDb25zdHJ1
Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgR0RPTSRpbnRlcmZhY2VOYW1lKFBh
c3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRl
eHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6ICIiKSAuICIpO1xuIik7CisKKyAgICAjIERl
c3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHZpcnR1YWwgfkdET00kaW50
ZXJmYWNlTmFtZSgpO1xuIikgaWYgKCEkaGFzUGFyZW50IG9yICRpbnRlcmZhY2VOYW1lIGVxICJE
b2N1bWVudCIpIG9yICRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciOworCisgICAgaWYgKCEk
aGFzUGFyZW50IHx8ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAg
I2lmICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2lt
cGwuZ2V0KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
U1ZHRWxlbWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxu
XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOwor
ICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+
IG1fY29udGV4dDtcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
UmVmUHRyPEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+ID4gbV9pbXBsO1xuIik7CisgICAg
ICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNz
TmFtZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgICRpbXBsQ2xh
c3NOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAg
ICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAg
ICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+
IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5
SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdCB7IHJl
dHVybiBtX2ltcGwuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVy
bmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAg
ICBSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+IG1faW1wbDtcbiIpOworICAgICAgICAj
fQorICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRl
TmF0aXZlQ29udmVydGVyIn0pIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBX
ZWJDb3JlOjokaW50ZXJmYWNlTmFtZSogaW1wbCgpIGNvbnN0XG4iKTsKKyAgICAgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgIiAgICB7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwg
IiAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKj4oQmFz
ZTo6aW1wbCgpKTtcbiIpOworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIH1cbiIp
OworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAifTtcbiIpOworCisgICAgIyBDb25z
dHJ1Y3RvcgorICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06OkdET00kaW50
ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgk
bmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKVxuIik7
CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgIDptX2ltcGwoaW1wbClcbiIpOworICAgIH0gZWxzaWYgKCRoYXNQYXJlbnQp
IHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZShpbXBsIiAu
ICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIikgaWYg
KCRpbnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ciKTsKKyAgICB9IGVsc2UgeworICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRHSWZhY2VOYW1lKClcbiIpIDsKKyAgICAgICAgcHVz
aChAY0JvZHksICIgICAgLCBtX2NvbnRleHQoY29udGV4dClcbiIpIGlmICRuZWVkc1NWR0NvbnRl
eHQ7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsKKyAgICB9
CisKKyAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsK
KworICAgICMgRGVzdHJ1Y3RvcgorICAgIGlmICghJGhhc1BhcmVudCBvciAoJGludGVyZmFjZU5h
bWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJm
YWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5
LCAie1xuIik7CisKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgbV9pbXBsLmdldCgpLT5kZXJl
ZigpO1xuIik7CisgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZSIpIHsKKyAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6
Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG1faW1wbC0+ZG9jdW1lbnQoKSwgbV9pbXBsLmdldCgp
KTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgI2lmICgkcG9kVHlwZSkgewor
ICAgICAgICAgICAgIyAgICBteSAkYW5pbWF0ZWRUeXBlID0gJGltcGxDbGFzc05hbWU7CisgICAg
ICAgICAgICAjICAgICRhbmltYXRlZFR5cGUgPX4gcy9TVkcvU1ZHQW5pbWF0ZWQvOworCisgICAg
ICAgICAgICAjICAgICMgU3BlY2lhbCBjYXNlIGZvciBKU1NWR051bWJlcgorICAgICAgICAgICAg
IyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRhbmltYXRlZFR5cGUp
IGFuZCAkcG9kVHlwZSBuZSAiZmxvYXQiKSB7CisgICAgICAgICAgICAjICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBKU1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRwb2RUeXBlLCAkYW5p
bWF0ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlcihtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgICAg
ICAjICAgIH0KKyAgICAgICAgICAgICN9CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBX
ZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChtX2ltcGwuZ2V0
KCkpO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEBjQm9keSwgIlxufVxuXG4iKTsK
KyAgICB9CisKKyAgICAjIERvY3VtZW50IG5lZWRzIGEgc3BlY2lhbCBkZXN0cnVjdG9yIGJlY2F1
c2UgaXQncyBhIHNwZWNpYWwgY2FzZSBmb3IgY2FjaGluZy4gSXQgbmVlZHMKKyAgICAjIGl0cyBv
d24gc3BlY2lhbCBoYW5kbGluZyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBjYWNoaW5nIHRo
YXQgTm9kZSBub3JtYWxseSBkb2VzLgorICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1l
bnQiKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5HRE9N
JGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuICAgIFdlYkNv
cmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHN0YXRpY19jYXN0PFdl
YkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihpbXBsKCkpKTtcbn1cblxuIik7CisgICAgfQorCisg
ICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRpbXBsSW5j
bHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJHRE9N
T2JqZWN0LmgifSA9IDE7CisKKyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NOYW1lIn0gPSAxOwor
ICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOworCisgICAgJGltcGxD
b250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1v
YmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVk
ZSAiTm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVk
ZSAiTmFtZWROb2RlTWFwLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8K
KyNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0
aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFr
ZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIgLyogeXVrazogVE9E
TyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAi
UHJpdmF0ZUdkb21ET01PYmplY3QuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25h
bCAqLworI2luY2x1ZGUgIkdkb21FdmVudFRhcmdldE5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1h
a2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2Rl
LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgb24gRXZlbnRUYXJnZXQqLwor
I2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5hbWV9LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZSR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50JHtoZHJO
YW1lfS5oIgorI2luY2x1ZGUgIiR7aGRyTmFtZX1wcm9wcy5oIgorI2luY2x1ZGUgIkNTdHJpbmcu
aCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5o
IgorI2luY2x1ZGUgInVzdHJpbmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisKKyNpbmNsdWRlICJD
YW52YXNQaXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAi
SFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50
LmgiCisKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAg
ICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworJHtoYWNrRGVjbHN9CisKK0dfQkVHSU5fREVD
TFMKKworJHtzdHJpbmdDb252ZXJ0fQorCitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHts
Y2FzZV9pZmFjZW5hbWV9LCAke3BhcmVudEdPYmpUeXBlfSk7CisKKyNkZWZpbmUgX0dfR0VUX1VU
Rjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cikKKworLyoKK3N0cnVjdCBfJHtjbGFz
c05hbWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqaXRl
bTsKK307ICAKKworI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUob2JqKSAoR19U
WVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtj
bGFzc05hbWV9UHJpdmF0ZSkpCisqLworR19FTkRfREVDTFMKK1dlYkNvcmU6OiR7aW50ZXJmYWNl
TmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVx
dWVzdCkKK3sKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisg
ICAgaWYgKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgJGltcGxD
b250ZW50ID0gPDwgIkVPRiI7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLwor
RU9GCisgICAgfSBlbHNlIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisgICAg
R0RPTSR7aW50ZXJmYWNlTmFtZX0gKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NJHtp
bnRlcmZhY2VOYW1lfSo+KGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpF
Q1QocmVxdWVzdCkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZh
Y2VOYW1lfSo+KHJlcy0+aW1wbCgpKTsKK0VPRgorICAgIH0KKyAgICBwdXNoKEBjQm9keVByaXYs
ICRpbXBsQ29udGVudCk7CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1l
UHJlZml4ID0gJGxjYXNlX2lmYWNlbmFtZTsgCisgICAgU0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0
dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wTmFt
ZSA9IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgbXkg
JHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5
cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRj
bGFzc05hbWUgKnRoaXoiOworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7
CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBp
ZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisKKyAgICAgICAgaWYgKHNraXBQcm9w
VGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQ
Uk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgYWRkUHJvcEluY0hkcigkcHJv
cF90eXBlKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSAkdHlwZVxu
JGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3BfZ2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rp
b25TaWcpO1xuXG4iKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSB2
b2lkXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJvcF9zZXRfIiAuICIkcHJvcE5hbWUgKCRm
dW5jdGlvblNpZywgJHR5cGUiIC4gInZhbHVlKTtcblxuIik7CisgICAgfQorCisgICAgIyBQcm9w
ZXJ0aWVzCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Cit9CisKK0dfQkVHSU5fREVDTFMK
KworZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKworc3Rh
dGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCitlbnVtIHsK
KyAgICBQUk9QXzAsCitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisK
KyAgICBteSBAdHh0X2luc3RhbGxfcHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X3NldF9wcm9wcyA9
ICgpOworICAgIG15IEB0eHRfZ2V0X3Byb3BzID0gKCk7CisKKyAgICBteSAkcHJpdl9mbiA9IEdl
dFByaXZGbigkaW50ZXJmYWNlTmFtZSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAiZ3NlbGYiLCAic2Vs
ZiIpOworCisgICAgbXkgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHts
Y2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAgIEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAg
ICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1lfSAqc2Vs
ZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChw
cm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsK
KworICAgIG15ICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2Vf
aWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3Bf
aWQsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNl
bGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAo
cHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7
CisKKyAgICBTS0lQRU5VTTogZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0
cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHByb3BfbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+bmFtZTsKKyAgICAgICAgbXkgJHNldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KCRwcm9wX25hbWUpOworICAgICAgICBteSAkZ2V0cHJvcF9uYW1lX2ZuID0gJGNv
ZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHByb3BfbmFtZSk7CisKKyAgICAgICAgbXkgJHByb3BO
YW1lID0gZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJHByb3BDYXBzID0gdWMo
JHByb3BOYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAg
ICAgbXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BDYXBzfSI7CisgICAgICAgIG15ICR7cHJv
cF9ndHlwZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5cGUpOworICAgICAgICBpZiAoJHByb3BfZ3R5
cGUgZXEgImV2ZW50X3RhcmdldCIpIHsKKyAgICAgICAgICAgICRwcm9wX2d0eXBlID0gImV2ZW50
X3RhcmdldF9ub2RlIjsKKyAgICAgICAgfQorICAgICAgICBteSAke3Byb3BHVHlwZX0gPSB1Yygk
cHJvcF9ndHlwZSk7CisgICAgICAgIG15ICRsY2FzZV9ndHlwZW5hbWUgPSAiZ2RvbV8iIC4gJHBy
b3BfZ3R5cGU7CisKKyAgICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAg
ICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
ICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5
cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3Jh
cmlseSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07Cisg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBwdXNoKEBjQm9keVByaXYsICIgICAgJHtw
cm9wRW51bX0sXG4iKTsKKworICAgICAgICBteSAkZ3R5cGUgPSBHZXRQcm9wR1R5cGUoJHByb3Bf
dHlwZSk7CisgICAgICAgIG15ICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBREFCTEUiOworICAg
ICAgICBteSAkd3JpdGVhYmxlID0gJGF0dHJpYnV0ZS0+dHlwZSAhfiAvXnJlYWRvbmx5LzsKKyAg
ICAgICAgbXkgJGNvbnN0ID0gInJlYWQtb25seSAiOworICAgICAgICBpZiAoJHdyaXRlYWJsZSAm
JiAkY3VzdG9tKSB7CisgICAgICAgICAgICAkY29uc3QgPSAicmVhZC1vbmx5IChkdWUgdG8gY3Vz
dG9tIGZ1bmN0aW9ucyBuZWVkZWQgaW4gZ2RvbXdlYmtpdCkiOworICAgICAgICAgICAgbmV4dCBT
S0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAhJGN1c3RvbSkg
eworICAgICAgICAgICAgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEV1JJVEUiOworICAgICAg
ICAgICAgJGNvbnN0ID0gInJlYWQtd3JpdGUgIjsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRf
Z3R5cGUgPSAkZ3R5cGU7CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAg
ICAgICAgICRfZ3R5cGUgPSAidWludCI7ICMgeXVrLgorICAgICAgICB9CisgICAgICAgIG15ICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eSAoZ19rbGFzcywgJHtwcm9wRW51bX0sIAorICAgICAgICAgICAgZ19wYXJhbV9zcGVj
XyR7X2d0eXBlfSAoIiR7cHJvcE5hbWV9IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICIk
e2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAg
ICAgICAgICAgICAgICAiJHtjb25zdH0gJHt0eXBlfSAke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5h
bWV9IiwgLyogbG9uZ2VyICovCitFT0YKKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMs
ICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSAiLyogVE9E
TyEgJGd0eXBlICovXG4iOworCisgICAgICAgIGlmICgkd3JpdGVhYmxlKSB7CisKKyAgICAgICAg
ICAgIG15ICRvayA9IDA7CisgICAgICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAg
ICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgICAgICRjb252ZXJ0
X2ZuID0gIldlYkNvcmU6OlN0cmluZyI7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBU
T0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0
CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAgICAgICAkb2sg
PSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RP
OiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0Cisg
ICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0g
MTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBz
a2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAg
ICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVy
ZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBz
dHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAk
b2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAidWludCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNp
ZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9r
ID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAg
ICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIyBYWFggVE9ETyAt
IHNraXAgTG9jYXRpb24KKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTG9jYXRp
b24iKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKCRvaykgeworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIg
ICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0
eHRfc2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIp
IGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVz
aChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgZ3NlbGYtPnNldCR7c2V0cHJvcF9uYW1lX2ZufSgk
e2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRndHlwZSAodmFsdWUpKSIpOworCisgICAgICAgICAg
ICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRl
ckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIpO1xu
Iik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBicmVh
aztcbiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1c2go
QHR4dF9nZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKworICAg
ICAgICBteSAkZXhjZXB0aW9uID0gIiI7CisgICAgICAgIGlmIChAeyRhdHRyaWJ1dGUtPmdldHRl
ckV4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAkZXhjZXB0aW9uID0gImVjIjsKKyAgICAgICAg
ICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOwor
ICAgICAgICBteSAkcG9zdF9jb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRkb25lID0gMDsK
KyAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJGNvbnZlcnRf
Zm4gPSAiX0dfR0VUX1VURjgoIjsKKyAgICAgICAgICAgICRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7
CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAg
ICAgICAgIyRjb252ZXJ0X2ZuID0gIldURjo6Z2V0UHRyKCR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRf
cHJpdmF0ZSgiOworICAgICAgICAgICAgIyRjb252ZXJ0X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZh
Y2VOYW1lLCAke2xjYXNlX2d0eXBlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisgICAgICAgICAg
ICAjJGNvbnZlcnRfZm4gPSAiJHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PigiOworICAgICAgICAgICAgIyRwb3N0X2NvbnZlcnRf
Zm4gPSAiKSI7CisgICAgICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBl
OworICAgICAgICAgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICBQYXNzUmVm
UHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4gcHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2Zu
fSgke2V4Y2VwdGlvbn0pOworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QgKHZhbHVlLCBXZWJD
b3JlOjp0b0dET00ocHRyLmdldCgpKSk7CitFT0YKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRf
cHJvcHMsICR0eHRfZ2V0X3Byb3ApOworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKCEkZG9uZSkgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9w
cywgIiAgICAgICAgZ192YWx1ZV9zZXRfJF9ndHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2Vs
Zi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xu
Iik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBi
cmVhaztcbiAgICB9XG4iKTsKKworICAgICAgICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nh
cnk/Pz8KKyAgICAgICAgIyBjYW4gaXQgYmUgZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVj
X2d0eXBlCisgICAgICAgICMgYW5kIGdldHRpbmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUg
bWluLW1heCBmb3IgZXhhbXBsZT8KKyAgICAgICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAg
ICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBH
X01JTklOVCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBt
YXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5z
dGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQg
Ki8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZM
T0FULCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4
ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFs
bF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAv
KiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAg
ICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgk
Z3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAg
ICAgIEdfTUFYVUlOVDY0LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
ZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7Cisg
ICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAg
IDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXgg
Ki8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWlu
ICovCisgICAgICAgICAgICAgICAgR19NQVhMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAg
ICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAidWludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7Cisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFY
VUlOVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8
ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAg
ICAgICAgICAgICAgIEdfTUFYSU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAg
ICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIi
KSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAg
ICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAv
KiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHRE9NX1RZ
UEVfJHtwcm9wR1R5cGV9LCAvKiBnb2JqZWN0IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAg
ICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgKEdQYXJhbUZs
YWdzKSR7Z3BhcmFtZmxhZ30pKTsgICAgICAgICAgICAgICAgICAgCisKK0VPRgorICAgICAgICBw
dXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworCisKKyAgICB9CisK
KyAgICBwdXNoKEBjQm9keVByaXYsICJ9O1xuXG4iKTsKKworCisgICAgJHR4dF9nZXRfcHJvcCA9
IDw8ICJFT0YiOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q
Uk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAg
ICAkdHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpF
Q1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0
X3NldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8ICJFT0YiOworICAg
IGNhc2UgUFJPUF9BR0U6CisgICAgICAgIHNlbGYtPmFnZSA9IGdfdmFsdWVfZ2V0X2ludCAodmFs
dWUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIGdfdmFs
dWVfc2V0X2ludCh2YWx1ZSwgc2VsZi0+YWdlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
KyAgIGdfdmFsdWVfaW5pdCgmcGFyYW1zWzBdLCBHX1RZUEVfRlJPTV9JTlNUQU5DRShvYmplY3Qp
KTsKKyAgICAgICAgKyAgIGdfdmFsdWVfc2V0X2luc3RhbmNlKCZwYXJhbXNbMF0sIChncG9pbnRl
cilvYmplY3QpOworCitFT0YKKworICAgICMgVE9ETzogd29yayBvdXQgaWYgaXQncyBhcHByb3By
aWF0ZSB0byBzcGxpdCB0aGlzIGludG8gbWFueSBkaWZmZXJlbnQKKyAgICAjIHNpZ25hbHMgZS5n
LiAiY2xpY2siIGV0Yy4KKyAgICBteSAkdHh0X2luc3RhbGxfc2lnbmFscyA9ICIiOworCisgICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgICR0eHRfaW5zdGFs
bF9zaWduYWxzID0gPDwgIkVPRiI7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9
IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KHJlcXVlc3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNU
IHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgMCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAg
TlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisgICAg
ICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09M
RUFOKTsKK0VPRgorICAgIH0KKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCitzdGF0
aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemUoR09iamVjdCogb2JqZWN0KQorewor
ICAgIC8qJHtjbGFzc05hbWV9KiByZXF1ZXN0ID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7Ki8K
KyAgICAvKiR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisgICAg
CisgICAgLypHT2JqZWN0Q2xhc3MgKnBhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrIChn
X3R5cGVfcGVla19wYXJlbnQgKCR7cGFyZW50R09ialR5cGV9KSk7Ki8KKworICAgIC8qIEZyZWUg
YW55IG1lbW9yeSBvciBjbG9zZSBhbnkgZmlsZXMgKi8gCisKKyAgICAvKnBhcmVudF9jbGFzcy0+
IGZpbmFsaXplIChvYmplY3QpOyovCisKKyAgICBHX09CSkVDVF9DTEFTUygke2xjYXNlX2lmYWNl
bmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworQHR4dF9zZXRfcHJv
cHMKKworQHR4dF9nZXRfcHJvcHMKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2Ns
YXNzX2luaXQoJHtjbGFzc05hbWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBHT2JqZWN0
Q2xhc3MgKmdfa2xhc3MgPSBHX09CSkVDVF9DTEFTUyAocmVxdWVzdENsYXNzKTsKKyAgICBnX2ts
YXNzLT5maW5hbGl6ZSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZTsKKyAgICBnX2tsYXNz
LT5zZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9mbjsKKyAg
ICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0
eV9mbjsKKyAgICAKK0B0eHRfaW5zdGFsbF9wcm9wcworCiskdHh0X2luc3RhbGxfc2lnbmFscwor
CisgICAgLypnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoJHtj
bGFzc05hbWV9UHJpdmF0ZSkpOyovCit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1l
fV9pbml0KCR7Y2xhc3NOYW1lfSogcmVxdWVzdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfVByaXZh
dGUqIHByaXYgPSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVx
dWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYs
ICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7aW50
ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworI2lm
bmRlZiAke2d1YXJkfV9QUklWXworI2RlZmluZSAke2d1YXJkfV9QUklWXworI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisjaW5jbHVkZSAiJHtwYXJlbnRIZHJOYW1lfS5oIgorI2luY2x1ZGUgIkdE
T01PYmplY3QuaCIKKy8qI2luY2x1ZGUgIlByaXZhdGUke3BhcmVudEhkck5hbWV9LmgiKi8KKy8q
R19CRUdJTl9ERUNMUyovCisvKmNsYXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX07Ki8KKyNp
bmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJpdiwg
JGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy9uYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIEdET00ke2ludGVyZmFjZU5hbWV9IDogcHVibGljICR7cGFy
ZW50R0lmYWNlTmFtZX0geworCitwdWJsaWM6CisgICAgR0RPTSR7aW50ZXJmYWNlTmFtZX0oV2Vi
Q29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCkgOiAkcGFyZW50R0lmYWNlTmFtZX0oaW1wbCkK
KyAgICB7IGltcGwtPnJlZigpOyB9CisgICAgfkdET00ke2ludGVyZmFjZU5hbWV9KCkgeyBtX2lt
cGwtPmRlcmVmKCk7IH0KKworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGltcGwoKSBj
b25zdCB7IHJldHVybiBtX2ltcGw7IH0KKworCitwcml2YXRlOgorICAgIFdlYkNvcmU6OiR7aW50
ZXJmYWNlTmFtZX0gKm1faW1wbDsKK307CisKK0VPRgorCisgICAgICAgICNwdXNoKEBoQm9keVBy
aXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9ICR7Y2xh
c3NOYW1lfTsKKworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lmYWNlbmFt
ZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKworLypHX0VORF9ERUNMUyov
CisKKyNlbmRpZiAvKiAke2d1YXJkfV9QUklWXyAqLworCitFT0YKKworICAgICNyZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oKFdlYkNvcmU6Ok5vZGUq
KShyZXMpKTsKKyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
ICAgICNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgIyBY
WFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgIyAgICAk
aW1wbEluY2x1ZGVzeyJKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0gPSAxOworICAgICAg
ICAjfSBlbHNlIHsKKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyRpbmNsdWRlSGRyfSA9IDE7
CisgICAgICAgICN9CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9
ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUdkb21ET01PYmplY3QuaCJ9ID0g
MTsKKworICAgICAgICBMT09QOiBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1
bmN0aW9uc30pIHsKKyAgICAgICAgICAgICNteSAkZnVuY3Rpb25OYW1lID0gZGVjYW1lbGl6ZSgk
Y2xhc3NOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUp
OworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT50eXBlOworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV8i
IC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRmbl9zaWdf
bmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldHVyblR5cGUgPSBHZXRHVHlwZSgkZm5fc2ln
X3R5cGUpOworICAgICAgICAgICAgICAgIG15ICRyZXRfaXNfY2xzX3R5cGUgPSBJc0dET01DbGFz
c1R5cGUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvblNpZyA9
ICIkY2xhc3NOYW1lICp0aGl6IjsKKworICAgICAgICAgICAgICAgIG15ICRjYWxsX2ltcGxfcGFy
YW1zID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gImdkb21fIiAu
IGRlY2FtZWxpemUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rp
b25OYW1lIGVxICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkiKSB7Cisg
ICAgICAgICAgICAgICAgICAgICMgcmVzZXJ2ZWQgbmFtZSBjbGFzaCBpbiBnbGliIQorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdkb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9u
X3NldF9jc3NfcHJvcGVydHkiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAj
IFhYWCBza2lwIENvbXBhcmVIb3cgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBp
ZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyIp
IHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lw
cGluZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBDb21w
YXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMg
WFhYIHNraXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBp
ZiAoJHJldHVyblR5cGUgZXEgIkdkb21TVkdEb2N1bWVudCAqIikgeworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1
bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIHNvbWUgY3Vz
dG9tIGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgbXkgJGlzX2N1c3RvbV9mbiA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07Cisg
ICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xsZWN0aW9u
X2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRt
bF9jb2xsZWN0aW9uX25hbWVkX2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgZXEgImdkb21fZWxlbWVudF9zZXRfYXR0cmlidXRlIikgeworICAgICAgICAgICAgICAg
ICAgICAkaXNfY3VzdG9tX2ZuID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgaWYgKCRpc19jdXN0b21fZm4gJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5h
bWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIg
JiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNl
cnRfYmVmb3JlIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9t
X25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAg
ICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xh
c3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9t
X3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlv
dXNfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21f
dHJlZV93YWxrZXJfbmV4dF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX3ByZXZpb3VzX25vZGUiKSB7CisgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7
ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHks
ICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIp
OworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJz
fSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBl
OworICAgICAgICAgICAgICAgICAgICBhZGRJbmNCb2R5KCRwYXJhbUlETFR5cGUpOworICAgICAg
ICAgICAgICAgICAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAg
ICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAg
ICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25TaWcgLj0gIiwgJHBhcmFtVHlwZSRwYXJhbU5hbWUi
OworCisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNs
YXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9p
c19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUg
bmUgIkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JRExU
eXBlIG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGVHZG9tJHtwYXJhbUlE
TFR5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7ICMgdGhpcyBpc24ndCBzdHJpY3RseSBuZWNlc3Nh
cnkgYnV0IG9uZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQgZmlsZXMgbmVlZGVkIGl0IHNvLi4uLgor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUgfHwgKCRwYXJhbUlETFR5cGUgZXEg
IkRPTVN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1OYW1lID0gIl9n
XyIgLiAkcGFyYW1OYW1lOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGlmICgkY2FsbF9pbXBsX3BhcmFtcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGNh
bGxfaW1wbF9wYXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkY2Fs
bF9pbXBsX3BhcmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFkZEluY0hkcigkZm5fc2lnX3R5cGUp
OworICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAg
ICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9zaWdfdHlwZX0ifSA9IDE7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikg
eworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBq
c2dlbmVyYXRvci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJH
ZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5
cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGVHZG9tJHtm
bl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IiR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAj
IFhYWCBza2lwIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgICMgYnV0
IHNraXAgZnJvbSBoZXJlIHRvIGFsbG93IHNvbWUgaGVhZGVycyB0byBiZSBjcmVhdGVkCisgICAg
ICAgICAgICAgICAgIyBmb3IgYSBzdWNjZXNzZnVsIGNvbXBpbGUuCisgICAgICAgICAgICAgICAg
aWYgKCRpc19jdXN0b21fZm4gJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIp
IHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0
b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9u
TmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAkX3JldHVyblR5cGUgPSAkcmV0dXJuVHlw
ZTsKKyAgICAgICAgICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kZm5fc2lnX3R5cGU7
CisgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2h0bWxfY2FudmFzX2VsZW1l
bnRfZ2V0X2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAg
ICAgICAgICAgICAgICAgICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4
dCAqJzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2Rv
bV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExP
T1A7ICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAg
ICAgICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNv
ZGUgdG8gZmluZCBvdXQgaG93KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBv
dXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICdE
T01PYmplY3QnICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21f
ZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAg
IyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21vYmpUeXBl
ID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnOworICAgICAgICAgICAgICAgICAgICAk
Z2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZCc7CisgICAg
ICAgICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0b28gaW52b2x2ZWQgZm9yIG5vdy4g
IHNraXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVzdCBjb252ZXJ0IHRvIGEgRE9NT2Jq
ZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91dCBob3cpCisgICAgICAgICAgICAg
ICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3JlYXRlIGEgR0RPTURvbU9iamVjdAor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICAg
ICAgcHVzaChAaEJvZHksICJXRUJLSVRfQVBJICRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAo
JGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiRf
cmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKVxue1xuIik7CisKKyAgICAg
ICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAg
ICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHRoaXosIDAp
O1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7XG4iKTsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke2lu
dGVyZmFjZU5hbWV9ICogaXRlbSA9ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUodGhp
eikpO1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgewor
ICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVz
dWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsIChpdGVtLCAwKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGl0ZW0pO1xu
Iik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAo
QHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJh
bU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisgICAgICAgICAgICAgICAgICAgIG15
ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRw
YXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBh
cmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9
IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgYWRk
SW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lz
X2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICMgICAgJGltcGxUeXBlZGVmc3siR2Rv
bSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBpZiAoISRwYXJhbVR5cGVJc1ByaW1pdGl2ZSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1
cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRw
YXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15
ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRw
YXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAg
bXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAg
ICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURM
VHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJp
bmciKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3Jl
OjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6U3RyaW5nKCRwYXJhbU5hbWUpO1xu
Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJh
bV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2dkb21f
Zm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICNwdXNoKEBjQm9keSwgIiAgICBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtw
YXJhbUlETFR5cGV9PiAqIF9nXyR7cGFyYW1OYW1lfSA9IFdURjo6UmVmUHRyPCR7cGFyYW1fZ2Rv
bV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSk+O1xuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUu
aCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBX
ZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBfZ18ke3BhcmFtTmFtZX0gPSBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpFdmVudFRhcmdldE5vZGUqPihnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2
YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjok
e3BhcmFtSURMVHlwZX0gKiBfZ18ke3BhcmFtTmFtZX0gPSAoJHtwYXJhbV9nZG9tX2ZufV9nZXRf
cHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQg
cmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKF9nXyR7cGFyYW1OYW1lfSwgMCk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoX2dfJHtwYXJhbU5hbWV9KTtcbiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgJHJldHVyblBhcmFtTmFtZSA9ICJfZ18iLiRwYXJhbU5hbWUgaWYgJHBhcmFt
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJuIn07CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgbXkgJGFzc2lnbiA9ICIiOworICAgICAgICAgICAgICAgIG15ICRhc3Np
Z25fcHJlID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbl9wb3N0ID0gIiI7CisgICAg
ICAgICAgICAgICAgJGdfcmVzID0gMDsKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUg
bmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAi
UGFzc1JlZlB0cjxXZWJDb3JlOjoke2ZuX3NpZ190eXBlfT4gZ19yZXMgPSAiOworICAgICAgICAg
ICAgICAgICAgICAgICAgJGFzc2lnbl9wcmUgPSAiV1RGOjpnZXRQdHIoIjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICRhc3NpZ25fcG9zdCA9ICIpIjsKKyAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAiJHtfcmV0dXJuVHlwZX0g
cmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBteSAkZXhjZXB0aW9ucyA9ICIiOworICAgICAgICAgICAgICAgIGlmIChAeyRm
dW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCR7Y2FsbF9pbXBsX3BhcmFtc30gbmUgIiIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICRleGNlcHRpb25zID0gIiwgZWMiOworICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiZWMiOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
IyBuZWVkIHRoaXMgZm9yIGluY2x1ZGluZyAuLi4gX3NvbWV0aGluZ18gLSBmb3IgdGhlIGNsYXNz
IGFyZ3MKKyAgICAgICAgICAgICAgICAjaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAg
ICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOwor
ICAgICAgICAgICAgICAgICN9CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEg
Imdkb21fbm9kZV9hcHBlbmRfY2hpbGQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgZXEgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiB8fAorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgfHwKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgbXkgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkID0g
PDwgIkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBs
X3BhcmFtc30ke2V4Y2VwdGlvbnN9KTsKKyAgICBpZiAob2spCisgICAgeworICAgICAgICAke19y
ZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9H
RE9NKCRyZXR1cm5QYXJhbU5hbWUpKTsgCisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAg
IHJldHVybiBOVUxMOworRU9GCisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAkY3Vz
dG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOworICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRm
bl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQnKSB7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIC8qIFhYWCBUT0RPIC0gZ2V0IGNhbnZh
cyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2Vw
dGlvbnN9KSk7Ki9cbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
fSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufV9HX0dFVF9VVEY4KGl0ZW0tPiR7Zm5fc2ln
X25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7XG4iICk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRnX3JlcykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgJGdfcmVzID0gIiR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVt
LT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWdu
X3Bvc3R9KSIgOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7
Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9z
dH0pO1xuIiApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4p
IHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIG5lICJET01PYmplY3Qi
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7X3JldHVyblR5cGV9
IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihXZWJDb3JlOjp0b0dET00oZ19yZXMu
Z2V0KCkpKTsgXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmpl
Y3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4g
TlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBjYW52YXMgb2JqZWN0ICovXG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiICAgIHJldHVybiByZXM7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuIik7CisKKyAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisgICAgICAgIH0KKworICAgIHB1c2goQGNC
b2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisgICAgcHVzaChAY0JvZHlQcml2LCAi
fSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
R19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiNlbmRpZiAvKiAk
e2d1YXJkfV9JTlRfKi9cbiIpOworCisgICAgcHVzaChAaEJvZHksICJHX0VORF9ERUNMU1xuXG4i
KTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAvKiAkZ3VhcmQgKi9cbiIpOworCisgICAgcHVz
aChAaEJvZHlQcm9wLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlQcm9wLCAi
I2VuZGlmIC8qICR7Z3VhcmR9X1BST1BfKi9cbiIpOworfQorCisjIEludGVybmFsIGhlbHBlcgor
c3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkgPSBAXzsKKworCisgICAg
IyBXcml0ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVJbnRlcm5hbCA9ICIkb3V0
cHV0RGlyL1ByaXZhdGVJbnQiIC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4oSU5USEVBREVSLCAi
PiRoZHJGTmFtZUludGVybmFsIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1l
SW50ZXJuYWwiOworCisgICAgcHJpbnQgSU5USEVBREVSIEBoUHJlZml4OworICAgIHByaW50IElO
VEhFQURFUiAiXG4iOworICAgIHByaW50IElOVEhFQURFUiBAaEJvZHlJbnRlcm5hbDsKKyAgICBj
bG9zZShJTlRIRUFERVIpOworCisgICAgIyBXcml0ZSBQcml2YXRlIGhlYWRlcgorICAgIG15ICRo
ZHJGTmFtZVByaXYgPSAiJG91dHB1dERpci9Qcml2YXRlIiAuICRuYW1lIC4gIi5oIjsKKyAgICBv
cGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJpdiIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBm
aWxlICRoZHJGTmFtZVByaXYiOworCisgICAgcHJpbnQgUFJJVkhFQURFUiBAaFByZWZpeDsKKyAg
ICBwcmludCBQUklWSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJJVkhFQURFUiBAaEJvZHlQcml2
OworICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisgICAgIyBXcml0ZSBQcml2YXRlIEltcGxlbWVu
dGF0aW9uCisgICAgbXkgJGltcGxGaWxlTmFtZVByaXYgPSAiJG91dHB1dERpci9Qcml2YXRlIiAu
ICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oUFJJVklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYi
KSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICBw
cmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBQUklWSU1QTCAiXG4iOworICAgIHBy
aW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAgICBjbG9zZShQUklWSU1QTCk7CisKKyAgICAj
IFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9pZHMgcmVjdXJzaXZlIG5pZ2h0bWFyZSkKKyAg
ICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gInByb3BzLmgiOwor
ICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJvcEZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBv
cGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAgICAkaGRyUHJvcEluY2x1ZGVzeyJnbGliLW9i
amVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJPUEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmlu
dCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5jbHVkZXMgLyBkZWZpbmVzIGlzc3VlIGZvcmNl
cyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRpZXMuXG5wZXJoYXBzIC0gYmV0dGVyIC0gYWxs
IGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW4gaGVyZSEqL1xuIjsKKyAgICBwcmludCBQ
Uk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50IFBST1BIRUFERVIgbWFwIHsg
IiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBw
cmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmlu
dCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBAaEJvZHlQcm9wOworCisg
ICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgcHVibGljIGhlYWRlci4KKyAgICBteSAk
aGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4oSEVBREVS
LCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZSI7CisK
KyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBIRUFE
RVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQg
SEVBREVSICIjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD5cbiI7CisgICAgcHJpbnQg
SEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWhkckluY2x1ZGVz
KTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJp
bnQgSEVBREVSICJcbiI7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keVByZTsKKyAgICBwcmludCBI
RUFERVIgbWFwIHsgInR5cGVkZWYgc3RydWN0IF8kXyAkXztcbiIgfSBzb3J0IGtleXMoJWltcGxU
eXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaW1wbFR5cGVkZWZzKTsK
KyAgICBwcmludCBIRUFERVIgQGhCb2R5OworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMg
V3JpdGUgdGhlIGltcGxlbWVudGF0aW9uIHNvdXJjZXMKKyAgICBteSAkaW1wbEZpbGVOYW1lID0g
IiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oSU1QTCwgIj4kaW1wbEZp
bGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGltcGxGaWxlTmFtZSI7CisKKyAg
ICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiY29uZmln
LmhcIlxuXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+XG4iOwor
ICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiQ1N0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1Q
TCAiI2luY2x1ZGUgXCJQbGF0Zm9ybVN0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2lu
Y2x1ZGUgXCJBdG9taWNTdHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwi
dXN0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJLVVJMLmhcIlxuIjsK
KyAgICBwcmludCBJTVBMIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWlt
cGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7
CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAgICBjbG9zZShJTVBMKTsKKworICAgICVpbXBs
SW5jbHVkZXMgPSAoKTsKKyAgICAlaW1wbFR5cGVkZWZzID0gKCk7CisgICAgJWhkckluY2x1ZGVz
ID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBAaEJvZHkgPSAoKTsKKyAgICBAaEJvZHlQ
cml2ID0gKCk7CisgICAgQGhCb2R5SW50ZXJuYWwgPSAoKTsKKyAgICBAaEJvZHlQcm9wID0gKCk7
CisgICAgQGhCb2R5UHJvcFByZSA9ICgpOworCisgICAgQGNQcmVmaXggPSAoKTsKKyAgICBAY0Jv
ZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7Cit9CisKKzE7CkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
T3B0aW9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICAgIF0g
SFRNTE9wdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlICBib29sZWFuICAgICAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ7Ci0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdGV4dAogICAgICAg
ICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vsc2UKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3
IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VhcmNoOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQ7CiAKLSNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZp
bmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3Ry
aW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCShyZXZp
c2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTM1LDE0ICszNSwxNCBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29kZTsKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvZGVCYXNl
OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgaGVpZ2h0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIGhzcGFjZTsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dEZyb21TdHJpbmddIGxvbmcgaHNwYWNlOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb2Jq
ZWN0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZzcGFj
ZTsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmdd
IGxvbmcgdnNwYWNlOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTkzZTA0MDdh
LTgzODAtNGZmMC05NzhkLWY3NzNmMmRlZTZhMwogICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhU
TUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0Vf
R09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaGVpZ2h0OwpAQCAtMzgsNyArMzgsNyBAQAogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChM
QU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgd2lkdGg7CiAjZWxzZQogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHdpZHRoOwpJbmRleDogV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAko
cmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTE1Niw3ICsxNTYsNyBAQAogCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0aXRsZTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyByZWZlcnJlcjsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5H
VUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGRvbWFpbjsKICNlbHNlCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOwpAQCAtMTgyLDcgKzE4Miw3IEBACiAKICAgICAgICAg
Tm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKIAot
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9jYXRpb247CiAjZW5kaWYKIApAQCAtMTk1
LDcgKzE5NSw3IEBACiAgICAgICAgIEVsZW1lbnQgICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50
KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKIAogICAgICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgRE9NU2Vs
ZWN0aW9uICAgICAgIGdldFNlbGVjdGlvbigpOwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgY2hhcmFjdGVyU2V0
OwpAQCAtMjM2LDcgKzIzNiw3IEBACiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFz
c05hbWUoaW4gRE9NU3RyaW5nIHRhZ25hbWUpOwogCiAgICAgICAgIC8vIE5vZGVTZWxlY3RvciAt
IFNlbGVjdG9yIEFQSQotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQog
ICAgICAgICBbQ3VzdG9tXSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3IoaW4gW0NvbnZlcnRVbmRlZmlu
ZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIg
cmVzb2x2ZXIpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgW0N1
c3RvbV0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9ycywgaW4gTlNSZXNvbHZlciByZXNvbHZl
cikKSW5kZXg6IFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29y
ZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBA
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9N
U3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9kb20vRE9NQ29yZUV4
Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaAko
cmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAqLwogCiAjaWZuZGVmIERPTUNvcmVFeGNlcHRp
b25faAotI2RlZmluZSBET01Db2RlRXhjZXB0aW9uX2gKKyNkZWZpbmUgRE9NQ29yZUV4Y2VwdGlv
bl9oCiAKICNpbmNsdWRlICJFeGNlcHRpb25CYXNlLmgiCiAKSW5kZXg6IFdlYkNvcmUvZG9tL0V2
ZW50RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlv
bi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZv
cm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCklu
ZGV4OiBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9L
ZXlib2FyZEV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gYWx0R3JhcGhLZXkpOwogCiAgICAg
ICAgIC8vIFdlYktpdCBFeHRlbnNpb25zCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkKKyNpZiAoKCFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpKSAmJiAoIWRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkpKQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAg
ICAgICBrZXlDb2RlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAg
ICBjaGFyQ29kZTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9u
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAkocmV2
aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAg
ICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDogV2Vi
Q29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQ
YXRoRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL3htbC9YUGF0aEV4
Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmlu
ZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNv
bXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7
CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHJl
dmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZv
cm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBACiAgICAgICAgIFtEb05v
dENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBET01TdHJp
bmcgbWVzc2FnZSwgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KQogICAgICAgICAvLyBHbG9iYWwgY29uc3RydWN0b3JzCiAgICAgICAgIGF0dHJpYnV0ZSBTdHls
ZVNoZWV0Q29uc3RydWN0b3IgU3R5bGVTaGVldDsKICAgICAgICAgYXR0cmlidXRlIENTU1N0eWxl
U2hlZXRDb25zdHJ1Y3RvciBDU1NTdHlsZVNoZWV0OwpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVNl
bGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJ
KHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAKICAgICAgICAgdm9pZCByZW1vdmVBbGxSYW5nZXMo
KTsKICAgICAgICAgdm9pZCBhZGRSYW5nZShpbiBSYW5nZSByYW5nZSk7CiAKLSNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8
fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5n
IHRvU3RyaW5nKCk7CiAjZW5kaWYKICAgICB9OwpJbmRleDogV2ViS2l0VG9vbHMvR05VbWFrZWZp
bGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9u
IDM1NzU4KQorKysgV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTUsNiArNSw3IEBACiAjIEd0a0xhdW5jaGVyCiBQcm9ncmFtc19HdGtMYXVuY2hlcl9DUFBGTEFH
UyA9IFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3Rr
L3dlYmtpdCBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCiAJJChnbG9iYWxfY3Bw
ZmxhZ3MpIFwKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23103</attachid>
            <date>2008-09-01 13:13:10 -0700</date>
            <delta_ts>2008-09-01 13:19:40 -0700</delta_ts>
            <desc>resolve conflict in latest svn with webkitwebframe.cpp</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>262847</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMjIwLDYgKzIyMSw3IEBACiAKICMgV2ViS2l0CiB3ZWJraXRn
dGtfaF9hcGkgOj0KK2dkb21ndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9CiB3ZWJr
aXRndGtfY3BwZmxhZ3MgOj0KIHdlYmtpdGd0a19idWlsdF9zb3VyY2VzIDo9CkBAIC0yMzIsOCAr
MjM0LDEzIEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0
LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkkKHdlYmtpdGd0a19o
X2FwaSkgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCisJJChnZG9tZ3Rr
X2hfYXBpKSBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmggXAorCVdlYktp
dC9ndGsvd2Via2l0L2dkb20uaCAKIAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMu
aAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgKKwogbGlid2Via2l0XzFfMF9sYV9T
T1VSQ0VTID0gXAogCSQod2Via2l0Z3RrX3NvdXJjZXMpCiAKQEAgLTMwNCw2ICszMTEsMzM4IEBA
CiB3ZWJjb3JlX2xpYmFkZCArPSAtbGdzdGludGVyZmFjZXMtMC4xMCAtbGdzdHZpZGVvLTAuMTAK
IGVuZGlmCiAKK1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6IFdlYktpdC9ndGsv
d2Via2l0L0dkb21Eb2N1bWVudC5oCisKK1dlYktpdC9ndGsvd2Via2l0L0dkb21Eb2N1bWVudC5o
OiBEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnQuaAorCWNwIERlcml2ZWRTb3VyY2VzL0dkb21E
b2N1bWVudC5oIFdlYktpdC9ndGsvd2Via2l0L0dkb21Eb2N1bWVudC5oCisKK1dlYktpdC9ndGsv
d2Via2l0L0dkb21ET01PYmplY3QuaDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuaAorCWNwIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmggV2ViS2l0L2d0
ay93ZWJraXQvR2RvbURPTU9iamVjdC5oCisKK1dlYktpdC9ndGsvd2Via2l0L0dkb21FdmVudFRh
cmdldE5vZGUuaDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAor
CWNwIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggV2ViS2l0L2d0
ay93ZWJraXQvR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisKKworZ2RvbWd0a19oX2FwaSArPSBcCisJ
V2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50LmhcCisJV2ViS2l0L2d0ay93ZWJraXQvR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oXAorCVdlYktpdC9ndGsvd2Via2l0L0dkb21ET01PYmplY3QuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQXR0ci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21BdHRycHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQmFySW5mby5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21CYXJJbmZvcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzR3JhZGllbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzR3JhZGllbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DYW52YXNQYXR0ZXJuLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRl
cm5wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQaXhlbEFycmF5LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BpeGVsQXJyYXlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFT
ZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNEQVRBU2VjdGlvbnByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNoYXJhY3RlckRhdGEuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2hh
cmFjdGVyRGF0YXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNsaXBib2FyZC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
b21tZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Db25zb2xlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbnNvbGVwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Db3VudGVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNv
dW50ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NDaGFyc2V0UnVsZS5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DU1NDaGFyc2V0UnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU0ZvbnRGYWNlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NGb250RmFjZVJ1
bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NJbXBvcnRSdWxlLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NNZWRpYVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTTWVkaWFSdWxlcHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTUGFnZVJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQcmltaXRpdmVWYWx1
ZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQcmltaXRpdmVWYWx1ZXByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1J1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZUxp
c3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZUxpc3Rwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZURlY2xhcmF0aW9ucHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVSdWxlLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1N0eWxlUnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxl
U2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVldHByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVl
TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZUxpc3Rwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1Zh
cmlhYmxlc0RlY2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzUnVsZS5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlcHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRGF0YWJhc2UuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRGF0YWJhc2Vwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbURvY3VtZW50RnJhZ21lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21E
b2N1bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50VHlwZS5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudFR5cGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21ET01BcHBsaWNhdGlvbkNhY2hlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUFwcGxpY2F0
aW9uQ2FjaGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9uLmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21ET01JbXBsZW1lbnRhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01J
bXBsZW1lbnRhdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVBhcnNlci5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJzZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21ET01TZWxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NU2VsZWN0aW9ucHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2luZG93LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bURPTVdpbmRvd3Byb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0
eS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21FbnRpdHlSZWZlcmVuY2UuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5UmVmZXJl
bmNlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnRFeGNlcHRpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRXZlbnRFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUZpbGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmlsZUxpc3QuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRmlsZUxpc3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxl
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSGlzdG9yeS5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IaXN0b3J5cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1lbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQXBwbGV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MQXBwbGV0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVh
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXJlYUVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEJhc2VFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VG
b250RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQm9k
eUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MQnV0dG9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQnV0dG9u
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTENvbGxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENv
bGxlY3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXZFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxEaXZFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERMaXN0RWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRExpc3RFbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTERvY3VtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxEb2N1bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEVtYmVkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRmllbGRTZXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEZvbnRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxG
b250RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9ybUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxG
cmFtZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVTZXRFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEhlYWRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRp
bmdFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkaW5nRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTEhSRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1s
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSHRtbEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MSUZyYW1lRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJ
bWFnZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEltYWdlRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJbnB1dEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxJc0luZGV4RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSXNJbmRleEVsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGFiZWxFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxMYWJlbEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MTGVnZW5kRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGVnZW5k
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTExJRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxMaW5rRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGlua0VsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFwRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MTWFwRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxNYXJxdWVlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFycXVlZUVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTE1ldGFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZXRhRWxl
bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNb2RFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxNb2RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTE9iamVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9iamVjdEVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPTGlzdEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxP
cHRHcm91cEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MUGFyYWdyYXBoRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYWdy
YXBoRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxQcmVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQ
cmVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUXVvdGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFNjcmlwdEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2VsZWN0RWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2VsZWN0RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFN0eWxlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25F
bGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VGFibGVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VGFibGVTZWN0aW9uRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0
QXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUaXRsZUVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRpdGxlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxVTGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFVMaXN0RWxlbWVu
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0YS5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21JbWFnZURhdGFwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0
Q2FsbEZyYW1lLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUphdmFTY3JpcHRDYWxsRnJhbWVwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21LZXlib2FyZEV2ZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUtleWJvYXJkRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Mb2NhdGlv
bi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Mb2NhdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbU1lZGlhTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3Rwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNzYWdlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTWVzc2FnZUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJh
eS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTWltZVR5cGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Nb3VzZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU1vdXNlRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NdXRhdGlvbkV2ZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21OYW1lZE5vZGVNYXAuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2Rl
TWFwcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmF2aWdhdG9yLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU5hdmlnYXRvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUZpbHRlcnByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU5vZGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUl0ZXJhdG9yLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU5vZGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVMaXN0cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTm9kZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vdGF0
aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vdGF0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tT3ZlcmZsb3dFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21PdmVyZmxvd0V2
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2luQXJyYXkuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUGx1Z2luQXJyYXlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVn
aW4uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2lucHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2Nl
c3NpbmdJbnN0cnVjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2dyZXNzRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvZ3Jlc3NFdmVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVJhbmdlRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdl
RXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2UuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUmFuZ2Vwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21SZWN0LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVJlY3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TY3Jl
ZW4uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU2NyZWVucHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1FMRXJyb3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMRXJyb3Jwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1FMUmVzdWx0U2V0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93
TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1FMVHJhbnNhY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1FMVHJhbnNhY3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFnZUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU3RvcmFnZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlcHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TdHlsZVNoZWV0TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21UZXh0RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21U
ZXh0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVHJlZVdhbGtlci5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21UcmVlV2Fsa2VycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVUlFdmVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21VSUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0
QW5pbWF0aW9uRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21XaGVlbEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdoZWVsRXZl
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbnByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxI
dHRwUmVxdWVzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBs
b2FkLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkcHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tWE1MU2VyaWFsaXplci5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21YTUxTZXJpYWxpemVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0
b3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0b3Jwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YUGF0aEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0
aEV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhwcmVzc2lvbi5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4cHJlc3Npb25wcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhO
U1Jlc29sdmVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhSZXN1bHQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWFBhdGhSZXN1bHRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21YU0xUUHJvY2Vzc29yLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQcm9jZXNzb3Jwcm9w
cy5oCisKIHdlYmtpdGd0a19oX2FwaSArPSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Lmgg
XAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaCBcCkBAIC0zMTUsMTIgKzY1NCwx
NyBAQAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmggXAogCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAogCisjIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdk
b21kZWZpbmVzLmgKKwogd2Via2l0Z3RrX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL3dlYmtpdGVudW10eXBlcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXRtYXJzaGFsLmggXAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGVudW10eXBlcy5oCiAKKyMJRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5j
cHAgCisjCVdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaAorCiB3ZWJraXRndGtfc291
cmNlcyArPSBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIFwKQEAgLTM0
NCw3ICs2ODgsOSBAQAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwIFwKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgXAorCVdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcCAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGV2ZW50LmggCiAKIHdlYmtpdGd0a19jcHBmbGFncyArPSBcCiAJLURCVUlMRElOR19XRUJL
SVQgXApAQCAtMzY2LDYgKzcxMiw5IEBACiAJc3RhbXAtd2Via2l0ZW51bXR5cGVzLmNwcCBcCiAJ
c3RhbXAtd2Via2l0ZW51bXR5cGVzLmgKIAorIwlzdGFtcC1nZG9tZW51bXR5cGVzLmNwcCAKKyMJ
c3RhbXAtZ2RvbWVudW10eXBlcy5oIAorCiBXRUJLSVRfTUFSU0hBTCA9ICQoR0VOU09VUkNFUykv
d2Via2l0bWFyc2hhbAogV0VCS0lUX01BUlNIQUxfTElTVCA9ICQoV0VCS0lUX01BUlNIQUwpLmxp
c3QKIApAQCAtNDQyLDYgKzc5MSw1NCBAQAogCSYmIGNwIHhnZW4tZ3RjICRAIFwKIAkmJiBybSAt
ZiB4Z2VuLWd0YwogCitXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmg6IHN0YW1wLWdk
b21lbnVtdHlwZXMuaAorCUB0cnVlCitzdGFtcC1nZG9tZW51bXR5cGVzLmg6ICQoZ2RvbWd0a19o
X2FwaSkgR05VbWFrZWZpbGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAor
CQkJLS1maGVhZCAiI2lmbmRlZiBHRE9NX0VOVU1fVFlQRVNfSFxuIiBcCisJCQktLWZoZWFkICIj
ZGVmaW5lIEdET01fRU5VTV9UWVBFU19IXG5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+XG5cbiIgXAorCQkJLS1maGVhZCAiR19CRUdJTl9ERUNMU1xuXG4iIFwKKwkJ
CS0tZnRhaWwgIkdfRU5EX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFpbCAiI2VuZGlmXG4iIFwKKwkJ
CS0tZnByb2QgIiNpbmNsdWRlIDxAZmlsZW5hbWVAPlxuXG4iIFwKKwkJCS0tZXByb2QgIiNkZWZp
bmUgR0RPTV9UWVBFX0BFTlVNU0hPUlRAIEBlbnVtX25hbWVAX2dldF90eXBlKClcblxuIiBcCisJ
CQktLWVwcm9kICJXRUJLSVRfQVBJIEdUeXBlXG5AZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKTtc
blxuIiBcCisJCQkkKGdkb21ndGtfaF9hcGkpIHwgXAorCQkJc2VkICdzLFdlYktpdC9ndGsvLCwn
IHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxnZG9tLCcgfCBcCisJCXNlZCAncyxHRE9NX1RZUEVfS0lU
LEdET01fVFlQRSwnIFwKKwkJKSA+IHhnZW4tY2d0aCBcCisJJiYgKGNtcCAtcyB4Z2VuLWNndGgg
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oIHx8IGNwIHhnZW4tY2d0aCBXZWJLaXQv
Z3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgpIFwKKwkmJiBybSAtZiB4Z2VuLWNndGggXAorCSYm
IGVjaG8gdGltZXN0YW1wID4gJChARikKKworIyAgICAgICAgICAgICAgLS1maGVhZCAiI2luY2x1
ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPlxuXG4iIAorCitEZXJpdmVkU291cmNlcy9nZG9tZW51
bXR5cGVzLmNwcDogJChnZG9tZ3RrX2hfYXBpKSBHTlVtYWtlZmlsZQorCShjZCAkKHNyY2Rpcikg
XAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Y29uZmlnLmg+XG4i
IFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuIiBcCisJCQktLWZoZWFk
ICIjaW5jbHVkZSBcIiQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5
cGVzLmhcIlxuXG4iIFwKKwkJCS0tZmhlYWQgImV4dGVybiBcIkNcIiB7XG5cbiIgXAorCQkJLS1m
cHJvZCAiXG4vKiBlbnVtZXJhdGlvbnMgZnJvbSBcIkBmaWxlbmFtZUBcIiAqLyIgXAorCQkJLS12
aGVhZCAic3RhdGljIGNvbnN0IEdAVHlwZUBWYWx1ZSBfQGVudW1fbmFtZUBfdmFsdWVzW10gPSB7
IiBcCisJCQktLXZwcm9kICIgICAgeyBAVkFMVUVOQU1FQCwgXCJAVkFMVUVOQU1FQFwiLCBcIkB2
YWx1ZW5pY2tAXCIgfSwiIFwKKwkJCS0tdnRhaWwgIiAgICB7IDAsIE5VTEwsIE5VTEwgfVxufTtc
blxuIiBcCisJCQktLXZ0YWlsICJHVHlwZSBAZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKVxue1xu
IiBcCisJCQktLXZ0YWlsICIgICAgc3RhdGljIEdUeXBlIHR5cGUgPSAwO1xuXG4iIFwKKwkJCS0t
dnRhaWwgIiAgICBpZiAoIXR5cGUpXG4iIFwKKwkJCS0tdnRhaWwgIiAgICAgICAgdHlwZSA9IGdf
QHR5cGVAX3JlZ2lzdGVyX3N0YXRpYyhcIkBFbnVtTmFtZUBcIiwgX0BlbnVtX25hbWVAX3ZhbHVl
cyk7XG5cbiIgXAorCQkJLS12dGFpbCAiICAgIHJldHVybiB0eXBlO1xufVxuXG4iIFwKKwkJCS0t
ZnRhaWwgIn1cbiIgXAorCQkkKGdkb21ndGtfaF9hcGkpIHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxn
ZG9tLCcgXAorCQkpID4geGdlbi1jZ3RjIFwKKwkmJiBjcCB4Z2VuLWNndGMgJEAgXAorCSYmIHJt
IC1mIHhnZW4tY2d0YworCiAjIEVORCBXRUJLSVQgR1RLKwogIwogIyBGaWxlcyB0aGF0IHdpbGwg
YmUgZGlzdHJpYnV0ZWQKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJl
dmlzaW9uIDM2MDE1KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDEzIEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqIENvcHlyaWdo
dCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAy
MDA3IEFwcGxlIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNo
cmlzdGlhbkBpbWVuZGlvLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKgorICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCiAgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKQEAgLTQyLDYgKzQ0LDEyIEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4
dC5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudExp
c3RlbmVyV2luZG93LmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAK
QEAgLTQ5LDYgKzU3LDEwIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwlncG9pbnRlciB0b0dET00oRG9jdW1l
bnQqIGRvYyk7Cit9CisKIGV4dGVybiAiQyIgewogCiBlbnVtIHsKQEAgLTU3LDYgKzY5LDcgQEAK
ICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAgICBIT1ZFUklOR19PVkVSX0xJ
TkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMTYyLDYg
KzE3NSwxNiBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAgICAgICBHX1RZ
UEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFs
c1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFs
RmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAg
IDAsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdl
YmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICAgICAgR19UWVBFX05P
TkUsIDIsCisgICAgICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKwog
ICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAq
LwpAQCAtMjk0LDYgKzMxNyw1MyBAQAogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0
X2RvbV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1
cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAorICoKKyAqIFJldHVybiB2YWx1
ZTogYSBHZG9tRG9jdW1lbnQKKyAqLworR2RvbURvY3VtZW50KiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9kb21fZG9jdW1lbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2Vi
S2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisJcmV0dXJuIEdE
T01fRE9DVU1FTlQoV2ViQ29yZTo6dG9HRE9NKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkpOworfQor
CisvKiBYWFggVE9ETzogbWFrZSB0aGlzIG5vdCB0YWtlIGZyYW1lKiBhcyBhbiBhcmd1bWVudCwK
KyAqIGFuZCBtYWtlIGl0IHJldHVybiBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzICovCitleHRl
cm4gIkMiIHsKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0V2ViRnJhbWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNvbnN0IGNoYXIgKm5hbWUpOworfQor
CisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyOgorICogQGZyYW1l
OiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIGFkZHMgYW4gZXZlbnQgbGlzdGVuZXIgdG8gdGhl
IGZyYW1lJ3MgZG9jdW1lbnQKKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBuYW1lIG9mIEBmcmFt
ZQorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJL
aXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciogZXZlbnRfdHlwZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgRkFMU0UpOworCisgICAgLy9XZWJLaXRX
ZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKworCXJldHVybiBhZGRf
d2luZG93X2V2ZW50X2xpc3RlbmVyKGZyYW1lLCBjb3JlRnJhbWUsIGV2ZW50X3R5cGUpOworfQor
CisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6IGEgI1dlYktp
dFdlYkZyYW1lCiAgKgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCShy
ZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgSlNfRE9N
X0VWRU5UX0xJU1RFTkVSX05PREVfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfTk9E
RV9ICisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMu
aD4KKworCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisvKiBUT0RPOiByZXR1
cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCByZXF1aXJlcworICog
YSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RPOiBwcm92aWRlIGEg
J3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGliCisgKiBvYmplY3Qg
YXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQorZ2Jvb2xlYW4gYWRk
X2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1cmUpOworfQor
CisjZW5kaWYgLypKU19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9IICovCkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDM2MDE1KQorKysgV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHly
aWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1bWVudC5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYx
LDYgKzYzLDkgQEAKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUgKgogd2Via2l0X3dlYl9mcmFt
ZV9uZXcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAK
K1dFQktJVF9BUEkgR2RvbURvY3VtZW50ICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1
bWVudCAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKwogV0VCS0lUX0FQSSBX
ZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3ICAgICAgIChXZWJL
aXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCkBAIC05Myw2ICs5OCwxMCBAQAogV0VCS0lUX0FQ
SSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2dsb2JhbF9jb250ZXh0
IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCitXRUJLSVRfQVBJIGdib29sZWFuCit3
ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAg
ICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKSW5kZXg6IFdlYktpdC9ndGsvd2Vi
a2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtp
dC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtp
dC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtj
bEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSAorI2Rl
ZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfV0lORE9XX0gKKworI2luY2x1ZGUgPGdsaWIuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKK2V4dGVybiAiQyIgeworLyog
VE9ETzogbWFrZSBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0byBiZSByZXR1cm5lZCBoZXJl
ICovCit9CisKKyNlbmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSCAqLwpJbmRl
eDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wu
bmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUg
IkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIK
KworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisKKwor
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1
ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXaW5kb3cuaCIKKyNpbmNsdWRlICJF
dmVudExpc3RlbmVyTm9kZS5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1
ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJTdHJp
bmdJbXBsLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5o
IgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAid2Via2l0ZXZl
bnQuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisKKyNpbmNs
dWRlIDxnbGliLW9iamVjdC5oPgorCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBkb2MpOworICAgIGdw
b2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOworfQorCitleHRlcm4gIkMiIHsK
KworR19ERUZJTkVfVFlQRShXZWJLaXRFdmVudCwgd2Via2l0X2V2ZW50LCBHX1RZUEVfT0JKRUNU
KTsKKworc3RydWN0IF9XZWJLaXRFdmVudFByaXZhdGUgeworICAgIEV2ZW50KiBldmVudDsKK307
CisKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktpdEV2ZW50UHJpdmF0
ZSkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9ldmVudF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3Qp
Cit7CisgICAgLy9XZWJLaXRFdmVudCogcmVxdWVzdCA9IFdFQktJVF9FVkVOVChvYmplY3QpOwor
ICAgIC8vV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKworICAgIC8v
Z19mcmVlKHByaXYtPnVyaSk7CisKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZXZlbnRfcGFy
ZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X2V2
ZW50X2NsYXNzX2luaXQoV2ViS2l0RXZlbnRDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdf
T0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gd2Via2l0X2V2ZW50X2ZpbmFs
aXplOworCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9m
KFdlYktpdEV2ZW50UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfaW5p
dChXZWJLaXRFdmVudCogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYg
PSBXRUJLSVRfRVZFTlRfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9
IHByaXY7Cit9CisKK1dlYktpdEV2ZW50KiB3ZWJraXRfZXZlbnRfbmV3KHZvaWQpCit7CisgICAg
V2ViS2l0RXZlbnQqIHJlcXVlc3QgPSBXRUJLSVRfRVZFTlQoZ19vYmplY3RfbmV3KFdFQktJVF9U
WVBFX0VWRU5ULCBOVUxMKSk7CisgICAgLy9wcml2LT5ldmVudCA9IGV2ZW50OworCisgICAgcmV0
dXJuIHJlcXVlc3Q7Cit9CisKKy8qCit2b2lkIHdlYmtpdF9ldmVudF9zZXRfdXJpKFdlYktpdEV2
ZW50KiByZXF1ZXN0LCBjb25zdCBnY2hhciogdXJpKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX0VWRU5UKHJlcXVlc3QpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHVyaSk7CisK
KyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworCisgICAgZ19m
cmVlKHByaXYtPnVyaSk7CisgICAgcHJpdi0+dXJpID0gZ19zdHJkdXAodXJpKTsKK30KKyovCitH
X0NPTlNUX1JFVFVSTiBnY2hhciogd2Via2l0X2V2ZW50X2dldF9ldmVudF90eXBlKFdlYktpdEV2
ZW50KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19FVkVO
VChyZXF1ZXN0KSwgTlVMTCk7CisKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1
ZXN0LT5wcml2OworICAgIHJldHVybiBnX3N0cmR1cChwcml2LT5ldmVudC0+dHlwZSgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOworfQorCit2b2lkIHdlYmtpdF9ldmVudF9jYW5jZWxfYnViYmxl
ICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QsIGdib29sZWFuIGNhbmNlbCkKK3sKKyAgICBXZWJLaXRF
dmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworICAgIHByaXYtPmV2ZW50LT5zZXRD
YW5jZWxCdWJibGUoY2FuY2VsKTsKK30KKwordm9pZCB3ZWJraXRfZXZlbnRfcHJldmVudF9kZWZh
dWx0ICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QpCit7CisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBw
cml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5ldmVudC0+cHJldmVudERlZmF1bHQoKTsK
K30KKwordm9pZCB3ZWJraXRfZXZlbnRfc3RvcF9wcm9wYWdhdGlvbiAgKFdlYktpdEV2ZW50ICpy
ZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7
CisgICAgcHJpdi0+ZXZlbnQtPnN0b3BQcm9wYWdhdGlvbigpOworfQorCitXRUJLSVRfQVBJIGdi
b29sZWFuCithZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3ZiwgRnJh
bWUgKmZyYW1lLCBjb25zdCBjaGFyICpuYW1lKTsKKworfSAvLyBleHRlcm4gIkMiCisKK2NsYXNz
IE5vZGVFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE5vZGVFdmVudExpc3RlbmVyPiBjcmVhdGUoR2RvbUV2ZW50VGFy
Z2V0Tm9kZSogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5vZGVFdmVudExpc3RlbmVy
KHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIHVzZUNh
cHR1cmUpOworCisgICAgcHJpdmF0ZToKKyAgICBOb2RlRXZlbnRMaXN0ZW5lcihHZG9tRXZlbnRU
YXJnZXROb2RlKiB3ZikgOiBtX3dmKHdmKSB7IH0KKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlKiBt
X3dmOworfTsKKwordm9pZCBOb2RlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2
ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIHByaW50
Zigibm9kZSBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9N
KGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsICJicm93c2VyLWV2ZW50
Iiwgd2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKK30KKworY2xhc3MgV2luZG93RXZlbnRMaXN0
ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBjcmVhdGUoV2ViS2l0V2ViRnJhbWUqIHdmKSAKKyAg
ICB7IHJldHVybiBhZG9wdFJlZihuZXcgV2luZG93RXZlbnRMaXN0ZW5lcih3ZikpOyB9CisgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCBpc1dpbmRvd0V2ZW50KTsKKwor
ICAgIHByaXZhdGU6CisgICAgV2luZG93RXZlbnRMaXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2Yp
IDogbV93Zih3ZikgeyB9CisgICAgV2ViS2l0V2ViRnJhbWUqIG1fd2Y7Cit9OworCit2b2lkIFdp
bmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCBpc1dpbmRv
d0V2ZW50KQoreworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBwcmludGYoIndpbmRvdyBoYW5k
bGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50KSk7Cisg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsICJicm93c2VyLWV2ZW50Iiwgd2V2LCBpc1dp
bmRvd0V2ZW50LCAmcmV0dmFsKTsKK30KKworZ2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdk
b21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1cmUpCit7CisgICAgV2ViQ29yZTo6Tm9kZSAq
bm9kZSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUod2YpOworICAgIGlmIChu
b2RlID09IE5VTEwgfHwgIW5vZGUtPmlzRXZlbnRUYXJnZXROb2RlKCkpCisgICAgICAgIHJldHVy
biBGQUxTRTsKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBldG4gPSAoc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICo+KG5vZGUpKS0+dG9Ob2RlKCk7CisgICAgaWYg
KGV0biA9PSBOVUxMKQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBSZWZQdHI8Tm9kZUV2
ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gTm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7Cisg
ICAgZXRuLT5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsKKwor
ICAgIHJldHVybiBUUlVFOworCit9IAorCitnYm9vbGVhbiBhZGRfd2luZG93X2V2ZW50X2xpc3Rl
bmVyKFdlYktpdFdlYkZyYW1lICp3ZiwgRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQoreworICAgIERvY3VtZW50KiBkb2Mg
PSBmcmFtZS0+ZG9jdW1lbnQoKTsKKworICAgIFJlZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBs
aXN0ZW5lciA9IFdpbmRvd0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgZG9jLT5hZGRX
aW5kb3dFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB0cnVlKTsKKworICAgIHJldHVybiBU
UlVFOworCit9IAorCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCShyZXZpc2lvbiAz
NTc1OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtNDAsNiArNDAsOSBAQAogCiBHX0JFR0lOX0RFQ0xTCiAKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRFdmVudCBXZWJLaXRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudENsYXNz
IFdlYktpdEV2ZW50Q2xhc3M7CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVxdWVz
dCBXZWJLaXROZXR3b3JrUmVxdWVzdDsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVx
dWVzdENsYXNzIFdlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3M7CiAKSW5kZXg6IFdlYktpdC9ndGsv
d2Via2l0L2dkb21kZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvZ2Rv
bWRlZmluZXMuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVz
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXRUJLSVRf
R0RPTV9ERUZJTkVTX0gKKyNkZWZpbmUgV0VCS0lUX0dET01fREVGSU5FU19ICisKKyNpbmNsdWRl
IDxnbGliLmg+CisKKyNpZmRlZiBHX09TX1dJTjMyCisgICAgI2lmZGVmIEJVSUxESU5HX1dFQktJ
VF9HRE9NCisgICAgICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fZGVjbHNwZWMoZGxsZXhw
b3J0KQorICAgICNlbHNlCisgICAgICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fZGVjbHNw
ZWMoZGxsaW1wb3J0KQorICAgICNlbmRpZgorICAgICNkZWZpbmUgV0VCS0lUX0dET01fT0JTT0xF
VEVfQVBJIFdFQktJVF9HRE9NX0FQSQorI2Vsc2UKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQ
SSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorICAgICNkZWZpbmUgV0VC
S0lUX0dET01fT0JTT0xFVEVfQVBJIFdFQktJVF9HRE9NX0FQSSBfX2F0dHJpYnV0ZV9fKChkZXBy
ZWNhdGVkKSkKKyNlbmRpZgorCisjaWZuZGVmIFdFQktJVF9HRE9NX0FQSQorICAgICNkZWZpbmUg
V0VCS0lUX0dET01fQVBJCisjZW5kaWYKKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0cnVj
dCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdCBHZG9tRE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21ET01PYmplY3RDbGFzcyBHZG9tRE9NT2JqZWN0Q2xhc3M7CisKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQXR0ciBHZG9tQXR0cjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQXR0ckNsYXNzIEdk
b21BdHRyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUJhckluZm8gR2RvbUJhckluZm87Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUJhckluZm9DbGFzcyBHZG9tQmFySW5mb0NsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21DYW52YXNHcmFkaWVudCBHZG9tQ2FudmFzR3JhZGllbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNhbnZhc0dyYWRpZW50Q2xhc3MgR2RvbUNhbnZhc0dyYWRpZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BhdHRlcm4gR2RvbUNhbnZhc1BhdHRlcm47Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BhdHRlcm5DbGFzcyBHZG9tQ2FudmFzUGF0dGVybkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQaXhlbEFycmF5IEdkb21DYW52YXNQaXhl
bEFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQaXhlbEFycmF5Q2xhc3MgR2RvbUNh
bnZhc1BpeGVsQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEIEdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRENsYXNzIEdkb21DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ0RBVEFTZWN0aW9uIEdkb21DREFUQVNl
Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNEQVRBU2VjdGlvbkNsYXNzIEdkb21DREFUQVNl
Y3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2hhcmFjdGVyRGF0YSBHZG9tQ2hhcmFj
dGVyRGF0YTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2hhcmFjdGVyRGF0YUNsYXNzIEdkb21DaGFy
YWN0ZXJEYXRhQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNsaXBib2FyZCBHZG9tQ2xpcGJv
YXJkOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DbGlwYm9hcmRDbGFzcyBHZG9tQ2xpcGJvYXJkQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvbW1lbnQgR2RvbUNvbW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUNvbW1lbnRDbGFzcyBHZG9tQ29tbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21Db25zb2xlIEdkb21Db25zb2xlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db25zb2xlQ2xh
c3MgR2RvbUNvbnNvbGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ291bnRlciBHZG9tQ291
bnRlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ291bnRlckNsYXNzIEdkb21Db3VudGVyQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0NoYXJzZXRSdWxlIEdkb21DU1NDaGFyc2V0UnVsZTsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTQ2hhcnNldFJ1bGVDbGFzcyBHZG9tQ1NTQ2hhcnNldFJ1
bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTRm9udEZhY2VSdWxlIEdkb21DU1NGb250
RmFjZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ZvbnRGYWNlUnVsZUNsYXNzIEdkb21D
U1NGb250RmFjZVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTSW1wb3J0UnVsZSBH
ZG9tQ1NTSW1wb3J0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTSW1wb3J0UnVsZUNsYXNz
IEdkb21DU1NJbXBvcnRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU01lZGlhUnVs
ZSBHZG9tQ1NTTWVkaWFSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NNZWRpYVJ1bGVDbGFz
cyBHZG9tQ1NTTWVkaWFSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1BhZ2VSdWxl
IEdkb21DU1NQYWdlUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUGFnZVJ1bGVDbGFzcyBH
ZG9tQ1NTUGFnZVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUHJpbWl0aXZlVmFs
dWUgR2RvbUNTU1ByaW1pdGl2ZVZhbHVlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NQcmltaXRp
dmVWYWx1ZUNsYXNzIEdkb21DU1NQcmltaXRpdmVWYWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21DU1NSdWxlIEdkb21DU1NSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NSdWxlQ2xh
c3MgR2RvbUNTU1J1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZUxpc3QgR2Rv
bUNTU1J1bGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NSdWxlTGlzdENsYXNzIEdkb21D
U1NSdWxlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZURlY2xhcmF0aW9u
IEdkb21DU1NTdHlsZURlY2xhcmF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZURl
Y2xhcmF0aW9uQ2xhc3MgR2RvbUNTU1N0eWxlRGVjbGFyYXRpb25DbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTU3R5bGVSdWxlIEdkb21DU1NTdHlsZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNTU1N0eWxlUnVsZUNsYXNzIEdkb21DU1NTdHlsZVJ1bGVDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTU3R5bGVTaGVldCBHZG9tQ1NTU3R5bGVTaGVldDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tQ1NTU3R5bGVTaGVldENsYXNzIEdkb21DU1NTdHlsZVNoZWV0Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNTU1ZhbHVlIEdkb21DU1NWYWx1ZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTVmFsdWVDbGFzcyBHZG9tQ1NTVmFsdWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NT
VmFsdWVMaXN0IEdkb21DU1NWYWx1ZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhbHVl
TGlzdENsYXNzIEdkb21DU1NWYWx1ZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NT
VmFyaWFibGVzRGVjbGFyYXRpb24gR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbkNsYXNzIEdkb21DU1NWYXJpYWJs
ZXNEZWNsYXJhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYXJpYWJsZXNSdWxl
IEdkb21DU1NWYXJpYWJsZXNSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYXJpYWJsZXNS
dWxlQ2xhc3MgR2RvbUNTU1ZhcmlhYmxlc1J1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RGF0YWJhc2UgR2RvbURhdGFiYXNlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21EYXRhYmFzZUNsYXNz
IEdkb21EYXRhYmFzZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudEZyYWdtZW50
IEdkb21Eb2N1bWVudEZyYWdtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudEZyYWdt
ZW50Q2xhc3MgR2RvbURvY3VtZW50RnJhZ21lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RG9jdW1lbnQgR2RvbURvY3VtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudENsYXNz
IEdkb21Eb2N1bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudFR5cGUgR2Rv
bURvY3VtZW50VHlwZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRUeXBlQ2xhc3MgR2Rv
bURvY3VtZW50VHlwZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01BcHBsaWNhdGlvbkNh
Y2hlIEdkb21ET01BcHBsaWNhdGlvbkNhY2hlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01BcHBs
aWNhdGlvbkNhY2hlQ2xhc3MgR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGVDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRE9NQ29yZUV4Y2VwdGlvbiBHZG9tRE9NQ29yZUV4Y2VwdGlvbjsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRE9NQ29yZUV4Y2VwdGlvbkNsYXNzIEdkb21ET01Db3JlRXhjZXB0aW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUltcGxlbWVudGF0aW9uIEdkb21ET01JbXBs
ZW1lbnRhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NSW1wbGVtZW50YXRpb25DbGFzcyBH
ZG9tRE9NSW1wbGVtZW50YXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NUGFyc2Vy
IEdkb21ET01QYXJzZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVBhcnNlckNsYXNzIEdkb21E
T01QYXJzZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NU2VsZWN0aW9uIEdkb21ET01T
ZWxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVNlbGVjdGlvbkNsYXNzIEdkb21ET01T
ZWxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NV2luZG93IEdkb21ET01XaW5k
b3c7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVdpbmRvd0NsYXNzIEdkb21ET01XaW5kb3dDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRWxlbWVudCBHZG9tRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tRWxlbWVudENsYXNzIEdkb21FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUVudGl0eSBHZG9tRW50aXR5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbnRpdHlDbGFzcyBH
ZG9tRW50aXR5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVudGl0eVJlZmVyZW5jZSBHZG9t
RW50aXR5UmVmZXJlbmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbnRpdHlSZWZlcmVuY2VDbGFz
cyBHZG9tRW50aXR5UmVmZXJlbmNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50RXhj
ZXB0aW9uIEdkb21FdmVudEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRFeGNl
cHRpb25DbGFzcyBHZG9tRXZlbnRFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RXZlbnQgR2RvbUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudENsYXNzIEdkb21FdmVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21GaWxlIEdkb21GaWxlOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21GaWxlQ2xhc3MgR2RvbUZpbGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmls
ZUxpc3QgR2RvbUZpbGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21GaWxlTGlzdENsYXNzIEdk
b21GaWxlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IaXN0b3J5IEdkb21IaXN0b3J5
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IaXN0b3J5Q2xhc3MgR2RvbUhpc3RvcnlDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFuY2hvckVsZW1lbnQgR2RvbUhUTUxBbmNob3JFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQW5jaG9yRWxlbWVudENsYXNzIEdkb21IVE1MQW5j
aG9yRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQXBwbGV0RWxlbWVudCBH
ZG9tSFRNTEFwcGxldEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBcHBsZXRFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxBcHBsZXRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxBcmVhRWxlbWVudCBHZG9tSFRNTEFyZWFFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MQXJlYUVsZW1lbnRDbGFzcyBHZG9tSFRNTEFyZWFFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxCYXNlRWxlbWVudCBHZG9tSFRNTEJhc2VFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUVsZW1lbnRDbGFzcyBHZG9tSFRNTEJhc2VFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQgR2RvbUhUTUxCYXNl
Rm9udEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCYXNlRm9udEVsZW1lbnRDbGFz
cyBHZG9tSFRNTEJhc2VGb250RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
QmxvY2txdW90ZUVsZW1lbnQgR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxCbG9ja3F1b3RlRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQm9keUVsZW1lbnQgR2RvbUhUTUxC
b2R5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJvZHlFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxCb2R5RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQlJFbGVtZW50
IEdkb21IVE1MQlJFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQlJFbGVtZW50Q2xh
c3MgR2RvbUhUTUxCUkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJ1dHRv
bkVsZW1lbnQgR2RvbUhUTUxCdXR0b25FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
QnV0dG9uRWxlbWVudENsYXNzIEdkb21IVE1MQnV0dG9uRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MQ2FudmFzRWxlbWVudCBHZG9tSFRNTENhbnZhc0VsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxDYW52YXNFbGVtZW50Q2xhc3MgR2RvbUhUTUxDYW52YXNFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxDb2xsZWN0aW9uIEdkb21IVE1MQ29s
bGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTENvbGxlY3Rpb25DbGFzcyBHZG9tSFRN
TENvbGxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERpcmVjdG9yeUVsZW1l
bnQgR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRGly
ZWN0b3J5RWxlbWVudENsYXNzIEdkb21IVE1MRGlyZWN0b3J5RWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MRGl2RWxlbWVudCBHZG9tSFRNTERpdkVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxEaXZFbGVtZW50Q2xhc3MgR2RvbUhUTUxEaXZFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxETGlzdEVsZW1lbnQgR2RvbUhUTUxETGlzdEVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxETGlzdEVsZW1lbnRDbGFzcyBHZG9tSFRNTERM
aXN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRG9jdW1lbnQgR2RvbUhU
TUxEb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERvY3VtZW50Q2xhc3MgR2RvbUhU
TUxEb2N1bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRWxlbWVudCBHZG9tSFRN
TEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxFbGVtZW50Q2xhc3MgR2RvbUhUTUxF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxFbWJlZEVsZW1lbnQgR2RvbUhU
TUxFbWJlZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxFbWJlZEVsZW1lbnRDbGFz
cyBHZG9tSFRNTEVtYmVkRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRmll
bGRTZXRFbGVtZW50IEdkb21IVE1MRmllbGRTZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MRmllbGRTZXRFbGVtZW50Q2xhc3MgR2RvbUhUTUxGaWVsZFNldEVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZvbnRFbGVtZW50IEdkb21IVE1MRm9udEVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb250RWxlbWVudENsYXNzIEdkb21IVE1MRm9udEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZvcm1FbGVtZW50IEdkb21IVE1M
Rm9ybUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb3JtRWxlbWVudENsYXNzIEdk
b21IVE1MRm9ybUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZyYW1lRWxl
bWVudCBHZG9tSFRNTEZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZyYW1l
RWxlbWVudENsYXNzIEdkb21IVE1MRnJhbWVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxGcmFtZVNldEVsZW1lbnQgR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzcyBHZG9tSFRNTEZyYW1lU2V0RWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSGVhZEVsZW1lbnQgR2RvbUhUTUxI
ZWFkRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhlYWRFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxIZWFkRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSGVhZGluZ0Vs
ZW1lbnQgR2RvbUhUTUxIZWFkaW5nRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhl
YWRpbmdFbGVtZW50Q2xhc3MgR2RvbUhUTUxIZWFkaW5nRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MSFJFbGVtZW50IEdkb21IVE1MSFJFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MSFJFbGVtZW50Q2xhc3MgR2RvbUhUTUxIUkVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTEh0bWxFbGVtZW50IEdkb21IVE1MSHRtbEVsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxIdG1sRWxlbWVudENsYXNzIEdkb21IVE1MSHRtbEVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElGcmFtZUVsZW1lbnQgR2RvbUhUTUxJRnJh
bWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSUZyYW1lRWxlbWVudENsYXNzIEdk
b21IVE1MSUZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSW1hZ2VF
bGVtZW50IEdkb21IVE1MSW1hZ2VFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSW1h
Z2VFbGVtZW50Q2xhc3MgR2RvbUhUTUxJbWFnZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTElucHV0RWxlbWVudCBHZG9tSFRNTElucHV0RWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTElucHV0RWxlbWVudENsYXNzIEdkb21IVE1MSW5wdXRFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJc0luZGV4RWxlbWVudCBHZG9tSFRNTElzSW5kZXhF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSXNJbmRleEVsZW1lbnRDbGFzcyBHZG9t
SFRNTElzSW5kZXhFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMYWJlbEVs
ZW1lbnQgR2RvbUhUTUxMYWJlbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMYWJl
bEVsZW1lbnRDbGFzcyBHZG9tSFRNTExhYmVsRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MTGVnZW5kRWxlbWVudCBHZG9tSFRNTExlZ2VuZEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3MgR2RvbUhUTUxMZWdlbmRFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMSUVsZW1lbnQgR2RvbUhUTUxMSUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMSUVsZW1lbnRDbGFzcyBHZG9tSFRNTExJRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGlua0VsZW1lbnQgR2RvbUhUTUxMaW5r
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExpbmtFbGVtZW50Q2xhc3MgR2RvbUhU
TUxMaW5rRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWFwRWxlbWVudCBH
ZG9tSFRNTE1hcEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNYXBFbGVtZW50Q2xh
c3MgR2RvbUhUTUxNYXBFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNYXJx
dWVlRWxlbWVudCBHZG9tSFRNTE1hcnF1ZWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MTWFycXVlZUVsZW1lbnRDbGFzcyBHZG9tSFRNTE1hcnF1ZWVFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxNZW51RWxlbWVudCBHZG9tSFRNTE1lbnVFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWVudUVsZW1lbnRDbGFzcyBHZG9tSFRNTE1lbnVFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNZXRhRWxlbWVudCBHZG9tSFRNTE1ldGFF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWV0YUVsZW1lbnRDbGFzcyBHZG9tSFRN
TE1ldGFFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNb2RFbGVtZW50IEdk
b21IVE1MTW9kRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1vZEVsZW1lbnRDbGFz
cyBHZG9tSFRNTE1vZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9iamVj
dEVsZW1lbnQgR2RvbUhUTUxPYmplY3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
T2JqZWN0RWxlbWVudENsYXNzIEdkb21IVE1MT2JqZWN0RWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MT0xpc3RFbGVtZW50IEdkb21IVE1MT0xpc3RFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MT0xpc3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxPTGlzdEVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudCBHZG9tSFRNTE9w
dEdyb3VwRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudENs
YXNzIEdkb21IVE1MT3B0R3JvdXBFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxPcHRpb25FbGVtZW50IEdkb21IVE1MT3B0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTE9wdGlvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTE9wdGlvbkVsZW1lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uIEdkb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbkNsYXNz
IEdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TFBhcmFncmFwaEVsZW1lbnQgR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudENsYXNzIEdkb21IVE1MUGFyYWdyYXBoRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUGFyYW1FbGVtZW50IEdkb21IVE1MUGFy
YW1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUGFyYW1FbGVtZW50Q2xhc3MgR2Rv
bUhUTUxQYXJhbUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFByZUVsZW1l
bnQgR2RvbUhUTUxQcmVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUHJlRWxlbWVu
dENsYXNzIEdkb21IVE1MUHJlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
UXVvdGVFbGVtZW50IEdkb21IVE1MUXVvdGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MUXVvdGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxRdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTFNjcmlwdEVsZW1lbnQgR2RvbUhUTUxTY3JpcHRFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2NyaXB0RWxlbWVudENsYXNzIEdkb21IVE1MU2NyaXB0RWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2VsZWN0RWxlbWVudCBHZG9tSFRN
TFNlbGVjdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxTZWxlY3RFbGVtZW50Q2xh
c3MgR2RvbUhUTUxTZWxlY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxT
dHlsZUVsZW1lbnQgR2RvbUhUTUxTdHlsZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxTdHlsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFN0eWxlRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudCBHZG9tSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xhc3Mg
R2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxUYWJsZUNlbGxFbGVtZW50IEdkb21IVE1MVGFibGVDZWxsRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxlQ2VsbEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudCBHZG9tSFRN
TFRhYmxlQ29sRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ29sRWxlbWVu
dENsYXNzIEdkb21IVE1MVGFibGVDb2xFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxUYWJsZUVsZW1lbnQgR2RvbUhUTUxUYWJsZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxUYWJsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxlRWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVSb3dFbGVtZW50IEdkb21IVE1MVGFibGVSb3dFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVSb3dFbGVtZW50Q2xhc3MgR2RvbUhU
TUxUYWJsZVJvd0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQgR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVTZWN0aW9uRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGV4dEFyZWFFbGVtZW50IEdkb21I
VE1MVGV4dEFyZWFFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGV4dEFyZWFFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTFRpdGxlRWxlbWVudCBHZG9tSFRNTFRpdGxlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFRpdGxlRWxlbWVudENsYXNzIEdkb21IVE1MVGl0bGVFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxVTGlzdEVsZW1lbnQgR2RvbUhUTUxVTGlzdEVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxVTGlzdEVsZW1lbnRDbGFzcyBHZG9tSFRNTFVMaXN0
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21JbWFnZURhdGEgR2RvbUltYWdlRGF0
YTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSW1hZ2VEYXRhQ2xhc3MgR2RvbUltYWdlRGF0YUNsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lIEdkb21KYXZhU2NyaXB0
Q2FsbEZyYW1lOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lQ2xhc3Mg
R2RvbUphdmFTY3JpcHRDYWxsRnJhbWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tS2V5Ym9h
cmRFdmVudCBHZG9tS2V5Ym9hcmRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tS2V5Ym9hcmRF
dmVudENsYXNzIEdkb21LZXlib2FyZEV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUxv
Y2F0aW9uIEdkb21Mb2NhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTG9jYXRpb25DbGFzcyBH
ZG9tTG9jYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWVkaWFMaXN0IEdkb21NZWRp
YUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lZGlhTGlzdENsYXNzIEdkb21NZWRpYUxpc3RD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWVzc2FnZUV2ZW50IEdkb21NZXNzYWdlRXZlbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lc3NhZ2VFdmVudENsYXNzIEdkb21NZXNzYWdlRXZlbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGVBcnJheSBHZG9tTWltZVR5cGVBcnJh
eTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGVBcnJheUNsYXNzIEdkb21NaW1lVHlwZUFy
cmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlIEdkb21NaW1lVHlwZTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGVDbGFzcyBHZG9tTWltZVR5cGVDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tTW91c2VFdmVudCBHZG9tTW91c2VFdmVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tTW91c2VFdmVudENsYXNzIEdkb21Nb3VzZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbU11dGF0aW9uRXZlbnQgR2RvbU11dGF0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbU11dGF0aW9uRXZlbnRDbGFzcyBHZG9tTXV0YXRpb25FdmVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21OYW1lZE5vZGVNYXAgR2RvbU5hbWVkTm9kZU1hcDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tTmFtZWROb2RlTWFwQ2xhc3MgR2RvbU5hbWVkTm9kZU1hcENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21OYXZpZ2F0b3IgR2RvbU5hdmlnYXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
TmF2aWdhdG9yQ2xhc3MgR2RvbU5hdmlnYXRvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21O
b2RlRmlsdGVyIEdkb21Ob2RlRmlsdGVyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlRmlsdGVy
Q2xhc3MgR2RvbU5vZGVGaWx0ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZSBHZG9t
Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUNsYXNzIEdkb21Ob2RlQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbU5vZGVJdGVyYXRvciBHZG9tTm9kZUl0ZXJhdG9yOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21Ob2RlSXRlcmF0b3JDbGFzcyBHZG9tTm9kZUl0ZXJhdG9yQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbU5vZGVMaXN0IEdkb21Ob2RlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tTm9kZUxpc3RDbGFzcyBHZG9tTm9kZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Tm90YXRpb24gR2RvbU5vdGF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob3RhdGlvbkNsYXNz
IEdkb21Ob3RhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21PdmVyZmxvd0V2ZW50IEdk
b21PdmVyZmxvd0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21PdmVyZmxvd0V2ZW50Q2xhc3Mg
R2RvbU92ZXJmbG93RXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luQXJyYXkg
R2RvbVBsdWdpbkFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21QbHVnaW5BcnJheUNsYXNzIEdk
b21QbHVnaW5BcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21QbHVnaW4gR2RvbVBsdWdp
bjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luQ2xhc3MgR2RvbVBsdWdpbkNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gR2RvbVByb2Nlc3NpbmdJbnN0
cnVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uQ2xhc3Mg
R2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Qcm9n
cmVzc0V2ZW50IEdkb21Qcm9ncmVzc0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Qcm9ncmVz
c0V2ZW50Q2xhc3MgR2RvbVByb2dyZXNzRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
UmFuZ2VFeGNlcHRpb24gR2RvbVJhbmdlRXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21S
YW5nZUV4Y2VwdGlvbkNsYXNzIEdkb21SYW5nZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21SYW5nZSBHZG9tUmFuZ2U7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJhbmdlQ2xhc3Mg
R2RvbVJhbmdlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJlY3QgR2RvbVJlY3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVJlY3RDbGFzcyBHZG9tUmVjdENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21TY3JlZW4gR2RvbVNjcmVlbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU2NyZWVuQ2xhc3Mg
R2RvbVNjcmVlbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxFcnJvciBHZG9tU1FMRXJy
b3I7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTEVycm9yQ2xhc3MgR2RvbVNRTEVycm9yQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldCBHZG9tU1FMUmVzdWx0U2V0OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRDbGFzcyBHZG9tU1FMUmVzdWx0U2V0Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QgR2RvbVNRTFJlc3VsdFNl
dFJvd0xpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzcyBH
ZG9tU1FMUmVzdWx0U2V0Um93TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxUcmFu
c2FjdGlvbiBHZG9tU1FMVHJhbnNhY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFRyYW5z
YWN0aW9uQ2xhc3MgR2RvbVNRTFRyYW5zYWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVN0b3JhZ2VFdmVudCBHZG9tU3RvcmFnZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9y
YWdlRXZlbnRDbGFzcyBHZG9tU3RvcmFnZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVN0b3JhZ2UgR2RvbVN0b3JhZ2U7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0b3JhZ2VDbGFzcyBH
ZG9tU3RvcmFnZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0IEdkb21TdHls
ZVNoZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0Q2xhc3MgR2RvbVN0eWxlU2hl
ZXRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldExpc3QgR2RvbVN0eWxlU2hl
ZXRMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0TGlzdENsYXNzIEdkb21TdHls
ZVNoZWV0TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UZXh0RXZlbnQgR2RvbVRleHRF
dmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dEV2ZW50Q2xhc3MgR2RvbVRleHRFdmVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UZXh0IEdkb21UZXh0OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21UZXh0Q2xhc3MgR2RvbVRleHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVHJlZVdh
bGtlciBHZG9tVHJlZVdhbGtlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVHJlZVdhbGtlckNsYXNz
IEdkb21UcmVlV2Fsa2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVVJRXZlbnQgR2RvbVVJ
RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVVJRXZlbnRDbGFzcyBHZG9tVUlFdmVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRBbmltYXRpb25FdmVudCBHZG9tV2ViS2l0QW5p
bWF0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Q2xh
c3MgR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdl
YktpdENTU1RyYW5zZm9ybVZhbHVlIEdkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZTsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVDbGFzcyBHZG9tV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0VHJhbnNpdGlv
bkV2ZW50IEdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdl
YktpdFRyYW5zaXRpb25FdmVudENsYXNzIEdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tV2hlZWxFdmVudCBHZG9tV2hlZWxFdmVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tV2hlZWxFdmVudENsYXNzIEdkb21XaGVlbEV2ZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uIEdkb21YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25DbGFz
cyBHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
WE1MSHR0cFJlcXVlc3QgR2RvbVhNTEh0dHBSZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Y
TUxIdHRwUmVxdWVzdENsYXNzIEdkb21YTUxIdHRwUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQgR2RvbVhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50Q2xhc3MgR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZCBHZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3MgR2RvbVhNTEh0
dHBSZXF1ZXN0VXBsb2FkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTFNlcmlhbGl6ZXIg
R2RvbVhNTFNlcmlhbGl6ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTFNlcmlhbGl6ZXJDbGFz
cyBHZG9tWE1MU2VyaWFsaXplckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV2YWx1
YXRvciBHZG9tWFBhdGhFdmFsdWF0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXZhbHVh
dG9yQ2xhc3MgR2RvbVhQYXRoRXZhbHVhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQ
YXRoRXhjZXB0aW9uIEdkb21YUGF0aEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBh
dGhFeGNlcHRpb25DbGFzcyBHZG9tWFBhdGhFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tWFBhdGhFeHByZXNzaW9uIEdkb21YUGF0aEV4cHJlc3Npb247Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVhQYXRoRXhwcmVzc2lvbkNsYXNzIEdkb21YUGF0aEV4cHJlc3Npb25DbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhOU1Jlc29sdmVyIEdkb21YUGF0aE5TUmVzb2x2ZXI7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoTlNSZXNvbHZlckNsYXNzIEdkb21YUGF0aE5TUmVzb2x2
ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhSZXN1bHQgR2RvbVhQYXRoUmVzdWx0
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aFJlc3VsdENsYXNzIEdkb21YUGF0aFJlc3VsdENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YU0xUUHJvY2Vzc29yIEdkb21YU0xUUHJvY2Vzc29y
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YU0xUUHJvY2Vzc29yQ2xhc3MgR2RvbVhTTFRQcm9jZXNz
b3JDbGFzczsKKworCisjZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdk
b21fZG9tX29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRVZFTlRfVEFSR0VU
X05PREUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfQVRUUiAgICAgICAgICAgIChnZG9tX2F0dHJfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0JBUl9JTkZPICAgICAgICAgICAgKGdkb21fYmFyX2luZm9fZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19HUkFESUVOVCAgICAgICAgICAgIChnZG9t
X2NhbnZhc19ncmFkaWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0FOVkFTX1BB
VFRFUk4gICAgICAgICAgICAoZ2RvbV9jYW52YXNfcGF0dGVybl9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQ0FOVkFTX1BJWEVMX0FSUkFZICAgICAgICAgICAgKGdkb21fY2FudmFzX3Bp
eGVsX2FycmF5X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DQU5WQVNfUkVOREVSSU5H
X0NPTlRFWFQyRCAgICAgICAgICAgIChnZG9tX2NhbnZhc19yZW5kZXJpbmdfY29udGV4dDJkX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DREFUQV9TRUNUSU9OICAgICAgICAgICAgKGdk
b21fY2RhdGFfc2VjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0hBUkFDVEVS
X0RBVEEgICAgICAgICAgICAoZ2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQ0xJUEJPQVJEICAgICAgICAgICAgKGdkb21fY2xpcGJvYXJkX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9DT01NRU5UICAgICAgICAgICAgKGdkb21fY29tbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ09OU09MRSAgICAgICAgICAgIChnZG9tX2Nv
bnNvbGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NPVU5URVIgICAgICAgICAgICAo
Z2RvbV9jb3VudGVyX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfQ0hBUlNFVF9S
VUxFICAgICAgICAgICAgKGdkb21fY3NzX2NoYXJzZXRfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQ1NTX0ZPTlRfRkFDRV9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX2ZvbnRf
ZmFjZV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfSU1QT1JUX1JVTEUg
ICAgICAgICAgICAoZ2RvbV9jc3NfaW1wb3J0X3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0NTU19NRURJQV9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX21lZGlhX3J1bGVfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19QQUdFX1JVTEUgICAgICAgICAgICAoZ2Rv
bV9jc3NfcGFnZV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfUFJJTUlU
SVZFX1ZBTFVFICAgICAgICAgICAgKGdkb21fY3NzX3ByaW1pdGl2ZV92YWx1ZV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1JVTEUgICAgICAgICAgICAoZ2RvbV9jc3NfcnVsZV9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1JVTEVfTElTVCAgICAgICAgICAgIChn
ZG9tX2Nzc19ydWxlX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19TVFlM
RV9ERUNMQVJBVElPTiAgICAgICAgICAgIChnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1NUWUxFX1JVTEUgICAgICAgICAgICAoZ2Rv
bV9jc3Nfc3R5bGVfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1NUWUxF
X1NIRUVUICAgICAgICAgICAgKGdkb21fY3NzX3N0eWxlX3NoZWV0X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9DU1NfVkFMVUUgICAgICAgICAgICAoZ2RvbV9jc3NfdmFsdWVfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19WQUxVRV9MSVNUICAgICAgICAgICAgKGdkb21f
Y3NzX3ZhbHVlX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19WQVJJQUJM
RVNfREVDTEFSQVRJT04gICAgICAgICAgICAoZ2RvbV9jc3NfdmFyaWFibGVzX2RlY2xhcmF0aW9u
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFSSUFCTEVTX1JVTEUgICAgICAg
ICAgICAoZ2RvbV9jc3NfdmFyaWFibGVzX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0RBVEFCQVNFICAgICAgICAgICAgKGdkb21fZGF0YWJhc2VfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAgICAgKGdkb21fZG9jdW1lbnRf
ZnJhZ21lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPQ1VNRU5UICAgICAgICAg
ICAgKGdkb21fZG9jdW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPQ1VNRU5U
X1RZUEUgICAgICAgICAgICAoZ2RvbV9kb2N1bWVudF90eXBlX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9ET01fQVBQTElDQVRJT05fQ0FDSEUgICAgICAgICAgICAoZ2RvbV9kb21fYXBw
bGljYXRpb25fY2FjaGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9DT1JFX0VY
Q0VQVElPTiAgICAgICAgICAgIChnZG9tX2RvbV9jb3JlX2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfRE9NX0lNUExFTUVOVEFUSU9OICAgICAgICAgICAgKGdkb21fZG9t
X2ltcGxlbWVudGF0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET01fUEFSU0VS
ICAgICAgICAgICAgKGdkb21fZG9tX3BhcnNlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfRE9NX1NFTEVDVElPTiAgICAgICAgICAgIChnZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9XSU5ET1cgICAgICAgICAgICAoZ2RvbV9kb21fd2lu
ZG93X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FTEVNRU5UICAgICAgICAgICAgKGdk
b21fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRU5USVRZICAgICAgICAg
ICAgKGdkb21fZW50aXR5X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FTlRJVFlfUkVG
RVJFTkNFICAgICAgICAgICAgKGdkb21fZW50aXR5X3JlZmVyZW5jZV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfRVZFTlRfRVhDRVBUSU9OICAgICAgICAgICAgKGdkb21fZXZlbnRfZXhj
ZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FVkVOVCAgICAgICAgICAgIChn
ZG9tX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9GSUxFICAgICAgICAgICAg
KGdkb21fZmlsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRklMRV9MSVNUICAgICAg
ICAgICAgKGdkb21fZmlsZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ISVNU
T1JZICAgICAgICAgICAgKGdkb21faGlzdG9yeV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9BTkNIT1JfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYW5jaG9yX2VsZW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQVBQTEVUX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX0FSRUFfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYXJlYV9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0JBU0VfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfYmFzZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9IVE1MX0JBU0VfRk9OVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9iYXNlX2Zv
bnRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CTE9DS1FVT1RF
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Jsb2NrcXVvdGVfZWxlbWVudF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CT0RZX0VMRU1FTlQgICAgICAgICAgICAoZ2Rv
bV9odG1sX2JvZHlfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTEJS
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sYnJfZWxlbWVudF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfSFRNTF9CVVRUT05fRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
YnV0dG9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQ0FOVkFT
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2NhbnZhc19lbGVtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0NPTExFQ1RJT04gICAgICAgICAgICAoZ2RvbV9odG1s
X2NvbGxlY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRElSRUNUT1JZ
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2RpcmVjdG9yeV9lbGVtZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0RJVl9FTEVNRU5UICAgICAgICAgICAgKGdkb21f
aHRtbF9kaXZfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTERfTElT
VF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGRfbGlzdF9lbGVtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0RPQ1VNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9k
b2N1bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MX0VNQkVEX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRklFTERfU0VUX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX2ZpZWxkX3NldF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX0ZPTlRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZm9udF9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZPUk1fRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9IVE1MX0ZSQU1FX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2ZyYW1lX2VsZW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRlJBTUVfU0VUX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9IVE1MX0hFQURfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaGVh
ZF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0hFQURJTkdfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaGVhZGluZ19lbGVtZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9IVE1MSFJfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxocl9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0hUTUxfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfaHRtbF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MSV9GUkFNRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGlfZnJhbWVf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9JTUFHRV9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX0lOUFVUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSVNfSU5ERVhfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaXNfaW5kZXhfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9MQUJFTF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9sYWJlbF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0xFR0VO
RF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9sZWdlbmRfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTExJX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
bGlfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9MSU5LX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTF9NQVBfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWFwX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTUFSUVVFRV9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9tYXJxdWVlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfTUVOVV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9tZW51
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTUVUQV9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9tZXRhX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfTU9EX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX21vZF9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX09CSkVDVF9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTE9fTElTVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbG9fbGlzdF9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX09QVF9HUk9VUF9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9vcHRfZ3JvdXBfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PUFRJT05fRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfT1BU
SU9OU19DT0xMRUNUSU9OICAgICAgICAgICAgKGdkb21faHRtbF9vcHRpb25zX2NvbGxlY3Rpb25f
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfUEFSQUdSQVBIX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX3BhcmFncmFwaF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX1BBUkFNX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3BhcmFt
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfUFJFX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX3ByZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX1FVT1RFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3F1b3RlX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfU0NSSVBUX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX1NFTEVDVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9zZWxl
Y3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9TVFlMRV9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9zdHlsZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX0NBUFRJT05fRUxFTUVOVCAgICAgICAgICAgIChnZG9t
X2h0bWxfdGFibGVfY2FwdGlvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MX1RBQkxFX0NFTExfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfY2Vs
bF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX0NPTF9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21f
aHRtbF90YWJsZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RB
QkxFX1JPV19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9TRUNUSU9OX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9URVhUX0FSRUFfRUxFTUVOVCAgICAgICAgICAgIChnZG9t
X2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hU
TUxfVElUTEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGl0bGVfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTFVfTElTVF9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbHVfbGlzdF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9J
TUFHRV9EQVRBICAgICAgICAgICAgKGdkb21faW1hZ2VfZGF0YV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSkFWQV9TQ1JJUFRfQ0FMTF9GUkFNRSAgICAgICAgICAgIChnZG9tX2phdmFf
c2NyaXB0X2NhbGxfZnJhbWVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0tFWUJPQVJE
X0VWRU5UICAgICAgICAgICAgKGdkb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0xPQ0FUSU9OICAgICAgICAgICAgKGdkb21fbG9jYXRpb25fZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX01FRElBX0xJU1QgICAgICAgICAgICAoZ2RvbV9tZWRpYV9s
aXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NRVNTQUdFX0VWRU5UICAgICAgICAg
ICAgKGdkb21fbWVzc2FnZV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUlN
RV9UWVBFX0FSUkFZICAgICAgICAgICAgKGdkb21fbWltZV90eXBlX2FycmF5X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9NSU1FX1RZUEUgICAgICAgICAgICAoZ2RvbV9taW1lX3R5cGVf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01PVVNFX0VWRU5UICAgICAgICAgICAgKGdk
b21fbW91c2VfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01VVEFUSU9OX0VW
RU5UICAgICAgICAgICAgKGdkb21fbXV0YXRpb25fZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX05BTUVEX05PREVfTUFQICAgICAgICAgICAgKGdkb21fbmFtZWRfbm9kZV9tYXBf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05BVklHQVRPUiAgICAgICAgICAgIChnZG9t
X25hdmlnYXRvcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTk9ERV9GSUxURVIgICAg
ICAgICAgICAoZ2RvbV9ub2RlX2ZpbHRlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
Tk9ERSAgICAgICAgICAgIChnZG9tX25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X05PREVfSVRFUkFUT1IgICAgICAgICAgICAoZ2RvbV9ub2RlX2l0ZXJhdG9yX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9OT0RFX0xJU1QgICAgICAgICAgICAoZ2RvbV9ub2RlX2xpc3Rf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05PVEFUSU9OICAgICAgICAgICAgKGdkb21f
bm90YXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX09WRVJGTE9XX0VWRU5UICAg
ICAgICAgICAgKGdkb21fb3ZlcmZsb3dfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX1BMVUdJTl9BUlJBWSAgICAgICAgICAgIChnZG9tX3BsdWdpbl9hcnJheV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfUExVR0lOICAgICAgICAgICAgKGdkb21fcGx1Z2luX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OICAgICAgICAg
ICAgKGdkb21fcHJvY2Vzc2luZ19pbnN0cnVjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfUFJPR1JFU1NfRVZFTlQgICAgICAgICAgICAoZ2RvbV9wcm9ncmVzc19ldmVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUkFOR0VfRVhDRVBUSU9OICAgICAgICAgICAgKGdk
b21fcmFuZ2VfZXhjZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9SQU5HRSAg
ICAgICAgICAgIChnZG9tX3JhbmdlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9SRUNU
ICAgICAgICAgICAgKGdkb21fcmVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU0NS
RUVOICAgICAgICAgICAgKGdkb21fc2NyZWVuX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9TUUxfRVJST1IgICAgICAgICAgICAoZ2RvbV9zcWxfZXJyb3JfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX1NRTF9SRVNVTFRfU0VUICAgICAgICAgICAgKGdkb21fc3FsX3Jlc3VsdF9z
ZXRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NRTF9SRVNVTFRfU0VUX1JPV19MSVNU
ICAgICAgICAgICAgKGdkb21fc3FsX3Jlc3VsdF9zZXRfcm93X2xpc3RfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX1NRTF9UUkFOU0FDVElPTiAgICAgICAgICAgIChnZG9tX3NxbF90cmFu
c2FjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1RPUkFHRV9FVkVOVCAgICAg
ICAgICAgIChnZG9tX3N0b3JhZ2VfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1NUT1JBR0UgICAgICAgICAgICAoZ2RvbV9zdG9yYWdlX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9TVFlMRV9TSEVFVCAgICAgICAgICAgIChnZG9tX3N0eWxlX3NoZWV0X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9TVFlMRV9TSEVFVF9MSVNUICAgICAgICAgICAgKGdkb21f
c3R5bGVfc2hlZXRfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfVEVYVF9FVkVO
VCAgICAgICAgICAgIChnZG9tX3RleHRfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX1RFWFQgICAgICAgICAgICAoZ2RvbV90ZXh0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9UUkVFX1dBTEtFUiAgICAgICAgICAgIChnZG9tX3RyZWVfd2Fsa2VyX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9VSV9FVkVOVCAgICAgICAgICAgIChnZG9tX3VpX2V2ZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9XRUJfS0lUX0FOSU1BVElPTl9FVkVOVCAgICAg
ICAgICAgIChnZG9tX3dlYl9raXRfYW5pbWF0aW9uX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9XRUJfS0lUX0NTU19UUkFOU0ZPUk1fVkFMVUUgICAgICAgICAgICAoZ2RvbV93
ZWJfa2l0X2Nzc190cmFuc2Zvcm1fdmFsdWVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1dFQl9LSVRfVFJBTlNJVElPTl9FVkVOVCAgICAgICAgICAgIChnZG9tX3dlYl9raXRfdHJhbnNp
dGlvbl9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfV0hFRUxfRVZFTlQgICAg
ICAgICAgICAoZ2RvbV93aGVlbF9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
WE1MX0hUVFBfUkVRVUVTVF9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV94bWxfaHR0cF9yZXF1
ZXN0X2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWE1MX0hUVFBfUkVR
VUVTVCAgICAgICAgICAgIChnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1RfUFJPR1JFU1NfRVZFTlQgICAgICAgICAgICAo
Z2RvbV94bWxfaHR0cF9yZXF1ZXN0X3Byb2dyZXNzX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9YTUxfSFRUUF9SRVFVRVNUX1VQTE9BRCAgICAgICAgICAgIChnZG9tX3htbF9o
dHRwX3JlcXVlc3RfdXBsb2FkX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YTUxfU0VS
SUFMSVpFUiAgICAgICAgICAgIChnZG9tX3htbF9zZXJpYWxpemVyX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9YX1BBVEhfRVZBTFVBVE9SICAgICAgICAgICAgKGdkb21feF9wYXRoX2V2
YWx1YXRvcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWF9QQVRIX0VYQ0VQVElPTiAg
ICAgICAgICAgIChnZG9tX3hfcGF0aF9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX1hfUEFUSF9FWFBSRVNTSU9OICAgICAgICAgICAgKGdkb21feF9wYXRoX2V4cHJlc3Np
b25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9OU19SRVNPTFZFUiAgICAg
ICAgICAgIChnZG9tX3hfcGF0aF9uc19yZXNvbHZlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfWF9QQVRIX1JFU1VMVCAgICAgICAgICAgIChnZG9tX3hfcGF0aF9yZXN1bHRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hTTFRfUFJPQ0VTU09SICAgICAgICAgICAgKGdkb21f
eHNsdF9wcm9jZXNzb3JfZ2V0X3R5cGUoKSkKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpJbmRleDog
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0
L2dkb20uaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L2dkb20uaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNjAgQEAKKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NT2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21BdHRyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21CYXJJbmZvLmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21DYW52YXNHcmFkaWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2Fu
dmFzUGF0dGVybi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21DREFUQVNlY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNoYXJh
Y3RlckRhdGEuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNsaXBib2FyZC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tQ29tbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ29uc29sZS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ291bnRlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NT
Q2hhcnNldFJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU0ZvbnRGYWNlUnVsZS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTSW1wb3J0UnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tQ1NTTWVkaWFSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NQYWdlUnVsZS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUNTU1J1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1J1bGVMaXN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21DU1NTdHlsZVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1N0eWxlU2hl
ZXQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ZhbHVlLmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21DU1NWYWx1ZUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NWYXJpYWJsZXNSdWxlLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21EYXRhYmFzZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRG9j
dW1lbnRGcmFnbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRG9jdW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbURvY3VtZW50VHlwZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9N
QXBwbGljYXRpb25DYWNoZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NQ29yZUV4Y2VwdGlv
bi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NSW1wbGVtZW50YXRpb24uaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbURPTVBhcnNlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NU2VsZWN0
aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUVudGl0eS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tRW50aXR5UmVmZXJlbmNlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21F
dmVudEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRXZlbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUZpbGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUZpbGVMaXN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21IaXN0b3J5Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1M
QW5jaG9yRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEFwcGxldEVsZW1lbnQu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxBcmVhRWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTEJhc2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQmFz
ZUZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQmxvY2txdW90ZUVsZW1l
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCb2R5RWxlbWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tSFRNTEJSRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJ1
dHRvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxDYW52YXNFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQ29sbGVjdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxE
aXZFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRExpc3RFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRW1iZWRFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRmllbGRTZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MRm9udEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxG
b3JtRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZyYW1lRWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTEhlYWRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSGVh
ZGluZ0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIUkVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIdG1sRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTElGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJbWFnZUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJbnB1dEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTExhYmVsRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTExlZ2VuZEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxMSUVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxMaW5rRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRN
TE1hcEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE1lbnVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21IVE1MTWV0YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxNb2RF
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MT2JqZWN0RWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9MaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9wdGlv
bkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxQYXJhbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxQcmVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MUXVvdGVFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MU2NyaXB0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxT
dHlsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTFRhYmxlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxl
Um93RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxUaXRsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxVTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUltYWdlRGF0YS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTG9jYXRpb24u
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1lZGlhTGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tTWVzc2FnZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21NaW1lVHlwZUFycmF5Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21NaW1lVHlwZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
TW91c2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTXV0YXRpb25FdmVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tTmFtZWROb2RlTWFwLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21O
YXZpZ2F0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVGaWx0ZXIuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbU5vZGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVJdGVyYXRvci5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTm9kZUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bU5vdGF0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21PdmVyZmxvd0V2ZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21QbHVnaW5BcnJheS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUGx1
Z2luLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbVByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bVJhbmdlRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21SYW5nZS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tUmVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU2NyZWVuLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21TUUxFcnJvci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU1FM
UmVzdWx0U2V0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxUcmFuc2FjdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tU3RvcmFnZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TdG9yYWdlLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21TdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21T
dHlsZVNoZWV0TGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tVGV4dEV2ZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21UZXh0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21UcmVlV2Fsa2Vy
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21VSUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21XZWJLaXRBbmltYXRpb25FdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVdlYktpdFRyYW5zaXRpb25F
dmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2hlZWxFdmVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bVhNTEh0dHBSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2Fk
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxTZXJpYWxpemVyLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21YUGF0aEV2YWx1YXRvci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhFeGNl
cHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRoRXhwcmVzc2lvbi5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tWFBhdGhOU1Jlc29sdmVyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Y
UGF0aFJlc3VsdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFNMVFByb2Nlc3Nvci5oPgpJbmRl
eDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTIsNiArMiw3IEBACiBXZWJDb3JlIDo9ICQoc3JjZGlyKS9XZWJDb3JlCiAK
IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUIDo9IExBTkdVQUdFX0pBVkFTQ1JJUFQ9MQorRkVB
VFVSRV9ERUZJTkVTX0dET00gOj0gTEFOR1VBR0VfR09CSkVDVD0xCiBTVkdfRkVBVFVSRVMgOj0K
IEhUTUxfRkVBVFVSRVMgOj0KIApAQCAtOSw2ICsxMCw3IEBACiBXRUJDT1JFX0NTU19WQUxVRV9L
RVlXT1JEUyA6PSAkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCiAKIHdlYmNvcmVf
Y3BwZmxhZ3MgKz0gXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJChzcmNkaXIpL1dl
YkNvcmUgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0gXAogCS1JJChzcmNkaXIpL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yayBcCkBAIC0yOSw2ICszMSw3IEBACiAJLUkkKHNyY2Rpcikv
V2ViQ29yZS94bWwgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvaHRtbCBcCiAJLUkkKHNyY2Rpcikv
V2ViQ29yZS9iaW5kaW5ncy9qcyBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9t
IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzIFwKIAktSSQo
c3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcCBcCiAJLUkkKHNyY2Rp
cikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYgXApAQCAtNTUsNyArNTgsNyBA
QAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmx1dC5oIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUkdCQ29sb3IubHV0LmggXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRF
bGVtZW50QmFzZVRhYmxlLmNwcAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVt
ZW50QmFzZVRhYmxlLmNwcCAKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVk
U291cmNlcy9DU1NHcmFtbWFyLmNwcCBcCkBAIC0zNTgsNyArMzYxLDU4NyBAQAogCURlcml2ZWRT
b3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2Vu
dFN0eWxlU2hlZXRzRGF0YS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNwcCBcCi0J
RGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaAorCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUF0dHIu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFTZWN0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTQ2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0lt
cG9ydFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNTU01lZGlhUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNTU1ByaW1pdGl2ZVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2
ZVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0
eWxlRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlUnVsZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVl
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJs
ZXNSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNhbnZhc0dyYWRpZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQYXR0ZXJu
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNhbnZhc1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2Fu
dmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2hhcmFjdGVyRGF0YS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DbGlwYm9h
cmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29u
c29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ291bnRlci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21Db3VudGVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbURPTUltcGxlbWVudGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJzZXIuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21ET01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NU2VsZWN0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1l
bnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVu
dGl0eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlS
ZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRmlsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21GaWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxBcHBsZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcHBsZXRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXJlYUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxC
YXNlRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VGb250RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxDYW52YXNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTERMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MRExpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEb2N1bWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxk
U2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb3Jt
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxG
cmFtZVNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTEhlYWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFk
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxI
dG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MSXNJbmRleEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTElzSW5kZXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MTWFycXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TE1hcnF1ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xp
c3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MT3B0R3JvdXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFn
cmFwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFByZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBy
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNj
cmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MU3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25F
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VGFibGVDb2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVUxpc3RFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSGlzdG9yeS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUtleWJvYXJkRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRp
YUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFMaXN0LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVzc2Fn
ZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJh
eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1vdXNlRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmFtZWRO
b2RlTWFwLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tTmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hdmln
YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlRmlsdGVyLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJ
dGVyYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob3RhdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21Ob3RhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tT3ZlcmZsb3dFdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21PdmVyZmxvd0V2ZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21QbHVnaW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2luLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Q
bHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNl
cHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmVjdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU2NyZWVuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNj
cmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
VGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21UcmVlV2Fsa2VyLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVUlFdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdoZWVsRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2Fk
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21YTUxTZXJpYWxpemVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVhNTFNlcmlhbGl6ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQcm9jZXNzb3IuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nlc3Nvci5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUF0dHIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUF0dHIu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21CYXJJbmZvLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
Q0RBVEFTZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DREFUQVNlY3Rp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NDaGFyc2V0UnVsZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUNTU0ltcG9ydFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0ltcG9y
dFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NNZWRpYVJ1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU01lZGlhUnVsZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ByaW1p
dGl2ZVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQcmltaXRpdmVW
YWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1J1bGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTUnVs
ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVSdWxlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21DU1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21D
U1NTdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFy
aWFibGVzRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJp
YWJsZXNSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNS
dWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzR3JhZGllbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc0dyYWRpZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzUGF0dGVybi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNh
bnZhc1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1Bp
eGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNoYXJhY3RlckRhdGEu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNoYXJhY3RlckRhdGEuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DbGlwYm9hcmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvbW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvbW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21Db25zb2xlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ291bnRlci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbURPTUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21E
T01JbXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NSW1w
bGVtZW50YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01QYXJzZXIuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbURPTVNlbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NV2lu
ZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01XaW5kb3cuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVu
dEZyYWdtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudEZyYWdt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudFR5cGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRW50aXR5LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUVu
dGl0eVJlZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUV2ZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUV2ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21FdmVudEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUZpbGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUZpbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21GaWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRmls
ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQW5jaG9yRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFuY2hvckVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFwcGxldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MQXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxCUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCUkVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTEJvZHlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJ1dHRv
bkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCdXR0b25FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENhbnZhc0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxDYW52YXNFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTERMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTERMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEaXJl
Y3RvcnlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRGlyZWN0
b3J5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEaXZFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRGl2RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZvcm1F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MSFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TEhlYWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVhZEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVhZGluZ0VsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEh0bWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTElGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTEltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTElt
YWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJbnB1dEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSXNJbmRleEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxMSUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGFi
ZWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExlZ2VuZEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMZWdlbmRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExpbmtFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
TWFycXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNYXJx
dWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZW51RWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1lbnVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MTW9kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT0xp
c3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT0xpc3RFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9iamVjdEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MT3B0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxQYXJhZ3JhcGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBh
cmFtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFtRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxQcmVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTFNjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNlbGVjdEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxUYWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
VGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFi
bGVSb3dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRleHRBcmVhRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUaXRsZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSGlzdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSGlzdG9y
eS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSW1hZ2VEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUtl
eWJvYXJkRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUtleWJvYXJkRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21NZWRpYUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lZGlhTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lc3NhZ2VFdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVzc2FnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1p
bWVUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWltZVR5cGVBcnJheS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NdXRhdGlv
bkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NdXRhdGlvbkV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTmFtZWROb2RlTWFwLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21OYXZpZ2F0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5hdmln
YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbU5vZGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21O
b2RlRmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlRmlsdGVyLmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21Ob2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUxp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob3RhdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm90YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21PdmVyZmxvd0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21PdmVy
Zmxvd0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1Z2luLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21QbHVnaW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1
Z2luQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2Nlc3NpbmdJbnN0cnVj
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2dyZXNzRXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
UmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SYW5nZUV4Y2VwdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21SZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU2NyZWVuLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21TdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHlsZVNo
ZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3R5bGVTaGVldExpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
VGV4dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRleHRFdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVHJl
ZVdhbGtlci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVVJRXZlbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21XZWJLaXRBbmltYXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVdlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdo
ZWVsRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdoZWVsRXZlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbVhNTFNlcmlhbGl6ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVhNTFNlcmlhbGl6ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YU0xUUHJvY2Vz
c29yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YU0xUUHJvY2Vzc29yLmggIFwK
KwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3Bw
IFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnku
aCAKIAogSURMX0JJTkRJTkdTICs9ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgXApAQCAt
NzAxLDYgKzEyODQsMTYgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TdHJpbmdTb3VyY2VQcm92aWRlci5oIFwKKwlXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUJpbmRpbmcuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRp
bmcuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwIFwKKwlXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dk
b20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJp
dmF0ZUdkb21ET01PYmplY3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRh
cmdldE5vZGUuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUu
Y3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUu
aCBcCiAJV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIFwKIAlXZWJDb3JlL2JyaWRnZS9O
UF9qc29iamVjdC5oIFwKIAlXZWJDb3JlL2JyaWRnZS9jL2NfY2xhc3MuY3BwIFwKQEAgLTIwMDgs
OSArMjYwMSwxMiBAQAogIyAtLS0tCiBpZiBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
CiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlM9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAotCURlcml2ZWRTb3VyY2Vz
L0pTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAKKwlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0
aW9uQ2FjaGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NQXBwbGljYXRpb25DYWNoZS5jcHAK
IAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNh
dGlvbkNhY2hlLmlkbApAQCAtMjA1Miw2ICsyNjQ4LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX0RB
VEFCQVNFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfREFUQUJBU0U9MQor
RkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX0RBVEFCQVNFPTEKIAogd2ViY29yZV9idWls
dF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9KU0RhdGFiYXNlLmNwcCBcCkBAIC0yMDYz
LDcgKzI2NjAsMjcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvSlNTUUxUcmFuc2FjdGlvbi5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNh
Y3Rpb24uaAorCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbURhdGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFiYXNlLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRT
ZXRSb3dMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbURhdGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21EYXRh
YmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTEVycm9yLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbVNRTFJlc3VsdFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FM
UmVzdWx0U2V0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0Um93
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0Um93TGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxUcmFuc2FjdGlvbi5oCiAKIElETF9CSU5ESU5H
UyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmlkbCBcCkBAIC0yMTM4LDEyICsyNzU1
LDIxIEBACiAjIC0tLS0KIGlmIEVOQUJMRV9ET01fU1RPUkFHRQogRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQgKz0gRU5BQkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9
IEVOQUJMRV9ET01fU1RPUkFHRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvSlNTdG9yYWdlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmgg
XAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMv
SlNTdG9yYWdlRXZlbnQuaAorCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3Jh
Z2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TdG9yYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21T
dG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21TdG9yYWdlRXZlbnQuaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlLmlkbCBcCkBAIC0yMjAzLDYgKzI4MjksNyBAQAogIyAtLS0tCiBp
ZiBFTkFCTEVfVklERU8KIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9WSURF
Tz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfVklERU89MQogCiBIVE1MX0ZFQVRV
UkVTICs9IEVOQUJMRV9WSURFTz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1ZJREVP
PTEKQEAgLTIyMjUsNyArMjg1MiwzNSBAQAogCURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9K
U1ZvaWRDYWxsYmFjay5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTVm9pZENhbGxiYWNrLmgKKwlE
ZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEF1ZGlvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXVkaW9FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxTb3VyY2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTb3VyY2VFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFFcnJvci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tVGltZVJhbmdlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21U
aW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tVm9pZENhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTEF1ZGlvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZWRp
YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZWRpYUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU291cmNlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNvdXJjZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tTWVkaWFFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVk
aWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRpbWVSYW5nZXMuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRpbWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVZvaWRDYWxsYmFjay5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9odG1sL0hU
TUxBdWRpb0VsZW1lbnQuaWRsIFwKQEAgLTIyNjksNiArMjkyNCw3IEBACiAjIC0tLS0KIGlmIEVO
QUJMRV9YUEFUSAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hQQVRIPTEK
K0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9YUEFUSD0xCiAKIHdlYmNvcmVfY3BwZmxh
Z3MgKz0gLURFTkFCTEVfWFBBVEg9MQogCkBAIC0yMjg0LDcgKzI5NDAsMjcgQEAKIAlEZXJpdmVk
U291cmNlcy9KU1hQYXRoUmVzdWx0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0aFJlc3Vs
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuY3BwIFwKLQlEZXJpdmVkU291cmNl
cy9YUGF0aEdyYW1tYXIuaAorCURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WFBhdGhFdmFsdWF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21YUGF0aEV4cHJlc3Npb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhF
eHByZXNzaW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21YUGF0aFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3VsdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRo
RXhwcmVzc2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFeHByZXNz
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tWFBhdGhSZXN1bHQuaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUveG1s
L1hQYXRoRXZhbHVhdG9yLmlkbCBcCkBAIC0yMzQ5LDYgKzMwMjUsNyBAQAogIyAtLS0tCiBpZiBF
TkFCTEVfWFNMVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hTTFQ9MQor
RkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1hTTFQ9MQogCiB3ZWJjb3JlX2NwcGZsYWdz
ICs9IC1ERU5BQkxFX1hTTFQ9MQogCkBAIC0yMzcyLDYgKzMwNDksNyBAQAogIyAtLS0tCiBpZiBF
TkFCTEVfU1ZHCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHPTEKKyNG
RUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHPTEgLSBiaWcgVE9ETyEgOikKIAogV0VC
Q09SRV9DU1NfUFJPUEVSVFlfTkFNRVMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTUHJvcGVydHlO
YW1lcy5pbiAKIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTICs9ICQoV2ViQ29yZSkvY3NzL1NW
R0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTI2NDksNiArMzMyNywyNzMgQEAKIAlEZXJpdmVkU291
cmNlcy9TVkdOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwCiAKK25v
dC15ZXQ6CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbHRHbHlw
aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQWx0R2x5cGhFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZUNvbG9yRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmltYXRlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkQW5n
bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0FuaW1hdGVkQm9vbGVhbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEVudW1l
cmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEludGVnZXIuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmltYXRlZExlbmd0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdB
bmltYXRlZExlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWROdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQW5pbWF0ZWROdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Fu
aW1hdGVkTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZE51
bWJlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFByZXNlcnZlQXNw
ZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUmVjdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0FuaW1hdGVkU3RyaW5nLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1h
dGVkU3RyaW5nLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0NpcmNsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ2lyY2xlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NsaXBQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHQ29sb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29sb3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0N1cnNvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0RlZmluaXRpb25TcmNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Rl
ZmluaXRpb25TcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEZWZzRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEZWZzRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
RGVzY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RvY3VtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdFbGVtZW50SW5zdGFuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1l
bnRJbnN0YW5jZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudEluc3Rh
bmNlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsbGlwc2VFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRXhjZXB0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUJsZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdGRUJsZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9uZW50VHJh
bnNmZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9uZW50VHJh
bnNmZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb21wb3NpdGVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
RUZsb29kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZsb29kRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jQUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jQUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZFRnVuY0JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0JF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRkVGdW5jUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVG
dW5jUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGRU1lcmdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRkVPZmZzZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVQb2ludExp
Z2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVBvaW50TGlnaHRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZFVGlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVU
aWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGaWx0ZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRm9udEZhY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250
RmFjZUZvcm1hdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VG
b3JtYXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZU5hbWVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
b250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR2x5cGhF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0dyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHSW1h
Z2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ltYWdlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGVuZ3RoTGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdMaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHTWFya2VyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdNYXJrZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXNrRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXNrRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHTWF0cml4LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hdHJp
eC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWV0YWRhdGFFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR01ldGFkYXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdN
aXNzaW5nR2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXIuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdOdW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR051bWJlckxpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhaW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhaW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHUGF0aFNlZy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1BhdGhTZWdBcmNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Bh
dGhTZWdBcmNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0FyY1JlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY1Ntb290aEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGhSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9R
dWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnTGluZXRvQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhT
ZWdMaW5ldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvUmVsLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQYXRoU2VnTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTW92ZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnTW92ZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhT
ZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdHRlcm5FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdHRlcm5FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdQb2ludC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9pbnRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1BvaW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWdvbkVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWdvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdQb2x5bGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdSZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUmVuZGVyaW5nSW50ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JlbmRl
cmluZ0ludGVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU1ZHRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdTVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NjcmlwdEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NldEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
U3RvcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RvcEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0cmluZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHU3RyaW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3R5bGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0eWxlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdTd2l0Y2hFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTeW1ib2xFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N5bWJvbEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1RSZWZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1RSZWZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUU3BhbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVFNwYW5FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1RleHRQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUaXRsZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdUcmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVHJh
bnNmb3JtLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUcmFuc2Zvcm1MaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1VuaXRUeXBlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdVbml0VHlwZXMu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHVXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVmlld0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1pvb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
Vkdab29tRXZlbnQuaCAKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N2Zy9FbGVtZW50
VGltZUNvbnRyb2wuaWRsIFwKIAlXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5pZGwgXApAQCAtMzIy
OCwzNiArNDE3Myw0MiBAQAogIyBTVkcgRmVhdHVyZXMKIGlmIEVOQUJMRV9TVkdfVVNFCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX1VTRT0xCisjRkVBVFVSRV9ERUZJ
TkVTX0dET00gKz0gRU5BQkxFX1NWR19VU0U9MSAjIGJpZyBUT0RPIQogU1ZHX0ZFQVRVUkVTICs9
IEVOQUJMRV9TVkdfVVNFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX1VTRT0x
CiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEKKyNGRUFUVVJFX0RFRklO
RVNfR0RPTSArPSBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEgCiBTVkdfRkVBVFVSRVMgKz0g
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X1NWR19GT1JFSUdOX09CSkVDVD0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZPTlRTCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKKyNGRUFUVVJFX0RF
RklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVf
U1ZHX0ZPTlRTPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZPTlRTPTEKIGVu
ZGlmCiAKIGlmIEVOQUJMRV9TVkdfRklMVEVSUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX1NWR19GSUxURVJTPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVf
U1ZHX0ZJTFRFUlM9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCiB3ZWJj
b3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GSUxURVJTPTEKIGVuZGlmCiAKIGlmIEVOQUJM
RV9TVkdfQVNfSU1BR0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdf
QVNfSU1BR0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9
MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQogd2ViY29yZV9jcHBmbGFn
cyArPSAtREVOQUJMRV9TVkdfQVNfSU1BR0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19BTklN
QVRJT04KIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9O
PTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBTVkdf
RkVBVFVSRVMgKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogd2ViY29yZV9jcHBmbGFncyArPSAt
REVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIGVuZGlmCkBAIC0zMjY1LDEzICs0MjE2LDE0IEBACiAj
IFNWRyB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1lcyAobmVlZCB0byBwYXNzIGFuIGV4dHJhIGZsYWcg
aWYgc3ZnIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBhcmUgZW5hYmxlZCkKIERlcml2ZWRTb3VyY2Vz
L1NWR05hbWVzLmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOwogRGVy
aXZlZFNvdXJjZXMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJpdmVkU291cmNl
cy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKK0Rlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50V3Jh
cHBlckZhY3RvcnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKIAog
aWYgU1ZHX0ZMQUdTCiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA6ICQoV2Vi
Q29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAkKFdlYkNv
cmUpL3N2Zy9zdmdhdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUp
L3N2Zy9zdmdhdHRycy5pbiAtLWV4dHJhRGVmaW5lcyAiJChTVkdfRkVBVFVSRVMpIiAtLW91dHB1
dERpciAiJChHRU5TT1VSQ0VTKSIKKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3Jl
KS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmluZXMgIiQoU1ZHX0ZFQVRVUkVTKSIgLS1vdXRw
dXREaXIgIiQoR0VOU09VUkNFUykiIAogZWxzZQogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZh
Y3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2
Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0t
YXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNF
UykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChX
ZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmlu
IC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIAogZW5kaWYgIyBTVkdfRkxBR1MKIApAQCAt
MzI4MCw3ICs0MjMyLDcgQEAKIERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuaDogRGVyaXZlZFNv
dXJjZXMvWExpbmtOYW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwIDog
JChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmlu
Ci0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2Vi
Q29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQ
RVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkv
c3ZnL3hsaW5rYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogCiBlbmRpZiAj
IEVORCBFTkFCTEVfU1ZHCiAKQEAgLTMzNjEsMTYgKzQzMTMsMTYgQEAKIAogaWYgSFRNTF9GTEFH
UwogRGVyaXZlZFNvdXJjZXMvSFRNTE5hbWVzLmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1l
cy5wbCAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
ICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJD
b3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLWV4dHJhRGVmaW5lcyAiJChIVE1MX0ZF
QVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1l
cy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1leHRy
YURlZmluZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAK
IGVsc2UKIERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2Vf
bmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAkKFdlYkNvcmUpL2h0bWwv
SFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2Ny
aXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQo
V2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09V
UkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3Mg
JChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogZW5kaWYg
IyBIVE1MX0ZMQUdTCiAKIERlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmg6IERlcml2ZWRTb3VyY2Vz
L1hNTE5hbWVzLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwOiAkKFdlYkNvcmUp
L2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluCi0JJChQRVJMKSAt
SSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3ht
bGF0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNv
cmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5p
biAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiAKIHZwYXRoICUuaWRsID0gXAogICAgICQo
V2ViQ29yZSkgXApAQCAtMzM4Niw2ICs0MzM4LDE1IEBACiAgICAgJChXZWJDb3JlKS94bWwgXAog
ICAgICQoV2ViQ29yZSkvcGx1Z2lucwogCitEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbSUuaDog
RGVyaXZlZFNvdXJjZXMvR2RvbSUuaDsKKworRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb20lLmNw
cDogRGVyaXZlZFNvdXJjZXMvR2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9HZG9tJS5oOiBE
ZXJpdmVkU291cmNlcy9HZG9tJS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL0dkb20lLmNwcDogJS5p
ZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckdPYmplY3QucG0KKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1
ZGUgJChXZWJDb3JlKS9kb20gLS1pbmNsdWRlICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUgJChX
ZWJDb3JlKS9jc3MgLS1pbmNsdWRlICQoV2ViQ29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJDb3Jl
KS94bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkvc3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMp
IiAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTX0dET00pIiAtLWdlbmVyYXRvciBHT2JqZWN0
ICQ8CisKIERlcml2ZWRTb3VyY2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiBE
ZXJpdmVkU291cmNlcy9KUyUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM0MDEsNiArNDM2Miw3
IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAog
CVdlYkNvcmUvY3NzL3F1aXJrcy5jc3MgXAogCVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBc
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50
VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJp
dmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRv
a2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2Rl
LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FdmVudFRhcmdl
dE5vZGUuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIiAvKiB5dWtrOiBUT0RP
IC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2lu
Y2x1ZGUgIkdkb21FdmVudC5oIgorZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBMQVNU
X1NJR05BTAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0g
eyAwLCB9OworCisKK1dlYkNvcmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRf
cHJpdmF0ZShHZG9tRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0KQoreworICAgIEdET01FdmVudFRh
cmdldE5vZGUgKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NRXZlbnRUYXJnZXROb2Rl
Kj4oZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkp
OworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihyZXMtPmltcGwo
KSk7Cit9CisKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbUV2ZW50VGFyZ2V0
Tm9kZSwgZ2RvbV9ldmVudF90YXJnZXRfbm9kZSwgR0RPTV9UWVBFX05PREUpOworCisvKgorc3Ry
dWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6RXZl
bnRUYXJnZXROb2RlICppdGVtOworfTsgIAorKi8KKworI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdF
VF9OT0RFX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2Jq
KSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0
ZSkpCisKKy8qCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdkb21F
dmVudFRhcmdldE5vZGUgKnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0p
Cit7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RB
UkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPml0ZW0gPSBpdGVtOwor
fQorKi8KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZShHT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0ID0gR0RP
TV9FVkVOVF9UQVJHRVRfTk9ERShvYmplY3QpOworICAgIEdkb21FdmVudFRhcmdldE5vZGVQcml2
YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworICAgIAorICAgIEdfT0JKRUNUX0NMQVNTKGdk
b21fZXZlbnRfdGFyZ2V0X25vZGVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30K
Kworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9jbGFzc19pbml0KEdkb21FdmVu
dFRhcmdldE5vZGVDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIGV2ZW50X3NpZ25hbHNbQlJP
V1NFUl9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICBHX1RZ
UEVfRlJPTV9DTEFTUyhyZXF1ZXN0Q2xhc3MpLAorICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJ
R05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgIDAsCisgICAgICAgIE5V
TEwsCisgICAgICAgIE5VTEwsCisgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9C
T09MRUFOLAorICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgR0RPTV9UWVBFX0VWRU5U
LCBHX1RZUEVfQk9PTEVBTik7CisKKyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5m
aW5hbGl6ZSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZmluYWxpemU7CisKKyAgICAvKmdfdHlw
ZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihHZG9tRXZlbnRUYXJnZXRO
b2RlUHJpdmF0ZSkpOyovCit9CisKK3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVf
aW5pdChHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0KQoreworICAgIC8qR2RvbUV2ZW50VGFy
Z2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRF
KHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OyovCit9ICAgCisKK30gLyogZXh0
ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVu
dFRhcmdldE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0
ZUdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxh
bHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKwor
CisjaWZuZGVmIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9N
RXZlbnRUYXJnZXROb2RlX0hfX19QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUdkb21Ob2RlLmgiCitjbGFzcyBXZWJDb3JlOjpOb2RlOworCit0eXBlZGVm
IHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOworCitXRUJL
SVRfQVBJIFdlYkNvcmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0
ZShHZG9tRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0KTsKKworI2VuZGlmCisKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0
UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgi
CisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9t
RXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworY2xhc3MgR1N0
cmluZ0NvbnZlcnQgeworICAgIHB1YmxpYzoKKyAgICBjb25zdCBnY2hhciAqbV9zdHI7CisgICAg
R1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJk
dXAocy51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21p
Y1N0cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsgfQorfTsKKworZXh0ZXJuICJDIiB7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAo
R1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cikKKwordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9pbml0X2V2ZW50X3RhcmdldF9ub2RlIChHZG9tRXZlbnRUYXJnZXROb2RlICp0aGl6KQorewor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworICAgIC8qCisgICAgV2ViQ29yZTo6RXZlbnRU
YXJnZXROb2RlICogaXRlbSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUodGhp
eik7CisgICAgV2ViQ29yZTo6U3RyaW5nIF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnID0g
V2ViQ29yZTo6U3RyaW5nKGV2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICBpdGVtLT5p
bml0RXZlbnRUYXJnZXROb2RlKF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICAq
LworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29u
IExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tl
ciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICov
CisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5j
bHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHRE9N
T2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKworZXh0ZXJuICJD
IiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbURPTU9iamVjdCwgZ2RvbV9kb21fb2JqZWN0LCBHX1RZ
UEVfT0JKRUNUKTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSB7CisgICAgIEdET01P
YmplY3QgKm1fbm9kZTsKK307ICAKKworI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZB
VEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRE9N
X09CSkVDVCwgR2RvbURPTU9iamVjdFByaXZhdGUpKQorCit2b2lkCitnZG9tX2RvbV9vYmplY3Rf
c2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCwgR0RPTU9iamVjdCAqIGl0ZW0pCit7
CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BS
SVZBVEUocmVxdWVzdCk7CisgICAgcHJpdi0+bV9ub2RlID0gaXRlbTsKKyAgICAvKnByaXYtPm1f
bm9kZS0+aW1wbCgpLT5yZWYoKTsqLworfQorCitHRE9NT2JqZWN0ICoKK2dkb21fZG9tX29iamVj
dF9nZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0KQoreworICAgIEdkb21ET01PYmpl
Y3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOwor
ICAgIHJldHVybiBwcml2LT5tX25vZGU7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVj
dF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgR2RvbURPTU9iamVjdCogcmVxdWVz
dCA9IEdET01fRE9NX09CSkVDVChvYmplY3QpOworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBw
cml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICAKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5k
ZXJlZigpOyovCisgICAgZGVsZXRlIHByaXYtPm1fbm9kZTsgLyogY2FsbHMgbV9pbXBsLT5kZXJl
ZigpICovCisKKyAgICBHX09CSkVDVF9DTEFTUyhnZG9tX2RvbV9vYmplY3RfcGFyZW50X2NsYXNz
KS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2Ns
YXNzX2luaXQoR2RvbURPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpF
Q1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2RvbV9vYmplY3RfZmluYWxp
emU7CisgICAgCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6
ZW9mKEdkb21ET01PYmplY3RQcml2YXRlKSk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29i
amVjdF9pbml0KEdkb21ET01PYmplY3QqIHJlcXVlc3QpCit7CisgICAgR2RvbURPTU9iamVjdFBy
aXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAg
cmVxdWVzdC0+cHJpdiA9IHByaXY7Cit9ICAgCisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuCisgKi8KKworI2lmbmRlZiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fCisjZGVm
aW5lIF9fR2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgor
I2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2RvbUV2ZW50VGFyZ2V0Tm9k
ZUNsYXNzOworCisjZGVmaW5lIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSAgICAgICAgICAg
IChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRVZFTlRf
VEFSR0VUX05PREUob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgo
b2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlKSkK
KyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9D
SEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdk
b21FdmVudFRhcmdldE5vZGVDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05P
REUob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9U
WVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9E
RV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZ
UEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dF
VF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQ
RV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIEdkb21FdmVudFRhcmdldE5vZGVQ
cml2YXRlOworCisjaW5jbHVkZSAiR2RvbU5vZGUuaCIKKworc3RydWN0IF9HZG9tRXZlbnRUYXJn
ZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9k
ZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9B
UEkgR1R5cGUKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJL
SVRfQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9k
ZSAoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAv
KiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisj
aW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisKK2V4
dGVybiAiQyIgeworCit2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5pdF9kb21fb2JqZWN0IChHZG9t
RE9NT2JqZWN0ICp0aGl6KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworCS8qCisg
ICAgV2ViQ29yZTo6RE9NT2JqZWN0ICogaXRlbSA9IGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0
ZSh0aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZG9tX29iamVjdF90eXBlX2FyZyA9IFdl
YkNvcmU6OlN0cmluZyhkb21fb2JqZWN0X3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RE9NT2Jq
ZWN0KF9nX2RvbV9vYmplY3RfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAq
LworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3Qu
aAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9i
amVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTURPTU9iamVjdF9I
X19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRE9NT2JqZWN0X0hfX19QUklWXworI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorR19CRUdJTl9ERUNMUwor
CitjbGFzcyBHRE9NT2JqZWN0OworV0VCS0lUX0FQSSBHRE9NT2JqZWN0KgorZ2RvbV9kb21fb2Jq
ZWN0X2dldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QpOworCitXRUJLSVRfQVBJIHZv
aWQKK2dkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0LCBH
RE9NT2JqZWN0KiBpdGVtKTsKKworR19FTkRfREVDTFMKKyNlbmRpZgorCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9y
eS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4MiBAQAorLyoK
KyAqIFRISVMgRklMRSBJUyBERVJJVkVEIEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFURUQg
RklMRS4KKyAqICBrZWVwaW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9u
ZSBieSBhZGRpbmcKKyAqICBhIG1ha2VfbmFtZXMucGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5n
IGEgc2VwYXJhdGUKKyAqICBnZW5lcmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmggYXMgaW5wdXQuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2Vu
bmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJHZG9tTm9kZS5oIgorI2lu
Y2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiR2RvbUhU
TUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmFzZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUg
Ikdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJvZHlFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRN
TEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRN
TFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTW9kRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRGl2
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAi
R2RvbUhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZpZWxkU2V0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRN
TEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJHZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSGVhZGlu
Z0VsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAi
R2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEh0bWxFbGVtZW50LmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxJbWFn
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUg
Ikdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTExhYmVsRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTWFycXVlZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhU
TUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRHcm91
cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFBhcmFtRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxTY3JpcHRFbGVtZW50LmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxTdHls
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUg
Ikdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVD
ZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlUm93
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21IVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEFy
ZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQmFzZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1M
QlJFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQnV0dG9uRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERpcmVjdG9y
eUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxEaXZFbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRm9udEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
SFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSGVhZEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJ
bWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJbnB1dEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxM
SUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxMaW5rRWxlbWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
SFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTWV0YUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFBhcmFncmFw
aEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFNlbGVjdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRpdGxlRWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCisKKyNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFyZWFFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJhc2VGb250RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCb2R5
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQnV0
dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDb2xFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGlyZWN0b3J5
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERM
aXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvbnRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZGluZ0Vs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSFJF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElG
cmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJc0luZGV4RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNYXJxdWVlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZXRh
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhZ3JhcGhFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQcmVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTY3Jp
cHRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MVUxpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK3R5cGVkZWYgR0RP
TU5vZGUqICgqQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24pKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+KTsKKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBbmNob3JXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEFuY2hvckVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFuY2hvckVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQXBwbGV0V3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxB
cHBsZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBcHBsZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFyZWFXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFyZWFF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCYXNlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNlRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MQmFzZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlQmFzZUZvbnRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VGb250RWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MQmFzZUZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJsb2NrcXVvdGVF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxCbG9ja3F1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCb2R5V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCb2R5RWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MQm9keUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQlJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJSRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MQlJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUJ1dHRvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQnV0dG9uRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVDYW52YXNXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTENhbnZhc0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TENhbnZhc0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNvbEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ29sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNb2RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1vZEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTE1vZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlRGlyZWN0b3J5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXJlY3RvcnlFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxEaXJlY3RvcnlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURpdldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRGl2RWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MRGl2RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVETGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRExpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxETGlzdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlRW1iZWRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEVtYmVkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRW1i
ZWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUZpZWxkU2V0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxGaWVsZFNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZp
ZWxkU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxGb250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9udEVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRm9y
bVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MRm9ybUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGcmFtZVNldFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MRnJhbWVTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZVNldEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZGluZ1dyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MSGVhZGluZ0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRpbmdFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhlYWRXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTEhlYWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIUldyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSFJF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxIUkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSHRtbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSHRtbEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZUlGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSUZyYW1lRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MSUZyYW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVJbWFnZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSW1hZ2VFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxJbWFnZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlSW5wdXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElucHV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZUlzSW5kZXhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElzSW5kZXhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJ
c0luZGV4RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVMYWJlbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MTGFiZWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMYWJl
bEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
TGVnZW5kV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxMZWdlbmRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMZWdlbmRF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxJ
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxMSUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExJRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMaW5rV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxMaW5rRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWFwV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNYXBFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxNYXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcnF1ZWVFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxNYXJxdWVlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVNZW51V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNZW51RWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MTWVudUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlTWV0YVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWV0YUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTE1ldGFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZU9iamVjdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MT2JqZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
T2JqZWN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVPTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MT0xpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPTGlz
dEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
T3B0R3JvdXBXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9wdEdyb3VwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0
R3JvdXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZU9wdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MT3B0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0
aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVQYXJhZ3JhcGhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TFBhcmFncmFwaEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlUGFyYW1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFBhcmFtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
UGFyYW1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZVByZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MUHJlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUHJlRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVRdW90ZVdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MUXVvdGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxRdW90ZUVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2NyaXB0V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxTY3JpcHRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTY3JpcHRFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNlbGVjdFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MU2VsZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTdHlsZVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MU3R5bGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTdHlsZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRh
YmxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
VGFibGVTZWN0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNlbGxX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGV4
dEFyZWFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTFRleHRBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGV4dEFy
ZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZVRpdGxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxUaXRsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRpdGxlRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJs
ZVJvd1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MVGFibGVSb3dFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVJv
d0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
VUxpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTFVMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVUxpc3RFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgc3RhdGljIEhh
c2hNYXA8V2ViQ29yZTo6QXRvbWljU3RyaW5nSW1wbCosIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBl
ckZ1bmN0aW9uPiBtYXA7CisgICAgaWYgKG1hcC5pc0VtcHR5KCkpIHsKKyAgICAgICBtYXAuc2V0
KGFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBbmNob3JXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGFwcGxldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFwcGxldFdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoYXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFyZWFX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJhc2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVCYXNlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChiYXNlZm9udFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUJhc2VGb250V3JhcHBlcik7CisgICAgICAgbWFwLnNldChibG9ja3F1b3Rl
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoYm9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJvZHlXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGJyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQlJXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJ1
dHRvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY2FudmFzVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlQ2FudmFzV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYXB0aW9uVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChjb2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoZGVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChkaXJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXJlY3Rv
cnlXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRpdlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZURpdldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGxUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVETGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZW1iZWRUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVFbWJlZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZmllbGRzZXRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGaWVsZFNldFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoZm9udFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvbnRXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGZvcm1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb3JtV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZy
YW1lV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmcmFtZXNldFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUZyYW1lU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChoMVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhlYWRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChoclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhSV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChodG1sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSHRtbFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoaWZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSUZyYW1lV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChpbWdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJ
bWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW5wdXRUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVJbnB1dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaXNpbmRleFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUlzSW5kZXhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxhYmVs
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGFiZWxXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGxlZ2VuZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxlZ2VuZFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQobGlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMSVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQobGlua1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxpbmtX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1hcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZU1hcFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWFycXVlZVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1lbnVUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVNZW51V3JhcHBlcik7CisgICAgICAgbWFwLnNldChtZXRhVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWV0YVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
b2JqZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT2JqZWN0V3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9MaXN0V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChvcHRncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9w
dEdyb3VwV3JhcHBlcik7CisgICAgICAgbWFwLnNldChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVPcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVQYXJhZ3JhcGhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBhcmFt
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUGFyYW1XcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KHByZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQocVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVF1b3RlV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChzY3JpcHRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTY3JpcHRX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHNlbGVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVNlbGVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc3R5bGVUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVTdHlsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGFibGVUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGJv
ZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KHRkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldCh0ZXh0YXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVRleHRBcmVhV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aXRsZVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVRpdGxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0clRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlUm93V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh1
bFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVVMaXN0V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChjb2xncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChoMlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRp
bmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDRUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg2VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoaW1hZ2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoaW5zVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChrZXlnZW5UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxl
Y3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpc3RpbmdUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRmb290VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQodGhlYWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHhtcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBy
ZVdyYXBwZXIpOworICAgIH0KKyAgICBwcmludGYoImNyZWF0ZUdET01IVE1MV3JhcHBlcjogJXNc
biIsIGVsZW1lbnQtPmxvY2FsTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIENy
ZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbiA9IG1h
cC5nZXQoZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICBpZiAoY3JlYXRlV3JhcHBl
ckZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlckZ1bmN0aW9uKGVsZW1lbnQp
OworICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbGVtZW50KGVsZW1lbnQuZ2V0KCkpOworfQorCit9
CisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFs
cEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisK
KyNpZm5kZWYgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19JTlRfCisjZGVmaW5lIF9fR0RPTUV2
ZW50VGFyZ2V0Tm9kZV9IX19fSU5UXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21Ob2RlLmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01FdmVu
dFRhcmdldE5vZGUgOiBwdWJsaWMgR0RPTU5vZGUgeworCitwdWJsaWM6CisgICAgR0RPTUV2ZW50
VGFyZ2V0Tm9kZShQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGltcGwpIDogR0RPTU5vZGUoaW1w
bCkge30KKyAgICBpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV9FVkVOVF9U
QVJHRVRfTk9ERTsgfQorfTsKKworCitHX0VORF9ERUNMUworI2VuZGlmCisKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAxIEBA
CisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtk
ZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2Ft
dWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKKyAqLworCisvLyBnY2MgMy54IGNhbid0IGhhbmRsZSBpbmNsdWRpbmcgdGhlIEhh
c2hNYXAgcG9pbnRlciBzcGVjaWFsaXphdGlvbiBpbiB0aGlzIGZpbGUKKyNpZiBkZWZpbmVkIF9f
R05VQ19fICYmICFkZWZpbmVkIF9fR0xJQkNYWF9fIC8vIGxlc3MgdGhhbiBnY2MgMy40CisjZGVm
aW5lIEhBU0hfTUFQX1BUUl9TUEVDX1dPUktBUk9VTkQgMQorI2VuZGlmCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIK
KyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmpl
Y3QuaCIKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVk
ZSAiR2RvbUNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1N0eWxl
U2hlZXQuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRp
b24uaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5j
bHVkZSAiR2RvbU5vZGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tTm9kZS5oIgorCisjaW5jbHVkZSAiQXR0ci5oIgorI2luY2x1ZGUgIkNEQVRBU2Vj
dGlvbi5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ29tbWVudC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkVudGl0eS5oIgorI2luY2x1ZGUgIkVudGl0
eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2
ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIkdkb21BdHRyLmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21BdHRyLmgiCisjaW5jbHVkZSAiR2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRl
ICJHZG9tVGV4dC5oIgorI2luY2x1ZGUgIkdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJH
ZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21E
b2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1
ZGUgIkdkb21FbnRpdHkuaCIKKyNpbmNsdWRlICJHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIkdk
b21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNp
bmNsdWRlICJHZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR2RvbU5vdGF0aW9uLmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIK
KyNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNp
bmNsdWRlICJHZG9tQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5j
bHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2lu
Y2x1ZGUgIkNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVk
ZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1
ZGUgIkdkb21DU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGUu
aCIKKyNpbmNsdWRlICJHZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NNZWRp
YVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NT
U3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRXZlbnQuaCIKKworI2luY2x1
ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUNsaXBi
b2FyZC5oIgorI2luY2x1ZGUgIkdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU1l
c3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiR2Rv
bU11dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1
ZGUgIkdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVRleHRFdmVudC5oIgorI2lu
Y2x1ZGUgIkdkb21VSUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdk
b21XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dC5oIgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNZXNzYWdlRXZlbnQu
aCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgor
I2luY2x1ZGUgIk92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisj
aW5jbHVkZSAiVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1ZGUgIldl
YktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmgi
CisjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5oIgorCisjaW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRl
ICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUg
IkhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21IVE1MQWxsQ29sbGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiR2RvbUhUTUxBbGxDb2xs
ZWN0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorLy8gZXJy
Li4uICNpbmNsdWRlICJQcml2YXRlSW50R2RvbU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisvLyBl
cnIuLi4gI2luY2x1ZGUgIkdkb21OYW1lZE5vZGVzQ29sbGVjdGlvbi5oIgorCisjaWYgRU5BQkxF
KERPTV9TVE9SQUdFKQorI2luY2x1ZGUgIkdkb21TdG9yYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJT
dG9yYWdlRXZlbnQuaCIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNpZiAwIC8qIFRPRE8g
Ki8KKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIkdk
b21TVkdab29tRXZlbnQuaCIKKyNpbmNsdWRlICJTVkdab29tRXZlbnQuaCIKKyNlbmRpZgorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoU1ZHKQorI2lmIDAgLyogWFhYIFRPRE8gKi8KKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIkdkb21T
VkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjZW5k
aWYKKyNlbmRpZgorCisjaWYgMAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiR2RvbVNWR0V4
Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlmCisjZW5kaWYKKwor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21DU1NSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DREFUQVNlY3Rpb24uaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNvbW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudEZyYWdtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUVudGl0eS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
RW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob3RhdGlvbi5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bVRleHQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU01lZGlh
UnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
Q1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tS2V5Ym9hcmRFdmVu
dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21NdXRh
dGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21PdmVyZmxvd0V2ZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21UZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVVJRXZlbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tU3RvcmFnZUV2
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBIYXNoTWFw
PHZvaWQqLCBncG9pbnRlcj4gRE9NT2JqZWN0TWFwOwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBn
cG9pbnRlcj4gR2RvbVdyYXBwZXJDYWNoZTsgLyogQVJHISBVTkZBSVIhIEpTV3JhcHBlckNhY2hl
IGlzIGluIERvY3VtZW50ISEgKi8KKworLy8gRm9yIGRlYnVnZ2luZywga2VlcCBhIHNldCBvZiB3
cmFwcGVycyBjdXJyZW50bHkgcmVnaXN0ZXJlZCwgYW5kIGNoZWNrIHRoYXQKKy8vIGFsbCBhcmUg
dW5yZWdpc3RlcmVkIGJlZm9yZSB0aGV5IGFyZSBkZXN0cm95ZWQuIFRoaXMgaGFzIGhlbHBlZCB1
cyBmaXggYXQKKy8vIGxlYXN0IG9uZSBidWcuCisKKyNpZiAwCitzdGF0aWMgdm9pZCBhZGRXcmFw
cGVyKEdET01PYmplY3QqIHdyYXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9N
T2JqZWN0KiB3cmFwcGVyKTsKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21X
cmFwcGVyQ2FjaGUmIHdyYXBwZXJzKTsKKworI2lmZGVmIE5ERUJVRworCitzdGF0aWMgaW5saW5l
IHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lk
IHJlbW92ZVdyYXBwZXIoR0RPTU9iamVjdCopCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBy
ZW1vdmVXcmFwcGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJikKK3sKK30KKworI2Vsc2UKKwor
c3RhdGljIEhhc2hTZXQ8R0RPTU9iamVjdCo+JiB3cmFwcGVyU2V0KCkKK3sKKyAgICBzdGF0aWMg
SGFzaFNldDxHRE9NT2JqZWN0Kj4gc3RhdGljV3JhcHBlclNldDsKKyAgICByZXR1cm4gc3RhdGlj
V3JhcHBlclNldDsKK30KKworc3RhdGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFw
cGVyKQoreworICAgIEFTU0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAg
ICB3cmFwcGVyU2V0KCkuYWRkKHdyYXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVXcmFw
cGVyKEdET01PYmplY3QqIHdyYXBwZXIpCit7CisgICAgaWYgKCF3cmFwcGVyKQorICAgICAgICBy
ZXR1cm47CisgICAgQVNTRVJUKHdyYXBwZXJTZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAg
d3JhcHBlclNldCgpLnJlbW92ZSh3cmFwcGVyKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3Jh
cHBlcnMoY29uc3QgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCit7CisgICAgZm9yIChHZG9t
V3JhcHBlckNhY2hlOjpjb25zdF9pdGVyYXRvciBpdCA9IHdyYXBwZXJzLmJlZ2luKCk7IGl0ICE9
IHdyYXBwZXJzLmVuZCgpOyArK2l0KQorICAgICAgICByZW1vdmVXcmFwcGVyKGl0LT5zZWNvbmQp
OworfQorCitHRE9NT2JqZWN0Ojp+R0RPTU9iamVjdCgpCit7CisgICAgQVNTRVJUKCF3cmFwcGVy
U2V0KCkuY29udGFpbnModGhpcykpOworfQorCisjZW5kaWYKKyNlbmRpZiAvKiBjb21tZW50ZWQg
b3V0IGZvciBub3cgKi8KKworc3RhdGljIEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJDYWNoZSgp
Cit7IAorICAgIC8vIFVORkFJUiEgaSB3YW50IG9uZSBvZiB0aGVzZSBwZXIgRG9jdW1lbnQsIHRv
byEKKyAgICAvLyBEb24ndCB1c2UgbWFsbG9jIGhlcmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBt
YXJrIGZ1bmN0aW9uIGNhbiBkZWFkbG9jay4KKyAgICBzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSBz
dGF0aWNHZG9tV3JhcHBlckNhY2hlOworICAgIHJldHVybiBzdGF0aWNHZG9tV3JhcHBlckNhY2hl
OworfQorCitzdGF0aWMgRE9NT2JqZWN0TWFwJiBkb21PYmplY3RzKCkKK3sgCisgICAgLy8gRG9u
J3QgdXNlIG1hbGxvYyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBj
YW4gZGVhZGxvY2suCisgICAgc3RhdGljIERPTU9iamVjdE1hcCBzdGF0aWNET01PYmplY3RzOwor
ICAgIHJldHVybiBzdGF0aWNET01PYmplY3RzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpIAoreworICAgIGdwb2lu
dGVyIHJldCA9IGRvbU9iamVjdHMoKS5nZXQob2JqZWN0SGFuZGxlKTsKKyAgICBwcmludGYoImdl
dERPTU9iamVjdDogJXAgJXBcbiIsIG9iamVjdEhhbmRsZSwgcmV0KTsKKyAgICByZXR1cm4gcmV0
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlX2dkb21fb2JqZWN0KEdET01PYmplY3QgKmRv
YikKK3sKKyAgICBncG9pbnRlciByZXMgPSBnX29iamVjdF9uZXcoZG9iLT5nZXRfZ29ial90eXBl
KCksIE5VTEwpOworICAgIGdkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpF
Q1QocmVzKSwgZG9iKTsKKyAgICByZXR1cm4gcmVzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3Qq
IHdyYXBwZXIpIAoreworICAgIC8vIGFkZFdyYXBwZXIod3JhcHBlcik7CisgICAgZ3BvaW50ZXIg
b2JqID0gY3JlYXRlX2dkb21fb2JqZWN0KHdyYXBwZXIpOworICAgIHByaW50ZigicHV0RE9NT2Jq
ZWN0OiAlcCAlcCAlcFxuIiwgb2JqZWN0SGFuZGxlLCB3cmFwcGVyLCBvYmopOworICAgIGRvbU9i
amVjdHMoKS5zZXQob2JqZWN0SGFuZGxlLCBvYmopOworICAgIHJldHVybiBvYmo7Cit9CisKK3Zv
aWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFu
ZGxlKQoreworICAgIGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSk7CisgICAgLy9yZW1v
dmVXcmFwcGVyKGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSkpOworfQorCitncG9pbnRl
ciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCog
ZG9jdW1lbnQsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGdwb2ludGVyID4oZG9tT2JqZWN0cygpLmdldChub2RlKSk7CisgICAg
cmV0dXJuIC8qIFhYWCBncnJyIGRvY3VtZW50LT4gKi93cmFwcGVyQ2FjaGUoKS5nZXQobm9kZSk7
Cit9CisKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICghZG9jdW1lbnQp
IHsKKyAgICAgICAgZm9yZ2V0RE9NT2JqZWN0KG5vZGUpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIC8vcmVtb3ZlV3JhcHBlcigvKiBYWFggZ3JyIGRvY3VtZW50LT4qL3dyYXBwZXJDYWNo
ZSgpLnRha2Uobm9kZSkpOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1
dERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUsIEdET01O
b2RlICp3cmFwcGVyKQoreworICAgIC8vYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBpZiAoIWRv
Y3VtZW50KSB7CisgICAgICAgIG5vZGUtPnJlZigpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlw
dEludGVycHJldGVyOjpwdXRET01PYmplY3Qobm9kZSwgd3JhcHBlcikgOworICAgIH0KKyAgICBn
cG9pbnRlciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgLyogWFhYIGdy
cnIgZG9jdW1lbnQtPiovd3JhcHBlckNhY2hlKCkuc2V0KG5vZGUsIG9iaik7CisgICAgcmV0dXJu
IG9iajsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5vZGVz
Rm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChkb2N1bWVudCk7
CisgICAgLy9yZW1vdmVXcmFwcGVycyhkb2N1bWVudC0+d3JhcHBlckNhY2hlKCkpOworfQorCisj
aWYgMAordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50
KERvY3VtZW50KiBkb2MpCit7CisjaWYgMCAvKlhYWCBUT0RPKi8KKyAgICAvLyBJZiBhIG5vZGUn
cyBHZG9tIHdyYXBwZXIgaG9sZHMgY3VzdG9tIHByb3BlcnRpZXMsIHRob3NlIHByb3BlcnRpZXMg
bXVzdAorICAgIC8vIHBlcnNpc3QgZXZlcnkgdGltZSB0aGUgbm9kZSBpcyBmZXRjaGVkIGZyb20g
dGhlIERPTS4gU28sIHdlIGtlZXAgR2RvbQorICAgIC8vIHdyYXBwZXJzIGxpa2UgdGhhdCBmcm9t
IGJlaW5nIGdhcmJhZ2UgY29sbGVjdGVkLgorCisgICAgR2RvbVdyYXBwZXJDYWNoZSYgbm9kZURp
Y3QgPSAvKmRvYy0+Ki93cmFwcGVyQ2FjaGUoKTsKKyAgICBHZG9tV3JhcHBlckNhY2hlOjppdGVy
YXRvciBub2RlRW5kID0gbm9kZURpY3QuZW5kKCk7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hl
OjppdGVyYXRvciBub2RlSXQgPSBub2RlRGljdC5iZWdpbigpOyBub2RlSXQgIT0gbm9kZUVuZDsg
Kytub2RlSXQpIHsKKyAgICAgICAgZ3BvaW50ZXIgZ05vZGUgPSBub2RlSXQtPnNlY29uZDsKKyAg
ICAgICAgTm9kZSogbm9kZSA9IGdOb2RlLT5pbXBsKCk7CisKKyAgICAgICAgaWYgKGdOb2RlLT5t
YXJrZWQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5vIG5lZWQgdG8g
cHJlc2VydmUgYSB3cmFwcGVyIHRoYXQgaGFzIG5vIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIGlzIG5v
CisgICAgICAgIC8vIGxvbmdlciBmZXRjaGFibGUgdGhyb3VnaCB0aGUgRE9NLgorICAgICAgICBp
ZiAoIWdOb2RlLT5oYXNDdXN0b21Qcm9wZXJ0aWVzKCkgfHwgIW5vZGUtPmluRG9jdW1lbnQoKSkK
KyAgICAgICAgICAgIC8vLi4uIHVubGVzcyB0aGUgd3JhcHBlciB3cmFwcyBhIGxvYWRpbmcgaW1h
Z2UsIHNpbmNlIHRoZSAibmV3IEltYWdlIgorICAgICAgICAgICAgLy8gc3ludGF4IGFsbG93cyBh
biBvcnBoYW4gaW1hZ2Ugd3JhcHBlciB0byBiZSB0aGUgbGFzdCByZWZlcmVuY2UKKyAgICAgICAg
ICAgIC8vIHRvIGEgbG9hZGluZyBpbWFnZSwgd2hvc2UgbG9hZCBldmVudCBtaWdodCBoYXZlIGlt
cG9ydGFudCBzaWRlLWVmZmVjdHMuCisgICAgICAgICAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUo
aW1nVGFnKSB8fCBzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4obm9kZSktPmhhdmVGaXJl
ZExvYWRFdmVudCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGdOb2Rl
LT5tYXJrKCk7CisgICAgfQorI2VuZGlmCit9CisKKy8qIFhYWCAtIHJlcXVpcmVzIGxvb2tpbmcg
dXAgb2JqZWN0IC0gY2FsbCB0byBHX09CSkVDVCgpIG1hY3JvIGluIGFyZworICogIndyYXBwZXIi
IHRvIHB1dERPTU5vZGVGb3JEb2N1bWVudD8qLworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJl
dGVyOjp1cGRhdGVET01Ob2RlRG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvYywg
RG9jdW1lbnQqIG5ld0RvYykKK3sKKyAgICBBU1NFUlQob2xkRG9jICE9IG5ld0RvYyk7CisgICAg
c3R5bGVTaGVldC0+cmVmKCk7CisgICAgZ3BvaW50ZXIgd3JhcHBlciA9IGdldERPTU5vZGVGb3JE
b2N1bWVudChvbGREb2MsIG5vZGUpOworICAgIGlmICh3cmFwcGVyKSB7CisgICAgICAgIC8vcmVt
b3ZlV3JhcHBlcih3cmFwcGVyKTsKKyAgICAgICAgZ3BvaW50ZXIgb2JqID0gcHV0RE9NTm9kZUZv
ckRvY3VtZW50KG5ld0RvYywgbm9kZSwgd3JhcHBlcik7CisgICAgICAgIGZvcmdldERPTU5vZGVG
b3JEb2N1bWVudChvbGREb2MsIG5vZGUpOworICAgICAgICAvL2FkZFdyYXBwZXIod3JhcHBlcik7
CisgICAgICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIHJldHVybiBOVUxMOyAvKiBlcnIuLi4g
Ki8KK30KKyNlbmRpZgorCitncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBp
ZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisKKyAgICBn
cG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9jKTsK
KyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpy
ZXQ7CisKKyAgICBpZiAoZG9jLT5pc0hUTUxEb2N1bWVudCgpKQorICAgICAgICByZXQgPSBuZXcg
R0RPTUhUTUxEb2N1bWVudChzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihkb2MpKTsKKyNpZiBF
TkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKGRvYy0+aXNTVkdEb2N1bWVudCgpKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RPICovCisjaWYgMAorICAgICAgICByZXQgPSBu
ZXcgR0RPTVNWR0RvY3VtZW50KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4oZG9jKSk7CisjZW5k
aWYKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1l
bnQoZG9jKTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6cHV0RE9NT2JqZWN0KGRvYywgcmV0KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0
ZVdyYXBwZXIoTm9kZSogbm9kZSk7CisKK2dwb2ludGVyIHRvR0RPTU5ld2x5Q3JlYXRlZChOb2Rl
KiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0u
Li4uICovCisgICAgCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisgICAgCitn
cG9pbnRlciB0b0dET00oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJl
dHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgRG9jdW1lbnQqIGRvYyA9IG5vZGUtPmRv
Y3VtZW50KCk7CisgICAgZ3BvaW50ZXIgcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRE
T01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlKTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1
cm4gcmV0OworCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisKK2dwb2ludGVy
IHRvR0RPTShDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0
dXJuIE5VTEw7IC8qIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh2YWx1ZSk7CisKKyAgICBpZiAoZ29iaikKKyAgICAg
ICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBpZiAodmFsdWUt
PmlzVmFsdWVMaXN0KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWVMaXN0KHN0YXRp
Y19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNl
IGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8q
IFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1BhaW50KHN0YXRpY19jYXN0PFNW
R1BhaW50Kj4odmFsdWUpKTsKKyAgICB9CisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHQ29sb3Io
KSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8vcmV0
ID0gbmV3IEdET01TVkdDb2xvcihzdGF0aWNfY2FzdDxTVkdDb2xvcio+KHZhbHVlKSk7CisgICAg
fQorI2VuZGlmCisgICAgZWxzZSBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAg
ICAgcmV0ID0gbmV3IEdET01DU1NQcmltaXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1Zh
bHVlKHZhbHVlKTsKKworICAgIHZhbHVlLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdElu
dGVycHJldGVyOjpwdXRET01PYmplY3QodmFsdWUsIHJldCk7Cit9CisKK3N0YXRpYyBBTFdBWVNf
SU5MSU5FIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQo
bm9kZSk7CisgICAgQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3Vt
ZW50KG5vZGUtPmRvY3VtZW50KCksIG5vZGUpKTsKKyAgICAKKyAgICBEb2N1bWVudCogZG9jID0g
bm9kZS0+ZG9jdW1lbnQoKTsKKyAgICBHRE9NTm9kZSAqcmV0ID0gTlVMTDsKKyAgICAKKyAgICBw
cmludGYoImNyZWF0ZVdyYXBwZXIgbm9kZVR5cGUgJWRcbiIsIG5vZGUtPm5vZGVUeXBlKCkpOwor
CisgICAgc3dpdGNoIChub2RlLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxF
TUVOVF9OT0RFOgorICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAg
ICAgICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVs
ZW1lbnQqPihub2RlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKG5v
ZGUtPmlzU1ZHRWxlbWVudCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2lmIDAg
LyogWFhYIFRPRE8gKi8KKyAgICAgICAgICAgICAgICByZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBl
cihzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4obm9kZSkpOworI2VuZGlmCisjZW5kaWYKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8RWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE5vZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01BdHRyKHN0
YXRpY19jYXN0PEF0dHIqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpURVhUX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVRleHQoc3RhdGlj
X2Nhc3Q8VGV4dCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5v
ZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ0RBVEFT
ZWN0aW9uKHN0YXRpY19jYXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01FbnRpdHkoc3RhdGljX2Nhc3Q8RW50aXR5Kj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oc3RhdGljX2Nh
c3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdE
T01Db21tZW50KHN0YXRpY19jYXN0PENvbW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgLy8gd2Ug
ZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1l
bnQgZGljdGlvbmFyeQorICAgICAgICAgICAgcmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxEb2N1
bWVudCo+KG5vZGUpKTsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6Cisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTURvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVu
dFR5cGUqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpO
T1RBVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob3RhdGlvbihzdGF0aWNf
Y2FzdDxOb3RhdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RP
TURvY3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRGcmFnbWVudCo+KG5vZGUpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5UmVmZXJlbmNlKHN0YXRpY19j
YXN0PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob2RlKG5vZGUpOworICAgIH0K
KworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0
RE9NTm9kZUZvckRvY3VtZW50KGRvYywgbm9kZSwgcmV0KTsKK30KKyAKK2dwb2ludGVyIHRvR0RP
TShIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKK3sKKyAgICBpZiAoIWNvbGxlY3Rpb24pCisg
ICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9
IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNvbGxlY3Rpb24pOworCisgICAg
aWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0Owor
ICAgIHN3aXRjaCAoY29sbGVjdGlvbi0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgSFRNTENvbGxl
Y3Rpb246OlNlbGVjdE9wdGlvbnM6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxPcHRp
b25zQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihjb2xsZWN0
aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyNpZiAwCisgICAgICAgIGNhc2UgSFRNTENvbGxl
Y3Rpb246OkRvY0FsbDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTEFsbENvbGxlY3Rp
b24oc3RhdGljX2Nhc3Q8SFRNTENvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAg
ICBicmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01IVE1MQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rp
b24pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNvbGxlY3Rpb24tPnJlZigp
OworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChjb2xsZWN0
aW9uLCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oRXZlbnQqIGV2ZW50KQoreworICAgIGlm
ICghZXZlbnQpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgcHJp
bnRmKCJ0b0dET00gRXZlbnQgdHlwZSAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmdldERPTU9iamVjdChldmVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2Jq
OworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIGlmIChldmVudC0+aXNVSUV2ZW50KCkpIHsK
KyAgICAgICAgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NS2V5Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQp
KTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzVGV4dEV2ZW50KCkpCisgICAgICAgICAgICBy
ZXQgPSBuZXcgR0RPTVRleHRFdmVudChzdGF0aWNfY2FzdDxUZXh0RXZlbnQqPihldmVudCkpOwor
ICAgICAgICBlbHNlIGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkpCisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTU1vdXNlRXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KSk7Cisg
ICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1doZWVsRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NV2hlZWxFdmVudChzdGF0aWNfY2FzdDxXaGVlbEV2ZW50Kj4oZXZlbnQpKTsKKyNp
ZiBFTkFCTEUoU1ZHKQorICAgICAgICBlbHNlIGlmIChldmVudC0+aXNTVkdab29tRXZlbnQoKSkK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAg
ICAgIC8vcmV0ID0gbmV3IEdET01TVkdab29tRXZlbnQoc3RhdGljX2Nhc3Q8U1ZHWm9vbUV2ZW50
Kj4oZXZlbnQpLCAwKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHJldCA9IG5ldyBHRE9NVUlFdmVudChzdGF0aWNfY2FzdDxVSUV2ZW50Kj4oZXZlbnQpKTsK
KyAgICB9IGVsc2UgaWYgKGV2ZW50LT5pc011dGF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0g
bmV3IEdET01NdXRhdGlvbkV2ZW50KHN0YXRpY19jYXN0PE11dGF0aW9uRXZlbnQqPihldmVudCkp
OworICAgIGVsc2UgaWYgKGV2ZW50LT5pc092ZXJmbG93RXZlbnQoKSkKKyAgICAgICAgcmV0ID0g
bmV3IEdET01PdmVyZmxvd0V2ZW50KHN0YXRpY19jYXN0PE92ZXJmbG93RXZlbnQqPihldmVudCkp
OworICAgIGVsc2UgaWYgKGV2ZW50LT5pc01lc3NhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBu
ZXcgR0RPTU1lc3NhZ2VFdmVudChzdGF0aWNfY2FzdDxNZXNzYWdlRXZlbnQqPihldmVudCkpOwor
ICAgIGVsc2UgaWYgKGV2ZW50LT5pc1Byb2dyZXNzRXZlbnQoKSkgeworICAgICAgICBpZiAoZXZl
bnQtPmlzWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBy
ZXQgPSBuZXcgR0RPTVByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8UHJvZ3Jlc3NFdmVudCo+KGV2
ZW50KSk7CisgICAgfQorI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyAgICBlbHNlIGlmIChldmVu
dC0+aXNTdG9yYWdlRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01TdG9yYWdlRXZlbnQo
c3RhdGljX2Nhc3Q8U3RvcmFnZUV2ZW50Kj4oZXZlbnQpKTsKKyNlbmRpZgorICAgIGVsc2UgaWYg
KGV2ZW50LT5pc1dlYktpdEFuaW1hdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9N
V2ViS2l0QW5pbWF0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8V2ViS2l0QW5pbWF0aW9uRXZlbnQqPihl
dmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5pc1dlYktpdFRyYW5zaXRpb25FdmVudCgpKQor
ICAgICAgICByZXQgPSBuZXcgR0RPTVdlYktpdFRyYW5zaXRpb25FdmVudChzdGF0aWNfY2FzdDxX
ZWJLaXRUcmFuc2l0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0g
bmV3IEdET01FdmVudChldmVudCk7CisKKyAgICBldmVudC0+cmVmKCk7CisgICAgcmV0dXJuIEdE
T01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGV2ZW50LCByZXQpOworfQorCisvKiBU
T0RPIFhYWCBobW1tLi4uIG5vdCBzbyBoYXBweSBhYm91dCB0aGlzIC0gc2hvdWxkIGJlICJuZXds
eSBjcmVhdGVkIiAqLworZ3BvaW50ZXIgdG9HRE9NKFRleHQqIHRleHQpCit7CisgICAgaWYgKCF0
ZXh0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1bWVudCgpLCB0
ZXh0KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NTm9k
ZSAqcmV0ID0gbmV3IEdET01UZXh0KHRleHQpOworICAgIHRleHQtPmRvY3VtZW50KCktPnJlZigp
OworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVu
dCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oQ1NT
UnVsZSogcnVsZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBY
WFggaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRl
cjo6Z2V0RE9NT2JqZWN0KHJ1bGUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBn
b2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7
CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NQ1NTU3R5bGVSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6CisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTUNTU01lZGlhUnVsZShzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1
bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpG
T05UX0ZBQ0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTRm9udEZhY2VSdWxl
KHN0YXRpY19jYXN0PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NQ1NTUGFnZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihydWxlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTSW1wb3J0UnVsZShzdGF0aWNfY2FzdDxDU1NJbXBvcnRS
dWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6
Q0hBUlNFVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NDaGFyc2V0UnVsZShz
dGF0aWNfY2FzdDxDU1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01DU1NWYXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1ZhcmlhYmxlc1J1bGUqPihy
dWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NQ1NTUnVsZShydWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIHJ1bGUtPnJlZigpOworICAgIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KHJ1bGUsIHJldCk7CisgICAgcmV0dXJuIHJldDsKK30KKworLyogVE9ETzogc2hvdWxkIGJl
IHRvR0RPTU5ld2x5Q3JlYXRlZCAqLworZ3BvaW50ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQp
Cit7CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8vIHNo
b3VsZG4ndCBiZSBvbmU/IEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JE
b2N1bWVudChlbGVtZW50LT5kb2N1bWVudCgpLCBlbGVtZW50KSk7CisgICAgZ3BvaW50ZXIgZ29i
aiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KGVsZW1lbnQt
PmRvY3VtZW50KCksIGVsZW1lbnQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29i
ajsgLy8gaHVoPyBlcnIuLi4KKworICAgIEdET01Ob2RlICpyZXQ7CisgICAgRG9jdW1lbnQqIGRv
YyA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisKKyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVu
dCgpKQorICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRN
TEVsZW1lbnQqPihlbGVtZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChlbGVt
ZW50LT5pc1NWR0VsZW1lbnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RP
ICovCisgICAgICAgIC8vcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nhc3Q8U1ZH
RWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJl
dCA9IG5ldyBHRE9NRWxlbWVudChlbGVtZW50KTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0
dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KGRvYywgZWxl
bWVudCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQp
Cit7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gTlVMTDsgLyogZXJyLi4u
ICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01P
YmplY3Qoc3R5bGVTaGVldCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOwor
CisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIGlmIChzdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hl
ZXQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NTdHlsZVNoZWV0KHN0YXRpY19jYXN0PENT
U1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcg
R0RPTVN0eWxlU2hlZXQoc3R5bGVTaGVldCk7CisKKyAgICBzdHlsZVNoZWV0LT5yZWYoKTsKKyAg
ICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qoc3R5bGVTaGVldCwg
cmV0KTsKK30KKworLyogZGVyaXZlZCBzb3VyY2VzIGF1dG8tZ2VuZXJhdGVkICovCitncG9pbnRl
ciB0b0dET00oWE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9iaik7CisKK2dwb2ludGVyIHRvR0RPTShF
dmVudFRhcmdldCogdGFyZ2V0KQoreworICAgIGlmICghdGFyZ2V0KQorICAgICAgICByZXR1cm4g
TlVMTDsKKyAgICAKKyNpZiAwCisjaWYgRU5BQkxFKFNWRykKKyAgICAvLyBTVkdFbGVtZW50SW5z
dGFuY2Ugc3VwcG9ydHMgYm90aCB0b1NWR0VsZW1lbnRJbnN0YW5jZSBhbmQgdG9Ob2RlIHNpbmNl
IHNvIG11Y2ggbW91c2UgaGFuZGxpbmcgY29kZSBkZXBlbmRzIG9uIHRvTm9kZSByZXR1cm5pbmcg
YSB2YWxpZCBub2RlLgorICAgIFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2UgPSB0YXJnZXQt
PnRvU1ZHRWxlbWVudEluc3RhbmNlKCk7CisgICAgaWYgKGluc3RhbmNlKQorICAgICAgICByZXR1
cm4gdG9HRE9NKGV4ZWMsIGluc3RhbmNlKTsKKyNlbmRpZgorI2VuZGlmCisKKyAgICBOb2RlKiBu
b2RlID0gdGFyZ2V0LT50b05vZGUoKTsKKyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRv
R0RPTShub2RlKTsKKyAgICAKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3QqIHhociA9IHRhcmdldC0+
dG9YTUxIdHRwUmVxdWVzdCgpKQorICAgICAgICAvLyBYTUxIdHRwUmVxdWVzdCBpcyBhbHdheXMg
Y3JlYXRlZCB2aWEgR0RPTSwgc28gd2UgZG9uJ3QgbmVlZCB0byB1c2UgY2FjaGVET01PYmplY3Qo
KSBoZXJlLgorICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmpl
Y3QoeGhyKTsKKworICAgIGlmIChYTUxIdHRwUmVxdWVzdFVwbG9hZCogdXBsb2FkID0gdGFyZ2V0
LT50b1hNTEh0dHBSZXF1ZXN0VXBsb2FkKCkpCisgICAgICAgIHJldHVybiB0b0dET00odXBsb2Fk
KTsKKyAgICAKKyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGlmIChE
T01BcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hl
KCkpCisgICAgICAgIC8vIERPTUFwcGxpY2F0aW9uQ2FjaGUgaXMgYWx3YXlzIGNyZWF0ZWQgdmlh
IEdET00sIHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAg
ICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNhY2hlKTsK
KyNlbmRpZgorCisgICAgLy8gVGhlcmUgYXJlIHR3byBraW5kcyBvZiBFdmVudFRhcmdldHM6IEV2
ZW50VGFyZ2V0Tm9kZSBhbmQgWE1MSHR0cFJlcXVlc3QuCisgICAgLy8gSWYgU1ZHIHN1cHBvcnQg
aXMgZW5hYmxlZCwgdGhlcmUgaXMgYWxzbyBTVkdFbGVtZW50SW5zdGFuY2UuCisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE5VTEw7Cit9ICAgCisKK2dwb2ludGVyIHRvR0RP
TShFdmVudFRhcmdldE5vZGUqIHRhcmdldCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisgICAgCisgICAgTm9kZSogbm9kZSA9IHRhcmdldC0+dG9Ob2RlKCk7Cisg
ICAgaWYgKG5vZGUpCisgICAgICAgIHJldHVybiB0b0dET00obm9kZSk7CisgICAgCisgICAgcmV0
dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxFdmVudFRhcmdldCo+KHRhcmdldCkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9N
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR2RvbURPTU9iamVjdF9IX18KKyNk
ZWZpbmUgX19HZG9tRE9NT2JqZWN0X0hfXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5j
bHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0eXBlZGVm
IHN0cnVjdCBfR2RvbURPTU9iamVjdCBHZG9tRE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21ET01PYmplY3RDbGFzcyBHZG9tRE9NT2JqZWN0Q2xhc3M7CisKKyNkZWZpbmUgR0RPTV9UWVBF
X0RPTV9PQkpFQ1QgICAgICAgICAgICAoZ2RvbV9kb21fb2JqZWN0X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fRE9NX09CSkVDVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9DQVNUKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdCkpCisjZGVm
aW5lIEdET01fRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19D
QVNUKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkK
KyNkZWZpbmUgR0RPTV9JU19ET01fT0JKRUNUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNUKSkKKyNkZWZpbmUgR0RPTV9J
U19ET01fT0JKRUNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNz
KSwgIEdET01fVFlQRV9ET01fT0JKRUNUKSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dFVF9D
TEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9E
T01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR2RvbURP
TU9iamVjdFByaXZhdGUgR2RvbURPTU9iamVjdFByaXZhdGU7CisKK3N0cnVjdCBfR2RvbURPTU9i
amVjdCB7CisgICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRE9NT2JqZWN0
UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIHsKKyAgICBH
T2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorZ2RvbV9k
b21fb2JqZWN0X2dldF90eXBlICh2b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2RvbV9v
YmplY3RfaW5pdF9kb21fb2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0aGl6KTsKKworR19FTkRfREVD
TFMKKworI2VuZGlmIC8qIF9fR2RvbURPTU9iamVjdF9IX18gKi8KKwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL0dET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfX0RP
TU9iamVjdF9oX18KKyNkZWZpbmUgX19ET01PYmplY3RfaF9fCisKKy8vIG5hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgR0RPTU9iamVjdCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R0RPTU9i
amVjdCgpIHt9CisgICAgdmlydHVhbCBpbnQgZ2V0X2dvYmpfdHlwZSgpID0gMDsKK307CisKKy8v
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogVEhJUyBGSUxFIElT
IERFUklWRUQgRlJPTSBBTiBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBGSUxFLgorICoga2VlcGlu
ZyBpdCB1cC10by1kYXRlIGNvdWxkIHBvdGVudGlhbGx5IGJlIGRvbmUgYnkgYWRkaW5nCisgKiBh
IG1ha2VfbmFtZXMucGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUKKyAqIGdl
bmVyYXRlciB3aGljaCB0YWtlcyBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBhcyBpbnB1
dC4KKyAqCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisKKyNpZm5kZWYgR0RPTUhUTUxFbGVtZW50V3Jh
cHBlckZhY3RvcnlfaAorI2RlZmluZSBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCisK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU5vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEhUTUxFbGVtZW50OworCisg
ICAgR0RPTU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
Pik7CisKK30KKyAKKyNlbmRpZiAvLyBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkx
IEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVu
QGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcg
U2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1
a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIEdkb21ET01CaW5kaW5nX2gKKyNkZWZpbmUgR2Rv
bURPTUJpbmRpbmdfaAorCisjaW5jbHVkZSA8a2pzL2ludGVycHJldGVyLmg+CisjaW5jbHVkZSA8
a2pzL2xvb2t1cC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisjaW5jbHVkZSAi
R2RvbU5vZGUuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21Ob2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEF0b21pY1N0
cmluZzsKKyAgICBjbGFzcyBEb2N1bWVudDsKKyAgICBjbGFzcyBFdmVudDsKKyAgICBjbGFzcyBG
cmFtZTsKKyAgICBjbGFzcyBLVVJMOworICAgIGNsYXNzIE5vZGU7CisgICAgY2xhc3MgU3RyaW5n
OworCisjaWYgRU5BQkxFKFNWRykKKyAgICBjbGFzcyBTVkdFbGVtZW50OworI2VuZGlmCisKKyAg
ICBjbGFzcyBHRE9NU2NyaXB0SW50ZXJwcmV0ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3Rh
dGljIHZvaWQqIGdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpOworICAgICAgICBzdGF0
aWMgdm9pZCogcHV0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVjdCopOwor
ICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsK
KworICAgICAgICBzdGF0aWMgdm9pZCogZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50Kiwg
Tm9kZSopOworICAgICAgICBzdGF0aWMgdm9pZCogcHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3Vt
ZW50KiwgTm9kZSosIEdET01Ob2RlKiBub2RlV3JhcHBlcik7CisgICAgICAgIHN0YXRpYyB2b2lk
IGZvcmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAgICAgICAgc3Rh
dGljIHZvaWQgZm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOworCQkjaWYg
MAorICAgICAgICBzdGF0aWMgdm9pZCB1cGRhdGVET01Ob2RlRG9jdW1lbnQoTm9kZSosIERvY3Vt
ZW50KiBvbGREb2MsIERvY3VtZW50KiBuZXdEb2MpOworICAgICAgICBzdGF0aWMgdm9pZCBtYXJr
RE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOworCQkjZW5kaWYKKyAgICB9OworCisgICAg
Ly8gUmV0cmlldmUgZnJvbSBjYWNoZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYSBE
T00gb2JqZWN0LgorICAgIHRlbXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3MgR2RvbURPTU9iaj4g
aW5saW5lIHZvaWQqIGNhY2hlRE9NT2JqZWN0KERPTU9iaiogZG9tT2JqKQorICAgIHsKKyAgICAg
ICAgaWYgKCFkb21PYmopCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4g
Ki8KKyAgICAgICAgaWYgKHZvaWQqIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9N
T2JqZWN0KGRvbU9iaikpCisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBHRE9NT2Jq
ZWN0KiByZXQgPSBuZXcgR2RvbURPTU9iaihkb21PYmopOworCQlkb21PYmotPnJlZigpOworICAg
ICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZG9tT2JqLCBy
ZXQpOworICAgIH0KKworI2lmIEVOQUJMRShTVkcpCisgICAgLy8gUmV0cmlldmUgZnJvbSBjYWNo
ZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYW4gU1ZHIERPTSBvYmplY3QuCisgICAg
dGVtcGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2JqPiBpbmxpbmUgdm9pZCogY2Fj
aGVTVkdET01PYmplY3QoRE9NT2JqKiBkb21PYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpCisgICAg
eworICAgICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFgg
aG1tbS4uLiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVy
OjpnZXRET01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAg
IEdET01PYmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaiwgY29udGV4dCk7CisJCWRv
bU9iai0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERP
TU9iamVjdChkb21PYmosIHJldCk7CisgICAgfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEdkb21ET01CaW5kaW5nX2gKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9Qcml2YXRlSW50R2RvbURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLgorICovCisKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTY2MSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChD
KSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisjCisjIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisjIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcs
IFVTQS4KKworcGFja2FnZSBDb2RlR2VuZXJhdG9yR09iamVjdDsKKworIyBEZWZhdWx0IExpY2Vu
Y2UgVGVtcGxhdGVzCitteSAkbGljZW5jZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xcQGxrY2wu
bmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworRU9GCisKK215ICVpbXBsSW5j
bHVkZXMgPSAoKTsKK215ICVoZHJJbmNsdWRlcyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9
ICgpOworbXkgJWltcGxUeXBlZGVmcyA9ICgpOworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1
YiBuZXcKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsg
fTsKKworICAgICRjb2RlR2VuZXJhdG9yID0gc2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0
OworCisgICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVu
Y2U7Cit9CisKK3N1YiBmaW5pc2gKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMg
UGFyYW1zOiAnZG9tQ2xhc3MnIHN0cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAg
bXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRk
ZWZpbmVzID0gc2hpZnQ7CisKKyAgICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAg
IHByaW50ICIkbmFtZVxuIjsKKworICAgICRvYmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisK
KyAgICAjIFdyaXRlIGNoYW5nZXMKKyAgICBteSAkZm5hbWUgPSAiR2RvbV8iIC4gJG5hbWU7ICNk
ZWNhbWVsaXplKCRuYW1lKTsKKyAgICAkZm5hbWUgPX4gcy9fLy9nOworICAgICRvYmplY3QtPldy
aXRlRGF0YSgkZm5hbWUpOworfQorCisjIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1
YiBHZW5lcmF0ZU1vZHVsZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0
YU5vZGUgPSBzaGlmdDsKKworICAgICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKwor
c3ViIENsc1RvR09ialR5cGUKK3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0
dXJuIHVjKGRlY2FtZWxpemUoJGNsYXNzTmFtZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05h
bWUKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAj
cmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlm
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJl
dHVybiAiR2RvbURPTU9iamVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAg
cmV0dXJuICJHZG9tIiAuICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBh
cmVudHMoMCkpOworfQorc3ViIEdldFBhcmVudEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2Rl
ID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JK
RUNUIiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQ
RV8iIC4gQ2xzVG9HT2JqVHlwZSgkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2Rl
LT5wYXJlbnRzKDApKSk7Cit9CisKKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNh
bWVsQ2FzZSAwLjAxCitzdWIgY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpv
aW4oJycsIG1hcHsgdWNmaXJzdCAkXyB9IHNwbGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpd
KXxcYi8sICRzKSk7Cit9CisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENh
c2UgMC4wMQorc3ViIGRlY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+
IHN7KFteYS16QS1aXT8pKFtBLVpdKikoW0EtWl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMg
PSBwb3MoJHMpPT0wOworICAgICAgICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxj
JDMsJDQpOworICAgICAgICBteSAkdCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAg
ICR0IC49ICRwMyA/ICRwMSA/ICIke3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsK
KyAgICAgICAgJHQ7CisgICAgfWdlOworICAgICRzOworfQorCitzdWIgR2V0SGRyTmFtZQorewor
ICAgICAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisK
KyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAg
ICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAg
cmV0dXJuICJHZG9tJG5hbWUiOworfQorCitzdWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAk
dHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAg
ICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAg
ICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlw
ZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAg
ICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUi
OworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0
dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5z
aWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFt
cCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAg
ICAgIHJldHVybiAiUmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICBy
ZXR1cm4gIkdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgaWYgJHR5cGUgZXEgIkRPTU9i
amVjdCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgY2hhciI7Cisg
ICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9N
IGNsYXNzIHdyYXBwZXIKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBl
cSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiIGlm
ICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5o
IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIg
aWYgJHR5cGUgZXEgImJvb2xlYW4iOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIg
aWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1
cm5zIDEgaWYgd2UgbmVlZCB0byBjcmVhdGUgYSBnb2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSBy
ZXR1cm4gcmVzdWx0CitzdWIgSXNHRE9NQ2xhc3NUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlm
dDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgICAgIHJl
dHVybiAwIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOworICAgICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkNvbXBh
cmVIb3ciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUg
ZXEgImJvb2xlYW4iOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAg
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAg
ICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25l
ZCBpbnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7Cisg
ICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIK
KworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gMTsK
K30KKworc3ViIEdldFByb3BHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkg
JG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0
eXBlIGVxICJET01TdHJpbmciOworICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9h
dCI7CisgICAgcmV0dXJuICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93
IjsKKyAgICByZXR1cm4gImRvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJu
ICJib29sZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAk
dHlwZSBlcSAiY2hhciI7CisgICAgcmV0dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7Cisg
ICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIg
aWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCI7CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAi
dWludCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIHNob3J0IjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29s
b3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2JqZWN0
IjsKK30KKworc3ViIEdldEdUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAg
bXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1l
bGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRh
cmdldE5vZGUgKiIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKyAgICAgICAgcmV0dXJuICJj
b25zdCBnY2hhciAqIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJn
ZmxvYXQgIiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIldlYkNvcmU6OlJh
bmdlOjpDb21wYXJlSG93ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1
cm4gImdkb3VibGUgIiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICJnYm9v
bGVhbiAiIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuICJnY2hhciAiIGlm
ICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuICJnbG9uZyAiIGlmICR0eXBlIGVxICJs
b25nIjsKKyAgICAgICAgcmV0dXJuICJnc2hvcnQgIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAg
ICAgICByZXR1cm4gImd1Y2hhciAiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVy
biAiZ3VpbnQgIiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1cm4gImdpbnQg
IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuICJndWludCAiIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyAiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuICJndWludDY0ICIgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIGxvbmcgbG9uZyI7CisgICAgICAgIHJldHVybiAiZ3VzaG9ydCAiIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAi
UkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1
cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9
CisKK3N1YiBnZXRJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGlu
Y2x1ZGVIZHIgPSBHZXRHSW5jbHVkZUhkcigkdHlwZSk7CisgICAgaWYgKCRpbmNsdWRlSGRyKSB7
CisgICAgICAgIGlmICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICByZXR1
cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCR0
eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNv
cGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgcmV0dXJuICJHZG9tQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmgiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJu
ICRpbmNsdWRlSGRyOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3Vi
IGFkZFByb3BJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9
IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGhkclBy
b3BJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUp
KSB7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJQcml2YXRlIi4kaGRyfSA9IDE7Cisg
ICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJQcml2YXRlSW50Ii4kaGRyfSA9IDE7CisgICAg
ICAgIH0KKyAgICB9CisKK30KKworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hp
ZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAi
IikgeworICAgICAgICAkaGRySW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0KKworfQorCitzdWIg
YWRkSW5jQm9keQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0
SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaW1wbEluY2x1
ZGVzeyRoZHJ9ID0gMTsKKyAgICB9Cit9CisKK3N1YiBHZXRQcml2Rm4KK3sKKyAgICBteSAkaW50
ZXJmYWNlTmFtZSA9IHNoaWZ0OworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSBzaGlmdDsKKyAg
ICBteSAkcmVzID0gc2hpZnQ7CisgICAgbXkgJHBhcm0gPSBzaGlmdDsKKworICAgIGlmICgkaW50
ZXJmYWNlTmFtZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6
RXZlbnRUYXJnZXROb2RlICogJHJlcyA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0
Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoc2VsZikpOyI7CisgICAg
fQorICAgIHJldHVybiAiV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqICRyZXMgPSAoJHtsY2Fz
ZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCRwYXJtKSk7IjsKK30KKworc3ViIHNraXBQcm9wVGVt
cG9yYXJpbHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRwcm9wX3R5cGUgPSBz
aGlmdDsKKworICAgICMgc2tpcCBNZWRpYUxpc3QKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAic3R5
bGVzaGVldHM6Ok1lZGlhTGlzdCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAg
I2lmICgkcHJvcF90eXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAjICAgIHJldHVybiAxOwor
ICAgICN9CisKKyAgICAjIHNraXAgQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24KKyAgICBpZiAoJHBy
b3BfdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNp
ZiAoJHByb3BfdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJldHVy
biAxOworICAgICN9CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAg
ICAjaWYgKCRwcm9wX3R5cGUgZXEgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIikgeworICAg
ICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBFdmVudExpc3RlbmVyCisgICAg
I2lmICgkcHJvcF90eXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICMgICAgcmV0dXJuIDE7
CisgICAgI30KKworICAgICMgc2tpcCBET01XaW5kb3cKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEg
IkRPTVdpbmRvdyIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAg
Q29uc3RydWN0b3JzICh3aGF0ZXZlciB0aGV5IGFyZSkgZm9yIG5vdy4KKyAgICBpZiAoJHByb3Bf
dHlwZSA9fiAvQ29uc3RydWN0b3IkLykgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAg
ICAjIGNhbnZhczJkLi4uLgorICAgIGlmICgkcHJvcF90eXBlIGVxICJjdXN0b20iKSB7CisgICAg
ICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmICgkcHJvcF90eXBlIGVxICJBcnJheSIpIHsK
KyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVRp
bWVTdGFtcCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBUT0RPOiBTVkcK
KyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUG9kVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0
b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uCit7
CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgICMgc2tpcHBlZCBvdXQgQ2FudmFzUGl4ZWxB
cnJheSAtIHNlZSBKU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwIGZvciB3aHkuCisgICAgcmV0
dXJuIDEgaWYgJHR5cGUgZXEgIk5vZGUiIG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3IgJHR5cGUg
ZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAkdHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3IgJHR5cGUgZXEg
IlN0eWxlU2hlZXQiIG9yICR0eXBlIGVxICJDU1NSdWxlIiBvciAkdHlwZSBlcSAiQ1NTVmFsdWUi
IG9yICR0eXBlIGVxICJFdmVudCIgb3IgJHR5cGUgZXEgIkVsZW1lbnQiIG9yICR0eXBlIGVxICJU
ZXh0IjsKKyAgICByZXR1cm4gMDsKK30KKworCisjIEdlbmVyYXRlIGhlYWRlciBhbmQgaW1wbAor
c3ViIEdlbmVyYXRlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9k
ZSA9IHNoaWZ0OworCisgICAgbXkgJGhhc0xlZ2FjeVBhcmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0g
QHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMDsKKyAgICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2Fj
eVBhcmVudCB8fCAkaGFzUmVhbFBhcmVudDsKKyAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0
UGFyZW50Q2xhc3NOYW1lKCRkYXRhTm9kZSk7CisgICAgbXkgJHBhcmVudEdPYmpUeXBlID0gR2V0
UGFyZW50R09ialR5cGUoJGRhdGFOb2RlKTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRh
Tm9kZS0+bmFtZTsKKyAgICBteSAkY2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VO
YW1lKTsKKyAgICBteSAkaGRyTmFtZSA9IEdldEhkck5hbWUoJGludGVyZmFjZU5hbWUpOworCisg
ICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1wbCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9
IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgIHB1c2goQGNQcmVmaXgsICJcbiIp
OworCisgICAgJGltcGxJbmNsdWRlc3siR0RPTUJpbmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1wbElu
Y2x1ZGVzeyIkaGRyTmFtZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGUke2hk
ck5hbWV9LmgifSA9IDE7CisKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01PYmpl
Y3QiOworICAgIG15ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15ICRw
YXJlbnRIZHJOYW1lID0gIkdkb21ET01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NOYW1l
IG5lICJHT2JqZWN0IikKKyAgICB7CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gc3Vi
c3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFjZU5h
bWUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdE
T00iLnN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRIZHJO
YW1lID0gR2V0SGRyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAgICAg
ICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9N
T2JqZWN0IjsKKyAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmVudEhkck5h
bWV9LmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGUke3BhcmVudEhkck5h
bWV9LmgifSA9IDE7CisgICAgICAgICRoZHJJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0g
PSAxOworICAgICAgICAjJGhkckluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0g
PSAwOworICAgIH0KKworICAgICMgVE9ETyAtIG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdoZXJl
IG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAgIyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9HRE9N
LCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRl
c3siRWxlbWVudC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVsZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7
IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7CisgICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcu
aCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAgJGlt
cGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhl
bEFycmF5LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRE9NV2luZG93LmgifSA9IDE7Cisg
ICAgJGltcGxJbmNsdWRlc3siVGV4dC5oIn0gPSAxOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0
aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVhZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4K
KyAgICBteSAkaGFja0RlY2xzID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
Z3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NWYWx1
ZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKENTU1J1bGUqIG5vZGUpOworICAgIGdwb2lu
dGVyIHRvR0RPTShFbGVtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRG9jdW1lbnQq
IG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogbm9kZSk7IAorICAg
IC8vZ3BvaW50ZXIgdG9HRE9NKFNWR1BhdGhTZWcqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dE
T00oU3R5bGVTaGVldCogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5v
ZGUqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIG5vZGUpOyAKKyAg
ICBncG9pbnRlciB0b0dET00oRXZlbnQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oQ2Fu
dmFzUGl4ZWxBcnJheSogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShET01XaW5kb3cqIG5v
ZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oVGV4dCogbm9kZSk7IAorfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCitFT0YKKworICAgIHB1c2goQGNCb2R5LCAkaGFja0RlY2xzKTsKKworICAgICMg
WFhYIFRPRE86IG1ha2UgdGhpcyBvcHRpb25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3IgZmlu
ZCBhIGJldHRlciB3YXkuCisgICAgbXkgJHN0cmluZ0NvbnZlcnQgPSA8PCAiRU9GIjsKK2NsYXNz
IEdTdHJpbmdDb252ZXJ0IHsKKyAgICBwdWJsaWM6CisgICAgY29uc3QgZ2NoYXIgKm1fc3RyOwor
ICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYgcykgeyBtX3N0ciA9IGdf
c3RyZHVwKHMudXRmOCgpLmRhdGEoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpL
VVJMIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KGNvbnN0IEtKUzo6VVN0cmluZyAmIHMpIHsgbV9zdHIg
PSBnX3N0cmR1cChzLlVURjhTdHJpbmcoKS5jX3N0cigpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0
KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsgfQorfTsKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJHN0
cmluZ0NvbnZlcnQpOworCisgICAgcHVzaChAY0JvZHksICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4i
KTsKKworICAgICMgR2V0IGNvcnJlY3QgcGFzcy9zdG9yZSB0eXBlcyByZXNwZWN0aW5nIFBPRFR5
cGUgZmxhZworICAgIG15ICRwb2RUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiUE9EVHlwZSJ9OworICAgIG15ICRwYXNzVHlwZSA9ICRwb2RUeXBlID8gIkpTU1ZHUE9EVHlw
ZVdyYXBwZXI8JHBvZFR5cGU+KiIgOiAiJGludGVyZmFjZU5hbWUqIjsKKworICAgIGlmICgke2lu
dGVyZmFjZU5hbWV9IGVxICJET01XaW5kb3ciIHx8ICghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9K
U0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VOYW1lKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBl
KSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiBvYmosIFNWR0Vs
ZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdD
b250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgICBwdXNoKEBj
Qm9keSwgIktKUzo6SlNWYWx1ZSogdG9KUyhLSlM6OkV4ZWNTdGF0ZSogZXhlYywgJHBhc3NUeXBl
IG9iaiwgU1ZHRWxlbWVudCogY29udGV4dClcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNzVHlwZSBv
YmopXG4iKTsKKyAgICAgICAgI30KKworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAg
ICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0
dXJuIGNhY2hlU1ZHRE9NT2JqZWN0PEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+LCAkY2xh
c3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGV4ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsK
KyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBs
Q2xhc3NOYW1lKSkgeworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBjYWNo
ZVNWR0RPTU9iamVjdDwkaW1wbENsYXNzTmFtZSwgJGNsYXNzTmFtZSwgJHtjbGFzc05hbWV9UHJv
dG90eXBlPihleGVjLCBvYmosIGNvbnRleHQpO1xuIik7CisgICAgICAgICN9IGVsc2UgeworICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0
PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lLCBHRE9NJGludGVyZmFjZU5hbWU+KG9iaik7XG4iKTsK
KyAgICAgICAgI30KKyAgICAgICAgcHVzaChAY0JvZHksICJ9XG4iKTsKKyAgICB9CisKKyAgICBw
dXNoKEBjQm9keSwgIn0gLyogbmFtZXNwYWNlIFdlYkNvcmUgKi8gXG4iKTsKKyAgICBteSAkaW1w
bENvbnRlbnQgPSAiIjsKKworICAgICMgWFhYIFRPRE8gcHVzaChAY0JvZHksICJ1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTtcblxuIik7CisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xu
XG4iKTsKKyAgICBwdXNoKEBjQm9keSwgIiNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmlu
Z0NvbnZlcnQoc3RyKS5tX3N0cilcbiIpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaGVhZGVy
IHRlbXBsYXRlCisgICAgQGhQcmVmaXggPSBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsK
KyAgICAgICAgI3B1c2goQGhQcmVmaXgsICJcbiIpOworCisgICAgIyBIZWFkZXIgZ3VhcmQKKyAg
ICAgICAgbXkgJGd1YXJkID0gIl9fIiAuICRjbGFzc05hbWUgLiAiX0hfXyI7CisKKyAgICBteSAk
Y2xzQ2FwcyA9IHN1YnN0cihDbHNUb0dPYmpUeXBlKCRjbGFzc05hbWUpLCA1KTsKKyAgICBteSAk
bGNhc2VfaWZhY2VuYW1lID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpOwor
ICAgICNteSAkcGFyZW50Q2xzQ2FwcyA9ICJHRE9NXyIgLiBDbHNUb0dPYmpUeXBlKCRwYXJlbnRJ
bnRlcmZhY2VOYW1lKTsKKworICAgIEBoUHJlZml4R3VhcmQgPSA8PCAiRU9GIjsKKyNpZm5kZWYg
JGd1YXJkCisjZGVmaW5lICRndWFyZAorRU9GCisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9G
IjsKK0dfQkVHSU5fREVDTFMKKworRU9GCisKKyAgICBwdXNoKEBoQm9keVByZSwgJGltcGxDb250
ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCisjZGVmaW5lIEdET01fVFlQ
RV8ke2Nsc0NhcHN9ICAgICAgICAgICAgKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc30ob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfSkpCisj
ZGVmaW5lIEdET01fJHtjbHNDYXBzfV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFT
U19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJGNsYXNzTmFtZSlDbGFzcykK
KyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV9J
U18ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNz
KSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9D
TEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV8k
e2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNz
TmFtZX1Qcml2YXRlICR7Y2xhc3NOYW1lfVByaXZhdGU7CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9
IHsKKyAgICAke3BhcmVudENsYXNzTmFtZX0gcGFyZW50X2luc3RhbmNlOworCisgICAgJHtjbGFz
c05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3Mgewor
ICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCisk
e2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOworCitFT0YKKworICAgIHB1c2goQGhC
b2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZu
ZGVmICR7Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7Z3VhcmR9X1BST1BfCitFT0YKKworICAgIHB1
c2goQGhCb2R5UHJvcFByZSwgJGltcGxDb250ZW50KTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwg
IkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgJGhkclByb3BJbmNsdWRleyJnbGliLW9iamVjdC5o
In0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiUHJpdmF0ZUludCR7cGFyZW50SGRyTmFtZX0u
aCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7IkdET01PYmplY3QuaCJ9ID0gMTsKKyAgICAk
aGRyUHJvcEluY2x1ZGV7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKworICAgICRpbXBsQ29u
dGVudCA9IDw8ICJFT0YiOworI2lmbmRlZiAke2d1YXJkfV9JTlRfCisjZGVmaW5lICR7Z3VhcmR9
X0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnQke3Bh
cmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIiR7aW50
ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250
ZW50KTsKKworICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRo
YXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pT
In0pIGFuZCAhVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsK
KyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgZ3BvaW50ZXIgdG9HRE9NKCR7aW50ZXJmYWNlTmFtZX0qIG5vZGUpOworfSAvKiBuYW1lc3Bh
Y2UgV2ViQ29yZSAqLyAKK0VPRgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVu
dCk7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJHX0JFR0lOX0RFQ0xTXG4iKTsK
KworICAgICNDbGFzcyBkZWNsYXJhdGlvbgorICAgICNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRP
TVdpbmRvdyIpIHsKKyAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGlu
dGVyZmFjZU5hbWUge1xuIik7CisgICAgI30gZWxzZSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUgOiBwdWJsaWMgJHBhcmVudEdJZmFjZU5h
bWUge1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdHlwZWRlZiAkcGFy
ZW50R0lmYWNlTmFtZSBCYXNlO1xuIik7CisgICAgI30KKyAgICBwdXNoKEBoQm9keUludGVybmFs
LCAicHVibGljOlxuIik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRf
Z29ial90eXBlKCkgeyByZXR1cm4gR0RPTV9UWVBFXyR7Y2xzQ2Fwc307IH1cbiIpOworCisgICAg
bXkgJG5lZWRzU1ZHQ29udGV4dCA9IDA7CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGhC
b2R5SW50ZXJuYWwsICIgICAgR0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6
JGludGVyZmFjZU5hbWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50
KiBjb250ZXh0IiA6ICIiKSAuICIpO1xuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgIHZpcnR1YWwgfkdET00kaW50ZXJmYWNlTmFtZSgpO1xuIikg
aWYgKCEkaGFzUGFyZW50IG9yICRpbnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpIG9yICRpbnRl
cmZhY2VOYW1lIGVxICJET01XaW5kb3ciOworCisgICAgaWYgKCEkaGFzUGFyZW50IHx8ICgkaW50
ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkgewor
ICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgSlNTVkdQT0RUeXBlV3JhcHBl
cjwkcG9kVHlwZT4qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cbiIpOwor
ICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxlbWVudCogY29udGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAgIyAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAjICAgIHB1c2go
QGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dDtcbiIpOwor
ICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPEpTU1ZHUE9EVHlw
ZVdyYXBwZXI8JHBvZFR5cGU+ID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NW
R1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkgY29u
c3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2Nv
bnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwg
InByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJl
ZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgIFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+IG1faW1wbDtcbiIpOworICAg
ICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2Vi
Q29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7
IH1cblxuIik7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIp
OworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8V2ViQ29yZTo6
JGludGVyZmFjZU5hbWU+IG1faW1wbDtcbiIpOworICAgICAgICAjfQorICAgIH0gZWxzaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29udmVydGVyIn0p
IHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNl
TmFtZSogaW1wbCgpIGNvbnN0XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAg
ICB7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKj4oQmFzZTo6aW1wbCgpKTtcbiIpOwor
ICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIH1cbiIpOworICAgIH0KKyAgICBwdXNo
KEBoQm9keUludGVybmFsLCAifTtcbiIpOworCisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2go
QGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06OkdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVm
UHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8g
IiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKVxuIik7CisgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDptX2lt
cGwoaW1wbClcbiIpOworICAgIH0gZWxzaWYgKCRoYXNQYXJlbnQpIHsKKyAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZShpbXBsIiAuICgkcGFyZW50TmVlZHNTVkdD
b250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIikgaWYgKCRpbnRlcmZhY2VOYW1lIG5l
ICJET01XaW5kb3ciKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6
ICRwYXJlbnRHSWZhY2VOYW1lKClcbiIpIDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBt
X2NvbnRleHQoY29udGV4dClcbiIpIGlmICRuZWVkc1NWR0NvbnRleHQ7CisgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9k
eSwgIntcbiIpOworICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKworICAgICMgRGVzdHJ1Y3Rv
cgorICAgIGlmICghJGhhc1BhcmVudCBvciAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIp
KSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5HRE9NJGlu
dGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisKKyAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgbV9pbXBsLmdldCgpLT5kZXJlZigpO1xuIik7CisgICAgICAg
IGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZSIpIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRv
Y3VtZW50KG1faW1wbC0+ZG9jdW1lbnQoKSwgbV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAgICAgIyAgICBt
eSAkYW5pbWF0ZWRUeXBlID0gJGltcGxDbGFzc05hbWU7CisgICAgICAgICAgICAjICAgICRhbmlt
YXRlZFR5cGUgPX4gcy9TVkcvU1ZHQW5pbWF0ZWQvOworCisgICAgICAgICAgICAjICAgICMgU3Bl
Y2lhbCBjYXNlIGZvciBKU1NWR051bWJlcgorICAgICAgICAgICAgIyAgICBpZiAoJGNvZGVHZW5l
cmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRhbmltYXRlZFR5cGUpIGFuZCAkcG9kVHlwZSBuZSAi
ZmxvYXQiKSB7CisgICAgICAgICAgICAjICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBKU1NWR0R5
bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRwb2RUeXBlLCAkYW5pbWF0ZWRUeXBlPjo6Zm9yZ2V0
V3JhcHBlcihtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgICAgICAjICAgIH0KKyAgICAgICAg
ICAgICN9CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAg
IH0KKworICAgICAgICBwdXNoKEBjQm9keSwgIlxufVxuXG4iKTsKKyAgICB9CisKKyAgICAjIERv
Y3VtZW50IG5lZWRzIGEgc3BlY2lhbCBkZXN0cnVjdG9yIGJlY2F1c2UgaXQncyBhIHNwZWNpYWwg
Y2FzZSBmb3IgY2FjaGluZy4gSXQgbmVlZHMKKyAgICAjIGl0cyBvd24gc3BlY2lhbCBoYW5kbGlu
ZyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBjYWNoaW5nIHRoYXQgTm9kZSBub3JtYWxseSBk
b2VzLgorICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSB7CisgICAgICAgIHB1
c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxu
Iik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRl
cnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNl
TmFtZX0qPihpbXBsKCkpKTtcbn1cblxuIik7CisgICAgfQorCisgICAgJGltcGxJbmNsdWRlc3si
JHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNl
TmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9IDE7CisK
KyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NOYW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRlZnN7
IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIiAvKiB5dWtr
OiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTm9kZS5oIiAvKiB5dWtr
OiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgi
IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNQ
YXR0ZXJuLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRl
ICJDYW52YXNHcmFkaWVudC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICov
CisjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRp
b25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiAvKiB5dWtrOiBU
T0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmpl
Y3QuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkdk
b21FdmVudFRhcmdldE5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAq
LworI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgiIC8qIHl1a2s6IFRPRE8g
LSBtYWtlIHRoaXMgb3B0aW9uYWwgb24gRXZlbnRUYXJnZXQqLworI2luY2x1ZGUgIiR7aW50ZXJm
YWNlTmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5hbWV9LmgiCisjaW5jbHVkZSAiUHJpdmF0ZSR7
aGRyTmFtZX0uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50JHtoZHJOYW1lfS5oIgorI2luY2x1ZGUg
IiR7aGRyTmFtZX1wcm9wcy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgInVzdHJp
bmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisKKyNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5Lmgi
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiQ1NTVmFs
dWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIK
KyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisKKworRU9GCisKKyAg
ICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8
PCAiRU9GIjsKKworJHtoYWNrRGVjbHN9CisKK0dfQkVHSU5fREVDTFMKKworJHtzdHJpbmdDb252
ZXJ0fQorCitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAk
e3BhcmVudEdPYmpUeXBlfSk7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0Nv
bnZlcnQoc3RyKS5tX3N0cikKKworLyoKK3N0cnVjdCBfJHtjbGFzc05hbWV9UHJpdmF0ZSB7Cisg
ICAgY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqaXRlbTsKK307ICAKKworI2RlZmlu
ZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9Q
UklWQVRFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9UHJpdmF0ZSkp
CisqLworR19FTkRfREVDTFMKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9p
ZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCkKK3sKK0VPRgorCisg
ICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgaWYgKCgkaW50ZXJmYWNl
TmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLworRU9GCisgICAgfSBlbHNlIHsK
KyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisgICAgR0RPTSR7aW50ZXJmYWNlTmFt
ZX0gKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NJHtpbnRlcmZhY2VOYW1lfSo+KGdk
b21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVxdWVzdCkpKTsKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KHJlcy0+aW1w
bCgpKTsKK0VPRgorICAgIH0KKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisK
KyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1lUHJlZml4ID0gJGxjYXNlX2lm
YWNlbmFtZTsgCisgICAgU0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5v
ZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJv
cF90eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOwor
ICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgICAgICBuZXh0
IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgJGltcGxJbmNsdWRl
c3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5
bGVEZWNsYXJhdGlvbiI7CisKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUs
ICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgYWRkUHJvcEluY0hkcigkcHJvcF90eXBlKTsKKworICAgICAg
ICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSAkdHlwZVxuJGZ1bmN0aW9uTmFtZVByZWZp
eCIgLiAiX3Byb3BfZ2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKwor
ICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSB2b2lkXG4kZnVuY3Rpb25OYW1l
UHJlZml4IiAuICJfcHJvcF9zZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZywgJHR5cGUi
IC4gInZhbHVlKTtcblxuIik7CisgICAgfQorCisgICAgIyBQcm9wZXJ0aWVzCisgICAgJGltcGxD
b250ZW50ID0gPDwgIkVPRiI7Cit9CisKK0dfQkVHSU5fREVDTFMKKworZW51bSB7CisgICAgQlJP
V1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3Np
Z25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCitlbnVtIHsKKyAgICBQUk9QXzAsCitFT0YK
KyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICBteSBAdHh0X2luc3Rh
bGxfcHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X3NldF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRf
Z2V0X3Byb3BzID0gKCk7CisKKyAgICBteSAkcHJpdl9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNl
TmFtZSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworCisgICAgbXkgJHR4
dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19n
ZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgIEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFt
U3BlYyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBz
fShvYmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAg
ICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0
X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3By
b3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJh
bVNwZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fw
c30ob2JqZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisg
ICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisKKyAgICBTS0lQRU5VTTog
Zm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAg
ICAgbXkgJHByb3BfbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAg
bXkgJHNldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9wX25h
bWUpOworICAgICAgICBteSAkZ2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX2xj
Zmlyc3QoJHByb3BfbmFtZSk7CisKKyAgICAgICAgbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6ZSgk
cHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJHByb3BDYXBzID0gdWMoJHByb3BOYW1lKTsKKyAgICAg
ICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAg
bXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJHtwcm9wRW51bX0g
PSAiUFJPUF8ke3Byb3BDYXBzfSI7CisgICAgICAgIG15ICR7cHJvcF9ndHlwZX0gPSBkZWNhbWVs
aXplKCRwcm9wX3R5cGUpOworICAgICAgICBpZiAoJHByb3BfZ3R5cGUgZXEgImV2ZW50X3Rhcmdl
dCIpIHsKKyAgICAgICAgICAgICRwcm9wX2d0eXBlID0gImV2ZW50X3RhcmdldF9ub2RlIjsKKyAg
ICAgICAgfQorICAgICAgICBteSAke3Byb3BHVHlwZX0gPSB1YygkcHJvcF9ndHlwZSk7CisgICAg
ICAgIG15ICRsY2FzZV9ndHlwZW5hbWUgPSAiZ2RvbV8iIC4gJHByb3BfZ3R5cGU7CisKKyAgICAg
ICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQ
RU5VTTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVj
bGFyYXRpb24iOworICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3JhcmlseSgkdHlwZSwgJHByb3Bf
dHlwZSkpIHsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAg
ICAgIAorICAgICAgICBwdXNoKEBjQm9keVByaXYsICIgICAgJHtwcm9wRW51bX0sXG4iKTsKKwor
ICAgICAgICBteSAkZ3R5cGUgPSBHZXRQcm9wR1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15
ICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBREFCTEUiOworICAgICAgICBteSAkd3JpdGVhYmxl
ID0gJGF0dHJpYnV0ZS0+dHlwZSAhfiAvXnJlYWRvbmx5LzsKKyAgICAgICAgbXkgJGNvbnN0ID0g
InJlYWQtb25seSAiOworICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAkY3VzdG9tKSB7CisgICAg
ICAgICAgICAkY29uc3QgPSAicmVhZC1vbmx5IChkdWUgdG8gY3VzdG9tIGZ1bmN0aW9ucyBuZWVk
ZWQgaW4gZ2RvbXdlYmtpdCkiOworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAhJGN1c3RvbSkgeworICAgICAgICAgICAgJGdw
YXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEV1JJVEUiOworICAgICAgICAgICAgJGNvbnN0ID0gInJl
YWQtd3JpdGUgIjsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRfZ3R5cGUgPSAkZ3R5cGU7Cisg
ICAgICAgIGlmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICRfZ3R5cGUgPSAi
dWludCI7ICMgeXVrLgorICAgICAgICB9CisgICAgICAgIG15ICR0eHRfaW5zdGFsbF9wcm9wID0g
PDwgIkVPRiI7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ19rbGFzcywg
JHtwcm9wRW51bX0sIAorICAgICAgICAgICAgZ19wYXJhbV9zcGVjXyR7X2d0eXBlfSAoIiR7cHJv
cE5hbWV9IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICIke2ludGVyZmFjZU5hbWV9LiR7
cHJvcE5hbWV9IiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAiJHtj
b25zdH0gJHt0eXBlfSAke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IiwgLyogbG9uZ2VyICov
CitFT0YKKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9w
KTsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSAiLyogVE9ETyEgJGd0eXBlICovXG4iOwor
CisgICAgICAgIGlmICgkd3JpdGVhYmxlKSB7CisKKyAgICAgICAgICAgIG15ICRvayA9IDA7Cisg
ICAgICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAgICAgICAgaWYgKCRndHlwZSBl
cSAic3RyaW5nIikgeworICAgICAgICAgICAgICAgICRjb252ZXJ0X2ZuID0gIldlYkNvcmU6OlN0
cmluZyI7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7
aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJl
Y3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAg
ICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAg
fSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50
ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3Qi
IHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAg
ICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBl
IGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJm
YWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0
dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVx
ICJsb25nIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01X
aW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hh
dCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAg
ICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1c2hv
cnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgIyBYWFggVE9ETyAtIHNraXAgTG9jYXRpb24KKyAg
ICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTG9jYXRpb24iKSB7CisgICAgICAgICAg
ICAgICAgJG9rID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCRvaykgewor
ICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVt
fTpcbiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAg
ICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+
c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywg
IiAgICAgICAgZ3NlbGYtPnNldCR7c2V0cHJvcF9uYW1lX2ZufSgke2NvbnZlcnRfZm59KGdfdmFs
dWVfZ2V0XyRndHlwZSAodmFsdWUpKSIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3Nl
dF9wcm9wcywgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAg
ICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIpO1xuIik7CisKKyAgICAgICAgICAg
ICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIg
ICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKworICAgICAgICBteSAkZXhjZXB0aW9u
ID0gIiI7CisgICAgICAgIGlmIChAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7Cisg
ICAgICAgICAgICAkZXhjZXB0aW9uID0gImVjIjsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRf
cHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAg
ICAgIH0KKworICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkcG9zdF9j
b252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRkb25lID0gMDsKKyAgICAgICAgaWYgKCRndHlw
ZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiX0dfR0VUX1VURjgo
IjsKKyAgICAgICAgICAgICRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAgICAgIH0KKyAgICAg
ICAgZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgIyRjb252ZXJ0X2Zu
ID0gIldURjo6Z2V0UHRyKCR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZSgiOworICAgICAg
ICAgICAgIyRjb252ZXJ0X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNlX2d0
eXBlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAi
JHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9w
X3R5cGV9PigiOworICAgICAgICAgICAgIyRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAgICAg
ICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBlOworICAgICAgICAgICAgJHR4
dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cHJv
cF90eXBlfT4gcHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pOwor
ICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QgKHZhbHVlLCBXZWJDb3JlOjp0b0dET00ocHRyLmdl
dCgpKSk7CitFT0YKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3By
b3ApOworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEk
ZG9uZSkgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1
ZV9zZXRfJF9ndHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25hbWVf
Zm59KCR7ZXhjZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xuIik7CisgICAgICAgIH0KKwor
ICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsK
KworICAgICAgICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/Pz8KKyAgICAgICAgIyBj
YW4gaXQgYmUgZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0eXBlCisgICAgICAgICMg
YW5kIGdldHRpbmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUgbWluLW1heCBmb3IgZXhhbXBs
ZT8KKyAgICAgICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklOVCwgICAgICAgIC8q
IG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAg
ICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlw
ZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVP
RiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9
IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3By
b3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZMT0FULCAgICAgICAgLyogbWlu
ICovCisgICAgICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4ICovCisgICAgICAgICAgICAg
ICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7
CisgICAgICAgICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAg
ICAgICAgICBHX01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIp
IHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDY0LCAv
KiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAkdHh0X2lu
c3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4g
Ki8KKyAgICAgICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAg
ICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7Cisg
ICAgICAgICAgICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAg
ICAgR19NQVhMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVm
YXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwg
ICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVCwgLyogbWF4ICovCisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAg
ICAgICAgICAgIEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAg
ICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIi
KSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAg
ICAgICAgIEdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFY
SU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAgICAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAv
KiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAvKiBtYXggKi8KKyAgICAgICAg
ICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAi
RU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3By
b3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHRE9NX1RZUEVfJHtwcm9wR1R5cGV9LCAv
KiBnb2JqZWN0IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAgICAgIHB1c2goQHR4dF9pbnN0
YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKSR7Z3BhcmFtZmxhZ30p
KTsgICAgICAgICAgICAgICAgICAgCisKK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9w
cm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworCisKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keVBy
aXYsICJ9O1xuXG4iKTsKKworCisgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3Qs
IHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisgICAgcHVz
aChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICAkdHh0X3NldF9wcm9wID0g
PDwgIkVPRiI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BS
T1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKworICAg
IG15ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8ICJFT0YiOworICAgIGNhc2UgUFJPUF9BR0U6Cisg
ICAgICAgIHNlbGYtPmFnZSA9IGdfdmFsdWVfZ2V0X2ludCAodmFsdWUpOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwg
c2VsZi0+YWdlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgKyAgIGdfdmFsdWVfaW5pdCgm
cGFyYW1zWzBdLCBHX1RZUEVfRlJPTV9JTlNUQU5DRShvYmplY3QpKTsKKyAgICAgICAgKyAgIGdf
dmFsdWVfc2V0X2luc3RhbmNlKCZwYXJhbXNbMF0sIChncG9pbnRlcilvYmplY3QpOworCitFT0YK
KworICAgICMgVE9ETzogd29yayBvdXQgaWYgaXQncyBhcHByb3ByaWF0ZSB0byBzcGxpdCB0aGlz
IGludG8gbWFueSBkaWZmZXJlbnQKKyAgICAjIHNpZ25hbHMgZS5nLiAiY2xpY2siIGV0Yy4KKyAg
ICBteSAkdHh0X2luc3RhbGxfc2lnbmFscyA9ICIiOworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1l
IGVxICJET01XaW5kb3ciKSB7CisgICAgICAgICR0eHRfaW5zdGFsbF9zaWduYWxzID0gPDwgIkVP
RiI7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJv
d3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisg
ICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9O
KSwKKyAgICAgICAgMCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgd2Vi
a2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisgICAgICAgIEdfVFlQRV9OT05FLCAy
LAorICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKK0VPRgorICAgIH0K
KworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCitzdGF0aWMgdm9pZCAke2xjYXNlX2lm
YWNlbmFtZX1fZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIC8qJHtjbGFzc05hbWV9
KiByZXF1ZXN0ID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7Ki8KKyAgICAvKiR7Y2xhc3NOYW1l
fVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisgICAgCisgICAgLypHT2JqZWN0Q2xh
c3MgKnBhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrIChnX3R5cGVfcGVla19wYXJlbnQg
KCR7cGFyZW50R09ialR5cGV9KSk7Ki8KKworICAgIC8qIEZyZWUgYW55IG1lbW9yeSBvciBjbG9z
ZSBhbnkgZmlsZXMgKi8gCisKKyAgICAvKnBhcmVudF9jbGFzcy0+IGZpbmFsaXplIChvYmplY3Qp
OyovCisKKyAgICBHX09CSkVDVF9DTEFTUygke2xjYXNlX2lmYWNlbmFtZX1fcGFyZW50X2NsYXNz
KS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworQHR4dF9zZXRfcHJvcHMKKworQHR4dF9nZXRfcHJv
cHMKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2NsYXNzX2luaXQoJHtjbGFzc05h
bWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MgKmdfa2xhc3MgPSBH
X09CSkVDVF9DTEFTUyAocmVxdWVzdENsYXNzKTsKKyAgICBnX2tsYXNzLT5maW5hbGl6ZSA9ICR7
bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZTsKKyAgICBnX2tsYXNzLT5zZXRfcHJvcGVydHkgPSAk
e2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9mbjsKKyAgICBnX2tsYXNzLT5nZXRfcHJv
cGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0eV9mbjsKKyAgICAKK0B0eHRf
aW5zdGFsbF9wcm9wcworCiskdHh0X2luc3RhbGxfc2lnbmFscworCisgICAgLypnX3R5cGVfY2xh
c3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoJHtjbGFzc05hbWV9UHJpdmF0ZSkp
OyovCit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9pbml0KCR7Y2xhc3NOYW1l
fSogcmVxdWVzdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSBHRE9NXyR7
Y2xzQ2Fwc31fR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7
Ki8KK30gICAKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0g
MTsKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworI2lmbmRlZiAke2d1YXJkfV9QUklW
XworI2RlZmluZSAke2d1YXJkfV9QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5j
bHVkZSAiJHtwYXJlbnRIZHJOYW1lfS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKy8qI2lu
Y2x1ZGUgIlByaXZhdGUke3BhcmVudEhkck5hbWV9LmgiKi8KKy8qR19CRUdJTl9ERUNMUyovCisv
KmNsYXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX07Ki8KKyNpbmNsdWRlICIke2ludGVyZmFj
ZU5hbWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKwor
ICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy9uYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEdET00ke2ludGVyZmFjZU5hbWV9IDogcHVibGljICR7cGFyZW50R0lmYWNlTmFtZX0gewor
CitwdWJsaWM6CisgICAgR0RPTSR7aW50ZXJmYWNlTmFtZX0oV2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfSogaW1wbCkgOiAkcGFyZW50R0lmYWNlTmFtZX0oaW1wbCkKKyAgICB7IGltcGwtPnJlZigp
OyB9CisgICAgfkdET00ke2ludGVyZmFjZU5hbWV9KCkgeyBtX2ltcGwtPmRlcmVmKCk7IH0KKwor
ICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2lt
cGw7IH0KKworCitwcml2YXRlOgorICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKm1faW1w
bDsKK307CisKK0VPRgorCisgICAgICAgICNwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7
CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsKKworV2ViQ29y
ZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHtj
bGFzc05hbWV9ICpyZXF1ZXN0KTsKKworLypHX0VORF9ERUNMUyovCisKKyNlbmRpZiAvKiAke2d1
YXJkfV9QUklWXyAqLworCitFT0YKKworICAgICNyZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJD
b3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oKFdlYkNvcmU6Ok5vZGUqKShyZXMpKTsKKyAgICAgICAg
cHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgICAgICNpZiAoJHBhcmFtSURM
VHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBj
b3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJKU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0gPSAxOworICAgICAgICAjfSBlbHNlIHsKKyAgICAg
ICAgIyAgICAkaW1wbEluY2x1ZGVzeyRpbmNsdWRlSGRyfSA9IDE7CisgICAgICAgICN9CisgICAg
ICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGlt
cGxJbmNsdWRlc3siUHJpdmF0ZUdkb21ET01PYmplY3QuaCJ9ID0gMTsKKworICAgICAgICBMT09Q
OiBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAg
ICAgICAgICNteSAkZnVuY3Rpb25OYW1lID0gZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSAuICJfIiAu
IGRlY2FtZWxpemUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpOworICAgICAgICAgICAgICAg
IG15ICRmbl9zaWdfbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICAg
ICAgICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlOworICAg
ICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50
ZXJmYWNlTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRmbl9zaWdfbmFtZSk7CisgICAgICAgICAg
ICAgICAgbXkgJHJldHVyblR5cGUgPSBHZXRHVHlwZSgkZm5fc2lnX3R5cGUpOworICAgICAgICAg
ICAgICAgIG15ICRyZXRfaXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJGZuX3NpZ190eXBl
KTsKKworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIkY2xhc3NOYW1lICp0aGl6
IjsKKworICAgICAgICAgICAgICAgIG15ICRjYWxsX2ltcGxfcGFyYW1zID0gIiI7CisgICAgICAg
ICAgICAgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGZuX3Np
Z190eXBlKTsKKworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2Nz
c19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkiKSB7CisgICAgICAgICAgICAgICAgICAg
ICMgcmVzZXJ2ZWQgbmFtZSBjbGFzaCBpbiBnbGliIQorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lID0gImdkb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3NldF9jc3NfcHJvcGVydHki
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIENvbXBhcmVI
b3cgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBl
cSAiZ2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93IGZ1
bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7
ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAgU1ZHRG9jdW1l
bnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgZXEg
Ikdkb21TVkdEb2N1bWVudCAqIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwg
IlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25O
YW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhY
WCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9c
blxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIHNvbWUgY3VzdG9tIGZ1bmN0aW9ucyBmb3Ig
bm93CisgICAgICAgICAgICAgICAgbXkgJGlzX2N1c3RvbV9mbiA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisgICAgICAgICAgICAgICAgaWYg
KCRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xsZWN0aW9uX2l0ZW0iIHx8CisgICAgICAg
ICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xsZWN0aW9uX25hbWVk
X2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fZWxl
bWVudF9zZXRfYXR0cmlidXRlIikgeworICAgICAgICAgICAgICAgICAgICAkaXNfY3VzdG9tX2Zu
ID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21f
Zm4gJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9p
dGVyYXRvcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1l
IG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGls
ZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dh
bGtlcl9wYXJlbnRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
bmUgImdkb21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZp
b3VzX3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX3RyZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYgCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9u
b2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2Rl
X2l0ZXJhdG9yX3ByZXZpb3VzX25vZGUiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhC
b2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xu
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBj
dXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAg
ICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9y
ZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAg
ICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAg
ICAgICBhZGRJbmNCb2R5KCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJ
bmNIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUg
PSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFt
TmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25TaWcgLj0gIiwgJHBhcmFtVHlwZSRwYXJhbU5hbWUiOworCisgICAgICAgICAgICAg
ICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExU
eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgbmUgIkRPTU9iamVjdCIgJiYK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JRExUeXBlIG5lICJFdmVudFRhcmdl
dCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRl
SW50R2RvbSR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGVHZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJhbUlETFR5cGV9
LmgifSA9IDE7ICMgdGhpcyBpc24ndCBzdHJpY3RseSBuZWNlc3NhcnkgYnV0IG9uZSBvZiB0aGUg
YXV0by1nZW5lcmF0ZWQgZmlsZXMgbmVlZGVkIGl0IHNvLi4uLgorICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgk
cGFyYW1faXNfY2xzX3R5cGUgfHwgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1OYW1lID0gIl9nXyIgLiAkcGFyYW1OYW1lOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkY2FsbF9pbXBs
X3BhcmFtcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgLj0g
IiwgJHBhcmFtTmFtZSI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyA9ICIk
cGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIGFkZEluY0hkcigkZm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAg
IGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVk
ZWZzeyJHZG9tJHtmbl9zaWdfdHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworCisgICAgICAgICAgICAg
ICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJHZG9tQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkV2ZW50VGFyZ2V0
IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2
YXRlSW50R2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGVHZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0g
MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siR2RvbSR7
Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9Lmgi
fSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIGN1c3RvbSBm
dW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgICMgYnV0IHNraXAgZnJvbSBoZXJlIHRv
IGFsbG93IHNvbWUgaGVhZGVycyB0byBiZSBjcmVhdGVkCisgICAgICAgICAgICAgICAgIyBmb3Ig
YSBzdWNjZXNzZnVsIGNvbXBpbGUuCisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4g
JiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92
ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21f
bm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1l
IG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5j
dGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxu
LyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7Cisg
ICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICBteSAkX3JldHVyblR5cGUgPSAkcmV0dXJuVHlwZTsKKyAgICAgICAgICAgICAg
ICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kZm5fc2lnX3R5cGU7CisgICAgICAgICAgICAgICAg
aWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25OYW1lIGVxICdnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2NvbnRleHQnKSB7
CisgICAgICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAgICRf
cmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dCAqJzsKKyAgICAgICAgICAg
ICAgICAgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRleHQnOworICAg
ICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5n
X2NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGlu
dm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgY29u
dmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93
KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBh
IEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19j
YW52YXNfY29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAg
ICAgICAgICAgICAgICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21vYmpUeXBlID0gJ0dET01DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQnOworICAgICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAn
Z2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZCc7CisgICAgICAgICAgICAgICAgICAgIG5l
eHQgTE9PUDsgIyBYWFggLSB0b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAg
ICAgICAgICAgICAgICMgbXVzdCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2Ug
SlMgY29kZSB0byBmaW5kIG91dCBob3cpCisgICAgICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3
b3JrIG91dCBob3cgdG8gY3JlYXRlIGEgR0RPTURvbU9iamVjdAorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJX
RUJLSVRfQVBJICRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxu
Iik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0
aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKVxue1xuIik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHJl
dHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJl
dHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHRoaXosIDApO1xuIik7CisgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19y
ZXR1cm5faWZfZmFpbCAodGhpeik7XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRl
bSA9ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUodGhpeikpO1xuIik7CisgICAgICAg
ICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAg
ICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtc
biIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGl0ZW0pO1xuIik7CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXpl
KCRwYXJhbS0+bmFtZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAk
cGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2
ZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgk
cGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5
cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAg
ICAgICAgICAgICAgICAgICMgICAgJGltcGxUeXBlZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9
ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoISRw
YXJhbVR5cGVJc1ByaW1pdGl2ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1
cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRP
RE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwg
MCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFt
TmFtZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5h
bWUgPSAiIjsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24t
PnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAk
cGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlw
ZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRl
Y2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1f
aXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAg
ICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJh
bU5hbWV9ID0gV2ViQ29yZTo6U3RyaW5nKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVj
YW1lbGl6ZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNwdXNoKEBj
Qm9keSwgIiAgICBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9PiAqIF9n
XyR7cGFyYW1OYW1lfSA9IFdURjo6UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUo
JHBhcmFtTmFtZSk+O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURM
VHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCJ9ID0gMTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFdmVudFRhcmdl
dE5vZGUgKiBfZ18ke3BhcmFtTmFtZX0gPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdl
dE5vZGUqPihnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtc
biIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBf
Z18ke3BhcmFtTmFtZX0gPSAoJHtwYXJhbV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1l
KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg
KF9nXyR7cGFyYW1OYW1lfSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1
cm5faWZfZmFpbCAoX2dfJHtwYXJhbU5hbWV9KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJHJldHVy
blBhcmFtTmFtZSA9ICJfZ18iLiRwYXJhbU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUmV0dXJuIn07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkg
JGFzc2lnbiA9ICIiOworICAgICAgICAgICAgICAgIG15ICRhc3NpZ25fcHJlID0gIiI7CisgICAg
ICAgICAgICAgICAgbXkgJGFzc2lnbl9wb3N0ID0gIiI7CisgICAgICAgICAgICAgICAgJGdfcmVz
ID0gMDsKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNf
Y3VzdG9tX2ZuKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAiUGFzc1JlZlB0cjxXZWJDb3Jl
Ojoke2ZuX3NpZ190eXBlfT4gZ19yZXMgPSAiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFz
c2lnbl9wcmUgPSAiV1RGOjpnZXRQdHIoIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3Np
Z25fcG9zdCA9ICIpIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICRhc3NpZ24gPSAiJHtfcmV0dXJuVHlwZX0gcmVzID0gIjsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBteSAkZXhj
ZXB0aW9ucyA9ICIiOworICAgICAgICAgICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhj
ZXB0aW9uc30pIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR7
Y2FsbF9pbXBsX3BhcmFtc30gbmUgIiIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRleGNl
cHRpb25zID0gIiwgZWMiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiZWMiOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBuZWVkIHRoaXMgZm9yIGlu
Y2x1ZGluZyAuLi4gX3NvbWV0aGluZ18gLSBmb3IgdGhlIGNsYXNzIGFyZ3MKKyAgICAgICAgICAg
ICAgICAjaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBs
SW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICN9
CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9hcHBlbmRf
Y2hpbGQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9k
ZV9pbnNlcnRfYmVmb3JlIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVx
ICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgbXkgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9v
bCBvayA9IGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlv
bnN9KTsKKyAgICBpZiAob2spCisgICAgeworICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSBz
dGF0aWNfY2FzdDwke19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKCRyZXR1cm5QYXJhbU5h
bWUpKTsgCisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiBOVUxMOworRU9G
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAkY3VzdG9tX2dkb21fbm9kZV9hcHBl
bmRfY2hpbGQpOworICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9N
T2JqZWN0IiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICdnZG9tX2Rv
Y3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIC8qIFhYWCBUT0RPIC0gZ2V0IGNhbnZhcyBvYmplY3QgKGl0ZW0tPiR7
Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7Ki9cbiIgKTsK
KyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGZuX3NpZ190
eXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgICR7YXNzaWdufV9HX0dFVF9VVEY4KGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBs
X3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7XG4iICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCRnX3JlcykgeworICAgICAgICAgICAgICAgICAgICAg
ICAgJGdfcmVzID0gIiR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgk
e2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KSIgOworICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2Fs
bF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0pO1xuIiApOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgk
cmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAg
ICAgICAgICBpZiAoJGZuX3NpZ190eXBlIG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0
PCR7X3JldHVyblR5cGV9PihXZWJDb3JlOjp0b0dET00oZ19yZXMuZ2V0KCkpKTsgXG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86
IHJldHVybiBjYW52YXMgb2JqZWN0ICovXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIlxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIn1cblxuIik7CisgICAgICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4g
XCJDXCIgKi9cblxuIik7CisgICAgcHVzaChAY0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJDXCIg
Ki9cblxuIik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19FTkRfREVDTFNcblxuIik7
CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9cbiIp
OworCisgICAgcHVzaChAaEJvZHksICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9k
eSwgIiNlbmRpZiAvKiAkZ3VhcmQgKi9cbiIpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19F
TkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3VhcmR9
X1BST1BfKi9cbiIpOworfQorCisjIEludGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQorewor
ICAgIG15ICgkb2JqZWN0LCAkbmFtZSkgPSBAXzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5hbCBo
ZWFkZXIKKyAgICBteSAkaGRyRk5hbWVJbnRlcm5hbCA9ICIkb3V0cHV0RGlyL1ByaXZhdGVJbnQi
IC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFs
Iikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAg
cHJpbnQgSU5USEVBREVSIEBoUHJlZml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAg
IHByaW50IElOVEhFQURFUiBAaEJvZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOwor
CisgICAgIyBXcml0ZSBQcml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91
dHB1dERpci9Qcml2YXRlIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+
JGhkckZOYW1lUHJpdiIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYi
OworCisgICAgcHJpbnQgUFJJVkhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVS
ICJcbiI7CisgICAgcHJpbnQgUFJJVkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZI
RUFERVIpOworCisgICAgIyBXcml0ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgbXkgJGlt
cGxGaWxlTmFtZVByaXYgPSAiJG91dHB1dERpci9Qcml2YXRlIiAuICRuYW1lIC4gIi5jcHAiOwor
ICAgIG9wZW4oUFJJVklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0
IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSU1QTCBAY1By
ZWZpeDsKKyAgICBwcmludCBQUklWSU1QTCAiXG4iOworICAgIHByaW50IFBSSVZJTVBMIEBjQm9k
eVByaXY7CisKKyAgICBjbG9zZShQUklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHByb3BlcnRpZXMg
aGVhZGVyIChhdm9pZHMgcmVjdXJzaXZlIG5pZ2h0bWFyZSkKKyAgICBteSAkaGRyUHJvcEZOYW1l
ID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gInByb3BzLmgiOworICAgIG9wZW4oUFJPUEhFQURF
UiwgIj4kaGRyUHJvcEZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkclByb3BG
TmFtZSI7CisKKyAgICAkaGRyUHJvcEluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisg
ICAgcHJpbnQgUFJPUEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUk9QSEVBREVSICIvKiBy
ZWN1cnNpdmUgaW5jbHVkZXMgLyBkZWZpbmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIg
Zm9yIHByb3BlcnRpZXMuXG5wZXJoYXBzIC0gYmV0dGVyIC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9u
cyBzaG91bGQgYmUgaW4gaGVyZSEqL1xuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVBy
b3BQcmU7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZp
bmVzLmg+XG4iOworICAgIHByaW50IFBST1BIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxu
IiB9IHNvcnQga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJc
biIgaWYga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiI7
CisgICAgcHJpbnQgUFJPUEhFQURFUiBAaEJvZHlQcm9wOworCisgICAgY2xvc2UoSEVBREVSKTsK
KworICAgICMgV3JpdGUgcHVibGljIGhlYWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1
dERpci8iIC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9y
IGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZSI7CisKKyAgICAkaGRySW5jbHVkZXN7
ImdsaWItb2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAg
cHJpbnQgSEVBREVSIEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSA8
d2Via2l0L3dlYmtpdGRlZmluZXMuaD5cbiI7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICIjaW5j
bHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFE
RVIgIlxuIiBpZiBrZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiI7Cisg
ICAgcHJpbnQgSEVBREVSIEBoQm9keVByZTsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgInR5cGVk
ZWYgc3RydWN0IF8kXyAkXztcbiIgfSBzb3J0IGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJp
bnQgSEVBREVSICJcbiIgaWYga2V5cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIg
QGhCb2R5OworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgdGhlIGltcGxlbWVu
dGF0aW9uIHNvdXJjZXMKKyAgICBteSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRu
YW1lIC4gIi5jcHAiOworICAgIG9wZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1lIikgb3IgZGllICJD
b3VsZG4ndCBvcGVuIGZpbGUgJGltcGxGaWxlTmFtZSI7CisKKyAgICBwcmludCBJTVBMIEBjUHJl
Zml4OworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4iOworICAgIHBy
aW50IElNUEwgIiNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50IElNUEwgIiNp
bmNsdWRlIFwiQ1N0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJQbGF0
Zm9ybVN0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJBdG9taWNTdHJp
bmcuaFwiXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwidXN0cmluZy5oXCJcbiI7Cisg
ICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJLVVJMLmhcIlxuIjsKKyAgICBwcmludCBJTVBMIG1h
cCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAg
cHJpbnQgSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBA
Y0JvZHk7CisKKyAgICBjbG9zZShJTVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAg
ICAlaW1wbFR5cGVkZWZzID0gKCk7CisgICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVm
aXggPSAoKTsKKyAgICBAaEJvZHkgPSAoKTsKKyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAgQGhC
b2R5SW50ZXJuYWwgPSAoKTsKKyAgICBAaEJvZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJvcFBy
ZSA9ICgpOworCisgICAgQGNQcmVmaXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0Jv
ZHlQcml2ID0gKCk7Cit9CisKKzE7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJ
KHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICAgIF0gSFRNTE9wdGlvbkVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVt
ZW50ICAgICAgZm9ybTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAg
ICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9H
T0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAgc2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHRleHQ7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpF
Q1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJ
bmRleDogV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdl
YkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE0
ICszNSwxNCBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgY29kZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvZGVCYXNlOwogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0Owot
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhzcGFjZTsKICNl
bHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcg
aHNwYWNlOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb2JqZWN0OwotI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8
IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZzcGFjZTsKICNlbHNlCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgdnNwYWNlOwpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcg
QEAKICAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZmMC05NzhkLWY3
NzNmMmRlZTZhMwogICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGFsaWduOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhl
aWdodDsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJp
bmddIGxvbmcgaGVpZ2h0OwpAQCAtMzgsNyArMzgsNyBAQAogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNy
YzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIHR5cGU7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgd2lkdGg7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRG
cm9tU3RyaW5nXSBsb25nIHdpZHRoOwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisr
KyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYs
NyBAQAogCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyB0aXRsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyByZWZlcnJlcjsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIGRvbWFpbjsKICNlbHNlCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ZG9tYWluOwpAQCAtMTgyLDcgKzE4Miw3IEBACiAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVu
dHNCeU5hbWUoaW4gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKIAotI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZp
bmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3Rv
bV0gTG9jYXRpb24gbG9jYXRpb247CiAjZW5kaWYKIApAQCAtMTk1LDcgKzE5NSw3IEBACiAgICAg
ICAgIEVsZW1lbnQgICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50KGluIGxvbmcgeCwgaW4gbG9u
ZyB5KTsKIAogICAgICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKLSNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVm
aW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgRE9NU2VsZWN0aW9uICAgICAgIGdldFNl
bGVjdGlvbigpOwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51
bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgY2hhcmFjdGVyU2V0OwpAQCAtMjM2LDcgKzIzNiw3
IEBACiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gRE9NU3RyaW5n
IHRhZ25hbWUpOwogCiAgICAgICAgIC8vIE5vZGVTZWxlY3RvciAtIFNlbGVjdG9yIEFQSQotI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICBbQ3VzdG9tXSBF
bGVtZW50IHF1ZXJ5U2VsZWN0b3IoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgW0N1c3RvbV0gTm9kZUxpc3QgcXVl
cnlTZWxlY3RvckFsbChpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIHNlbGVjdG9ycywgaW4gTlNSZXNvbHZlciByZXNvbHZlcikKSW5kZXg6IFdlYkNvcmUv
ZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9SYW5nZUV4
Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRp
b24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExB
TkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7
CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaAkocmV2aXNpb24gMzU3NTgpCisr
KyBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcg
KzI3LDcgQEAKICAqLwogCiAjaWZuZGVmIERPTUNvcmVFeGNlcHRpb25faAotI2RlZmluZSBET01D
b2RlRXhjZXB0aW9uX2gKKyNkZWZpbmUgRE9NQ29yZUV4Y2VwdGlvbl9oCiAKICNpbmNsdWRlICJF
eGNlcHRpb25CYXNlLmgiCiAKSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1
NzU4KQorKysgV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw3ICszNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1l
c3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAg
IC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9u
dEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2RvbS9L
ZXlib2FyZEV2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50
LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIGJvb2xlYW4gYWx0R3JhcGhLZXkpOwogCiAgICAgICAgIC8vIFdlYktpdCBFeHRl
bnNpb25zCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoKCFkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpKSAmJiAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpKQog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKICAgICAg
ICAgCkluZGV4OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBX
ZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyAr
MzYsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1l
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwog
Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVy
cmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBE
T01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS94bWwvWFBhdGhFeGNl
cHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAko
cmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVD
VCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAg
ICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysg
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw3ICszNiw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1l
c3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAg
IC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9u
dEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAko
cmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBACiAgICAgICAgIFtEb05vdENoZWNrRG9tYWluU2VjdXJp
dHksIEN1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSwgaW4gRE9N
U3RyaW5nIHRhcmdldE9yaWdpbikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwog
Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBHbG9i
YWwgY29uc3RydWN0b3JzCiAgICAgICAgIGF0dHJpYnV0ZSBTdHlsZVNoZWV0Q29uc3RydWN0b3Ig
U3R5bGVTaGVldDsKICAgICAgICAgYXR0cmlidXRlIENTU1N0eWxlU2hlZXRDb25zdHJ1Y3RvciBD
U1NTdHlsZVNoZWV0OwpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQor
KysgV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcg
KzYyLDcgQEAKICAgICAgICAgdm9pZCByZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgdm9pZCBh
ZGRSYW5nZShpbiBSYW5nZSByYW5nZSk7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5k
aWYKICAgICB9OwpJbmRleDogV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0
VG9vbHMvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBACiAjIEd0
a0xhdW5jaGVyCiBQcm9ncmFtc19HdGtMYXVuY2hlcl9DUFBGTEFHUyA9IFwKIAktSSQoc3JjZGly
KS9XZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJLUkkKHRv
cF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKIAkkKGphdmFz
Y3JpcHRjb3JlX2NwcGZsYWdzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23104</attachid>
            <date>2008-09-01 13:19:40 -0700</date>
            <delta_ts>2008-09-03 14:20:54 -0700</delta_ts>
            <desc>add webkitevent.h</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>265112</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMjIwLDYgKzIyMSw3IEBACiAKICMgV2ViS2l0CiB3ZWJraXRn
dGtfaF9hcGkgOj0KK2dkb21ndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9CiB3ZWJr
aXRndGtfY3BwZmxhZ3MgOj0KIHdlYmtpdGd0a19idWlsdF9zb3VyY2VzIDo9CkBAIC0yMzIsOCAr
MjM0LDEzIEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0
LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkkKHdlYmtpdGd0a19o
X2FwaSkgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCisJJChnZG9tZ3Rr
X2hfYXBpKSBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmggXAorCVdlYktp
dC9ndGsvd2Via2l0L2dkb20uaCAKIAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMu
aAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgKKwogbGlid2Via2l0XzFfMF9sYV9T
T1VSQ0VTID0gXAogCSQod2Via2l0Z3RrX3NvdXJjZXMpCiAKQEAgLTMwNCw2ICszMTEsMzM4IEBA
CiB3ZWJjb3JlX2xpYmFkZCArPSAtbGdzdGludGVyZmFjZXMtMC4xMCAtbGdzdHZpZGVvLTAuMTAK
IGVuZGlmCiAKK1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6IFdlYktpdC9ndGsv
d2Via2l0L0dkb21Eb2N1bWVudC5oCisKK1dlYktpdC9ndGsvd2Via2l0L0dkb21Eb2N1bWVudC5o
OiBEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnQuaAorCWNwIERlcml2ZWRTb3VyY2VzL0dkb21E
b2N1bWVudC5oIFdlYktpdC9ndGsvd2Via2l0L0dkb21Eb2N1bWVudC5oCisKK1dlYktpdC9ndGsv
d2Via2l0L0dkb21ET01PYmplY3QuaDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuaAorCWNwIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmggV2ViS2l0L2d0
ay93ZWJraXQvR2RvbURPTU9iamVjdC5oCisKK1dlYktpdC9ndGsvd2Via2l0L0dkb21FdmVudFRh
cmdldE5vZGUuaDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAor
CWNwIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggV2ViS2l0L2d0
ay93ZWJraXQvR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisKKworZ2RvbWd0a19oX2FwaSArPSBcCisJ
V2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50LmhcCisJV2ViS2l0L2d0ay93ZWJraXQvR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oXAorCVdlYktpdC9ndGsvd2Via2l0L0dkb21ET01PYmplY3QuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQXR0ci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21BdHRycHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQmFySW5mby5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21CYXJJbmZvcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzR3JhZGllbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzR3JhZGllbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DYW52YXNQYXR0ZXJuLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRl
cm5wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQaXhlbEFycmF5LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BpeGVsQXJyYXlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFT
ZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNEQVRBU2VjdGlvbnByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNoYXJhY3RlckRhdGEuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2hh
cmFjdGVyRGF0YXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNsaXBib2FyZC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
b21tZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Db25zb2xlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbnNvbGVwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Db3VudGVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNv
dW50ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NDaGFyc2V0UnVsZS5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DU1NDaGFyc2V0UnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU0ZvbnRGYWNlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NGb250RmFjZVJ1
bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NJbXBvcnRSdWxlLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NNZWRpYVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTTWVkaWFSdWxlcHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTUGFnZVJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQcmltaXRpdmVWYWx1
ZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQcmltaXRpdmVWYWx1ZXByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1J1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZUxp
c3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZUxpc3Rwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZURlY2xhcmF0aW9ucHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVSdWxlLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1N0eWxlUnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxl
U2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVldHByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVl
TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZUxpc3Rwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1Zh
cmlhYmxlc0RlY2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzUnVsZS5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlcHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRGF0YWJhc2UuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRGF0YWJhc2Vwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbURvY3VtZW50RnJhZ21lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21E
b2N1bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50VHlwZS5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudFR5cGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21ET01BcHBsaWNhdGlvbkNhY2hlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUFwcGxpY2F0
aW9uQ2FjaGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9uLmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21ET01JbXBsZW1lbnRhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01J
bXBsZW1lbnRhdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVBhcnNlci5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJzZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21ET01TZWxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NU2VsZWN0aW9ucHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2luZG93LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bURPTVdpbmRvd3Byb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0
eS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21FbnRpdHlSZWZlcmVuY2UuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5UmVmZXJl
bmNlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnRFeGNlcHRpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRXZlbnRFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUZpbGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmlsZUxpc3QuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRmlsZUxpc3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxl
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSGlzdG9yeS5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IaXN0b3J5cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1lbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQXBwbGV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MQXBwbGV0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVh
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXJlYUVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEJhc2VFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VG
b250RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQm9k
eUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MQnV0dG9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQnV0dG9u
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTENvbGxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENv
bGxlY3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXZFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxEaXZFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERMaXN0RWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRExpc3RFbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTERvY3VtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxEb2N1bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEVtYmVkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRmllbGRTZXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEZvbnRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxG
b250RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9ybUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxG
cmFtZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVTZXRFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEhlYWRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRp
bmdFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkaW5nRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTEhSRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1s
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSHRtbEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MSUZyYW1lRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJ
bWFnZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEltYWdlRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJbnB1dEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxJc0luZGV4RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSXNJbmRleEVsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGFiZWxFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxMYWJlbEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MTGVnZW5kRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGVnZW5k
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTExJRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxMaW5rRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGlua0VsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFwRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MTWFwRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxNYXJxdWVlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFycXVlZUVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTE1ldGFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZXRhRWxl
bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNb2RFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxNb2RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTE9iamVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9iamVjdEVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPTGlzdEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxP
cHRHcm91cEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MUGFyYWdyYXBoRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYWdy
YXBoRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxQcmVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQ
cmVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUXVvdGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFNjcmlwdEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2VsZWN0RWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2VsZWN0RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFN0eWxlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25F
bGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VGFibGVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VGFibGVTZWN0aW9uRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0
QXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUaXRsZUVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRpdGxlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxVTGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFVMaXN0RWxlbWVu
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0YS5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21JbWFnZURhdGFwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0
Q2FsbEZyYW1lLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUphdmFTY3JpcHRDYWxsRnJhbWVwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21LZXlib2FyZEV2ZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUtleWJvYXJkRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Mb2NhdGlv
bi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Mb2NhdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbU1lZGlhTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3Rwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNzYWdlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTWVzc2FnZUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJh
eS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTWltZVR5cGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Nb3VzZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU1vdXNlRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NdXRhdGlvbkV2ZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21OYW1lZE5vZGVNYXAuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2Rl
TWFwcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmF2aWdhdG9yLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU5hdmlnYXRvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUZpbHRlcnByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU5vZGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUl0ZXJhdG9yLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU5vZGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVMaXN0cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTm9kZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vdGF0
aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vdGF0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tT3ZlcmZsb3dFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21PdmVyZmxvd0V2
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2luQXJyYXkuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUGx1Z2luQXJyYXlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVn
aW4uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2lucHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2Nl
c3NpbmdJbnN0cnVjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2dyZXNzRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvZ3Jlc3NFdmVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVJhbmdlRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdl
RXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2UuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUmFuZ2Vwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21SZWN0LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVJlY3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TY3Jl
ZW4uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU2NyZWVucHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1FMRXJyb3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMRXJyb3Jwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1FMUmVzdWx0U2V0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93
TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1FMVHJhbnNhY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1FMVHJhbnNhY3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFnZUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU3RvcmFnZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlcHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TdHlsZVNoZWV0TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21UZXh0RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21U
ZXh0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVHJlZVdhbGtlci5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21UcmVlV2Fsa2VycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVUlFdmVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21VSUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0
QW5pbWF0aW9uRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21XaGVlbEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdoZWVsRXZl
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbnByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxI
dHRwUmVxdWVzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBs
b2FkLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkcHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tWE1MU2VyaWFsaXplci5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21YTUxTZXJpYWxpemVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0
b3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0b3Jwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YUGF0aEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0
aEV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhwcmVzc2lvbi5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4cHJlc3Npb25wcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhO
U1Jlc29sdmVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhSZXN1bHQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWFBhdGhSZXN1bHRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21YU0xUUHJvY2Vzc29yLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQcm9jZXNzb3Jwcm9w
cy5oCisKIHdlYmtpdGd0a19oX2FwaSArPSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Lmgg
XAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaCBcCkBAIC0zMTUsMTIgKzY1NCwx
NyBAQAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmggXAogCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAogCisjIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdk
b21kZWZpbmVzLmgKKwogd2Via2l0Z3RrX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL3dlYmtpdGVudW10eXBlcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXRtYXJzaGFsLmggXAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGVudW10eXBlcy5oCiAKKyMJRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5j
cHAgCisjCVdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaAorCiB3ZWJraXRndGtfc291
cmNlcyArPSBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIFwKQEAgLTM0
NCw3ICs2ODgsOSBAQAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwIFwKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgXAorCVdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcCAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGV2ZW50LmggCiAKIHdlYmtpdGd0a19jcHBmbGFncyArPSBcCiAJLURCVUlMRElOR19XRUJL
SVQgXApAQCAtMzY2LDYgKzcxMiw5IEBACiAJc3RhbXAtd2Via2l0ZW51bXR5cGVzLmNwcCBcCiAJ
c3RhbXAtd2Via2l0ZW51bXR5cGVzLmgKIAorIwlzdGFtcC1nZG9tZW51bXR5cGVzLmNwcCAKKyMJ
c3RhbXAtZ2RvbWVudW10eXBlcy5oIAorCiBXRUJLSVRfTUFSU0hBTCA9ICQoR0VOU09VUkNFUykv
d2Via2l0bWFyc2hhbAogV0VCS0lUX01BUlNIQUxfTElTVCA9ICQoV0VCS0lUX01BUlNIQUwpLmxp
c3QKIApAQCAtNDQyLDYgKzc5MSw1NCBAQAogCSYmIGNwIHhnZW4tZ3RjICRAIFwKIAkmJiBybSAt
ZiB4Z2VuLWd0YwogCitXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmg6IHN0YW1wLWdk
b21lbnVtdHlwZXMuaAorCUB0cnVlCitzdGFtcC1nZG9tZW51bXR5cGVzLmg6ICQoZ2RvbWd0a19o
X2FwaSkgR05VbWFrZWZpbGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAor
CQkJLS1maGVhZCAiI2lmbmRlZiBHRE9NX0VOVU1fVFlQRVNfSFxuIiBcCisJCQktLWZoZWFkICIj
ZGVmaW5lIEdET01fRU5VTV9UWVBFU19IXG5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+XG5cbiIgXAorCQkJLS1maGVhZCAiR19CRUdJTl9ERUNMU1xuXG4iIFwKKwkJ
CS0tZnRhaWwgIkdfRU5EX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFpbCAiI2VuZGlmXG4iIFwKKwkJ
CS0tZnByb2QgIiNpbmNsdWRlIDxAZmlsZW5hbWVAPlxuXG4iIFwKKwkJCS0tZXByb2QgIiNkZWZp
bmUgR0RPTV9UWVBFX0BFTlVNU0hPUlRAIEBlbnVtX25hbWVAX2dldF90eXBlKClcblxuIiBcCisJ
CQktLWVwcm9kICJXRUJLSVRfQVBJIEdUeXBlXG5AZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKTtc
blxuIiBcCisJCQkkKGdkb21ndGtfaF9hcGkpIHwgXAorCQkJc2VkICdzLFdlYktpdC9ndGsvLCwn
IHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxnZG9tLCcgfCBcCisJCXNlZCAncyxHRE9NX1RZUEVfS0lU
LEdET01fVFlQRSwnIFwKKwkJKSA+IHhnZW4tY2d0aCBcCisJJiYgKGNtcCAtcyB4Z2VuLWNndGgg
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oIHx8IGNwIHhnZW4tY2d0aCBXZWJLaXQv
Z3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgpIFwKKwkmJiBybSAtZiB4Z2VuLWNndGggXAorCSYm
IGVjaG8gdGltZXN0YW1wID4gJChARikKKworIyAgICAgICAgICAgICAgLS1maGVhZCAiI2luY2x1
ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPlxuXG4iIAorCitEZXJpdmVkU291cmNlcy9nZG9tZW51
bXR5cGVzLmNwcDogJChnZG9tZ3RrX2hfYXBpKSBHTlVtYWtlZmlsZQorCShjZCAkKHNyY2Rpcikg
XAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Y29uZmlnLmg+XG4i
IFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuIiBcCisJCQktLWZoZWFk
ICIjaW5jbHVkZSBcIiQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5
cGVzLmhcIlxuXG4iIFwKKwkJCS0tZmhlYWQgImV4dGVybiBcIkNcIiB7XG5cbiIgXAorCQkJLS1m
cHJvZCAiXG4vKiBlbnVtZXJhdGlvbnMgZnJvbSBcIkBmaWxlbmFtZUBcIiAqLyIgXAorCQkJLS12
aGVhZCAic3RhdGljIGNvbnN0IEdAVHlwZUBWYWx1ZSBfQGVudW1fbmFtZUBfdmFsdWVzW10gPSB7
IiBcCisJCQktLXZwcm9kICIgICAgeyBAVkFMVUVOQU1FQCwgXCJAVkFMVUVOQU1FQFwiLCBcIkB2
YWx1ZW5pY2tAXCIgfSwiIFwKKwkJCS0tdnRhaWwgIiAgICB7IDAsIE5VTEwsIE5VTEwgfVxufTtc
blxuIiBcCisJCQktLXZ0YWlsICJHVHlwZSBAZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKVxue1xu
IiBcCisJCQktLXZ0YWlsICIgICAgc3RhdGljIEdUeXBlIHR5cGUgPSAwO1xuXG4iIFwKKwkJCS0t
dnRhaWwgIiAgICBpZiAoIXR5cGUpXG4iIFwKKwkJCS0tdnRhaWwgIiAgICAgICAgdHlwZSA9IGdf
QHR5cGVAX3JlZ2lzdGVyX3N0YXRpYyhcIkBFbnVtTmFtZUBcIiwgX0BlbnVtX25hbWVAX3ZhbHVl
cyk7XG5cbiIgXAorCQkJLS12dGFpbCAiICAgIHJldHVybiB0eXBlO1xufVxuXG4iIFwKKwkJCS0t
ZnRhaWwgIn1cbiIgXAorCQkkKGdkb21ndGtfaF9hcGkpIHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxn
ZG9tLCcgXAorCQkpID4geGdlbi1jZ3RjIFwKKwkmJiBjcCB4Z2VuLWNndGMgJEAgXAorCSYmIHJt
IC1mIHhnZW4tY2d0YworCiAjIEVORCBXRUJLSVQgR1RLKwogIwogIyBGaWxlcyB0aGF0IHdpbGwg
YmUgZGlzdHJpYnV0ZWQKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJl
dmlzaW9uIDM2MDE1KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDEzIEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqIENvcHlyaWdo
dCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAy
MDA3IEFwcGxlIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNo
cmlzdGlhbkBpbWVuZGlvLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKgorICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCiAgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKQEAgLTQyLDYgKzQ0LDEyIEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4
dC5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudExp
c3RlbmVyV2luZG93LmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAK
QEAgLTQ5LDYgKzU3LDEwIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwlncG9pbnRlciB0b0dET00oRG9jdW1l
bnQqIGRvYyk7Cit9CisKIGV4dGVybiAiQyIgewogCiBlbnVtIHsKQEAgLTU3LDYgKzY5LDcgQEAK
ICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAgICBIT1ZFUklOR19PVkVSX0xJ
TkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMTYyLDYg
KzE3NSwxNiBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAgICAgICBHX1RZ
UEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFs
c1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFs
RmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAg
IDAsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdl
YmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICAgICAgR19UWVBFX05P
TkUsIDIsCisgICAgICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKwog
ICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAq
LwpAQCAtMjk0LDYgKzMxNyw1MyBAQAogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0
X2RvbV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1
cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAorICoKKyAqIFJldHVybiB2YWx1
ZTogYSBHZG9tRG9jdW1lbnQKKyAqLworR2RvbURvY3VtZW50KiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9kb21fZG9jdW1lbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2Vi
S2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisJcmV0dXJuIEdE
T01fRE9DVU1FTlQoV2ViQ29yZTo6dG9HRE9NKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkpOworfQor
CisvKiBYWFggVE9ETzogbWFrZSB0aGlzIG5vdCB0YWtlIGZyYW1lKiBhcyBhbiBhcmd1bWVudCwK
KyAqIGFuZCBtYWtlIGl0IHJldHVybiBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzICovCitleHRl
cm4gIkMiIHsKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0V2ViRnJhbWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNvbnN0IGNoYXIgKm5hbWUpOworfQor
CisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyOgorICogQGZyYW1l
OiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIGFkZHMgYW4gZXZlbnQgbGlzdGVuZXIgdG8gdGhl
IGZyYW1lJ3MgZG9jdW1lbnQKKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBuYW1lIG9mIEBmcmFt
ZQorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJL
aXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciogZXZlbnRfdHlwZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgRkFMU0UpOworCisgICAgLy9XZWJLaXRX
ZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKworCXJldHVybiBhZGRf
d2luZG93X2V2ZW50X2xpc3RlbmVyKGZyYW1lLCBjb3JlRnJhbWUsIGV2ZW50X3R5cGUpOworfQor
CisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6IGEgI1dlYktp
dFdlYkZyYW1lCiAgKgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCShy
ZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgSlNfRE9N
X0VWRU5UX0xJU1RFTkVSX05PREVfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfTk9E
RV9ICisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMu
aD4KKworCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisvKiBUT0RPOiByZXR1
cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCByZXF1aXJlcworICog
YSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RPOiBwcm92aWRlIGEg
J3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGliCisgKiBvYmplY3Qg
YXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQorZ2Jvb2xlYW4gYWRk
X2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1cmUpOworfQor
CisjZW5kaWYgLypKU19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9IICovCkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDM2MDE1KQorKysgV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHly
aWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1bWVudC5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYx
LDYgKzYzLDkgQEAKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUgKgogd2Via2l0X3dlYl9mcmFt
ZV9uZXcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAK
K1dFQktJVF9BUEkgR2RvbURvY3VtZW50ICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1
bWVudCAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKwogV0VCS0lUX0FQSSBX
ZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3ICAgICAgIChXZWJL
aXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCkBAIC05Myw2ICs5OCwxMCBAQAogV0VCS0lUX0FQ
SSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2dsb2JhbF9jb250ZXh0
IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCitXRUJLSVRfQVBJIGdib29sZWFuCit3
ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAg
ICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKSW5kZXg6IFdlYktpdC9ndGsvd2Vi
a2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtp
dC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtp
dC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtj
bEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSAorI2Rl
ZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfV0lORE9XX0gKKworI2luY2x1ZGUgPGdsaWIuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKK2V4dGVybiAiQyIgeworLyog
VE9ETzogbWFrZSBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0byBiZSByZXR1cm5lZCBoZXJl
ICovCit9CisKKyNlbmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSCAqLwpJbmRl
eDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wu
bmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUg
IkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIK
KworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisKKwor
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1
ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXaW5kb3cuaCIKKyNpbmNsdWRlICJF
dmVudExpc3RlbmVyTm9kZS5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1
ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJTdHJp
bmdJbXBsLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5o
IgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAid2Via2l0ZXZl
bnQuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisKKyNpbmNs
dWRlIDxnbGliLW9iamVjdC5oPgorCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBkb2MpOworICAgIGdw
b2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOworfQorCitleHRlcm4gIkMiIHsK
KworR19ERUZJTkVfVFlQRShXZWJLaXRFdmVudCwgd2Via2l0X2V2ZW50LCBHX1RZUEVfT0JKRUNU
KTsKKworc3RydWN0IF9XZWJLaXRFdmVudFByaXZhdGUgeworICAgIEV2ZW50KiBldmVudDsKK307
CisKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktpdEV2ZW50UHJpdmF0
ZSkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9ldmVudF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3Qp
Cit7CisgICAgLy9XZWJLaXRFdmVudCogcmVxdWVzdCA9IFdFQktJVF9FVkVOVChvYmplY3QpOwor
ICAgIC8vV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKworICAgIC8v
Z19mcmVlKHByaXYtPnVyaSk7CisKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZXZlbnRfcGFy
ZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X2V2
ZW50X2NsYXNzX2luaXQoV2ViS2l0RXZlbnRDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdf
T0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gd2Via2l0X2V2ZW50X2ZpbmFs
aXplOworCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9m
KFdlYktpdEV2ZW50UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfaW5p
dChXZWJLaXRFdmVudCogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYg
PSBXRUJLSVRfRVZFTlRfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9
IHByaXY7Cit9CisKK1dlYktpdEV2ZW50KiB3ZWJraXRfZXZlbnRfbmV3KHZvaWQpCit7CisgICAg
V2ViS2l0RXZlbnQqIHJlcXVlc3QgPSBXRUJLSVRfRVZFTlQoZ19vYmplY3RfbmV3KFdFQktJVF9U
WVBFX0VWRU5ULCBOVUxMKSk7CisgICAgLy9wcml2LT5ldmVudCA9IGV2ZW50OworCisgICAgcmV0
dXJuIHJlcXVlc3Q7Cit9CisKKy8qCit2b2lkIHdlYmtpdF9ldmVudF9zZXRfdXJpKFdlYktpdEV2
ZW50KiByZXF1ZXN0LCBjb25zdCBnY2hhciogdXJpKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX0VWRU5UKHJlcXVlc3QpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHVyaSk7CisK
KyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworCisgICAgZ19m
cmVlKHByaXYtPnVyaSk7CisgICAgcHJpdi0+dXJpID0gZ19zdHJkdXAodXJpKTsKK30KKyovCitH
X0NPTlNUX1JFVFVSTiBnY2hhciogd2Via2l0X2V2ZW50X2dldF9ldmVudF90eXBlKFdlYktpdEV2
ZW50KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19FVkVO
VChyZXF1ZXN0KSwgTlVMTCk7CisKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1
ZXN0LT5wcml2OworICAgIHJldHVybiBnX3N0cmR1cChwcml2LT5ldmVudC0+dHlwZSgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOworfQorCit2b2lkIHdlYmtpdF9ldmVudF9jYW5jZWxfYnViYmxl
ICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QsIGdib29sZWFuIGNhbmNlbCkKK3sKKyAgICBXZWJLaXRF
dmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworICAgIHByaXYtPmV2ZW50LT5zZXRD
YW5jZWxCdWJibGUoY2FuY2VsKTsKK30KKwordm9pZCB3ZWJraXRfZXZlbnRfcHJldmVudF9kZWZh
dWx0ICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QpCit7CisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBw
cml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5ldmVudC0+cHJldmVudERlZmF1bHQoKTsK
K30KKwordm9pZCB3ZWJraXRfZXZlbnRfc3RvcF9wcm9wYWdhdGlvbiAgKFdlYktpdEV2ZW50ICpy
ZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7
CisgICAgcHJpdi0+ZXZlbnQtPnN0b3BQcm9wYWdhdGlvbigpOworfQorCitXRUJLSVRfQVBJIGdi
b29sZWFuCithZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3ZiwgRnJh
bWUgKmZyYW1lLCBjb25zdCBjaGFyICpuYW1lKTsKKworfSAvLyBleHRlcm4gIkMiCisKK2NsYXNz
IE5vZGVFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE5vZGVFdmVudExpc3RlbmVyPiBjcmVhdGUoR2RvbUV2ZW50VGFy
Z2V0Tm9kZSogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5vZGVFdmVudExpc3RlbmVy
KHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIHVzZUNh
cHR1cmUpOworCisgICAgcHJpdmF0ZToKKyAgICBOb2RlRXZlbnRMaXN0ZW5lcihHZG9tRXZlbnRU
YXJnZXROb2RlKiB3ZikgOiBtX3dmKHdmKSB7IH0KKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlKiBt
X3dmOworfTsKKwordm9pZCBOb2RlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2
ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIHByaW50
Zigibm9kZSBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9N
KGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsICJicm93c2VyLWV2ZW50
Iiwgd2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKK30KKworY2xhc3MgV2luZG93RXZlbnRMaXN0
ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBjcmVhdGUoV2ViS2l0V2ViRnJhbWUqIHdmKSAKKyAg
ICB7IHJldHVybiBhZG9wdFJlZihuZXcgV2luZG93RXZlbnRMaXN0ZW5lcih3ZikpOyB9CisgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCBpc1dpbmRvd0V2ZW50KTsKKwor
ICAgIHByaXZhdGU6CisgICAgV2luZG93RXZlbnRMaXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2Yp
IDogbV93Zih3ZikgeyB9CisgICAgV2ViS2l0V2ViRnJhbWUqIG1fd2Y7Cit9OworCit2b2lkIFdp
bmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCBpc1dpbmRv
d0V2ZW50KQoreworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBwcmludGYoIndpbmRvdyBoYW5k
bGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50KSk7Cisg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsICJicm93c2VyLWV2ZW50Iiwgd2V2LCBpc1dp
bmRvd0V2ZW50LCAmcmV0dmFsKTsKK30KKworZ2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdk
b21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1cmUpCit7CisgICAgV2ViQ29yZTo6Tm9kZSAq
bm9kZSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUod2YpOworICAgIGlmIChu
b2RlID09IE5VTEwgfHwgIW5vZGUtPmlzRXZlbnRUYXJnZXROb2RlKCkpCisgICAgICAgIHJldHVy
biBGQUxTRTsKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBldG4gPSAoc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICo+KG5vZGUpKS0+dG9Ob2RlKCk7CisgICAgaWYg
KGV0biA9PSBOVUxMKQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBSZWZQdHI8Tm9kZUV2
ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gTm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7Cisg
ICAgZXRuLT5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsKKwor
ICAgIHJldHVybiBUUlVFOworCit9IAorCitnYm9vbGVhbiBhZGRfd2luZG93X2V2ZW50X2xpc3Rl
bmVyKFdlYktpdFdlYkZyYW1lICp3ZiwgRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQoreworICAgIERvY3VtZW50KiBkb2Mg
PSBmcmFtZS0+ZG9jdW1lbnQoKTsKKworICAgIFJlZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBs
aXN0ZW5lciA9IFdpbmRvd0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgZG9jLT5hZGRX
aW5kb3dFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB0cnVlKTsKKworICAgIHJldHVybiBU
UlVFOworCit9IAorCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCShyZXZpc2lvbiAz
NTc1OCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtNDAsNiArNDAsOSBAQAogCiBHX0JFR0lOX0RFQ0xTCiAKK3R5cGVkZWYgc3RydWN0IF9X
ZWJLaXRFdmVudCBXZWJLaXRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudENsYXNz
IFdlYktpdEV2ZW50Q2xhc3M7CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVxdWVz
dCBXZWJLaXROZXR3b3JrUmVxdWVzdDsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVx
dWVzdENsYXNzIFdlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3M7CiAKSW5kZXg6IFdlYktpdC9ndGsv
d2Via2l0L2dkb21kZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvZ2Rv
bWRlZmluZXMuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVz
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXRUJLSVRf
R0RPTV9ERUZJTkVTX0gKKyNkZWZpbmUgV0VCS0lUX0dET01fREVGSU5FU19ICisKKyNpbmNsdWRl
IDxnbGliLmg+CisKKyNpZmRlZiBHX09TX1dJTjMyCisgICAgI2lmZGVmIEJVSUxESU5HX1dFQktJ
VF9HRE9NCisgICAgICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fZGVjbHNwZWMoZGxsZXhw
b3J0KQorICAgICNlbHNlCisgICAgICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9fZGVjbHNw
ZWMoZGxsaW1wb3J0KQorICAgICNlbmRpZgorICAgICNkZWZpbmUgV0VCS0lUX0dET01fT0JTT0xF
VEVfQVBJIFdFQktJVF9HRE9NX0FQSQorI2Vsc2UKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQ
SSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorICAgICNkZWZpbmUgV0VC
S0lUX0dET01fT0JTT0xFVEVfQVBJIFdFQktJVF9HRE9NX0FQSSBfX2F0dHJpYnV0ZV9fKChkZXBy
ZWNhdGVkKSkKKyNlbmRpZgorCisjaWZuZGVmIFdFQktJVF9HRE9NX0FQSQorICAgICNkZWZpbmUg
V0VCS0lUX0dET01fQVBJCisjZW5kaWYKKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0cnVj
dCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdCBHZG9tRE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21ET01PYmplY3RDbGFzcyBHZG9tRE9NT2JqZWN0Q2xhc3M7CisKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQXR0ciBHZG9tQXR0cjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQXR0ckNsYXNzIEdk
b21BdHRyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUJhckluZm8gR2RvbUJhckluZm87Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUJhckluZm9DbGFzcyBHZG9tQmFySW5mb0NsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21DYW52YXNHcmFkaWVudCBHZG9tQ2FudmFzR3JhZGllbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNhbnZhc0dyYWRpZW50Q2xhc3MgR2RvbUNhbnZhc0dyYWRpZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BhdHRlcm4gR2RvbUNhbnZhc1BhdHRlcm47Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BhdHRlcm5DbGFzcyBHZG9tQ2FudmFzUGF0dGVybkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQaXhlbEFycmF5IEdkb21DYW52YXNQaXhl
bEFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQaXhlbEFycmF5Q2xhc3MgR2RvbUNh
bnZhc1BpeGVsQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEIEdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRENsYXNzIEdkb21DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ0RBVEFTZWN0aW9uIEdkb21DREFUQVNl
Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNEQVRBU2VjdGlvbkNsYXNzIEdkb21DREFUQVNl
Y3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2hhcmFjdGVyRGF0YSBHZG9tQ2hhcmFj
dGVyRGF0YTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2hhcmFjdGVyRGF0YUNsYXNzIEdkb21DaGFy
YWN0ZXJEYXRhQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNsaXBib2FyZCBHZG9tQ2xpcGJv
YXJkOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DbGlwYm9hcmRDbGFzcyBHZG9tQ2xpcGJvYXJkQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvbW1lbnQgR2RvbUNvbW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUNvbW1lbnRDbGFzcyBHZG9tQ29tbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21Db25zb2xlIEdkb21Db25zb2xlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db25zb2xlQ2xh
c3MgR2RvbUNvbnNvbGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ291bnRlciBHZG9tQ291
bnRlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ291bnRlckNsYXNzIEdkb21Db3VudGVyQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0NoYXJzZXRSdWxlIEdkb21DU1NDaGFyc2V0UnVsZTsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTQ2hhcnNldFJ1bGVDbGFzcyBHZG9tQ1NTQ2hhcnNldFJ1
bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTRm9udEZhY2VSdWxlIEdkb21DU1NGb250
RmFjZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ZvbnRGYWNlUnVsZUNsYXNzIEdkb21D
U1NGb250RmFjZVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTSW1wb3J0UnVsZSBH
ZG9tQ1NTSW1wb3J0UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTSW1wb3J0UnVsZUNsYXNz
IEdkb21DU1NJbXBvcnRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU01lZGlhUnVs
ZSBHZG9tQ1NTTWVkaWFSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NNZWRpYVJ1bGVDbGFz
cyBHZG9tQ1NTTWVkaWFSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1BhZ2VSdWxl
IEdkb21DU1NQYWdlUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUGFnZVJ1bGVDbGFzcyBH
ZG9tQ1NTUGFnZVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUHJpbWl0aXZlVmFs
dWUgR2RvbUNTU1ByaW1pdGl2ZVZhbHVlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NQcmltaXRp
dmVWYWx1ZUNsYXNzIEdkb21DU1NQcmltaXRpdmVWYWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21DU1NSdWxlIEdkb21DU1NSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NSdWxlQ2xh
c3MgR2RvbUNTU1J1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZUxpc3QgR2Rv
bUNTU1J1bGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NSdWxlTGlzdENsYXNzIEdkb21D
U1NSdWxlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZURlY2xhcmF0aW9u
IEdkb21DU1NTdHlsZURlY2xhcmF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZURl
Y2xhcmF0aW9uQ2xhc3MgR2RvbUNTU1N0eWxlRGVjbGFyYXRpb25DbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTU3R5bGVSdWxlIEdkb21DU1NTdHlsZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNTU1N0eWxlUnVsZUNsYXNzIEdkb21DU1NTdHlsZVJ1bGVDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTU3R5bGVTaGVldCBHZG9tQ1NTU3R5bGVTaGVldDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tQ1NTU3R5bGVTaGVldENsYXNzIEdkb21DU1NTdHlsZVNoZWV0Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNTU1ZhbHVlIEdkb21DU1NWYWx1ZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTVmFsdWVDbGFzcyBHZG9tQ1NTVmFsdWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NT
VmFsdWVMaXN0IEdkb21DU1NWYWx1ZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhbHVl
TGlzdENsYXNzIEdkb21DU1NWYWx1ZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NT
VmFyaWFibGVzRGVjbGFyYXRpb24gR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbkNsYXNzIEdkb21DU1NWYXJpYWJs
ZXNEZWNsYXJhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYXJpYWJsZXNSdWxl
IEdkb21DU1NWYXJpYWJsZXNSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYXJpYWJsZXNS
dWxlQ2xhc3MgR2RvbUNTU1ZhcmlhYmxlc1J1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RGF0YWJhc2UgR2RvbURhdGFiYXNlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21EYXRhYmFzZUNsYXNz
IEdkb21EYXRhYmFzZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudEZyYWdtZW50
IEdkb21Eb2N1bWVudEZyYWdtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudEZyYWdt
ZW50Q2xhc3MgR2RvbURvY3VtZW50RnJhZ21lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RG9jdW1lbnQgR2RvbURvY3VtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudENsYXNz
IEdkb21Eb2N1bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudFR5cGUgR2Rv
bURvY3VtZW50VHlwZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRUeXBlQ2xhc3MgR2Rv
bURvY3VtZW50VHlwZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01BcHBsaWNhdGlvbkNh
Y2hlIEdkb21ET01BcHBsaWNhdGlvbkNhY2hlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01BcHBs
aWNhdGlvbkNhY2hlQ2xhc3MgR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGVDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRE9NQ29yZUV4Y2VwdGlvbiBHZG9tRE9NQ29yZUV4Y2VwdGlvbjsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRE9NQ29yZUV4Y2VwdGlvbkNsYXNzIEdkb21ET01Db3JlRXhjZXB0aW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUltcGxlbWVudGF0aW9uIEdkb21ET01JbXBs
ZW1lbnRhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NSW1wbGVtZW50YXRpb25DbGFzcyBH
ZG9tRE9NSW1wbGVtZW50YXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NUGFyc2Vy
IEdkb21ET01QYXJzZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVBhcnNlckNsYXNzIEdkb21E
T01QYXJzZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NU2VsZWN0aW9uIEdkb21ET01T
ZWxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVNlbGVjdGlvbkNsYXNzIEdkb21ET01T
ZWxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NV2luZG93IEdkb21ET01XaW5k
b3c7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVdpbmRvd0NsYXNzIEdkb21ET01XaW5kb3dDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRWxlbWVudCBHZG9tRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tRWxlbWVudENsYXNzIEdkb21FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUVudGl0eSBHZG9tRW50aXR5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbnRpdHlDbGFzcyBH
ZG9tRW50aXR5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVudGl0eVJlZmVyZW5jZSBHZG9t
RW50aXR5UmVmZXJlbmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbnRpdHlSZWZlcmVuY2VDbGFz
cyBHZG9tRW50aXR5UmVmZXJlbmNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50RXhj
ZXB0aW9uIEdkb21FdmVudEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRFeGNl
cHRpb25DbGFzcyBHZG9tRXZlbnRFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RXZlbnQgR2RvbUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudENsYXNzIEdkb21FdmVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21GaWxlIEdkb21GaWxlOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21GaWxlQ2xhc3MgR2RvbUZpbGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmls
ZUxpc3QgR2RvbUZpbGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21GaWxlTGlzdENsYXNzIEdk
b21GaWxlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IaXN0b3J5IEdkb21IaXN0b3J5
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IaXN0b3J5Q2xhc3MgR2RvbUhpc3RvcnlDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFuY2hvckVsZW1lbnQgR2RvbUhUTUxBbmNob3JFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQW5jaG9yRWxlbWVudENsYXNzIEdkb21IVE1MQW5j
aG9yRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQXBwbGV0RWxlbWVudCBH
ZG9tSFRNTEFwcGxldEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBcHBsZXRFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxBcHBsZXRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxBcmVhRWxlbWVudCBHZG9tSFRNTEFyZWFFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MQXJlYUVsZW1lbnRDbGFzcyBHZG9tSFRNTEFyZWFFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxCYXNlRWxlbWVudCBHZG9tSFRNTEJhc2VFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUVsZW1lbnRDbGFzcyBHZG9tSFRNTEJhc2VFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQgR2RvbUhUTUxCYXNl
Rm9udEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCYXNlRm9udEVsZW1lbnRDbGFz
cyBHZG9tSFRNTEJhc2VGb250RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
QmxvY2txdW90ZUVsZW1lbnQgR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxCbG9ja3F1b3RlRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQm9keUVsZW1lbnQgR2RvbUhUTUxC
b2R5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJvZHlFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxCb2R5RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQlJFbGVtZW50
IEdkb21IVE1MQlJFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQlJFbGVtZW50Q2xh
c3MgR2RvbUhUTUxCUkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJ1dHRv
bkVsZW1lbnQgR2RvbUhUTUxCdXR0b25FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
QnV0dG9uRWxlbWVudENsYXNzIEdkb21IVE1MQnV0dG9uRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MQ2FudmFzRWxlbWVudCBHZG9tSFRNTENhbnZhc0VsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxDYW52YXNFbGVtZW50Q2xhc3MgR2RvbUhUTUxDYW52YXNFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxDb2xsZWN0aW9uIEdkb21IVE1MQ29s
bGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTENvbGxlY3Rpb25DbGFzcyBHZG9tSFRN
TENvbGxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERpcmVjdG9yeUVsZW1l
bnQgR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRGly
ZWN0b3J5RWxlbWVudENsYXNzIEdkb21IVE1MRGlyZWN0b3J5RWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MRGl2RWxlbWVudCBHZG9tSFRNTERpdkVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxEaXZFbGVtZW50Q2xhc3MgR2RvbUhUTUxEaXZFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxETGlzdEVsZW1lbnQgR2RvbUhUTUxETGlzdEVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxETGlzdEVsZW1lbnRDbGFzcyBHZG9tSFRNTERM
aXN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRG9jdW1lbnQgR2RvbUhU
TUxEb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERvY3VtZW50Q2xhc3MgR2RvbUhU
TUxEb2N1bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRWxlbWVudCBHZG9tSFRN
TEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxFbGVtZW50Q2xhc3MgR2RvbUhUTUxF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxFbWJlZEVsZW1lbnQgR2RvbUhU
TUxFbWJlZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxFbWJlZEVsZW1lbnRDbGFz
cyBHZG9tSFRNTEVtYmVkRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRmll
bGRTZXRFbGVtZW50IEdkb21IVE1MRmllbGRTZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MRmllbGRTZXRFbGVtZW50Q2xhc3MgR2RvbUhUTUxGaWVsZFNldEVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZvbnRFbGVtZW50IEdkb21IVE1MRm9udEVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb250RWxlbWVudENsYXNzIEdkb21IVE1MRm9udEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZvcm1FbGVtZW50IEdkb21IVE1M
Rm9ybUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb3JtRWxlbWVudENsYXNzIEdk
b21IVE1MRm9ybUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZyYW1lRWxl
bWVudCBHZG9tSFRNTEZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZyYW1l
RWxlbWVudENsYXNzIEdkb21IVE1MRnJhbWVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxGcmFtZVNldEVsZW1lbnQgR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzcyBHZG9tSFRNTEZyYW1lU2V0RWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSGVhZEVsZW1lbnQgR2RvbUhUTUxI
ZWFkRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhlYWRFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxIZWFkRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSGVhZGluZ0Vs
ZW1lbnQgR2RvbUhUTUxIZWFkaW5nRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhl
YWRpbmdFbGVtZW50Q2xhc3MgR2RvbUhUTUxIZWFkaW5nRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MSFJFbGVtZW50IEdkb21IVE1MSFJFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MSFJFbGVtZW50Q2xhc3MgR2RvbUhUTUxIUkVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTEh0bWxFbGVtZW50IEdkb21IVE1MSHRtbEVsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxIdG1sRWxlbWVudENsYXNzIEdkb21IVE1MSHRtbEVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElGcmFtZUVsZW1lbnQgR2RvbUhUTUxJRnJh
bWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSUZyYW1lRWxlbWVudENsYXNzIEdk
b21IVE1MSUZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSW1hZ2VF
bGVtZW50IEdkb21IVE1MSW1hZ2VFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSW1h
Z2VFbGVtZW50Q2xhc3MgR2RvbUhUTUxJbWFnZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTElucHV0RWxlbWVudCBHZG9tSFRNTElucHV0RWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTElucHV0RWxlbWVudENsYXNzIEdkb21IVE1MSW5wdXRFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJc0luZGV4RWxlbWVudCBHZG9tSFRNTElzSW5kZXhF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSXNJbmRleEVsZW1lbnRDbGFzcyBHZG9t
SFRNTElzSW5kZXhFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMYWJlbEVs
ZW1lbnQgR2RvbUhUTUxMYWJlbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMYWJl
bEVsZW1lbnRDbGFzcyBHZG9tSFRNTExhYmVsRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MTGVnZW5kRWxlbWVudCBHZG9tSFRNTExlZ2VuZEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxMZWdlbmRFbGVtZW50Q2xhc3MgR2RvbUhUTUxMZWdlbmRFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMSUVsZW1lbnQgR2RvbUhUTUxMSUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMSUVsZW1lbnRDbGFzcyBHZG9tSFRNTExJRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGlua0VsZW1lbnQgR2RvbUhUTUxMaW5r
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExpbmtFbGVtZW50Q2xhc3MgR2RvbUhU
TUxMaW5rRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWFwRWxlbWVudCBH
ZG9tSFRNTE1hcEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNYXBFbGVtZW50Q2xh
c3MgR2RvbUhUTUxNYXBFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNYXJx
dWVlRWxlbWVudCBHZG9tSFRNTE1hcnF1ZWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MTWFycXVlZUVsZW1lbnRDbGFzcyBHZG9tSFRNTE1hcnF1ZWVFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxNZW51RWxlbWVudCBHZG9tSFRNTE1lbnVFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWVudUVsZW1lbnRDbGFzcyBHZG9tSFRNTE1lbnVFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNZXRhRWxlbWVudCBHZG9tSFRNTE1ldGFF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWV0YUVsZW1lbnRDbGFzcyBHZG9tSFRN
TE1ldGFFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNb2RFbGVtZW50IEdk
b21IVE1MTW9kRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1vZEVsZW1lbnRDbGFz
cyBHZG9tSFRNTE1vZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9iamVj
dEVsZW1lbnQgR2RvbUhUTUxPYmplY3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
T2JqZWN0RWxlbWVudENsYXNzIEdkb21IVE1MT2JqZWN0RWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MT0xpc3RFbGVtZW50IEdkb21IVE1MT0xpc3RFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MT0xpc3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxPTGlzdEVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudCBHZG9tSFRNTE9w
dEdyb3VwRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudENs
YXNzIEdkb21IVE1MT3B0R3JvdXBFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxPcHRpb25FbGVtZW50IEdkb21IVE1MT3B0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTE9wdGlvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTE9wdGlvbkVsZW1lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uIEdkb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbkNsYXNz
IEdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TFBhcmFncmFwaEVsZW1lbnQgR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudENsYXNzIEdkb21IVE1MUGFyYWdyYXBoRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUGFyYW1FbGVtZW50IEdkb21IVE1MUGFy
YW1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUGFyYW1FbGVtZW50Q2xhc3MgR2Rv
bUhUTUxQYXJhbUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFByZUVsZW1l
bnQgR2RvbUhUTUxQcmVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUHJlRWxlbWVu
dENsYXNzIEdkb21IVE1MUHJlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
UXVvdGVFbGVtZW50IEdkb21IVE1MUXVvdGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MUXVvdGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxRdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTFNjcmlwdEVsZW1lbnQgR2RvbUhUTUxTY3JpcHRFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2NyaXB0RWxlbWVudENsYXNzIEdkb21IVE1MU2NyaXB0RWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2VsZWN0RWxlbWVudCBHZG9tSFRN
TFNlbGVjdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxTZWxlY3RFbGVtZW50Q2xh
c3MgR2RvbUhUTUxTZWxlY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxT
dHlsZUVsZW1lbnQgR2RvbUhUTUxTdHlsZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxTdHlsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFN0eWxlRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudCBHZG9tSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xhc3Mg
R2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxUYWJsZUNlbGxFbGVtZW50IEdkb21IVE1MVGFibGVDZWxsRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxlQ2VsbEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudCBHZG9tSFRN
TFRhYmxlQ29sRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ29sRWxlbWVu
dENsYXNzIEdkb21IVE1MVGFibGVDb2xFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxUYWJsZUVsZW1lbnQgR2RvbUhUTUxUYWJsZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxUYWJsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxlRWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVSb3dFbGVtZW50IEdkb21IVE1MVGFibGVSb3dFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVSb3dFbGVtZW50Q2xhc3MgR2RvbUhU
TUxUYWJsZVJvd0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQgR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVTZWN0aW9uRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGV4dEFyZWFFbGVtZW50IEdkb21I
VE1MVGV4dEFyZWFFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGV4dEFyZWFFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTFRpdGxlRWxlbWVudCBHZG9tSFRNTFRpdGxlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFRpdGxlRWxlbWVudENsYXNzIEdkb21IVE1MVGl0bGVFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxVTGlzdEVsZW1lbnQgR2RvbUhUTUxVTGlzdEVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxVTGlzdEVsZW1lbnRDbGFzcyBHZG9tSFRNTFVMaXN0
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21JbWFnZURhdGEgR2RvbUltYWdlRGF0
YTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSW1hZ2VEYXRhQ2xhc3MgR2RvbUltYWdlRGF0YUNsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lIEdkb21KYXZhU2NyaXB0
Q2FsbEZyYW1lOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lQ2xhc3Mg
R2RvbUphdmFTY3JpcHRDYWxsRnJhbWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tS2V5Ym9h
cmRFdmVudCBHZG9tS2V5Ym9hcmRFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tS2V5Ym9hcmRF
dmVudENsYXNzIEdkb21LZXlib2FyZEV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUxv
Y2F0aW9uIEdkb21Mb2NhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTG9jYXRpb25DbGFzcyBH
ZG9tTG9jYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWVkaWFMaXN0IEdkb21NZWRp
YUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lZGlhTGlzdENsYXNzIEdkb21NZWRpYUxpc3RD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWVzc2FnZUV2ZW50IEdkb21NZXNzYWdlRXZlbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lc3NhZ2VFdmVudENsYXNzIEdkb21NZXNzYWdlRXZlbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGVBcnJheSBHZG9tTWltZVR5cGVBcnJh
eTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGVBcnJheUNsYXNzIEdkb21NaW1lVHlwZUFy
cmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlIEdkb21NaW1lVHlwZTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGVDbGFzcyBHZG9tTWltZVR5cGVDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tTW91c2VFdmVudCBHZG9tTW91c2VFdmVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tTW91c2VFdmVudENsYXNzIEdkb21Nb3VzZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbU11dGF0aW9uRXZlbnQgR2RvbU11dGF0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbU11dGF0aW9uRXZlbnRDbGFzcyBHZG9tTXV0YXRpb25FdmVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21OYW1lZE5vZGVNYXAgR2RvbU5hbWVkTm9kZU1hcDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tTmFtZWROb2RlTWFwQ2xhc3MgR2RvbU5hbWVkTm9kZU1hcENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21OYXZpZ2F0b3IgR2RvbU5hdmlnYXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
TmF2aWdhdG9yQ2xhc3MgR2RvbU5hdmlnYXRvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21O
b2RlRmlsdGVyIEdkb21Ob2RlRmlsdGVyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlRmlsdGVy
Q2xhc3MgR2RvbU5vZGVGaWx0ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZSBHZG9t
Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUNsYXNzIEdkb21Ob2RlQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbU5vZGVJdGVyYXRvciBHZG9tTm9kZUl0ZXJhdG9yOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21Ob2RlSXRlcmF0b3JDbGFzcyBHZG9tTm9kZUl0ZXJhdG9yQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbU5vZGVMaXN0IEdkb21Ob2RlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tTm9kZUxpc3RDbGFzcyBHZG9tTm9kZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Tm90YXRpb24gR2RvbU5vdGF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob3RhdGlvbkNsYXNz
IEdkb21Ob3RhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21PdmVyZmxvd0V2ZW50IEdk
b21PdmVyZmxvd0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21PdmVyZmxvd0V2ZW50Q2xhc3Mg
R2RvbU92ZXJmbG93RXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luQXJyYXkg
R2RvbVBsdWdpbkFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21QbHVnaW5BcnJheUNsYXNzIEdk
b21QbHVnaW5BcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21QbHVnaW4gR2RvbVBsdWdp
bjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luQ2xhc3MgR2RvbVBsdWdpbkNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gR2RvbVByb2Nlc3NpbmdJbnN0
cnVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uQ2xhc3Mg
R2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Qcm9n
cmVzc0V2ZW50IEdkb21Qcm9ncmVzc0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Qcm9ncmVz
c0V2ZW50Q2xhc3MgR2RvbVByb2dyZXNzRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
UmFuZ2VFeGNlcHRpb24gR2RvbVJhbmdlRXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21S
YW5nZUV4Y2VwdGlvbkNsYXNzIEdkb21SYW5nZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21SYW5nZSBHZG9tUmFuZ2U7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJhbmdlQ2xhc3Mg
R2RvbVJhbmdlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJlY3QgR2RvbVJlY3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVJlY3RDbGFzcyBHZG9tUmVjdENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21TY3JlZW4gR2RvbVNjcmVlbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU2NyZWVuQ2xhc3Mg
R2RvbVNjcmVlbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxFcnJvciBHZG9tU1FMRXJy
b3I7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTEVycm9yQ2xhc3MgR2RvbVNRTEVycm9yQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldCBHZG9tU1FMUmVzdWx0U2V0OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRDbGFzcyBHZG9tU1FMUmVzdWx0U2V0Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QgR2RvbVNRTFJlc3VsdFNl
dFJvd0xpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzcyBH
ZG9tU1FMUmVzdWx0U2V0Um93TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxUcmFu
c2FjdGlvbiBHZG9tU1FMVHJhbnNhY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFRyYW5z
YWN0aW9uQ2xhc3MgR2RvbVNRTFRyYW5zYWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVN0b3JhZ2VFdmVudCBHZG9tU3RvcmFnZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9y
YWdlRXZlbnRDbGFzcyBHZG9tU3RvcmFnZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVN0b3JhZ2UgR2RvbVN0b3JhZ2U7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0b3JhZ2VDbGFzcyBH
ZG9tU3RvcmFnZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0IEdkb21TdHls
ZVNoZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0Q2xhc3MgR2RvbVN0eWxlU2hl
ZXRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldExpc3QgR2RvbVN0eWxlU2hl
ZXRMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0TGlzdENsYXNzIEdkb21TdHls
ZVNoZWV0TGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UZXh0RXZlbnQgR2RvbVRleHRF
dmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dEV2ZW50Q2xhc3MgR2RvbVRleHRFdmVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UZXh0IEdkb21UZXh0OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21UZXh0Q2xhc3MgR2RvbVRleHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVHJlZVdh
bGtlciBHZG9tVHJlZVdhbGtlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVHJlZVdhbGtlckNsYXNz
IEdkb21UcmVlV2Fsa2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVVJRXZlbnQgR2RvbVVJ
RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVVJRXZlbnRDbGFzcyBHZG9tVUlFdmVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRBbmltYXRpb25FdmVudCBHZG9tV2ViS2l0QW5p
bWF0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Q2xh
c3MgR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdl
YktpdENTU1RyYW5zZm9ybVZhbHVlIEdkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZTsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVDbGFzcyBHZG9tV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0VHJhbnNpdGlv
bkV2ZW50IEdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdl
YktpdFRyYW5zaXRpb25FdmVudENsYXNzIEdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tV2hlZWxFdmVudCBHZG9tV2hlZWxFdmVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tV2hlZWxFdmVudENsYXNzIEdkb21XaGVlbEV2ZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uIEdkb21YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25DbGFz
cyBHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
WE1MSHR0cFJlcXVlc3QgR2RvbVhNTEh0dHBSZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Y
TUxIdHRwUmVxdWVzdENsYXNzIEdkb21YTUxIdHRwUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQgR2RvbVhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50Q2xhc3MgR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZCBHZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkQ2xhc3MgR2RvbVhNTEh0
dHBSZXF1ZXN0VXBsb2FkQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTFNlcmlhbGl6ZXIg
R2RvbVhNTFNlcmlhbGl6ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTFNlcmlhbGl6ZXJDbGFz
cyBHZG9tWE1MU2VyaWFsaXplckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV2YWx1
YXRvciBHZG9tWFBhdGhFdmFsdWF0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXZhbHVh
dG9yQ2xhc3MgR2RvbVhQYXRoRXZhbHVhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQ
YXRoRXhjZXB0aW9uIEdkb21YUGF0aEV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBh
dGhFeGNlcHRpb25DbGFzcyBHZG9tWFBhdGhFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tWFBhdGhFeHByZXNzaW9uIEdkb21YUGF0aEV4cHJlc3Npb247Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVhQYXRoRXhwcmVzc2lvbkNsYXNzIEdkb21YUGF0aEV4cHJlc3Npb25DbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhOU1Jlc29sdmVyIEdkb21YUGF0aE5TUmVzb2x2ZXI7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoTlNSZXNvbHZlckNsYXNzIEdkb21YUGF0aE5TUmVzb2x2
ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhSZXN1bHQgR2RvbVhQYXRoUmVzdWx0
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aFJlc3VsdENsYXNzIEdkb21YUGF0aFJlc3VsdENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YU0xUUHJvY2Vzc29yIEdkb21YU0xUUHJvY2Vzc29y
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YU0xUUHJvY2Vzc29yQ2xhc3MgR2RvbVhTTFRQcm9jZXNz
b3JDbGFzczsKKworCisjZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdk
b21fZG9tX29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRVZFTlRfVEFSR0VU
X05PREUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfQVRUUiAgICAgICAgICAgIChnZG9tX2F0dHJfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0JBUl9JTkZPICAgICAgICAgICAgKGdkb21fYmFyX2luZm9fZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19HUkFESUVOVCAgICAgICAgICAgIChnZG9t
X2NhbnZhc19ncmFkaWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0FOVkFTX1BB
VFRFUk4gICAgICAgICAgICAoZ2RvbV9jYW52YXNfcGF0dGVybl9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQ0FOVkFTX1BJWEVMX0FSUkFZICAgICAgICAgICAgKGdkb21fY2FudmFzX3Bp
eGVsX2FycmF5X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DQU5WQVNfUkVOREVSSU5H
X0NPTlRFWFQyRCAgICAgICAgICAgIChnZG9tX2NhbnZhc19yZW5kZXJpbmdfY29udGV4dDJkX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DREFUQV9TRUNUSU9OICAgICAgICAgICAgKGdk
b21fY2RhdGFfc2VjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0hBUkFDVEVS
X0RBVEEgICAgICAgICAgICAoZ2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQ0xJUEJPQVJEICAgICAgICAgICAgKGdkb21fY2xpcGJvYXJkX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9DT01NRU5UICAgICAgICAgICAgKGdkb21fY29tbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ09OU09MRSAgICAgICAgICAgIChnZG9tX2Nv
bnNvbGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NPVU5URVIgICAgICAgICAgICAo
Z2RvbV9jb3VudGVyX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfQ0hBUlNFVF9S
VUxFICAgICAgICAgICAgKGdkb21fY3NzX2NoYXJzZXRfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQ1NTX0ZPTlRfRkFDRV9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX2ZvbnRf
ZmFjZV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfSU1QT1JUX1JVTEUg
ICAgICAgICAgICAoZ2RvbV9jc3NfaW1wb3J0X3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0NTU19NRURJQV9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX21lZGlhX3J1bGVfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19QQUdFX1JVTEUgICAgICAgICAgICAoZ2Rv
bV9jc3NfcGFnZV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfUFJJTUlU
SVZFX1ZBTFVFICAgICAgICAgICAgKGdkb21fY3NzX3ByaW1pdGl2ZV92YWx1ZV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1JVTEUgICAgICAgICAgICAoZ2RvbV9jc3NfcnVsZV9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1JVTEVfTElTVCAgICAgICAgICAgIChn
ZG9tX2Nzc19ydWxlX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19TVFlM
RV9ERUNMQVJBVElPTiAgICAgICAgICAgIChnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1NUWUxFX1JVTEUgICAgICAgICAgICAoZ2Rv
bV9jc3Nfc3R5bGVfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1NUWUxF
X1NIRUVUICAgICAgICAgICAgKGdkb21fY3NzX3N0eWxlX3NoZWV0X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9DU1NfVkFMVUUgICAgICAgICAgICAoZ2RvbV9jc3NfdmFsdWVfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19WQUxVRV9MSVNUICAgICAgICAgICAgKGdkb21f
Y3NzX3ZhbHVlX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19WQVJJQUJM
RVNfREVDTEFSQVRJT04gICAgICAgICAgICAoZ2RvbV9jc3NfdmFyaWFibGVzX2RlY2xhcmF0aW9u
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFSSUFCTEVTX1JVTEUgICAgICAg
ICAgICAoZ2RvbV9jc3NfdmFyaWFibGVzX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0RBVEFCQVNFICAgICAgICAgICAgKGdkb21fZGF0YWJhc2VfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAgICAgKGdkb21fZG9jdW1lbnRf
ZnJhZ21lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPQ1VNRU5UICAgICAgICAg
ICAgKGdkb21fZG9jdW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPQ1VNRU5U
X1RZUEUgICAgICAgICAgICAoZ2RvbV9kb2N1bWVudF90eXBlX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9ET01fQVBQTElDQVRJT05fQ0FDSEUgICAgICAgICAgICAoZ2RvbV9kb21fYXBw
bGljYXRpb25fY2FjaGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9DT1JFX0VY
Q0VQVElPTiAgICAgICAgICAgIChnZG9tX2RvbV9jb3JlX2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfRE9NX0lNUExFTUVOVEFUSU9OICAgICAgICAgICAgKGdkb21fZG9t
X2ltcGxlbWVudGF0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET01fUEFSU0VS
ICAgICAgICAgICAgKGdkb21fZG9tX3BhcnNlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfRE9NX1NFTEVDVElPTiAgICAgICAgICAgIChnZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9XSU5ET1cgICAgICAgICAgICAoZ2RvbV9kb21fd2lu
ZG93X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FTEVNRU5UICAgICAgICAgICAgKGdk
b21fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRU5USVRZICAgICAgICAg
ICAgKGdkb21fZW50aXR5X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FTlRJVFlfUkVG
RVJFTkNFICAgICAgICAgICAgKGdkb21fZW50aXR5X3JlZmVyZW5jZV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfRVZFTlRfRVhDRVBUSU9OICAgICAgICAgICAgKGdkb21fZXZlbnRfZXhj
ZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FVkVOVCAgICAgICAgICAgIChn
ZG9tX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9GSUxFICAgICAgICAgICAg
KGdkb21fZmlsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRklMRV9MSVNUICAgICAg
ICAgICAgKGdkb21fZmlsZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ISVNU
T1JZICAgICAgICAgICAgKGdkb21faGlzdG9yeV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9BTkNIT1JfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYW5jaG9yX2VsZW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQVBQTEVUX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX0FSRUFfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYXJlYV9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0JBU0VfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfYmFzZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9IVE1MX0JBU0VfRk9OVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9iYXNlX2Zv
bnRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CTE9DS1FVT1RF
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Jsb2NrcXVvdGVfZWxlbWVudF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CT0RZX0VMRU1FTlQgICAgICAgICAgICAoZ2Rv
bV9odG1sX2JvZHlfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTEJS
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sYnJfZWxlbWVudF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfSFRNTF9CVVRUT05fRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
YnV0dG9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQ0FOVkFT
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2NhbnZhc19lbGVtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0NPTExFQ1RJT04gICAgICAgICAgICAoZ2RvbV9odG1s
X2NvbGxlY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRElSRUNUT1JZ
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2RpcmVjdG9yeV9lbGVtZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0RJVl9FTEVNRU5UICAgICAgICAgICAgKGdkb21f
aHRtbF9kaXZfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTERfTElT
VF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGRfbGlzdF9lbGVtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0RPQ1VNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9k
b2N1bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MX0VNQkVEX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRklFTERfU0VUX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX2ZpZWxkX3NldF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX0ZPTlRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZm9udF9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZPUk1fRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9IVE1MX0ZSQU1FX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2ZyYW1lX2VsZW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRlJBTUVfU0VUX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9IVE1MX0hFQURfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaGVh
ZF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0hFQURJTkdfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaGVhZGluZ19lbGVtZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9IVE1MSFJfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxocl9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0hUTUxfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfaHRtbF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MSV9GUkFNRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGlfZnJhbWVf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9JTUFHRV9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX0lOUFVUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSVNfSU5ERVhfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaXNfaW5kZXhfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9MQUJFTF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9sYWJlbF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0xFR0VO
RF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9sZWdlbmRfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTExJX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
bGlfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9MSU5LX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTF9NQVBfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWFwX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTUFSUVVFRV9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9tYXJxdWVlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfTUVOVV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9tZW51
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTUVUQV9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9tZXRhX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfTU9EX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX21vZF9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX09CSkVDVF9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTE9fTElTVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbG9fbGlzdF9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX09QVF9HUk9VUF9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9vcHRfZ3JvdXBfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PUFRJT05fRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfT1BU
SU9OU19DT0xMRUNUSU9OICAgICAgICAgICAgKGdkb21faHRtbF9vcHRpb25zX2NvbGxlY3Rpb25f
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfUEFSQUdSQVBIX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX3BhcmFncmFwaF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX1BBUkFNX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3BhcmFt
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfUFJFX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX3ByZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX1FVT1RFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3F1b3RlX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfU0NSSVBUX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX1NFTEVDVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9zZWxl
Y3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9TVFlMRV9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9zdHlsZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX0NBUFRJT05fRUxFTUVOVCAgICAgICAgICAgIChnZG9t
X2h0bWxfdGFibGVfY2FwdGlvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MX1RBQkxFX0NFTExfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfY2Vs
bF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX0NPTF9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21f
aHRtbF90YWJsZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RB
QkxFX1JPV19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9TRUNUSU9OX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9URVhUX0FSRUFfRUxFTUVOVCAgICAgICAgICAgIChnZG9t
X2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hU
TUxfVElUTEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGl0bGVfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTFVfTElTVF9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbHVfbGlzdF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9J
TUFHRV9EQVRBICAgICAgICAgICAgKGdkb21faW1hZ2VfZGF0YV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSkFWQV9TQ1JJUFRfQ0FMTF9GUkFNRSAgICAgICAgICAgIChnZG9tX2phdmFf
c2NyaXB0X2NhbGxfZnJhbWVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0tFWUJPQVJE
X0VWRU5UICAgICAgICAgICAgKGdkb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0xPQ0FUSU9OICAgICAgICAgICAgKGdkb21fbG9jYXRpb25fZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX01FRElBX0xJU1QgICAgICAgICAgICAoZ2RvbV9tZWRpYV9s
aXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NRVNTQUdFX0VWRU5UICAgICAgICAg
ICAgKGdkb21fbWVzc2FnZV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUlN
RV9UWVBFX0FSUkFZICAgICAgICAgICAgKGdkb21fbWltZV90eXBlX2FycmF5X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9NSU1FX1RZUEUgICAgICAgICAgICAoZ2RvbV9taW1lX3R5cGVf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01PVVNFX0VWRU5UICAgICAgICAgICAgKGdk
b21fbW91c2VfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01VVEFUSU9OX0VW
RU5UICAgICAgICAgICAgKGdkb21fbXV0YXRpb25fZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX05BTUVEX05PREVfTUFQICAgICAgICAgICAgKGdkb21fbmFtZWRfbm9kZV9tYXBf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05BVklHQVRPUiAgICAgICAgICAgIChnZG9t
X25hdmlnYXRvcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTk9ERV9GSUxURVIgICAg
ICAgICAgICAoZ2RvbV9ub2RlX2ZpbHRlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
Tk9ERSAgICAgICAgICAgIChnZG9tX25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X05PREVfSVRFUkFUT1IgICAgICAgICAgICAoZ2RvbV9ub2RlX2l0ZXJhdG9yX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9OT0RFX0xJU1QgICAgICAgICAgICAoZ2RvbV9ub2RlX2xpc3Rf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05PVEFUSU9OICAgICAgICAgICAgKGdkb21f
bm90YXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX09WRVJGTE9XX0VWRU5UICAg
ICAgICAgICAgKGdkb21fb3ZlcmZsb3dfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX1BMVUdJTl9BUlJBWSAgICAgICAgICAgIChnZG9tX3BsdWdpbl9hcnJheV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfUExVR0lOICAgICAgICAgICAgKGdkb21fcGx1Z2luX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OICAgICAgICAg
ICAgKGdkb21fcHJvY2Vzc2luZ19pbnN0cnVjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfUFJPR1JFU1NfRVZFTlQgICAgICAgICAgICAoZ2RvbV9wcm9ncmVzc19ldmVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUkFOR0VfRVhDRVBUSU9OICAgICAgICAgICAgKGdk
b21fcmFuZ2VfZXhjZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9SQU5HRSAg
ICAgICAgICAgIChnZG9tX3JhbmdlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9SRUNU
ICAgICAgICAgICAgKGdkb21fcmVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU0NS
RUVOICAgICAgICAgICAgKGdkb21fc2NyZWVuX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9TUUxfRVJST1IgICAgICAgICAgICAoZ2RvbV9zcWxfZXJyb3JfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX1NRTF9SRVNVTFRfU0VUICAgICAgICAgICAgKGdkb21fc3FsX3Jlc3VsdF9z
ZXRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NRTF9SRVNVTFRfU0VUX1JPV19MSVNU
ICAgICAgICAgICAgKGdkb21fc3FsX3Jlc3VsdF9zZXRfcm93X2xpc3RfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX1NRTF9UUkFOU0FDVElPTiAgICAgICAgICAgIChnZG9tX3NxbF90cmFu
c2FjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1RPUkFHRV9FVkVOVCAgICAg
ICAgICAgIChnZG9tX3N0b3JhZ2VfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1NUT1JBR0UgICAgICAgICAgICAoZ2RvbV9zdG9yYWdlX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9TVFlMRV9TSEVFVCAgICAgICAgICAgIChnZG9tX3N0eWxlX3NoZWV0X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9TVFlMRV9TSEVFVF9MSVNUICAgICAgICAgICAgKGdkb21f
c3R5bGVfc2hlZXRfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfVEVYVF9FVkVO
VCAgICAgICAgICAgIChnZG9tX3RleHRfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX1RFWFQgICAgICAgICAgICAoZ2RvbV90ZXh0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9UUkVFX1dBTEtFUiAgICAgICAgICAgIChnZG9tX3RyZWVfd2Fsa2VyX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9VSV9FVkVOVCAgICAgICAgICAgIChnZG9tX3VpX2V2ZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9XRUJfS0lUX0FOSU1BVElPTl9FVkVOVCAgICAg
ICAgICAgIChnZG9tX3dlYl9raXRfYW5pbWF0aW9uX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9XRUJfS0lUX0NTU19UUkFOU0ZPUk1fVkFMVUUgICAgICAgICAgICAoZ2RvbV93
ZWJfa2l0X2Nzc190cmFuc2Zvcm1fdmFsdWVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1dFQl9LSVRfVFJBTlNJVElPTl9FVkVOVCAgICAgICAgICAgIChnZG9tX3dlYl9raXRfdHJhbnNp
dGlvbl9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfV0hFRUxfRVZFTlQgICAg
ICAgICAgICAoZ2RvbV93aGVlbF9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
WE1MX0hUVFBfUkVRVUVTVF9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV94bWxfaHR0cF9yZXF1
ZXN0X2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWE1MX0hUVFBfUkVR
VUVTVCAgICAgICAgICAgIChnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1RfUFJPR1JFU1NfRVZFTlQgICAgICAgICAgICAo
Z2RvbV94bWxfaHR0cF9yZXF1ZXN0X3Byb2dyZXNzX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9YTUxfSFRUUF9SRVFVRVNUX1VQTE9BRCAgICAgICAgICAgIChnZG9tX3htbF9o
dHRwX3JlcXVlc3RfdXBsb2FkX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YTUxfU0VS
SUFMSVpFUiAgICAgICAgICAgIChnZG9tX3htbF9zZXJpYWxpemVyX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9YX1BBVEhfRVZBTFVBVE9SICAgICAgICAgICAgKGdkb21feF9wYXRoX2V2
YWx1YXRvcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWF9QQVRIX0VYQ0VQVElPTiAg
ICAgICAgICAgIChnZG9tX3hfcGF0aF9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX1hfUEFUSF9FWFBSRVNTSU9OICAgICAgICAgICAgKGdkb21feF9wYXRoX2V4cHJlc3Np
b25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9OU19SRVNPTFZFUiAgICAg
ICAgICAgIChnZG9tX3hfcGF0aF9uc19yZXNvbHZlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfWF9QQVRIX1JFU1VMVCAgICAgICAgICAgIChnZG9tX3hfcGF0aF9yZXN1bHRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hTTFRfUFJPQ0VTU09SICAgICAgICAgICAgKGdkb21f
eHNsdF9wcm9jZXNzb3JfZ2V0X3R5cGUoKSkKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpJbmRleDog
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0
L2dkb20uaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L2dkb20uaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNjAgQEAKKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NT2JqZWN0Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21BdHRyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21CYXJJbmZvLmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21DYW52YXNHcmFkaWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2Fu
dmFzUGF0dGVybi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21DREFUQVNlY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNoYXJh
Y3RlckRhdGEuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNsaXBib2FyZC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tQ29tbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ29uc29sZS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ291bnRlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NT
Q2hhcnNldFJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU0ZvbnRGYWNlUnVsZS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTSW1wb3J0UnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tQ1NTTWVkaWFSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NQYWdlUnVsZS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUNTU1J1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1J1bGVMaXN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21DU1NTdHlsZVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1N0eWxlU2hl
ZXQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ZhbHVlLmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21DU1NWYWx1ZUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NWYXJpYWJsZXNSdWxlLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21EYXRhYmFzZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRG9j
dW1lbnRGcmFnbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRG9jdW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbURvY3VtZW50VHlwZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9N
QXBwbGljYXRpb25DYWNoZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NQ29yZUV4Y2VwdGlv
bi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NSW1wbGVtZW50YXRpb24uaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbURPTVBhcnNlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NU2VsZWN0
aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUVudGl0eS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tRW50aXR5UmVmZXJlbmNlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21F
dmVudEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRXZlbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUZpbGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUZpbGVMaXN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21IaXN0b3J5Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1M
QW5jaG9yRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEFwcGxldEVsZW1lbnQu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxBcmVhRWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTEJhc2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQmFz
ZUZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQmxvY2txdW90ZUVsZW1l
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCb2R5RWxlbWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tSFRNTEJSRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJ1
dHRvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxDYW52YXNFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQ29sbGVjdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxE
aXZFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRExpc3RFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRW1iZWRFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRmllbGRTZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MRm9udEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxG
b3JtRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZyYW1lRWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTEhlYWRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSGVh
ZGluZ0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIUkVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIdG1sRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTElGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJbWFnZUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJbnB1dEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTExhYmVsRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTExlZ2VuZEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxMSUVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxMaW5rRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRN
TE1hcEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE1lbnVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21IVE1MTWV0YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxNb2RF
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MT2JqZWN0RWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9MaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9wdGlv
bkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxQYXJhbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxQcmVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MUXVvdGVFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MU2NyaXB0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxT
dHlsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTFRhYmxlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxl
Um93RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxUaXRsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxVTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUltYWdlRGF0YS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTG9jYXRpb24u
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1lZGlhTGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tTWVzc2FnZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21NaW1lVHlwZUFycmF5Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21NaW1lVHlwZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
TW91c2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTXV0YXRpb25FdmVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tTmFtZWROb2RlTWFwLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21O
YXZpZ2F0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVGaWx0ZXIuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbU5vZGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVJdGVyYXRvci5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTm9kZUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bU5vdGF0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21PdmVyZmxvd0V2ZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21QbHVnaW5BcnJheS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUGx1
Z2luLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbVByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bVJhbmdlRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21SYW5nZS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tUmVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU2NyZWVuLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21TUUxFcnJvci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU1FM
UmVzdWx0U2V0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxUcmFuc2FjdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tU3RvcmFnZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TdG9yYWdlLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21TdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21T
dHlsZVNoZWV0TGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tVGV4dEV2ZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21UZXh0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21UcmVlV2Fsa2Vy
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21VSUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21XZWJLaXRBbmltYXRpb25FdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVdlYktpdFRyYW5zaXRpb25F
dmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2hlZWxFdmVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bVhNTEh0dHBSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2Fk
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxTZXJpYWxpemVyLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21YUGF0aEV2YWx1YXRvci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhFeGNl
cHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRoRXhwcmVzc2lvbi5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tWFBhdGhOU1Jlc29sdmVyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Y
UGF0aFJlc3VsdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFNMVFByb2Nlc3Nvci5oPgpJbmRl
eDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRldmVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZXZlbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdFQktJ
VF9FVkVOVF9ICisjZGVmaW5lIFdFQktJVF9FVkVOVF9ICisKKyNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgorCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9ERUNM
UworCisjZGVmaW5lIFdFQktJVF9UWVBFX0VWRU5UICAgICAgICAgICAgKHdlYmtpdF9ldmVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfRVZFTlQob2JqKSAgICAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktpdEV2ZW50
KSkKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NM
QVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0VWRU5ULCBXZWJLaXRFdmVudENsYXNzKSkK
KyNkZWZpbmUgV0VCS0lUX0lTX0VWRU5UKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RB
TkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX0VWRU5UKSkKKyNkZWZpbmUgV0VCS0lUX0lTX0VW
RU5UX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX0VWRU5UKSkKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0dFVF9DTEFTUyhvYmopICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0VWRU5ULCBXZWJLaXRF
dmVudENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50UHJpdmF0ZSBXZWJLaXRF
dmVudFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0RXZlbnQgeworICAgIEdPYmplY3QgcGFyZW50
X2luc3RhbmNlOworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlICpwcml2OworfTsKKworc3RydWN0
IF9XZWJLaXRFdmVudENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsK
KworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2V2ZW50X2dldF90eXBlICh2b2lkKTsKKworV0VC
S0lUX0FQSSBXZWJLaXRFdmVudCAqCit3ZWJraXRfZXZlbnRfbmV3ICAgICAgKHZvaWQpOworCisv
KldFQktJVF9BUEkgdm9pZAord2Via2l0X2V2ZW50X3NldF91cmkgIChXZWJLaXRFdmVudCAqcmVx
dWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiAgICAg
ICAgICB1cmkpOyovCisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lv
biAzNTc1OCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTIs
NiArMiw3IEBACiBXZWJDb3JlIDo9ICQoc3JjZGlyKS9XZWJDb3JlCiAKIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUIDo9IExBTkdVQUdFX0pBVkFTQ1JJUFQ9MQorRkVBVFVSRV9ERUZJTkVTX0dE
T00gOj0gTEFOR1VBR0VfR09CSkVDVD0xCiBTVkdfRkVBVFVSRVMgOj0KIEhUTUxfRkVBVFVSRVMg
Oj0KIApAQCAtOSw2ICsxMCw3IEBACiBXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUyA6PSAkKFdl
YkNvcmUpL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAor
CS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUgXAogCS1JJChz
cmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yayBcCkBAIC0yOSw2ICszMSw3IEBACiAJLUkkKHNyY2RpcikvV2ViQ29yZS94bWwgXAog
CS1JJChzcmNkaXIpL1dlYkNvcmUvaHRtbCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5n
cy9qcyBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKIAktSSQoc3JjZGly
KS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYgXApAQCAtNTUsNyArNTgsNyBAQAogCVdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRUYXJnZXRCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3Iu
bHV0LmggXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxl
LmNwcAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlLmNw
cCAKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9DU1NHcmFt
bWFyLmNwcCBcCkBAIC0zNTgsNyArMzYxLDU4NyBAQAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2Vu
dFN0eWxlU2hlZXRzLmggXAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0
YS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMv
WE1MTmFtZXMuaAorCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUF0dHIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQmFySW5mby5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFTZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NG
b250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlhUnVsZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZh
bHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1
bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZURl
Y2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlU2hl
ZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tQ1NTVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxl
c0RlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc0RlY2xh
cmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRp
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZh
c1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tQ2hhcmFjdGVyRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DaGFy
YWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db21tZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29uc29sZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ291bnRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db3VudGVy
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURP
TUltcGxlbWVudGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUltcGxlbWVudGF0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJzZXIuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01TZWxlY3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2luZG93Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21Eb2N1bWVudFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRU
eXBlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eVJl
ZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlSZWZlcmVuY2UuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmlsZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21G
aWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEFuY2hvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
QmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TERMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRExpc3RFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpdkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEb2N1bWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNldEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1F
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVT
ZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0
bWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1sRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJ
bWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEltYWdlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
SXNJbmRleEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxM
YWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGlua0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFy
cXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1ldGFFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9MaXN0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9w
dEdyb3VwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0R3JvdXBFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxP
cHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBy
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNjcmlw
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
U3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxl
Q29sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlUm93
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFRpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGl0bGVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVUxpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhp
c3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSGlzdG9yeS5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0YS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUtleWJvYXJkRXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3QuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNz
YWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVzc2FnZUV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1l
VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJheS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Nb3Vz
ZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTXV0
YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2RlTWFwLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hdmlnYXRvci5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlRmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRvci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21Ob3RhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob3RhdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21PdmVyZmxvd0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW4u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21QbHVnaW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheS5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9ncmVzc0V2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU2NyZWVuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHls
ZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
VGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21UcmVlV2Fsa2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tVUlFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0QW5p
bWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0QW5pbWF0aW9uRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21XaGVl
bEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhN
TEh0dHBSZXF1ZXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2Vw
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21YTUxTZXJpYWxpemVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTFNlcmlhbGl6ZXIu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQcm9jZXNzb3IuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWFNMVFByb2Nlc3Nvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUF0
dHIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUF0dHIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21CYXJJbmZvLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ0RBVEFTZWN0aW9uLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NDaGFyc2V0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0Zv
bnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0ltcG9ydFJ1bGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NNZWRpYVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUNTU01lZGlhUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQYWdlUnVs
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NSdWxlTGlz
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTUnVsZUxpc3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHls
ZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZVNoZWV0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
Q1NTVmFsdWVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYWx1ZUxp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNSdWxlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzR3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUNhbnZhc0dyYWRpZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tQ2FudmFzUGF0dGVybi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFz
UGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1BpeGVsQXJyYXku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1BpeGVsQXJyYXkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUNoYXJhY3RlckRhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21DbGlwYm9hcmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNsaXBi
b2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvbW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNvbW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db25zb2xlLmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ291bnRlci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURP
TUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTUNvcmVF
eGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01JbXBsZW1lbnRhdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NSW1wbGVtZW50YXRpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01QYXJzZXIuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bURPTVNlbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NU2VsZWN0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NV2luZG93LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01XaW5kb3cuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21Eb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudEZyYWdtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudEZyYWdtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21Eb2N1bWVudFR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21F
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRW50aXR5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbnRpdHlSZWZl
cmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUVudGl0eVJlZmVyZW5jZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUV2ZW50
RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FdmVudEV4Y2VwdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUZpbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21GaWxl
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRmlsZUxpc3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFuY2hvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MQXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTEFwcGxldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MQXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBcmVh
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCUkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxCYXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
QmxvY2txdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxC
bG9ja3F1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCb2R5
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJvZHlFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENhbnZhc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxDYW52YXNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERMaXN0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERMaXN0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGb250
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGb3JtRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZvcm1FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSFJF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhlYWRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVhZEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVhZGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTEh0bWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TElGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJRnJh
bWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEltYWdlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEltYWdlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MSXNJbmRleEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxMSUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxM
SUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGFiZWxFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGFiZWxFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExlZ2VuZEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTExpbmtFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1hcEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWFycXVlZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZW51RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1lbnVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
TW9kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1vZEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT0xpc3RFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT0xpc3RFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxPcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
T3B0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRpb25z
Q29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFncmFwaEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxQYXJhZ3JhcGhFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFtRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFtRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU2NyaXB0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNjcmlwdEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTFRhYmxlQ29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxU
YWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVSb3dFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVSb3dFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSGlzdG9y
eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSGlzdG9yeS5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSW1hZ2VEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSmF2YVNjcmlw
dENhbGxGcmFtZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSmF2YVNjcmlwdENh
bGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUtleWJvYXJkRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUtleWJvYXJkRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZWRpYUxpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbU1lc3NhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tTWVzc2FnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWlt
ZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1pbWVUeXBlLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWltZVR5cGVBcnJheS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1vdXNlRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NdXRhdGlvbkV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NdXRhdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tTmFtZWROb2RlTWFwLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21OYXZpZ2F0
b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5hdmlnYXRvci5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbU5vZGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlRmlsdGVyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlTGlz
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUxpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob3RhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tTm90YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21PdmVyZmxvd0V2
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21PdmVyZmxvd0V2ZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21QbHVnaW5B
cnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1Z2luQXJyYXkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVByb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2UuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SYW5nZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SZWN0LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU2NyZWVuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21TY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHlsZVNoZWV0
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHlsZVNoZWV0LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3R5bGVTaGVldExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGV4dC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVRleHRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tVGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVHJlZVdh
bGtlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVHJlZVdhbGtlci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRB
bmltYXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0QW5p
bWF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdlYktpdFRyYW5zaXRp
b25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdoZWVsRXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tWE1MSHR0cFJlcXVlc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Y
TUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTFNl
cmlhbGl6ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTFNlcmlhbGl6ZXIu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YU0xUUHJvY2Vzc29yLmggIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwKKwlXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAKIAogSURMX0JJTkRJ
TkdTICs9ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgXApAQCAtNzAxLDYgKzEyODQsMTYg
QEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9T
dHJpbmdTb3VyY2VQcm92aWRlci5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRp
bmcuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaCBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR2RvbURPTU9iamVjdC5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21E
T01PYmplY3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmpl
Y3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwIFwK
KwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIFwKKwlXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwIFwKKwlXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCBcCiAJV2ViQ29yZS9i
cmlkZ2UvTlBfanNvYmplY3QuY3BwIFwKIAlXZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5oIFwK
IAlXZWJDb3JlL2JyaWRnZS9jL2NfY2xhc3MuY3BwIFwKQEAgLTIwMDgsOSArMjYwMSwxMiBAQAog
IyAtLS0tCiBpZiBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TCiBGRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKK0ZFQVRV
UkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQogCiB3
ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAotCURlcml2ZWRTb3VyY2VzL0pTRE9NQXBwbGljYXRp
b25DYWNoZS5jcHAKKwlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tRE9NQXBwbGljYXRpb25DYWNoZS5jcHAKIAogSURMX0JJTkRJTkdT
ICs9IFwKIAlXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbApA
QCAtMjA1Miw2ICsyNjQ4LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX0RBVEFCQVNFCiBGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfREFUQUJBU0U9MQorRkVBVFVSRV9ERUZJTkVT
X0dET00gKz0gRU5BQkxFX0RBVEFCQVNFPTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwK
IAlEZXJpdmVkU291cmNlcy9KU0RhdGFiYXNlLmNwcCBcCkBAIC0yMDYzLDcgKzI2NjAsMjcgQEAK
IAlEZXJpdmVkU291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFu
c2FjdGlvbi5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaAorCURlcml2
ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFi
YXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFiYXNlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TUUxFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxFcnJvci5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TUUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURhdGFi
YXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21EYXRhYmFzZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTEVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFJlc3Vs
dFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21TUUxUcmFuc2FjdGlvbi5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29y
ZS9zdG9yYWdlL0RhdGFiYXNlLmlkbCBcCkBAIC0yMTM4LDEyICsyNzU1LDIxIEBACiAjIC0tLS0K
IGlmIEVOQUJMRV9ET01fU1RPUkFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5B
QkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9ET01fU1RP
UkFHRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSlNT
dG9yYWdlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmggXAogCURlcml2ZWRTb3Vy
Y2VzL0pTU3RvcmFnZUV2ZW50LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQu
aAorCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TdG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVN0b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9y
YWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21T
dG9yYWdlRXZlbnQuaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlLmlkbCBcCkBAIC0yMjAzLDYgKzI4MjksNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfVklERU8K
IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9WSURFTz0xCitGRUFUVVJFX0RF
RklORVNfR0RPTSArPSBFTkFCTEVfVklERU89MQogCiBIVE1MX0ZFQVRVUkVTICs9IEVOQUJMRV9W
SURFTz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1ZJREVPPTEKQEAgLTIyMjUsNyAr
Mjg1MiwzNSBAQAogCURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL0pTVGltZVJhbmdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5j
cHAgXAotCURlcml2ZWRTb3VyY2VzL0pTVm9pZENhbGxiYWNrLmgKKwlEZXJpdmVkU291cmNlcy9K
U1ZvaWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEF1ZGlvRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXVkaW9FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTb3VyY2VFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhRXJyb3IuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tVGltZVJhbmdlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21UaW1lUmFuZ2VzLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tVm9pZENhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEF1ZGlv
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEF1ZGlvRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZWRpYUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTFNvdXJjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVkaWFF
cnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVkaWFFcnJvci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVRpbWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21W
b2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVZvaWRDYWxsYmFj
ay5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQu
aWRsIFwKQEAgLTIyNjksNiArMjkyNCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9YUEFUSAogRkVB
VFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hQQVRIPTEKK0ZFQVRVUkVfREVGSU5F
U19HRE9NICs9IEVOQUJMRV9YUEFUSD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
WFBBVEg9MQogCkBAIC0yMjg0LDcgKzI5NDAsMjcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRo
UmVzdWx0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0aFJlc3VsdC5oIFwKIAlEZXJpdmVk
U291cmNlcy9YUGF0aEdyYW1tYXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIu
aAorCURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0b3Iu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4
cHJlc3Npb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9uLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tWFBhdGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3Vs
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3VsdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQ
YXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV4Y2Vw
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXhwcmVzc2lvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFeHByZXNzaW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21YUGF0aFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhS
ZXN1bHQuaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9y
LmlkbCBcCkBAIC0yMzQ5LDYgKzMwMjUsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfWFNMVAogRkVB
VFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hTTFQ9MQorRkVBVFVSRV9ERUZJTkVT
X0dET00gKz0gRU5BQkxFX1hTTFQ9MQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1hT
TFQ9MQogCkBAIC0yMzcyLDYgKzMwNDksNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfU1ZHCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHPTEKKyNGRUFUVVJFX0RFRklORVNf
R0RPTSArPSBFTkFCTEVfU1ZHPTEgLSBiaWcgVE9ETyEgOikKIAogV0VCQ09SRV9DU1NfUFJPUEVS
VFlfTkFNRVMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbiAKIFdFQkNP
UkVfQ1NTX1ZBTFVFX0tFWVdPUkRTICs9ICQoV2ViQ29yZSkvY3NzL1NWR0NTU1ZhbHVlS2V5d29y
ZHMuaW4KQEAgLTI2NDksNiArMzMyNywyNzMgQEAKIAlEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwCiAKK25vdC15ZXQ6CisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbHRHbHlwaEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmdsZS5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdBbmltYXRlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmlt
YXRlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkQW5nbGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVk
Qm9vbGVhbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEVudW1lcmF0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEludGVnZXIuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmlt
YXRlZExlbmd0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZExlbmd0aC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHQW5pbWF0ZWROdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5p
bWF0ZWROdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTnVtYmVyTGlz
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdBbmltYXRlZFJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVk
U3RyaW5nLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkU3RyaW5nLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NpcmNsZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ2lyY2xlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0NsaXBQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29sb3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0N1cnNvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZmluaXRpb25T
cmNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZmluaXRpb25TcmNFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEZWZzRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdEZWZzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
RGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVzY0VsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0RvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0VsZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50
SW5zdGFuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0VsbGlwc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFeGNlcHRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdGRUJsZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
RUJsZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRkVDb21wb3NpdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
RkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRURp
c3RhbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaXN0YW50
TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZsb29kRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRkVGdW5jQUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRkVGdW5jQUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0JFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0JFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGRUZ1bmNHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5j
UkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jUkVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0ZFSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
RkVPZmZzZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFT2Zmc2V0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVBvaW50TGlnaHRFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFVGls
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVUaWxlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGaWx0ZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZpbHRl
ckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGb250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZh
Y2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZUZvcm1hdEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZU5hbWVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGb250RmFjZVNyY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNl
VXJpRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZVVyaUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdH
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR2x5cGhFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dyYWRp
ZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHSW1hZ2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xlbmd0aC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHTWFya2VyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXJrZXJFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdNYXNrRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
TWF0cml4LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHTWV0YWRhdGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR01ldGFkYXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWlzc2luZ0ds
eXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNaXNzaW5nR2x5cGhFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXJMaXN0
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR051bWJlckxpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1BhaW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhaW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Zy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Bh
dGhTZWdBcmNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdBcmNSZWwuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0FyY1JlbC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQYXRoU2VnQ2xvc2VQYXRoLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNS
ZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJz
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhS
ZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJz
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhB
YnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNT
bW9vdGhBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGlu
ZXRvQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9BYnMuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdQYXRoU2VnTGluZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQ
YXRoU2VnTGluZXRvVmVydGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0
aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2Vn
TGluZXRvVmVydGljYWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGlzdC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGlzdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQYXRoU2VnTW92ZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTW92
ZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdHRlcm5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1BhdHRlcm5FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQ
b2ludC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHUG9pbnRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvaW50
TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWdvbkVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWdvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2x5
bGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVuZGVyaW5n
SW50ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JlbmRlcmluZ0ludGVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdTVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTY3JpcHRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1NldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RvcEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RvcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1N0cmluZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RyaW5n
TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3R5bGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1N0eWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTd2l0Y2hFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTeW1ib2xFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1N5bWJvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1RSZWZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RSZWZFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHVFNwYW5FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdU
ZXh0Q29udGVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dENvbnRl
bnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRQ
YXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdU
cmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVHJhbnNmb3JtLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VuaXRUeXBl
cy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdVbml0VHlwZXMuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1VzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVXNl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVmlld0VsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1pvb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdab29tRXZlbnQuaCAK
KwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRs
IFwKIAlXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5pZGwgXApAQCAtMzIyOCwzNiArNDE3Myw0MiBA
QAogIyBTVkcgRmVhdHVyZXMKIGlmIEVOQUJMRV9TVkdfVVNFCiBGRUFUVVJFX0RFRklORVNfSkFW
QVNDUklQVCArPSBFTkFCTEVfU1ZHX1VTRT0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5B
QkxFX1NWR19VU0U9MSAjIGJpZyBUT0RPIQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfVVNF
PTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX1VTRT0xCiBlbmRpZgogCiBpZiBF
TkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBF
TkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFC
TEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEgCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT1JF
SUdOX09CSkVDVD0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT1JFSUdOX09C
SkVDVD0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZPTlRTCiBGRUFUVVJFX0RFRklORVNfSkFW
QVNDUklQVCArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBF
TkFCTEVfU1ZHX0ZPTlRTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKIHdl
YmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZPTlRTPTEKIGVuZGlmCiAKIGlmIEVOQUJM
RV9TVkdfRklMVEVSUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19G
SUxURVJTPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQog
U1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9
IC1ERU5BQkxFX1NWR19GSUxURVJTPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQVNfSU1BR0UK
IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQorI0ZF
QVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQogU1ZHX0ZFQVRVUkVT
ICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9T
VkdfQVNfSU1BR0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19BTklNQVRJT04KIEZFQVRVUkVf
REVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKKyNGRUFUVVJFX0RF
RklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBTVkdfRkVBVFVSRVMgKz0gRU5B
QkxFX1NWR19BTklNQVRJT049MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfQU5J
TUFUSU9OPTEKIGVuZGlmCkBAIC0zMjY1LDEzICs0MjE2LDE0IEBACiAjIFNWRyB0YWcgYW5kIGF0
dHJpYnV0ZSBuYW1lcyAobmVlZCB0byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4cGVyaW1l
bnRhbCBmZWF0dXJlcyBhcmUgZW5hYmxlZCkKIERlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcDog
RGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOwogRGVyaXZlZFNvdXJjZXMvSlNT
VkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFj
dG9yeS5jcHAKK0Rlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3Bw
OiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKIAogaWYgU1ZHX0ZMQUdTCiBE
ZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2Vf
bmFtZXMucGwgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRy
cy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQo
V2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5p
biAtLWV4dHJhRGVmaW5lcyAiJChTVkdfRkVBVFVSRVMpIiAtLW91dHB1dERpciAiJChHRU5TT1VS
Q0VTKSIKKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAk
KFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMu
aW4gLS1leHRyYURlZmluZXMgIiQoU1ZHX0ZFQVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09V
UkNFUykiIAogZWxzZQogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdl
YkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJD
b3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3Jl
KS9zdmcvc3ZnYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAt
SSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3Zn
dGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tb3V0cHV0RGlyICIk
KEdFTlNPVVJDRVMpIiAKIAogZW5kaWYgIyBTVkdfRkxBR1MKIApAQCAtMzI4MCw3ICs0MjMyLDcg
QEAKIERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1l
cy5jcHA7CiAKIERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwIDogJChXZWJDb3JlKS9kb20v
bWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluCi0JJChQRVJMKSAtSSQo
V2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5r
YXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMu
aW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogCiBlbmRpZiAjIEVORCBFTkFCTEVfU1ZH
CiAKQEAgLTMzNjEsMTYgKzQzMTMsMTYgQEAKIAogaWYgSFRNTF9GTEFHUwogRGVyaXZlZFNvdXJj
ZXMvSFRNTE5hbWVzLmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUp
L2h0bWwvSFRNTFRhZ05hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMu
aW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdl
YkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxB
dHRyaWJ1dGVOYW1lcy5pbiAtLWV4dHJhRGVmaW5lcyAiJChIVE1MX0ZFQVRVUkVTKSIgLS1vdXRw
dXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2Ny
aXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQo
V2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1leHRyYURlZmluZXMgIiQoSFRN
TF9GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIGVsc2UKIERlcml2ZWRT
b3VyY2VzL0hUTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJD
b3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3Mg
JChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJM
KSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1s
L0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogZW5kaWYgIyBIVE1MX0ZMQUdTCiAK
IERlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmg6IERlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNwcDsK
IAogRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVz
LnBsICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluIC0tb3V0
cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Nj
cmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1dERpciAi
JChHRU5TT1VSQ0VTKSIgCiAKIHZwYXRoICUuaWRsID0gXAogICAgICQoV2ViQ29yZSkgXApAQCAt
MzM4Niw2ICs0MzM4LDE1IEBACiAgICAgJChXZWJDb3JlKS94bWwgXAogICAgICQoV2ViQ29yZSkv
cGx1Z2lucwogCitEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbSUuaDogRGVyaXZlZFNvdXJjZXMv
R2RvbSUuaDsKKworRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb20lLmNwcDogRGVyaXZlZFNvdXJj
ZXMvR2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9HZG9tJS5oOiBEZXJpdmVkU291cmNlcy9H
ZG9tJS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL0dkb20lLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJ
TkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG0KKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9k
b20gLS1pbmNsdWRlICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9jc3MgLS1p
bmNsdWRlICQoV2ViQ29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJDb3JlKS94bWwgLS1pbmNsdWRl
ICQoV2ViQ29yZSkvc3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmluZXMgIiQo
RkVBVFVSRV9ERUZJTkVTX0dET00pIiAtLWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKIERlcml2ZWRT
b3VyY2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiBEZXJpdmVkU291cmNlcy9K
UyUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM0MDEsNiArNDM2Miw3IEBACiAJV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1
aXJrcy5jc3MgXAogCVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBcCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRh
cmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAi
R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNs
dWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9w
dGlvbmFsICovCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIkdkb21FdmVu
dC5oIgorZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKwor
c3RhdGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCisKK1dl
YkNvcmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZl
bnRUYXJnZXROb2RlICpyZXF1ZXN0KQoreworICAgIEdET01FdmVudFRhcmdldE5vZGUgKnJlczsK
KyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NRXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9kb21fb2Jq
ZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihyZXMtPmltcGwoKSk7Cit9CisKKworZXh0
ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSwgZ2RvbV9ldmVu
dF90YXJnZXRfbm9kZSwgR0RPTV9UWVBFX05PREUpOworCisvKgorc3RydWN0IF9HZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICpp
dGVtOworfTsgIAorKi8KKworI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklW
QVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0VW
RU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkpCisKKy8qCit2b2lk
CitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUg
KnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0pCit7CisgICAgR2RvbUV2
ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9Q
UklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPml0ZW0gPSBpdGVtOworfQorKi8KKworc3RhdGlj
IHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7
CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0ID0gR0RPTV9FVkVOVF9UQVJHRVRf
Tk9ERShvYmplY3QpOworICAgIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0gcmVx
dWVzdC0+cHJpdjsqLworICAgIAorICAgIEdfT0JKRUNUX0NMQVNTKGdkb21fZXZlbnRfdGFyZ2V0
X25vZGVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQg
Z2RvbV9ldmVudF90YXJnZXRfbm9kZV9jbGFzc19pbml0KEdkb21FdmVudFRhcmdldE5vZGVDbGFz
cyogcmVxdWVzdENsYXNzKQoreworICAgIGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBn
X3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhy
ZXF1ZXN0Q2xhc3MpLAorICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgIDAsCisgICAgICAgIE5VTEwsCisgICAgICAgIE5V
TEwsCisgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAg
ICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVB
Tik7CisKKyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZmluYWxpemU7CisKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRfcHJp
dmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkpOyov
Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdChHZG9tRXZlbnRU
YXJnZXROb2RlKiByZXF1ZXN0KQoreworICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUq
IHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAg
IHJlcXVlc3QtPnByaXYgPSBwcml2OyovCit9ICAgCisKK30gLyogZXh0ZXJuICJDIiAqLworCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdl
dE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RP
TUV2ZW50VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXROb2Rl
X0hfX19QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdk
b21Ob2RlLmgiCitjbGFzcyBXZWJDb3JlOjpOb2RlOworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2
ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOworCitXRUJLSVRfQVBJIFdlYkNvcmU6
Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZlbnRUYXJn
ZXROb2RlICpyZXF1ZXN0KTsKKworI2VuZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVk
ZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRv
bWljU3RyaW5nLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2Rl
LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworY2xhc3MgR1N0cmluZ0NvbnZlcnQgewor
ICAgIHB1YmxpYzoKKyAgICBjb25zdCBnY2hhciAqbV9zdHI7CisgICAgR1N0cmluZ0NvbnZlcnQo
V2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy51dGY4KCkuZGF0
YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZz
KSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorfTsKKwor
ZXh0ZXJuICJDIiB7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQo
c3RyKS5tX3N0cikKKwordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50X3Rh
cmdldF9ub2RlIChHZG9tRXZlbnRUYXJnZXROb2RlICp0aGl6KQoreworICAgIGdfcmV0dXJuX2lm
X2ZhaWwgKHRoaXopOworICAgIC8qCisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRl
bSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgV2ViQ29y
ZTo6U3RyaW5nIF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5n
KGV2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RXZlbnRUYXJnZXRO
b2RlKF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICAqLworfQorCit9IC8qIGV4
dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9N
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdk
b21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1By
aXZhdGVHZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiTm9kZS5oIgor
I2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5F
X1RZUEUoR2RvbURPTU9iamVjdCwgZ2RvbV9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKTsKKwor
c3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSB7CisgICAgIEdET01PYmplY3QgKm1fbm9kZTsK
K307ICAKKworI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBF
X0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURP
TU9iamVjdFByaXZhdGUpKQorCit2b2lkCitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR2Rv
bURPTU9iamVjdCAqcmVxdWVzdCwgR0RPTU9iamVjdCAqIGl0ZW0pCit7CisgICAgR2RvbURPTU9i
amVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7
CisgICAgcHJpdi0+bV9ub2RlID0gaXRlbTsKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5y
ZWYoKTsqLworfQorCitHRE9NT2JqZWN0ICoKK2dkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShH
ZG9tRE9NT2JqZWN0ICpyZXF1ZXN0KQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2
ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJldHVybiBwcml2
LT5tX25vZGU7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9maW5hbGl6ZShHT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgR2RvbURPTU9iamVjdCogcmVxdWVzdCA9IEdET01fRE9NX09C
SkVDVChvYmplY3QpOworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+
cHJpdjsKKyAgICAKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5kZXJlZigpOyovCisgICAg
ZGVsZXRlIHByaXYtPm1fbm9kZTsgLyogY2FsbHMgbV9pbXBsLT5kZXJlZigpICovCisKKyAgICBH
X09CSkVDVF9DTEFTUyhnZG9tX2RvbV9vYmplY3RfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2Jq
ZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQoR2RvbURP
TU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVz
dENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2RvbV9vYmplY3RfZmluYWxpemU7CisgICAgCisgICAg
Z190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21ET01PYmpl
Y3RQcml2YXRlKSk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9pbml0KEdkb21E
T01PYmplY3QqIHJlcXVlc3QpCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBH
RE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9
IHByaXY7Cit9ICAgCisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24g
TGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2Vy
IDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8K
KworI2lmbmRlZiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fCisjZGVmaW5lIF9fR2RvbUV2ZW50
VGFyZ2V0Tm9kZV9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtp
dC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOworCisjZGVm
aW5lIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50X3Rh
cmdldF9ub2RlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREUob2Jq
KSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBF
X0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlKSkKKyNkZWZpbmUgR0RPTV9F
VkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNU
KChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5v
ZGVDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdF
VF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykg
KEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VU
X05PREUpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRf
Tk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21F
dmVudFRhcmdldE5vZGVQcml2YXRlIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlOworCisjaW5j
bHVkZSAiR2RvbU5vZGUuaCIKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBH
ZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0
ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBH
ZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dk
b21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFy
Z2V0Tm9kZSAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfX0dkb21FdmVudFRh
cmdldE5vZGVfSF9fICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVj
dC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVj
dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiR2RvbURP
TU9iamVjdC5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisKK2V4dGVybiAiQyIgeworCit2
b2lkCitnZG9tX2RvbV9vYmplY3RfaW5pdF9kb21fb2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0aGl6
KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworCS8qCisgICAgV2ViQ29yZTo6RE9N
T2JqZWN0ICogaXRlbSA9IGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZSh0aGl6KTsKKyAgICBX
ZWJDb3JlOjpTdHJpbmcgX2dfZG9tX29iamVjdF90eXBlX2FyZyA9IFdlYkNvcmU6OlN0cmluZyhk
b21fb2JqZWN0X3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RE9NT2JqZWN0KF9nX2RvbV9vYmpl
Y3RfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2Vu
bmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTURPTU9iamVjdF9IX19fUFJJVl8KKyNkZWZp
bmUgX19HRE9NRE9NT2JqZWN0X0hfX19QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisj
aW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorR19CRUdJTl9ERUNMUworCitjbGFzcyBHRE9NT2Jq
ZWN0OworV0VCS0lUX0FQSSBHRE9NT2JqZWN0KgorZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRl
KEdkb21ET01PYmplY3QgKnJlcXVlc3QpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX29i
amVjdF9zZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0KiBpdGVt
KTsKKworR19FTkRfREVDTFMKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
R0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rv
cnkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4MiBAQAorLyoKKyAqIFRISVMgRklMRSBJ
UyBERVJJVkVEIEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFURUQgRklMRS4KKyAqICBrZWVw
aW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAq
ICBhIG1ha2VfbmFtZXMucGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUKKyAq
ICBnZW5lcmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggYXMg
aW5wdXQuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBs
ZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJHZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdET01IVE1M
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxBbmNob3JFbGVtZW50
LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhU
TUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmxvY2tx
dW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJ1dHRvbkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlQ29sRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1M
RGlyZWN0b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRGl2RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxFbWJlZEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUg
Ikdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZvcm1FbGVtZW50Lmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZy
YW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxIUkVsZW1l
bnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhU
TUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSXNJbmRl
eEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUg
Ikdkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTElFbGVtZW50Lmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTWFw
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxNZXRhRWxlbWVudC5o
IgorI2luY2x1ZGUgIkdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1M
T0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFBhcmFn
cmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFBhcmFtRWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MUXVvdGVFbGVtZW50
LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhU
TUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgor
I2luY2x1ZGUgIkdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxU
aXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQXBwbGV0
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEFyZWFFbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJv
ZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQlJFbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1M
VGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTW9kRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1M
RW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRmllbGRTZXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEZy
YW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEhlYWRpbmdFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTElGcmFt
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTExlZ2Vu
ZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxMSUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxN
YXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE1lbnVFbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0
R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0aW9uRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1M
UXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MU2NyaXB0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFibGVD
ZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRleHRBcmVhRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisK
KyNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcHBsZXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJhc2VF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERMaXN0RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvcm1F
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxG
cmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSFJFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMYWJl
bEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9MaXN0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9u
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFBhcmFtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVUxpc3RF
bGVtZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK3R5cGVkZWYgR0RPTU5vZGUqICgqQ3JlYXRl
SFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24pKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsKKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVBbmNob3JXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFuY2hvckVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEFuY2hvckVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlQXBwbGV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxBcHBsZXRFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxBcHBsZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUFyZWFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFyZWFFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVCYXNlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
QmFzZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlQmFzZUZvbnRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VGb250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
QmFzZUZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJsb2NrcXVvdGVFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxCbG9ja3F1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVCb2R5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCb2R5RWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MQm9keUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlQlJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQlJFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJ1dHRv
bldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MQnV0dG9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQnV0dG9uRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVDYW52YXNX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTENhbnZhc0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVDYXB0
aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZVRhYmxlQ29sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNvbEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTFRhYmxlQ29sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVNb2RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1vZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1v
ZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
RGlyZWN0b3J5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXJlY3RvcnlFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxE
aXJlY3RvcnlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZURpdldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MRGl2RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGl2RWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVETGlz
dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MRExpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxETGlzdEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRW1iZWRXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEVtYmVkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZpZWxkU2V0V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxGaWVsZFNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZpZWxkU2V0RWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb250V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxGb250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9udEVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRm9ybVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
Rm9ybUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFtZUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGcmFtZVNldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRnJhbWVTZXRF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZVNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZGluZ1dyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVhZGlu
Z0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRpbmdFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhlYWRXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhlYWRFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVIUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSFJFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxIUkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlSHRtbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSHRtbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEh0
bWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUlGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MSUZyYW1lRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSUZyYW1l
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJ
bWFnZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MSW1hZ2VFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSW5wdXRX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTElucHV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlzSW5kZXhXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTElzSW5kZXhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJc0luZGV4RWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMYWJlbFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MTGFiZWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGVnZW5kV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxMZWdlbmRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMZWdlbmRFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxJV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxM
SUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExJRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMaW5rV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxMaW5rRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlTWFwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNYXBFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxNYXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcnF1ZWVFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxNYXJxdWVlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVNZW51V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNZW51RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWVu
dUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
TWV0YVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MTWV0YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9iamVjdFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MT2JqZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPTGlzdFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MT0xpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPTGlzdEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT3B0R3JvdXBXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTE9wdEdyb3VwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9wdGlvbldyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MT3B0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQYXJhZ3JhcGhXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFncmFwaEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUGFyYW1X
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTFBhcmFtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYW1FbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVByZVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MUHJlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUHJlRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVRdW90ZVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MUXVv
dGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxRdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2NyaXB0V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTY3JpcHRF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxTY3JpcHRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNlbGVjdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU2VsZWN0RWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTdHlsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU3R5bGVFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxTdHlsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MVGFibGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVTZWN0aW9uRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRh
YmxlQ2VsbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGV4dEFyZWFXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTFRleHRBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRpdGxlV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxUaXRsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRpdGxlRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVJvd1dyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MVGFibGVSb3dFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVJvd0VsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVUxpc3RXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTFVMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVUxpc3RFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgc3RhdGljIEhhc2hNYXA8V2ViQ29yZTo6
QXRvbWljU3RyaW5nSW1wbCosIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uPiBtYXA7
CisgICAgaWYgKG1hcC5pc0VtcHR5KCkpIHsKKyAgICAgICBtYXAuc2V0KGFUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVBbmNob3JXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFwcGxldFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFwcGxldFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoYXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFyZWFXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGJhc2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChiYXNlZm9udFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJh
c2VGb250V3JhcHBlcik7CisgICAgICAgbWFwLnNldChibG9ja3F1b3RlVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYm9keVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJvZHlXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGJyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQlJXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJ1dHRvbldyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoY2FudmFzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQ2FudmFz
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYXB0aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGVs
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChkaXJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGRpdlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpdldyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoZGxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVETGlzdFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoZW1iZWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVFbWJlZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZmllbGRzZXRUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVGaWVsZFNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZm9udFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZv
cm1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb3JtV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1lV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChmcmFtZXNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1l
U2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChoMVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhlYWRUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVIZWFkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoclRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUhSV3JhcHBlcik7CisgICAgICAgbWFwLnNldChodG1sVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSHRtbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaWZy
YW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSUZyYW1lV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChpbWdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoaW5wdXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbnB1dFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoaXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUlzSW5kZXhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxhYmVsVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlTGFiZWxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxlZ2VuZFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxlZ2VuZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
bGlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMSVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQobGlua1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxpbmtXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KG1hcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1hcFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQobWFycXVlZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1hcnF1
ZWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1lbnVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVNZW51V3JhcHBlcik7CisgICAgICAgbWFwLnNldChtZXRhVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlTWV0YVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob2JqZWN0VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlT2JqZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChvbFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9MaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChvcHRncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRp
b25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVQYXJhZ3JhcGhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBhcmFtVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlUGFyYW1XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHByZVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVF1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChz
Y3JpcHRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTY3JpcHRXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHNlbGVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoc3R5bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVT
dHlsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGFibGVUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVUYWJsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGJvZHlUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRk
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAg
bWFwLnNldCh0ZXh0YXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRleHRBcmVhV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldCh0aXRsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVRpdGxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0clRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZVRhYmxlUm93V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh1bFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVVMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xncm91cFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChoMlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGgzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoaDRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFk
aW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg2VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1hZ2VUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW5z
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChrZXlnZW5UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGxpc3RpbmdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHRmb290VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
VGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGhlYWRUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KHhtcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAg
IH0KKyAgICBwcmludGYoImNyZWF0ZUdET01IVE1MV3JhcHBlcjogJXNcbiIsIGVsZW1lbnQtPmxv
Y2FsTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIENyZWF0ZUhUTUxFbGVtZW50
V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbiA9IG1hcC5nZXQoZWxlbWVudC0+
bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICBpZiAoY3JlYXRlV3JhcHBlckZ1bmN0aW9uKQorICAg
ICAgICByZXR1cm4gY3JlYXRlV3JhcHBlckZ1bmN0aW9uKGVsZW1lbnQpOworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxFbGVtZW50KGVsZW1lbnQuZ2V0KCkpOworfQorCit9CisKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9t
RXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2Ns
Lm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9N
RXZlbnRUYXJnZXROb2RlX0hfX19JTlRfCisjZGVmaW5lIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9I
X19fSU5UXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21Ob2RlLmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01FdmVudFRhcmdldE5vZGUgOiBw
dWJsaWMgR0RPTU5vZGUgeworCitwdWJsaWM6CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZShQYXNz
UmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGltcGwpIDogR0RPTU5vZGUoaW1wbCkge30KKyAgICBpbnQg
Z2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERTsgfQor
fTsKKworCitHX0VORF9ERUNMUworI2VuZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dE
T01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9N
QmluZGluZy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAxIEBACisvKgorICogIENvcHly
aWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2Ft
QHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24g
TGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLwor
CisvLyBnY2MgMy54IGNhbid0IGhhbmRsZSBpbmNsdWRpbmcgdGhlIEhhc2hNYXAgcG9pbnRlciBz
cGVjaWFsaXphdGlvbiBpbiB0aGlzIGZpbGUKKyNpZiBkZWZpbmVkIF9fR05VQ19fICYmICFkZWZp
bmVkIF9fR0xJQkNYWF9fIC8vIGxlc3MgdGhhbiBnY2MgMy40CisjZGVmaW5lIEhBU0hfTUFQX1BU
Ul9TUEVDX1dPUktBUk9VTkQgMQorI2VuZGlmCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJHZG9t
RE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRl
ICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiR2RvbUNTU1N0eWxl
U2hlZXQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1N0eWxlU2hlZXQuaCIKKworI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW1h
Z2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiR2RvbU5vZGUu
aCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTm9kZS5o
IgorCisjaW5jbHVkZSAiQXR0ci5oIgorI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgorI2luY2x1
ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ29tbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50VHlw
ZS5oIgorI2luY2x1ZGUgIkVudGl0eS5oIgorI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5jZS5oIgor
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IgorI2luY2x1ZGUgIkdkb21BdHRyLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21BdHRyLmgi
CisjaW5jbHVkZSAiR2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJHZG9tVGV4dC5oIgor
I2luY2x1ZGUgIkdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudC5oIgor
I2luY2x1ZGUgIkdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudEZyYWdtZW50
LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHku
aCIKKyNpbmNsdWRlICJHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3Qu
aCIKKyNpbmNsdWRlICJHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJHZG9tRW50
aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIK
KyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlICJHZG9tQ1NT
UnVsZS5oIgorI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZh
Y2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkNTU01lZGlh
UnVsZS5oIgorI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVSdWxl
LmgiCisjaW5jbHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NDaGFy
c2V0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJH
ZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNs
dWRlICJHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVSdWxlLmgiCisj
aW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRXZlbnQuaCIKKworI2luY2x1ZGUgIkNsaXBib2FyZC5o
IgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUNsaXBib2FyZC5oIgorI2luY2x1
ZGUgIkdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU1lc3NhZ2VFdmVudC5oIgor
I2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU11dGF0aW9uRXZlbnQu
aCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9ncmVz
c0V2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVRleHRFdmVudC5oIgorI2luY2x1ZGUgIkdkb21VSUV2
ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAi
R2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdkb21XaGVlbEV2ZW50Lmgi
CisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJN
b3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIk92ZXJm
bG93RXZlbnQuaCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiVGV4dEV2
ZW50LmgiCisjaW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2
ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2hl
ZWxFdmVudC5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorCisj
aW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcu
aCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25zQ29s
bGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQWxsQ29sbGVj
dGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiR2RvbUhUTUxBbGxDb2xsZWN0aW9uLmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorLy8gZXJyLi4uICNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisvLyBlcnIuLi4gI2luY2x1ZGUg
Ikdkb21OYW1lZE5vZGVzQ29sbGVjdGlvbi5oIgorCisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQor
I2luY2x1ZGUgIkdkb21TdG9yYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIK
KyNlbmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNpZiAwIC8qIFRPRE8gKi8KKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIkdkb21TVkdab29tRXZlbnQu
aCIKKyNpbmNsdWRlICJTVkdab29tRXZlbnQuaCIKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBFTkFC
TEUoU1ZHKQorI2lmIDAgLyogWFhYIFRPRE8gKi8KKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVNW
R0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50V3JhcHBl
ckZhY3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisj
aWYgMAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiR2RvbVNWR0V4Y2VwdGlvbi5oIgorI2lu
Y2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NSdWxlLmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUNvbW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21Eb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUVu
dGl0eS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NQ
cmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRW50aXR5UmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVRleHQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0ltcG9y
dFJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU01lZGlhUnVsZS5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTVmFyaWFibGVzUnVs
ZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21N
b3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21NdXRhdGlvbkV2ZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21UZXh0RXZl
bnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVdoZWVs
RXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tU3RvcmFnZUV2ZW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRl
cj4gRE9NT2JqZWN0TWFwOwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gR2RvbVdy
YXBwZXJDYWNoZTsgLyogQVJHISBVTkZBSVIhIEpTV3JhcHBlckNhY2hlIGlzIGluIERvY3VtZW50
ISEgKi8KKworLy8gRm9yIGRlYnVnZ2luZywga2VlcCBhIHNldCBvZiB3cmFwcGVycyBjdXJyZW50
bHkgcmVnaXN0ZXJlZCwgYW5kIGNoZWNrIHRoYXQKKy8vIGFsbCBhcmUgdW5yZWdpc3RlcmVkIGJl
Zm9yZSB0aGV5IGFyZSBkZXN0cm95ZWQuIFRoaXMgaGFzIGhlbHBlZCB1cyBmaXggYXQKKy8vIGxl
YXN0IG9uZSBidWcuCisKKyNpZiAwCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3Qq
IHdyYXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVy
KTsKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUmIHdy
YXBwZXJzKTsKKworI2lmZGVmIE5ERUJVRworCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkV3JhcHBl
cihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZVdyYXBwZXIo
R0RPTU9iamVjdCopCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVycyhj
b25zdCBHZG9tV3JhcHBlckNhY2hlJikKK3sKK30KKworI2Vsc2UKKworc3RhdGljIEhhc2hTZXQ8
R0RPTU9iamVjdCo+JiB3cmFwcGVyU2V0KCkKK3sKKyAgICBzdGF0aWMgSGFzaFNldDxHRE9NT2Jq
ZWN0Kj4gc3RhdGljV3JhcHBlclNldDsKKyAgICByZXR1cm4gc3RhdGljV3JhcHBlclNldDsKK30K
Kworc3RhdGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKQoreworICAgIEFT
U0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAgICB3cmFwcGVyU2V0KCku
YWRkKHdyYXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmplY3Qq
IHdyYXBwZXIpCit7CisgICAgaWYgKCF3cmFwcGVyKQorICAgICAgICByZXR1cm47CisgICAgQVNT
RVJUKHdyYXBwZXJTZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgpLnJl
bW92ZSh3cmFwcGVyKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2Rv
bVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCit7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hlOjpj
b25zdF9pdGVyYXRvciBpdCA9IHdyYXBwZXJzLmJlZ2luKCk7IGl0ICE9IHdyYXBwZXJzLmVuZCgp
OyArK2l0KQorICAgICAgICByZW1vdmVXcmFwcGVyKGl0LT5zZWNvbmQpOworfQorCitHRE9NT2Jq
ZWN0Ojp+R0RPTU9iamVjdCgpCit7CisgICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFpbnMo
dGhpcykpOworfQorCisjZW5kaWYKKyNlbmRpZiAvKiBjb21tZW50ZWQgb3V0IGZvciBub3cgKi8K
Kworc3RhdGljIEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJDYWNoZSgpCit7IAorICAgIC8vIFVO
RkFJUiEgaSB3YW50IG9uZSBvZiB0aGVzZSBwZXIgRG9jdW1lbnQsIHRvbyEKKyAgICAvLyBEb24n
dCB1c2UgbWFsbG9jIGhlcmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9uIGNh
biBkZWFkbG9jay4KKyAgICBzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSBzdGF0aWNHZG9tV3JhcHBl
ckNhY2hlOworICAgIHJldHVybiBzdGF0aWNHZG9tV3JhcHBlckNhY2hlOworfQorCitzdGF0aWMg
RE9NT2JqZWN0TWFwJiBkb21PYmplY3RzKCkKK3sgCisgICAgLy8gRG9uJ3QgdXNlIG1hbGxvYyBo
ZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxvY2suCisg
ICAgc3RhdGljIERPTU9iamVjdE1hcCBzdGF0aWNET01PYmplY3RzOworICAgIHJldHVybiBzdGF0
aWNET01PYmplY3RzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpIAoreworICAgIGdwb2ludGVyIHJldCA9IGRvbU9i
amVjdHMoKS5nZXQob2JqZWN0SGFuZGxlKTsKKyAgICBwcmludGYoImdldERPTU9iamVjdDogJXAg
JXBcbiIsIG9iamVjdEhhbmRsZSwgcmV0KTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlX2dkb21fb2JqZWN0KEdET01PYmplY3QgKmRvYikKK3sKKyAgICBncG9p
bnRlciByZXMgPSBnX29iamVjdF9uZXcoZG9iLT5nZXRfZ29ial90eXBlKCksIE5VTEwpOworICAg
IGdkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVzKSwgZG9iKTsK
KyAgICByZXR1cm4gcmVzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1
dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqIHdyYXBwZXIpIAorewor
ICAgIC8vIGFkZFdyYXBwZXIod3JhcHBlcik7CisgICAgZ3BvaW50ZXIgb2JqID0gY3JlYXRlX2dk
b21fb2JqZWN0KHdyYXBwZXIpOworICAgIHByaW50ZigicHV0RE9NT2JqZWN0OiAlcCAlcCAlcFxu
Iiwgb2JqZWN0SGFuZGxlLCB3cmFwcGVyLCBvYmopOworICAgIGRvbU9iamVjdHMoKS5zZXQob2Jq
ZWN0SGFuZGxlLCBvYmopOworICAgIHJldHVybiBvYmo7Cit9CisKK3ZvaWQgR0RPTVNjcmlwdElu
dGVycHJldGVyOjpmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKQoreworICAgIGRv
bU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSk7CisgICAgLy9yZW1vdmVXcmFwcGVyKGRvbU9i
amVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSkpOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUq
IG5vZGUpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGdwb2ludGVyID4oZG9tT2JqZWN0cygpLmdldChub2RlKSk7CisgICAgcmV0dXJuIC8qIFhYWCBn
cnJyIGRvY3VtZW50LT4gKi93cmFwcGVyQ2FjaGUoKS5nZXQobm9kZSk7Cit9CisKK3ZvaWQgR0RP
TVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgZm9y
Z2V0RE9NT2JqZWN0KG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vcmVtb3Zl
V3JhcHBlcigvKiBYWFggZ3JyIGRvY3VtZW50LT4qL3dyYXBwZXJDYWNoZSgpLnRha2Uobm9kZSkp
OworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUsIEdET01Ob2RlICp3cmFwcGVyKQor
eworICAgIC8vYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAg
ICAgIG5vZGUtPnJlZigpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpw
dXRET01PYmplY3Qobm9kZSwgd3JhcHBlcikgOworICAgIH0KKyAgICBncG9pbnRlciBvYmogPSBj
cmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgLyogWFhYIGdycnIgZG9jdW1lbnQtPiov
d3JhcHBlckNhY2hlKCkuc2V0KG5vZGUsIG9iaik7CisgICAgcmV0dXJuIG9iajsKK30KKwordm9p
ZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgLy9yZW1vdmVX
cmFwcGVycyhkb2N1bWVudC0+d3JhcHBlckNhY2hlKCkpOworfQorCisjaWYgMAordm9pZCBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50KiBkb2Mp
Cit7CisjaWYgMCAvKlhYWCBUT0RPKi8KKyAgICAvLyBJZiBhIG5vZGUncyBHZG9tIHdyYXBwZXIg
aG9sZHMgY3VzdG9tIHByb3BlcnRpZXMsIHRob3NlIHByb3BlcnRpZXMgbXVzdAorICAgIC8vIHBl
cnNpc3QgZXZlcnkgdGltZSB0aGUgbm9kZSBpcyBmZXRjaGVkIGZyb20gdGhlIERPTS4gU28sIHdl
IGtlZXAgR2RvbQorICAgIC8vIHdyYXBwZXJzIGxpa2UgdGhhdCBmcm9tIGJlaW5nIGdhcmJhZ2Ug
Y29sbGVjdGVkLgorCisgICAgR2RvbVdyYXBwZXJDYWNoZSYgbm9kZURpY3QgPSAvKmRvYy0+Ki93
cmFwcGVyQ2FjaGUoKTsKKyAgICBHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBub2RlRW5kID0g
bm9kZURpY3QuZW5kKCk7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBub2Rl
SXQgPSBub2RlRGljdC5iZWdpbigpOyBub2RlSXQgIT0gbm9kZUVuZDsgKytub2RlSXQpIHsKKyAg
ICAgICAgZ3BvaW50ZXIgZ05vZGUgPSBub2RlSXQtPnNlY29uZDsKKyAgICAgICAgTm9kZSogbm9k
ZSA9IGdOb2RlLT5pbXBsKCk7CisKKyAgICAgICAgaWYgKGdOb2RlLT5tYXJrZWQoKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5vIG5lZWQgdG8gcHJlc2VydmUgYSB3cmFw
cGVyIHRoYXQgaGFzIG5vIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIGlzIG5vCisgICAgICAgIC8vIGxv
bmdlciBmZXRjaGFibGUgdGhyb3VnaCB0aGUgRE9NLgorICAgICAgICBpZiAoIWdOb2RlLT5oYXND
dXN0b21Qcm9wZXJ0aWVzKCkgfHwgIW5vZGUtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgICAgIC8v
Li4uIHVubGVzcyB0aGUgd3JhcHBlciB3cmFwcyBhIGxvYWRpbmcgaW1hZ2UsIHNpbmNlIHRoZSAi
bmV3IEltYWdlIgorICAgICAgICAgICAgLy8gc3ludGF4IGFsbG93cyBhbiBvcnBoYW4gaW1hZ2Ug
d3JhcHBlciB0byBiZSB0aGUgbGFzdCByZWZlcmVuY2UKKyAgICAgICAgICAgIC8vIHRvIGEgbG9h
ZGluZyBpbWFnZSwgd2hvc2UgbG9hZCBldmVudCBtaWdodCBoYXZlIGltcG9ydGFudCBzaWRlLWVm
ZmVjdHMuCisgICAgICAgICAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoaW1nVGFnKSB8fCBzdGF0
aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4obm9kZSktPmhhdmVGaXJlZExvYWRFdmVudCgpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGdOb2RlLT5tYXJrKCk7CisgICAg
fQorI2VuZGlmCit9CisKKy8qIFhYWCAtIHJlcXVpcmVzIGxvb2tpbmcgdXAgb2JqZWN0IC0gY2Fs
bCB0byBHX09CSkVDVCgpIG1hY3JvIGluIGFyZworICogIndyYXBwZXIiIHRvIHB1dERPTU5vZGVG
b3JEb2N1bWVudD8qLworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjp1cGRhdGVET01O
b2RlRG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvYywgRG9jdW1lbnQqIG5ld0Rv
YykKK3sKKyAgICBBU1NFUlQob2xkRG9jICE9IG5ld0RvYyk7CisgICAgc3R5bGVTaGVldC0+cmVm
KCk7CisgICAgZ3BvaW50ZXIgd3JhcHBlciA9IGdldERPTU5vZGVGb3JEb2N1bWVudChvbGREb2Ms
IG5vZGUpOworICAgIGlmICh3cmFwcGVyKSB7CisgICAgICAgIC8vcmVtb3ZlV3JhcHBlcih3cmFw
cGVyKTsKKyAgICAgICAgZ3BvaW50ZXIgb2JqID0gcHV0RE9NTm9kZUZvckRvY3VtZW50KG5ld0Rv
Yywgbm9kZSwgd3JhcHBlcik7CisgICAgICAgIGZvcmdldERPTU5vZGVGb3JEb2N1bWVudChvbGRE
b2MsIG5vZGUpOworICAgICAgICAvL2FkZFdyYXBwZXIod3JhcHBlcik7CisgICAgICAgIHJldHVy
biBvYmo7CisgICAgfQorICAgIHJldHVybiBOVUxMOyAvKiBlcnIuLi4gKi8KK30KKyNlbmRpZgor
CitncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBpZiAoIWRvYykKKyAgICAg
ICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0g
R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9jKTsKKyAgICBpZiAoZ29iaikK
KyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBpZiAo
ZG9jLT5pc0hUTUxEb2N1bWVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxEb2N1bWVu
dChzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihkb2MpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAg
IGVsc2UgaWYgKGRvYy0+aXNTVkdEb2N1bWVudCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5V
TEw7IC8qIFhYWCBUT0RPICovCisjaWYgMAorICAgICAgICByZXQgPSBuZXcgR0RPTVNWR0RvY3Vt
ZW50KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4oZG9jKSk7CisjZW5kaWYKKyAgICB9CisjZW5k
aWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnQoZG9jKTsKKworICAg
IGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KGRvYywgcmV0KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSog
bm9kZSk7CisKK2dwb2ludGVyIHRvR0RPTU5ld2x5Q3JlYXRlZChOb2RlKiBub2RlKQoreworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisgICAgCisg
ICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisgICAgCitncG9pbnRlciB0b0dET00o
Tm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBo
bW1tLi4uLiAqLworCisgICAgRG9jdW1lbnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAg
Z3BvaW50ZXIgcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1l
bnQoZG9jLCBub2RlKTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisgICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShDU1NWYWx1
ZSogdmFsdWUpCit7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGht
bW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Omdl
dERPTU9iamVjdCh2YWx1ZSk7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7
CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkp
CisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWVMaXN0KHN0YXRpY19jYXN0PENTU1ZhbHVl
TGlzdCo+KHZhbHVlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNT
VkdQYWludCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAg
ICAgLy9yZXQgPSBuZXcgR0RPTVNWR1BhaW50KHN0YXRpY19jYXN0PFNWR1BhaW50Kj4odmFsdWUp
KTsKKyAgICB9CisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHQ29sb3IoKSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gbmV3IEdET01TVkdD
b2xvcihzdGF0aWNfY2FzdDxTVkdDb2xvcio+KHZhbHVlKSk7CisgICAgfQorI2VuZGlmCisgICAg
ZWxzZSBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01DU1NQcmltaXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhbHVlKHZhbHVlKTsKKwor
ICAgIHZhbHVlLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRE
T01PYmplY3QodmFsdWUsIHJldCk7Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGdwb2ludGVy
IGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNT
RVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KG5vZGUtPmRvY3Vt
ZW50KCksIG5vZGUpKTsKKyAgICAKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9jdW1lbnQo
KTsKKyAgICBHRE9NTm9kZSAqcmV0ID0gTlVMTDsKKyAgICAKKyAgICBwcmludGYoImNyZWF0ZVdy
YXBwZXIgbm9kZVR5cGUgJWRcbiIsIG5vZGUtPm5vZGVUeXBlKCkpOworCisgICAgc3dpdGNoIChu
b2RlLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgorICAg
ICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXQg
PSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKSk7
CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmlzU1ZHRWxlbWVu
dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2lmIDAgLyogWFhYIFRPRE8gKi8K
KyAgICAgICAgICAgICAgICByZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxT
VkdFbGVtZW50Kj4obm9kZSkpOworI2VuZGlmCisjZW5kaWYKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+
KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkFUVFJJQlVU
RV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01BdHRyKHN0YXRpY19jYXN0PEF0dHIq
Pihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpURVhUX05P
REU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVRleHQoc3RhdGljX2Nhc3Q8VGV4dCo+KG5v
ZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJ
T05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ0RBVEFTZWN0aW9uKHN0YXRpY19j
YXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01FbnRpdHko
c3RhdGljX2Nhc3Q8RW50aXR5Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0lu
c3RydWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9k
ZTo6Q09NTUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Db21tZW50KHN0YXRp
Y19jYXN0PENvbW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBj
YWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQor
ICAgICAgICAgICAgcmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUpKTsK
KyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTURvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVudFR5cGUqPihub2RlKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpOT1RBVElPTl9OT0RFOgor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob3RhdGlvbihzdGF0aWNfY2FzdDxOb3RhdGlvbio+
KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5U
X0ZSQUdNRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTURvY3VtZW50RnJhZ21l
bnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRGcmFnbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKKyAgICAgICAg
ICAgIHJldCA9IG5ldyBHRE9NRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0PEVudGl0eVJlZmVy
ZW5jZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01Ob2RlKG5vZGUpOworICAgIH0KKworICAgIGRvYy0+cmVm
KCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3Vt
ZW50KGRvYywgbm9kZSwgcmV0KTsKK30KKyAKK2dwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlv
biogY29sbGVjdGlvbikKK3sKKyAgICBpZiAoIWNvbGxlY3Rpb24pCisgICAgICAgIHJldHVybiBO
VUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRl
cnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNvbGxlY3Rpb24pOworCisgICAgaWYgKGdvYmopCisgICAg
ICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAoY29s
bGVjdGlvbi0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OlNlbGVjdE9w
dGlvbnM6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbihz
dGF0aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAg
ICAgICBicmVhazsKKyNpZiAwCisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OkRvY0FsbDoK
KyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTEFsbENvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8
SFRNTENvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRp
ZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQ29sbGVj
dGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgIH0KKworICAgIGNvbGxlY3Rpb24tPnJlZigpOworICAgIHJldHVybiBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChjb2xsZWN0aW9uLCByZXQpOworfQor
CitncG9pbnRlciB0b0dET00oRXZlbnQqIGV2ZW50KQoreworICAgIGlmICghZXZlbnQpCisgICAg
ICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgcHJpbnRmKCJ0b0dET00gRXZl
bnQgdHlwZSAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKwor
ICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChl
dmVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9i
amVjdCAqcmV0OworICAgIGlmIChldmVudC0+aXNVSUV2ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2
ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NS2V5Ym9h
cmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxz
ZSBpZiAoZXZlbnQtPmlzVGV4dEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVRl
eHRFdmVudChzdGF0aWNfY2FzdDxUZXh0RXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlm
IChldmVudC0+aXNNb3VzZUV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU1vdXNl
RXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYg
KGV2ZW50LT5pc1doZWVsRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NV2hlZWxF
dmVudChzdGF0aWNfY2FzdDxXaGVlbEV2ZW50Kj4oZXZlbnQpKTsKKyNpZiBFTkFCTEUoU1ZHKQor
ICAgICAgICBlbHNlIGlmIChldmVudC0+aXNTVkdab29tRXZlbnQoKSkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgICAgIC8vcmV0ID0gbmV3
IEdET01TVkdab29tRXZlbnQoc3RhdGljX2Nhc3Q8U1ZHWm9vbUV2ZW50Kj4oZXZlbnQpLCAwKTsK
KyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NVUlFdmVudChzdGF0aWNfY2FzdDxVSUV2ZW50Kj4oZXZlbnQpKTsKKyAgICB9IGVsc2UgaWYg
KGV2ZW50LT5pc011dGF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01NdXRhdGlv
bkV2ZW50KHN0YXRpY19jYXN0PE11dGF0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYg
KGV2ZW50LT5pc092ZXJmbG93RXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01PdmVyZmxv
d0V2ZW50KHN0YXRpY19jYXN0PE92ZXJmbG93RXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYg
KGV2ZW50LT5pc01lc3NhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTU1lc3NhZ2VF
dmVudChzdGF0aWNfY2FzdDxNZXNzYWdlRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2
ZW50LT5pc1Byb2dyZXNzRXZlbnQoKSkgeworICAgICAgICBpZiAoZXZlbnQtPmlzWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQqPihldmVudCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVBy
b2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CisgICAgfQor
I2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyAgICBlbHNlIGlmIChldmVudC0+aXNTdG9yYWdlRXZl
bnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01TdG9yYWdlRXZlbnQoc3RhdGljX2Nhc3Q8U3Rv
cmFnZUV2ZW50Kj4oZXZlbnQpKTsKKyNlbmRpZgorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1dlYktp
dEFuaW1hdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0QW5pbWF0aW9u
RXZlbnQoc3RhdGljX2Nhc3Q8V2ViS2l0QW5pbWF0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVs
c2UgaWYgKGV2ZW50LT5pc1dlYktpdFRyYW5zaXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBu
ZXcgR0RPTVdlYktpdFRyYW5zaXRpb25FdmVudChzdGF0aWNfY2FzdDxXZWJLaXRUcmFuc2l0aW9u
RXZlbnQqPihldmVudCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01FdmVudChl
dmVudCk7CisKKyAgICBldmVudC0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6cHV0RE9NT2JqZWN0KGV2ZW50LCByZXQpOworfQorCisvKiBUT0RPIFhYWCBobW1tLi4u
IG5vdCBzbyBoYXBweSBhYm91dCB0aGlzIC0gc2hvdWxkIGJlICJuZXdseSBjcmVhdGVkIiAqLwor
Z3BvaW50ZXIgdG9HRE9NKFRleHQqIHRleHQpCit7CisgICAgaWYgKCF0ZXh0KQorICAgICAgICBy
ZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmdldERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0KTsKKyAgICBpZiAo
Z29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NTm9kZSAqcmV0ID0gbmV3IEdE
T01UZXh0KHRleHQpOworICAgIHRleHQtPmRvY3VtZW50KCktPnJlZigpOworICAgIHJldHVybiBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1bWVu
dCgpLCB0ZXh0LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTUnVsZSogcnVsZSkKK3sK
KyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLwor
CisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0
KHJ1bGUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RP
TU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7CisgICAgICAgIGNhc2Ug
Q1NTUnVsZTo6U1RZTEVfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5bGVS
dWxlKHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUNTU01lZGlhUnVsZShzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihydWxlKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpGT05UX0ZBQ0VfUlVMRToK
KyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTRm9udEZhY2VSdWxlKHN0YXRpY19jYXN0PENT
U0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUGFnZVJ1
bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NQ1NTSW1wb3J0UnVsZShzdGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxlKj4ocnVsZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Q0hBUlNFVF9SVUxFOgor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NDaGFyc2V0UnVsZShzdGF0aWNfY2FzdDxDU1ND
aGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENT
U1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYXJp
YWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1ZhcmlhYmxlc1J1bGUqPihydWxlKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9N
Q1NTUnVsZShydWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJ1bGUtPnJl
ZigpOworICAgIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHJ1bGUsIHJldCk7
CisgICAgcmV0dXJuIHJldDsKK30KKworLyogVE9ETzogc2hvdWxkIGJlIHRvR0RPTU5ld2x5Q3Jl
YXRlZCAqLworZ3BvaW50ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFl
bGVtZW50KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8vIHNob3VsZG4ndCBiZSBvbmU/
IEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChlbGVtZW50
LT5kb2N1bWVudCgpLCBlbGVtZW50KSk7CisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVs
ZW1lbnQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsgLy8gaHVoPyBlcnIu
Li4KKworICAgIEdET01Ob2RlICpyZXQ7CisgICAgRG9jdW1lbnQqIGRvYyA9IGVsZW1lbnQtPmRv
Y3VtZW50KCk7CisKKyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICBy
ZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVt
ZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0VsZW1l
bnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8v
cmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KGVsZW1l
bnQpKTsKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRWxl
bWVudChlbGVtZW50KTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KGRvYywgZWxlbWVudCwgcmV0KTsKK30K
KworZ3BvaW50ZXIgdG9HRE9NKFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQpCit7CisgICAgaWYgKCFz
dHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gTlVMTDsgLyogZXJyLi4uICovCisKKyAgICBncG9p
bnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qoc3R5bGVTaGVl
dCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVj
dCAqcmV0OworICAgIGlmIChzdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKKyAgICAgICAg
cmV0ID0gbmV3IEdET01DU1NTdHlsZVNoZWV0KHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihz
dHlsZVNoZWV0KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTVN0eWxlU2hlZXQo
c3R5bGVTaGVldCk7CisKKyAgICBzdHlsZVNoZWV0LT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNj
cmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qoc3R5bGVTaGVldCwgcmV0KTsKK30KKworLyog
ZGVyaXZlZCBzb3VyY2VzIGF1dG8tZ2VuZXJhdGVkICovCitncG9pbnRlciB0b0dET00oWE1MSHR0
cFJlcXVlc3RVcGxvYWQqIG9iaik7CisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldCogdGFy
Z2V0KQoreworICAgIGlmICghdGFyZ2V0KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAKKyNp
ZiAwCisjaWYgRU5BQkxFKFNWRykKKyAgICAvLyBTVkdFbGVtZW50SW5zdGFuY2Ugc3VwcG9ydHMg
Ym90aCB0b1NWR0VsZW1lbnRJbnN0YW5jZSBhbmQgdG9Ob2RlIHNpbmNlIHNvIG11Y2ggbW91c2Ug
aGFuZGxpbmcgY29kZSBkZXBlbmRzIG9uIHRvTm9kZSByZXR1cm5pbmcgYSB2YWxpZCBub2RlLgor
ICAgIFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2UgPSB0YXJnZXQtPnRvU1ZHRWxlbWVudElu
c3RhbmNlKCk7CisgICAgaWYgKGluc3RhbmNlKQorICAgICAgICByZXR1cm4gdG9HRE9NKGV4ZWMs
IGluc3RhbmNlKTsKKyNlbmRpZgorI2VuZGlmCisKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0LT50
b05vZGUoKTsKKyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsKKyAg
ICAKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3QqIHhociA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVz
dCgpKQorICAgICAgICAvLyBYTUxIdHRwUmVxdWVzdCBpcyBhbHdheXMgY3JlYXRlZCB2aWEgR0RP
TSwgc28gd2UgZG9uJ3QgbmVlZCB0byB1c2UgY2FjaGVET01PYmplY3QoKSBoZXJlLgorICAgICAg
ICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoeGhyKTsKKworICAg
IGlmIChYTUxIdHRwUmVxdWVzdFVwbG9hZCogdXBsb2FkID0gdGFyZ2V0LT50b1hNTEh0dHBSZXF1
ZXN0VXBsb2FkKCkpCisgICAgICAgIHJldHVybiB0b0dET00odXBsb2FkKTsKKyAgICAKKyNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGlmIChET01BcHBsaWNhdGlvbkNh
Y2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCisgICAgICAgIC8v
IERPTUFwcGxpY2F0aW9uQ2FjaGUgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRv
bid0IG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJuIEdE
T01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNhY2hlKTsKKyNlbmRpZgorCisgICAg
Ly8gVGhlcmUgYXJlIHR3byBraW5kcyBvZiBFdmVudFRhcmdldHM6IEV2ZW50VGFyZ2V0Tm9kZSBh
bmQgWE1MSHR0cFJlcXVlc3QuCisgICAgLy8gSWYgU1ZHIHN1cHBvcnQgaXMgZW5hYmxlZCwgdGhl
cmUgaXMgYWxzbyBTVkdFbGVtZW50SW5zdGFuY2UuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIE5VTEw7Cit9ICAgCisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5v
ZGUqIHRhcmdldCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7Cisg
ICAgCisgICAgTm9kZSogbm9kZSA9IHRhcmdldC0+dG9Ob2RlKCk7CisgICAgaWYgKG5vZGUpCisg
ICAgICAgIHJldHVybiB0b0dET00obm9kZSk7CisgICAgCisgICAgcmV0dXJuIHRvR0RPTShzdGF0
aWNfY2FzdDxFdmVudFRhcmdldCo+KHRhcmdldCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRo
IENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
bHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4KKyAqLworCisjaWZuZGVmIF9fR2RvbURPTU9iamVjdF9IX18KKyNkZWZpbmUgX19HZG9tRE9N
T2JqZWN0X0hfXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L3dl
YmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0cnVjdCBfR2RvbURP
TU9iamVjdCBHZG9tRE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RDbGFz
cyBHZG9tRE9NT2JqZWN0Q2xhc3M7CisKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9PQkpFQ1QgICAg
ICAgICAgICAoZ2RvbV9kb21fb2JqZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRE9NX09C
SkVDVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBH
RE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdCkpCisjZGVmaW5lIEdET01fRE9NX09C
SkVDVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBH
RE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkKKyNkZWZpbmUgR0RPTV9J
U19ET01fT0JKRUNUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9i
aiksIEdET01fVFlQRV9ET01fT0JKRUNUKSkKKyNkZWZpbmUgR0RPTV9JU19ET01fT0JKRUNUX0NM
QVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9E
T01fT0JKRUNUKSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dFVF9DTEFTUyhvYmopICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9t
RE9NT2JqZWN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdFByaXZhdGUg
R2RvbURPTU9iamVjdFByaXZhdGU7CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdCB7CisgICAgR09i
amVjdCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSAqcHJpdjsK
K307CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFy
ZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorZ2RvbV9kb21fb2JqZWN0X2dldF90
eXBlICh2b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5pdF9kb21f
b2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0aGl6KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8q
IF9fR2RvbURPTU9iamVjdF9IX18gKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dE
T01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9iamVj
dC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01PYmplY3QuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfX0RPTU9iamVjdF9oX18KKyNk
ZWZpbmUgX19ET01PYmplY3RfaF9fCisKKy8vIG5hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R0RPTU9iamVjdCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R0RPTU9iamVjdCgpIHt9CisgICAg
dmlydHVhbCBpbnQgZ2V0X2dvYmpfdHlwZSgpID0gMDsKK307CisKKy8vIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogVEhJUyBGSUxFIElTIERFUklWRUQgRlJPTSBB
TiBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBGSUxFLgorICoga2VlcGluZyBpdCB1cC10by1kYXRl
IGNvdWxkIHBvdGVudGlhbGx5IGJlIGRvbmUgYnkgYWRkaW5nCisgKiBhIG1ha2VfbmFtZXMucGwg
Z2VuZXJhdG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUKKyAqIGdlbmVyYXRlciB3aGljaCB0
YWtlcyBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBhcyBpbnB1dC4KKyAqCisgKgorICog
Q29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisKKyNpZm5kZWYgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAor
I2RlZmluZSBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCisKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbU5vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEhUTUxFbGVtZW50OworCisgICAgR0RPTU5vZGUqIGNy
ZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK30KKyAKKyNl
bmRpZiAvLyBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkxIEBACisvKgorICogIENv
cHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAg
Q29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8
c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisjaWZuZGVmIEdkb21ET01CaW5kaW5nX2gKKyNkZWZpbmUgR2RvbURPTUJpbmRpbmdfaAor
CisjaW5jbHVkZSA8a2pzL2ludGVycHJldGVyLmg+CisjaW5jbHVkZSA8a2pzL2xvb2t1cC5oPgor
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisjaW5jbHVkZSAiR2RvbU5vZGUuaCIKKyNp
bmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob2RlLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEF0b21pY1N0cmluZzsKKyAgICBjbGFz
cyBEb2N1bWVudDsKKyAgICBjbGFzcyBFdmVudDsKKyAgICBjbGFzcyBGcmFtZTsKKyAgICBjbGFz
cyBLVVJMOworICAgIGNsYXNzIE5vZGU7CisgICAgY2xhc3MgU3RyaW5nOworCisjaWYgRU5BQkxF
KFNWRykKKyAgICBjbGFzcyBTVkdFbGVtZW50OworI2VuZGlmCisKKyAgICBjbGFzcyBHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIHZvaWQqIGdldERP
TU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpOworICAgICAgICBzdGF0aWMgdm9pZCogcHV0RE9N
T2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVjdCopOworICAgICAgICBzdGF0aWMg
dm9pZCBmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsKKworICAgICAgICBzdGF0
aWMgdm9pZCogZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSopOworICAgICAg
ICBzdGF0aWMgdm9pZCogcHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSosIEdE
T01Ob2RlKiBub2RlV3JhcHBlcik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU5vZGVG
b3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZm9yZ2V0
QWxsRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOworCQkjaWYgMAorICAgICAgICBzdGF0
aWMgdm9pZCB1cGRhdGVET01Ob2RlRG9jdW1lbnQoTm9kZSosIERvY3VtZW50KiBvbGREb2MsIERv
Y3VtZW50KiBuZXdEb2MpOworICAgICAgICBzdGF0aWMgdm9pZCBtYXJrRE9NTm9kZXNGb3JEb2N1
bWVudChEb2N1bWVudCopOworCQkjZW5kaWYKKyAgICB9OworCisgICAgLy8gUmV0cmlldmUgZnJv
bSBjYWNoZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYSBET00gb2JqZWN0LgorICAg
IHRlbXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3MgR2RvbURPTU9iaj4gaW5saW5lIHZvaWQqIGNh
Y2hlRE9NT2JqZWN0KERPTU9iaiogZG9tT2JqKQorICAgIHsKKyAgICAgICAgaWYgKCFkb21PYmop
CisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKyAgICAgICAgaWYg
KHZvaWQqIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvbU9iaikp
CisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBHRE9NT2JqZWN0KiByZXQgPSBuZXcg
R2RvbURPTU9iaihkb21PYmopOworCQlkb21PYmotPnJlZigpOworICAgICAgICByZXR1cm4gR0RP
TVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZG9tT2JqLCByZXQpOworICAgIH0KKwor
I2lmIEVOQUJMRShTVkcpCisgICAgLy8gUmV0cmlldmUgZnJvbSBjYWNoZSwgb3IgY3JlYXRlLCBh
IEdkb20gd3JhcHBlciBmb3IgYW4gU1ZHIERPTSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xhc3Mg
RE9NT2JqLCBjbGFzcyBHZG9tRE9NT2JqPiBpbmxpbmUgdm9pZCogY2FjaGVTVkdET01PYmplY3Qo
RE9NT2JqKiBkb21PYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpCisgICAgeworICAgICAgICBpZiAo
IWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLworICAg
ICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qo
ZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIEdET01PYmplY3QqIHJl
dCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaiwgY29udGV4dCk7CisJCWRvbU9iai0+cmVmKCk7Cisg
ICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChkb21PYmos
IHJldCk7CisgICAgfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEdkb21ET01CaW5kaW5nX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRl
SW50R2RvbURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Q
cml2YXRlSW50R2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdo
dG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNp
bmNsdWRlICJHRE9NT2JqZWN0LmgiCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTY2MSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tl
ciA8YWxwQGF0b2tlci5jb20+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMK
KyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFpbnQg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs
YWNlIC0gU3VpdGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFja2Fn
ZSBDb2RlR2VuZXJhdG9yR09iamVjdDsKKworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVzCitt
eSAkbGljZW5jZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xcQGxrY2wubmV0PgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215
ICVoZHJJbmNsdWRlcyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkgJWltcGxU
eXBlZGVmcyA9ICgpOworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBt
eSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2Rl
R2VuZXJhdG9yID0gc2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxlc3Mo
JHJlZmVyZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBm
aW5pc2gKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xh
c3MnIHN0cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNo
aWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7
CisKKyAgICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxu
IjsKKworICAgICRvYmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdyaXRlIGNo
YW5nZXMKKyAgICBteSAkZm5hbWUgPSAiR2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXplKCRuYW1l
KTsKKyAgICAkZm5hbWUgPX4gcy9fLy9nOworICAgICRvYmplY3QtPldyaXRlRGF0YSgkZm5hbWUp
OworfQorCisjIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVs
ZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
KworICAgICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5
cGUKK3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxp
emUoJGNsYXNzTmFtZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBteSAk
ZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURPTU9i
amVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9tIiAu
ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOworfQor
c3ViIEdldFBhcmVudEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAg
ICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdh
Y3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRh
Tm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2Jq
VHlwZSgkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7
Cit9CisKKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitz
dWIgY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsgdWNm
aXJzdCAkXyB9IHNwbGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7Cit9
CisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGRl
Y2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8p
KFtBLVpdKikoW0EtWl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOwor
ICAgICAgICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAg
ICBteSAkdCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRw
MSA/ICIke3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7Cisg
ICAgfWdlOworICAgICRzOworfQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAkbmFt
ZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdk
b20kbmFtZSI7Cit9CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAk
Y29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5h
bWUiOworfQorCitzdWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0Owor
ICAgICAgICBteSAkbmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUg
PSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7Cisg
ICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gIiIg
aWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0
IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcg
bG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOwor
ICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJl
dHVybiAiIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVybiAiUmFu
Z2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gIkdkb21DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCI7CisgICAgICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgY2hhciI7CisgICAgICAgIHJldHVybiAi
IiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIK
KyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsK
KyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiIGlmICR0eXBlIGVxICJFdmVu
dFRhcmdldCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAi
ZmxvYXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImJv
b2xlYW4iOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgInZv
aWQiOworCisgICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1cm5zIDEgaWYgd2UgbmVl
ZCB0byBjcmVhdGUgYSBnb2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSByZXR1cm4gcmVzdWx0Citz
dWIgSXNHRE9NQ2xhc3NUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkg
JG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJET01UaW1lU3RhbXAiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NU3Ry
aW5nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlw
ZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImJvb2xlYW4iOwor
ICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInNob3J0IjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImlu
dCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAw
IGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
UkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gMTsKK30KKworc3ViIEdldFBy
b3BHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFz
c05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0eXBlIGVxICJET01TdHJp
bmciOworICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0dXJu
ICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4g
ImRvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJib29sZWFuIiBpZiAk
dHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hhciI7
CisgICAgcmV0dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJpbnQi
IGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEgInVj
aGFyIjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0
dXJuICJpbnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAidWludCIgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25l
ZCBsb25nIjsKKyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0
IjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RP
IC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2JqZWN0IjsKK30KKworc3ViIEdl
dEdUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRD
bGFzc05hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05h
bWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUgKiIgaWYg
JHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKyAgICAgICAgcmV0dXJuICJjb25zdCBnY2hhciAqIiBp
ZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJnZmxvYXQgIiBpZiAkdHlw
ZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJlSG93
ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb3VibGUgIiBp
ZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICJnYm9vbGVhbiAiIGlmICR0eXBl
IGVxICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuICJnY2hhciAiIGlmICR0eXBlIGVxICJjaGFy
IjsKKyAgICAgICAgcmV0dXJuICJnbG9uZyAiIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAg
cmV0dXJuICJnc2hvcnQgIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gImd1
Y2hhciAiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAiZ3VpbnQgIiBpZiAk
dHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1cm4gImdpbnQgIiBpZiAkdHlwZSBlcSAi
aW50IjsKKyAgICAgICAgcmV0dXJuICJndWludCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQi
OworICAgICAgICByZXR1cm4gImd1bG9uZyAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsK
KyAgICAgICAgcmV0dXJuICJndWludDY0ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9u
ZyI7CisgICAgICAgIHJldHVybiAiZ3VzaG9ydCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9y
dCI7CisgICAgICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhY
WCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlmICR0
eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJbmNI
ZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBHZXRH
SW5jbHVkZUhkcigkdHlwZSk7CisgICAgaWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlmICgk
dHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICByZXR1cm4gIkdkb21FdmVudFRh
cmdldE5vZGUuaCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01PYmpl
Y3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2Vu
ZXJhdG9yLgorICAgICAgICAgICAgcmV0dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmgiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRyOwor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNIZHIK
K3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlw
ZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRy
fSA9IDE7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAg
ICAkaGRyUHJvcEluY2x1ZGVzeyJQcml2YXRlIi4kaGRyfSA9IDE7CisgICAgICAgICAgICAkaGRy
UHJvcEluY2x1ZGVzeyJQcml2YXRlSW50Ii4kaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9CisK
K30KKworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAk
aGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAk
aGRySW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0KKworfQorCitzdWIgYWRkSW5jQm9keQorewor
ICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsK
KyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0gMTsK
KyAgICB9Cit9CisKK3N1YiBHZXRQcml2Rm4KK3sKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNo
aWZ0OworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSBzaGlmdDsKKyAgICBteSAkcmVzID0gc2hp
ZnQ7CisgICAgbXkgJHBhcm0gPSBzaGlmdDsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAi
RXZlbnRUYXJnZXQiKSB7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6RXZlbnRUYXJnZXROb2Rl
ICogJHJlcyA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZXZl
bnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoc2VsZikpOyI7CisgICAgfQorICAgIHJldHVybiAi
V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqICRyZXMgPSAoJHtsY2FzZV9pZmFjZW5hbWV9X2dl
dF9wcml2YXRlKCRwYXJtKSk7IjsKK30KKworc3ViIHNraXBQcm9wVGVtcG9yYXJpbHkKK3sKKyAg
ICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRwcm9wX3R5cGUgPSBzaGlmdDsKKworICAgICMg
c2tpcCBNZWRpYUxpc3QKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAic3R5bGVzaGVldHM6Ok1lZGlh
TGlzdCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgI2lmICgkcHJvcF90eXBl
IGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAj
IHNraXAgQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQ1NT
VmFyaWFibGVzRGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
ICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBl
cSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisK
KyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9wX3R5
cGUgZXEgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7
CisgICAgI30KKworICAgICMgc2tpcCBFdmVudExpc3RlbmVyCisgICAgI2lmICgkcHJvcF90eXBl
IGVxICJFdmVudExpc3RlbmVyIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAg
ICMgc2tpcCBET01XaW5kb3cKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVdpbmRvdyIpIHsK
KyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgQ29uc3RydWN0b3JzICh3
aGF0ZXZlciB0aGV5IGFyZSkgZm9yIG5vdy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29uc3Ry
dWN0b3IkLykgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIGNhbnZhczJkLi4u
LgorICAgIGlmICgkcHJvcF90eXBlIGVxICJjdXN0b20iKSB7CisgICAgICAgIHJldHVybiAxOwor
ICAgIH0KKworICAgIGlmICgkcHJvcF90eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgcmV0dXJu
IDE7CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBUT0RPOiBTVkcKKyAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzUG9kVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0
ZWRUeXBlKCR0eXBlKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7
Cit9CisKK3N1YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uCit7CisgICAgbXkgJHR5cGUg
PSBzaGlmdDsKKworICAgICMgc2tpcHBlZCBvdXQgQ2FudmFzUGl4ZWxBcnJheSAtIHNlZSBKU0Nh
bnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwIGZvciB3aHkuCisgICAgcmV0dXJuIDEgaWYgJHR5cGUg
ZXEgIk5vZGUiIG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xsZWN0
aW9uIiBvciAkdHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3IgJHR5cGUgZXEgIlN0eWxlU2hlZXQiIG9y
ICR0eXBlIGVxICJDU1NSdWxlIiBvciAkdHlwZSBlcSAiQ1NTVmFsdWUiIG9yICR0eXBlIGVxICJF
dmVudCIgb3IgJHR5cGUgZXEgIkVsZW1lbnQiIG9yICR0eXBlIGVxICJUZXh0IjsKKyAgICByZXR1
cm4gMDsKK30KKworCisjIEdlbmVyYXRlIGhlYWRlciBhbmQgaW1wbAorc3ViIEdlbmVyYXRlCit7
CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisg
ICAgbXkgJGhhc0xlZ2FjeVBhcmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkxlZ2FjeVBhcmVudCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUtPnBh
cmVudHN9ID4gMDsKKyAgICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFz
UmVhbFBhcmVudDsKKyAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1l
KCRkYXRhTm9kZSk7CisgICAgbXkgJHBhcmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUo
JGRhdGFOb2RlKTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAg
ICBteSAkY2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAk
aGRyTmFtZSA9IEdldEhkck5hbWUoJGludGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhlIGRl
ZmF1bHQgaW1wbCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRs
aWNlbmNlVGVtcGxhdGUpOworICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJ
bmNsdWRlc3siR0RPTUJpbmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIkaGRyTmFt
ZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGUke2hkck5hbWV9LmgifSA9IDE7
CisKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01PYmplY3QiOworICAgIG15ICRw
YXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15ICRwYXJlbnRIZHJOYW1lID0g
Ikdkb21ET01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NOYW1lIG5lICJHT2JqZWN0IikK
KyAgICB7CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRDbGFz
c05hbWUsIDQpOworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9iamVj
dCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigkcGFy
ZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRyTmFt
ZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAg
ICB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICAg
ICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmVudEhkck5hbWV9LmgifSA9IDE7Cisg
ICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGUke3BhcmVudEhkck5hbWV9LmgifSA9IDE7Cisg
ICAgICAgICRoZHJJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAj
JGhkckluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAwOworICAgIH0KKwor
ICAgICMgVE9ETyAtIG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdp
c2UgdGhlCisgICAgIyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9HRE9NLCB0b28KKyAgICAkaW1w
bEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRWxlbWVudC5oIn0g
PSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7CisgICAgJGltcGxJbmNs
dWRlc3siQ1NTUnVsZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9u
LmgifSA9IDE7CisgICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcuaCJ9ID0gMTsKKyAgICAk
aW1wbEluY2x1ZGVzeyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRXZl
bnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhlbEFycmF5LmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siRE9NV2luZG93LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRl
c3siVGV4dC5oIn0gPSAxOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlvbmFsIG9y
IGluIGEgaGVhZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAkaGFja0Rl
Y2xzID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9N
KE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NWYWx1ZSogbm9kZSk7CisgICAg
Z3BvaW50ZXIgdG9HRE9NKENTU1J1bGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShFbGVt
ZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIG5vZGUpOworICAgIGdw
b2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogbm9kZSk7IAorICAgIC8vZ3BvaW50ZXIgdG9H
RE9NKFNWR1BhdGhTZWcqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oU3R5bGVTaGVldCog
bm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOyAKKyAg
ICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dE
T00oRXZlbnQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oQ2FudmFzUGl4ZWxBcnJheSog
bm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShET01XaW5kb3cqIG5vZGUpOyAKKyAgICBncG9p
bnRlciB0b0dET00oVGV4dCogbm9kZSk7IAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitFT0YK
KworICAgIHB1c2goQGNCb2R5LCAkaGFja0RlY2xzKTsKKworICAgICMgWFhYIFRPRE86IG1ha2Ug
dGhpcyBvcHRpb25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3YXku
CisgICAgbXkgJHN0cmluZ0NvbnZlcnQgPSA8PCAiRU9GIjsKK2NsYXNzIEdTdHJpbmdDb252ZXJ0
IHsKKyAgICBwdWJsaWM6CisgICAgY29uc3QgZ2NoYXIgKm1fc3RyOworICAgIEdTdHJpbmdDb252
ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMudXRmOCgp
LmRhdGEoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpLVVJMIGNvbnN0JiBzKSB7
IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJp
bmdDb252ZXJ0KGNvbnN0IEtKUzo6VVN0cmluZyAmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLlVU
RjhTdHJpbmcoKS5jX3N0cigpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21p
Y1N0cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsgfQorfTsKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJHN0cmluZ0NvbnZlcnQpOwor
CisgICAgcHVzaChAY0JvZHksICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4iKTsKKworICAgICMgR2V0
IGNvcnJlY3QgcGFzcy9zdG9yZSB0eXBlcyByZXNwZWN0aW5nIFBPRFR5cGUgZmxhZworICAgIG15
ICRwb2RUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9Owor
ICAgIG15ICRwYXNzVHlwZSA9ICRwb2RUeXBlID8gIkpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5
cGU+KiIgOiAiJGludGVyZmFjZU5hbWUqIjsKKworICAgIGlmICgke2ludGVyZmFjZU5hbWV9IGVx
ICJET01XaW5kb3ciIHx8ICghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9u
KCRpbnRlcmZhY2VOYW1lKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMg
ICAgcHVzaChAY0JvZHksICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMs
IEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiBvYmosIFNWR0VsZW1lbnQqIGNvbnRleHQp
XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVy
KCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgICBwdXNoKEBjQm9keSwgIktKUzo6SlNW
YWx1ZSogdG9KUyhLSlM6OkV4ZWNTdGF0ZSogZXhlYywgJHBhc3NUeXBlIG9iaiwgU1ZHRWxlbWVu
dCogY29udGV4dClcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNzVHlwZSBvYmopXG4iKTsKKyAgICAg
ICAgI30KKworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgICAgICAjaWYgKCRwb2RU
eXBlKSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9N
T2JqZWN0PEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+LCAkY2xhc3NOYW1lLCAke2NsYXNz
TmFtZX1Qcm90b3R5cGU+KGV4ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxz
aWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgewor
ICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBjYWNoZVNWR0RPTU9iamVjdDwk
aW1wbENsYXNzTmFtZSwgJGNsYXNzTmFtZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBv
YmosIGNvbnRleHQpO1xuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgcmV0dXJuIFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0PFdlYkNvcmU6OiRpbnRl
cmZhY2VOYW1lLCBHRE9NJGludGVyZmFjZU5hbWU+KG9iaik7XG4iKTsKKyAgICAgICAgI30KKyAg
ICAgICAgcHVzaChAY0JvZHksICJ9XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0g
LyogbmFtZXNwYWNlIFdlYkNvcmUgKi8gXG4iKTsKKyAgICBteSAkaW1wbENvbnRlbnQgPSAiIjsK
KworICAgICMgWFhYIFRPRE8gcHVzaChAY0JvZHksICJ1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTtc
blxuIik7CisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xuXG4iKTsKKyAgICBwdXNo
KEBjQm9keSwgIiNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5t
X3N0cilcbiIpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCisgICAg
QGhQcmVmaXggPSBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICAgICAgI3B1c2go
QGhQcmVmaXgsICJcbiIpOworCisgICAgIyBIZWFkZXIgZ3VhcmQKKyAgICAgICAgbXkgJGd1YXJk
ID0gIl9fIiAuICRjbGFzc05hbWUgLiAiX0hfXyI7CisKKyAgICBteSAkY2xzQ2FwcyA9IHN1YnN0
cihDbHNUb0dPYmpUeXBlKCRjbGFzc05hbWUpLCA1KTsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1l
ID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpOworICAgICNteSAkcGFyZW50
Q2xzQ2FwcyA9ICJHRE9NXyIgLiBDbHNUb0dPYmpUeXBlKCRwYXJlbnRJbnRlcmZhY2VOYW1lKTsK
KworICAgIEBoUHJlZml4R3VhcmQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJGd1YXJkCisjZGVmaW5l
ICRndWFyZAorRU9GCisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5fREVD
TFMKKworRU9GCisKKyAgICBwdXNoKEBoQm9keVByZSwgJGltcGxDb250ZW50KTsKKworICAgICRp
bXBsQ29udGVudCA9IDw8ICJFT0YiOworCisjZGVmaW5lIEdET01fVFlQRV8ke2Nsc0NhcHN9ICAg
ICAgICAgICAgKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NXyR7
Y2xzQ2Fwc30ob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2Jq
KSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfSkpCisjZGVmaW5lIEdET01fJHtj
bHNDYXBzfV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyks
ICBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJGNsYXNzTmFtZSlDbGFzcykKKyNkZWZpbmUgR0RPTV9J
U18ke2Nsc0NhcHN9KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9i
aiksIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9X0NM
QVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV8k
e2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9DTEFTUyhvYmopICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2Ns
YXNzTmFtZX1DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlICR7
Y2xhc3NOYW1lfVByaXZhdGU7CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICAke3BhcmVu
dENsYXNzTmFtZX0gcGFyZW50X2luc3RhbmNlOworCisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAq
cHJpdjsKK307CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFz
cyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNlbmFt
ZX1fZ2V0X3R5cGUgKHZvaWQpOworCitFT0YKKworICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRl
bnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X1BS
T1BfCisjZGVmaW5lICR7Z3VhcmR9X1BST1BfCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJvcFBy
ZSwgJGltcGxDb250ZW50KTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVDTFNc
biIpOworCisgICAgJGhkclByb3BJbmNsdWRleyJnbGliLW9iamVjdC5oIn0gPSAxOworICAgICRo
ZHJQcm9wSW5jbHVkZXsiUHJpdmF0ZUludCR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAk
aGRyUHJvcEluY2x1ZGV7IkdET01PYmplY3QuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7
IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0Yi
OworI2lmbmRlZiAke2d1YXJkfV9JTlRfCisjZGVmaW5lICR7Z3VhcmR9X0lOVF8KKyNpbmNsdWRl
ICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9Lmgi
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIK
K0VPRgorCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAgICBp
ZiAoJHtpbnRlcmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01h
bnVhbFRvSlNJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgJGltcGxD
b250ZW50ID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKCR7aW50ZXJmYWNlTmFtZX0qIG5vZGUpOworfSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAqLyAK
K0VPRgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVudCk7CisgICAgfQorICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICJHX0JFR0lOX0RFQ0xTXG4iKTsKKworICAgICNDbGFzcyBk
ZWNsYXJhdGlvbgorICAgICNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAg
ICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUge1xu
Iik7CisgICAgI30gZWxzZSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBH
RE9NJGludGVyZmFjZU5hbWUgOiBwdWJsaWMgJHBhcmVudEdJZmFjZU5hbWUge1xuIik7CisgICAg
ICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdHlwZWRlZiAkcGFyZW50R0lmYWNlTmFtZSBC
YXNlO1xuIik7CisgICAgI30KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHVibGljOlxuIik7
CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRfZ29ial90eXBlKCkgeyBy
ZXR1cm4gR0RPTV9UWVBFXyR7Y2xzQ2Fwc307IH1cbiIpOworCisgICAgbXkgJG5lZWRzU1ZHQ29u
dGV4dCA9IDA7CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIg
ICAgR0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+
IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6ICIi
KSAuICIpO1xuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVybmFs
LCAiICAgIHZpcnR1YWwgfkdET00kaW50ZXJmYWNlTmFtZSgpO1xuIikgaWYgKCEkaGFzUGFyZW50
IG9yICRpbnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpIG9yICRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciOworCisgICAgaWYgKCEkaGFzUGFyZW50IHx8ICgkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NV2luZG93IikpIHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIGlt
cGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxlbWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dDtcbiIpOworICAgICAgICAjICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5
cGU+ID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29u
dGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9p
bXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAg
IFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1c
blxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsK
KyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50
PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAg
IFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNlIHsK
KyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFj
ZU5hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cblxuIik7CisgICAg
ICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+
IG1faW1wbDtcbiIpOworICAgICAgICAjfQorICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29udmVydGVyIn0pIHsKKyAgICAgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSogaW1wbCgpIGNv
bnN0XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB7XG4iKTsKKyAgICAg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNv
cmU6OiRpbnRlcmZhY2VOYW1lKj4oQmFzZTo6aW1wbCgpKTtcbiIpOworICAgICAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIH1cbiIpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFs
LCAifTtcbiIpOworCisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7
aW50ZXJmYWNlTmFtZX06OkdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRp
bnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCog
Y29udGV4dCIgOiAiIikgLiAiKVxuIik7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01X
aW5kb3ciKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDptX2ltcGwoaW1wbClcbiIpOwor
ICAgIH0gZWxzaWYgKCRoYXNQYXJlbnQpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAk
cGFyZW50R0lmYWNlTmFtZShpbXBsIiAuICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29u
dGV4dCIgOiAiIikgLiAiKVxuIikgaWYgKCRpbnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ciKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRHSWZhY2VO
YW1lKClcbiIpIDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBtX2NvbnRleHQoY29udGV4
dClcbiIpIGlmICRuZWVkc1NWR0NvbnRleHQ7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwg
bV9pbXBsKGltcGwpXG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAg
IHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKworICAgICMgRGVzdHJ1Y3RvcgorICAgIGlmICghJGhh
c1BhcmVudCBvciAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAgIHB1
c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxu
Iik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisKKyAgICAgICAgcHVzaChAY0JvZHks
ICIgICAgbV9pbXBsLmdldCgpLT5kZXJlZigpO1xuIik7CisgICAgICAgIGlmICgkaW50ZXJmYWNl
TmFtZSBlcSAiTm9kZSIpIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6
OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG1faW1wbC0+
ZG9jdW1lbnQoKSwgbV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAgICAgIyAgICBteSAkYW5pbWF0ZWRUeXBl
ID0gJGltcGxDbGFzc05hbWU7CisgICAgICAgICAgICAjICAgICRhbmltYXRlZFR5cGUgPX4gcy9T
VkcvU1ZHQW5pbWF0ZWQvOworCisgICAgICAgICAgICAjICAgICMgU3BlY2lhbCBjYXNlIGZvciBK
U1NWR051bWJlcgorICAgICAgICAgICAgIyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5p
bWF0ZWRUeXBlKCRhbmltYXRlZFR5cGUpIGFuZCAkcG9kVHlwZSBuZSAiZmxvYXQiKSB7CisgICAg
ICAgICAgICAjICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBKU1NWR0R5bmFtaWNQT0RUeXBlV3Jh
cHBlckNhY2hlPCRwb2RUeXBlLCAkYW5pbWF0ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlcihtX2ltcGwu
Z2V0KCkpO1xuIik7CisgICAgICAgICAgICAjICAgIH0KKyAgICAgICAgICAgICN9CisgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZv
cmdldERPTU9iamVjdChtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBw
dXNoKEBjQm9keSwgIlxufVxuXG4iKTsKKyAgICB9CisKKyAgICAjIERvY3VtZW50IG5lZWRzIGEg
c3BlY2lhbCBkZXN0cnVjdG9yIGJlY2F1c2UgaXQncyBhIHNwZWNpYWwgY2FzZSBmb3IgY2FjaGlu
Zy4gSXQgbmVlZHMKKyAgICAjIGl0cyBvd24gc3BlY2lhbCBoYW5kbGluZyByYXRoZXIgdGhhbiBy
ZWx5aW5nIG9uIHRoZSBjYWNoaW5nIHRoYXQgTm9kZSBub3JtYWxseSBkb2VzLgorICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RP
TSR7aW50ZXJmYWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1
c2goQGNCb2R5LCAie1xuICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0
RE9NT2JqZWN0KHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihpbXBsKCkp
KTtcbn1cblxuIik7CisgICAgfQorCisgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1l
fS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsK
KyAgICAkaW1wbEluY2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAkaW1wbFR5cGVk
ZWZzeyIkY2xhc3NOYW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1lfUNs
YXNzIn0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0
ZGVmaW5lcy5oPgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0
aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0
aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiIC8qIHl1a2s6IFRPRE8g
LSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiIC8qIHl1
a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNHcmFkaWVu
dC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2Fu
dmFzU3R5bGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1
ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlz
IG9wdGlvbmFsICovCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIgLyogeXVrazog
VE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkdkb21FdmVudFRhcmdldE5v
ZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIlBy
aXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0
aW9uYWwgb24gRXZlbnRUYXJnZXQqLworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKKyNp
bmNsdWRlICIke2hkck5hbWV9LmgiCisjaW5jbHVkZSAiUHJpdmF0ZSR7aGRyTmFtZX0uaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50JHtoZHJOYW1lfS5oIgorI2luY2x1ZGUgIiR7aGRyTmFtZX1wcm9w
cy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
I2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgInVzdHJpbmcuaCIKKyNpbmNsdWRl
ICJLVVJMLmgiCisKKyNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRXZl
bnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRl
ICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJTdHls
ZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFs
LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVBy
aXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworJHto
YWNrRGVjbHN9CisKK0dfQkVHSU5fREVDTFMKKworJHtzdHJpbmdDb252ZXJ0fQorCitHX0RFRklO
RV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAke3BhcmVudEdPYmpUeXBl
fSk7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0
cikKKworLyoKK3N0cnVjdCBfJHtjbGFzc05hbWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29y
ZTo6JHtpbnRlcmZhY2VOYW1lfSAqaXRlbTsKK307ICAKKworI2RlZmluZSBHRE9NXyR7Y2xzQ2Fw
c31fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBH
RE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9UHJpdmF0ZSkpCisqLworR19FTkRfREVD
TFMKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9w
cml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCkKK3sKK0VPRgorCisgICAgcHVzaChAY0JvZHlQ
cml2LCAkaW1wbENvbnRlbnQpOworCisgICAgaWYgKCgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2lu
ZG93IikpIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisgICAgICAgIHJldHVy
biBOVUxMOyAvKiBYWFggVE9ETyAqLworRU9GCisgICAgfSBlbHNlIHsKKyAgICAgICAgJGltcGxD
b250ZW50ID0gPDwgIkVPRiI7CisgICAgR0RPTSR7aW50ZXJmYWNlTmFtZX0gKnJlczsKKyAgICBy
ZXMgPSBzdGF0aWNfY2FzdDxHRE9NJHtpbnRlcmZhY2VOYW1lfSo+KGdkb21fZG9tX29iamVjdF9n
ZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVxdWVzdCkpKTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KHJlcy0+aW1wbCgpKTsKK0VPRgorICAg
IH0KKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAjIFByb3BlcnRp
ZXMKKyAgICBteSAkZnVuY3Rpb25OYW1lUHJlZml4ID0gJGxjYXNlX2lmYWNlbmFtZTsgCisgICAg
U0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9
KSB7CisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5uYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAg
ICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworICAgICAgICBteSAkY3Vz
dG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
In07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7
CisKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7
CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgYWRkUHJvcEluY0hkcigkcHJvcF90eXBlKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQ
cm9wLCAiV0VCS0lUX0FQSSAkdHlwZVxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3BfZ2V0
XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworICAgICAgICAjcHVzaChA
aEJvZHlQcm9wLCAiV0VCS0lUX0FQSSB2b2lkXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJv
cF9zZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZywgJHR5cGUiIC4gInZhbHVlKTtcblxu
Iik7CisgICAgfQorCisgICAgIyBQcm9wZXJ0aWVzCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVP
RiI7Cit9CisKK0dfQkVHSU5fREVDTFMKKworZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAg
ICBMQVNUX1NJR05BTAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdO
QUxdID0geyAwLCB9OworCitlbnVtIHsKKyAgICBQUk9QXzAsCitFT0YKKyAgICBwdXNoKEBjQm9k
eVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICBteSBAdHh0X2luc3RhbGxfcHJvcHMgPSAoKTsK
KyAgICBteSBAdHh0X3NldF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfZ2V0X3Byb3BzID0gKCk7
CisKKyAgICBteSAkcHJpdl9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNlTmFtZSwgJHtsY2FzZV9p
ZmFjZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworCisgICAgbXkgJHR4dF9nZXRfcHJvcCA9IDw8
ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm4o
R09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAgIEdW
YWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQor
eworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAg
ICRwcml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0
X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9G
IjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuKEdPYmpl
Y3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBH
VmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBwc3BlYykK
K3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsKKyAg
ICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0X3Nl
dF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisKKyAgICBTS0lQRU5VTTogZm9yZWFjaCBteSAkYXR0
cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHByb3BfbmFt
ZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgbXkgJHNldHByb3BfbmFt
ZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9wX25hbWUpOworICAgICAgICBt
eSAkZ2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHByb3BfbmFt
ZSk7CisKKyAgICAgICAgbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsKKyAg
ICAgICAgbXkgJHByb3BDYXBzID0gdWMoJHByb3BOYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlw
ZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRH
VHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BD
YXBzfSI7CisgICAgICAgIG15ICR7cHJvcF9ndHlwZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5cGUp
OworICAgICAgICBpZiAoJHByb3BfZ3R5cGUgZXEgImV2ZW50X3RhcmdldCIpIHsKKyAgICAgICAg
ICAgICRwcm9wX2d0eXBlID0gImV2ZW50X3RhcmdldF9ub2RlIjsKKyAgICAgICAgfQorICAgICAg
ICBteSAke3Byb3BHVHlwZX0gPSB1YygkcHJvcF9ndHlwZSk7CisgICAgICAgIG15ICRsY2FzZV9n
dHlwZW5hbWUgPSAiZ2RvbV8iIC4gJHByb3BfZ3R5cGU7CisKKyAgICAgICAgbXkgJGN1c3RvbSA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9Owor
CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAg
fQorICAgICAgICAgICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworICAg
ICAgICBpZiAoc2tpcFByb3BUZW1wb3JhcmlseSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAgICAg
ICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBw
dXNoKEBjQm9keVByaXYsICIgICAgJHtwcm9wRW51bX0sXG4iKTsKKworICAgICAgICBteSAkZ3R5
cGUgPSBHZXRQcm9wR1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICRncGFyYW1mbGFnID0g
IkdfUEFSQU1fUkVBREFCTEUiOworICAgICAgICBteSAkd3JpdGVhYmxlID0gJGF0dHJpYnV0ZS0+
dHlwZSAhfiAvXnJlYWRvbmx5LzsKKyAgICAgICAgbXkgJGNvbnN0ID0gInJlYWQtb25seSAiOwor
ICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAkY3VzdG9tKSB7CisgICAgICAgICAgICAkY29uc3Qg
PSAicmVhZC1vbmx5IChkdWUgdG8gY3VzdG9tIGZ1bmN0aW9ucyBuZWVkZWQgaW4gZ2RvbXdlYmtp
dCkiOworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
JHdyaXRlYWJsZSAmJiAhJGN1c3RvbSkgeworICAgICAgICAgICAgJGdwYXJhbWZsYWcgPSAiR19Q
QVJBTV9SRUFEV1JJVEUiOworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtd3JpdGUgIjsKKyAg
ICAgICAgfQorCisgICAgICAgIG15ICRfZ3R5cGUgPSAkZ3R5cGU7CisgICAgICAgIGlmICgkZ3R5
cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICRfZ3R5cGUgPSAidWludCI7ICMgeXVrLgor
ICAgICAgICB9CisgICAgICAgIG15ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ19rbGFzcywgJHtwcm9wRW51bX0sIAor
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjXyR7X2d0eXBlfSAoIiR7cHJvcE5hbWV9IiwgLyogbmFt
ZSAqLworICAgICAgICAgICAgICAgICIke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IiwgLyog
c2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAiJHtjb25zdH0gJHt0eXBlfSAk
e2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IiwgLyogbG9uZ2VyICovCitFT0YKKyAgICAgICAg
cHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSAiLyogVE9ETyEgJGd0eXBlICovXG4iOworCisgICAgICAgIGlmICgk
d3JpdGVhYmxlKSB7CisKKyAgICAgICAgICAgIG15ICRvayA9IDA7CisgICAgICAgICAgICBteSAk
Y29udmVydF9mbiA9ICIiOworICAgICAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgewor
ICAgICAgICAgICAgICAgICRjb252ZXJ0X2ZuID0gIldlYkNvcmU6OlN0cmluZyI7CisgICAgICAg
ICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2lmICgkZ3R5
cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0g
bmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8g
aWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJmbG9hdCIp
IHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBl
IGVxICJkb3VibGUiKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUg
IkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRl
YSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7
CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAidWxvbmciKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRP
TVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3
aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAg
ICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFgg
VE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHll
dAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAgICAgICAgICAgICAkb2sg
PSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAg
ICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIi
KSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlw
ZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgIyBYWFggVE9ETyAtIHNraXAgTG9jYXRpb24KKyAgICAgICAgICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiTG9jYXRpb24iKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMDsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCRvaykgeworICAgICAgICAgICAgICAg
IHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpF
eGNlcHRpb25Db2RlIGVjID0gMDtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9u
c307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgZ3NlbGYt
PnNldCR7c2V0cHJvcF9uYW1lX2ZufSgke2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRndHlwZSAo
dmFsdWUpKSIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwgZWMi
KSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIHB1
c2goQHR4dF9zZXRfcHJvcHMsICIpO1xuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRf
c2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BF
bnVtfTpcbiAgICB7XG4iKTsKKworICAgICAgICBteSAkZXhjZXB0aW9uID0gIiI7CisgICAgICAg
IGlmIChAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAkZXhj
ZXB0aW9uID0gImVjIjsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgIH0KKworICAgICAg
ICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkcG9zdF9jb252ZXJ0X2ZuID0gIiI7
CisgICAgICAgIG15ICRkb25lID0gMDsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikg
eworICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiX0dfR0VUX1VURjgoIjsKKyAgICAgICAgICAg
ICRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCRndHlw
ZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgIyRjb252ZXJ0X2ZuID0gIldURjo6Z2V0UHRy
KCR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZSgiOworICAgICAgICAgICAgIyRjb252ZXJ0
X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNlX2d0eXBlbmFtZX0sICJnc2Vs
ZiIsICJzZWxmIik7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAiJHtsY2FzZV9ndHlwZW5h
bWV9X2dldF9wcml2YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PigiOworICAg
ICAgICAgICAgIyRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAgICAgICAgICBteSAkZG9tb2Jq
VHlwZSA9ICJHRE9NIi4kcHJvcF90eXBlOworICAgICAgICAgICAgJHR4dF9nZXRfcHJvcCA9IDw8
ICJFT0YiOworICAgICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4gcHRyID0g
Z3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pOworICAgICAgICBnX3ZhbHVl
X3NldF9vYmplY3QgKHZhbHVlLCBXZWJDb3JlOjp0b0dET00ocHRyLmdldCgpKSk7CitFT0YKKyAg
ICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworICAgICAgICAg
ICAgJGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkZG9uZSkgeworICAgICAg
ICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1ZV9zZXRfJF9ndHlwZSAo
dmFsdWUsICR7Y29udmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9u
fSkke3Bvc3RfY29udmVydF9mbn0pO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0
eHRfZ2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKworICAgICAgICAjIGlz
IHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/Pz8KKyAgICAgICAgIyBjYW4gaXQgYmUgZG9uZSB3
aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0eXBlCisgICAgICAgICMgYW5kIGdldHRpbmcgYSBm
ZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUgbWluLW1heCBmb3IgZXhhbXBsZT8KKyAgICAgICAgaWYg
KCRndHlwZSBlcSAiaW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAi
RU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklOVCwgICAgICAgIC8qIG1pbiAqLworICAgICAg
ICAgICAgICAgIEdfTUFYSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAg
LyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIp
IHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAg
ICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgImZsb2F0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsK
KyAgICAgICAgICAgICAgICBHX01JTkZMT0FULCAgICAgICAgLyogbWluICovCisgICAgICAgICAg
ICAgICAgR19NQVhGTE9BVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8q
IGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsK
KyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAg
ICAgR19NSU5ET1VCTEUsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWERP
VUJMRSwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDY0LCAvKiBtYXggKi8KKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8
ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAg
ICAgICBHX01BWFVMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
ZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAg
ICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAg
R19NSU5MT05HLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhMT05HLCAv
KiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5z
dGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAq
LworICAgICAgICAgICAgICAgIEdfTUFYVUlOVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAg
MCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEg
InVzaG9ydCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7Cisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFY
VUlOVDE2LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAg
ICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOSU5U
OCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5UOCwgLyogbWF4ICov
CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9
IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJv
cCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAg
ICAgICAgICAgICBHX01BWFVJTlQ4LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAg
ICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAic3RyaW5n
IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAg
ICAgICAgICAiIiwgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAib2JqZWN0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsK
KyAgICAgICAgICAgICAgICBHRE9NX1RZUEVfJHtwcm9wR1R5cGV9LCAvKiBnb2JqZWN0IHR5cGUg
Ki8KK0VPRgorICAgICAgICB9CisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0
X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7Cisg
ICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKSR7Z3BhcmFtZmxhZ30pKTsgICAgICAgICAgICAg
ICAgICAgCisKK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0
YWxsX3Byb3ApOworCisKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keVByaXYsICJ9O1xuXG4iKTsK
KworCisgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgIGRlZmF1bHQ6CisgICAgICAg
IEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVj
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9w
cywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICAkdHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVj
dCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CitFT0YKKyAgICBw
dXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X2dl
dF9wcm9wcyA9IDw8ICJFT0YiOworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIHNlbGYtPmFn
ZSA9IGdfdmFsdWVfZ2V0X2ludCAodmFsdWUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2Ug
UFJPUF9BR0U6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgc2VsZi0+YWdlKTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgKyAgIGdfdmFsdWVfaW5pdCgmcGFyYW1zWzBdLCBHX1RZ
UEVfRlJPTV9JTlNUQU5DRShvYmplY3QpKTsKKyAgICAgICAgKyAgIGdfdmFsdWVfc2V0X2luc3Rh
bmNlKCZwYXJhbXNbMF0sIChncG9pbnRlcilvYmplY3QpOworCitFT0YKKworICAgICMgVE9ETzog
d29yayBvdXQgaWYgaXQncyBhcHByb3ByaWF0ZSB0byBzcGxpdCB0aGlzIGludG8gbWFueSBkaWZm
ZXJlbnQKKyAgICAjIHNpZ25hbHMgZS5nLiAiY2xpY2siIGV0Yy4KKyAgICBteSAkdHh0X2luc3Rh
bGxfc2lnbmFscyA9ICIiOworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ci
KSB7CisgICAgICAgICR0eHRfaW5zdGFsbF9zaWduYWxzID0gPDwgIkVPRiI7CisgICAgZXZlbnRf
c2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisg
ICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisgICAgICAgIChHU2lnbmFs
RmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgMCwK
KyAgICAgICAgTlVMTCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9J
RF9fT0JKRUNUX0JPT0xFQU4sCisgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9N
X1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKK0VPRgorICAgIH0KKworICAgICRpbXBsQ29u
dGVudCA9IDw8ICJFT0YiOworCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxp
emUoR09iamVjdCogb2JqZWN0KQoreworICAgIC8qJHtjbGFzc05hbWV9KiByZXF1ZXN0ID0gR0RP
TV8ke2Nsc0NhcHN9KG9iamVjdCk7Ki8KKyAgICAvKiR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYg
PSByZXF1ZXN0LT5wcml2OyovCisgICAgCisgICAgLypHT2JqZWN0Q2xhc3MgKnBhcmVudF9jbGFz
cyA9IGdfdHlwZV9jbGFzc19wZWVrIChnX3R5cGVfcGVla19wYXJlbnQgKCR7cGFyZW50R09ialR5
cGV9KSk7Ki8KKworICAgIC8qIEZyZWUgYW55IG1lbW9yeSBvciBjbG9zZSBhbnkgZmlsZXMgKi8g
CisKKyAgICAvKnBhcmVudF9jbGFzcy0+IGZpbmFsaXplIChvYmplY3QpOyovCisKKyAgICBHX09C
SkVDVF9DTEFTUygke2xjYXNlX2lmYWNlbmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2Jq
ZWN0KTsKK30KKworQHR4dF9zZXRfcHJvcHMKKworQHR4dF9nZXRfcHJvcHMKKworc3RhdGljIHZv
aWQgJHtsY2FzZV9pZmFjZW5hbWV9X2NsYXNzX2luaXQoJHtjbGFzc05hbWV9Q2xhc3MqIHJlcXVl
c3RDbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MgKmdfa2xhc3MgPSBHX09CSkVDVF9DTEFTUyAo
cmVxdWVzdENsYXNzKTsKKyAgICBnX2tsYXNzLT5maW5hbGl6ZSA9ICR7bGNhc2VfaWZhY2VuYW1l
fV9maW5hbGl6ZTsKKyAgICBnX2tsYXNzLT5zZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFt
ZX1fX3NldF9wcm9wZXJ0eV9mbjsKKyAgICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAke2xjYXNl
X2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0eV9mbjsKKyAgICAKK0B0eHRfaW5zdGFsbF9wcm9wcwor
CiskdHh0X2luc3RhbGxfc2lnbmFscworCisgICAgLypnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUo
cmVxdWVzdENsYXNzLCBzaXplb2YoJHtjbGFzc05hbWV9UHJpdmF0ZSkpOyovCit9CisKK3N0YXRp
YyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9pbml0KCR7Y2xhc3NOYW1lfSogcmVxdWVzdCkKK3sK
KyAgICAvKiR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BS
SVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworRU9G
CisKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbEluY2x1
ZGVzeyJQcml2YXRlSW50R2RvbSR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbENv
bnRlbnQgPSA8PCAiRU9GIjsKKworI2lmbmRlZiAke2d1YXJkfV9QUklWXworI2RlZmluZSAke2d1
YXJkfV9QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiJHtwYXJlbnRI
ZHJOYW1lfS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKy8qI2luY2x1ZGUgIlByaXZhdGUk
e3BhcmVudEhkck5hbWV9LmgiKi8KKy8qR19CRUdJTl9ERUNMUyovCisvKmNsYXNzIFdlYkNvcmU6
OiR7aW50ZXJmYWNlTmFtZX07Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YK
KworICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworLy9uYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdET00ke2ludGVy
ZmFjZU5hbWV9IDogcHVibGljICR7cGFyZW50R0lmYWNlTmFtZX0geworCitwdWJsaWM6CisgICAg
R0RPTSR7aW50ZXJmYWNlTmFtZX0oV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCkgOiAk
cGFyZW50R0lmYWNlTmFtZX0oaW1wbCkKKyAgICB7IGltcGwtPnJlZigpOyB9CisgICAgfkdET00k
e2ludGVyZmFjZU5hbWV9KCkgeyBtX2ltcGwtPmRlcmVmKCk7IH0KKworICAgIFdlYkNvcmU6OiR7
aW50ZXJmYWNlTmFtZX0qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGw7IH0KKworCitwcml2
YXRlOgorICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKm1faW1wbDsKK307CisKK0VPRgor
CisgICAgICAgICNwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENv
bnRlbnQgPSA8PCAiRU9GIjsKKy8vfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCit0eXBlZGVmIHN0
cnVjdCBfJHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsKKworV2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfSAqCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1
ZXN0KTsKKworLypHX0VORF9ERUNMUyovCisKKyNlbmRpZiAvKiAke2d1YXJkfV9QUklWXyAqLwor
CitFT0YKKworICAgICNyZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFj
ZU5hbWV9Kj4oKFdlYkNvcmU6Ok5vZGUqKShyZXMpKTsKKyAgICAgICAgcHVzaChAaEJvZHlQcml2
LCAkaW1wbENvbnRlbnQpOworCisgICAgICAgICNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NT2Jq
ZWN0IikgeworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dl
bmVyYXRvci4KKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJKU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIn0gPSAxOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgIyAgICAkaW1wbElu
Y2x1ZGVzeyRpbmNsdWRlSGRyfSA9IDE7CisgICAgICAgICN9CisgICAgICAgICRpbXBsSW5jbHVk
ZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siUHJp
dmF0ZUdkb21ET01PYmplY3QuaCJ9ID0gMTsKKworICAgICAgICBMT09QOiBmb3JlYWNoIG15ICRm
dW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgICAgICNteSAkZnVu
Y3Rpb25OYW1lID0gZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfbmFt
ZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRmbl9z
aWdfdHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICAgICAgICAgIG15
ICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkgLiAi
XyIgLiBkZWNhbWVsaXplKCRmbl9zaWdfbmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldHVy
blR5cGUgPSBHZXRHVHlwZSgkZm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIG15ICRyZXRf
aXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAg
ICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKworICAgICAgICAg
ICAgICAgIG15ICRjYWxsX2ltcGxfcGFyYW1zID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGdk
b21fZm5fcHJlZml4ID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGZuX3NpZ190eXBlKTsKKworICAg
ICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJh
dGlvbl9zZXRfcHJvcGVydHkiKSB7CisgICAgICAgICAgICAgICAgICAgICMgcmVzZXJ2ZWQgbmFt
ZSBjbGFzaCBpbiBnbGliIQorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdk
b21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3NldF9jc3NfcHJvcGVydHkiOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIENvbXBhcmVIb3cgZnVuY3Rpb25zIGZv
ciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9yYW5nZV9j
b21wYXJlX2JvdW5kYXJ5X3BvaW50cyIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJv
ZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rp
b25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8q
IFhYWCBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAq
L1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZv
ciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgZXEgIkdkb21TVkdEb2N1bWVu
dCAqIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86
IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGlu
ZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAg
ICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICAjIFhYWCBza2lwIHNvbWUgY3VzdG9tIGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAg
ICAgICAgbXkgJGlzX2N1c3RvbV9mbiA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUg
ZXEgImdkb21faHRtbF9jb2xsZWN0aW9uX2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xsZWN0aW9uX25hbWVkX2l0ZW0iIHx8CisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fZWxlbWVudF9zZXRfYXR0cmli
dXRlIikgeworICAgICAgICAgICAgICAgICAgICAkaXNfY3VzdG9tX2ZuID0gMDsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYgCisgICAgICAg
ICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9uZXh0X25v
ZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVf
YXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAi
Z2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9k
ZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93
YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1l
IG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmciICYm
IAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2Vy
X25leHRfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUg
Imdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9ub2RlIiAmJiAKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX3ByZXZp
b3VzX25vZGUiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFgg
VE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24g
JHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0g
KEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFy
YW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNCb2R5
KCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNIZHIoJHBhcmFtSURM
VHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFy
YW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxp
emUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25TaWcgLj0g
IiwgJHBhcmFtVHlwZSRwYXJhbU5hbWUiOworCisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJh
bV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRwYXJhbUlETFR5cGUgbmUgIkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkcGFyYW1JRExUeXBlIG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7cGFyYW1J
RExUeXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IlByaXZhdGVHZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7ICMgdGhp
cyBpc24ndCBzdHJpY3RseSBuZWNlc3NhcnkgYnV0IG9uZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQg
ZmlsZXMgbmVlZGVkIGl0IHNvLi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5
cGUgfHwgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAkcGFyYW1OYW1lID0gIl9nXyIgLiAkcGFyYW1OYW1lOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkY2FsbF9pbXBsX3BhcmFtcykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGFkZEluY0hkcigkZm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Ns
c190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9z
aWdfdHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYg
KCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0
X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBl
IGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggPz8/
PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9
IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7Zm5f
c2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7IlByaXZhdGVHZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siR2RvbSR7Zm5fc2lnX3R5cGV9Lmgi
fSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5v
dworICAgICAgICAgICAgICAgICMgYnV0IHNraXAgZnJvbSBoZXJlIHRvIGFsbG93IHNvbWUgaGVh
ZGVycyB0byBiZSBjcmVhdGVkCisgICAgICAgICAgICAgICAgIyBmb3IgYSBzdWNjZXNzZnVsIGNv
bXBpbGUuCisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYKKyAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVm
b3JlIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVf
cmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAi
Z2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJv
ZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5c
biIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1
c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAg
ICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAk
X3JldHVyblR5cGUgPSAkcmV0dXJuVHlwZTsKKyAgICAgICAgICAgICAgICBteSAkZG9tb2JqVHlw
ZSA9ICJHRE9NIi4kZm5fc2lnX3R5cGU7CisgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlw
ZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVx
ICdnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2NvbnRleHQnKSB7CisgICAgICAgICAgICAg
ICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAgICRfcmV0dXJuVHlwZSA9ICdH
ZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dCAqJzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9i
alR5cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRleHQnOworICAgICAgICAgICAgICAgICAg
ICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQnOworICAg
ICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cu
ICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9i
amVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQorICAgICAgICAgICAg
ICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBpZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcp
IHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAg
JF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgKic7CisgICAgICAg
ICAgICAgICAgICAgICRkb21vYmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQn
OworICAgICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVu
ZGVyaW5nX2NvbnRleHQyZCc7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFgg
LSB0b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMg
bXVzdCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5k
IG91dCBob3cpCisgICAgICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8g
Y3JlYXRlIGEgR0RPTURvbU9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgIAorCisgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJXRUJLSVRfQVBJICRfcmV0
dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0
aW9uU2lnKVxue1xuIik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZv
aWQiKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVm
YXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwgKHRoaXosIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAo
dGhpeik7XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9ICgke2xjYXNlX2lm
YWNlbmFtZX1fZ2V0X3ByaXZhdGUodGhpeikpO1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRy
ZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiBy
ZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtcbiIpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdf
cmV0dXJuX2lmX2ZhaWwgKGl0ZW0pO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7Cisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJh
dG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAg
IG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAg
ICMgICAgJGltcGxUeXBlZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoISRwYXJhbVR5cGVJc1ByaW1p
dGl2ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lk
IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9w
ZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKyAgICAg
ICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7Cisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBl
KTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFt
LT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJ
c0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgk
cGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29y
ZTo6U3RyaW5nKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFyYW1J
RExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNwdXNoKEBjQm9keSwgIiAgICBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9PiAqIF9nXyR7cGFyYW1OYW1lfSA9
IFdURjo6UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSk+O1xu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnRU
YXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siUHJp
dmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBfZ18ke3Bh
cmFtTmFtZX0gPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUqPihnZG9tX2V2
ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBfZ18ke3BhcmFtTmFtZX0g
PSAoJHtwYXJhbV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0dXJu
VHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RP
OiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKF9nXyR7cGFyYW1OYW1l
fSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoX2df
JHtwYXJhbU5hbWV9KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJHJldHVyblBhcmFtTmFtZSA9ICJf
Z18iLiRwYXJhbU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJuIn07
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbiA9ICIiOwor
ICAgICAgICAgICAgICAgIG15ICRhc3NpZ25fcHJlID0gIiI7CisgICAgICAgICAgICAgICAgbXkg
JGFzc2lnbl9wb3N0ID0gIiI7CisgICAgICAgICAgICAgICAgJGdfcmVzID0gMDsKKyAgICAgICAg
ICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICRhc3NpZ24gPSAiUGFzc1JlZlB0cjxXZWJDb3JlOjoke2ZuX3NpZ190eXBl
fT4gZ19yZXMgPSAiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wcmUgPSAiV1RG
OjpnZXRQdHIoIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcG9zdCA9ICIpIjsK
KyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRh
c3NpZ24gPSAiJHtfcmV0dXJuVHlwZX0gcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBteSAkZXhjZXB0aW9ucyA9ICIiOwor
ICAgICAgICAgICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR7Y2FsbF9pbXBsX3BhcmFt
c30gbmUgIiIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRleGNlcHRpb25zID0gIiwgZWMi
OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAg
JGV4Y2VwdGlvbnMgPSAiZWMiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgIyBuZWVkIHRoaXMgZm9yIGluY2x1ZGluZyAuLi4gX3Nv
bWV0aGluZ18gLSBmb3IgdGhlIGNsYXNzIGFyZ3MKKyAgICAgICAgICAgICAgICAjaWYgKCRyZXRf
aXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7Imdkb20k
e2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICN9CisgICAgICAgICAgICAg
ICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiIHx8CisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9pbnNlcnRfYmVmb3Jl
IiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfcmVw
bGFjZV9jaGlsZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2Rv
bV9ub2RlX3JlbW92ZV9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGN1c3RvbV9n
ZG9tX25vZGVfYXBwZW5kX2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0tPiR7
Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KTsKKyAgICBpZiAo
b2spCisgICAgeworICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19y
ZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKCRyZXR1cm5QYXJhbU5hbWUpKTsgCisgICAgICAg
IHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiBOVUxMOworRU9GCisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOworICAg
ICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IiAmJgorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICdnZG9tX2RvY3VtZW50X2dldF9jc3Nf
Y2FudmFzX2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IC8qIFhYWCBUT0RPIC0gZ2V0IGNhbnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7
Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKyAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01TdHJp
bmciKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufV9H
X0dFVF9VVEY4KGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2Vw
dGlvbnN9KSk7XG4iICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCRnX3JlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGdfcmVzID0gIiR7
YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJh
bXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KSIgOworICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHthc3Np
Z259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30k
e2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0pO1xuIiApOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAi
dm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJGZu
X3NpZ190eXBlIG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9
PihXZWJDb3JlOjp0b0dET00oZ19yZXMuZ2V0KCkpKTsgXG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAo
JGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBjYW52YXMg
b2JqZWN0ICovXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIlxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7Cisg
ICAgICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7
CisgICAgcHVzaChAY0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisKKyAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9cbiIpOworCisgICAgcHVzaChA
aEJvZHksICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAvKiAk
Z3VhcmQgKi9cbiIpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19FTkRfREVDTFNcblxuIik7
CisgICAgcHVzaChAaEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3VhcmR9X1BST1BfKi9cbiIpOwor
fQorCisjIEludGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2JqZWN0
LCAkbmFtZSkgPSBAXzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBteSAk
aGRyRk5hbWVJbnRlcm5hbCA9ICIkb3V0cHV0RGlyL1ByaXZhdGVJbnQiIC4gJG5hbWUgLiAiLmgi
OworICAgIG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFsIikgb3IgZGllICJDb3Vs
ZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAgcHJpbnQgSU5USEVBREVS
IEBoUHJlZml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAgIHByaW50IElOVEhFQURF
UiBAaEJvZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOworCisgICAgIyBXcml0ZSBQ
cml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1dERpci9Qcml2YXRl
IiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJpdiIp
IG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworCisgICAgcHJpbnQg
UFJJVkhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7CisgICAgcHJp
bnQgUFJJVkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisgICAg
IyBXcml0ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgbXkgJGltcGxGaWxlTmFtZVByaXYg
PSAiJG91dHB1dERpci9Qcml2YXRlIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oUFJJVklN
UEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1w
bEZpbGVOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICBwcmlu
dCBQUklWSU1QTCAiXG4iOworICAgIHByaW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAgICBj
bG9zZShQUklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9pZHMg
cmVjdXJzaXZlIG5pZ2h0bWFyZSkKKyAgICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXREaXIv
IiAuICRuYW1lIC4gInByb3BzLmgiOworICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJvcEZO
YW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAgICAk
aGRyUHJvcEluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJPUEhF
QURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5jbHVk
ZXMgLyBkZWZpbmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRpZXMu
XG5wZXJoYXBzIC0gYmV0dGVyIC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW4g
aGVyZSEqL1xuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAgcHJp
bnQgUFJPUEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAg
IHByaW50IFBST1BIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cygl
aGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cyglaGRy
UHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJP
UEhFQURFUiBAaEJvZHlQcm9wOworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUg
cHVibGljIGhlYWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUg
LiAiLmgiOworICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qg
b3BlbiBmaWxlICRoZHJGTmFtZSI7CisKKyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0Lmgi
fSA9IDE7CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVSIEBo
UHJlZml4R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRl
ZmluZXMuaD5cbiI7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIg
fSBzb3J0IGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlz
KCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiI7CisgICAgcHJpbnQgSEVBREVS
IEBoQm9keVByZTsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgInR5cGVkZWYgc3RydWN0IF8kXyAk
XztcbiIgfSBzb3J0IGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIg
aWYga2V5cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5OworCisgICAg
Y2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgdGhlIGltcGxlbWVudGF0aW9uIHNvdXJjZXMK
KyAgICBteSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAiOwor
ICAgIG9wZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZp
bGUgJGltcGxGaWxlTmFtZSI7CisKKyAgICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHByaW50
IElNUEwgIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4iOworICAgIHByaW50IElNUEwgIiNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiQ1N0cmlu
Zy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJQbGF0Zm9ybVN0cmluZy5oXCJc
biI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJBdG9taWNTdHJpbmcuaFwiXG4iOworICAg
IHByaW50IElNUEwgIiNpbmNsdWRlIFwidXN0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAi
I2luY2x1ZGUgXCJLVVJMLmhcIlxuIjsKKyAgICBwcmludCBJTVBMIG1hcCB7ICIjaW5jbHVkZSBc
IiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCAiXG4i
IGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAgICBj
bG9zZShJTVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAgICAlaW1wbFR5cGVkZWZz
ID0gKCk7CisgICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBA
aEJvZHkgPSAoKTsKKyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAgQGhCb2R5SW50ZXJuYWwgPSAo
KTsKKyAgICBAaEJvZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJvcFByZSA9ICgpOworCisgICAg
QGNQcmVmaXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7Cit9
CisKKzE7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDM1NzU4
KQorKysgV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNyArMjcsNyBAQAogICAgIF0gSFRNTE9wdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkZWZhdWx0
U2VsZWN0ZWQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
ICAgICAgICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOwogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkocmV2
aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgc2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRl
eHQ7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtE
b250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9o
dG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TEFwcGxldEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1M
QXBwbGV0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE0ICszNSwxNCBAQAogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgY29kZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIGNvZGVCYXNlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0OwotI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRl
ZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhzcGFjZTsKICNlbHNlCiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaHNwYWNlOwogI2VuZGlm
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgb2JqZWN0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VB
R0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIHZzcGFjZTsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgdnNwYWNlOwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRW1i
ZWRFbGVtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVtYmVk
RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAgSW1w
bGVtZW50YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZmMC05NzhkLWY3NzNmMmRlZTZhMwogICAg
IF0gSFRNTEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwotI2lmIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKICNlbHNlCiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaGVpZ2h0
OwpAQCAtMzgsNyArMzgsNyBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7
Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgd2lkdGg7CiAj
ZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25n
IHdpZHRoOwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQAogCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0
aXRsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWZlcnJlcjsKLSNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRvbWFpbjsKICNl
bHNlCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOwpAQCAtMTgy
LDcgKzE4Miw3IEBACiAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4gRE9N
U3RyaW5nIGVsZW1lbnROYW1lKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkK
KyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9j
YXRpb247CiAjZW5kaWYKIApAQCAtMTk1LDcgKzE5NSw3IEBACiAgICAgICAgIEVsZW1lbnQgICAg
ICAgICAgICBlbGVtZW50RnJvbVBvaW50KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKIAogICAgICAg
ICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
CisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9H
T0JKRUNUKSkKICAgICAgICAgRE9NU2VsZWN0aW9uICAgICAgIGdldFNlbGVjdGlvbigpOwogI2Vu
ZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxs
XSBET01TdHJpbmcgY2hhcmFjdGVyU2V0OwpAQCAtMjM2LDcgKzIzNiw3IEBACiAgICAgICAgIE5v
ZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gRE9NU3RyaW5nIHRhZ25hbWUpOwogCiAg
ICAgICAgIC8vIE5vZGVTZWxlY3RvciAtIFNlbGVjdG9yIEFQSQotI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZp
bmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICBbQ3VzdG9tXSBFbGVtZW50IHF1ZXJ5U2Vs
ZWN0b3IoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBz
ZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgW0N1c3RvbV0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChp
biBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9y
cywgaW4gTlNSZXNvbHZlciByZXNvbHZlcikKSW5kZXg6IFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0
aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJKHJl
dmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRl
eDogV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL0RPTUNvcmVFeGNlcHRpb24uaAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9E
T01Db3JlRXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAqLwog
CiAjaWZuZGVmIERPTUNvcmVFeGNlcHRpb25faAotI2RlZmluZSBET01Db2RlRXhjZXB0aW9uX2gK
KyNkZWZpbmUgRE9NQ29yZUV4Y2VwdGlvbl9oCiAKICNpbmNsdWRlICJFeGNlcHRpb25CYXNlLmgi
CiAKSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29y
ZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBA
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGlu
IGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmlu
ZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtNTksNyArNTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xl
YW4gYWx0R3JhcGhLZXkpOwogCiAgICAgICAgIC8vIFdlYktpdCBFeHRlbnNpb25zCi0jaWYgIWRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoKCFkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpKSAmJiAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpKQogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKICAgICAgICAgCkluZGV4OiBXZWJD
b3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9E
T01Db3JlRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9ET01D
b3JlRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemls
bGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJp
bmcoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgp
CisrKyBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDcgKzM3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAg
bmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2Fn
ZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8g
T3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51
bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBA
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGlu
IGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmlu
ZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMzU3NTgp
CisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcg
KzE1NSw3IEBACiAgICAgICAgIFtEb05vdENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9p
ZCBwb3N0TWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSwgaW4gRE9NU3RyaW5nIHRhcmdldE9y
aWdpbikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBHbG9iYWwgY29uc3RydWN0b3Jz
CiAgICAgICAgIGF0dHJpYnV0ZSBTdHlsZVNoZWV0Q29uc3RydWN0b3IgU3R5bGVTaGVldDsKICAg
ICAgICAgYXR0cmlidXRlIENTU1N0eWxlU2hlZXRDb25zdHJ1Y3RvciBDU1NTdHlsZVNoZWV0OwpJ
bmRleDogV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9wYWdl
L0RPTVNlbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAKICAgICAg
ICAgdm9pZCByZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgdm9pZCBhZGRSYW5nZShpbiBSYW5n
ZSByYW5nZSk7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAg
ICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKICAgICB9OwpJbmRl
eDogV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMv
R05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0VG9vbHMvR05VbWFrZWZp
bGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBACiAjIEd0a0xhdW5jaGVyCiBQcm9n
cmFtc19HdGtMYXVuY2hlcl9DUFBGTEFHUyA9IFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwK
KwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2Vi
S2l0L2d0ayBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZs
YWdzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23115</attachid>
            <date>2008-09-02 08:15:14 -0700</date>
            <delta_ts>2008-09-03 14:20:54 -0700</delta_ts>
            <desc>added start of XMLHttpRequest handling</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>273865</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMjIwLDYgKzIyMSw3IEBACiAKICMgV2ViS2l0CiB3ZWJraXRn
dGtfaF9hcGkgOj0KK2dkb21ndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9CiB3ZWJr
aXRndGtfY3BwZmxhZ3MgOj0KIHdlYmtpdGd0a19idWlsdF9zb3VyY2VzIDo9CkBAIC0yMzIsOCAr
MjM0LDEzIEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0
LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkkKHdlYmtpdGd0a19o
X2FwaSkgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCisJJChnZG9tZ3Rr
X2hfYXBpKSBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmggXAorCVdlYktp
dC9ndGsvd2Via2l0L2dkb20uaCAKIAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMu
aAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgKKwogbGlid2Via2l0XzFfMF9sYV9T
T1VSQ0VTID0gXAogCSQod2Via2l0Z3RrX3NvdXJjZXMpCiAKQEAgLTMwNCw2ICszMTEsMzQ2IEBA
CiB3ZWJjb3JlX2xpYmFkZCArPSAtbGdzdGludGVyZmFjZXMtMC4xMCAtbGdzdHZpZGVvLTAuMTAK
IGVuZGlmCiAKK1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6IFdlYktpdC9ndGsv
d2Via2l0L0dkb21Eb2N1bWVudC5oIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdC9ndGsvd2Via2l0L0dkb21IVE1MRG9jdW1lbnQuaCBcCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVl
c3QuaAorCitXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaDogRGVyaXZlZFNv
dXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmgKKwljcCBEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0
cFJlcXVlc3QuaCBXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaAorCitXZWJL
aXQvZ3RrL3dlYmtpdC9HZG9tSFRNTERvY3VtZW50Lmg6IERlcml2ZWRTb3VyY2VzL0dkb21IVE1M
RG9jdW1lbnQuaAorCWNwIERlcml2ZWRTb3VyY2VzL0dkb21IVE1MRG9jdW1lbnQuaCBXZWJLaXQv
Z3RrL3dlYmtpdC9HZG9tSFRNTERvY3VtZW50LmgKKworV2ViS2l0L2d0ay93ZWJraXQvR2RvbURv
Y3VtZW50Lmg6IERlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oCisJY3AgRGVyaXZlZFNvdXJj
ZXMvR2RvbURvY3VtZW50LmggV2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50LmgKKworV2Vi
S2l0L2d0ay93ZWJraXQvR2RvbURPTU9iamVjdC5oOiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2Rv
bURPTU9iamVjdC5oCisJY3AgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaCBX
ZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRE9NT2JqZWN0LmgKKworV2ViS2l0L2d0ay93ZWJraXQvR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oOiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oCisJY3AgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCBX
ZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRXZlbnRUYXJnZXROb2RlLmgKKworCitnZG9tZ3RrX2hfYXBp
ICs9IFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRG9jdW1lbnQuaFwKKwlXZWJLaXQvZ3RrL3dl
YmtpdC9HZG9tRXZlbnRUYXJnZXROb2RlLmhcCisJV2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTU9i
amVjdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21BdHRyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUF0dHJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21CYXJJbmZvLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUJhckluZm9wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNHcmFk
aWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNHcmFkaWVudHByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRlcm4uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2Fu
dmFzUGF0dGVybnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BpeGVsQXJyYXku
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheXByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21DREFUQVNlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFTZWN0aW9ucHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2hhcmFjdGVyRGF0YS5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21DaGFyYWN0ZXJEYXRhcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJk
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNsaXBib2FyZHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNvbW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29tbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNvbnNvbGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29uc29s
ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvdW50ZXIuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ291bnRlcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0NoYXJzZXRSdWxl
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0NoYXJzZXRSdWxlcHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tQ1NTRm9udEZhY2VSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0Zv
bnRGYWNlUnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGUuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1wb3J0UnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU01lZGlhUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NNZWRpYVJ1bGVw
cm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQYWdlUnVsZS5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DU1NQYWdlUnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1p
dGl2ZVZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlcHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NSdWxlTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlTGlzdHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NTdHlsZURlY2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlRGVjbGFy
YXRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVJ1bGUuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ1NTU3R5bGVSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTU3R5bGVTaGVldC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVNoZWV0cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTVmFsdWVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlTGlzdHByb3BzLmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFy
aWFibGVzRGVjbGFyYXRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJs
ZXNSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc1J1bGVwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21EYXRhYmFzZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21EYXRh
YmFzZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50RnJhZ21lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRGcmFnbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbURvY3VtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRUeXBl
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50VHlwZXByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9N
QXBwbGljYXRpb25DYWNoZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNl
cHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQ29yZUV4Y2VwdGlvbnByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbURPTUltcGxlbWVudGF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbURPTUltcGxlbWVudGF0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NUGFy
c2VyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVBhcnNlcnByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbURPTVNlbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01TZWxlY3Rp
b25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRE9NV2luZG93cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRW50aXR5LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eXByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUVudGl0eVJlZmVyZW5jZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRp
dHlSZWZlcmVuY2Vwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tRmlsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlTGlzdC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUZpbGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IaXN0b3J5LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhpc3Rvcnlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQW5j
aG9yRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQW5jaG9yRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEFyZWFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVhRWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MQmFzZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MQmFzZUZvbnRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRm9udEVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEJvZHlFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxCb2R5RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJSRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxCdXR0b25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxCdXR0b25FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENhbnZhc0Vs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENhbnZhc0VsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MQ29sbGVjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3Rv
cnlFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpdkVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTERpdkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
RExpc3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxETGlzdEVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRG9jdW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTERvY3VtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MRW1iZWRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxF
bWJlZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRmllbGRTZXRFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNldEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9udEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEZvbnRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1F
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEZyYW1lRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFt
ZVNldEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MSGVhZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MSGVhZGluZ0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRpbmdFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MSFJFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEh0bWxFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1sRWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJRnJhbWVFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxJRnJhbWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEltYWdlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW1hZ2VFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJc0lu
ZGV4RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMYWJlbEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxMZWdlbmRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxMZWdlbmRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExJRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTExpbmtFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxM
aW5rRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxN
YXJxdWVlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnRwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MTWV0YUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TE1ldGFFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1vZEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1vZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
T2JqZWN0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPTGlzdEVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9MaXN0RWxlbWVudHByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTE9wdEdyb3VwRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxP
cHRpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25FbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxQYXJhZ3JhcGhFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFt
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYW1FbGVtZW50cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFByZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFByZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUXVvdGVF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MU2NyaXB0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxT
ZWxlY3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFN0eWxlRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MU3R5bGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxs
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxUYWJsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlRWxl
bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlUm93RWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTFRleHRBcmVhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGV4dEFyZWFF
bGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRpdGxlRWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGl0bGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFVMaXN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVUxp
c3RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSW1hZ2VEYXRhLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0YXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUph
dmFTY3JpcHRDYWxsRnJhbWUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2YVNjcmlwdENhbGxG
cmFtZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUtleWJvYXJkRXZlbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tS2V5Ym9hcmRFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUxvY2F0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9ucHJvcHMuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tTWVkaWFMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhTGlz
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lc3NhZ2VFdmVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21NZXNzYWdlRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1l
VHlwZUFycmF5LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlQXJyYXlwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1l
VHlwZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1vdXNlRXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTW91c2VFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU11dGF0
aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTXV0YXRpb25FdmVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU5hbWVkTm9kZU1hcC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21O
YW1lZE5vZGVNYXBwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYXZpZ2F0b3IuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTmF2aWdhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Tm9kZUZpbHRlci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlRmlsdGVycHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTm9kZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0
b3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUl0ZXJhdG9ycHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTm9kZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUxpc3Rwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTm90YXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm90YXRpb25wcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21PdmVyZmxvd0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU92
ZXJmbG93RXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheS5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVBsdWdpbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5wcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJv
Z3Jlc3NFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9ncmVzc0V2ZW50cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tUmFuZ2VFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZS5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJl
Y3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmVjdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNjcmVlbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TY3JlZW5wcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TUUxFcnJvci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxFcnJvcnBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldC5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TUUxSZXN1bHRTZXRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1
bHRTZXRSb3dMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldFJvd0xpc3Rw
cm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbi5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0
b3JhZ2VFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlRXZlbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3Jh
Z2Vwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVN0eWxlU2hlZXRMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hl
ZXRMaXN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVRleHRFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0
RXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0LmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVRleHRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21UcmVlV2Fsa2VyLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVRyZWVXYWxrZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21VSUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnRwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21XZWJLaXRBbmltYXRpb25FdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudHByb3BzLmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVdoZWVsRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
V2hlZWxFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9ucHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3QuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhNTEh0dHBSZXF1ZXN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJl
cXVlc3RVcGxvYWQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWRw
cm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxTZXJpYWxpemVyLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVhNTFNlcmlhbGl6ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0
aEV2YWx1YXRvci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV2YWx1YXRvcnByb3BzLmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhQYXRoRXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeHBy
ZXNzaW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhwcmVzc2lvbnByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoTlNSZXNvbHZlci5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21YUGF0aE5TUmVzb2x2ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3Vs
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3VsdHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVhTTFRQcm9jZXNzb3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nl
c3NvcnByb3BzLmgKKwogd2Via2l0Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXQuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKQEAgLTMxNSwx
MiArNjYyLDE3IEBACiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaCBcCiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCiAKKyMgV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtfYnVpbHRfc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
bWFyc2hhbC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuaCBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmgKIAorIwlEZXJpdmVkU291cmNlcy9nZG9tZW51
bXR5cGVzLmNwcCAKKyMJV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisKIHdlYmtp
dGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgg
XApAQCAtMzQ0LDcgKzY5Niw5IEBACiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUu
Y3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwICBcCisJV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZXZlbnQuaCAKIAogd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKIAktREJVSUxE
SU5HX1dFQktJVCBcCkBAIC0zNjYsNiArNzIwLDkgQEAKIAlzdGFtcC13ZWJraXRlbnVtdHlwZXMu
Y3BwIFwKIAlzdGFtcC13ZWJraXRlbnVtdHlwZXMuaAogCisjCXN0YW1wLWdkb21lbnVtdHlwZXMu
Y3BwIAorIwlzdGFtcC1nZG9tZW51bXR5cGVzLmggCisKIFdFQktJVF9NQVJTSEFMID0gJChHRU5T
T1VSQ0VTKS93ZWJraXRtYXJzaGFsCiBXRUJLSVRfTUFSU0hBTF9MSVNUID0gJChXRUJLSVRfTUFS
U0hBTCkubGlzdAogCkBAIC00NDIsNiArNzk5LDU0IEBACiAJJiYgY3AgeGdlbi1ndGMgJEAgXAog
CSYmIHJtIC1mIHhnZW4tZ3RjCiAKK1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaDog
c3RhbXAtZ2RvbWVudW10eXBlcy5oCisJQHRydWUKK3N0YW1wLWdkb21lbnVtdHlwZXMuaDogJChn
ZG9tZ3RrX2hfYXBpKSBHTlVtYWtlZmlsZQorCShjZCAkKHNyY2RpcikgXAorCSYmIGdsaWItbWtl
bnVtcyBcCisJCQktLWZoZWFkICIjaWZuZGVmIEdET01fRU5VTV9UWVBFU19IXG4iIFwKKwkJCS0t
ZmhlYWQgIiNkZWZpbmUgR0RPTV9FTlVNX1RZUEVTX0hcblxuIiBcCisJCQktLWZoZWFkICIjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD5cblxuIiBcCisJCQktLWZoZWFkICJHX0JFR0lOX0RFQ0xTXG5c
biIgXAorCQkJLS1mdGFpbCAiR19FTkRfREVDTFNcblxuIiBcCisJCQktLWZ0YWlsICIjZW5kaWZc
biIgXAorCQkJLS1mcHJvZCAiI2luY2x1ZGUgPEBmaWxlbmFtZUA+XG5cbiIgXAorCQkJLS1lcHJv
ZCAiI2RlZmluZSBHRE9NX1RZUEVfQEVOVU1TSE9SVEAgQGVudW1fbmFtZUBfZ2V0X3R5cGUoKVxu
XG4iIFwKKwkJCS0tZXByb2QgIldFQktJVF9BUEkgR1R5cGVcbkBlbnVtX25hbWVAX2dldF90eXBl
KHZvaWQpO1xuXG4iIFwKKwkJCSQoZ2RvbWd0a19oX2FwaSkgfCBcCisJCQlzZWQgJ3MsV2ViS2l0
L2d0ay8sLCcgfCBcCisJCXNlZCAncyx3ZWJfa2l0LGdkb20sJyB8IFwKKwkJc2VkICdzLEdET01f
VFlQRV9LSVQsR0RPTV9UWVBFLCcgXAorCQkpID4geGdlbi1jZ3RoIFwKKwkmJiAoY21wIC1zIHhn
ZW4tY2d0aCBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmggfHwgY3AgeGdlbi1jZ3Ro
IFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCkgXAorCSYmIHJtIC1mIHhnZW4tY2d0
aCBcCisJJiYgZWNobyB0aW1lc3RhbXAgPiAkKEBGKQorCisjICAgICAgICAgICAgICAtLWZoZWFk
ICIjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZpbmVzLmg+XG5cbiIgCisKK0Rlcml2ZWRTb3VyY2Vz
L2dkb21lbnVtdHlwZXMuY3BwOiAkKGdkb21ndGtfaF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQo
c3JjZGlyKSBcCisJJiYgZ2xpYi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxjb25m
aWcuaD5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG4iIFwKKwkJ
CS0tZmhlYWQgIiNpbmNsdWRlIFwiJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L2dk
b21lbnVtdHlwZXMuaFwiXG5cbiIgXAorCQkJLS1maGVhZCAiZXh0ZXJuIFwiQ1wiIHtcblxuIiBc
CisJCQktLWZwcm9kICJcbi8qIGVudW1lcmF0aW9ucyBmcm9tIFwiQGZpbGVuYW1lQFwiICovIiBc
CisJCQktLXZoZWFkICJzdGF0aWMgY29uc3QgR0BUeXBlQFZhbHVlIF9AZW51bV9uYW1lQF92YWx1
ZXNbXSA9IHsiIFwKKwkJCS0tdnByb2QgIiAgICB7IEBWQUxVRU5BTUVALCBcIkBWQUxVRU5BTUVA
XCIsIFwiQHZhbHVlbmlja0BcIiB9LCIgXAorCQkJLS12dGFpbCAiICAgIHsgMCwgTlVMTCwgTlVM
TCB9XG59O1xuXG4iIFwKKwkJCS0tdnRhaWwgIkdUeXBlIEBlbnVtX25hbWVAX2dldF90eXBlKHZv
aWQpXG57XG4iIFwKKwkJCS0tdnRhaWwgIiAgICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7XG5cbiIg
XAorCQkJLS12dGFpbCAiICAgIGlmICghdHlwZSlcbiIgXAorCQkJLS12dGFpbCAiICAgICAgICB0
eXBlID0gZ19AdHlwZUBfcmVnaXN0ZXJfc3RhdGljKFwiQEVudW1OYW1lQFwiLCBfQGVudW1fbmFt
ZUBfdmFsdWVzKTtcblxuIiBcCisJCQktLXZ0YWlsICIgICAgcmV0dXJuIHR5cGU7XG59XG5cbiIg
XAorCQkJLS1mdGFpbCAifVxuIiBcCisJCSQoZ2RvbWd0a19oX2FwaSkgfCBcCisJCXNlZCAncyx3
ZWJfa2l0LGdkb20sJyBcCisJCSkgPiB4Z2VuLWNndGMgXAorCSYmIGNwIHhnZW4tY2d0YyAkQCBc
CisJJiYgcm0gLWYgeGdlbi1jZ3RjCisKICMgRU5EIFdFQktJVCBHVEsrCiAjCiAjIEZpbGVzIHRo
YXQgd2lsbCBiZSBkaXN0cmlidXRlZApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1l
LmNwcAkocmV2aXNpb24gMzYwMTUpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzEsMTMgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgogICog
Q29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDcgQXBwbGUgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBE
eXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxh
Ym9yYSBMdGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KICAqCisgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKICAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNDIsNiArNDQsMjAgQEAKICNpbmNsdWRlICJSZW5kZXJU
cmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Y
TUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21YTUxIdHRw
UmVxdWVzdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisjaW5jbHVk
ZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlRleHREb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tSFRNTERvY3VtZW50LmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+
CiAKQEAgLTQ5LDYgKzY1LDExIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5h
bWVzcGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwlncG9pbnRlciB0b0dET00oRG9j
dW1lbnQqIGRvYyk7CisJZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0KiBvYmopOworfQor
CiBleHRlcm4gIkMiIHsKIAogZW51bSB7CkBAIC01Nyw2ICs3OCw3IEBACiAgICAgTE9BRF9ET05F
LAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAorICAgIEJST1dT
RVJfRVZFTlQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2Miw2ICsxODQsMTYgQEAKICAg
ICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBFX1NUUklORywgR19U
WVBFX1NUUklORyk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbQlJPV1NFUl9FVkVO
VF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAgICAgR19UWVBFX0ZS
T01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05B
TF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAg
ICAgTlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9W
T0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAg
ICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisKICAgICAvKgogICAgICAq
IGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTI5NCw2ICsz
MjYsMTUyIEBACiB9CiAKIC8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVx
dWVzdDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR2Rv
bSB3cmFwcGVyIGFyb3VuZCBhbiBYTUxIdHRwUmVxdWVzdAorICoKKyAqIFJldHVybiB2YWx1ZTog
YSBHZG9tWE1MSHR0cFJlcXVlc3QKKyAqLworR2RvbVhNTEh0dHBSZXF1ZXN0KiB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7
CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisg
ICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUp
OworCXJldHVybiBHRE9NX1hNTF9IVFRQX1JFUVVFU1QoV2ViQ29yZTo6dG9HRE9NKFhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGUoY29yZUZyYW1lLT5kb2N1bWVudCgpKS5nZXQoKSkpOworfQorCisvKioK
KyAqIHdlYmtpdF93ZWJfZnJhbWVfY3JlYXRlX3RleHRfZG9tX2RvY3VtZW50OgorICogQGZyYW1l
OiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5k
IGEgbmV3IEhUTUxEb2N1bWVudCwgVGV4dCBmb3JtYXR0ZWQKKyAqCisgKiBSZXR1cm4gdmFsdWU6
IGEgR2RvbUhUTUxEb2N1bWVudAorICovCitHZG9tSFRNTERvY3VtZW50KiB3ZWJraXRfd2ViX2Zy
YW1lX2NyZWF0ZV90ZXh0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwp
OworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKwor
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1l
KTsKKwlQYXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gZG9jID0gVGV4dERvY3VtZW50OjpjcmVhdGUo
Y29yZUZyYW1lKTsKKwlyZXR1cm4gR0RPTV9IVE1MX0RPQ1VNRU5UKFdlYkNvcmU6OnRvR0RPTShk
b2MuZ2V0KCkpKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2NyZWF0ZV9odG1sX2Rv
bV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1cm5z
IGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIG5ldyBIVE1MRG9jdW1lbnQsIEhUTUwgZm9ybWF0dGVk
CisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21IVE1MRG9jdW1lbnQKKyAqLworR2RvbUhUTUxE
b2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9jcmVhdGVfaHRtbF9kb21fZG9jdW1lbnQoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBw
cml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7
CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisJUGFzc1JlZlB0cjxIVE1MRG9jdW1lbnQ+IGRvYyA9
IEhUTUxEb2N1bWVudDo6Y3JlYXRlKGNvcmVGcmFtZSk7CisJcmV0dXJuIEdET01fSFRNTF9ET0NV
TUVOVChXZWJDb3JlOjp0b0dET00oZG9jLmdldCgpKSk7Cit9CisKKy8qKgorICogd2Via2l0X3dl
Yl9mcmFtZV9jcmVhdGVfeGh0bWxfZG9tX2RvY3VtZW50OgorICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGEgbmV3IERvY3Vt
ZW50LCBYSFRNTCBmb3JtYXR0ZWQKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgR2RvbURvY3VtZW50
CisgKi8KK0dkb21Eb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9jcmVhdGVfeGh0bWxfZG9tX2Rv
Y3VtZW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZy
YW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCVBhc3NSZWZQdHI8RG9jdW1l
bnQ+IGRvYyA9IERvY3VtZW50OjpjcmVhdGVYSFRNTChjb3JlRnJhbWUpOworCXJldHVybiBHRE9N
X0RPQ1VNRU5UKFdlYkNvcmU6OnRvR0RPTShkb2MuZ2V0KCkpKTsKK30KKworLyoqCisgKiB3ZWJr
aXRfd2ViX2ZyYW1lX2NyZWF0ZV9kb21fZG9jdW1lbnQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdl
YkZyYW1lCisgKgorICogcmV0dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYSBuZXcgRG9jdW1l
bnQgCisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21Eb2N1bWVudAorICovCitHZG9tRG9jdW1l
bnQqIHdlYmtpdF93ZWJfZnJhbWVfY3JlYXRlX2RvbV9kb2N1bWVudChXZWJLaXRXZWJGcmFtZSog
ZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShm
cmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFt
ZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NF
UlQoY29yZUZyYW1lKTsKKwlQYXNzUmVmUHRyPERvY3VtZW50PiBkb2MgPSBEb2N1bWVudDo6Y3Jl
YXRlKGNvcmVGcmFtZSk7CisJcmV0dXJuIEdET01fRE9DVU1FTlQoV2ViQ29yZTo6dG9HRE9NKGRv
Yy5nZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVu
dDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3
cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAorICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tRG9j
dW1lbnQKKyAqLworR2RvbURvY3VtZW50KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1l
bnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQ
cml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29y
ZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisJcmV0dXJuIEdET01fRE9DVU1FTlQo
V2ViQ29yZTo6dG9HRE9NKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkpOworfQorCisvKiBYWFggVE9E
TzogbWFrZSB0aGlzIG5vdCB0YWtlIGZyYW1lKiBhcyBhbiBhcmd1bWVudCwKKyAqIGFuZCBtYWtl
IGl0IHJldHVybiBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzICovCitleHRlcm4gIkMiIHsKK1dF
QktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJh
bWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNvbnN0IGNoYXIgKm5hbWUpOworfQorCisvKioKKyAqIHdl
YmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyOgorICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQorICoKKyAqIGFkZHMgYW4gZXZlbnQgbGlzdGVuZXIgdG8gdGhlIGZyYW1lJ3MgZG9j
dW1lbnQKKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBuYW1lIG9mIEBmcmFtZQorICovCitnYm9v
bGVhbiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSog
ZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnY2hhciogZXZlbnRfdHlwZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
SVNfV0VCX0ZSQU1FKGZyYW1lKSwgRkFMU0UpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZh
dGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZy
YW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKworCXJldHVybiBhZGRfd2luZG93X2V2ZW50
X2xpc3RlbmVyKGZyYW1lLCBjb3JlRnJhbWUsIGV2ZW50X3R5cGUpOworfQorCisvKioKICAqIHdl
YmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCiAg
KgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCShyZXZpc2lvbiAwKQor
KysgV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fz
c29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgSlNfRE9NX0VWRU5UX0xJU1RF
TkVSX05PREVfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9ICisKKyNpbmNs
dWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworCisjaW5j
bHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisvKiBUT0RPOiByZXR1cm4gdGhlIGFjdHVh
bCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCByZXF1aXJlcworICogYSBnbGliIHdyYXBw
ZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RPOiBwcm92aWRlIGEgJ3JlbW92ZV9ldmVu
dF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGliCisgKiBvYmplY3QgYXMgYW4gYXJndW1l
bnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQorZ2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3Rl
bmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1cmUpOworfQorCisjZW5kaWYgLypK
U19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9IICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmgJKHJldmlzaW9uIDM2MDE1KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAw
NyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTI2LDYgKzI3LDkgQEAKIAogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+
CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21Eb2N1bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTERvY3VtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdC5oPgogCiBHX0JFR0lOX0RFQ0xT
CiAKQEAgLTYxLDYgKzY1LDI3IEBACiBXRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1lICoKIHdlYmtp
dF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2Vi
X3ZpZXcpOwogCitXRUJLSVRfQVBJIEdkb21YTUxIdHRwUmVxdWVzdCAqCit3ZWJraXRfd2ViX2Zy
YW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJh
bWUpOworCitXRUJLSVRfQVBJIEdkb21Eb2N1bWVudCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9k
b21fZG9jdW1lbnQgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKK1dFQktJ
VF9BUEkgR2RvbURvY3VtZW50ICoKK3dlYmtpdF93ZWJfZnJhbWVfY3JlYXRlX2RvbV9kb2N1bWVu
dCAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBHZG9t
SFRNTERvY3VtZW50ICoKK3dlYmtpdF93ZWJfZnJhbWVfY3JlYXRlX3RleHRfZG9tX2RvY3VtZW50
ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21I
VE1MRG9jdW1lbnQgKgord2Via2l0X3dlYl9mcmFtZV9jcmVhdGVfaHRtbF9kb21fZG9jdW1lbnQg
ICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbURv
Y3VtZW50ICoKK3dlYmtpdF93ZWJfZnJhbWVfY3JlYXRlX3hodG1sX2RvbV9kb2N1bWVudCAgICAg
ICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRG9jdW1l
bnQgKgord2Via2l0X3dlYl9mcmFtZV9jcmVhdGVfeGh0bWxfZG9tX2RvY3VtZW50ICAgICAgIChX
ZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcg
Kgogd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcgICAgICAgKFdlYktpdFdlYkZyYW1lICAg
ICAgICpmcmFtZSk7CiAKQEAgLTkzLDYgKzExOCwxMCBAQAogV0VCS0lUX0FQSSBKU0dsb2JhbENv
bnRleHRSZWYKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2dsb2JhbF9jb250ZXh0IChXZWJLaXRXZWJG
cmFtZSAgICAgICAqZnJhbWUpOwogCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX2Zy
YW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKm5hbWUpOwor
CiBHX0VORF9ERUNMUwogCiAjZW5kaWYKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlz
dGVuZXJXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3Rl
bmVyV2luZG93LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3Rl
bmVyV2luZG93LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
CisjaWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSAorI2RlZmluZSBKU19ET01f
RVZFTlRfTElTVEVORVJfV0lORE9XX0gKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKK2V4dGVybiAiQyIgeworLyogVE9ETzogbWFrZSBh
IEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0byBiZSByZXR1cm5lZCBoZXJlICovCit9CisKKyNl
bmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSCAqLwpJbmRleDogV2ViS2l0L2d0
ay93ZWJraXQvRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDAp
CisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgSlNfRE9N
X0VWRU5UX0xJU1RFTkVSX1hNTF9IVFRQX1JFUVVFU1RfSAorI2RlZmluZSBKU19ET01fRVZFTlRf
TElTVEVORVJfWE1MX0hUVFBfUkVRVUVTVF9ICisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1
ZXN0LmgiCisKKy8qIFRPRE86IHJldHVybiB0aGUgYWN0dWFsIGV2ZW50IGxpc3RlbmVyIGNyZWF0
ZWQsIHdoaWNoIHJlcXVpcmVzCisgKiBhIGdsaWIgd3JhcHBlciBvYmplY3QgdG8gYmUgY3JlYXRl
ZC4KKyAqIFRPRE86IHByb3ZpZGUgYSAncmVtb3ZlX2V2ZW50X2xpc3RlbmVyJyB3aGljaCB0YWtl
cyB0aGF0IGdsaWIKKyAqIG9iamVjdCBhcyBhbiBhcmd1bWVudCAqLworZXh0ZXJuICJDIiB7CitX
RUJLSVRfQVBJCitnYm9vbGVhbiBhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9saXN0ZW5lcihH
ZG9tWE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7
Cit9CisKKyNlbmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5FUl9YTUxfSFRUUF9SRVFVRVNUX0gg
Ki8KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVy
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtj
bEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJTdHJpbmdJ
bXBsLmgiCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5o
IgorCisKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisj
aW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
IkV2ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJX
aW5kb3cuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyTm9kZS5oIgorI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkNTdHJp
bmcuaCIKKyNpbmNsdWRlICJTdHJpbmdJbXBsLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisj
aW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAid2Via2l0ZXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVHZG9tWE1MSHR0cFJlcXVlc3QuaCIKKworCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4K
KworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAg
IGdwb2ludGVyIHRvR0RPTShFdmVudCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRU
YXJnZXROb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3QqIG5v
ZGUpOworfQorCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShXZWJLaXRFdmVudCwgd2Vi
a2l0X2V2ZW50LCBHX1RZUEVfT0JKRUNUKTsKKworc3RydWN0IF9XZWJLaXRFdmVudFByaXZhdGUg
eworICAgIEV2ZW50KiBldmVudDsKK307CisKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0dFVF9QUklW
QVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVf
RVZFTlQsIFdlYktpdEV2ZW50UHJpdmF0ZSkpCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9ldmVudF9m
aW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy9XZWJLaXRFdmVudCogcmVxdWVzdCA9
IFdFQktJVF9FVkVOVChvYmplY3QpOworICAgIC8vV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0g
cmVxdWVzdC0+cHJpdjsKKworICAgIC8vZ19mcmVlKHByaXYtPnVyaSk7CisKKyAgICBHX09CSkVD
VF9DTEFTUyh3ZWJraXRfZXZlbnRfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30K
Kworc3RhdGljIHZvaWQgd2Via2l0X2V2ZW50X2NsYXNzX2luaXQoV2ViS2l0RXZlbnRDbGFzcyog
cmVxdWVzdENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFs
aXplID0gd2Via2l0X2V2ZW50X2ZpbmFsaXplOworCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2
YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKFdlYktpdEV2ZW50UHJpdmF0ZSkpOworfQorCitzdGF0
aWMgdm9pZCB3ZWJraXRfZXZlbnRfaW5pdChXZWJLaXRFdmVudCogcmVxdWVzdCkKK3sKKyAgICBX
ZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSBXRUJLSVRfRVZFTlRfR0VUX1BSSVZBVEUocmVxdWVz
dCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Cit9CisKK1dlYktpdEV2ZW50KiB3ZWJraXRf
ZXZlbnRfbmV3KHZvaWQpCit7CisgICAgV2ViS2l0RXZlbnQqIHJlcXVlc3QgPSBXRUJLSVRfRVZF
TlQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0VWRU5ULCBOVUxMKSk7CisgICAgLy9wcml2LT5l
dmVudCA9IGV2ZW50OworCisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKKy8qCit2b2lkIHdlYmtp
dF9ldmVudF9zZXRfdXJpKFdlYktpdEV2ZW50KiByZXF1ZXN0LCBjb25zdCBnY2hhciogdXJpKQor
eworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0VWRU5UKHJlcXVlc3QpKTsKKyAgICBn
X3JldHVybl9pZl9mYWlsKHVyaSk7CisKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSBy
ZXF1ZXN0LT5wcml2OworCisgICAgZ19mcmVlKHByaXYtPnVyaSk7CisgICAgcHJpdi0+dXJpID0g
Z19zdHJkdXAodXJpKTsKK30KKyovCitHX0NPTlNUX1JFVFVSTiBnY2hhciogd2Via2l0X2V2ZW50
X2dldF9ldmVudF90eXBlKFdlYktpdEV2ZW50KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19FVkVOVChyZXF1ZXN0KSwgTlVMTCk7CisKKyAgICBXZWJLaXRF
dmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworICAgIHJldHVybiBnX3N0cmR1cChw
cml2LT5ldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworfQorCit2b2lkIHdl
YmtpdF9ldmVudF9jYW5jZWxfYnViYmxlICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QsIGdib29sZWFu
IGNhbmNlbCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2
OworICAgIHByaXYtPmV2ZW50LT5zZXRDYW5jZWxCdWJibGUoY2FuY2VsKTsKK30KKwordm9pZCB3
ZWJraXRfZXZlbnRfcHJldmVudF9kZWZhdWx0ICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QpCit7Cisg
ICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5l
dmVudC0+cHJldmVudERlZmF1bHQoKTsKK30KKwordm9pZCB3ZWJraXRfZXZlbnRfc3RvcF9wcm9w
YWdhdGlvbiAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0
ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnN0b3BQcm9wYWdhdGlv
bigpOworfQorCitXRUJLSVRfQVBJIGdib29sZWFuCithZGRfd2luZG93X2V2ZW50X2xpc3RlbmVy
KFdlYktpdFdlYkZyYW1lKiB3ZiwgRnJhbWUgKmZyYW1lLCBjb25zdCBjaGFyICpuYW1lKTsKKwor
fSAvLyBleHRlcm4gIkMiCisKK2NsYXNzIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lciA6IHB1
YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxYTUxI
dHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9tWE1MSHR0cFJlcXVlc3QqIHdmKQor
ICAgIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIod2Yp
KTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgdXNlQ2FwdHVy
ZSk7CisKKyAgICBwcml2YXRlOgorICAgIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcihHZG9t
WE1MSHR0cFJlcXVlc3QqIHdmKSA6IG1fd2Yod2YpIHsgfQorICAgIEdkb21YTUxIdHRwUmVxdWVz
dCogbV93ZjsKK307CisKK3ZvaWQgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpoYW5kbGVF
dmVudChFdmVudCogZXZlbnQsIGJvb2wgdXNlQ2FwdHVyZSkKK3sKKyAgICBnYm9vbGVhbiByZXR2
YWw7CisgICAgLyogVE9ETzogc2VlIEpTRXZlbnRMaXN0ZW5lci5jcHAncyBoYW5kbGVFdmVudCAt
IHNvbWUgd2VpcmQgc3R1ZmYuLi4gKi8KKyAgICBwcmludGYoIlhNTEh0dHBSZXF1ZXN0IGhhbmRs
ZUV2ZW50ICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
IEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgImJyb3dzZXItZXZlbnQiLCB3ZXYsIHVzZUNh
cHR1cmUsICZyZXR2YWwpOworfQorCitjbGFzcyBOb2RlRXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBF
dmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb2RlRXZlbnRM
aXN0ZW5lcj4gY3JlYXRlKEdkb21FdmVudFRhcmdldE5vZGUqIHdmKQorICAgIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBOb2RlRXZlbnRMaXN0ZW5lcih3ZikpOyB9CisgICAgdmlydHVhbCB2b2lkIGhh
bmRsZUV2ZW50KEV2ZW50KiwgYm9vbCB1c2VDYXB0dXJlKTsKKworICAgIHByaXZhdGU6CisgICAg
Tm9kZUV2ZW50TGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogd2YpIDogbV93Zih3ZikgeyB9
CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZSogbV93ZjsKK307CisKK3ZvaWQgTm9kZUV2ZW50TGlz
dGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCB1c2VDYXB0dXJlKQoreworICAg
IGdib29sZWFuIHJldHZhbDsKKyAgICBwcmludGYoIm5vZGUgaGFuZGxlRXZlbnQgJXNcbiIsIGV2
ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgR2RvbUV2ZW50ICp3ZXYg
PSBHRE9NX0VWRU5UKFdlYkNvcmU6OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShtX3dmLCAiYnJvd3Nlci1ldmVudCIsIHdldiwgdXNlQ2FwdHVyZSwgJnJldHZhbCk7
Cit9CisKK2NsYXNzIFdpbmRvd0V2ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2luZG93RXZlbnRMaXN0ZW5lcj4gY3Jl
YXRlKFdlYktpdFdlYkZyYW1lKiB3ZikgCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdpbmRv
d0V2ZW50TGlzdGVuZXIod2YpKTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVu
dCosIGJvb2wgaXNXaW5kb3dFdmVudCk7CisKKyAgICBwcml2YXRlOgorICAgIFdpbmRvd0V2ZW50
TGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmKSA6IG1fd2Yod2YpIHsgfQorICAgIFdlYktpdFdl
YkZyYW1lKiBtX3dmOworfTsKKwordm9pZCBXaW5kb3dFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVu
dChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKK3sKKyAgICBnYm9vbGVhbiByZXR2
YWw7CisgICAgcHJpbnRmKCJ3aW5kb3cgaGFuZGxlRXZlbnQgJXNcbiIsIGV2ZW50LT50eXBlKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5U
KFdlYkNvcmU6OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dm
LCAiYnJvd3Nlci1ldmVudCIsIHdldiwgaXNXaW5kb3dFdmVudCwgJnJldHZhbCk7Cit9CisKK2di
b29sZWFuIGFkZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVx
dWVzdCAqd2YsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkK
K3sKKyAgICBXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdCAqcmVxID0gZ2RvbV94bWxfaHR0cF9yZXF1
ZXN0X2dldF9wcml2YXRlKHdmKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKQorICAgICAgICByZXR1
cm4gRkFMU0U7CisgICAgaWYgKHJlcSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gRkFMU0U7CisK
KyAgICBpZiAoc3RyY21wKG5hbWUsICJvbnJlYWR5c3RhdGVjaGFuZ2UiKSA9PSAwKQorICAgIHsK
KyAgICAgICAgUmVmUHRyPFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXI7Cisg
ICAgICAgIGxpc3RlbmVyID0gWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpjcmVhdGUod2Yp
OworICAgICAgICByZXEtPnNldE9uUmVhZHlTdGF0ZUNoYW5nZUxpc3RlbmVyKGxpc3RlbmVyKTsK
KyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfQorICAgIHJldHVybiBGQUxTRTsKK30gCisKK2di
b29sZWFuIGFkZF9ldmVudF9saXN0ZW5lcihHZG9tRXZlbnRUYXJnZXROb2RlICp3ZiwgY29uc3Qg
Y2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiB1c2VDYXB0
dXJlKQoreworICAgIFdlYkNvcmU6Ok5vZGUgKm5vZGUgPSBnZG9tX2V2ZW50X3RhcmdldF9ub2Rl
X2dldF9wcml2YXRlKHdmKTsKKyAgICBpZiAobm9kZSA9PSBOVUxMIHx8ICFub2RlLT5pc0V2ZW50
VGFyZ2V0Tm9kZSgpKQorICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgV2ViQ29yZTo6RXZlbnRU
YXJnZXROb2RlICogZXRuID0gKHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAq
Pihub2RlKSktPnRvTm9kZSgpOworICAgIGlmIChldG4gPT0gTlVMTCkKKyAgICAgICAgcmV0dXJu
IEZBTFNFOworCisgICAgUmVmUHRyPE5vZGVFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IE5vZGVF
dmVudExpc3RlbmVyOjpjcmVhdGUod2YpOworICAgIGV0bi0+YWRkRXZlbnRMaXN0ZW5lcihuYW1l
LCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7CisKKyAgICByZXR1cm4gVFJVRTsKKworfSAKKworZ2Jv
b2xlYW4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSAqd2YsIEZyYW1l
ICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq
bmFtZSkKK3sKKyAgICBEb2N1bWVudCogZG9jID0gZnJhbWUtPmRvY3VtZW50KCk7CisKKyAgICBS
ZWZQdHI8V2luZG93RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBXaW5kb3dFdmVudExpc3RlbmVy
OjpjcmVhdGUod2YpOworICAgIGRvYy0+YWRkV2luZG93RXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0
ZW5lciwgdHJ1ZSk7CisKKyAgICByZXR1cm4gVFJVRTsKKworfSAKKwpJbmRleDogV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGRlZmluZXMuaAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRkZWZpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDkgQEAKIAogR19CRUdJ
Tl9ERUNMUwogCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnQgV2ViS2l0RXZlbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnRDbGFzcyBXZWJLaXRFdmVudENsYXNzOworCiB0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3QgV2ViS2l0TmV0d29ya1JlcXVlc3Q7CiB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzcyBXZWJLaXROZXR3b3JrUmVxdWVz
dENsYXNzOwogCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUy
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdo
dG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBl
dGVyIEZyZXl0aGVyCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpZm5kZWYgV0VCS0lUX0dET01fREVGSU5FU19ICisjZGVmaW5lIFdFQktJ
VF9HRE9NX0RFRklORVNfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorCisjaWZkZWYgR19PU19XSU4z
MgorICAgICNpZmRlZiBCVUlMRElOR19XRUJLSVRfR0RPTQorICAgICAgICAjZGVmaW5lIFdFQktJ
VF9HRE9NX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyAgICAjZWxzZQorICAgICAgICAjZGVm
aW5lIFdFQktJVF9HRE9NX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyAgICAjZW5kaWYKKyAg
ICAjZGVmaW5lIFdFQktJVF9HRE9NX09CU09MRVRFX0FQSSBXRUJLSVRfR0RPTV9BUEkKKyNlbHNl
CisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgi
ZGVmYXVsdCIpKSkKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9NX09CU09MRVRFX0FQSSBXRUJLSVRf
R0RPTV9BUEkgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCkpCisjZW5kaWYKKworI2lmbmRlZiBX
RUJLSVRfR0RPTV9BUEkKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQSQorI2VuZGlmCisKK0df
QkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2
ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3Mg
R2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3Qg
R2RvbURPTU9iamVjdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURP
TU9iamVjdENsYXNzOworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUF0dHIgR2RvbUF0dHI7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUF0dHJDbGFzcyBHZG9tQXR0ckNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21CYXJJbmZvIEdkb21CYXJJbmZvOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21CYXJJbmZvQ2xh
c3MgR2RvbUJhckluZm9DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzR3JhZGllbnQg
R2RvbUNhbnZhc0dyYWRpZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNHcmFkaWVudENs
YXNzIEdkb21DYW52YXNHcmFkaWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQ
YXR0ZXJuIEdkb21DYW52YXNQYXR0ZXJuOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQYXR0
ZXJuQ2xhc3MgR2RvbUNhbnZhc1BhdHRlcm5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2Fu
dmFzUGl4ZWxBcnJheSBHZG9tQ2FudmFzUGl4ZWxBcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q2FudmFzUGl4ZWxBcnJheUNsYXNzIEdkb21DYW52YXNQaXhlbEFycmF5Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBHZG9tQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRD
bGFzcyBHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNEQVRBU2VjdGlvbiBHZG9tQ0RBVEFTZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21D
REFUQVNlY3Rpb25DbGFzcyBHZG9tQ0RBVEFTZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNoYXJhY3RlckRhdGEgR2RvbUNoYXJhY3RlckRhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUNoYXJhY3RlckRhdGFDbGFzcyBHZG9tQ2hhcmFjdGVyRGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21DbGlwYm9hcmQgR2RvbUNsaXBib2FyZDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2xp
cGJvYXJkQ2xhc3MgR2RvbUNsaXBib2FyZENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db21t
ZW50IEdkb21Db21tZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db21tZW50Q2xhc3MgR2RvbUNv
bW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ29uc29sZSBHZG9tQ29uc29sZTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tQ29uc29sZUNsYXNzIEdkb21Db25zb2xlQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNvdW50ZXIgR2RvbUNvdW50ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNv
dW50ZXJDbGFzcyBHZG9tQ291bnRlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NDaGFy
c2V0UnVsZSBHZG9tQ1NTQ2hhcnNldFJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0NoYXJz
ZXRSdWxlQ2xhc3MgR2RvbUNTU0NoYXJzZXRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUNTU0ZvbnRGYWNlUnVsZSBHZG9tQ1NTRm9udEZhY2VSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21DU1NGb250RmFjZVJ1bGVDbGFzcyBHZG9tQ1NTRm9udEZhY2VSdWxlQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNTU0ltcG9ydFJ1bGUgR2RvbUNTU0ltcG9ydFJ1bGU7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUNTU0ltcG9ydFJ1bGVDbGFzcyBHZG9tQ1NTSW1wb3J0UnVsZUNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21DU1NNZWRpYVJ1bGUgR2RvbUNTU01lZGlhUnVsZTsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tQ1NTTWVkaWFSdWxlQ2xhc3MgR2RvbUNTU01lZGlhUnVsZUNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21DU1NQYWdlUnVsZSBHZG9tQ1NTUGFnZVJ1bGU7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUNTU1BhZ2VSdWxlQ2xhc3MgR2RvbUNTU1BhZ2VSdWxlQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNTU1ByaW1pdGl2ZVZhbHVlIEdkb21DU1NQcmltaXRpdmVWYWx1ZTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tQ1NTUHJpbWl0aXZlVmFsdWVDbGFzcyBHZG9tQ1NTUHJpbWl0aXZl
VmFsdWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZSBHZG9tQ1NTUnVsZTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZUNsYXNzIEdkb21DU1NSdWxlQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNTU1J1bGVMaXN0IEdkb21DU1NSdWxlTGlzdDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tQ1NTUnVsZUxpc3RDbGFzcyBHZG9tQ1NTUnVsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbiBHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbkNsYXNzIEdkb21DU1NTdHlsZURl
Y2xhcmF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlUnVsZSBHZG9tQ1NT
U3R5bGVSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZVJ1bGVDbGFzcyBHZG9tQ1NT
U3R5bGVSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlU2hlZXQgR2RvbUNT
U1N0eWxlU2hlZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlU2hlZXRDbGFzcyBHZG9t
Q1NTU3R5bGVTaGVldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYWx1ZSBHZG9tQ1NT
VmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhbHVlQ2xhc3MgR2RvbUNTU1ZhbHVlQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhbHVlTGlzdCBHZG9tQ1NTVmFsdWVMaXN0Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYWx1ZUxpc3RDbGFzcyBHZG9tQ1NTVmFsdWVMaXN0Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIEdkb21DU1NW
YXJpYWJsZXNEZWNsYXJhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzRGVj
bGFyYXRpb25DbGFzcyBHZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25DbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzUnVsZSBHZG9tQ1NTVmFyaWFibGVzUnVsZTsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzUnVsZUNsYXNzIEdkb21DU1NWYXJpYWJsZXNSdWxl
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURhdGFiYXNlIEdkb21EYXRhYmFzZTsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRGF0YWJhc2VDbGFzcyBHZG9tRGF0YWJhc2VDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRG9jdW1lbnRGcmFnbWVudCBHZG9tRG9jdW1lbnRGcmFnbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRGcmFnbWVudENsYXNzIEdkb21Eb2N1bWVudEZyYWdtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50IEdkb21Eb2N1bWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRDbGFzcyBHZG9tRG9jdW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRG9jdW1lbnRUeXBlIEdkb21Eb2N1bWVudFR5cGU7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbURvY3VtZW50VHlwZUNsYXNzIEdkb21Eb2N1bWVudFR5cGVDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRE9NQXBwbGljYXRpb25DYWNoZSBHZG9tRE9NQXBwbGljYXRpb25DYWNoZTsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NQXBwbGljYXRpb25DYWNoZUNsYXNzIEdkb21ET01BcHBs
aWNhdGlvbkNhY2hlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUNvcmVFeGNlcHRpb24g
R2RvbURPTUNvcmVFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUNvcmVFeGNlcHRp
b25DbGFzcyBHZG9tRE9NQ29yZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21E
T01JbXBsZW1lbnRhdGlvbiBHZG9tRE9NSW1wbGVtZW50YXRpb247Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3MgR2RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbURPTVBhcnNlciBHZG9tRE9NUGFyc2VyOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21ET01QYXJzZXJDbGFzcyBHZG9tRE9NUGFyc2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbURPTVNlbGVjdGlvbiBHZG9tRE9NU2VsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21ET01TZWxlY3Rpb25DbGFzcyBHZG9tRE9NU2VsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbURPTVdpbmRvdyBHZG9tRE9NV2luZG93OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01X
aW5kb3dDbGFzcyBHZG9tRE9NV2luZG93Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVsZW1l
bnQgR2RvbUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVsZW1lbnRDbGFzcyBHZG9tRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbnRpdHkgR2RvbUVudGl0eTsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRW50aXR5Q2xhc3MgR2RvbUVudGl0eUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21FbnRpdHlSZWZlcmVuY2UgR2RvbUVudGl0eVJlZmVyZW5jZTsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tRW50aXR5UmVmZXJlbmNlQ2xhc3MgR2RvbUVudGl0eVJlZmVyZW5jZUNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudEV4Y2VwdGlvbiBHZG9tRXZlbnRFeGNlcHRpb247Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50RXhjZXB0aW9uQ2xhc3MgR2RvbUV2ZW50RXhjZXB0aW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50IEdkb21FdmVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tRXZlbnRDbGFzcyBHZG9tRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RmlsZSBHZG9tRmlsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmlsZUNsYXNzIEdkb21GaWxlQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUZpbGVMaXN0IEdkb21GaWxlTGlzdDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRmlsZUxpc3RDbGFzcyBHZG9tRmlsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSGlzdG9yeSBHZG9tSGlzdG9yeTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSGlzdG9y
eUNsYXNzIEdkb21IaXN0b3J5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBbmNob3JF
bGVtZW50IEdkb21IVE1MQW5jaG9yRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFu
Y2hvckVsZW1lbnRDbGFzcyBHZG9tSFRNTEFuY2hvckVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEFwcGxldEVsZW1lbnQgR2RvbUhUTUxBcHBsZXRFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MQXBwbGV0RWxlbWVudENsYXNzIEdkb21IVE1MQXBwbGV0RWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQXJlYUVsZW1lbnQgR2RvbUhUTUxBcmVh
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFyZWFFbGVtZW50Q2xhc3MgR2RvbUhU
TUxBcmVhRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUVsZW1lbnQg
R2RvbUhUTUxCYXNlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJhc2VFbGVtZW50
Q2xhc3MgR2RvbUhUTUxCYXNlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
QmFzZUZvbnRFbGVtZW50IEdkb21IVE1MQmFzZUZvbnRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MQmFzZUZvbnRFbGVtZW50Q2xhc3MgR2RvbUhUTUxCYXNlRm9udEVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50IEdkb21IVE1MQmxv
Y2txdW90ZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVu
dENsYXNzIEdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTEJvZHlFbGVtZW50IEdkb21IVE1MQm9keUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxCb2R5RWxlbWVudENsYXNzIEdkb21IVE1MQm9keUVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTEJSRWxlbWVudCBHZG9tSFRNTEJSRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTEJSRWxlbWVudENsYXNzIEdkb21IVE1MQlJFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCdXR0b25FbGVtZW50IEdkb21IVE1MQnV0dG9uRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJ1dHRvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTEJ1
dHRvbkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTENhbnZhc0VsZW1lbnQg
R2RvbUhUTUxDYW52YXNFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ2FudmFzRWxl
bWVudENsYXNzIEdkb21IVE1MQ2FudmFzRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MQ29sbGVjdGlvbiBHZG9tSFRNTENvbGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxDb2xsZWN0aW9uQ2xhc3MgR2RvbUhUTUxDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50IEdkb21IVE1MRGlyZWN0b3J5RWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRDbGFzcyBHZG9tSFRNTERp
cmVjdG9yeUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERpdkVsZW1lbnQg
R2RvbUhUTUxEaXZFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRGl2RWxlbWVudENs
YXNzIEdkb21IVE1MRGl2RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRExp
c3RFbGVtZW50IEdkb21IVE1MRExpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
RExpc3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxETGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTERvY3VtZW50IEdkb21IVE1MRG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxEb2N1bWVudENsYXNzIEdkb21IVE1MRG9jdW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEVsZW1lbnQgR2RvbUhUTUxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MRWxlbWVudENsYXNzIEdkb21IVE1MRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MRW1iZWRFbGVtZW50IEdkb21IVE1MRW1iZWRFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MRW1iZWRFbGVtZW50Q2xhc3MgR2RvbUhUTUxFbWJlZEVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudCBHZG9tSFRNTEZpZWxkU2V0
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudENsYXNzIEdk
b21IVE1MRmllbGRTZXRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb250
RWxlbWVudCBHZG9tSFRNTEZvbnRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9u
dEVsZW1lbnRDbGFzcyBHZG9tSFRNTEZvbnRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxGb3JtRWxlbWVudCBHZG9tSFRNTEZvcm1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MRm9ybUVsZW1lbnRDbGFzcyBHZG9tSFRNTEZvcm1FbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxGcmFtZUVsZW1lbnQgR2RvbUhUTUxGcmFtZUVsZW1lbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGcmFtZUVsZW1lbnRDbGFzcyBHZG9tSFRNTEZyYW1lRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRnJhbWVTZXRFbGVtZW50IEdkb21I
VE1MRnJhbWVTZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRnJhbWVTZXRFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTEhlYWRFbGVtZW50IEdkb21IVE1MSGVhZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxIZWFkRWxlbWVudENsYXNzIEdkb21IVE1MSGVhZEVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTEhlYWRpbmdFbGVtZW50IEdkb21IVE1MSGVhZGluZ0VsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIZWFkaW5nRWxlbWVudENsYXNzIEdkb21IVE1MSGVh
ZGluZ0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhSRWxlbWVudCBHZG9t
SFRNTEhSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhSRWxlbWVudENsYXNzIEdk
b21IVE1MSFJFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIdG1sRWxlbWVu
dCBHZG9tSFRNTEh0bWxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSHRtbEVsZW1l
bnRDbGFzcyBHZG9tSFRNTEh0bWxFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxJRnJhbWVFbGVtZW50IEdkb21IVE1MSUZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTElGcmFtZUVsZW1lbnRDbGFzcyBHZG9tSFRNTElGcmFtZUVsZW1lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTEltYWdlRWxlbWVudCBHZG9tSFRNTEltYWdlRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEltYWdlRWxlbWVudENsYXNzIEdkb21IVE1MSW1hZ2VF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJbnB1dEVsZW1lbnQgR2RvbUhU
TUxJbnB1dEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJbnB1dEVsZW1lbnRDbGFz
cyBHZG9tSFRNTElucHV0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSXNJ
bmRleEVsZW1lbnQgR2RvbUhUTUxJc0luZGV4RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTElzSW5kZXhFbGVtZW50Q2xhc3MgR2RvbUhUTUxJc0luZGV4RWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGFiZWxFbGVtZW50IEdkb21IVE1MTGFiZWxFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGFiZWxFbGVtZW50Q2xhc3MgR2RvbUhUTUxMYWJlbEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExlZ2VuZEVsZW1lbnQgR2RvbUhU
TUxMZWdlbmRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGVnZW5kRWxlbWVudENs
YXNzIEdkb21IVE1MTGVnZW5kRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
TElFbGVtZW50IEdkb21IVE1MTElFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTElF
bGVtZW50Q2xhc3MgR2RvbUhUTUxMSUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTExpbmtFbGVtZW50IEdkb21IVE1MTGlua0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxMaW5rRWxlbWVudENsYXNzIEdkb21IVE1MTGlua0VsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTE1hcEVsZW1lbnQgR2RvbUhUTUxNYXBFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MTWFwRWxlbWVudENsYXNzIEdkb21IVE1MTWFwRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWFycXVlZUVsZW1lbnQgR2RvbUhUTUxNYXJxdWVlRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50Q2xhc3MgR2RvbUhU
TUxNYXJxdWVlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWVudUVsZW1l
bnQgR2RvbUhUTUxNZW51RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1lbnVFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxNZW51RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MTWV0YUVsZW1lbnQgR2RvbUhUTUxNZXRhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTE1ldGFFbGVtZW50Q2xhc3MgR2RvbUhUTUxNZXRhRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MTW9kRWxlbWVudCBHZG9tSFRNTE1vZEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxNb2RFbGVtZW50Q2xhc3MgR2RvbUhUTUxNb2RFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPYmplY3RFbGVtZW50IEdkb21IVE1MT2JqZWN0RWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9iamVjdEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9i
amVjdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9MaXN0RWxlbWVudCBH
ZG9tSFRNTE9MaXN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9MaXN0RWxlbWVu
dENsYXNzIEdkb21IVE1MT0xpc3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxPcHRHcm91cEVsZW1lbnQgR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxPcHRHcm91cEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9wdEdyb3VwRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0aW9uRWxlbWVudCBHZG9tSFRNTE9wdGlv
bkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRpb25FbGVtZW50Q2xhc3MgR2Rv
bUhUTUxPcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRpb25z
Q29sbGVjdGlvbiBHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MT3B0aW9uc0NvbGxlY3Rpb25DbGFzcyBHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50IEdkb21IVE1MUGFy
YWdyYXBoRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnRD
bGFzcyBHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTFBhcmFtRWxlbWVudCBHZG9tSFRNTFBhcmFtRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTFBhcmFtRWxlbWVudENsYXNzIEdkb21IVE1MUGFyYW1FbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxQcmVFbGVtZW50IEdkb21IVE1MUHJlRWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTFByZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFByZUVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFF1b3RlRWxlbWVudCBHZG9tSFRNTFF1b3RlRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFF1b3RlRWxlbWVudENsYXNzIEdkb21IVE1M
UXVvdGVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxTY3JpcHRFbGVtZW50
IEdkb21IVE1MU2NyaXB0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNjcmlwdEVs
ZW1lbnRDbGFzcyBHZG9tSFRNTFNjcmlwdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTFNlbGVjdEVsZW1lbnQgR2RvbUhUTUxTZWxlY3RFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MU2VsZWN0RWxlbWVudENsYXNzIEdkb21IVE1MU2VsZWN0RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU3R5bGVFbGVtZW50IEdkb21IVE1MU3R5bGVFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU3R5bGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxT
dHlsZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQgR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDZWxsRWxlbWVudCBHZG9tSFRNTFRh
YmxlQ2VsbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50
Q2xhc3MgR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxUYWJsZUNvbEVsZW1lbnQgR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxlQ29sRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVFbGVtZW50IEdkb21IVE1MVGFi
bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxUYWJsZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlUm93
RWxlbWVudCBHZG9tSFRNTFRhYmxlUm93RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TFRhYmxlUm93RWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVSb3dFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IEdkb21IVE1MVGFibGVTZWN0
aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRD
bGFzcyBHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTFRleHRBcmVhRWxlbWVudCBHZG9tSFRNTFRleHRBcmVhRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTFRleHRBcmVhRWxlbWVudENsYXNzIEdkb21IVE1MVGV4dEFyZWFFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUaXRsZUVsZW1lbnQgR2RvbUhUTUxU
aXRsZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUaXRsZUVsZW1lbnRDbGFzcyBH
ZG9tSFRNTFRpdGxlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVUxpc3RF
bGVtZW50IEdkb21IVE1MVUxpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVUxp
c3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxVTGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSW1hZ2VEYXRhIEdkb21JbWFnZURhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUltYWdl
RGF0YUNsYXNzIEdkb21JbWFnZURhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSmF2YVNj
cmlwdENhbGxGcmFtZSBHZG9tSmF2YVNjcmlwdENhbGxGcmFtZTsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSmF2YVNjcmlwdENhbGxGcmFtZUNsYXNzIEdkb21KYXZhU2NyaXB0Q2FsbEZyYW1lQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUtleWJvYXJkRXZlbnQgR2RvbUtleWJvYXJkRXZlbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUtleWJvYXJkRXZlbnRDbGFzcyBHZG9tS2V5Ym9hcmRFdmVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Mb2NhdGlvbiBHZG9tTG9jYXRpb247Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUxvY2F0aW9uQ2xhc3MgR2RvbUxvY2F0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbU1lZGlhTGlzdCBHZG9tTWVkaWFMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21N
ZWRpYUxpc3RDbGFzcyBHZG9tTWVkaWFMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1l
c3NhZ2VFdmVudCBHZG9tTWVzc2FnZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZXNzYWdl
RXZlbnRDbGFzcyBHZG9tTWVzc2FnZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1p
bWVUeXBlQXJyYXkgR2RvbU1pbWVUeXBlQXJyYXk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVU
eXBlQXJyYXlDbGFzcyBHZG9tTWltZVR5cGVBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21NaW1lVHlwZSBHZG9tTWltZVR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQ2xh
c3MgR2RvbU1pbWVUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1vdXNlRXZlbnQgR2Rv
bU1vdXNlRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1vdXNlRXZlbnRDbGFzcyBHZG9tTW91
c2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NdXRhdGlvbkV2ZW50IEdkb21NdXRh
dGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NdXRhdGlvbkV2ZW50Q2xhc3MgR2RvbU11
dGF0aW9uRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTmFtZWROb2RlTWFwIEdkb21O
YW1lZE5vZGVNYXA7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5hbWVkTm9kZU1hcENsYXNzIEdkb21O
YW1lZE5vZGVNYXBDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTmF2aWdhdG9yIEdkb21OYXZp
Z2F0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5hdmlnYXRvckNsYXNzIEdkb21OYXZpZ2F0b3JD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUZpbHRlciBHZG9tTm9kZUZpbHRlcjsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tTm9kZUZpbHRlckNsYXNzIEdkb21Ob2RlRmlsdGVyQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGUgR2RvbU5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5v
ZGVDbGFzcyBHZG9tTm9kZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlSXRlcmF0b3Ig
R2RvbU5vZGVJdGVyYXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUl0ZXJhdG9yQ2xhc3Mg
R2RvbU5vZGVJdGVyYXRvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlTGlzdCBHZG9t
Tm9kZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVMaXN0Q2xhc3MgR2RvbU5vZGVMaXN0
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vdGF0aW9uIEdkb21Ob3RhdGlvbjsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tTm90YXRpb25DbGFzcyBHZG9tTm90YXRpb25DbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tT3ZlcmZsb3dFdmVudCBHZG9tT3ZlcmZsb3dFdmVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tT3ZlcmZsb3dFdmVudENsYXNzIEdkb21PdmVyZmxvd0V2ZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVBsdWdpbkFycmF5IEdkb21QbHVnaW5BcnJheTsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tUGx1Z2luQXJyYXlDbGFzcyBHZG9tUGx1Z2luQXJyYXlDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tUGx1Z2luIEdkb21QbHVnaW47Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdp
bkNsYXNzIEdkb21QbHVnaW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvY2Vzc2luZ0lu
c3RydWN0aW9uIEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVByb2Nlc3NpbmdJbnN0cnVjdGlvbkNsYXNzIEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvZ3Jlc3NFdmVudCBHZG9tUHJvZ3Jlc3NFdmVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvZ3Jlc3NFdmVudENsYXNzIEdkb21Qcm9ncmVzc0V2ZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJhbmdlRXhjZXB0aW9uIEdkb21SYW5nZUV4Y2Vw
dGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmFuZ2VFeGNlcHRpb25DbGFzcyBHZG9tUmFuZ2VF
eGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmFuZ2UgR2RvbVJhbmdlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21SYW5nZUNsYXNzIEdkb21SYW5nZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21SZWN0IEdkb21SZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SZWN0Q2xhc3MgR2Rv
bVJlY3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU2NyZWVuIEdkb21TY3JlZW47Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVNjcmVlbkNsYXNzIEdkb21TY3JlZW5DbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tU1FMRXJyb3IgR2RvbVNRTEVycm9yOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxF
cnJvckNsYXNzIEdkb21TUUxFcnJvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1
bHRTZXQgR2RvbVNRTFJlc3VsdFNldDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0
Q2xhc3MgR2RvbVNRTFJlc3VsdFNldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1
bHRTZXRSb3dMaXN0IEdkb21TUUxSZXN1bHRTZXRSb3dMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21TUUxSZXN1bHRTZXRSb3dMaXN0Q2xhc3MgR2RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMVHJhbnNhY3Rpb24gR2RvbVNRTFRyYW5zYWN0aW9uOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxUcmFuc2FjdGlvbkNsYXNzIEdkb21TUUxUcmFuc2FjdGlv
bkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9yYWdlRXZlbnQgR2RvbVN0b3JhZ2VFdmVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3RvcmFnZUV2ZW50Q2xhc3MgR2RvbVN0b3JhZ2VFdmVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9yYWdlIEdkb21TdG9yYWdlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21TdG9yYWdlQ2xhc3MgR2RvbVN0b3JhZ2VDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tU3R5bGVTaGVldCBHZG9tU3R5bGVTaGVldDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
U3R5bGVTaGVldENsYXNzIEdkb21TdHlsZVNoZWV0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVN0eWxlU2hlZXRMaXN0IEdkb21TdHlsZVNoZWV0TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
U3R5bGVTaGVldExpc3RDbGFzcyBHZG9tU3R5bGVTaGVldExpc3RDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tVGV4dEV2ZW50IEdkb21UZXh0RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRl
eHRFdmVudENsYXNzIEdkb21UZXh0RXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4
dCBHZG9tVGV4dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dENsYXNzIEdkb21UZXh0Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRyZWVXYWxrZXIgR2RvbVRyZWVXYWxrZXI7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVRyZWVXYWxrZXJDbGFzcyBHZG9tVHJlZVdhbGtlckNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21VSUV2ZW50IEdkb21VSUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21V
SUV2ZW50Q2xhc3MgR2RvbVVJRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0
QW5pbWF0aW9uRXZlbnQgR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21XZWJLaXRBbmltYXRpb25FdmVudENsYXNzIEdkb21XZWJLaXRBbmltYXRpb25FdmVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSBHZG9tV2Vi
S2l0Q1NTVHJhbnNmb3JtVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlQ2xhc3MgR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudCBHZG9tV2ViS2l0VHJhbnNpdGlvbkV2
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzcyBHZG9t
V2ViS2l0VHJhbnNpdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdoZWVsRXZl
bnQgR2RvbVdoZWVsRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdoZWVsRXZlbnRDbGFzcyBH
ZG9tV2hlZWxFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbiBHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3MgR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0IEdkb21YTUxIdHRwUmVx
dWVzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RDbGFzcyBHZG9tWE1MSHR0
cFJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50IEdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudENsYXNzIEdkb21YTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RVcGxv
YWQgR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRw
UmVxdWVzdFVwbG9hZENsYXNzIEdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21YTUxTZXJpYWxpemVyIEdkb21YTUxTZXJpYWxpemVyOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21YTUxTZXJpYWxpemVyQ2xhc3MgR2RvbVhNTFNlcmlhbGl6ZXJDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhFdmFsdWF0b3IgR2RvbVhQYXRoRXZhbHVhdG9yOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV2YWx1YXRvckNsYXNzIEdkb21YUGF0aEV2YWx1YXRvckNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV4Y2VwdGlvbiBHZG9tWFBhdGhFeGNlcHRp
b247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXhjZXB0aW9uQ2xhc3MgR2RvbVhQYXRoRXhj
ZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXhwcmVzc2lvbiBHZG9tWFBh
dGhFeHByZXNzaW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV4cHJlc3Npb25DbGFzcyBH
ZG9tWFBhdGhFeHByZXNzaW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoTlNSZXNv
bHZlciBHZG9tWFBhdGhOU1Jlc29sdmVyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aE5TUmVz
b2x2ZXJDbGFzcyBHZG9tWFBhdGhOU1Jlc29sdmVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVhQYXRoUmVzdWx0IEdkb21YUGF0aFJlc3VsdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhS
ZXN1bHRDbGFzcyBHZG9tWFBhdGhSZXN1bHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFNM
VFByb2Nlc3NvciBHZG9tWFNMVFByb2Nlc3NvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFNMVFBy
b2Nlc3NvckNsYXNzIEdkb21YU0xUUHJvY2Vzc29yQ2xhc3M7CisKKworI2RlZmluZSBHRE9NX1RZ
UEVfRE9NX09CSkVDVCAgICAgICAgICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFICAgICAgICAgICAgKGdkb21fZXZlbnRf
dGFyZ2V0X25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0FUVFIgICAgICAgICAg
ICAoZ2RvbV9hdHRyX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9CQVJfSU5GTyAgICAg
ICAgICAgIChnZG9tX2Jhcl9pbmZvX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DQU5W
QVNfR1JBRElFTlQgICAgICAgICAgICAoZ2RvbV9jYW52YXNfZ3JhZGllbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19QQVRURVJOICAgICAgICAgICAgKGdkb21fY2FudmFz
X3BhdHRlcm5fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19QSVhFTF9BUlJB
WSAgICAgICAgICAgIChnZG9tX2NhbnZhc19waXhlbF9hcnJheV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQ0FOVkFTX1JFTkRFUklOR19DT05URVhUMkQgICAgICAgICAgICAoZ2RvbV9j
YW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
Q0RBVEFfU0VDVElPTiAgICAgICAgICAgIChnZG9tX2NkYXRhX3NlY3Rpb25fZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0NIQVJBQ1RFUl9EQVRBICAgICAgICAgICAgKGdkb21fY2hhcmFj
dGVyX2RhdGFfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NMSVBCT0FSRCAgICAgICAg
ICAgIChnZG9tX2NsaXBib2FyZF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ09NTUVO
VCAgICAgICAgICAgIChnZG9tX2NvbW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0NPTlNPTEUgICAgICAgICAgICAoZ2RvbV9jb25zb2xlX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9DT1VOVEVSICAgICAgICAgICAgKGdkb21fY291bnRlcl9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfQ1NTX0NIQVJTRVRfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19jaGFy
c2V0X3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19GT05UX0ZBQ0VfUlVM
RSAgICAgICAgICAgIChnZG9tX2Nzc19mb250X2ZhY2VfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQ1NTX0lNUE9SVF9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX2ltcG9ydF9y
dWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfTUVESUFfUlVMRSAgICAgICAg
ICAgIChnZG9tX2Nzc19tZWRpYV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9D
U1NfUEFHRV9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX3BhZ2VfcnVsZV9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfQ1NTX1BSSU1JVElWRV9WQUxVRSAgICAgICAgICAgIChnZG9tX2Nz
c19wcmltaXRpdmVfdmFsdWVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19SVUxF
ICAgICAgICAgICAgKGdkb21fY3NzX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0NTU19SVUxFX0xJU1QgICAgICAgICAgICAoZ2RvbV9jc3NfcnVsZV9saXN0X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9DU1NfU1RZTEVfREVDTEFSQVRJT04gICAgICAgICAgICAoZ2Rv
bV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NT
U19TVFlMRV9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX3N0eWxlX3J1bGVfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0NTU19TVFlMRV9TSEVFVCAgICAgICAgICAgIChnZG9tX2Nzc19z
dHlsZV9zaGVldF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZBTFVFICAgICAg
ICAgICAgKGdkb21fY3NzX3ZhbHVlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1Nf
VkFMVUVfTElTVCAgICAgICAgICAgIChnZG9tX2Nzc192YWx1ZV9saXN0X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9DU1NfVkFSSUFCTEVTX0RFQ0xBUkFUSU9OICAgICAgICAgICAgKGdk
b21fY3NzX3ZhcmlhYmxlc19kZWNsYXJhdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfQ1NTX1ZBUklBQkxFU19SVUxFICAgICAgICAgICAgKGdkb21fY3NzX3ZhcmlhYmxlc19ydWxl
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9EQVRBQkFTRSAgICAgICAgICAgIChnZG9t
X2RhdGFiYXNlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET0NVTUVOVF9GUkFHTUVO
VCAgICAgICAgICAgIChnZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9ET0NVTUVOVCAgICAgICAgICAgIChnZG9tX2RvY3VtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9ET0NVTUVOVF9UWVBFICAgICAgICAgICAgKGdkb21fZG9jdW1l
bnRfdHlwZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9NX0FQUExJQ0FUSU9OX0NB
Q0hFICAgICAgICAgICAgKGdkb21fZG9tX2FwcGxpY2F0aW9uX2NhY2hlX2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9ET01fQ09SRV9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV9kb21f
Y29yZV9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9JTVBMRU1F
TlRBVElPTiAgICAgICAgICAgIChnZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfRE9NX1BBUlNFUiAgICAgICAgICAgIChnZG9tX2RvbV9wYXJzZXJf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9TRUxFQ1RJT04gICAgICAgICAgICAo
Z2RvbV9kb21fc2VsZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET01fV0lO
RE9XICAgICAgICAgICAgKGdkb21fZG9tX3dpbmRvd19nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0VOVElUWSAgICAgICAgICAgIChnZG9tX2VudGl0eV9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfRU5USVRZX1JFRkVSRU5DRSAgICAgICAgICAgIChnZG9tX2VudGl0
eV9yZWZlcmVuY2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UX0VYQ0VQVElP
TiAgICAgICAgICAgIChnZG9tX2V2ZW50X2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfRVZFTlQgICAgICAgICAgICAoZ2RvbV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfRklMRSAgICAgICAgICAgIChnZG9tX2ZpbGVfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0ZJTEVfTElTVCAgICAgICAgICAgIChnZG9tX2ZpbGVfbGlzdF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSElTVE9SWSAgICAgICAgICAgIChnZG9tX2hpc3Rvcnlf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQU5DSE9SX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9IVE1MX0FQUExFVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9hcHBsZXRfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9BUkVBX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9CQVNFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Jhc2VfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CQVNFX0ZPTlRfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfYmFzZV9mb250X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfQkxPQ0tRVU9URV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9ibG9ja3F1b3RlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxf
Qk9EWV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxCUl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bGJyX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQlVUVE9OX0VM
RU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9IVE1MX0NBTlZBU19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9jYW52YXNfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9DT0xM
RUNUSU9OICAgICAgICAgICAgKGdkb21faHRtbF9jb2xsZWN0aW9uX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9IVE1MX0RJUkVDVE9SWV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9kaXJlY3RvcnlfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9E
SVZfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZGl2X2VsZW1lbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxEX0xJU1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxkX2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9ET0NV
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9FTUJFRF9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MX0ZJRUxEX1NFVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9maWVsZF9zZXRfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GT05UX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX2ZvbnRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9GT1JNX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Zvcm1fZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GUkFNRV9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9IVE1MX0ZSQU1FX1NFVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9mcmFtZV9z
ZXRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9IRUFEX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX2hlYWRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTF9IRUFESU5HX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2hl
YWRpbmdfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTEhSX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1saHJfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9IVE1MX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2h0bWxfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTElfRlJBTUVfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxpX2ZyYW1lX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfSU1BR0VfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaW1hZ2Vf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9JTlBVVF9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX0lTX0lOREVYX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2lz
X2luZGV4X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTEFCRUxf
RUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbGFiZWxfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9MRUdFTkRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxfbGVnZW5kX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxMSV9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGxpX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfTElOS19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9saW5r
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTUFQX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX21hcF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX01BUlFVRUVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWFycXVl
ZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01FTlVfRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfbWVudV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX01FVEFfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWV0YV9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01PRF9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF9tb2RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9PQkpFQ1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfb2JqZWN0X2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxPX0xJU1RfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxvX2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9PUFRfR1JPVVBfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfb3B0
X2dyb3VwX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfT1BUSU9O
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9IVE1MX09QVElPTlNfQ09MTEVDVElPTiAgICAgICAgICAgIChn
ZG9tX2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MX1BBUkFHUkFQSF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9wYXJhZ3JhcGhf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9QQVJBTV9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9wYXJhbV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX1BSRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9wcmVfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9RVU9URV9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF9xdW90ZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX1NDUklQVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9zY3JpcHRf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9TRUxFQ1RfRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfU1RZTEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfc3R5
bGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DQVBU
SU9OX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX2NhcHRpb25fZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DRUxMX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DT0xfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
dGFibGVfY29sX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFC
TEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9ST1dfRUxFTUVOVCAgICAgICAgICAgIChn
ZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfVEFCTEVfU0VDVElPTl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9z
ZWN0aW9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEVYVF9B
UkVBX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RJVExFX0VMRU1FTlQgICAgICAgICAgICAo
Z2RvbV9odG1sX3RpdGxlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hU
TUxVX0xJU1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWx1X2xpc3RfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSU1BR0VfREFUQSAgICAgICAgICAgIChnZG9tX2lt
YWdlX2RhdGFfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0pBVkFfU0NSSVBUX0NBTExf
RlJBTUUgICAgICAgICAgICAoZ2RvbV9qYXZhX3NjcmlwdF9jYWxsX2ZyYW1lX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9LRVlCT0FSRF9FVkVOVCAgICAgICAgICAgIChnZG9tX2tleWJv
YXJkX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9MT0NBVElPTiAgICAgICAg
ICAgIChnZG9tX2xvY2F0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NRURJQV9M
SVNUICAgICAgICAgICAgKGdkb21fbWVkaWFfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfTUVTU0FHRV9FVkVOVCAgICAgICAgICAgIChnZG9tX21lc3NhZ2VfZXZlbnRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01JTUVfVFlQRV9BUlJBWSAgICAgICAgICAgIChnZG9t
X21pbWVfdHlwZV9hcnJheV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUlNRV9UWVBF
ICAgICAgICAgICAgKGdkb21fbWltZV90eXBlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9NT1VTRV9FVkVOVCAgICAgICAgICAgIChnZG9tX21vdXNlX2V2ZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9NVVRBVElPTl9FVkVOVCAgICAgICAgICAgIChnZG9tX211dGF0aW9u
X2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OQU1FRF9OT0RFX01BUCAgICAg
ICAgICAgIChnZG9tX25hbWVkX25vZGVfbWFwX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9OQVZJR0FUT1IgICAgICAgICAgICAoZ2RvbV9uYXZpZ2F0b3JfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX05PREVfRklMVEVSICAgICAgICAgICAgKGdkb21fbm9kZV9maWx0ZXJfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05PREUgICAgICAgICAgICAoZ2RvbV9ub2RlX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT0RFX0lURVJBVE9SICAgICAgICAgICAgKGdk
b21fbm9kZV9pdGVyYXRvcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTk9ERV9MSVNU
ICAgICAgICAgICAgKGdkb21fbm9kZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9OT1RBVElPTiAgICAgICAgICAgIChnZG9tX25vdGF0aW9uX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9PVkVSRkxPV19FVkVOVCAgICAgICAgICAgIChnZG9tX292ZXJmbG93X2V2ZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9QTFVHSU5fQVJSQVkgICAgICAgICAgICAo
Z2RvbV9wbHVnaW5fYXJyYXlfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1BMVUdJTiAg
ICAgICAgICAgIChnZG9tX3BsdWdpbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUFJP
Q0VTU0lOR19JTlNUUlVDVElPTiAgICAgICAgICAgIChnZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rp
b25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1BST0dSRVNTX0VWRU5UICAgICAgICAg
ICAgKGdkb21fcHJvZ3Jlc3NfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1JB
TkdFX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9tX3JhbmdlX2V4Y2VwdGlvbl9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfUkFOR0UgICAgICAgICAgICAoZ2RvbV9yYW5nZV9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUkVDVCAgICAgICAgICAgIChnZG9tX3JlY3RfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NDUkVFTiAgICAgICAgICAgIChnZG9tX3NjcmVlbl9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1FMX0VSUk9SICAgICAgICAgICAgKGdkb21f
c3FsX2Vycm9yX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxfUkVTVUxUX1NFVCAg
ICAgICAgICAgIChnZG9tX3NxbF9yZXN1bHRfc2V0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9TUUxfUkVTVUxUX1NFVF9ST1dfTElTVCAgICAgICAgICAgIChnZG9tX3NxbF9yZXN1bHRf
c2V0X3Jvd19saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxfVFJBTlNBQ1RJ
T04gICAgICAgICAgICAoZ2RvbV9zcWxfdHJhbnNhY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX1NUT1JBR0VfRVZFTlQgICAgICAgICAgICAoZ2RvbV9zdG9yYWdlX2V2ZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TVE9SQUdFICAgICAgICAgICAgKGdkb21fc3Rv
cmFnZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1RZTEVfU0hFRVQgICAgICAgICAg
ICAoZ2RvbV9zdHlsZV9zaGVldF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1RZTEVf
U0hFRVRfTElTVCAgICAgICAgICAgIChnZG9tX3N0eWxlX3NoZWV0X2xpc3RfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX1RFWFRfRVZFTlQgICAgICAgICAgICAoZ2RvbV90ZXh0X2V2ZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9URVhUICAgICAgICAgICAgKGdkb21fdGV4
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfVFJFRV9XQUxLRVIgICAgICAgICAgICAo
Z2RvbV90cmVlX3dhbGtlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfVUlfRVZFTlQg
ICAgICAgICAgICAoZ2RvbV91aV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
V0VCX0tJVF9BTklNQVRJT05fRVZFTlQgICAgICAgICAgICAoZ2RvbV93ZWJfa2l0X2FuaW1hdGlv
bl9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfV0VCX0tJVF9DU1NfVFJBTlNG
T1JNX1ZBTFVFICAgICAgICAgICAgKGdkb21fd2ViX2tpdF9jc3NfdHJhbnNmb3JtX3ZhbHVlX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9XRUJfS0lUX1RSQU5TSVRJT05fRVZFTlQgICAg
ICAgICAgICAoZ2RvbV93ZWJfa2l0X3RyYW5zaXRpb25fZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX1dIRUVMX0VWRU5UICAgICAgICAgICAgKGdkb21fd2hlZWxfZXZlbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1RfRVhDRVBUSU9OICAg
ICAgICAgICAgKGdkb21feG1sX2h0dHBfcmVxdWVzdF9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1QgICAgICAgICAgICAoZ2RvbV94bWxfaHR0
cF9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YTUxfSFRUUF9SRVFVRVNU
X1BST0dSRVNTX0VWRU5UICAgICAgICAgICAgKGdkb21feG1sX2h0dHBfcmVxdWVzdF9wcm9ncmVz
c19ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWE1MX0hUVFBfUkVRVUVTVF9V
UExPQUQgICAgICAgICAgICAoZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3VwbG9hZF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfWE1MX1NFUklBTElaRVIgICAgICAgICAgICAoZ2RvbV94bWxf
c2VyaWFsaXplcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWF9QQVRIX0VWQUxVQVRP
UiAgICAgICAgICAgIChnZG9tX3hfcGF0aF9ldmFsdWF0b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX1hfUEFUSF9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV94X3BhdGhfZXhjZXB0
aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YX1BBVEhfRVhQUkVTU0lPTiAgICAg
ICAgICAgIChnZG9tX3hfcGF0aF9leHByZXNzaW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9YX1BBVEhfTlNfUkVTT0xWRVIgICAgICAgICAgICAoZ2RvbV94X3BhdGhfbnNfcmVzb2x2
ZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9SRVNVTFQgICAgICAgICAg
ICAoZ2RvbV94X3BhdGhfcmVzdWx0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YU0xU
X1BST0NFU1NPUiAgICAgICAgICAgIChnZG9tX3hzbHRfcHJvY2Vzc29yX2dldF90eXBlKCkpCitH
X0VORF9ERUNMUworCisjZW5kaWYKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L2dkb20uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tLmgJKHJldmlzaW9uIDApCisrKyBXZWJL
aXQvZ3RrL3dlYmtpdC9nZG9tLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYwIEBACisjaW5j
bHVkZSA8d2Via2l0L0dkb21FdmVudFRhcmdldE5vZGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bURPTU9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQXR0ci5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tQmFySW5mby5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2FudmFzR3JhZGllbnQu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNhbnZhc1BhdHRlcm4uaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUNhbnZhc1BpeGVsQXJyYXkuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ0RBVEFTZWN0aW9uLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21DaGFyYWN0ZXJEYXRhLmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21DbGlwYm9hcmQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNvbW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUNvbnNvbGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNvdW50ZXIu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU0NoYXJzZXRSdWxlLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21DU1NGb250RmFjZVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU0ltcG9y
dFJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU01lZGlhUnVsZS5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tQ1NTUGFnZVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ByaW1p
dGl2ZVZhbHVlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NSdWxlLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21DU1NSdWxlTGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTU3R5bGVSdWxlLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21DU1NTdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21D
U1NWYWx1ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTVmFsdWVMaXN0Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRGF0YWJhc2Uu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURvY3VtZW50RnJhZ21lbnQuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbURvY3VtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1bWVudFR5cGUu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbURPTUNvcmVFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURP
TUltcGxlbWVudGF0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01QYXJzZXIuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbURPTVNlbGVjdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
RE9NV2luZG93Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21FbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21FbnRpdHkuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUVudGl0eVJlZmVyZW5j
ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRXZlbnRFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21GaWxlLmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21GaWxlTGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSGlzdG9yeS5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEFuY2hvckVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUhUTUxBcHBsZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1M
QXJlYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCYXNlRWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MQm9keUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCUkVsZW1lbnQuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCdXR0b25FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21IVE1MQ2FudmFzRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTENv
bGxlY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRGl2RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTERMaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTERvY3Vt
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTEVtYmVkRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZp
ZWxkU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZvbnRFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRm9ybUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxGcmFt
ZVNldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIZWFkRWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEhlYWRpbmdFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21IVE1MSFJFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSHRtbEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJRnJhbWVFbGVtZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21IVE1MSW1hZ2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21IVE1MSW5wdXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSXNJbmRleEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxMYWJlbEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxMZWdlbmRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21IVE1MTElFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTGlua0VsZW1lbnQu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxNYXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21IVE1MTWFycXVlZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxN
ZW51RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE1ldGFFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTW9kRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTE9iamVjdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPTGlzdEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPcHRpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxQ
YXJhZ3JhcGhFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MUGFyYW1FbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MUHJlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTFF1b3RlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFNj
cmlwdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxTZWxlY3RFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MU3R5bGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
SFRNTFRhYmxlQ2VsbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUNv
bEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MVGV4dEFyZWFFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGl0bGVFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVUxpc3RFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21JbWFnZURhdGEuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUphdmFTY3Jp
cHRDYWxsRnJhbWUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUtleWJvYXJkRXZlbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUxvY2F0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21NZWRp
YUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1lc3NhZ2VFdmVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tTWltZVR5cGVBcnJheS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTWltZVR5
cGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1vdXNlRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbU11dGF0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5hbWVkTm9kZU1h
cC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTmF2aWdhdG9yLmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21Ob2RlRmlsdGVyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Ob2RlLmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21Ob2RlSXRlcmF0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVM
aXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Ob3RhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tT3ZlcmZsb3dFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUGx1Z2luQXJyYXku
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVBsdWdpbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Qcm9ncmVzc0V2
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21SYW5nZUV4Y2VwdGlvbi5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tUmFuZ2UuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVJlY3QuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbVNjcmVlbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU1FMRXJyb3Iu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVNRTFJlc3VsdFNldC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU1FMVHJh
bnNhY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVN0b3JhZ2VFdmVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tU3RvcmFnZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU3R5bGVTaGVl
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU3R5bGVTaGVldExpc3QuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbVRleHRFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tVGV4dC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tVHJlZVdhbGtlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tVUlF
dmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bVdoZWVsRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWE1M
U2VyaWFsaXplci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhFdmFsdWF0b3IuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRoRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21YUGF0aEV4cHJlc3Npb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRoTlNSZXNvbHZl
ci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhSZXN1bHQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbVhTTFRQcm9jZXNzb3IuaD4KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuaAkocmV2
aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMg
UGV0ZXIgRnJleXRoZXIKKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBXRUJLSVRfRVZFTlRfSAorI2RlZmluZSBXRUJLSVRfRVZF
TlRfSAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKworI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9FVkVO
VCAgICAgICAgICAgICh3ZWJraXRfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0VW
RU5UKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdF
QktJVF9UWVBFX0VWRU5ULCBXZWJLaXRFdmVudCkpCisjZGVmaW5lIFdFQktJVF9FVkVOVF9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9FVkVOVCwgV2ViS2l0RXZlbnRDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19FVkVOVChvYmop
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9F
VkVOVCkpCisjZGVmaW5lIFdFQktJVF9JU19FVkVOVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9FVkVOVCkpCisjZGVmaW5lIFdFQktJ
VF9FVkVOVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiks
ICBXRUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZlbnRDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRFdmVudFByaXZhdGUgV2ViS2l0RXZlbnRQcml2YXRlOworCitzdHJ1Y3QgX1dlYktp
dEV2ZW50IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIFdlYktpdEV2ZW50
UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0RXZlbnRDbGFzcyB7CisgICAgR09i
amVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9l
dmVudF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0RXZlbnQgKgord2Via2l0
X2V2ZW50X25ldyAgICAgICh2b2lkKTsKKworLypXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9ldmVu
dF9zZXRfdXJpICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciogICAgICAgICAgdXJpKTsqLworCitHX0VORF9ERUNMUwor
CisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogV2ViQ29yZSA6PSAkKHNyY2Rp
cikvV2ViQ29yZQogCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZB
U0NSSVBUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZH
X0ZFQVRVUkVTIDo9CiBIVE1MX0ZFQVRVUkVTIDo9CiAKQEAgLTksNiArMTAsNyBAQAogV0VCQ09S
RV9DU1NfVkFMVUVfS0VZV09SRFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAkt
SSQoc3JjZGlyKS9XZWJDb3JlIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtIFwKIAkt
SSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsgXApAQCAtMjksNiArMzEsNyBAQAog
CS1JJChzcmNkaXIpL1dlYkNvcmUveG1sIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2h0bWwgXAog
CS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvanMgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAg
XAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmIFwKQEAg
LTU1LDcgKzU4LDcgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQu
aCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1dC5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAgCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyAr
PSBcCiAJRGVyaXZlZFNvdXJjZXMvQ1NTR3JhbW1hci5jcHAgXApAQCAtMzU4LDcgKzM2MSw1ODcg
QEAKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKIAlEZXJpdmVkU291
cmNlcy9Vc2VyQWdlbnRTdHlsZVNoZWV0c0RhdGEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTUxO
YW1lcy5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmgKKwlEZXJpdmVkU291cmNlcy9Y
TUxOYW1lcy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQXR0ci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21BdHRyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21CYXJJbmZvLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUJhckluZm8uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNEQVRBU2Vj
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNTU0NoYXJzZXRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U0NoYXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NGb250RmFjZVJ1bGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTRm9udEZhY2VSdWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ltcG9y
dFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlhUnVsZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NNZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1Bh
Z2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1BhZ2VSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NQcmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21DU1NQcmltaXRpdmVWYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlTGlzdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NT
dHlsZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVSdWxlLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNTU1N0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NW
YWx1ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJs
ZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNHcmFkaWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q2FudmFzUGF0dGVybi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQYXR0ZXJuLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNhbnZhc1BpeGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNoYXJhY3RlckRhdGEuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2hhcmFjdGVyRGF0YS5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNsaXBib2FyZC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ29tbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
b21tZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNvbnNvbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvdW50ZXIuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9N
Q29yZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21ET01JbXBsZW1lbnRhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
RE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVBhcnNlci5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRE9NU2VsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURP
TVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2luZG93LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbURPTVdpbmRvdy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbURvY3VtZW50RnJhZ21lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1l
bnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21FbnRpdHkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tRW50aXR5UmVmZXJlbmNlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZl
bnRFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnRFeGNlcHRpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmls
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tRmlsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBbmNob3JFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBbmNob3JFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MQXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MQXBwbGV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFyZWFFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTEJSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MQlJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3Rl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MQm9keUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxC
dXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCdXR0b25FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ2FudmFzRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENvbGxlY3Rpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTERMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TERpcmVjdG9yeUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpcmVjdG9y
eUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERvY3VtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVtYmVkRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb250
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRm9ybUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
SFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MSGVhZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkaW5n
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MSHRtbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJRnJh
bWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJRnJhbWVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJ
bnB1dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTExJRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxMYWJlbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxM
ZWdlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMZWdlbmRFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGlua0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFwRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TE1lbnVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxNZXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1v
ZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9iamVj
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTE9wdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFy
YW1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxQcmVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUXVvdGVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2VsZWN0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VGFibGVDYXB0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVD
YXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFRhYmxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVUxpc3RFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IaXN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0YS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21JbWFnZURhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUphdmFT
Y3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2YVNjcmlwdENhbGxG
cmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tS2V5Ym9hcmRFdmVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Mb2Nh
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Mb2NhdGlvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVzc2FnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bU1pbWVUeXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJheS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTW91c2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NdXRhdGlvbkV2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYW1lZE5vZGVN
YXAuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hdmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTm9kZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUZpbHRl
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21Ob2RlSXRlcmF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUl0ZXJh
dG9yLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21Ob2RlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm90YXRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tTm90YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU92
ZXJmbG93RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tT3ZlcmZsb3dFdmVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBs
dWdpbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUGx1Z2luQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2Nlc3Np
bmdJbnN0cnVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tUHJvZ3Jlc3NFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFu
Z2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVJhbmdlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlRXhjZXB0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU3R5bGVTaGVldExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldExp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tVGV4dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVHJlZVdhbGtl
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21UcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21X
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRw
UmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFVw
bG9hZC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YU0xU
UHJvY2Vzc29yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQcm9jZXNzb3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21BdHRyLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQmFySW5mby5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tQ0RBVEFTZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTQ2hhcnNl
dFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0NoYXJzZXRSdWxlLmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTRm9udEZhY2VSdWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NJbXBvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTTWVk
aWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NNZWRpYVJ1bGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NQcmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
Q1NTUHJpbWl0aXZlVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NSdWxl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NSdWxlLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ1NTUnVsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5
bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1N0eWxlUnVsZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYWx1ZS5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tQ1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
Q1NTVmFyaWFibGVzUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc0dy
YWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNHcmFkaWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1BhdHRlcm4uY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DYW52YXNQaXhlbEFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21D
aGFyYWN0ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DaGFyYWN0ZXJE
YXRhLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db21tZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvdW50ZXIuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tRE9NSW1wbGVtZW50YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
RE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01QYXJzZXIuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbURPTVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NV2lu
ZG93LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbURvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
RG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURvY3VtZW50
VHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnRUeXBlLmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUVudGl0
eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRW50aXR5LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tRW50aXR5UmVmZXJlbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21FbnRpdHlSZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21GaWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21GaWxlLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUZpbGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFu
Y2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBbmNob3JF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFwcGxldEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MQlJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJhc2VF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQm9keUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MQnV0dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxDYW52
YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQ2FudmFzRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxDb2xsZWN0aW9uLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MRGl2RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERpdkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRG9jdW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxFbWJl
ZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxFbWJlZEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRmllbGRTZXRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRmllbGRTZXRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MRm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxG
cmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGcmFtZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRnJhbWVTZXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTEhlYWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhl
YWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVhZGlu
Z0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSHRtbEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSUZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MSW5wdXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSW5w
dXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSXNJbmRleEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTExhYmVsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxMZWdlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGVn
ZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMaW5rRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExpbmtFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZW51
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZXRhRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1ldGFFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTE9MaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPYmpl
Y3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT2JqZWN0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUHJl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFByZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTFNlbGVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFN0
eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFN0eWxlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDYXB0aW9uRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGl0
bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGl0bGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21JbWFnZURhdGEu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21LZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTG9jYXRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZXNzYWdlRXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1pbWVU
eXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1pbWVUeXBlQXJyYXku
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tTXV0YXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTXV0
YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5hbWVkTm9kZU1hcC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
Tm9kZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGVJdGVyYXRvci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm90YXRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vdGF0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVBs
dWdpbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1Z2luLmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbVBsdWdpbkFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9ncmVz
c0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9ncmVzc0V2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVJhbmdlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2VF
eGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVJhbmdlRXhjZXB0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmVjdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNjcmVl
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU2NyZWVuLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0eWxlU2hl
ZXRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHlsZVNoZWV0TGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UZXh0RXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRleHRFdmVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21VSUV2
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21VSUV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21X
aGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxTZXJpYWxpemVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFNMVFBy
b2Nlc3Nvci5oICBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5LmggCiAKIElETF9CSU5ESU5HUyArPSAgXAogCVdlYkNvcmUvY3NzL0NvdW50
ZXIuaWRsIFwKQEAgLTcwMSw2ICsxMjg0LDE2IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0
LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaCBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21F
dmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZl
bnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZl
bnRUYXJnZXROb2RlLmggXAogCVdlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcCBcCiAJV2Vi
Q29yZS9icmlkZ2UvTlBfanNvYmplY3QuaCBcCiAJV2ViQ29yZS9icmlkZ2UvYy9jX2NsYXNzLmNw
cCBcCkBAIC0yMDA4LDkgKzI2MDEsMTIgQEAKICMgLS0tLQogaWYgRU5BQkxFX09GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TPTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKLQlE
ZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCisJRGVyaXZlZFNvdXJjZXMv
SlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUFwcGxp
Y2F0aW9uQ2FjaGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTUFwcGxpY2F0
aW9uQ2FjaGUuY3BwCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKQEAgLTIwNTIsNiArMjY0OCw3IEBACiAjIC0tLS0K
IGlmIEVOQUJMRV9EQVRBQkFTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X0RBVEFCQVNFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9EQVRBQkFTRT0xCiAK
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSlNEYXRhYmFzZS5j
cHAgXApAQCAtMjA2Myw3ICsyNjYwLDI3IEBACiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxSZXN1bHRT
ZXRSb3dMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxSZXN1bHRTZXRSb3dMaXN0Lmgg
XAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uY3BwIFwKLQlEZXJpdmVkU291cmNl
cy9KU1NRTFRyYW5zYWN0aW9uLmgKKwlEZXJpdmVkU291cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21EYXRhYmFzZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3Vs
dFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMVHJhbnNh
Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMVHJhbnNhY3Rpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21EYXRhYmFzZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxFcnJv
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNR
TFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFJl
c3VsdFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxUcmFuc2Fj
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMVHJhbnNhY3Rpb24uaAog
CiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXApAQCAt
MjEzOCwxMiArMjc1NSwyMSBAQAogIyAtLS0tCiBpZiBFTkFCTEVfRE9NX1NUT1JBR0UKIEZFQVRV
UkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCitGRUFUVVJFX0RF
RklORVNfR0RPTSArPSBFTkFCTEVfRE9NX1NUT1JBR0U9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZS5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L0pTU3RvcmFnZS5oIFwKIAlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5jcHAgXAotCURl
cml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmgKKwlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFnZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TdG9yYWdlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tU3RvcmFnZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3Rv
cmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0b3JhZ2VFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3RvcmFnZUV2ZW50LmgKIAogSURMX0JJTkRJTkdT
ICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5pZGwgXApAQCAtMjIwMyw2ICsyODI5LDcg
QEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1ZJREVPPTEK
IAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklERU89MQogd2ViY29yZV9jcHBmbGFncyArPSAt
REVOQUJMRV9WSURFTz0xCkBAIC0yMjI1LDcgKzI4NTIsMzUgQEAKIAlEZXJpdmVkU291cmNlcy9K
U1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suY3BwIFwKLQlEZXJpdmVkU291cmNlcy9KU1ZvaWRD
YWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxBdWRpb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lZGlhRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFZpZGVvRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21NZWRpYUVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlh
RXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tVGltZVJhbmdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVm9pZENhbGxi
YWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVZvaWRDYWxsYmFjay5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxBdWRpb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxBdWRpb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MTWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNvdXJj
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxTb3VyY2VFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFZpZGVvRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFZpZGVvRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UaW1l
UmFuZ2VzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UaW1lUmFuZ2VzLmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21Wb2lkQ2FsbGJhY2suaAogCiBJRExfQklORElOR1MgKz0gXAogCVdl
YkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbCBcCkBAIC0yMjY5LDYgKzI5MjQsNyBAQAog
IyAtLS0tCiBpZiBFTkFCTEVfWFBBVEgKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVO
QUJMRV9YUEFUSD0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfWFBBVEg9MQogCiB3
ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1hQQVRIPTEKIApAQCAtMjI4NCw3ICsyOTQwLDI3
IEBACiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0aFJlc3VsdC5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L0pTWFBhdGhSZXN1bHQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmNwcCBcCi0J
RGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmgKKwlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1t
YXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVhQYXRoRXZhbHVhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0
aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4Y2VwdGlvbi5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhOU1Jl
c29sdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WFBhdGhSZXN1bHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV2YWx1YXRv
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21YUGF0aEV4cHJlc3Npb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoTlNS
ZXNvbHZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhOU1Jlc29sdmVy
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoUmVzdWx0LmgKIAogSURMX0JJTkRJTkdTICs9IFwK
IAlXZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwgXApAQCAtMjM0OSw2ICszMDI1LDcgQEAK
ICMgLS0tLQogaWYgRU5BQkxFX1hTTFQKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVO
QUJMRV9YU0xUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9YU0xUPTEKIAogd2Vi
Y29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YU0xUPTEKIApAQCAtMjM3Miw2ICszMDQ5LDcgQEAK
ICMgLS0tLQogaWYgRU5BQkxFX1NWRwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5B
QkxFX1NWRz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWRz0xIC0gYmlnIFRP
RE8hIDopCiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTICs9ICQoV2ViQ29yZSkvY3NzL1NW
R0NTU1Byb3BlcnR5TmFtZXMuaW4gCiBXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUyArPSAkKFdl
YkNvcmUpL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yNjQ5LDYgKzMzMjcsMjczIEBA
CiAJRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTGlua05h
bWVzLmNwcAogCitub3QteWV0OgorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FsdEds
eXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5nbGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1h
dGVDb2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZUNvbG9y
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkQW5n
bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkSW50ZWdlci5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Fu
aW1hdGVkTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZExl
bmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTnVtYmVyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTnVtYmVyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRl
ZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0
ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRl
ZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRSZWN0LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFN0cmluZy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkVHJh
bnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRpb25FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdDaXJjbGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0NpcmNsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NsaXBQYXRoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDbGlwUGF0aEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0NvbG9yLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ3Vyc29yRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDdXJzb3JFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRGVmc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVmc0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Rlc2NFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0Rlc2NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEb2N1
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEb2N1bWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50SW5zdGFuY2UuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudEluc3RhbmNlLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0VsZW1lbnRJbnN0YW5jZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRX
cmFwcGVyRmFjdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGxpcHNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGxpcHNlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVCbGVuZEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVCbGVuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVD
b21wb3NpdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9zaXRl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
RkVGbG9vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0FFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0FFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNCRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGRUZ1bmNCRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jR0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jR0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY1JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUltYWdlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRkVNZXJnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRkVNZXJnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFTWVyZ2VOb2Rl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlTm9kZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGRU9mZnNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVQ
b2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVNwb3RMaWdodEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVTcG90TGlnaHRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVRpbGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVUdXJidWxlbmNl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRmlsdGVyRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGaWx0ZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZU5h
bWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZVNyY0VsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VTcmNFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb3Jl
aWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdHbHlwaEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dyYWRpZW50RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdJbWFn
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xlbmd0aC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xlbmd0
aExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGVuZ3RoTGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHTGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHTGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hcmtlckVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHTWFza0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWFza0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hdHJpeC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdNYXRyaXguaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01ldGFkYXRhRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR051bWJlci5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYWludC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdQYWludC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0
aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWcuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0FyY0Ficy5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQXJjQWJzLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Bh
dGhTZWdBcmNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDbG9zZVBhdGgu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdM
aW5ldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXR0
ZXJuRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXR0ZXJuRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9pbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUG9pbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvaW50TGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1BvbHlnb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvbHlnb25F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2x5bGluZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWxpbmVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JlY3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVjdEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVjdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1JlbmRlcmluZ0ludGVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NWR0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU1ZHRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTZXRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1N0b3BFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0
b3BFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTdHJpbmdMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0cmluZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1N0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTdHlsZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N3aXRjaEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHU3dpdGNoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTeW1ib2xFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUUmVmRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
VFNwYW5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RTcGFuRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHVGV4dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRQYXRoRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0UGF0aEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
VGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RpdGxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVHJhbnNmb3JtLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1RyYW5zZm9ybS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVHJhbnNmb3Jt
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUcmFuc2Zvcm1MaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdVbml0VHlwZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdVc2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1ZpZXdFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdab29tRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29y
ZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQu
aWRsIFwKQEAgLTMyMjgsMzYgKzQxNzMsNDIgQEAKICMgU1ZHIEZlYXR1cmVzCiBpZiBFTkFCTEVf
U1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19VU0U9MQor
I0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfVVNFPTEgIyBiaWcgVE9ETyEKIFNW
R19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVAogRkVB
VFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCisj
RkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xIAogU1ZH
X0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogd2ViY29yZV9jcHBmbGFn
cyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NW
R19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT05UUz0x
CisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT05UUz0xCiBTVkdfRkVBVFVS
RVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NW
R19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZJTFRFUlMKIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dE
T00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZJ
TFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRklMVEVSUz0xCiBlbmRp
ZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVf
U1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdl
YmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVO
QUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
U1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BTklN
QVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVf
Y3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpAQCAtMzI2NSwxMyAr
NDIxNiwxNCBAQAogIyBTVkcgdGFnIGFuZCBhdHRyaWJ1dGUgbmFtZXMgKG5lZWQgdG8gcGFzcyBh
biBleHRyYSBmbGFnIGlmIHN2ZyBleHBlcmltZW50YWwgZmVhdHVyZXMgYXJlIGVuYWJsZWQpCiBE
ZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0
b3J5LmNwcDsKIERlcml2ZWRTb3VyY2VzL0pTU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDog
RGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCitEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZh
Y3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3Rv
cnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3Rh
Z3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0
cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1leHRyYURlZmluZXMgIiQoU1ZHX0ZFQVRV
UkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0
dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVzICIkKFNWR19GRUFU
VVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIGVsc2UKIERlcml2ZWRTb3VyY2Vz
L1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdl
YkNvcmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluCi0JJChQRVJM
KSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcv
c3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tb3V0cHV0RGly
ICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMg
JDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL3N2
Zy9zdmdhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiAKIGVuZGlmICMgU1ZH
X0ZMQUdTCiAKQEAgLTMyODAsNyArNDIzMiw3IEBACiBEZXJpdmVkU291cmNlcy9YTGlua05hbWVz
Lmg6IERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwOwogCiBEZXJpdmVkU291cmNlcy9YTGlu
a05hbWVzLmNwcCA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcv
eGxpbmthdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwg
LS1hdHRycyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNP
VVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRy
cyAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMp
IiAKIAogZW5kaWYgIyBFTkQgRU5BQkxFX1NWRwogCkBAIC0zMzYxLDE2ICs0MzEzLDE2IEBACiAK
IGlmIEhUTUxfRkxBR1MKIERlcml2ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkv
ZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAkKFdlYkNv
cmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAt
LWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1leHRyYURlZmlu
ZXMgIiQoSFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVS
TCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRt
bC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKEhUTUxfRkVBVFVSRVMpIiAtLW91dHB1dERpciAiJChH
RU5TT1VSQ0VTKSIgCiBlbHNlCiBEZXJpdmVkU291cmNlcy9IVE1MTmFtZXMuY3BwOiAkKFdlYkNv
cmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gJChX
ZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMu
aW4gLS1hdHRycyAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tb3V0cHV0
RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdl
YkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJD
RVMpIiAKIGVuZGlmICMgSFRNTF9GTEFHUwogCiBEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oOiBE
ZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNw
cDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5p
bgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS1hdHRycyAkKFdl
YkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIKKwkkKFBF
UkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94
bWwveG1sYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogCiB2cGF0aCAlLmlk
bCA9IFwKICAgICAkKFdlYkNvcmUpIFwKQEAgLTMzODYsNiArNDMzOCwxNSBAQAogICAgICQoV2Vi
Q29yZSkveG1sIFwKICAgICAkKFdlYkNvcmUpL3BsdWdpbnMKIAorRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb20lLmg6IERlcml2ZWRTb3VyY2VzL0dkb20lLmg7CisKK0Rlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tJS5jcHA6IERlcml2ZWRTb3VyY2VzL0dkb20lLmNwcDsKKworRGVyaXZlZFNvdXJj
ZXMvR2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvR2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9H
ZG9tJS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGlu
Z3MucGwgLS1pbmNsdWRlICQoV2ViQ29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUpL2h0bWwg
LS1pbmNsdWRlICQoV2ViQ29yZSkvY3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2UgLS1pbmNs
dWRlICQoV2ViQ29yZSkveG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1dERpciAi
JChHRU5TT1VSQ0VTKSIgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FU19HRE9NKSIgLS1nZW5l
cmF0b3IgR09iamVjdCAkPAorCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNvdXJjZXMv
SlMlLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJ
TkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0z
NDAxLDYgKzQzNjIsNyBAQAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzUGFyc2Vy
LnBtIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgXAog
CVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gXAorCVdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBcCiAJV2ViQ29yZS9jc3Mv
aHRtbDQuY3NzIFwKIAlXZWJDb3JlL2Nzcy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nzcy92aWV3
LXNvdXJjZS5jc3MgXApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZl
bnRUYXJnZXROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJp
dmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fz
c29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBU
b2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgor
ICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisj
aW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIkdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNs
dWRlICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIg
LyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIndlYmtpdG1h
cnNoYWwuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnQuaCIKK2VudW0geworICAgIEJST1dTRVJfRVZF
TlQsCisgICAgTEFTVF9TSUdOQUwKK307CisKK3N0YXRpYyBndWludCBldmVudF9zaWduYWxzW0xB
U1RfU0lHTkFMXSA9IHsgMCwgfTsKKworCitXZWJDb3JlOjpOb2RlICoKK2dkb21fZXZlbnRfdGFy
Z2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCkKK3sKKyAg
ICBHRE9NRXZlbnRUYXJnZXROb2RlICpyZXM7CisgICAgcmVzID0gc3RhdGljX2Nhc3Q8R0RPTUV2
ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpF
Q1QocmVxdWVzdCkpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2Rl
Kj4ocmVzLT5pbXBsKCkpOworfQorCisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKEdk
b21FdmVudFRhcmdldE5vZGUsIGdkb21fZXZlbnRfdGFyZ2V0X25vZGUsIEdET01fVFlQRV9OT0RF
KTsKKworLyoKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgeworICAgIGNsYXNz
IFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqaXRlbTsKK307ICAKKyovCisKKyNkZWZpbmUgR0RP
TV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VU
X1BSSVZBVEUoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFy
Z2V0Tm9kZVByaXZhdGUpKQorCisvKgordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9zZXRf
cHJpdmF0ZShHZG9tRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0LCBXZWJDb3JlOjpFdmVudFRhcmdl
dE5vZGUgKiBpdGVtKQoreworICAgIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0g
R0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBwcml2LT5p
dGVtID0gaXRlbTsKK30KKyovCisKK3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVf
ZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZSog
cmVxdWVzdCA9IEdET01fRVZFTlRfVEFSR0VUX05PREUob2JqZWN0KTsKKyAgICBHZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ki8KKyAgICAKKyAgICBHX09C
SkVDVF9DTEFTUyhnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3BhcmVudF9jbGFzcyktPmZpbmFsaXpl
KG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfY2xhc3Nf
aW5pdChHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBldmVu
dF9zaWduYWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwK
KyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocmVxdWVzdENsYXNzKSwKKyAgICAgICAgKEdTaWdu
YWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAgICAgICAw
LAorICAgICAgICBOVUxMLAorICAgICAgICBOVUxMLAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9W
T0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgIEdE
T01fVFlQRV9FVkVOVCwgR19UWVBFX0JPT0xFQU4pOworCisgICAgR19PQkpFQ1RfQ0xBU1MocmVx
dWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplOwor
CisgICAgLypnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoR2Rv
bUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUpKTsqLworfQorCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50
X3RhcmdldF9ub2RlX2luaXQoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogcmVxdWVzdCkKK3sKKyAgICAv
Kkdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9E
RV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfSAg
IAorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1By
aXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLgorICovCisKKworI2lmbmRlZiBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX1BSSVZfCisj
ZGVmaW5lIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tTm9kZS5oIgorY2xhc3MgV2ViQ29yZTo6Tm9k
ZTsKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0
Tm9kZTsKKworV0VCS0lUX0FQSSBXZWJDb3JlOjpOb2RlICoKK2dkb21fZXZlbnRfdGFyZ2V0X25v
ZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCk7CisKKyNlbmRpZgor
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3Bw
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5v
ZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIkdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRl
ICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0Lmgi
CisKK2NsYXNzIEdTdHJpbmdDb252ZXJ0IHsKKyAgICBwdWJsaWM6CisgICAgY29uc3QgZ2NoYXIg
Km1fc3RyOworICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYgcykgeyBt
X3N0ciA9IGdfc3RyZHVwKHMudXRmOCgpLmRhdGEoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChX
ZWJDb3JlOjpBdG9taWNTdHJpbmcgY29uc3QmcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7IH0KK307CisKK2V4dGVybiAiQyIgeworCisjZGVmaW5lIF9HX0dF
VF9VVEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0KHN0cikubV9zdHIpCisKK3ZvaWQKK2dkb21fZXZl
bnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0Tm9k
ZSAqdGhpeikKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTsKKyAgICAvKgorICAgIFdl
YkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0gPSBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dl
dF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19ldmVudF90YXJnZXRfbm9k
ZV90eXBlX2FyZyA9IFdlYkNvcmU6OlN0cmluZyhldmVudF90YXJnZXRfbm9kZV90eXBlX2FyZyk7
CisgICAgaXRlbS0+aW5pdEV2ZW50VGFyZ2V0Tm9kZShfZ19ldmVudF90YXJnZXRfbm9kZV90eXBl
X2FyZyk7CisgICAgKi8KK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisj
aW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0Lmgi
CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKEdkb21ET01PYmplY3QsIGdkb21fZG9t
X29iamVjdCwgR19UWVBFX09CSkVDVCk7CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdFByaXZhdGUg
eworICAgICBHRE9NT2JqZWN0ICptX25vZGU7Cit9OyAgCisKKyNkZWZpbmUgR0RPTV9ET01fT0JK
RUNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2Rv
bV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmpl
Y3QgKiBpdGVtKQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01f
T0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07Cisg
ICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitn
ZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAg
ICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFU
RShyZXF1ZXN0KTsKKyAgICByZXR1cm4gcHJpdi0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBn
ZG9tX2RvbV9vYmplY3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01P
YmplY3QqIHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2Jq
ZWN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgCisgICAgLypwcml2LT5tX25v
ZGUtPmltcGwoKS0+ZGVyZWYoKTsqLworICAgIGRlbGV0ZSBwcml2LT5tX25vZGU7IC8qIGNhbGxz
IG1faW1wbC0+ZGVyZWYoKSAqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9kb21fb2JqZWN0
X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21f
ZG9tX29iamVjdF9jbGFzc19pbml0KEdkb21ET01PYmplY3RDbGFzcyogcmVxdWVzdENsYXNzKQor
eworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9kb21f
b2JqZWN0X2ZpbmFsaXplOworICAgIAorICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1
ZXN0Q2xhc3MsIHNpemVvZihHZG9tRE9NT2JqZWN0UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9p
ZCBnZG9tX2RvbV9vYmplY3RfaW5pdChHZG9tRE9NT2JqZWN0KiByZXF1ZXN0KQoreworICAgIEdk
b21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJl
cXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OworfSAgIAorCit9IC8qIGV4dGVybiAi
QyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdl
dE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpZm5kZWYgX19HZG9tRXZlbnRUYXJnZXRO
b2RlX0hfXworI2RlZmluZSBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fCisjaW5jbHVkZSAiZ2xp
Yi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lO
X0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIEdkb21FdmVudFRh
cmdldE5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIEdkb21F
dmVudFRhcmdldE5vZGVDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05P
REUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50
VGFyZ2V0Tm9kZSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3Mp
ICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RB
UkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorI2RlZmluZSBHRE9NX0lTX0VW
RU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUo
KG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkpCisjZGVmaW5lIEdET01fSVNfRVZF
TlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9U
QVJHRVRfTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVDbGFz
cykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSBHZG9tRXZl
bnRUYXJnZXROb2RlUHJpdmF0ZTsKKworI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisKK3N0cnVjdCBf
R2RvbUV2ZW50VGFyZ2V0Tm9kZSB7CisgICAgR2RvbU5vZGUgcGFyZW50X2luc3RhbmNlOworCisg
ICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21F
dmVudFRhcmdldE5vZGVDbGFzcyB7CisgICAgR2RvbU5vZGVDbGFzcyBwYXJlbnRfY2xhc3M7Cit9
OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBlICh2
b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZl
bnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXopOworCitHX0VORF9ERUNM
UworCisjZW5kaWYgLyogX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXyAqLworCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxh
bHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUg
IkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21p
Y1N0cmluZy5oIgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorCitleHRlcm4gIkMiIHsKKwordm9pZAorZ2RvbV9kb21fb2JqZWN0X2luaXRfZG9t
X29iamVjdCAoR2RvbURPTU9iamVjdCAqdGhpeikKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsICh0
aGl6KTsKKwkvKgorICAgIFdlYkNvcmU6OkRPTU9iamVjdCAqIGl0ZW0gPSBnZG9tX2RvbV9vYmpl
Y3RfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgV2ViQ29yZTo6U3RyaW5nIF9nX2RvbV9vYmplY3Rf
dHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJpbmcoZG9tX29iamVjdF90eXBlX2FyZyk7CisgICAgaXRl
bS0+aW5pdERPTU9iamVjdChfZ19kb21fb2JqZWN0X3R5cGVfYXJnKTsKKwkqLworfQorCit9IC8q
IGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9t
RE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVH
ZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJp
dmF0ZUdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxr
Y2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2lmbmRlZiBfX0dE
T01ET01PYmplY3RfSF9fX1BSSVZfCisjZGVmaW5lIF9fR0RPTURPTU9iamVjdF9IX19fUFJJVl8K
KyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKK0df
QkVHSU5fREVDTFMKKworY2xhc3MgR0RPTU9iamVjdDsKK1dFQktJVF9BUEkgR0RPTU9iamVjdCoK
K2dkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0KTsKKwor
V0VCS0lUX0FQSSB2b2lkCitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR2RvbURPTU9iamVj
dCAqcmVxdWVzdCwgR0RPTU9iamVjdCogaXRlbSk7CisKK0dfRU5EX0RFQ0xTCisjZW5kaWYKKwpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50
V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1ODIgQEAKKy8qCisgKiBUSElTIEZJTEUgSVMgREVSSVZFRCBGUk9NIEFOIEFVVE9NQVRJQ0FM
TFkgR0VORVJBVEVEIEZJTEUuCisgKiAga2VlcGluZyBpdCB1cC10by1kYXRlIGNvdWxkIHBvdGVu
dGlhbGx5IGJlIGRvbmUgYnkgYWRkaW5nCisgKiAgYSBtYWtlX25hbWVzLnBsIGdlbmVyYXRvciwg
b3IgYnkgd3JpdGluZyBhIHNlcGFyYXRlCisgKiAgZ2VuZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRN
TEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAq
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiR2Rv
bU5vZGUuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQXBwbGV0
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJH
ZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQlJFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxCdXR0b25FbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxDYW52YXNF
bGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE1vZEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTERMaXN0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkdkb21IVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxG
aWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZvbnRFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRnJhbWVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJH
ZG9tSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxIZWFkRWxlbWVudC5o
IgorI2luY2x1ZGUgIkdkb21IVE1MSFJFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxIdG1s
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUg
Ikdkb21IVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxJbnB1dEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJHZG9tSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhU
TUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTExJRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTGlua0VsZW1l
bnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRN
TE1hcnF1ZWVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxNZW51RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9iamVjdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdk
b21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRpb25FbGVtZW50
LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFByZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MU2NyaXB0
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUg
Ikdkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxUYWJsZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJH
ZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRleHRBcmVhRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGl0bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFVMaXN0RWxlbWVudC5o
IgorCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEFwcGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJh
c2VFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQmFzZUZvbnRFbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJ1
dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxDYW52YXNFbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRGl2
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERMaXN0RWxlbWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRm9ybUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSFJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1M
SW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSXNJbmRleEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTGlu
a0VsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxNYXBFbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
SFRNTE1ldGFFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT2JqZWN0RWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE9MaXN0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MUGFy
YW1FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MUHJlRWxlbWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MU3R5bGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFibGVFbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxUYWJsZVJv
d0VsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxVTGlzdEVsZW1lbnQuaCIK
KworI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcmVhRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNl
Rm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRh
YmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRW1iZWRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb250RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFt
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSXNJbmRleEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExl
Z2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFy
YWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
Cit0eXBlZGVmIEdET01Ob2RlKiAoKkNyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uKShQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQW5jaG9y
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxBbmNob3JFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFwcGxldFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MQXBwbGV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXBwbGV0RWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcmVhV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXJlYUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQmFzZVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
QmFzZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJhc2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJhc2VGb250V3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNl
Rm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJhc2VGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxCbG9ja3F1b3RlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmxvY2txdW90ZUVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQm9keVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MQm9keUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJvZHlFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJSV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCUkVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVCdXR0b25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJ1dHRvbkVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlQ2FudmFzV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxDYW52YXNFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVDYXB0aW9u
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDYXB0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNvbFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
VGFibGVDb2xFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNvbEVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTW9kV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxN
b2RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNb2RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRGlyZWN0
b3J5RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGlyZWN0b3J5RWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVEaXZXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpdkVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERpdkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRExpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERMaXN0RWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MRExpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUVtYmVkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbWJlZEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVGaWVsZFNldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRmllbGRTZXRFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxGaWVsZFNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRm9udEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUZvcm1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZvcm1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxG
b3JtRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJh
bWVTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTEZyYW1lU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVT
ZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUhlYWRpbmdXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhlYWRpbmdFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFk
aW5nRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVIZWFkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxIZWFkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSFJXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEhSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSFJFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUh0bWxXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEh0
bWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIdG1sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElGcmFtZUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSW1hZ2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEltYWdlRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlucHV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxJbnB1dEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVJc0luZGV4V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxJc0luZGV4RWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlTGFiZWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExhYmVsRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MTGFiZWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZUxlZ2VuZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTGVnZW5kRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MTGVnZW5kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVMSVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTElFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMSUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGlu
a1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MTGlua0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExpbmtFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1hcFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MTWFwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFwRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNYXJxdWVlV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxN
YXJxdWVlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFycXVlZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWVudVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWVu
dUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1lbnVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1ldGFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1ldGFFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxNZXRhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVPYmplY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9iamVjdEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlT0xpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9MaXN0RWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MT0xpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxPcHRHcm91cEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVPcHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9wdGlvbkVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlUGFyYWdyYXBoV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxQYXJhZ3JhcGhFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBhcmFtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxQYXJhbUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVQcmVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFByZUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTFByZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlUXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFF1b3RlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUXVv
dGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZVNjcmlwdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MU2NyaXB0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2NyaXB0
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVT
ZWxlY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTFNlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU3R5
bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTFN0eWxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU3R5bGVFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxUYWJsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVNlY3Rpb25X
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlVGFibGVDZWxsV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNlbGxFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxUYWJsZUNlbGxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZVRleHRBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVUaXRsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGl0bGVFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlVGFibGVSb3dXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlUm93RWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MVGFibGVSb3dFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZVVMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxVTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTFVMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworR0RPTU5vZGUqIGNyZWF0
ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHN0YXRpYyBIYXNoTWFwPFdlYkNvcmU6OkF0b21pY1N0cmluZ0ltcGwqLCBDcmVhdGVIVE1M
RWxlbWVudFdyYXBwZXJGdW5jdGlvbj4gbWFwOworICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7Cisg
ICAgICAgbWFwLnNldChhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQW5jaG9yV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChhcHBsZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVB
cHBsZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVBcmVhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChiYXNlVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlQmFzZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZWZvbnRUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoYmxvY2txdW90ZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJsb2NrcXVvdGVXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVC
b2R5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChiclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUJSV3JhcHBlcik7CisgICAgICAgbWFwLnNldChidXR0b25UYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVCdXR0b25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhbnZhc1RhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUNhbnZhc1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY2Fw
dGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoY29sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGlyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlRGlyZWN0b3J5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkaXZUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVEaXZXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRsVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlRExpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGVtYmVk
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRW1iZWRXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGZpZWxkc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRmllbGRTZXRXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGZvbnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb250
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb3JtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlRm9ybVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVGcmFtZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVzZXRUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGcmFtZVNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aDFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoaHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIUldyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoaHRtbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUh0bWxX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUlGcmFtZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1nVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlucHV0VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSW5wdXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlzaW5k
ZXhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJc0luZGV4V3JhcHBlcik7CisgICAgICAg
bWFwLnNldChsYWJlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxhYmVsV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChsZWdlbmRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMZWdl
bmRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlTElXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpbmtUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVMaW5rV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXBUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVNYXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1hcnF1ZWVUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNYXJxdWVlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCht
ZW51VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWVudVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQobWV0YVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1ldGFXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KG9iamVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9iamVjdFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQob2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVP
TGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0Z3JvdXBUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVPcHRHcm91cFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0aW9uVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChw
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUGFyYWdyYXBoV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChwYXJhbVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFtV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChwcmVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVRdW90
ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2NyaXB0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlU2NyaXB0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzZWxlY3RUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHN0eWxlVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU3R5bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHRhYmxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHRib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9u
V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0ZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGV4dGFyZWFUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVUZXh0QXJlYVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGl0bGVU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUaXRsZVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQodHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVJvd1dyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQodWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVVTGlzdFdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoY29sZ3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVU
YWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDJUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoM1RhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg0VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aDVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChoNlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGltYWdlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGluc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoa2V5Z2VuVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsaXN0aW5nVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Zm9vdFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAg
IG1hcC5zZXQodGhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KHRoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFi
bGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh4bXBUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICB9CisgICAgcHJpbnRmKCJjcmVhdGVHRE9NSFRN
TFdyYXBwZXI6ICVzXG4iLCBlbGVtZW50LT5sb2NhbE5hbWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbiBjcmVhdGVXcmFwcGVy
RnVuY3Rpb24gPSBtYXAuZ2V0KGVsZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwoKSk7CisgICAgaWYg
KGNyZWF0ZVdyYXBwZXJGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXJGdW5j
dGlvbihlbGVtZW50KTsKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRWxlbWVudChlbGVtZW50Lmdl
dCgpKTsKK30KKworfQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdk
b21FdmVudFRhcmdldE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
UHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0
aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJ
bmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fSU5UXworI2Rl
ZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVj
dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTm9kZS5oIgorR19CRUdJTl9ERUNMUworCitj
bGFzcyBHRE9NRXZlbnRUYXJnZXROb2RlIDogcHVibGljIEdET01Ob2RlIHsKKworcHVibGljOgor
ICAgIEdET01FdmVudFRhcmdldE5vZGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpOb2RlPiBpbXBsKSA6
IEdET01Ob2RlKGltcGwpIHt9CisgICAgaW50IGdldF9nb2JqX3R5cGUoKSB7IHJldHVybiBHRE9N
X1RZUEVfRVZFTlRfVEFSR0VUX05PREU7IH0KK307CisKKworR19FTkRfREVDTFMKKyNlbmRpZgor
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDgwMSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0
ZW4gKHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0
IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworLy8gZ2NjIDMueCBjYW4ndCBoYW5kbGUgaW5j
bHVkaW5nIHRoZSBIYXNoTWFwIHBvaW50ZXIgc3BlY2lhbGl6YXRpb24gaW4gdGhpcyBmaWxlCisj
aWYgZGVmaW5lZCBfX0dOVUNfXyAmJiAhZGVmaW5lZCBfX0dMSUJDWFhfXyAvLyBsZXNzIHRoYW4g
Z2NjIDMuNAorI2RlZmluZSBIQVNIX01BUF9QVFJfU1BFQ19XT1JLQVJPVU5EIDEKKyNlbmRpZgor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRl
ICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZh
dGVHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJH
RE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorCisjaW5jbHVkZSAiQ1NTU3R5bGVTaGVl
dC5oIgorI2luY2x1ZGUgIkdkb21DU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21DU1NTdHlsZVNoZWV0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkV2ZW50RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgorI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbU5vZGUuaCIKKworI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNs
dWRlICJDREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNv
bW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21l
bnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJFbnRpdHkuaCIKKyNp
bmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJHZG9tQXR0ci5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tQXR0ci5oIgorI2luY2x1ZGUgIkdkb21DaGFyYWN0ZXJEYXRh
LmgiCisjaW5jbHVkZSAiR2RvbVRleHQuaCIKKyNpbmNsdWRlICJHZG9tQ0RBVEFTZWN0aW9uLmgi
CisjaW5jbHVkZSAiR2RvbUNvbW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudFR5
cGUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiR2RvbUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiR2RvbUNTU1ByaW1pdGl2
ZVZhbHVlLmgiCisjaW5jbHVkZSAiR2RvbUVudGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkdk
b21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgIkdkb21IVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJH
ZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUg
Ik5vdGF0aW9uLmgiCisjaW5jbHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVk
ZSAiVGV4dC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCisjaW5jbHVkZSAiR2RvbUNTU1J1bGUuaCIKKyNpbmNsdWRlICJDU1NDaGFyc2V0
UnVsZS5oIgorI2luY2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU0ltcG9y
dFJ1bGUuaCIKKyNpbmNsdWRlICJDU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NQYWdlUnVs
ZS5oIgorI2luY2x1ZGUgIkNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1ZhcmlhYmxlc1J1
bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NT
Rm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRl
ICJHZG9tQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1BhZ2VSdWxlLmgiCisjaW5j
bHVkZSAiR2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NWYXJpYWJsZXNSdWxl
LmgiCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUV2ZW50
LmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1
ZGUgIkdkb21DbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJHZG9tS2V5Ym9hcmRFdmVudC5oIgorI2lu
Y2x1ZGUgIkdkb21NZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tTW91c2VFdmVudC5oIgor
I2luY2x1ZGUgIkdkb21NdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU92ZXJmbG93RXZl
bnQuaCIKKyNpbmNsdWRlICJHZG9tUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIkdkb21UZXh0
RXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tVUlFdmVudC5oIgorI2luY2x1ZGUgIkdkb21XZWJLaXRB
bmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIK
KyNpbmNsdWRlICJHZG9tV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAi
TWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk11dGF0
aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJPdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiUHJvZ3Jl
c3NFdmVudC5oIgorI2luY2x1ZGUgIlRleHRFdmVudC5oIgorI2luY2x1ZGUgIlVJRXZlbnQuaCIK
KyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIldlYktpdFRyYW5z
aXRpb25FdmVudC5oIgorI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKKworI2luY2x1ZGUgIkdkb21IVE1MQ29sbGVjdGlvbi5o
IgorCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24u
aCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKy8vIFRPRE8gI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tSFRNTEFsbENvbGxlY3Rpb24uaCIKKy8vIFRPRE8gI2luY2x1ZGUgIkdk
b21IVE1MQWxsQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkdkb21IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaCIKKy8vIGVyci4uLiAjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21OYW1lZE5vZGVzQ29sbGVj
dGlvbi5oIgorLy8gZXJyLi4uICNpbmNsdWRlICJHZG9tTmFtZWROb2Rlc0NvbGxlY3Rpb24uaCIK
KworI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyNpbmNsdWRlICJHZG9tU3RvcmFnZUV2ZW50Lmgi
CisjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisj
aWYgMCAvKiBUT0RPICovCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21TVkdab29tRXZlbnQuaCIK
KyNpbmNsdWRlICJHZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50Lmgi
CisjZW5kaWYKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNpZiAwIC8qIFhYWCBUT0RPICov
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNp
bmNsdWRlICJHZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiU1ZHRWxl
bWVudC5oIgorI2VuZGlmCisjZW5kaWYKKworI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1
ZGUgIkdkb21TVkdFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJTVkdFeGNlcHRpb24uaCIKKyNlbmRp
ZgorI2VuZGlmCisKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNsaXBib2FyZC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tQ1NTUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ0RB
VEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Db21tZW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRG9j
dW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRG9jdW1lbnRUeXBlLmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FbnRpdHkuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1ZhbHVlTGlzdC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUVudGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
Tm90YXRpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21UZXh0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NDaGFyc2V0
UnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1BhZ2VSdWxl
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU1lc3NhZ2VFdmVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tT3ZlcmZs
b3dFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tUHJvZ3Jlc3NFdmVudC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21VSUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21XZWJLaXRBbmltYXRpb25FdmVu
dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbVN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQ29sbGVjdGlvbi5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK3R5
cGVkZWYgSGFzaE1hcDx2b2lkKiwgZ3BvaW50ZXI+IERPTU9iamVjdE1hcDsKK3R5cGVkZWYgSGFz
aE1hcDx2b2lkKiwgZ3BvaW50ZXI+IEdkb21XcmFwcGVyQ2FjaGU7IC8qIEFSRyEgVU5GQUlSISBK
U1dyYXBwZXJDYWNoZSBpcyBpbiBEb2N1bWVudCEhICovCisKKy8vIEZvciBkZWJ1Z2dpbmcsIGtl
ZXAgYSBzZXQgb2Ygd3JhcHBlcnMgY3VycmVudGx5IHJlZ2lzdGVyZWQsIGFuZCBjaGVjayB0aGF0
CisvLyBhbGwgYXJlIHVucmVnaXN0ZXJlZCBiZWZvcmUgdGhleSBhcmUgZGVzdHJveWVkLiBUaGlz
IGhhcyBoZWxwZWQgdXMgZml4IGF0CisvLyBsZWFzdCBvbmUgYnVnLgorCisjaWYgMAorc3RhdGlj
IHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKTsKK3N0YXRpYyB2b2lkIHJlbW92
ZVdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcik7CitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVy
cyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVycyk7CisKKyNpZmRlZiBOREVCVUcKKwor
c3RhdGljIGlubGluZSB2b2lkIGFkZFdyYXBwZXIoR0RPTU9iamVjdCopCit7Cit9CisKK3N0YXRp
YyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmplY3QqKQoreworfQorCitzdGF0aWMg
aW5saW5lIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2RvbVdyYXBwZXJDYWNoZSYpCit7Cit9
CisKKyNlbHNlCisKK3N0YXRpYyBIYXNoU2V0PEdET01PYmplY3QqPiYgd3JhcHBlclNldCgpCit7
CisgICAgc3RhdGljIEhhc2hTZXQ8R0RPTU9iamVjdCo+IHN0YXRpY1dyYXBwZXJTZXQ7CisgICAg
cmV0dXJuIHN0YXRpY1dyYXBwZXJTZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGFkZFdyYXBwZXIoR0RP
TU9iamVjdCogd3JhcHBlcikKK3sKKyAgICBBU1NFUlQoIXdyYXBwZXJTZXQoKS5jb250YWlucyh3
cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgpLmFkZCh3cmFwcGVyKTsKK30KKworc3RhdGljIHZv
aWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKQoreworICAgIGlmICghd3JhcHBl
cikKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVCh3cmFwcGVyU2V0KCkuY29udGFpbnMod3Jh
cHBlcikpOworICAgIHdyYXBwZXJTZXQoKS5yZW1vdmUod3JhcHBlcik7Cit9CisKK3N0YXRpYyB2
b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQorewor
ICAgIGZvciAoR2RvbVdyYXBwZXJDYWNoZTo6Y29uc3RfaXRlcmF0b3IgaXQgPSB3cmFwcGVycy5i
ZWdpbigpOyBpdCAhPSB3cmFwcGVycy5lbmQoKTsgKytpdCkKKyAgICAgICAgcmVtb3ZlV3JhcHBl
cihpdC0+c2Vjb25kKTsKK30KKworR0RPTU9iamVjdDo6fkdET01PYmplY3QoKQoreworICAgIEFT
U0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5zKHRoaXMpKTsKK30KKworI2VuZGlmCisjZW5kaWYg
LyogY29tbWVudGVkIG91dCBmb3Igbm93ICovCisKK3N0YXRpYyBHZG9tV3JhcHBlckNhY2hlJiB3
cmFwcGVyQ2FjaGUoKQoreyAKKyAgICAvLyBVTkZBSVIhIGkgd2FudCBvbmUgb2YgdGhlc2UgcGVy
IERvY3VtZW50LCB0b28hCisgICAgLy8gRG9uJ3QgdXNlIG1hbGxvYyBoZXJlLiBDYWxsaW5nIG1h
bGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxvY2suCisgICAgc3RhdGljIEdkb21X
cmFwcGVyQ2FjaGUgc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsKKyAgICByZXR1cm4gc3RhdGljR2Rv
bVdyYXBwZXJDYWNoZTsKK30KKworc3RhdGljIERPTU9iamVjdE1hcCYgZG9tT2JqZWN0cygpCit7
IAorICAgIC8vIERvbid0IHVzZSBtYWxsb2MgaGVyZS4gQ2FsbGluZyBtYWxsb2MgZnJvbSBhIG1h
cmsgZnVuY3Rpb24gY2FuIGRlYWRsb2NrLgorICAgIHN0YXRpYyBET01PYmplY3RNYXAgc3RhdGlj
RE9NT2JqZWN0czsKKyAgICByZXR1cm4gc3RhdGljRE9NT2JqZWN0czsKK30KKworZ3BvaW50ZXIg
R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKSAK
K3sKKyAgICBncG9pbnRlciByZXQgPSBkb21PYmplY3RzKCkuZ2V0KG9iamVjdEhhbmRsZSk7Cisg
ICAgcHJpbnRmKCJnZXRET01PYmplY3Q6ICVwICVwXG4iLCBvYmplY3RIYW5kbGUsIHJldCk7Cisg
ICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZV9nZG9tX29iamVjdChH
RE9NT2JqZWN0ICpkb2IpCit7CisgICAgZ3BvaW50ZXIgcmVzID0gZ19vYmplY3RfbmV3KGRvYi0+
Z2V0X2dvYmpfdHlwZSgpLCBOVUxMKTsKKyAgICBnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUo
R0RPTV9ET01fT0JKRUNUKHJlcyksIGRvYik7CisgICAgcmV0dXJuIHJlczsKK30KKworZ3BvaW50
ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxl
LCBHRE9NT2JqZWN0KiB3cmFwcGVyKSAKK3sKKyAgICAvLyBhZGRXcmFwcGVyKHdyYXBwZXIpOwor
ICAgIGdwb2ludGVyIG9iaiA9IGNyZWF0ZV9nZG9tX29iamVjdCh3cmFwcGVyKTsKKyAgICBwcmlu
dGYoInB1dERPTU9iamVjdDogJXAgJXAgJXBcbiIsIG9iamVjdEhhbmRsZSwgd3JhcHBlciwgb2Jq
KTsKKyAgICBkb21PYmplY3RzKCkuc2V0KG9iamVjdEhhbmRsZSwgb2JqKTsKKyAgICByZXR1cm4g
b2JqOworfQorCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHZv
aWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICBkb21PYmplY3RzKCkudGFrZShvYmplY3RIYW5kbGUp
OworICAgIC8vcmVtb3ZlV3JhcHBlcihkb21PYmplY3RzKCkudGFrZShvYmplY3RIYW5kbGUpKTsK
K30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICghZG9jdW1lbnQp
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxncG9pbnRlciA+KGRvbU9iamVjdHMoKS5nZXQo
bm9kZSkpOworICAgIHJldHVybiAvKiBYWFggZ3JyciBkb2N1bWVudC0+ICovd3JhcHBlckNhY2hl
KCkuZ2V0KG5vZGUpOworfQorCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9N
Tm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogbm9kZSkKK3sKKyAgICBp
ZiAoIWRvY3VtZW50KSB7CisgICAgICAgIGZvcmdldERPTU9iamVjdChub2RlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAvL3JlbW92ZVdyYXBwZXIoLyogWFhYIGdyciBkb2N1bWVudC0+
Ki93cmFwcGVyQ2FjaGUoKS50YWtlKG5vZGUpKTsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdElu
dGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2Rl
KiBub2RlLCBHRE9NTm9kZSAqd3JhcHBlcikKK3sKKyAgICAvL2FkZFdyYXBwZXIod3JhcHBlcik7
CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBub2RlLT5yZWYoKTsKKyAgICAgICAgcmV0
dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KG5vZGUsIHdyYXBwZXIpIDsK
KyAgICB9CisgICAgZ3BvaW50ZXIgb2JqID0gY3JlYXRlX2dkb21fb2JqZWN0KHdyYXBwZXIpOwor
ICAgIC8qIFhYWCBncnJyIGRvY3VtZW50LT4qL3dyYXBwZXJDYWNoZSgpLnNldChub2RlLCBvYmop
OworICAgIHJldHVybiBvYmo7Cit9CisKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3Jn
ZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NF
UlQoZG9jdW1lbnQpOworICAgIC8vcmVtb3ZlV3JhcHBlcnMoZG9jdW1lbnQtPndyYXBwZXJDYWNo
ZSgpKTsKK30KKworI2lmIDAKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjptYXJrRE9NTm9k
ZXNGb3JEb2N1bWVudChEb2N1bWVudCogZG9jKQoreworI2lmIDAgLypYWFggVE9ETyovCisgICAg
Ly8gSWYgYSBub2RlJ3MgR2RvbSB3cmFwcGVyIGhvbGRzIGN1c3RvbSBwcm9wZXJ0aWVzLCB0aG9z
ZSBwcm9wZXJ0aWVzIG11c3QKKyAgICAvLyBwZXJzaXN0IGV2ZXJ5IHRpbWUgdGhlIG5vZGUgaXMg
ZmV0Y2hlZCBmcm9tIHRoZSBET00uIFNvLCB3ZSBrZWVwIEdkb20KKyAgICAvLyB3cmFwcGVycyBs
aWtlIHRoYXQgZnJvbSBiZWluZyBnYXJiYWdlIGNvbGxlY3RlZC4KKworICAgIEdkb21XcmFwcGVy
Q2FjaGUmIG5vZGVEaWN0ID0gLypkb2MtPiovd3JhcHBlckNhY2hlKCk7CisgICAgR2RvbVdyYXBw
ZXJDYWNoZTo6aXRlcmF0b3Igbm9kZUVuZCA9IG5vZGVEaWN0LmVuZCgpOworICAgIGZvciAoR2Rv
bVdyYXBwZXJDYWNoZTo6aXRlcmF0b3Igbm9kZUl0ID0gbm9kZURpY3QuYmVnaW4oKTsgbm9kZUl0
ICE9IG5vZGVFbmQ7ICsrbm9kZUl0KSB7CisgICAgICAgIGdwb2ludGVyIGdOb2RlID0gbm9kZUl0
LT5zZWNvbmQ7CisgICAgICAgIE5vZGUqIG5vZGUgPSBnTm9kZS0+aW1wbCgpOworCisgICAgICAg
IGlmIChnTm9kZS0+bWFya2VkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAv
LyBObyBuZWVkIHRvIHByZXNlcnZlIGEgd3JhcHBlciB0aGF0IGhhcyBubyBjdXN0b20gcHJvcGVy
dGllcyBvciBpcyBubworICAgICAgICAvLyBsb25nZXIgZmV0Y2hhYmxlIHRocm91Z2ggdGhlIERP
TS4KKyAgICAgICAgaWYgKCFnTm9kZS0+aGFzQ3VzdG9tUHJvcGVydGllcygpIHx8ICFub2RlLT5p
bkRvY3VtZW50KCkpCisgICAgICAgICAgICAvLy4uLiB1bmxlc3MgdGhlIHdyYXBwZXIgd3JhcHMg
YSBsb2FkaW5nIGltYWdlLCBzaW5jZSB0aGUgIm5ldyBJbWFnZSIKKyAgICAgICAgICAgIC8vIHN5
bnRheCBhbGxvd3MgYW4gb3JwaGFuIGltYWdlIHdyYXBwZXIgdG8gYmUgdGhlIGxhc3QgcmVmZXJl
bmNlCisgICAgICAgICAgICAvLyB0byBhIGxvYWRpbmcgaW1hZ2UsIHdob3NlIGxvYWQgZXZlbnQg
bWlnaHQgaGF2ZSBpbXBvcnRhbnQgc2lkZS1lZmZlY3RzLgorICAgICAgICAgICAgaWYgKCFub2Rl
LT5oYXNUYWdOYW1lKGltZ1RhZykgfHwgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5v
ZGUpLT5oYXZlRmlyZWRMb2FkRXZlbnQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICBnTm9kZS0+bWFyaygpOworICAgIH0KKyNlbmRpZgorfQorCisvKiBYWFggLSByZXF1
aXJlcyBsb29raW5nIHVwIG9iamVjdCAtIGNhbGwgdG8gR19PQkpFQ1QoKSBtYWNybyBpbiBhcmcK
KyAqICJ3cmFwcGVyIiB0byBwdXRET01Ob2RlRm9yRG9jdW1lbnQ/Ki8KK2dwb2ludGVyIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6dXBkYXRlRE9NTm9kZURvY3VtZW50KE5vZGUqIG5vZGUsIERvY3Vt
ZW50KiBvbGREb2MsIERvY3VtZW50KiBuZXdEb2MpCit7CisgICAgQVNTRVJUKG9sZERvYyAhPSBu
ZXdEb2MpOworICAgIHN0eWxlU2hlZXQtPnJlZigpOworICAgIGdwb2ludGVyIHdyYXBwZXIgPSBn
ZXRET01Ob2RlRm9yRG9jdW1lbnQob2xkRG9jLCBub2RlKTsKKyAgICBpZiAod3JhcHBlcikgewor
ICAgICAgICAvL3JlbW92ZVdyYXBwZXIod3JhcHBlcik7CisgICAgICAgIGdwb2ludGVyIG9iaiA9
IHB1dERPTU5vZGVGb3JEb2N1bWVudChuZXdEb2MsIG5vZGUsIHdyYXBwZXIpOworICAgICAgICBm
b3JnZXRET01Ob2RlRm9yRG9jdW1lbnQob2xkRG9jLCBub2RlKTsKKyAgICAgICAgLy9hZGRXcmFw
cGVyKHdyYXBwZXIpOworICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKyAgICByZXR1cm4gTlVM
TDsgLyogZXJyLi4uICovCit9CisjZW5kaWYKKworZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBk
b2MpCit7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4u
LiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9N
T2JqZWN0KGRvYyk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAg
R0RPTU9iamVjdCAqcmV0OworCisgICAgaWYgKGRvYy0+aXNIVE1MRG9jdW1lbnQoKSkKKyAgICAg
ICAgcmV0ID0gbmV3IEdET01IVE1MRG9jdW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4o
ZG9jKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChkb2MtPmlzU1ZHRG9jdW1lbnQo
KSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLworI2lmIDAKKyAg
ICAgICAgcmV0ID0gbmV3IEdET01TVkdEb2N1bWVudChzdGF0aWNfY2FzdDxTVkdEb2N1bWVudCo+
KGRvYykpOworI2VuZGlmCisgICAgfQorI2VuZGlmCisgICAgZWxzZQorICAgICAgICByZXQgPSBu
ZXcgR0RPTURvY3VtZW50KGRvYyk7CisKKyAgICBkb2MtPnJlZigpOworICAgIHJldHVybiBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChkb2MsIHJldCk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpOworCitncG9pbnRlciB0b0dET01OZXds
eUNyZWF0ZWQoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBO
VUxMOyAvKiBobW1tLi4uLiAqLworICAgIAorICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUp
OworfQorICAgIAorZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLi4gKi8KKworICAgIERvY3VtZW50KiBk
b2MgPSBub2RlLT5kb2N1bWVudCgpOworICAgIGdwb2ludGVyIHJldCA9IEdET01TY3JpcHRJbnRl
cnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KGRvYywgbm9kZSk7CisgICAgaWYgKHJldCkK
KyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOwor
fQorCitncG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUp
CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2Jq
ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QodmFsdWUpOworCisgICAgaWYg
KGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworCisg
ICAgaWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1Zh
bHVlTGlzdChzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSkpOworI2lmIEVOQUJMRShT
VkcpCisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gbmV3IEdET01TVkdQYWludChz
dGF0aWNfY2FzdDxTVkdQYWludCo+KHZhbHVlKSk7CisgICAgfQorICAgIGVsc2UgaWYgKHZhbHVl
LT5pc1NWR0NvbG9yKCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAqLwor
ICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHQ29sb3Ioc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2
YWx1ZSkpOworICAgIH0KKyNlbmRpZgorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZh
bHVlKCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUHJpbWl0aXZlVmFsdWUoc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0g
bmV3IEdET01DU1NWYWx1ZSh2YWx1ZSk7CisKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgcmV0dXJu
IEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZhbHVlLCByZXQpOworfQorCitz
dGF0aWMgQUxXQVlTX0lOTElORSBncG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7
CisgICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU5vZGVGb3JEb2N1bWVudChub2RlLT5kb2N1bWVudCgpLCBub2RlKSk7CisgICAgCisgICAgRG9j
dW1lbnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAgR0RPTU5vZGUgKnJldCA9IE5VTEw7
CisgICAgCisgICAgcHJpbnRmKCJjcmVhdGVXcmFwcGVyIG5vZGVUeXBlICVkXG4iLCBub2RlLT5u
b2RlVHlwZSgpKTsKKworICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5cGUoKSkgeworICAgICAgICBj
YXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVt
ZW50KCkpCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRp
Y19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgICAg
ICBlbHNlIGlmIChub2RlLT5pc1NWR0VsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
TlVMTDsKKyNpZiAwIC8qIFhYWCBUT0RPICovCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRl
R0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG5vZGUpKTsKKyNlbmRpZgor
I2VuZGlmCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0ID0gbmV3IEdET01F
bGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NQXR0cihzdGF0aWNfY2FzdDxBdHRyKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdE
T01UZXh0KHN0YXRpY19jYXN0PFRleHQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUNEQVRBU2VjdGlvbihzdGF0aWNfY2FzdDxDREFUQVNlY3Rpb24qPihub2RlKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfTk9ERToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5KHN0YXRpY19jYXN0PEVudGl0eSo+KG5vZGUpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJV
Q1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NUHJvY2Vzc2luZ0luc3RydWN0
aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KG5vZGUpKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NQ29tbWVudChzdGF0aWNfY2FzdDxDb21tZW50Kj4obm9kZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAg
ICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUgdGhlIGRvY3VtZW50IGl0c2VsZiBpbiB0
aGUgcGVyLWRvY3VtZW50IGRpY3Rpb25hcnkKKyAgICAgICAgICAgIHJldHVybiB0b0dET00oc3Rh
dGljX2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
VFlQRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Eb2N1bWVudFR5cGUoc3RhdGlj
X2Nhc3Q8RG9jdW1lbnRUeXBlKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgTm9kZTo6Tk9UQVRJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NTm90
YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01Eb2N1bWVudEZyYWdtZW50KHN0YXRpY19jYXN0PERvY3VtZW50RnJhZ21l
bnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpFTlRJ
VFlfUkVGRVJFTkNFX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUVudGl0eVJlZmVy
ZW5jZShzdGF0aWNfY2FzdDxFbnRpdHlSZWZlcmVuY2UqPihub2RlKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NTm9kZShu
b2RlKTsKKyAgICB9CisKKyAgICBkb2MtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIG5vZGUsIHJldCk7Cit9CisgCitn
cG9pbnRlciB0b0dET00oSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24pCit7CisgICAgaWYgKCFj
b2xsZWN0aW9uKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLi4gKi8KKworICAgIGdw
b2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChjb2xsZWN0
aW9uKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01P
YmplY3QgKnJldDsKKyAgICBzd2l0Y2ggKGNvbGxlY3Rpb24tPnR5cGUoKSkgeworICAgICAgICBj
YXNlIEhUTUxDb2xsZWN0aW9uOjpTZWxlY3RPcHRpb25zOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbnNDb2xsZWN0
aW9uKj4oY29sbGVjdGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisjaWYgMAorICAgICAgICBj
YXNlIEhUTUxDb2xsZWN0aW9uOjpEb2NBbGw6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhU
TUxBbGxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29sbGVjdGlvbikp
OworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHJldCA9IG5ldyBHRE9NSFRNTENvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTENvbGxlY3Rp
b24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjb2xs
ZWN0aW9uLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01P
YmplY3QoY29sbGVjdGlvbiwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBldmVu
dCkKK3sKKyAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLi4g
Ki8KKworICAgIHByaW50ZigidG9HRE9NIEV2ZW50IHR5cGUgJXNcbiIsIGV2ZW50LT50eXBlKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlw
dEludGVycHJldGVyOjpnZXRET01PYmplY3QoZXZlbnQpOworICAgIGlmIChnb2JqKQorICAgICAg
ICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBpZiAoZXZlbnQtPmlz
VUlFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpCisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTUtleWJvYXJkRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRF
dmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1RleHRFdmVudCgpKQor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0RXZlbnQoc3RhdGljX2Nhc3Q8VGV4dEV2ZW50
Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01Nb3VzZUV2ZW50KHN0YXRpY19jYXN0PE1vdXNlRXZlbnQq
PihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNXaGVlbEV2ZW50KCkpCisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTVdoZWVsRXZlbnQoc3RhdGljX2Nhc3Q8V2hlZWxFdmVudCo+
KGV2ZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzU1ZH
Wm9vbUV2ZW50KCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RP
ICovCisgICAgICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHWm9vbUV2ZW50KHN0YXRpY19jYXN0
PFNWR1pvb21FdmVudCo+KGV2ZW50KSwgMCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBl
bHNlCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVVJRXZlbnQoc3RhdGljX2Nhc3Q8VUlFdmVu
dCo+KGV2ZW50KSk7CisgICAgfSBlbHNlIGlmIChldmVudC0+aXNNdXRhdGlvbkV2ZW50KCkpCisg
ICAgICAgIHJldCA9IG5ldyBHRE9NTXV0YXRpb25FdmVudChzdGF0aWNfY2FzdDxNdXRhdGlvbkV2
ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNPdmVyZmxvd0V2ZW50KCkpCisg
ICAgICAgIHJldCA9IG5ldyBHRE9NT3ZlcmZsb3dFdmVudChzdGF0aWNfY2FzdDxPdmVyZmxvd0V2
ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNNZXNzYWdlRXZlbnQoKSkKKyAg
ICAgICAgcmV0ID0gbmV3IEdET01NZXNzYWdlRXZlbnQoc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50
Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNQcm9ncmVzc0V2ZW50KCkpIHsKKyAg
ICAgICAgaWYgKGV2ZW50LT5pc1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpKQorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoc3RhdGljX2Nh
c3Q8WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Qcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFByb2dy
ZXNzRXZlbnQqPihldmVudCkpOworICAgIH0KKyNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCisgICAg
ZWxzZSBpZiAoZXZlbnQtPmlzU3RvcmFnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9N
U3RvcmFnZUV2ZW50KHN0YXRpY19jYXN0PFN0b3JhZ2VFdmVudCo+KGV2ZW50KSk7CisjZW5kaWYK
KyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRBbmltYXRpb25FdmVudCgpKQorICAgICAgICBy
ZXQgPSBuZXcgR0RPTVdlYktpdEFuaW1hdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdEFuaW1h
dGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRUcmFuc2l0
aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQo
c3RhdGljX2Nhc3Q8V2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlCisg
ICAgICAgIHJldCA9IG5ldyBHRE9NRXZlbnQoZXZlbnQpOworCisgICAgZXZlbnQtPnJlZigpOwor
ICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChldmVudCwgcmV0
KTsKK30KKworLyogVE9ETyBYWFggaG1tbS4uLiBub3Qgc28gaGFwcHkgYWJvdXQgdGhpcyAtIHNo
b3VsZCBiZSAibmV3bHkgY3JlYXRlZCIgKi8KK2dwb2ludGVyIHRvR0RPTShUZXh0KiB0ZXh0KQor
eworICAgIGlmICghdGV4dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBn
b2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQodGV4dC0+
ZG9jdW1lbnQoKSwgdGV4dCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOwor
CisgICAgR0RPTU5vZGUgKnJldCA9IG5ldyBHRE9NVGV4dCh0ZXh0KTsKKyAgICB0ZXh0LT5kb2N1
bWVudCgpLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01O
b2RlRm9yRG9jdW1lbnQodGV4dC0+ZG9jdW1lbnQoKSwgdGV4dCwgcmV0KTsKK30KKworZ3BvaW50
ZXIgdG9HRE9NKENTU1J1bGUqIHJ1bGUpCit7CisgICAgaWYgKCFydWxlKQorICAgICAgICByZXR1
cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChydWxlKTsKKworICAgIGlmIChnb2JqKQorICAg
ICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBzd2l0Y2ggKHJ1
bGUtPnR5cGUoKSkgeworICAgICAgICBjYXNlIENTU1J1bGU6OlNUWUxFX1JVTEU6CisgICAgICAg
ICAgICByZXQgPSBuZXcgR0RPTUNTU1N0eWxlUnVsZShzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUq
PihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpNRURJ
QV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NNZWRpYVJ1bGUoc3RhdGljX2Nh
c3Q8Q1NTTWVkaWFSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQ1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNT
U0ZvbnRGYWNlUnVsZShzdGF0aWNfY2FzdDxDU1NGb250RmFjZVJ1bGUqPihydWxlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpQQUdFX1JVTEU6CisgICAgICAg
ICAgICByZXQgPSBuZXcgR0RPTUNTU1BhZ2VSdWxlKHN0YXRpY19jYXN0PENTU1BhZ2VSdWxlKj4o
cnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JU
X1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0ltcG9ydFJ1bGUoc3RhdGljX2Nh
c3Q8Q1NTSW1wb3J0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1J1bGU6OkNIQVJTRVRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NT
Q2hhcnNldFJ1bGUoc3RhdGljX2Nhc3Q8Q1NTQ2hhcnNldFJ1bGUqPihydWxlKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpWQVJJQUJMRVNfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFyaWFibGVzUnVsZShzdGF0aWNfY2FzdDxDU1NWYXJp
YWJsZXNSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1J1bGUocnVsZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBydWxlLT5yZWYoKTsKKyAgICBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OnB1dERPTU9iamVjdChydWxlLCByZXQpOworICAgIHJldHVybiByZXQ7Cit9CisKKy8qIFRP
RE86IHNob3VsZCBiZSB0b0dET01OZXdseUNyZWF0ZWQgKi8KK2dwb2ludGVyIHRvR0RPTShFbGVt
ZW50KiBlbGVtZW50KQoreworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisKKyAgICAvLyBzaG91bGRuJ3QgYmUgb25lPyBBU1NFUlQoIVNjcmlwdEludGVycHJldGVyOjpn
ZXRET01Ob2RlRm9yRG9jdW1lbnQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgZWxlbWVudCkpOworICAg
IGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1
bWVudChlbGVtZW50LT5kb2N1bWVudCgpLCBlbGVtZW50KTsKKyAgICBpZiAoZ29iaikKKyAgICAg
ICAgcmV0dXJuIGdvYmo7IC8vIGh1aD8gZXJyLi4uCisKKyAgICBHRE9NTm9kZSAqcmV0OworICAg
IERvY3VtZW50KiBkb2MgPSBlbGVtZW50LT5kb2N1bWVudCgpOworCisgICAgaWYgKGVsZW1lbnQt
PmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0
YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oZWxlbWVudCkpOworI2lmIEVOQUJMRShTVkcpCisgICAg
ZWxzZSBpZiAoZWxlbWVudC0+aXNTVkdFbGVtZW50KCkpCisgICAgeworICAgICAgICByZXR1cm4g
TlVMTDsgLyogVE9ETyAqLworICAgICAgICAvL3JldCA9IGNyZWF0ZUdET01TVkdXcmFwcGVyKHN0
YXRpY19jYXN0PFNWR0VsZW1lbnQqPihlbGVtZW50KSk7CisgICAgfQorI2VuZGlmCisgICAgZWxz
ZQorICAgICAgICByZXQgPSBuZXcgR0RPTUVsZW1lbnQoZWxlbWVudCk7CisKKyAgICBkb2MtPnJl
ZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1
bWVudChkb2MsIGVsZW1lbnQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0
KiBzdHlsZVNoZWV0KQoreworICAgIGlmICghc3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIE5V
TEw7IC8qIGVyci4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6Z2V0RE9NT2JqZWN0KHN0eWxlU2hlZXQpOworICAgIGlmIChnb2JqKQorICAgICAgICBy
ZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBpZiAoc3R5bGVTaGVldC0+
aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5bGVTaGVldChz
dGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCkpOworICAgIGVsc2UKKyAgICAg
ICAgcmV0ID0gbmV3IEdET01TdHlsZVNoZWV0KHN0eWxlU2hlZXQpOworCisgICAgc3R5bGVTaGVl
dC0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0
KHN0eWxlU2hlZXQsIHJldCk7Cit9CisKKy8qIGRlcml2ZWQgc291cmNlcyBhdXRvLWdlbmVyYXRl
ZCAqLworZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBvYmopOworCitncG9p
bnRlciB0b0dET00oRXZlbnRUYXJnZXQqIHRhcmdldCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAg
ICAgICAgcmV0dXJuIE5VTEw7CisgICAgCisjaWYgMAorI2lmIEVOQUJMRShTVkcpCisgICAgLy8g
U1ZHRWxlbWVudEluc3RhbmNlIHN1cHBvcnRzIGJvdGggdG9TVkdFbGVtZW50SW5zdGFuY2UgYW5k
IHRvTm9kZSBzaW5jZSBzbyBtdWNoIG1vdXNlIGhhbmRsaW5nIGNvZGUgZGVwZW5kcyBvbiB0b05v
ZGUgcmV0dXJuaW5nIGEgdmFsaWQgbm9kZS4KKyAgICBTVkdFbGVtZW50SW5zdGFuY2UqIGluc3Rh
bmNlID0gdGFyZ2V0LT50b1NWR0VsZW1lbnRJbnN0YW5jZSgpOworICAgIGlmIChpbnN0YW5jZSkK
KyAgICAgICAgcmV0dXJuIHRvR0RPTShleGVjLCBpbnN0YW5jZSk7CisjZW5kaWYKKyNlbmRpZgor
CisgICAgTm9kZSogbm9kZSA9IHRhcmdldC0+dG9Ob2RlKCk7CisgICAgaWYgKG5vZGUpCisgICAg
ICAgIHJldHVybiB0b0dET00obm9kZSk7CisgICAgCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0KiB4
aHIgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3QoKSkKKyAgICAgICAgLy8gWE1MSHR0cFJlcXVl
c3QgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIGNh
Y2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRl
cjo6Z2V0RE9NT2JqZWN0KHhocik7CisKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVw
bG9hZCA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgpKQorICAgICAgICByZXR1cm4g
dG9HRE9NKHVwbG9hZCk7CisgICAgCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKKyAgICBpZiAoRE9NQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSB0YXJnZXQtPnRvRE9NQXBw
bGljYXRpb25DYWNoZSgpKQorICAgICAgICAvLyBET01BcHBsaWNhdGlvbkNhY2hlIGlzIGFsd2F5
cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSBjYWNoZURPTU9iamVj
dCgpIGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9i
amVjdChjYWNoZSk7CisjZW5kaWYKKworICAgIC8vIFRoZXJlIGFyZSB0d28ga2luZHMgb2YgRXZl
bnRUYXJnZXRzOiBFdmVudFRhcmdldE5vZGUgYW5kIFhNTEh0dHBSZXF1ZXN0LgorICAgIC8vIElm
IFNWRyBzdXBwb3J0IGlzIGVuYWJsZWQsIHRoZXJlIGlzIGFsc28gU1ZHRWxlbWVudEluc3RhbmNl
LgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOVUxMOworfSAgIAorCitn
cG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXROb2RlKiB0YXJnZXQpCit7CisgICAgaWYgKCF0YXJn
ZXQpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIAorICAgIE5vZGUqIG5vZGUgPSB0YXJnZXQt
PnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICByZXR1cm4gdG9HRE9NKG5vZGUpOwor
ICAgIAorICAgIHJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8RXZlbnRUYXJnZXQqPih0YXJnZXQp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR2RvbURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
R2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2lmbmRlZiBfX0dkb21ET01P
YmplY3RfSF9fCisjZGVmaW5lIF9fR2RvbURPTU9iamVjdF9IX18KKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVD
TFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOworCisjZGVm
aW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdkb21fZG9tX29iamVjdF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01P
YmplY3QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01P
YmplY3RDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVChvYmopICAgICAgICAgKEdf
VFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisj
ZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFT
U19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01fRE9N
X09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiks
ICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkKKwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIEdkb21ET01PYmplY3RQcml2YXRlOworCitzdHJ1
Y3QgX0dkb21ET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAg
R2RvbURPTU9iamVjdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21ET01PYmplY3RD
bGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkg
R1R5cGUKK2dkb21fZG9tX29iamVjdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgdm9p
ZAorZ2RvbV9kb21fb2JqZWN0X2luaXRfZG9tX29iamVjdCAoR2RvbURPTU9iamVjdCAqdGhpeik7
CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfX0dkb21ET01PYmplY3RfSF9fICovCisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAK
KyNpZm5kZWYgX19ET01PYmplY3RfaF9fCisjZGVmaW5lIF9fRE9NT2JqZWN0X2hfXworCisvLyBu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdET01PYmplY3QgeworcHVibGljOgorICAgIHZp
cnR1YWwgfkdET01PYmplY3QoKSB7fQorICAgIHZpcnR1YWwgaW50IGdldF9nb2JqX3R5cGUoKSA9
IDA7Cit9OworCisvLyB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IFRISVMgRklMRSBJUyBERVJJVkVEIEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFURUQgRklM
RS4KKyAqIGtlZXBpbmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBkb25lIGJ5
IGFkZGluZworICogYSBtYWtlX25hbWVzLnBsIGdlbmVyYXRvciwgb3IgYnkgd3JpdGluZyBhIHNl
cGFyYXRlCisgKiBnZW5lcmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmggYXMgaW5wdXQuCisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaWZuZGVmIEdET01I
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKKyNkZWZpbmUgR0RPTUhUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnlfaAorCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob2RlLmgiCisKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBIVE1M
RWxlbWVudDsKKworICAgIEdET01Ob2RlKiBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4pOworCit9CisgCisjZW5kaWYgLy8gR0RPTUhUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnlfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw5MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQ
b3J0ZW4gKHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJp
Z2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdo
dCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0Pgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBHZG9tRE9NQmluZGluZ19o
CisjZGVmaW5lIEdkb21ET01CaW5kaW5nX2gKKworI2luY2x1ZGUgPGtqcy9pbnRlcnByZXRlci5o
PgorI2luY2x1ZGUgPGtqcy9sb29rdXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
KworI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tTm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBj
bGFzcyBBdG9taWNTdHJpbmc7CisgICAgY2xhc3MgRG9jdW1lbnQ7CisgICAgY2xhc3MgRXZlbnQ7
CisgICAgY2xhc3MgRnJhbWU7CisgICAgY2xhc3MgS1VSTDsKKyAgICBjbGFzcyBOb2RlOworICAg
IGNsYXNzIFN0cmluZzsKKworI2lmIEVOQUJMRShTVkcpCisgICAgY2xhc3MgU1ZHRWxlbWVudDsK
KyNlbmRpZgorCisgICAgY2xhc3MgR0RPTVNjcmlwdEludGVycHJldGVyIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIHN0YXRpYyB2b2lkKiBnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsK
KyAgICAgICAgc3RhdGljIHZvaWQqIHB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdE
T01PYmplY3QqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZm9yZ2V0RE9NT2JqZWN0KHZvaWQqIG9i
amVjdEhhbmRsZSk7CisKKyAgICAgICAgc3RhdGljIHZvaWQqIGdldERPTU5vZGVGb3JEb2N1bWVu
dChEb2N1bWVudCosIE5vZGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQqIHB1dERPTU5vZGVGb3JE
b2N1bWVudChEb2N1bWVudCosIE5vZGUqLCBHRE9NTm9kZSogbm9kZVdyYXBwZXIpOworICAgICAg
ICBzdGF0aWMgdm9pZCBmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqLCBOb2RlKik7
CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1l
bnQqKTsKKwkJI2lmIDAKKyAgICAgICAgc3RhdGljIHZvaWQgdXBkYXRlRE9NTm9kZURvY3VtZW50
KE5vZGUqLCBEb2N1bWVudCogb2xkRG9jLCBEb2N1bWVudCogbmV3RG9jKTsKKyAgICAgICAgc3Rh
dGljIHZvaWQgbWFya0RPTU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2VuZGlmCisg
ICAgfTsKKworICAgIC8vIFJldHJpZXZlIGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdy
YXBwZXIgZm9yIGEgRE9NIG9iamVjdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNz
IEdkb21ET01PYmo+IGlubGluZSB2b2lkKiBjYWNoZURPTU9iamVjdChET01PYmoqIGRvbU9iaikK
KyAgICB7CisgICAgICAgIGlmICghZG9tT2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8q
IFhYWCBobW1tLi4uICovCisgICAgICAgIGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJw
cmV0ZXI6OmdldERPTU9iamVjdChkb21PYmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAg
ICAgICAgR0RPTU9iamVjdCogcmV0ID0gbmV3IEdkb21ET01PYmooZG9tT2JqKTsKKwkJZG9tT2Jq
LT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFJldHJp
ZXZlIGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIgZm9yIGFuIFNWRyBET00g
b2JqZWN0LgorICAgIHRlbXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3MgR2RvbURPTU9iaj4gaW5s
aW5lIHZvaWQqIGNhY2hlU1ZHRE9NT2JqZWN0KERPTU9iaiogZG9tT2JqLCBTVkdFbGVtZW50KiBj
b250ZXh0KQorICAgIHsKKyAgICAgICAgaWYgKCFkb21PYmopCisgICAgICAgICAgICByZXR1cm4g
TlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKyAgICAgICAgaWYgKHZvaWQqIHJldCA9IEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvbU9iaikpCisgICAgICAgICAgICByZXR1cm4g
cmV0OworICAgICAgICBHRE9NT2JqZWN0KiByZXQgPSBuZXcgR2RvbURPTU9iaihkb21PYmosIGNv
bnRleHQpOworCQlkb21PYmotPnJlZigpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVy
cHJldGVyOjpwdXRET01PYmplY3QoZG9tT2JqLCByZXQpOworICAgIH0KKyNlbmRpZgorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBHZG9tRE9NQmluZGluZ19oCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbURPTU9iamVj
dC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBt
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0LnBtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2NzggQEAKKyMKKyMgQ29weXJpZ2h0
IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+Cisj
IENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorIworIyBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMK
KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisjIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyMgQm9zdG9uLCBN
QSAwMjExMS0xMzA3LCBVU0EuCisKK3BhY2thZ2UgQ29kZUdlbmVyYXRvckdPYmplY3Q7CisKKyMg
RGVmYXVsdCBMaWNlbmNlIFRlbXBsYXRlcworbXkgJGxpY2VuY2VUZW1wbGF0ZSA9IDw8ICJFT0Yi
OworLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9u
IDxsa2NsXEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscFxA
YXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KK0VPRgor
CitteSAlaW1wbEluY2x1ZGVzID0gKCk7CitteSAlaGRySW5jbHVkZXMgPSAoKTsKK215ICVoZHJQ
cm9wSW5jbHVkZXMgPSAoKTsKK215ICVpbXBsVHlwZWRlZnMgPSAoKTsKKworIyBEZWZhdWx0IGNv
bnN0cnVjdG9yCitzdWIgbmV3Cit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRy
ZWZlcmVuY2UgPSB7IH07CisKKyAgICAkY29kZUdlbmVyYXRvciA9IHNoaWZ0OworICAgICRvdXRw
dXREaXIgPSBzaGlmdDsKKworICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOworICAgIHJl
dHVybiAkcmVmZXJlbmNlOworfQorCitzdWIgZmluaXNoCit7CisgICAgbXkgJG9iamVjdCA9IHNo
aWZ0OworfQorCisjIFBhcmFtczogJ2RvbUNsYXNzJyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZUludGVy
ZmFjZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlm
dDsKKyAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OworCisgICAgbXkgJG5hbWUgPSAkZGF0YU5vZGUt
Pm5hbWU7CisKKyAgICBwcmludCAiJG5hbWVcbiI7CisKKyAgICAkb2JqZWN0LT5HZW5lcmF0ZSgk
ZGF0YU5vZGUpOworCisgICAgIyBXcml0ZSBjaGFuZ2VzCisgICAgbXkgJGZuYW1lID0gIkdkb21f
IiAuICRuYW1lOyAjZGVjYW1lbGl6ZSgkbmFtZSk7CisgICAgJGZuYW1lID1+IHMvXy8vZzsKKyAg
ICAkb2JqZWN0LT5Xcml0ZURhdGEoJGZuYW1lKTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVu
dCcgc3RydWN0CitzdWIgR2VuZXJhdGVNb2R1bGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7
CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAkbW9kdWxlID0gJGRhdGFOb2RlLT5t
b2R1bGU7Cit9CisKK3N1YiBDbHNUb0dPYmpUeXBlCit7CisgICAgbXkgJGNsYXNzTmFtZSA9IHNo
aWZ0OworICAgIHJldHVybiB1YyhkZWNhbWVsaXplKCRjbGFzc05hbWUpKQorfQorCitzdWIgR2V0
UGFyZW50Q2xhc3NOYW1lCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/
IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdh
Y3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJl
bnQifTsKKyAgICByZXR1cm4gIkdkb21ET01PYmplY3QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRz
fSBlcSAwOworICAgIHJldHVybiAiR2RvbSIgLiAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUo
JGRhdGFOb2RlLT5wYXJlbnRzKDApKTsKK30KK3N1YiBHZXRQYXJlbnRHT2JqVHlwZQoreworICAg
IG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgIyA/PyBxdWU/PworICAgICNyZXR1cm4gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgcmV0dXJuICJHRE9N
X1RZUEVfRE9NX09CSkVDVCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0
dXJuICJHRE9NX1RZUEVfIiAuIENsc1RvR09ialR5cGUoJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9k
dWxlKCRkYXRhTm9kZS0+cGFyZW50cygwKSkpOworfQorCisKKyMgQWxnb3JpdGhtIHRha2VuIGZy
b20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGNhbWVsaXplCit7CisgICAgbXkgJHMgPSBz
aGlmdDsKKyAgICBqb2luKCcnLCBtYXB7IHVjZmlyc3QgJF8gfSBzcGxpdCgvKD88PVtBLVphLXpd
KV8oPz1bQS1aYS16XSl8XGIvLCAkcykpOworfQorCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0
cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1YiBkZWNhbWVsaXplCit7CisgICAgbXkgJHMgPSBzaGlm
dDsKKyAgICAkcyA9fiBzeyhbXmEtekEtWl0/KShbQS1aXSopKFtBLVpdKShbYS16XT8pfXsKKyAg
ICAgICAgbXkgJGZjID0gcG9zKCRzKT09MDsKKyAgICAgICAgbXkgKCRwMCwkcDEsJHAyLCRwMykg
PSAoJDEsbGMkMixsYyQzLCQ0KTsKKyAgICAgICAgbXkgJHQgPSAkcDAgfHwgJGZjID8gJHAwIDog
J18nOworICAgICAgICAkdCAuPSAkcDMgPyAkcDEgPyAiJHtwMX1fJHAyJHAzIiA6ICIkcDIkcDMi
IDogIiRwMSRwMiI7CisgICAgICAgICR0OworICAgIH1nZTsKKyAgICAkczsKK30KKworc3ViIEdl
dEhkck5hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1
bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitzdWIgR2V0Q2xhc3NO
YW1lCit7CisgICAgICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNo
aWZ0KTsKKworICAgIHJldHVybiAiR2RvbSRuYW1lIjsKK30KKworc3ViIEdldEdJbmNsdWRlSGRy
Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRIZHJOYW1l
KCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBl
KSk7CisKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEg
InNob3J0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAg
cmV0dXJuICIiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlw
ZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7
CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICAgICAg
cmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuICIi
IGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVx
ICJET01UaW1lU3RhbXAiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkV2ZW50TGlz
dGVuZXIiOworICAgICAgICByZXR1cm4gIlJhbmdlLmgiIGlmICR0eXBlIGVxICJDb21wYXJlSG93
IjsKKyAgICAgICAgcmV0dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIGlmICR0
eXBlIGVxICJET01PYmplY3QiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIGNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBY
WFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3Qu
aCIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oIiBpZiAkdHlwZSBlcSAiRXZlbnRUYXJnZXQiOworCisgICAgICAgIHJldHVybiAi
Z2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKworICAgICAgICByZXR1cm4gImds
aWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJib29sZWFuIjsKKworICAgICAgICByZXR1cm4gImds
aWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUuaCI7
Cit9CisKKyMgcmV0dXJucyAxIGlmIHdlIG5lZWQgdG8gY3JlYXRlIGEgZ29iamVjdCB3cmFwcGVy
IGFyb3VuZCB0aGUgcmV0dXJuIHJlc3VsdAorc3ViIElzR0RPTUNsYXNzVHlwZQoreworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsK
KworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJFdmVudExpc3RlbmVyIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkNv
bXBhcmVIb3ciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgImJvb2xlYW4iOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7Cisg
ICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBpbnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7
CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBw
ZXIKKworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4g
MTsKK30KKworc3ViIEdldFByb3BHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAg
bXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlm
ICR0eXBlIGVxICJET01TdHJpbmciOworICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJm
bG9hdCI7CisgICAgcmV0dXJuICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJl
SG93IjsKKyAgICByZXR1cm4gImRvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0
dXJuICJib29sZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBp
ZiAkdHlwZSBlcSAiY2hhciI7CisgICAgcmV0dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7
CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hh
ciIgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCI7CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVy
biAidWludCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQi
IGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdC
Q29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2Jq
ZWN0IjsKK30KKworc3ViIEdldEdUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAg
ICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBj
YW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIkdkb21FdmVu
dFRhcmdldE5vZGUgKiIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKyAgICAgICAgcmV0dXJu
ICJjb25zdCBnY2hhciAqIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJu
ICJnZmxvYXQgIiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIldlYkNvcmU6
OlJhbmdlOjpDb21wYXJlSG93ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICBy
ZXR1cm4gImdkb3VibGUgIiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICJn
Ym9vbGVhbiAiIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuICJnY2hhciAi
IGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuICJnbG9uZyAiIGlmICR0eXBlIGVx
ICJsb25nIjsKKyAgICAgICAgcmV0dXJuICJnc2hvcnQgIiBpZiAkdHlwZSBlcSAic2hvcnQiOwor
ICAgICAgICByZXR1cm4gImd1Y2hhciAiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJl
dHVybiAiZ3VpbnQgIiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1cm4gImdp
bnQgIiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuICJndWludCAiIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyAiIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuICJndWludDY0ICIgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgICAgIHJldHVybiAiZ3VzaG9ydCAiIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBl
cSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICBy
ZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7
Cit9CisKK3N1YiBnZXRJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkg
JGluY2x1ZGVIZHIgPSBHZXRHSW5jbHVkZUhkcigkdHlwZSk7CisgICAgaWYgKCRpbmNsdWRlSGRy
KSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICBy
ZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYg
KCR0eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDop
IGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgcmV0dXJuICJHZG9tQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmgiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0
dXJuICRpbmNsdWRlSGRyOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKwor
c3ViIGFkZFByb3BJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhk
ciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGhk
clByb3BJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5
cGUpKSB7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJQcml2YXRlIi4kaGRyfSA9IDE7
CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJQcml2YXRlSW50Ii4kaGRyfSA9IDE7Cisg
ICAgICAgIH0KKyAgICB9CisKK30KKworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0g
c2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBu
ZSAiIikgeworICAgICAgICAkaGRySW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0KKworfQorCitz
dWIgYWRkSW5jQm9keQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0g
Z2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaW1wbElu
Y2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICB9Cit9CisKK3N1YiBHZXRQcml2Rm4KK3sKKyAgICBteSAk
aW50ZXJmYWNlTmFtZSA9IHNoaWZ0OworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSBzaGlmdDsK
KyAgICBteSAkcmVzID0gc2hpZnQ7CisgICAgbXkgJHBhcm0gPSBzaGlmdDsKKworICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgIHJldHVybiAiV2ViQ29y
ZTo6RXZlbnRUYXJnZXROb2RlICogJHJlcyA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFy
Z2V0Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoc2VsZikpOyI7Cisg
ICAgfQorICAgIHJldHVybiAiV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqICRyZXMgPSAoJHts
Y2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCRwYXJtKSk7IjsKK30KKworc3ViIHNraXBQcm9w
VGVtcG9yYXJpbHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRwcm9wX3R5cGUg
PSBzaGlmdDsKKworICAgICMgc2tpcCBNZWRpYUxpc3QKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAi
c3R5bGVzaGVldHM6Ok1lZGlhTGlzdCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisg
ICAgI2lmICgkcHJvcF90eXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAjICAgIHJldHVybiAx
OworICAgICN9CisKKyAgICAjIHNraXAgQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24KKyAgICBpZiAo
JHByb3BfdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVy
biAxOworICAgIH0KKworICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAg
ICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJl
dHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24K
KyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIikgewor
ICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBFdmVudExpc3RlbmVyCisg
ICAgI2lmICgkcHJvcF90eXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICMgICAgcmV0dXJu
IDE7CisgICAgI30KKworICAgICMgc2tpcCBET01XaW5kb3cKKyAgICAjaWYgKCRwcm9wX3R5cGUg
ZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNr
aXAgQ29uc3RydWN0b3JzICh3aGF0ZXZlciB0aGV5IGFyZSkgZm9yIG5vdy4KKyAgICBpZiAoJHBy
b3BfdHlwZSA9fiAvQ29uc3RydWN0b3IkLykgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisK
KyAgICAjIGNhbnZhczJkLi4uLgorICAgIGlmICgkcHJvcF90eXBlIGVxICJjdXN0b20iKSB7Cisg
ICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmICgkcHJvcF90eXBlIGVxICJBcnJheSIp
IHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRP
TVRpbWVTdGFtcCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBUT0RPOiBT
VkcKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUG9kVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5l
cmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKSkgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9u
Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgICMgc2tpcHBlZCBvdXQgQ2FudmFzUGl4
ZWxBcnJheSAtIHNlZSBKU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwIGZvciB3aHkuCisgICAg
cmV0dXJuIDEgaWYgJHR5cGUgZXEgIk5vZGUiIG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3IgJHR5
cGUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAkdHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3IgJHR5cGUg
ZXEgIlN0eWxlU2hlZXQiIG9yICR0eXBlIGVxICJDU1NSdWxlIiBvciAkdHlwZSBlcSAiQ1NTVmFs
dWUiIG9yICR0eXBlIGVxICJFdmVudCIgb3IgJHR5cGUgZXEgIkVsZW1lbnQiIG9yICR0eXBlIGVx
ICJUZXh0IjsKKyAgICByZXR1cm4gMDsKK30KKworCisjIEdlbmVyYXRlIGhlYWRlciBhbmQgaW1w
bAorc3ViIEdlbmVyYXRlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRh
Tm9kZSA9IHNoaWZ0OworCisgICAgbXkgJGhhc0xlZ2FjeVBhcmVudCA9ICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50
ID0gQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMDsKKyAgICBteSAkaGFzUGFyZW50ID0gJGhhc0xl
Z2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVudDsKKyAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0g
R2V0UGFyZW50Q2xhc3NOYW1lKCRkYXRhTm9kZSk7CisgICAgbXkgJHBhcmVudEdPYmpUeXBlID0g
R2V0UGFyZW50R09ialR5cGUoJGRhdGFOb2RlKTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRk
YXRhTm9kZS0+bmFtZTsKKyAgICBteSAkY2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZh
Y2VOYW1lKTsKKyAgICBteSAkaGRyTmFtZSA9IEdldEhkck5hbWUoJGludGVyZmFjZU5hbWUpOwor
CisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1wbCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZp
eCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgIHB1c2goQGNQcmVmaXgsICJc
biIpOworCisgICAgJGltcGxJbmNsdWRlc3siR0RPTUJpbmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1w
bEluY2x1ZGVzeyIkaGRyTmFtZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGUk
e2hkck5hbWV9LmgifSA9IDE7CisKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01P
YmplY3QiOworICAgIG15ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15
ICRwYXJlbnRIZHJOYW1lID0gIkdkb21ET01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NO
YW1lIG5lICJHT2JqZWN0IikKKyAgICB7CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0g
c3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFj
ZU5hbWUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0g
IkdET00iLnN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRI
ZHJOYW1lID0gR2V0SGRyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAg
ICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJH
RE9NT2JqZWN0IjsKKyAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmVudEhk
ck5hbWV9LmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGUke3BhcmVudEhk
ck5hbWV9LmgifSA9IDE7CisgICAgICAgICRoZHJJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5o
In0gPSAxOworICAgICAgICAjJGhkckluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5o
In0gPSAwOworICAgIH0KKworICAgICMgVE9ETyAtIG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdo
ZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAgIyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9H
RE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNs
dWRlc3siRWxlbWVudC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9
IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVsZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVk
ZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7CisgICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhT
ZWcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAg
JGltcGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQ
aXhlbEFycmF5LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRE9NV2luZG93LmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siVGV4dC5oIn0gPSAxOworCisgICAgIyBYWFggVE9ETzogbWFr
ZSB0aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVhZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdh
eS4KKyAgICBteSAkaGFja0RlY2xzID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NW
YWx1ZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKENTU1J1bGUqIG5vZGUpOworICAgIGdw
b2ludGVyIHRvR0RPTShFbGVtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRG9jdW1l
bnQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogbm9kZSk7IAor
ICAgIC8vZ3BvaW50ZXIgdG9HRE9NKFNWR1BhdGhTZWcqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0
b0dET00oU3R5bGVTaGVldCogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdl
dE5vZGUqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIG5vZGUpOyAK
KyAgICBncG9pbnRlciB0b0dET00oRXZlbnQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00o
Q2FudmFzUGl4ZWxBcnJheSogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShET01XaW5kb3cq
IG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oVGV4dCogbm9kZSk7IAorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCitFT0YKKworICAgIHB1c2goQGNCb2R5LCAkaGFja0RlY2xzKTsKKworICAg
ICMgWFhYIFRPRE86IG1ha2UgdGhpcyBvcHRpb25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3Ig
ZmluZCBhIGJldHRlciB3YXkuCisgICAgbXkgJHN0cmluZ0NvbnZlcnQgPSA8PCAiRU9GIjsKK2Ns
YXNzIEdTdHJpbmdDb252ZXJ0IHsKKyAgICBwdWJsaWM6CisgICAgY29uc3QgZ2NoYXIgKm1fc3Ry
OworICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYgcykgeyBtX3N0ciA9
IGdfc3RyZHVwKHMudXRmOCgpLmRhdGEoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3Jl
OjpLVVJMIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KGNvbnN0IEtKUzo6VVN0cmluZyAmIHMpIHsgbV9z
dHIgPSBnX3N0cmR1cChzLlVURjhTdHJpbmcoKS5jX3N0cigpKTsgfQorICAgIEdTdHJpbmdDb252
ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorfTsKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwg
JHN0cmluZ0NvbnZlcnQpOworCisgICAgcHVzaChAY0JvZHksICJuYW1lc3BhY2UgV2ViQ29yZSB7
XG4iKTsKKworICAgICMgR2V0IGNvcnJlY3QgcGFzcy9zdG9yZSB0eXBlcyByZXNwZWN0aW5nIFBP
RFR5cGUgZmxhZworICAgIG15ICRwb2RUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUE9EVHlwZSJ9OworICAgIG15ICRwYXNzVHlwZSA9ICRwb2RUeXBlID8gIkpTU1ZHUE9E
VHlwZVdyYXBwZXI8JHBvZFR5cGU+KiIgOiAiJGludGVyZmFjZU5hbWUqIjsKKworICAgIGlmICgk
e2ludGVyZmFjZU5hbWV9IGVxICJET01XaW5kb3ciIHx8ICghJGhhc1BhcmVudCBvciAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFs
VG9KU0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VOYW1lKSkgeworICAgICAgICAjaWYgKCRwb2RU
eXBlKSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pT
OjpFeGVjU3RhdGUqIGV4ZWMsIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiBvYmosIFNW
R0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRp
bmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgICBwdXNo
KEBjQm9keSwgIktKUzo6SlNWYWx1ZSogdG9KUyhLSlM6OkV4ZWNTdGF0ZSogZXhlYywgJHBhc3NU
eXBlIG9iaiwgU1ZHRWxlbWVudCogY29udGV4dClcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNzVHlw
ZSBvYmopXG4iKTsKKyAgICAgICAgI30KKworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOwor
ICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICIgICAg
cmV0dXJuIGNhY2hlU1ZHRE9NT2JqZWN0PEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+LCAk
Y2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGV4ZWMsIG9iaiwgY29udGV4dCk7XG4i
KTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRp
bXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBj
YWNoZVNWR0RPTU9iamVjdDwkaW1wbENsYXNzTmFtZSwgJGNsYXNzTmFtZSwgJHtjbGFzc05hbWV9
UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQpO1xuIik7CisgICAgICAgICN9IGVsc2Ugewor
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIFdlYkNvcmU6OmNhY2hlRE9NT2Jq
ZWN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lLCBHRE9NJGludGVyZmFjZU5hbWU+KG9iaik7XG4i
KTsKKyAgICAgICAgI30KKyAgICAgICAgcHVzaChAY0JvZHksICJ9XG4iKTsKKyAgICB9CisKKyAg
ICBwdXNoKEBjQm9keSwgIn0gLyogbmFtZXNwYWNlIFdlYkNvcmUgKi8gXG4iKTsKKyAgICBteSAk
aW1wbENvbnRlbnQgPSAiIjsKKworICAgICMgWFhYIFRPRE8gcHVzaChAY0JvZHksICJ1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTtcblxuIik7CisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIg
e1xuXG4iKTsKKyAgICBwdXNoKEBjQm9keSwgIiNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0
cmluZ0NvbnZlcnQoc3RyKS5tX3N0cilcbiIpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaGVh
ZGVyIHRlbXBsYXRlCisgICAgQGhQcmVmaXggPSBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRl
KTsKKyAgICAgICAgI3B1c2goQGhQcmVmaXgsICJcbiIpOworCisgICAgIyBIZWFkZXIgZ3VhcmQK
KyAgICAgICAgbXkgJGd1YXJkID0gIl9fIiAuICRjbGFzc05hbWUgLiAiX0hfXyI7CisKKyAgICBt
eSAkY2xzQ2FwcyA9IHN1YnN0cihDbHNUb0dPYmpUeXBlKCRjbGFzc05hbWUpLCA1KTsKKyAgICBt
eSAkbGNhc2VfaWZhY2VuYW1lID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUp
OworICAgICNteSAkcGFyZW50Q2xzQ2FwcyA9ICJHRE9NXyIgLiBDbHNUb0dPYmpUeXBlKCRwYXJl
bnRJbnRlcmZhY2VOYW1lKTsKKworICAgIEBoUHJlZml4R3VhcmQgPSA8PCAiRU9GIjsKKyNpZm5k
ZWYgJGd1YXJkCisjZGVmaW5lICRndWFyZAorRU9GCisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAi
RU9GIjsKK0dfQkVHSU5fREVDTFMKKworRU9GCisKKyAgICBwdXNoKEBoQm9keVByZSwgJGltcGxD
b250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCisjZGVmaW5lIEdET01f
VFlQRV8ke2Nsc0NhcHN9ICAgICAgICAgICAgKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc30ob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfSkp
CisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19D
TEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJGNsYXNzTmFtZSlDbGFz
cykKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNL
X0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RP
TV9JU18ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dF
VF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQ
RV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF8ke2Ns
YXNzTmFtZX1Qcml2YXRlICR7Y2xhc3NOYW1lfVByaXZhdGU7CisKK3N0cnVjdCBfJHtjbGFzc05h
bWV9IHsKKyAgICAke3BhcmVudENsYXNzTmFtZX0gcGFyZW50X2luc3RhbmNlOworCisgICAgJHtj
bGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3Mg
eworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBl
Ciske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOworCitFT0YKKworICAgIHB1c2go
QGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Cisj
aWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7Z3VhcmR9X1BST1BfCitFT0YKKworICAg
IHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxDb250ZW50KTsKKworICAgIHB1c2goQGhCb2R5UHJv
cCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgJGhkclByb3BJbmNsdWRleyJnbGliLW9iamVj
dC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiUHJpdmF0ZUludCR7cGFyZW50SGRyTmFt
ZX0uaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7IkdET01PYmplY3QuaCJ9ID0gMTsKKyAg
ICAkaGRyUHJvcEluY2x1ZGV7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKworICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworI2lmbmRlZiAke2d1YXJkfV9JTlRfCisjZGVmaW5lICR7Z3Vh
cmR9X0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnQk
e3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIiR7
aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxD
b250ZW50KTsKKworICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAo
ISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVU
b0pTIn0pIGFuZCAhVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkp
IHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgZ3BvaW50ZXIgdG9HRE9NKCR7aW50ZXJmYWNlTmFtZX0qIG5vZGUpOworfSAvKiBuYW1l
c3BhY2UgV2ViQ29yZSAqLyAKK0VPRgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29u
dGVudCk7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJHX0JFR0lOX0RFQ0xTXG4i
KTsKKworICAgICNDbGFzcyBkZWNsYXJhdGlvbgorICAgICNpZiAoJGludGVyZmFjZU5hbWUgZXEg
IkRPTVdpbmRvdyIpIHsKKyAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9N
JGludGVyZmFjZU5hbWUge1xuIik7CisgICAgI30gZWxzZSB7CisgICAgICAgIHB1c2goQGhCb2R5
SW50ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUgOiBwdWJsaWMgJHBhcmVudEdJZmFj
ZU5hbWUge1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdHlwZWRlZiAk
cGFyZW50R0lmYWNlTmFtZSBCYXNlO1xuIik7CisgICAgI30KKyAgICBwdXNoKEBoQm9keUludGVy
bmFsLCAicHVibGljOlxuIik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBn
ZXRfZ29ial90eXBlKCkgeyByZXR1cm4gR0RPTV9UWVBFXyR7Y2xzQ2Fwc307IH1cbiIpOworCisg
ICAgbXkgJG5lZWRzU1ZHQ29udGV4dCA9IDA7CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2go
QGhCb2R5SW50ZXJuYWwsICIgICAgR0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6JGludGVyZmFjZU5hbWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVt
ZW50KiBjb250ZXh0IiA6ICIiKSAuICIpO1xuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBw
dXNoKEBoQm9keUludGVybmFsLCAiICAgIHZpcnR1YWwgfkdET00kaW50ZXJmYWNlTmFtZSgpO1xu
IikgaWYgKCEkaGFzUGFyZW50IG9yICRpbnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpIG9yICRp
bnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciOworCisgICAgaWYgKCEkaGFzUGFyZW50IHx8ICgk
aW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkg
eworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgSlNTVkdQT0RUeXBlV3Jh
cHBlcjwkcG9kVHlwZT4qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cbiIp
OworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxlbWVudCogY29u
dGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAjICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dDtcbiIp
OworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPEpTU1ZHUE9E
VHlwZVdyYXBwZXI8JHBvZFR5cGU+ID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2lmIChJ
c1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAg
ICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkg
Y29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAg
IFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+IG1faW1wbDtcbiIpOwor
ICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
V2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0
KCk7IH1cblxuIik7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpc
biIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8V2ViQ29y
ZTo6JGludGVyZmFjZU5hbWU+IG1faW1wbDtcbiIpOworICAgICAgICAjfQorICAgIH0gZWxzaWYg
KCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29udmVydGVy
In0pIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJm
YWNlTmFtZSogaW1wbCgpIGNvbnN0XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwg
IiAgICB7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKj4oQmFzZTo6aW1wbCgpKTtcbiIp
OworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIH1cbiIpOworICAgIH0KKyAgICBw
dXNoKEBoQm9keUludGVybmFsLCAifTtcbiIpOworCisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1
c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06OkdET00kaW50ZXJmYWNlTmFtZShQYXNz
UmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0
ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKVxuIik7CisgICAgaWYgKCRpbnRl
cmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDpt
X2ltcGwoaW1wbClcbiIpOworICAgIH0gZWxzaWYgKCRoYXNQYXJlbnQpIHsKKyAgICAgICAgcHVz
aChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZShpbXBsIiAuICgkcGFyZW50TmVlZHNT
VkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIikgaWYgKCRpbnRlcmZhY2VOYW1l
IG5lICJET01XaW5kb3ciKTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICA6ICRwYXJlbnRHSWZhY2VOYW1lKClcbiIpIDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAg
LCBtX2NvbnRleHQoY29udGV4dClcbiIpIGlmICRuZWVkc1NWR0NvbnRleHQ7CisgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBj
Qm9keSwgIntcbiIpOworICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKworICAgICMgRGVzdHJ1
Y3RvcgorICAgIGlmICghJGhhc1BhcmVudCBvciAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRv
dyIpKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5HRE9N
JGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisKKyAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgbV9pbXBsLmdldCgpLT5kZXJlZigpO1xuIik7CisgICAg
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZSIpIHsKKyAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZv
ckRvY3VtZW50KG1faW1wbC0+ZG9jdW1lbnQoKSwgbV9pbXBsLmdldCgpKTtcbiIpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAgICAgIyAg
ICBteSAkYW5pbWF0ZWRUeXBlID0gJGltcGxDbGFzc05hbWU7CisgICAgICAgICAgICAjICAgICRh
bmltYXRlZFR5cGUgPX4gcy9TVkcvU1ZHQW5pbWF0ZWQvOworCisgICAgICAgICAgICAjICAgICMg
U3BlY2lhbCBjYXNlIGZvciBKU1NWR051bWJlcgorICAgICAgICAgICAgIyAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRhbmltYXRlZFR5cGUpIGFuZCAkcG9kVHlwZSBu
ZSAiZmxvYXQiKSB7CisgICAgICAgICAgICAjICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBKU1NW
R0R5bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRwb2RUeXBlLCAkYW5pbWF0ZWRUeXBlPjo6Zm9y
Z2V0V3JhcHBlcihtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgICAgICAjICAgIH0KKyAgICAg
ICAgICAgICN9CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAg
ICAgIH0KKworICAgICAgICBwdXNoKEBjQm9keSwgIlxufVxuXG4iKTsKKyAgICB9CisKKyAgICAj
IERvY3VtZW50IG5lZWRzIGEgc3BlY2lhbCBkZXN0cnVjdG9yIGJlY2F1c2UgaXQncyBhIHNwZWNp
YWwgY2FzZSBmb3IgY2FjaGluZy4gSXQgbmVlZHMKKyAgICAjIGl0cyBvd24gc3BlY2lhbCBoYW5k
bGluZyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBjYWNoaW5nIHRoYXQgTm9kZSBub3JtYWxs
eSBkb2VzLgorICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSB7CisgICAgICAg
IHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUo
KVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuICAgIFdlYkNvcmU6OkdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJm
YWNlTmFtZX0qPihpbXBsKCkpKTtcbn1cblxuIik7CisgICAgfQorCisgICAgJGltcGxJbmNsdWRl
c3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJm
YWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9IDE7
CisKKyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NOYW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRl
ZnN7IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVP
RiI7CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIiAvKiB5
dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTm9kZS5oIiAvKiB5
dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTmFtZWROb2RlTWFw
LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52
YXNQYXR0ZXJuLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNs
dWRlICJDYW52YXNHcmFkaWVudC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFs
ICovCisjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBv
cHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiAvKiB5dWtr
OiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01P
YmplY3QuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUg
Ikdkb21FdmVudFRhcmdldE5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25h
bCAqLworI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgiIC8qIHl1a2s6IFRP
RE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgb24gRXZlbnRUYXJnZXQqLworI2luY2x1ZGUgIiR7aW50
ZXJmYWNlTmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5hbWV9LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZSR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50JHtoZHJOYW1lfS5oIgorI2luY2x1
ZGUgIiR7aGRyTmFtZX1wcm9wcy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgInVz
dHJpbmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisKKyNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5
LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiQ1NT
VmFsdWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24u
aCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisKKworRU9GCisK
KyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQg
PSA8PCAiRU9GIjsKKworJHtoYWNrRGVjbHN9CisKK0dfQkVHSU5fREVDTFMKKworJHtzdHJpbmdD
b252ZXJ0fQorCitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHtsY2FzZV9pZmFjZW5hbWV9
LCAke3BhcmVudEdPYmpUeXBlfSk7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmlu
Z0NvbnZlcnQoc3RyKS5tX3N0cikKKworLyoKK3N0cnVjdCBfJHtjbGFzc05hbWV9UHJpdmF0ZSB7
CisgICAgY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqaXRlbTsKK307ICAKKworI2Rl
ZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dF
VF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9UHJpdmF0
ZSkpCisqLworR19FTkRfREVDTFMKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2Fz
ZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCkKK3sKK0VPRgor
CisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgaWYgKCgkaW50ZXJm
YWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVP
RiI7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLworRU9GCisgICAgfSBlbHNl
IHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisgICAgR0RPTSR7aW50ZXJmYWNl
TmFtZX0gKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NJHtpbnRlcmZhY2VOYW1lfSo+
KGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVxdWVzdCkpKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KHJlcy0+
aW1wbCgpKTsKK0VPRgorICAgIH0KKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7
CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1lUHJlZml4ID0gJGxjYXNl
X2lmYWNlbmFtZTsgCisgICAgU0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0
YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgk
cHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoi
OworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgICAgICBu
ZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgJGltcGxJbmNs
dWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NT
U3R5bGVEZWNsYXJhdGlvbiI7CisKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5
cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9
CisgICAgICAgICAgICAKKyAgICAgICAgYWRkUHJvcEluY0hkcigkcHJvcF90eXBlKTsKKworICAg
ICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSAkdHlwZVxuJGZ1bmN0aW9uTmFtZVBy
ZWZpeCIgLiAiX3Byb3BfZ2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsK
KworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSB2b2lkXG4kZnVuY3Rpb25O
YW1lUHJlZml4IiAuICJfcHJvcF9zZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZywgJHR5
cGUiIC4gInZhbHVlKTtcblxuIik7CisgICAgfQorCisgICAgIyBQcm9wZXJ0aWVzCisgICAgJGlt
cGxDb250ZW50ID0gPDwgIkVPRiI7Cit9CisKK0dfQkVHSU5fREVDTFMKKworZW51bSB7CisgICAg
QlJPV1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50
X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCitlbnVtIHsKKyAgICBQUk9QXzAsCitF
T0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICBteSBAdHh0X2lu
c3RhbGxfcHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X3NldF9wcm9wcyA9ICgpOworICAgIG15IEB0
eHRfZ2V0X3Byb3BzID0gKCk7CisKKyAgICBteSAkcHJpdl9mbiA9IEdldFByaXZGbigkaW50ZXJm
YWNlTmFtZSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworCisgICAgbXkg
JHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9
X19nZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgIEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgR1Bh
cmFtU3BlYyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHND
YXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YK
KyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRf
c2V0X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0
X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQ
YXJhbVNwZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xz
Q2Fwc30ob2JqZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9G
CisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisKKyAgICBTS0lQRU5V
TTogZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAg
ICAgICAgbXkgJHByb3BfbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAg
ICAgbXkgJHNldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9w
X25hbWUpOworICAgICAgICBteSAkZ2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldL
X2xjZmlyc3QoJHByb3BfbmFtZSk7CisKKyAgICAgICAgbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6
ZSgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJHByb3BDYXBzID0gdWMoJHByb3BOYW1lKTsKKyAg
ICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAg
ICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJHtwcm9wRW51
bX0gPSAiUFJPUF8ke3Byb3BDYXBzfSI7CisgICAgICAgIG15ICR7cHJvcF9ndHlwZX0gPSBkZWNh
bWVsaXplKCRwcm9wX3R5cGUpOworICAgICAgICBpZiAoJHByb3BfZ3R5cGUgZXEgImV2ZW50X3Rh
cmdldCIpIHsKKyAgICAgICAgICAgICRwcm9wX2d0eXBlID0gImV2ZW50X3RhcmdldF9ub2RlIjsK
KyAgICAgICAgfQorICAgICAgICBteSAke3Byb3BHVHlwZX0gPSB1YygkcHJvcF9ndHlwZSk7Cisg
ICAgICAgIG15ICRsY2FzZV9ndHlwZW5hbWUgPSAiZ2RvbV8iIC4gJHByb3BfZ3R5cGU7CisKKyAg
ICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBT
S0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7
IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxl
RGVjbGFyYXRpb24iOworICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3JhcmlseSgkdHlwZSwgJHBy
b3BfdHlwZSkpIHsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICBwdXNoKEBjQm9keVByaXYsICIgICAgJHtwcm9wRW51bX0sXG4iKTsK
KworICAgICAgICBteSAkZ3R5cGUgPSBHZXRQcm9wR1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAg
IG15ICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBREFCTEUiOworICAgICAgICBteSAkd3JpdGVh
YmxlID0gJGF0dHJpYnV0ZS0+dHlwZSAhfiAvXnJlYWRvbmx5LzsKKyAgICAgICAgbXkgJGNvbnN0
ID0gInJlYWQtb25seSAiOworICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAkY3VzdG9tKSB7Cisg
ICAgICAgICAgICAkY29uc3QgPSAicmVhZC1vbmx5IChkdWUgdG8gY3VzdG9tIGZ1bmN0aW9ucyBu
ZWVkZWQgaW4gZ2RvbXdlYmtpdCkiOworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAhJGN1c3RvbSkgeworICAgICAgICAgICAg
JGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEV1JJVEUiOworICAgICAgICAgICAgJGNvbnN0ID0g
InJlYWQtd3JpdGUgIjsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRfZ3R5cGUgPSAkZ3R5cGU7
CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICRfZ3R5cGUg
PSAidWludCI7ICMgeXVrLgorICAgICAgICB9CisgICAgICAgIG15ICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ19rbGFz
cywgJHtwcm9wRW51bX0sIAorICAgICAgICAgICAgZ19wYXJhbV9zcGVjXyR7X2d0eXBlfSAoIiR7
cHJvcE5hbWV9IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICIke2ludGVyZmFjZU5hbWV9
LiR7cHJvcE5hbWV9IiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAi
JHtjb25zdH0gJHt0eXBlfSAke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IiwgLyogbG9uZ2Vy
ICovCitFT0YKKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9w
cm9wKTsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSAiLyogVE9ETyEgJGd0eXBlICovXG4i
OworCisgICAgICAgIGlmICgkd3JpdGVhYmxlKSB7CisKKyAgICAgICAgICAgIG15ICRvayA9IDA7
CisgICAgICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAgICAgICAgaWYgKCRndHlw
ZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgICAgICRjb252ZXJ0X2ZuID0gIldlYkNvcmU6
OlN0cmluZyI7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAgICAgaWYg
KCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXRE
aXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAg
ICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAo
JGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAg
ICAgfSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7
aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJl
Y3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAg
ICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50
ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3Qi
IHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAg
ICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBl
IGVxICJsb25nIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJE
T01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEg
d2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAg
ICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1
c2hvcnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAx
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgIyBYWFggVE9ETyAtIHNraXAgTG9jYXRpb24K
KyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTG9jYXRpb24iKSB7CisgICAgICAg
ICAgICAgICAgJG9rID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCRvaykg
eworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BF
bnVtfTpcbiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAi
ICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpIGlmIEB7JGF0dHJpYnV0
ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9w
cywgIiAgICAgICAgZ3NlbGYtPnNldCR7c2V0cHJvcF9uYW1lX2ZufSgke2NvbnZlcnRfZm59KGdf
dmFsdWVfZ2V0XyRndHlwZSAodmFsdWUpKSIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0
X3NldF9wcm9wcywgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9Owor
ICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIpO1xuIik7CisKKyAgICAgICAg
ICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMs
ICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKworICAgICAgICBteSAkZXhjZXB0
aW9uID0gIiI7CisgICAgICAgIGlmIChAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7
CisgICAgICAgICAgICAkZXhjZXB0aW9uID0gImVjIjsKKyAgICAgICAgICAgIHB1c2goQHR4dF9n
ZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7Cisg
ICAgICAgIH0KKworICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkcG9z
dF9jb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRkb25lID0gMDsKKyAgICAgICAgaWYgKCRn
dHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiX0dfR0VUX1VU
RjgoIjsKKyAgICAgICAgICAgICRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAgICAgIH0KKyAg
ICAgICAgZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgIyRjb252ZXJ0
X2ZuID0gIldURjo6Z2V0UHRyKCR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZSgiOworICAg
ICAgICAgICAgIyRjb252ZXJ0X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNl
X2d0eXBlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4g
PSAiJHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtw
cm9wX3R5cGV9PigiOworICAgICAgICAgICAgIyRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAg
ICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBlOworICAgICAgICAgICAg
JHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OiR7
cHJvcF90eXBlfT4gcHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0p
OworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QgKHZhbHVlLCBXZWJDb3JlOjp0b0dET00ocHRy
LmdldCgpKSk7CitFT0YKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0
X3Byb3ApOworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KCEkZG9uZSkgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192
YWx1ZV9zZXRfJF9ndHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25h
bWVfZm59KCR7ZXhjZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xuIik7CisgICAgICAgIH0K
KworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4i
KTsKKworICAgICAgICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/Pz8KKyAgICAgICAg
IyBjYW4gaXQgYmUgZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0eXBlCisgICAgICAg
ICMgYW5kIGdldHRpbmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUgbWluLW1heCBmb3IgZXhh
bXBsZT8KKyAgICAgICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklOVCwgICAgICAg
IC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBtYXggKi8KKyAgICAgICAg
ICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZMT0FULCAgICAgICAgLyog
bWluICovCisgICAgICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4ICovCisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVP
RiI7CisgICAgICAgICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAvKiBtaW4gKi8KKyAgICAg
ICAgICAgICAgICBHX01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAg
ICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2
NCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAg
ICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDY0
LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAkdHh0
X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBt
aW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAg
ICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlw
ZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7
CisgICAgICAgICAgICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWluICovCisgICAgICAgICAg
ICAgICAgR19NQVhMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
ZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAg
ICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAg
MCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVCwgLyogbWF4ICov
CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9
IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAg
ICAgICAgICAgICAgIEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAg
ICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNo
YXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAg
ICAgICAgICAgIEdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdf
TUFYSU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQg
Ki8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAg
ICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAg
ICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAvKiBtYXggKi8KKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8
PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHRE9NX1RZUEVfJHtwcm9wR1R5cGV9
LCAvKiBnb2JqZWN0IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAgICAgIHB1c2goQHR4dF9p
bnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKSR7Z3BhcmFtZmxh
Z30pKTsgICAgICAgICAgICAgICAgICAgCisKK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFs
bF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworCisKKyAgICB9CisKKyAgICBwdXNoKEBjQm9k
eVByaXYsICJ9O1xuXG4iKTsKKworCisgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmpl
Y3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisgICAg
cHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICAkdHh0X3NldF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElE
X1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAg
ICB9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKwor
ICAgIG15ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8ICJFT0YiOworICAgIGNhc2UgUFJPUF9BR0U6
CisgICAgICAgIHNlbGYtPmFnZSA9IGdfdmFsdWVfZ2V0X2ludCAodmFsdWUpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1
ZSwgc2VsZi0+YWdlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgKyAgIGdfdmFsdWVfaW5p
dCgmcGFyYW1zWzBdLCBHX1RZUEVfRlJPTV9JTlNUQU5DRShvYmplY3QpKTsKKyAgICAgICAgKyAg
IGdfdmFsdWVfc2V0X2luc3RhbmNlKCZwYXJhbXNbMF0sIChncG9pbnRlcilvYmplY3QpOworCitF
T0YKKworICAgICMgVE9ETzogd29yayBvdXQgaWYgaXQncyBhcHByb3ByaWF0ZSB0byBzcGxpdCB0
aGlzIGludG8gbWFueSBkaWZmZXJlbnQKKyAgICAjIHNpZ25hbHMgZS5nLiAiY2xpY2siIGV0Yy4K
KyAgICBteSAkdHh0X2luc3RhbGxfc2lnbmFscyA9ICIiOworCisgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJET01XaW5kb3ciIG9yCisgICAgICAgICRpbnRlcmZhY2VOYW1lIGVxICJYTUxIdHRw
UmVxdWVzdCIpIHsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3NpZ25hbHMgPSA8PCAiRU9GIjsKKyAg
ICBldmVudF9zaWduYWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2
ZW50IiwKKyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocmVxdWVzdENsYXNzKSwKKyAgICAgICAg
KEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAorICAg
ICAgICAwLAorICAgICAgICBOVUxMLAorICAgICAgICBOVUxMLAorICAgICAgICB3ZWJraXRfbWFy
c2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAg
ICAgIEdET01fVFlQRV9FVkVOVCwgR19UWVBFX0JPT0xFQU4pOworRU9GCisgICAgfQorCisgICAg
JGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1l
fV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLyoke2NsYXNzTmFtZX0qIHJlcXVl
c3QgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsqLworICAgIC8qJHtjbGFzc05hbWV9UHJpdmF0
ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ki8KKyAgICAKKyAgICAvKkdPYmplY3RDbGFzcyAqcGFy
ZW50X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWsgKGdfdHlwZV9wZWVrX3BhcmVudCAoJHtwYXJl
bnRHT2JqVHlwZX0pKTsqLworCisgICAgLyogRnJlZSBhbnkgbWVtb3J5IG9yIGNsb3NlIGFueSBm
aWxlcyAqLyAKKworICAgIC8qcGFyZW50X2NsYXNzLT4gZmluYWxpemUgKG9iamVjdCk7Ki8KKwor
ICAgIEdfT0JKRUNUX0NMQVNTKCR7bGNhc2VfaWZhY2VuYW1lfV9wYXJlbnRfY2xhc3MpLT5maW5h
bGl6ZShvYmplY3QpOworfQorCitAdHh0X3NldF9wcm9wcworCitAdHh0X2dldF9wcm9wcworCitz
dGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fY2xhc3NfaW5pdCgke2NsYXNzTmFtZX1DbGFz
cyogcmVxdWVzdENsYXNzKQoreworICAgIEdPYmplY3RDbGFzcyAqZ19rbGFzcyA9IEdfT0JKRUNU
X0NMQVNTIChyZXF1ZXN0Q2xhc3MpOworICAgIGdfa2xhc3MtPmZpbmFsaXplID0gJHtsY2FzZV9p
ZmFjZW5hbWV9X2ZpbmFsaXplOworICAgIGdfa2xhc3MtPnNldF9wcm9wZXJ0eSA9ICR7bGNhc2Vf
aWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuOworICAgIGdfa2xhc3MtPmdldF9wcm9wZXJ0eSA9
ICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuOworICAgIAorQHR4dF9pbnN0YWxs
X3Byb3BzCisKKyR0eHRfaW5zdGFsbF9zaWduYWxzCisKKyAgICAvKmdfdHlwZV9jbGFzc19yZW1v
dmVfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZigke2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8K
K30KKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2luaXQoJHtjbGFzc05hbWV9KiBy
ZXF1ZXN0KQoreworICAgIC8qJHtjbGFzc05hbWV9UHJpdmF0ZSogcHJpdiA9IEdET01fJHtjbHND
YXBzfV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsqLwor
fSAgIAorCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAg
ICRpbXBsSW5jbHVkZXN7IlByaXZhdGVJbnRHZG9tJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOwor
ICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCisjaWZuZGVmICR7Z3VhcmR9X1BSSVZfCisj
ZGVmaW5lICR7Z3VhcmR9X1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRl
ICIke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorLyojaW5jbHVk
ZSAiUHJpdmF0ZSR7cGFyZW50SGRyTmFtZX0uaCIqLworLypHX0JFR0lOX0RFQ0xTKi8KKy8qY2xh
c3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfTsqLworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFt
ZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
JGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R0RPTSR7aW50ZXJmYWNlTmFtZX0gOiBwdWJsaWMgJHtwYXJlbnRHSWZhY2VOYW1lfSB7CisKK3B1
YmxpYzoKKyAgICBHRE9NJHtpbnRlcmZhY2VOYW1lfShXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9
KiBpbXBsKSA6ICRwYXJlbnRHSWZhY2VOYW1lfShpbXBsKQorICAgIHsgaW1wbC0+cmVmKCk7IH0K
KyAgICB+R0RPTSR7aW50ZXJmYWNlTmFtZX0oKSB7IG1faW1wbC0+ZGVyZWYoKTsgfQorCisgICAg
V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbDsg
fQorCisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqbV9pbXBsOwor
fTsKKworRU9GCisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKwor
ICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy99IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
K3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX0gJHtjbGFzc05hbWV9OworCitXZWJDb3JlOjok
e2ludGVyZmFjZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgke2NsYXNz
TmFtZX0gKnJlcXVlc3QpOworCisvKkdfRU5EX0RFQ0xTKi8KKworI2VuZGlmIC8qICR7Z3VhcmR9
X1BSSVZfICovCisKK0VPRgorCisgICAgI3JldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6
OiR7aW50ZXJmYWNlTmFtZX0qPigoV2ViQ29yZTo6Tm9kZSopKHJlcykpOworICAgICAgICBwdXNo
KEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAgICAgI2lmICgkcGFyYW1JRExUeXBl
IGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGll
ZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7IkpTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAj
ICAgICRpbXBsSW5jbHVkZXN7JGluY2x1ZGVIZHJ9ID0gMTsKKyAgICAgICAgI30KKyAgICAgICAg
JGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJQcml2YXRlR2RvbURPTU9iamVjdC5oIn0gPSAxOworCisgICAgICAgIExPT1A6IGZv
cmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICAg
ICAgI215ICRmdW5jdGlvbk5hbWUgPSBkZWNhbWVsaXplKCRjbGFzc05hbWUpIC4gIl8iIC4gZGVj
YW1lbGl6ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgbXkg
JGZuX3NpZ19uYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgICAgICAg
ICAgbXkgJGZuX3NpZ190eXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAg
ICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZh
Y2VOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZuX3NpZ19uYW1lKTsKKyAgICAgICAgICAgICAg
ICBteSAkcmV0dXJuVHlwZSA9IEdldEdUeXBlKCRmbl9zaWdfdHlwZSk7CisgICAgICAgICAgICAg
ICAgbXkgJHJldF9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkZm5fc2lnX3R5cGUpOwor
CisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOwor
CisgICAgICAgICAgICAgICAgbXkgJGNhbGxfaW1wbF9wYXJhbXMgPSAiIjsKKyAgICAgICAgICAg
ICAgICBteSAkZ2RvbV9mbl9wcmVmaXggPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX3R5
cGUpOworCisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fY3NzX3N0
eWxlX2RlY2xhcmF0aW9uX3NldF9wcm9wZXJ0eSIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBy
ZXNlcnZlZCBuYW1lIGNsYXNoIGluIGdsaWIhCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgPSAiZ2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X2Nzc19wcm9wZXJ0eSI7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICMgWFhYIHNraXAgQ29tcGFyZUhvdyBm
dW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJn
ZG9tX3JhbmdlX2NvbXBhcmVfYm91bmRhcnlfcG9pbnRzIikgeworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rp
b24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5j
dGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBTVkdEb2N1bWVudCBm
dW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBlcSAiR2Rv
bVNWR0RvY3VtZW50ICoiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4v
KiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9
ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRP
RE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgICMgWFhYIHNraXAgc29tZSBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cK
KyAgICAgICAgICAgICAgICBteSAkaXNfY3VzdG9tX2ZuID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsKKyAgICAgICAgICAgICAgICBpZiAoJGZ1
bmN0aW9uTmFtZSBlcSAiZ2RvbV9odG1sX2NvbGxlY3Rpb25faXRlbSIgfHwKKyAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9odG1sX2NvbGxlY3Rpb25fbmFtZWRfaXRl
bSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0
cF9yZXF1ZXN0X29wZW4iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEg
Imdkb21feG1sX2h0dHBfcmVxdWVzdF9zZXRfcmVxdWVzdF9oZWFkZXIiIHx8CisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9zZW5kIiB8
fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3Jl
cXVlc3RfZ2V0X3Jlc3BvbnNlX2hlYWRlciIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X292ZXJyaWRlX21pbWVfdHlwZSIgfHwK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1
ZXN0X2Rpc3BhdGNoX2V2ZW50IiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1l
IGVxICJnZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZSIpIHsKKyAgICAgICAgICAgICAgICAgICAg
JGlzX2N1c3RvbV9mbiA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAjJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2FkZF9ldmVudF9saXN0
ZW5lciIgfHwKKyAgICAgICAgICAgICAgICAgICAgIyRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1s
X2h0dHBfcmVxdWVzdF9yZW1vdmVfZXZlbnRfbGlzdGVuZXIiIHx8CisgICAgICAgICAgICAgICAg
aWYgKCRpc19jdXN0b21fZm4gJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
bmUgImdkb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYg
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRf
YmVmb3JlIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25v
ZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAiZ2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3Rf
Y2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3Ry
ZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisgICAgICAg
ICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNf
bm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJl
ZV93YWxrZXJfbmV4dF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX3ByZXZpb3VzX25vZGUiKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVu
Y3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJc
bi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwor
ICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkg
eworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwor
ICAgICAgICAgICAgICAgICAgICBhZGRJbmNCb2R5KCRwYXJhbUlETFR5cGUpOworICAgICAgICAg
ICAgICAgICAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAg
IG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25TaWcgLj0gIiwgJHBhcmFtVHlwZSRwYXJhbU5hbWUiOwor
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNz
VHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19j
bHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgbmUg
IkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JRExUeXBl
IG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGVHZG9tJHtwYXJhbUlETFR5
cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
JHtwYXJhbUlETFR5cGV9LmgifSA9IDE7ICMgdGhpcyBpc24ndCBzdHJpY3RseSBuZWNlc3Nhcnkg
YnV0IG9uZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQgZmlsZXMgbmVlZGVkIGl0IHNvLi4uLgorICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUgfHwgKCRwYXJhbUlETFR5cGUgZXEgIkRP
TVN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1OYW1lID0gIl9nXyIg
LiAkcGFyYW1OYW1lOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IGlmICgkY2FsbF9pbXBsX3BhcmFtcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGNhbGxf
aW1wbF9wYXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkY2FsbF9p
bXBsX3BhcmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFkZEluY0hkcigkZm5fc2lnX3R5cGUpOwor
ICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAg
IyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9zaWdfdHlwZX0ifSA9IDE7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgewor
CisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dl
bmVyYXRvci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJHZG9t
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUg
bmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGVHZG9tJHtmbl9z
aWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7
Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhY
WCBza2lwIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgICMgYnV0IHNr
aXAgZnJvbSBoZXJlIHRvIGFsbG93IHNvbWUgaGVhZGVycyB0byBiZSBjcmVhdGVkCisgICAgICAg
ICAgICAgICAgIyBmb3IgYSBzdWNjZXNzZnVsIGNvbXBpbGUuCisgICAgICAgICAgICAgICAgaWYg
KCRpc19jdXN0b21fZm4gJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAi
Z2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20g
ZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFt
ZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAkX3JldHVyblR5cGUgPSAkcmV0dXJuVHlwZTsK
KyAgICAgICAgICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kZm5fc2lnX3R5cGU7Cisg
ICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRf
Z2V0X2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAg
ICAgICAgICAgICAgICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dCAq
JzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9j
YW52YXNfcmVuZGVyaW5nX2NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7
ICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAg
ICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUg
dG8gZmluZCBvdXQgaG93KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQg
aG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICdET01P
YmplY3QnICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21fZG9j
dW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBY
WFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21vYmpUeXBlID0g
J0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnOworICAgICAgICAgICAgICAgICAgICAkZ2Rv
bV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZCc7CisgICAgICAg
ICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNr
aXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVzdCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0
IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91dCBob3cpCisgICAgICAgICAgICAgICAg
ICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3JlYXRlIGEgR0RPTURvbU9iamVjdAorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAg
cHVzaChAaEJvZHksICJXRUJLSVRfQVBJICRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1
bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiRfcmV0
dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKVxue1xuIik7CisKKyAgICAgICAg
ICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAg
ICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHRoaXosIDApO1xu
Iik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7XG4iKTsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke2ludGVy
ZmFjZU5hbWV9ICogaXRlbSA9ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUodGhpeikp
O1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAg
ICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsIChpdGVtLCAwKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGl0ZW0pO1xuIik7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHsk
ZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5h
bWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRw
YXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJh
bVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFt
SURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElz
R0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5j
SGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Ns
c190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICMgICAgJGltcGxUeXBlZGVmc3siR2RvbSR7
cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBpZiAoISRwYXJhbVR5cGVJc1ByaW1pdGl2ZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFp
bCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5f
aWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
ICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJh
bSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRw
YXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJh
bVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkg
JHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAg
ICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlw
ZSk7CisgICAgICAgICAgICAgICAgICAgICMgSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiAmJgorICAgICAg
ICAgICAgICAgICAgICAgICAgICRwYXJhbS0+bmFtZSBlcSAidXJsIikgeworCisgICAgICAgICAg
ICAgICAgICAgICAgICAjJGltcGxJbmNsdWRlc3siS1VSTC5oIn0gPSAxOworICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6S1VSTCBfZ18ke3BhcmFtTmFt
ZX0gPSBXZWJDb3JlOjpLVVJMKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmlu
ZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6
OlN0cmluZyBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpTdHJpbmcoJHBhcmFtTmFtZSk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFt
X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1fZ2RvbV9m
biA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgI3B1c2goQGNCb2R5LCAiICAgIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjoke3Bh
cmFtSURMVHlwZX0+ICogX2dfJHtwYXJhbU5hbWV9ID0gV1RGOjpSZWZQdHI8JHtwYXJhbV9nZG9t
X2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKT47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
In0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdl
YkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIF9nXyR7cGFyYW1OYW1lfSA9IHN0YXRpY19jYXN0PFdl
YkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZh
dGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7
cGFyYW1JRExUeXBlfSAqIF9nXyR7cGFyYW1OYW1lfSA9ICgke3BhcmFtX2dkb21fZm59X2dldF9w
cml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCBy
ZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbCAoX2dfJHtwYXJhbU5hbWV9LCAwKTtcbiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0pO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIl9nXyIuJHBhcmFtTmFtZSBpZiAkcGFyYW0t
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXR1cm4ifTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBteSAkYXNzaWduID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGFzc2ln
bl9wcmUgPSAiIjsKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduX3Bvc3QgPSAiIjsKKyAgICAg
ICAgICAgICAgICAkZ19yZXMgPSAwOworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBu
ZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAo
JHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbiA9ICJQ
YXNzUmVmUHRyPFdlYkNvcmU6OiR7Zm5fc2lnX3R5cGV9PiBnX3JlcyA9ICI7CisgICAgICAgICAg
ICAgICAgICAgICAgICAkYXNzaWduX3ByZSA9ICJXVEY6OmdldFB0cigiOworICAgICAgICAgICAg
ICAgICAgICAgICAgJGFzc2lnbl9wb3N0ID0gIikiOworICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbiA9ICIke19yZXR1cm5UeXBlfSBy
ZXMgPSAiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIG15ICRleGNlcHRpb25zID0gIiI7CisgICAgICAgICAgICAgICAgaWYgKEB7JGZ1
bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoJHtjYWxsX2ltcGxfcGFyYW1zfSBuZSAiIikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiLCBlYyI7CisgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICJlYyI7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAj
IG5lZWQgdGhpcyBmb3IgaW5jbHVkaW5nIC4uLiBfc29tZXRoaW5nXyAtIGZvciB0aGUgY2xhc3Mg
YXJncworICAgICAgICAgICAgICAgICNpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAg
ICAgICAgICMgICAgJGltcGxJbmNsdWRlc3siZ2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7Cisg
ICAgICAgICAgICAgICAgI30KKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBlcSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUiIHx8CisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiB8fAorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxkIikgewor
ICAgICAgICAgICAgICAgICAgICBteSAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQgPSA8
PCAiRU9GIjsKKyAgICBib29sIG9rID0gaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxf
cGFyYW1zfSR7ZXhjZXB0aW9uc30pOworICAgIGlmIChvaykKKyAgICB7CisgICAgICAgICR7X3Jl
dHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihXZWJDb3JlOjp0b0dE
T00oJHJldHVyblBhcmFtTmFtZSkpOyAKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAg
cmV0dXJuIE5VTEw7CitFT0YKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICRjdXN0
b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCk7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGZu
X3NpZ190eXBlIGVxICJET01PYmplY3QiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgLyogWFhYIFRPRE8gLSBnZXQgY2FudmFz
IG9iamVjdCAoaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0
aW9uc30pKTsqL1xuIiApOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9
IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259X0dfR0VUX1VURjgoaXRlbS0+JHtmbl9zaWdf
bmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTtcbiIgKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoJGdfcmVzKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAkZ19yZXMgPSAiJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0t
PiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25f
cG9zdH0pIiA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtm
bl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0
fSk7XG4iICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikg
eworCisgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkRPTU9iamVjdCIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHtfcmV0dXJuVHlwZX0g
cmVzID0gc3RhdGljX2Nhc3Q8JHtfcmV0dXJuVHlwZX0+KFdlYkNvcmU6OnRvR0RPTShnX3Jlcy5n
ZXQoKSkpOyBcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVj
dCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBO
VUxMOyAvKiBYWFggVE9ETzogcmV0dXJuIGNhbnZhcyBvYmplY3QgKi9cbiIpOworICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHks
ICIgICAgcmV0dXJuIHJlcztcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4iKTsKKworICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKyAgICAgICAgfQorCisgICAgcHVzaChAY0Jv
ZHksICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xuXG4iKTsKKyAgICBwdXNoKEBjQm9keVByaXYsICJ9
IC8qIGV4dGVybiBcIkNcIiAqL1xuXG4iKTsKKworICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJH
X0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiI2VuZGlmIC8qICR7
Z3VhcmR9X0lOVF8qL1xuIik7CisKKyAgICBwdXNoKEBoQm9keSwgIkdfRU5EX0RFQ0xTXG5cbiIp
OworICAgIHB1c2goQGhCb2R5LCAiI2VuZGlmIC8qICRndWFyZCAqL1xuIik7CisKKyAgICBwdXNo
KEBoQm9keVByb3AsICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keVByb3AsICIj
ZW5kaWYgLyogJHtndWFyZH1fUFJPUF8qL1xuIik7Cit9CisKKyMgSW50ZXJuYWwgaGVscGVyCitz
dWIgV3JpdGVEYXRhCit7CisgICAgbXkgKCRvYmplY3QsICRuYW1lKSA9IEBfOworCisKKyAgICAj
IFdyaXRlIEludGVybmFsIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZUludGVybmFsID0gIiRvdXRw
dXREaXIvUHJpdmF0ZUludCIgLiAkbmFtZSAuICIuaCI7CisgICAgb3BlbihJTlRIRUFERVIsICI+
JGhkckZOYW1lSW50ZXJuYWwiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWVJ
bnRlcm5hbCI7CisKKyAgICBwcmludCBJTlRIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSU5U
SEVBREVSICJcbiI7CisgICAgcHJpbnQgSU5USEVBREVSIEBoQm9keUludGVybmFsOworICAgIGNs
b3NlKElOVEhFQURFUik7CisKKyAgICAjIFdyaXRlIFByaXZhdGUgaGVhZGVyCisgICAgbXkgJGhk
ckZOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL1ByaXZhdGUiIC4gJG5hbWUgLiAiLmgiOworICAgIG9w
ZW4oUFJJVkhFQURFUiwgIj4kaGRyRk5hbWVQcml2Iikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZp
bGUgJGhkckZOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSEVBREVSIEBoUHJlZml4OworICAg
IHByaW50IFBSSVZIRUFERVIgIlxuIjsKKyAgICBwcmludCBQUklWSEVBREVSIEBoQm9keVByaXY7
CisgICAgY2xvc2UoUFJJVkhFQURFUik7CisKKyAgICAjIFdyaXRlIFByaXZhdGUgSW1wbGVtZW50
YXRpb24KKyAgICBteSAkaW1wbEZpbGVOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL1ByaXZhdGUiIC4g
JG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihQUklWSU1QTCwgIj4kaW1wbEZpbGVOYW1lUHJpdiIp
IG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWVQcml2IjsKKworICAgIHBy
aW50IFBSSVZJTVBMIEBjUHJlZml4OworICAgIHByaW50IFBSSVZJTVBMICJcbiI7CisgICAgcHJp
bnQgUFJJVklNUEwgQGNCb2R5UHJpdjsKKworICAgIGNsb3NlKFBSSVZJTVBMKTsKKworICAgICMg
V3JpdGUgcHJvcGVydGllcyBoZWFkZXIgKGF2b2lkcyByZWN1cnNpdmUgbmlnaHRtYXJlKQorICAg
IG15ICRoZHJQcm9wRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAicHJvcHMuaCI7Cisg
ICAgb3BlbihQUk9QSEVBREVSLCAiPiRoZHJQcm9wRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9w
ZW4gZmlsZSAkaGRyUHJvcEZOYW1lIjsKKworICAgICRoZHJQcm9wSW5jbHVkZXN7ImdsaWItb2Jq
ZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBQUk9QSEVBREVSIEBoUHJlZml4OworICAgIHByaW50
IFBST1BIRUFERVIgIi8qIHJlY3Vyc2l2ZSBpbmNsdWRlcyAvIGRlZmluZXMgaXNzdWUgZm9yY2Vz
IHNlcGFyYXRlIGhlYWRlciBmb3IgcHJvcGVydGllcy5cbnBlcmhhcHMgLSBiZXR0ZXIgLSBhbGwg
Z2RvbSBndGsgZnVuY3Rpb25zIHNob3VsZCBiZSBpbiBoZXJlISovXG4iOworICAgIHByaW50IFBS
T1BIRUFERVIgQGhCb2R5UHJvcFByZTsKKyAgICBwcmludCBQUk9QSEVBREVSICIjaW5jbHVkZSA8
d2Via2l0L3dlYmtpdGRlZmluZXMuaD5cbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBtYXAgeyAi
I2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJQcm9wSW5jbHVkZXMpOworICAgIHBy
aW50IFBST1BIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJQcm9wSW5jbHVkZXMpOworICAgIHByaW50
IFBST1BIRUFERVIgIlxuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3A7CisKKyAg
ICBjbG9zZShIRUFERVIpOworCisgICAgIyBXcml0ZSBwdWJsaWMgaGVhZGVyLgorICAgIG15ICRo
ZHJGTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuaCI7CisgICAgb3BlbihIRUFERVIs
ICI+JGhkckZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lIjsKKwor
ICAgICRoZHJJbmNsdWRlc3siZ2xpYi1vYmplY3QuaCJ9ID0gMTsKKworICAgIHByaW50IEhFQURF
UiBAaFByZWZpeDsKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXhHdWFyZDsKKyAgICBwcmludCBI
RUFERVIgIiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPlxuIjsKKyAgICBwcmludCBI
RUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRySW5jbHVkZXMp
OworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmlu
dCBIRUFERVIgIlxuIjsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5UHJlOworICAgIHByaW50IEhF
QURFUiBtYXAgeyAidHlwZWRlZiBzdHJ1Y3QgXyRfICRfO1xuIiB9IHNvcnQga2V5cyglaW1wbFR5
cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVpbXBsVHlwZWRlZnMpOwor
ICAgIHByaW50IEhFQURFUiBAaEJvZHk7CisKKyAgICBjbG9zZShIRUFERVIpOworCisgICAgIyBX
cml0ZSB0aGUgaW1wbGVtZW50YXRpb24gc291cmNlcworICAgIG15ICRpbXBsRmlsZU5hbWUgPSAi
JG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihJTVBMLCAiPiRpbXBsRmls
ZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lIjsKKworICAg
IHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJjb25maWcu
aFwiXG5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD5cbiI7Cisg
ICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJDU3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBM
ICIjaW5jbHVkZSBcIlBsYXRmb3JtU3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5j
bHVkZSBcIkF0b21pY1N0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJ1
c3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcIktVUkwuaFwiXG4iOwor
ICAgIHByaW50IElNUEwgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaW1w
bEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMICJcbiIgaWYga2V5cyglaW1wbEluY2x1ZGVzKTsK
KyAgICBwcmludCBJTVBMIEBjQm9keTsKKworICAgIGNsb3NlKElNUEwpOworCisgICAgJWltcGxJ
bmNsdWRlcyA9ICgpOworICAgICVpbXBsVHlwZWRlZnMgPSAoKTsKKyAgICAlaGRySW5jbHVkZXMg
PSAoKTsKKyAgICBAaFByZWZpeCA9ICgpOworICAgIEBoQm9keSA9ICgpOworICAgIEBoQm9keVBy
aXYgPSAoKTsKKyAgICBAaEJvZHlJbnRlcm5hbCA9ICgpOworICAgIEBoQm9keVByb3AgPSAoKTsK
KyAgICBAaEJvZHlQcm9wUHJlID0gKCk7CisKKyAgICBAY1ByZWZpeCA9ICgpOworICAgIEBjQm9k
eSA9ICgpOworICAgIEBjQm9keVByaXYgPSAoKTsKK30KKworMTsKSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgXSBI
VE1MT3B0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZDsKLSNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB0ZXh0CiAgICAgICAg
ICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZWxzZQpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcg
QEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzZWFyY2g7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dDsKIAotI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmlu
ZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJp
bmcoKTsKICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwJKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzUsMTQgKzM1LDE0IEBACiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb2RlOwogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29kZUJhc2U7
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBoZWlnaHQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgaHNwYWNlOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
RnJvbVN0cmluZ10gbG9uZyBoc3BhY2U7CiAjZW5kaWYKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBvYmpl
Y3Q7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdnNwYWNl
OwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10g
bG9uZyB2c3BhY2U7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCShyZXZpc2lvbiAz
NTc1OCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMzAsNyArMzAsNyBAQAogICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9OTNlMDQwN2Et
ODM4MC00ZmYwLTk3OGQtZjc3M2YyZGVlNmEzCiAgICAgXSBIVE1MRW1iZWRFbGVtZW50IDogSFRN
TEVsZW1lbnQgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgYWxpZ247Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9H
T0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgaGVpZ2h0OwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyBoZWlnaHQ7CkBAIC0zOCw3ICszOCw3IEBACiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgc3JjOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExB
TkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB3aWR0aDsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgd2lkdGg7CkluZGV4OiBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCShy
ZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMTU2LDcgKzE1Niw3IEBACiAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRpdGxlOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdV
QUdFX0dPQkpFQ1QpKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgZG9tYWluOwogI2Vsc2UKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBkb21haW47CkBAIC0xODIsNyArMTgyLDcgQEAKIAogICAgICAgICBO
b2RlTGlzdCBnZXRFbGVtZW50c0J5TmFtZShpbiBET01TdHJpbmcgZWxlbWVudE5hbWUpOwogCi0j
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ3VzdG9tXSBMb2NhdGlvbiBsb2NhdGlvbjsKICNlbmRpZgogCkBAIC0xOTUs
NyArMTk1LDcgQEAKICAgICAgICAgRWxlbWVudCAgICAgICAgICAgIGVsZW1lbnRGcm9tUG9pbnQo
aW4gbG9uZyB4LCBpbiBsb25nIHkpOwogCiAgICAgICAgIC8vIE1vemlsbGEgZXh0ZW5zaW9ucwot
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICBET01TZWxl
Y3Rpb24gICAgICAgZ2V0U2VsZWN0aW9uKCk7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBjaGFyYWN0ZXJTZXQ7
CkBAIC0yMzYsNyArMjM2LDcgQEAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZShpbiBET01TdHJpbmcgdGFnbmFtZSk7CiAKICAgICAgICAgLy8gTm9kZVNlbGVjdG9yIC0g
U2VsZWN0b3IgQVBJCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAg
ICAgICAgIFtDdXN0b21dIEVsZW1lbnQgcXVlcnlTZWxlY3RvcihpbiBbQ29udmVydFVuZGVmaW5l
ZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9ycywgaW4gTlNSZXNvbHZlciBy
ZXNvbHZlcikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBbQ3Vz
dG9tXSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JzLCBpbiBOU1Jlc29sdmVyIHJlc29sdmVy
KQpJbmRleDogV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3Jl
L2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgW0RvbnRFbnVtXSBET01T
dHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhj
ZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCShy
ZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICovCiAKICNpZm5kZWYgRE9NQ29yZUV4Y2VwdGlv
bl9oCi0jZGVmaW5lIERPTUNvZGVFeGNlcHRpb25faAorI2RlZmluZSBET01Db3JlRXhjZXB0aW9u
X2gKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2UuaCIKIApJbmRleDogV2ViQ29yZS9kb20vRXZl
bnRFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9u
LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0Vf
R09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9y
bWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5k
ZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0tl
eWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBACiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBhbHRHcmFwaEtleSk7CiAKICAgICAg
ICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KQorI2lmICgoIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkpICYmICghZGVmaW5lZChMQU5H
VUFHRV9HT0JKRUNUKSkpCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAg
ICAgIGtleUNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAg
IGNoYXJDb2RlOwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24u
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCShyZXZp
c2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
CiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAg
ICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJD
b3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFBh
dGhFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUveG1sL1hQYXRoRXhj
ZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29t
cGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsK
ICNlbmRpZgpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAkocmV2
aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0Vf
R09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9y
bWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDcgQEAKICAgICAgICAgW0RvTm90
Q2hlY2tEb21haW5TZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGluIERPTVN0cmlu
ZyBtZXNzYWdlLCBpbiBET01TdHJpbmcgdGFyZ2V0T3JpZ2luKQogICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
CiAgICAgICAgIC8vIEdsb2JhbCBjb25zdHJ1Y3RvcnMKICAgICAgICAgYXR0cmlidXRlIFN0eWxl
U2hlZXRDb25zdHJ1Y3RvciBTdHlsZVNoZWV0OwogICAgICAgICBhdHRyaWJ1dGUgQ1NTU3R5bGVT
aGVldENvbnN0cnVjdG9yIENTU1N0eWxlU2hlZXQ7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NU2Vs
ZWN0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAko
cmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQAogICAgICAgICB2b2lkIHJlbW92ZUFsbFJhbmdlcygp
OwogICAgICAgICB2b2lkIGFkZFJhbmdlKGluIFJhbmdlIHJhbmdlKTsKIAotI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8
IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcg
dG9TdHJpbmcoKTsKICNlbmRpZgogICAgIH07CkluZGV4OiBXZWJLaXRUb29scy9HTlVtYWtlZmls
ZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24g
MzU3NTgpCisrKyBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAt
NSw2ICs1LDcgQEAKICMgR3RrTGF1bmNoZXIKIFByb2dyYW1zX0d0a0xhdW5jaGVyX0NQUEZMQUdT
ID0gXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsv
d2Via2l0IFwKIAktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKIAkkKGdsb2JhbF9jcHBm
bGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23146</attachid>
            <date>2008-09-03 14:20:54 -0700</date>
            <delta_ts>2008-09-04 12:04:48 -0700</delta_ts>
            <desc>tidyup and adding correct access to DOMWindow</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>285828</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMjIwLDYgKzIyMSw3IEBACiAKICMgV2ViS2l0CiB3ZWJraXRn
dGtfaF9hcGkgOj0KK2dkb21ndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9CiB3ZWJr
aXRndGtfY3BwZmxhZ3MgOj0KIHdlYmtpdGd0a19idWlsdF9zb3VyY2VzIDo9CkBAIC0yMzIsOCAr
MjM0LDEzIEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0
LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkkKHdlYmtpdGd0a19o
X2FwaSkgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCisJJChnZG9tZ3Rr
X2hfYXBpKSBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmggXAorCVdlYktp
dC9ndGsvd2Via2l0L2dkb20uaCAKIAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMu
aAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgKKwogbGlid2Via2l0XzFfMF9sYV9T
T1VSQ0VTID0gXAogCSQod2Via2l0Z3RrX3NvdXJjZXMpCiAKQEAgLTMwNCw2ICszMTEsMzQ2IEBA
CiB3ZWJjb3JlX2xpYmFkZCArPSAtbGdzdGludGVyZmFjZXMtMC4xMCAtbGdzdHZpZGVvLTAuMTAK
IGVuZGlmCiAKK1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6IFdlYktpdC9ndGsv
d2Via2l0L0dkb21Eb2N1bWVudC5oIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaCBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3Qu
aAorCitXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaDogRGVyaXZlZFNvdXJj
ZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmgKKwljcCBEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJl
cXVlc3QuaCBXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaAorCitXZWJLaXQv
Z3RrL3dlYmtpdC9HZG9tRE9NV2luZG93Lmg6IERlcml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cu
aAorCWNwIERlcml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cuaCBXZWJLaXQvZ3RrL3dlYmtpdC9H
ZG9tRE9NV2luZG93LmgKKworV2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50Lmg6IERlcml2
ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oCisJY3AgRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50
LmggV2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50LmgKKworV2ViS2l0L2d0ay93ZWJraXQv
R2RvbURPTU9iamVjdC5oOiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oCisJ
Y3AgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaCBXZWJLaXQvZ3RrL3dlYmtp
dC9HZG9tRE9NT2JqZWN0LmgKKworV2ViS2l0L2d0ay93ZWJraXQvR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oOiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisJY3AgV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCBXZWJLaXQvZ3RrL3dlYmtp
dC9HZG9tRXZlbnRUYXJnZXROb2RlLmgKKworCitnZG9tZ3RrX2hfYXBpICs9IFwKKwlXZWJLaXQv
Z3RrL3dlYmtpdC9HZG9tRG9jdW1lbnQuaFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRXZlbnRU
YXJnZXROb2RlLmhcCisJV2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTU9iamVjdC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21BdHRyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUF0dHJwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21CYXJJbmZvLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUJhcklu
Zm9wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNHcmFkaWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DYW52YXNHcmFkaWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNhbnZhc1BhdHRlcm4uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGF0dGVybnByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BpeGVsQXJyYXkuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DREFUQVNlY3Rpb24u
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFTZWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ2hhcmFjdGVyRGF0YS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DaGFyYWN0ZXJE
YXRhcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJkLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNsaXBib2FyZHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29tbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNvbnNvbGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29uc29sZXByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNvdW50ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ291bnRlcnBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0NoYXJzZXRSdWxlLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNTU0NoYXJzZXRSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NT
Rm9udEZhY2VSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ZvbnRGYWNlUnVsZXByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGUuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTSW1wb3J0UnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlh
UnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NNZWRpYVJ1bGVwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NQYWdlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQYWdl
UnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlcHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ1NTUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlTGlzdC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU1J1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZURlY2xhcmF0
aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlRGVjbGFyYXRpb25wcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTU3R5bGVSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVldC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVNoZWV0cHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ1NTVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1ZhbHVlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVz
RGVjbGFyYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRp
b25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc1J1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21EYXRhYmFzZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21EYXRhYmFzZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50RnJhZ21lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRG9jdW1lbnRGcmFnbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRUeXBlLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbURvY3VtZW50VHlwZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUFw
cGxpY2F0aW9uQ2FjaGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQXBwbGljYXRpb25DYWNo
ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRE9NQ29yZUV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbURPTUltcGxlbWVudGF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUltcGxlbWVu
dGF0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NUGFyc2VyLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbURPTVBhcnNlcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVNl
bGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01TZWxlY3Rpb25wcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2lu
ZG93cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVu
dGl0eVJlZmVyZW5jZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlSZWZlcmVuY2Vwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21FdmVudEV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRmlsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlTGlzdC5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21GaWxlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IaXN0b3J5LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhp
c3Rvcnlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQW5jaG9yRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxB
cHBsZXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFyZWFFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVhRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
QmFzZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUZvbnRFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRm9udEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEJvZHlFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVu
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEJSRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxCdXR0b25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCdXR0b25FbGVtZW50
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTENhbnZhc0VsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MQ29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlv
bnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTERpdkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERp
dkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRExpc3RFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxETGlzdEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MRG9jdW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERvY3Vt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
RW1iZWRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbWJlZEVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNldEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRm9udEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvbnRFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1FbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxl
bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
SGVhZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZGluZ0VsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRpbmdFbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MSFJFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0bWxFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1sRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxJRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxJRnJhbWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEltYWdlRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW1hZ2VFbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MSW5wdXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5k
ZXhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJc0luZGV4RWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMYWJlbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxMZWdlbmRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMZWdlbmRFbGVtZW50
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExJRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTElFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TExpbmtFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMaW5rRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxNYXBFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1h
cnF1ZWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXJxdWVlRWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MTWV0YUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1ldGFFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1vZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTE1vZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
T2JqZWN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPTGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTE9MaXN0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxPcHRHcm91cEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdEdyb3Vw
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25FbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxPcHRpb25zQ29sbGVjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQ
YXJhZ3JhcGhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhZ3JhcGhFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYW1FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTFByZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFByZUVsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUXVvdGVFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MU2NyaXB0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2NyaXB0
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFN0eWxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
U3R5bGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRw
cm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFRhYmxlQ29sRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTFRhYmxlUm93RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRpdGxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MVGl0bGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFVM
aXN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVUxpc3RFbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSW1hZ2VEYXRhLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUltYWdlRGF0YXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUphdmFTY3JpcHRDYWxsRnJh
bWUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUtleWJvYXJkRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
S2V5Ym9hcmRFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9uLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TWVkaWFMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhTGlzdHByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbU1lc3NhZ2VFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNz
YWdlRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlQXJyYXlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21NaW1lVHlwZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU1vdXNlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTW91
c2VFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTXV0YXRpb25FdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU5hbWVkTm9kZU1hcC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYW1lZE5vZGVNYXBwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYXZpZ2F0b3IuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTmF2aWdhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUZpbHRlci5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlRmlsdGVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTm9kZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0b3IuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTm9kZUl0ZXJhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9k
ZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUxpc3Rwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Ob2RlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm90YXRpb24uaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tTm90YXRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21PdmVyZmxvd0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU92ZXJmbG93RXZlbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheS5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21QbHVnaW5BcnJheXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbi5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvY2Vzc2luZ0lu
c3RydWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvZ3Jlc3NFdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Qcm9ncmVzc0V2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tUmFuZ2VFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRp
b25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZS5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21SYW5nZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJlY3QuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUmVjdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbi5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TY3JlZW5wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
UUxFcnJvci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxFcnJvcnByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1
bHRTZXRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldFJvd0xpc3Rwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxU
cmFuc2FjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2VFdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TdG9yYWdlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2Vwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxl
U2hlZXRMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXRMaXN0cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVRleHRFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0RXZlbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21UZXh0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21UcmVlV2Fsa2VyLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVRyZWVXYWxrZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21VSUV2ZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21X
ZWJLaXRBbmltYXRpb25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRBbmltYXRp
b25FdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlcHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVdoZWVsRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2hlZWxFdmVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1
ZXN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWRwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YTUxTZXJpYWxpemVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTFNl
cmlhbGl6ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV2YWx1YXRvci5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV2YWx1YXRvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0
aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhwcmVzc2lvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhQYXRoTlNSZXNvbHZlci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2
ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3VsdC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21YUGF0aFJlc3VsdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQ
cm9jZXNzb3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nlc3NvcnByb3BzLmgKKwog
d2Via2l0Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaCBcCiAJV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKQEAgLTMxNSwxMiArNjYyLDE3IEBACiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaCBcCiAJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5oCiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmlu
ZXMuaAorCiB3ZWJraXRndGtfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0ZW51bXR5cGVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZW51bXR5cGVzLmgKIAorIwlEZXJpdmVkU291cmNlcy9nZG9tZW51bXR5cGVzLmNwcCAKKyMJ
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisKIHdlYmtpdGd0a19zb3VyY2VzICs9
IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgXAogCVdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggXApAQCAtMzQ0LDcgKzY5
Niw5IEBACiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwICBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZl
bnQuaCAKIAogd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKIAktREJVSUxESU5HX1dFQktJVCBcCkBA
IC0zNjYsNiArNzIwLDkgQEAKIAlzdGFtcC13ZWJraXRlbnVtdHlwZXMuY3BwIFwKIAlzdGFtcC13
ZWJraXRlbnVtdHlwZXMuaAogCisjCXN0YW1wLWdkb21lbnVtdHlwZXMuY3BwIAorIwlzdGFtcC1n
ZG9tZW51bXR5cGVzLmggCisKIFdFQktJVF9NQVJTSEFMID0gJChHRU5TT1VSQ0VTKS93ZWJraXRt
YXJzaGFsCiBXRUJLSVRfTUFSU0hBTF9MSVNUID0gJChXRUJLSVRfTUFSU0hBTCkubGlzdAogCkBA
IC00NDIsNiArNzk5LDU0IEBACiAJJiYgY3AgeGdlbi1ndGMgJEAgXAogCSYmIHJtIC1mIHhnZW4t
Z3RjCiAKK1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaDogc3RhbXAtZ2RvbWVudW10
eXBlcy5oCisJQHRydWUKK3N0YW1wLWdkb21lbnVtdHlwZXMuaDogJChnZG9tZ3RrX2hfYXBpKSBH
TlVtYWtlZmlsZQorCShjZCAkKHNyY2RpcikgXAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZo
ZWFkICIjaWZuZGVmIEdET01fRU5VTV9UWVBFU19IXG4iIFwKKwkJCS0tZmhlYWQgIiNkZWZpbmUg
R0RPTV9FTlVNX1RZUEVTX0hcblxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD5cblxuIiBcCisJCQktLWZoZWFkICJHX0JFR0lOX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFp
bCAiR19FTkRfREVDTFNcblxuIiBcCisJCQktLWZ0YWlsICIjZW5kaWZcbiIgXAorCQkJLS1mcHJv
ZCAiI2luY2x1ZGUgPEBmaWxlbmFtZUA+XG5cbiIgXAorCQkJLS1lcHJvZCAiI2RlZmluZSBHRE9N
X1RZUEVfQEVOVU1TSE9SVEAgQGVudW1fbmFtZUBfZ2V0X3R5cGUoKVxuXG4iIFwKKwkJCS0tZXBy
b2QgIldFQktJVF9BUEkgR1R5cGVcbkBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpO1xuXG4iIFwK
KwkJCSQoZ2RvbWd0a19oX2FwaSkgfCBcCisJCQlzZWQgJ3MsV2ViS2l0L2d0ay8sLCcgfCBcCisJ
CXNlZCAncyx3ZWJfa2l0LGdkb20sJyB8IFwKKwkJc2VkICdzLEdET01fVFlQRV9LSVQsR0RPTV9U
WVBFLCcgXAorCQkpID4geGdlbi1jZ3RoIFwKKwkmJiAoY21wIC1zIHhnZW4tY2d0aCBXZWJLaXQv
Z3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmggfHwgY3AgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Vi
a2l0L2dkb21lbnVtdHlwZXMuaCkgXAorCSYmIHJtIC1mIHhnZW4tY2d0aCBcCisJJiYgZWNobyB0
aW1lc3RhbXAgPiAkKEBGKQorCisjICAgICAgICAgICAgICAtLWZoZWFkICIjaW5jbHVkZSA8d2Vi
a2l0L2dkb21kZWZpbmVzLmg+XG5cbiIgCisKK0Rlcml2ZWRTb3VyY2VzL2dkb21lbnVtdHlwZXMu
Y3BwOiAkKGdkb21ndGtfaF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYg
Z2xpYi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxjb25maWcuaD5cbiIgXAorCQkJ
LS1maGVhZCAiI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG4iIFwKKwkJCS0tZmhlYWQgIiNpbmNs
dWRlIFwiJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaFwi
XG5cbiIgXAorCQkJLS1maGVhZCAiZXh0ZXJuIFwiQ1wiIHtcblxuIiBcCisJCQktLWZwcm9kICJc
bi8qIGVudW1lcmF0aW9ucyBmcm9tIFwiQGZpbGVuYW1lQFwiICovIiBcCisJCQktLXZoZWFkICJz
dGF0aWMgY29uc3QgR0BUeXBlQFZhbHVlIF9AZW51bV9uYW1lQF92YWx1ZXNbXSA9IHsiIFwKKwkJ
CS0tdnByb2QgIiAgICB7IEBWQUxVRU5BTUVALCBcIkBWQUxVRU5BTUVAXCIsIFwiQHZhbHVlbmlj
a0BcIiB9LCIgXAorCQkJLS12dGFpbCAiICAgIHsgMCwgTlVMTCwgTlVMTCB9XG59O1xuXG4iIFwK
KwkJCS0tdnRhaWwgIkdUeXBlIEBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpXG57XG4iIFwKKwkJ
CS0tdnRhaWwgIiAgICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7XG5cbiIgXAorCQkJLS12dGFpbCAi
ICAgIGlmICghdHlwZSlcbiIgXAorCQkJLS12dGFpbCAiICAgICAgICB0eXBlID0gZ19AdHlwZUBf
cmVnaXN0ZXJfc3RhdGljKFwiQEVudW1OYW1lQFwiLCBfQGVudW1fbmFtZUBfdmFsdWVzKTtcblxu
IiBcCisJCQktLXZ0YWlsICIgICAgcmV0dXJuIHR5cGU7XG59XG5cbiIgXAorCQkJLS1mdGFpbCAi
fVxuIiBcCisJCSQoZ2RvbWd0a19oX2FwaSkgfCBcCisJCXNlZCAncyx3ZWJfa2l0LGdkb20sJyBc
CisJCSkgPiB4Z2VuLWNndGMgXAorCSYmIGNwIHhnZW4tY2d0YyAkQCBcCisJJiYgcm0gLWYgeGdl
bi1jZ3RjCisKICMgRU5EIFdFQktJVCBHVEsrCiAjCiAjIEZpbGVzIHRoYXQgd2lsbCBiZSBkaXN0
cmlidXRlZApJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw2
ICsyMTgsOCBAQAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpwb3N0UHJvZ3Jlc3NFc3RpbWF0
ZUNoYW5nZWROb3RpZmljYXRpb24oKQogeworICAgIGlmICghbV9mcmFtZSkgLyogYnVnIzIwNDAz
IC0gaGFjayEgc2hvdWxkbid0IGJlIGhlcmUhICB3ZSd2ZSBiZWVuIGRlbGV0ZWQhICovCisgICAg
ICAgIHJldHVybjsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFt
ZShtX2ZyYW1lKTsKICAgICBQYWdlKiBjb3JlUGFnZSA9IGNvcmUod2ViVmlldyk7CiAKSW5kZXg6
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDM2MDE1KQorKysgV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEx
ICsxLDEzIEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEhvbGdlciBIYW5zIFBl
dGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4KICAqIENv
cHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgogICogQ29weXJpZ2h0IChDKSAy
MDA4IE51YW50aSBMdGQuCiAgKgorICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTQyLDYg
KzQ0LDIwIEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZG9t
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tWE1MSHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJH
RE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21YTUxIdHRwUmVxdWVzdC5oIgor
I2luY2x1ZGUgIlByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21Eb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21FdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXaW5kb3cuaCIKKyNp
bmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0RG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJHZG9tRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21ET01XaW5kb3cu
aCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTVdpbmRvdy5oIgogCiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQVBJQ2FzdC5oPgogCkBAIC00OSw2ICs2NSwxMiBAQAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV2ViQ29yZSB7CisJ
Z3BvaW50ZXIgdG9HRE9NKERPTVdpbmRvdyogZG9jKTsKKwlncG9pbnRlciB0b0dET00oRG9jdW1l
bnQqIGRvYyk7CisJZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0KiBvYmopOworfQorCiBl
eHRlcm4gIkMiIHsKIAogZW51bSB7CkBAIC01Nyw2ICs3OSw3IEBACiAgICAgTE9BRF9ET05FLAog
ICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAorICAgIEJST1dTRVJf
RVZFTlQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2Miw2ICsxODUsMTYgQEAKICAgICAg
ICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBFX1NUUklORywgR19UWVBF
X1NUUklORyk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0g
PSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01f
Q0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9S
VU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAg
TlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lE
X19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAg
ICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisKICAgICAvKgogICAgICAqIGlt
cGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTI5NCw2ICszMjcs
OTIgQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0
OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdy
YXBwZXIgYXJvdW5kIGFuIFhNTEh0dHBSZXF1ZXN0CisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdk
b21YTUxIdHRwUmVxdWVzdAorICovCitHZG9tWE1MSHR0cFJlcXVlc3QqIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X3htbF9odHRwX3JlcXVlc3QoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKwor
ICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBG
cmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisJ
cmV0dXJuIEdET01fWE1MX0hUVFBfUkVRVUVTVChXZWJDb3JlOjp0b0dET00oWE1MSHR0cFJlcXVl
c3Q6OmNyZWF0ZShjb3JlRnJhbWUtPmRvY3VtZW50KCkpLmdldCgpKSk7Cit9CisKKy8qKgorICog
d2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdzoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2Vi
RnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERPTVdpbmRvdwor
ICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tRE9NV2luZG93CisgKi8KK0dkb21ET01XaW5kb3cq
IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3coV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBO
VUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7
CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVG
cmFtZSk7CisJUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbiA9IGNvcmVGcmFtZS0+ZG9tV2luZG93
KCk7CisJcmV0dXJuIEdET01fRE9NX1dJTkRPVyhXZWJDb3JlOjp0b0dET00od2luLmdldCgpKSk7
Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50OgorICogQGZy
YW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJv
dW5kIGEgRG9jdW1lbnQgCisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21Eb2N1bWVudAorICov
CitHZG9tRG9jdW1lbnQqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudChXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHBy
aXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsK
KyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKwlyZXR1cm4gR0RPTV9ET0NVTUVOVChXZWJDb3JlOjp0
b0dET00oY29yZUZyYW1lLT5kb2N1bWVudCgpKSk7Cit9CisKKy8qIFhYWCBUT0RPOiBtYWtlIHRo
aXMgbm90IHRha2UgZnJhbWUqIGFzIGFuIGFyZ3VtZW50LAorICogYW5kIG1ha2UgaXQgcmV0dXJu
IGEgR2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSSBn
Ym9vbGVhbgorYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2YsIEZy
YW1lICpmcmFtZSwgY29uc3QgY2hhciAqbmFtZSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9m
cmFtZV9hZGRfZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisg
KgorICogYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZnJhbWUncyBkb2N1bWVudAorICoK
KyAqIFJldHVybiB2YWx1ZTogdGhlIG5hbWUgb2YgQGZyYW1lCisgKi8KK2dib29sZWFuIHdlYmtp
dF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBl
dmVudF90eXBlKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJB
TUUoZnJhbWUpLCBGQUxTRSk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9
IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAg
IEFTU0VSVChjb3JlRnJhbWUpOworCisJcmV0dXJuIGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIo
ZnJhbWUsIGNvcmVGcmFtZSwgZXZlbnRfdHlwZSk7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl9m
cmFtZV9nZXRfbmFtZToKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKICAqCkluZGV4OiBX
ZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQv
Z3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0
b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBKU19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9I
CisjZGVmaW5lIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9OT0RFX0gKKworI2luY2x1ZGUgPGdsaWIu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKKyNpbmNsdWRlICJHZG9t
RXZlbnRUYXJnZXROb2RlLmgiCisKKy8qIFRPRE86IHJldHVybiB0aGUgYWN0dWFsIGV2ZW50IGxp
c3RlbmVyIGNyZWF0ZWQsIHdoaWNoIHJlcXVpcmVzCisgKiBhIGdsaWIgd3JhcHBlciBvYmplY3Qg
dG8gYmUgY3JlYXRlZC4KKyAqIFRPRE86IHByb3ZpZGUgYSAncmVtb3ZlX2V2ZW50X2xpc3RlbmVy
JyB3aGljaCB0YWtlcyB0aGF0IGdsaWIKKyAqIG9iamVjdCBhcyBhbiBhcmd1bWVudCAqLworZXh0
ZXJuICJDIiB7CitXRUJLSVRfQVBJCitnYm9vbGVhbiBhZGRfZXZlbnRfbGlzdGVuZXIoR2RvbUV2
ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSk7Cit9CisKKyNlbmRpZiAvKkpTX0RPTV9FVkVO
VF9MSVNURU5FUl9OT0RFX0ggKi8KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAko
cmV2aXNpb24gMzYwMTUpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBI
b2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tl
ciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENh
c3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYs
NiArMjcsOSBAQAogCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KICNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURv
Y3VtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNjEsNiAr
NjUsMTUgQEAKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUgKgogd2Via2l0X3dlYl9mcmFtZV9u
ZXcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAKK1dF
QktJVF9BUEkgR2RvbVhNTEh0dHBSZXF1ZXN0ICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X3htbF9o
dHRwX3JlcXVlc3QgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKK1dFQktJ
VF9BUEkgR2RvbURPTVdpbmRvdyAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93ICAg
ICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21Eb2N1
bWVudCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQgICAgICAgKFdlYktpdFdl
YkZyYW1lICAgICAgICpmcmFtZSk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJr
aXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZy
YW1lKTsKIApAQCAtOTMsNiArMTA2LDEwIEBACiBXRUJLSVRfQVBJIEpTR2xvYmFsQ29udGV4dFJl
Zgogd2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQgKFdlYktpdFdlYkZyYW1lICAg
ICAgICpmcmFtZSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfZnJhbWVfYWRk
X2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqbmFtZSk7CisKIEdfRU5E
X0RFQ0xTCiAKICNlbmRpZgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTVdpbmRvdy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaAkocmV2aXNp
b24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRo
IENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
bHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4KKyAqLworI2lmbmRlZiBfX0dkb21ET01XaW5kb3dfSF9fCisjZGVmaW5lIF9fR2RvbURPTVdp
bmRvd19IX18KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUgIkdk
b21DU1NSdWxlTGlzdC5oIgorI2luY2x1ZGUgIkdkb21DU1NTdHlsZURlY2xhcmF0aW9uLmgiCisj
aW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkdkb21ET01TZWxlY3Rpb24uaCIK
KyNpbmNsdWRlICJHZG9tRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJHZG9tRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdsaWItb2JqZWN0LmgiCisKKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0cnVj
dCBfR2RvbURPTVdpbmRvdyBHZG9tRE9NV2luZG93OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01X
aW5kb3dDbGFzcyBHZG9tRE9NV2luZG93Q2xhc3M7CisKKworI2RlZmluZSBHRE9NX1RZUEVfRE9N
X1dJTkRPVyAgICAgICAgICAgIChnZG9tX2RvbV93aW5kb3dfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9ET01fV0lORE9XKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NB
U1QoKG9iaiksIEdET01fVFlQRV9ET01fV0lORE9XLCBHZG9tRE9NV2luZG93KSkKKyNkZWZpbmUg
R0RPTV9ET01fV0lORE9XX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1Qo
KGtsYXNzKSwgIEdET01fVFlQRV9ET01fV0lORE9XLCBHZG9tRE9NV2luZG93KUNsYXNzKQorI2Rl
ZmluZSBHRE9NX0lTX0RPTV9XSU5ET1cob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFO
Q0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0RPTV9XSU5ET1cpKQorI2RlZmluZSBHRE9NX0lTX0RP
TV9XSU5ET1dfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAg
R0RPTV9UWVBFX0RPTV9XSU5ET1cpKQorI2RlZmluZSBHRE9NX0RPTV9XSU5ET1dfR0VUX0NMQVNT
KG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0RPTV9X
SU5ET1csIEdkb21ET01XaW5kb3dDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NV2lu
ZG93UHJpdmF0ZSBHZG9tRE9NV2luZG93UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRE9NV2luZG93
IHsKKyAgICBHZG9tRE9NT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21ET01XaW5k
b3dQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRE9NV2luZG93Q2xhc3MgeworICAg
IEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9t
X2RvbV93aW5kb3dfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIEdkb21ET01TZWxlY3Rp
b24gKgorZ2RvbV9kb21fd2luZG93X2dldF9zZWxlY3Rpb24gKEdkb21ET01XaW5kb3cgKnRoaXop
OworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX3dpbmRvd19mb2N1cyAoR2RvbURPTVdpbmRv
dyAqdGhpeik7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fd2luZG93X2JsdXIgKEdkb21E
T01XaW5kb3cgKnRoaXopOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX3dpbmRvd19jbG9z
ZSAoR2RvbURPTVdpbmRvdyAqdGhpeik7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fd2lu
ZG93X3ByaW50IChHZG9tRE9NV2luZG93ICp0aGl6KTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9t
X2RvbV93aW5kb3dfc3RvcCAoR2RvbURPTVdpbmRvdyAqdGhpeik7CisKK1dFQktJVF9BUEkgdm9p
ZAorZ2RvbV9kb21fd2luZG93X2FsZXJ0IChHZG9tRE9NV2luZG93ICp0aGl6LCBjb25zdCBnY2hh
ciAqbWVzc2FnZSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4gCitnZG9tX2RvbV93aW5kb3dfY29u
ZmlybSAoR2RvbURPTVdpbmRvdyAqdGhpeiwgY29uc3QgZ2NoYXIgKm1lc3NhZ2UpOworCitXRUJL
SVRfQVBJIGNvbnN0IGdjaGFyICoKK2dkb21fZG9tX3dpbmRvd19wcm9tcHQgKEdkb21ET01XaW5k
b3cgKnRoaXosIGNvbnN0IGdjaGFyICptZXNzYWdlLCBjb25zdCBnY2hhciAqZGVmYXVsdF92YWx1
ZSk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4gCitnZG9tX2RvbV93aW5kb3dfZmluZCAoR2RvbURP
TVdpbmRvdyAqdGhpeiwgY29uc3QgZ2NoYXIgKnN0cmluZywgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRp
dmUsIGdib29sZWFuIGJhY2t3YXJkcywgZ2Jvb2xlYW4gd3JhcCwgZ2Jvb2xlYW4gd2hvbGVfd29y
ZCwgZ2Jvb2xlYW4gc2VhcmNoX2luX2ZyYW1lcywgZ2Jvb2xlYW4gc2hvd19kaWFsb2cpOworCitX
RUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX3dpbmRvd19zY3JvbGxfYnkgKEdkb21ET01XaW5kb3cg
KnRoaXosIGdsb25nIHgsIGdsb25nIHkpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX3dp
bmRvd19zY3JvbGxfdG8gKEdkb21ET01XaW5kb3cgKnRoaXosIGdsb25nIHgsIGdsb25nIHkpOwor
CitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX3dpbmRvd19zY3JvbGwgKEdkb21ET01XaW5kb3cg
KnRoaXosIGdsb25nIHgsIGdsb25nIHkpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX3dp
bmRvd19tb3ZlX2J5IChHZG9tRE9NV2luZG93ICp0aGl6LCBnZmxvYXQgeCwgZ2Zsb2F0IHkpOwor
CitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX3dpbmRvd19tb3ZlX3RvIChHZG9tRE9NV2luZG93
ICp0aGl6LCBnZmxvYXQgeCwgZ2Zsb2F0IHkpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9t
X3dpbmRvd19yZXNpemVfYnkgKEdkb21ET01XaW5kb3cgKnRoaXosIGdmbG9hdCB4LCBnZmxvYXQg
eSk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fd2luZG93X3Jlc2l6ZV90byAoR2RvbURP
TVdpbmRvdyAqdGhpeiwgZ2Zsb2F0IHdpZHRoLCBnZmxvYXQgaGVpZ2h0KTsKKworV0VCS0lUX0FQ
SSBHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbiAqCitnZG9tX2RvbV93aW5kb3dfZ2V0X2NvbXB1dGVk
X3N0eWxlIChHZG9tRE9NV2luZG93ICp0aGl6LCBHZG9tRWxlbWVudCAqZWxlbWVudCwgY29uc3Qg
Z2NoYXIgKnBzZXVkb19lbGVtZW50KTsKKworV0VCS0lUX0FQSSBHZG9tQ1NTUnVsZUxpc3QgKgor
Z2RvbV9kb21fd2luZG93X2dldF9tYXRjaGVkX2Nzc19ydWxlcyAoR2RvbURPTVdpbmRvdyAqdGhp
eiwgR2RvbUVsZW1lbnQgKmVsZW1lbnQsIGNvbnN0IGdjaGFyICpwc2V1ZG9fZWxlbWVudCwgZ2Jv
b2xlYW4gYXV0aG9yX29ubHkpOworCitXRUJLSVRfQVBJIEdkb21EYXRhYmFzZSAqCitnZG9tX2Rv
bV93aW5kb3dfb3Blbl9kYXRhYmFzZSAoR2RvbURPTVdpbmRvdyAqdGhpeiwgY29uc3QgZ2NoYXIg
Km5hbWUsIGNvbnN0IGdjaGFyICp2ZXJzaW9uLCBjb25zdCBnY2hhciAqZGlzcGxheV9uYW1lLCBn
dWxvbmcgZXN0aW1hdGVkX3NpemUpOworCisKKy8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24g
Z2RvbV9kb21fd2luZG93X3Bvc3RfbWVzc2FnZSAqLworCitHX0VORF9ERUNMUworCisjZW5kaWYg
LyogX19HZG9tRE9NV2luZG93X0hfXyAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRM
aXN0ZW5lcldpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlz
dGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlz
dGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisKKyNpZm5kZWYgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1dJTkRPV19ICisjZGVmaW5lIEpTX0RP
TV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKworZXh0ZXJuICJDIiB7CisvKiBUT0RPOiBtYWtl
IGEgR2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MsIHRvIGJlIHJldHVybmVkIGhlcmUgKi8KK30KKwor
I2VuZGlmIC8qSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1dJTkRPV19IICovCkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsv
d2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRv
a2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKyNpZm5kZWYg
X19HZG9tWE1MSHR0cFJlcXVlc3RfSF9fCisjZGVmaW5lIF9fR2RvbVhNTEh0dHBSZXF1ZXN0X0hf
XworI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisjaW5jbHVkZSAiR2RvbURPTU9i
amVjdC5oIgorI2luY2x1ZGUgIkdkb21FdmVudC5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0Lmgi
CisKKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0
IEdkb21YTUxIdHRwUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RD
bGFzcyBHZG9tWE1MSHR0cFJlcXVlc3RDbGFzczsKKworCisjZGVmaW5lIEdET01fVFlQRV9YTUxf
SFRUUF9SRVFVRVNUICAgICAgICAgICAgKGdkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1hNTF9IVFRQX1JFUVVFU1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1QsIEdk
b21YTUxIdHRwUmVxdWVzdCkpCisjZGVmaW5lIEdET01fWE1MX0hUVFBfUkVRVUVTVF9DTEFTUyhr
bGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfWE1M
X0hUVFBfUkVRVUVTVCwgR2RvbVhNTEh0dHBSZXF1ZXN0KUNsYXNzKQorI2RlZmluZSBHRE9NX0lT
X1hNTF9IVFRQX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSgob2JqKSwgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1QpKQorI2RlZmluZSBHRE9NX0lTX1hN
TF9IVFRQX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1QpKQorI2RlZmluZSBHRE9NX1hNTF9IVFRQ
X1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmop
LCAgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1QsIEdkb21YTUxIdHRwUmVxdWVzdENsYXNzKSkK
KwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFByaXZhdGUgR2RvbVhNTEh0dHBS
ZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3QgeworICAgIEdkb21E
T01PYmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAgR2RvbVhNTEh0dHBSZXF1ZXN0UHJpdmF0
ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0Q2xhc3MgeworICAgIEdP
YmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9tX3ht
bF9odHRwX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21f
eG1sX2h0dHBfcmVxdWVzdF9vcGVuIChHZG9tWE1MSHR0cFJlcXVlc3QgKnRoaXosIGNvbnN0IGdj
aGFyICptZXRob2QsIGNvbnN0IGdjaGFyICp1cmwsIGdib29sZWFuIGFzeW5jLCBjb25zdCBnY2hh
ciAqdXNlciwgY29uc3QgZ2NoYXIgKnBhc3N3b3JkKTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9t
X3htbF9odHRwX3JlcXVlc3Rfc2V0X3JlcXVlc3RfaGVhZGVyIChHZG9tWE1MSHR0cFJlcXVlc3Qg
KnRoaXosIGNvbnN0IGdjaGFyICpoZWFkZXIsIGNvbnN0IGdjaGFyICp2YWx1ZSk7CisKK1dFQktJ
VF9BUEkgdm9pZAorZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3NlbmQgKEdkb21YTUxIdHRwUmVxdWVz
dCAqdGhpeiwgY29uc3QgZ2NoYXIgKmRhdGEpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21feG1s
X2h0dHBfcmVxdWVzdF9hYm9ydCAoR2RvbVhNTEh0dHBSZXF1ZXN0ICp0aGl6KTsKKworV0VCS0lU
X0FQSSBjb25zdCBnY2hhciAqCitnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0X2FsbF9yZXNwb25z
ZV9oZWFkZXJzIChHZG9tWE1MSHR0cFJlcXVlc3QgKnRoaXopOworCitXRUJLSVRfQVBJIGNvbnN0
IGdjaGFyICoKK2dkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRfcmVzcG9uc2VfaGVhZGVyIChHZG9t
WE1MSHR0cFJlcXVlc3QgKnRoaXosIGNvbnN0IGdjaGFyICpoZWFkZXIpOworCitXRUJLSVRfQVBJ
IHZvaWQKK2dkb21feG1sX2h0dHBfcmVxdWVzdF9vdmVycmlkZV9taW1lX3R5cGUgKEdkb21YTUxI
dHRwUmVxdWVzdCAqdGhpeiwgY29uc3QgZ2NoYXIgKm92ZXJyaWRlKTsKKworCisvKiBYWFggVE9E
TzogY3VzdG9tIGZ1bmN0aW9uIGdkb21feG1sX2h0dHBfcmVxdWVzdF9hZGRfZXZlbnRfbGlzdGVu
ZXIgKi8KKworCisvKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uIGdkb21feG1sX2h0dHBfcmVx
dWVzdF9yZW1vdmVfZXZlbnRfbGlzdGVuZXIgKi8KKworV0VCS0lUX0FQSSBnYm9vbGVhbiAKK2dk
b21feG1sX2h0dHBfcmVxdWVzdF9kaXNwYXRjaF9ldmVudCAoR2RvbVhNTEh0dHBSZXF1ZXN0ICp0
aGl6LCBHZG9tRXZlbnQgKmV2dCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfX0dkb21Y
TUxIdHRwUmVxdWVzdF9IX18gKi8KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVu
ZXJYTUxIdHRwUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50
TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJr
aXQvRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9YTUxf
SFRUUF9SRVFVRVNUX0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1hNTF9IVFRQX1JF
UVVFU1RfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZp
bmVzLmg+CisKKworI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdC5oIgorCisvKiBUT0RPOiBy
ZXR1cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCByZXF1aXJlcwor
ICogYSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RPOiBwcm92aWRl
IGEgJ3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGliCisgKiBvYmpl
Y3QgYXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQorZ2Jvb2xlYW4g
YWRkX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0ICp3
ZiwKKyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOworfQorCisjZW5kaWYgLypKU19E
T01fRVZFTlRfTElTVEVORVJfWE1MX0hUVFBfUkVRVUVTVF9IICovCkluZGV4OiBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRldmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0ZXZlbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZXZlbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNp
bmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiU3RyaW5nSW1wbC5oIgorCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKworCisjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0
ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1
ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyWE1MSHR0
cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyV2luZG93LmgiCisjaW5jbHVkZSAi
RXZlbnRMaXN0ZW5lck5vZGUuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNs
dWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiU3Ry
aW5nSW1wbC5oIgorI2luY2x1ZGUgIkdkb21FdmVudC5oIgorI2luY2x1ZGUgIkdET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgIndlYmtpdGV2
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRl
ICJHZG9tWE1MSHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbVhNTEh0dHBSZXF1
ZXN0LmgiCisKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oRXZl
bnQqIGRvYyk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0Tm9kZSogbm9kZSk7Cisg
ICAgZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0KiBub2RlKTsKK30KKworZXh0ZXJuICJD
IiB7CisKK0dfREVGSU5FX1RZUEUoV2ViS2l0RXZlbnQsIHdlYmtpdF9ldmVudCwgR19UWVBFX09C
SkVDVCk7CisKK3N0cnVjdCBfV2ViS2l0RXZlbnRQcml2YXRlIHsKKyAgICBFdmVudCogZXZlbnQ7
Cit9OworCisjZGVmaW5lIFdFQktJVF9FVkVOVF9HRVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5T
VEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX0VWRU5ULCBXZWJLaXRFdmVudFBy
aXZhdGUpKQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfZmluYWxpemUoR09iamVjdCogb2Jq
ZWN0KQoreworICAgIC8vV2ViS2l0RXZlbnQqIHJlcXVlc3QgPSBXRUJLSVRfRVZFTlQob2JqZWN0
KTsKKyAgICAvL1dlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAg
ICAvL2dfZnJlZShwcml2LT51cmkpOworCisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2V2ZW50
X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtp
dF9ldmVudF9jbGFzc19pbml0KFdlYktpdEV2ZW50Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAg
ICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF9ldmVudF9m
aW5hbGl6ZTsKKworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNp
emVvZihXZWJLaXRFdmVudFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X2V2ZW50
X2luaXQoV2ViS2l0RXZlbnQqIHJlcXVlc3QpCit7CisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBw
cml2ID0gV0VCS0lUX0VWRU5UX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnBy
aXYgPSBwcml2OworfQorCitXZWJLaXRFdmVudCogd2Via2l0X2V2ZW50X25ldyh2b2lkKQorewor
ICAgIFdlYktpdEV2ZW50KiByZXF1ZXN0ID0gV0VCS0lUX0VWRU5UKGdfb2JqZWN0X25ldyhXRUJL
SVRfVFlQRV9FVkVOVCwgTlVMTCkpOworICAgIC8vcHJpdi0+ZXZlbnQgPSBldmVudDsKKworICAg
IHJldHVybiByZXF1ZXN0OworfQorCisvKgordm9pZCB3ZWJraXRfZXZlbnRfc2V0X3VyaShXZWJL
aXRFdmVudCogcmVxdWVzdCwgY29uc3QgZ2NoYXIqIHVyaSkKK3sKKyAgICBnX3JldHVybl9pZl9m
YWlsKFdFQktJVF9JU19FVkVOVChyZXF1ZXN0KSk7CisgICAgZ19yZXR1cm5faWZfZmFpbCh1cmkp
OworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKworICAg
IGdfZnJlZShwcml2LT51cmkpOworICAgIHByaXYtPnVyaSA9IGdfc3RyZHVwKHVyaSk7Cit9Cisq
LworR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF9ldmVudF9nZXRfZXZlbnRfdHlwZShXZWJL
aXRFdmVudCogcmVxdWVzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
RVZFTlQocmVxdWVzdCksIE5VTEwpOworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0g
cmVxdWVzdC0+cHJpdjsKKyAgICByZXR1cm4gZ19zdHJkdXAocHJpdi0+ZXZlbnQtPnR5cGUoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKK30KKwordm9pZCB3ZWJraXRfZXZlbnRfY2FuY2VsX2J1
YmJsZSAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0LCBnYm9vbGVhbiBjYW5jZWwpCit7CisgICAgV2Vi
S2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5ldmVudC0+
c2V0Q2FuY2VsQnViYmxlKGNhbmNlbCk7Cit9CisKK3ZvaWQgd2Via2l0X2V2ZW50X3ByZXZlbnRf
ZGVmYXVsdCAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0
ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnByZXZlbnREZWZhdWx0
KCk7Cit9CisKK3ZvaWQgd2Via2l0X2V2ZW50X3N0b3BfcHJvcGFnYXRpb24gIChXZWJLaXRFdmVu
dCAqcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5w
cml2OworICAgIHByaXYtPmV2ZW50LT5zdG9wUHJvcGFnYXRpb24oKTsKK30KKworV0VCS0lUX0FQ
SSBnYm9vbGVhbgorYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2Ys
IEZyYW1lICpmcmFtZSwgY29uc3QgY2hhciAqbmFtZSk7CisKK30gLy8gZXh0ZXJuICJDIgorCitj
bGFzcyBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8WE1MSHR0cFJlcXVlc3RFdmVudExpc3Rl
bmVyPiBjcmVhdGUoR2RvbVhNTEh0dHBSZXF1ZXN0KiB3ZikKKyAgICB7IHJldHVybiBhZG9wdFJl
ZihuZXcgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIHVzZUNhcHR1cmUpOworCisgICAgcHJpdmF0ZToK
KyAgICBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0KiB3Zikg
OiBtX3dmKHdmKSB7IH0KKyAgICBHZG9tWE1MSHR0cFJlcXVlc3QqIG1fd2Y7Cit9OworCit2b2lk
IFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBi
b29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIC8qIFRPRE86IHNl
ZSBKU0V2ZW50TGlzdGVuZXIuY3BwJ3MgaGFuZGxlRXZlbnQgLSBzb21lIHdlaXJkIHN0dWZmLi4u
ICovCisgICAgcHJpbnRmKCJYTUxIdHRwUmVxdWVzdCBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQt
PnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdE
T01fRVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9u
YW1lKG1fd2YsICJicm93c2VyLWV2ZW50Iiwgd2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKK30K
KworY2xhc3MgTm9kZUV2ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm9kZUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9t
RXZlbnRUYXJnZXROb2RlKiB3ZikKKyAgICB7IHJldHVybiBhZG9wdFJlZihuZXcgTm9kZUV2ZW50
TGlzdGVuZXIod2YpKTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJv
b2wgdXNlQ2FwdHVyZSk7CisKKyAgICBwcml2YXRlOgorICAgIE5vZGVFdmVudExpc3RlbmVyKEdk
b21FdmVudFRhcmdldE5vZGUqIHdmKSA6IG1fd2Yod2YpIHsgfQorICAgIEdkb21FdmVudFRhcmdl
dE5vZGUqIG1fd2Y7Cit9OworCit2b2lkIE5vZGVFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChF
dmVudCogZXZlbnQsIGJvb2wgdXNlQ2FwdHVyZSkKK3sKKyAgICBnYm9vbGVhbiByZXR2YWw7Cisg
ICAgcHJpbnRmKCJub2RlIGhhbmRsZUV2ZW50ICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJDb3Jl
Ojp0b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgImJyb3dz
ZXItZXZlbnQiLCB3ZXYsIHVzZUNhcHR1cmUsICZyZXR2YWwpOworfQorCitjbGFzcyBXaW5kb3dF
dmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVuZXI+IGNyZWF0ZShXZWJLaXRXZWJGcmFtZSog
d2YpIAorICAgIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXaW5kb3dFdmVudExpc3RlbmVyKHdmKSk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZl
bnQpOworCisgICAgcHJpdmF0ZToKKyAgICBXaW5kb3dFdmVudExpc3RlbmVyKFdlYktpdFdlYkZy
YW1lKiB3ZikgOiBtX3dmKHdmKSB7IH0KKyAgICBXZWJLaXRXZWJGcmFtZSogbV93ZjsKK307CisK
K3ZvaWQgV2luZG93RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29s
IGlzV2luZG93RXZlbnQpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIHByaW50Zigid2lu
ZG93IGhhbmRsZUV2ZW50ICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZl
bnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgImJyb3dzZXItZXZlbnQiLCB3
ZXYsIGlzV2luZG93RXZlbnQsICZyZXR2YWwpOworfQorCitnYm9vbGVhbiBhZGRfeG1sX2h0dHBf
cmVxdWVzdF9ldmVudF9saXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3QgKnJlcSA9IGdkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRfcHJpdmF0ZSh3Zik7
CisgICAgaWYgKG5hbWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIGlmIChy
ZXEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCisgICAgaWYgKHN0cmNtcChuYW1l
LCAib25yZWFkeXN0YXRlY2hhbmdlIikgPT0gMCkKKyAgICB7CisgICAgICAgIFJlZlB0cjxYTUxI
dHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyOworICAgICAgICBsaXN0ZW5lciA9IFhN
TEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICAgICAgcmVxLT5zZXRP
blJlYWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgIHJldHVybiBUUlVF
OworICAgIH0KKyAgICByZXR1cm4gRkFMU0U7Cit9IAorCitnYm9vbGVhbiBhZGRfZXZlbnRfbGlz
dGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBXZWJDb3Jl
OjpOb2RlICpub2RlID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh3Zik7Cisg
ICAgaWYgKG5vZGUgPT0gTlVMTCB8fCAhbm9kZS0+aXNFdmVudFRhcmdldE5vZGUoKSkKKyAgICAg
ICAgcmV0dXJuIEZBTFNFOworICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGV0biA9IChz
dGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKj4obm9kZSkpLT50b05vZGUoKTsK
KyAgICBpZiAoZXRuID09IE5VTEwpCisgICAgICAgIHJldHVybiBGQUxTRTsKKworICAgIFJlZlB0
cjxOb2RlRXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBOb2RlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRl
KHdmKTsKKyAgICBldG4tPmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHVzZUNhcHR1
cmUpOworCisgICAgcmV0dXJuIFRSVUU7CisKK30gCisKK2dib29sZWFuIGFkZF93aW5kb3dfZXZl
bnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUgKndmLCBGcmFtZSAqZnJhbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgRG9jdW1l
bnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgpOworCisgICAgUmVmUHRyPFdpbmRvd0V2ZW50TGlz
dGVuZXI+IGxpc3RlbmVyID0gV2luZG93RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBk
b2MtPmFkZFdpbmRvd0V2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHRydWUpOworCisgICAg
cmV0dXJuIFRSVUU7CisKK30gCisKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHJl
dmlzaW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw2ICs0MCw5IEBACiAKIEdfQkVHSU5fREVDTFMKIAordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdEV2ZW50IFdlYktpdEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2
ZW50Q2xhc3MgV2ViS2l0RXZlbnRDbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdv
cmtSZXF1ZXN0IFdlYktpdE5ldHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5l
dHdvcmtSZXF1ZXN0Q2xhc3MgV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIApJbmRleDogV2Vi
S2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dl
YmtpdC9nZG9tZGVmaW5lcy5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvZ2Rv
bWRlZmluZXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MjkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4K
KyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVm
IFdFQktJVF9HRE9NX0RFRklORVNfSAorI2RlZmluZSBXRUJLSVRfR0RPTV9ERUZJTkVTX0gKKwor
I2luY2x1ZGUgPGdsaWIuaD4KKworI2lmZGVmIEdfT1NfV0lOMzIKKyAgICAjaWZkZWYgQlVJTERJ
TkdfV0VCS0lUX0dET00KKyAgICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3Bl
YyhkbGxleHBvcnQpCisgICAgI2Vsc2UKKyAgICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkg
X19kZWNsc3BlYyhkbGxpbXBvcnQpCisgICAgI2VuZGlmCisgICAgI2RlZmluZSBXRUJLSVRfR0RP
TV9PQlNPTEVURV9BUEkgV0VCS0lUX0dET01fQVBJCisjZWxzZQorICAgICNkZWZpbmUgV0VCS0lU
X0dET01fQVBJIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisgICAgI2Rl
ZmluZSBXRUJLSVRfR0RPTV9PQlNPTEVURV9BUEkgV0VCS0lUX0dET01fQVBJIF9fYXR0cmlidXRl
X18oKGRlcHJlY2F0ZWQpKQorI2VuZGlmCisKKyNpZm5kZWYgV0VCS0lUX0dET01fQVBJCisgICAg
I2RlZmluZSBXRUJLSVRfR0RPTV9BUEkKKyNlbmRpZgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIEdkb21FdmVudFRhcmdldE5vZGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIEdkb21FdmVudFRhcmdldE5vZGVD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0IEdkb21ET01PYmplY3Q7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIEdkb21ET01PYmplY3RDbGFzczsKKwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21BdHRyIEdkb21BdHRyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21BdHRy
Q2xhc3MgR2RvbUF0dHJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQmFySW5mbyBHZG9tQmFy
SW5mbzsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQmFySW5mb0NsYXNzIEdkb21CYXJJbmZvQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc0dyYWRpZW50IEdkb21DYW52YXNHcmFkaWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzR3JhZGllbnRDbGFzcyBHZG9tQ2FudmFzR3JhZGll
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGF0dGVybiBHZG9tQ2FudmFzUGF0
dGVybjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGF0dGVybkNsYXNzIEdkb21DYW52YXNQ
YXR0ZXJuQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BpeGVsQXJyYXkgR2RvbUNh
bnZhc1BpeGVsQXJyYXk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BpeGVsQXJyYXlDbGFz
cyBHZG9tQ2FudmFzUGl4ZWxBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQgR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ2xhc3MgR2RvbUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DREFUQVNlY3Rpb24gR2Rv
bUNEQVRBU2VjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ0RBVEFTZWN0aW9uQ2xhc3MgR2Rv
bUNEQVRBU2VjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DaGFyYWN0ZXJEYXRhIEdk
b21DaGFyYWN0ZXJEYXRhOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DaGFyYWN0ZXJEYXRhQ2xhc3Mg
R2RvbUNoYXJhY3RlckRhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2xpcGJvYXJkIEdk
b21DbGlwYm9hcmQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNsaXBib2FyZENsYXNzIEdkb21DbGlw
Ym9hcmRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ29tbWVudCBHZG9tQ29tbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tQ29tbWVudENsYXNzIEdkb21Db21tZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNvbnNvbGUgR2RvbUNvbnNvbGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNv
bnNvbGVDbGFzcyBHZG9tQ29uc29sZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db3VudGVy
IEdkb21Db3VudGVyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db3VudGVyQ2xhc3MgR2RvbUNvdW50
ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTQ2hhcnNldFJ1bGUgR2RvbUNTU0NoYXJz
ZXRSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NDaGFyc2V0UnVsZUNsYXNzIEdkb21DU1ND
aGFyc2V0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NGb250RmFjZVJ1bGUgR2Rv
bUNTU0ZvbnRGYWNlUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTRm9udEZhY2VSdWxlQ2xh
c3MgR2RvbUNTU0ZvbnRGYWNlUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NJbXBv
cnRSdWxlIEdkb21DU1NJbXBvcnRSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NJbXBvcnRS
dWxlQ2xhc3MgR2RvbUNTU0ltcG9ydFJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NT
TWVkaWFSdWxlIEdkb21DU1NNZWRpYVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU01lZGlh
UnVsZUNsYXNzIEdkb21DU1NNZWRpYVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NT
UGFnZVJ1bGUgR2RvbUNTU1BhZ2VSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NQYWdlUnVs
ZUNsYXNzIEdkb21DU1NQYWdlUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NQcmlt
aXRpdmVWYWx1ZSBHZG9tQ1NTUHJpbWl0aXZlVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNT
U1ByaW1pdGl2ZVZhbHVlQ2xhc3MgR2RvbUNTU1ByaW1pdGl2ZVZhbHVlQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUNTU1J1bGUgR2RvbUNTU1J1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNT
U1J1bGVDbGFzcyBHZG9tQ1NTUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NSdWxl
TGlzdCBHZG9tQ1NTUnVsZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1J1bGVMaXN0Q2xh
c3MgR2RvbUNTU1J1bGVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlRGVj
bGFyYXRpb24gR2RvbUNTU1N0eWxlRGVjbGFyYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNT
U1N0eWxlRGVjbGFyYXRpb25DbGFzcyBHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbkNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZVJ1bGUgR2RvbUNTU1N0eWxlUnVsZTsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tQ1NTU3R5bGVSdWxlQ2xhc3MgR2RvbUNTU1N0eWxlUnVsZUNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZVNoZWV0IEdkb21DU1NTdHlsZVNoZWV0OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZVNoZWV0Q2xhc3MgR2RvbUNTU1N0eWxlU2hlZXRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFsdWUgR2RvbUNTU1ZhbHVlOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21DU1NWYWx1ZUNsYXNzIEdkb21DU1NWYWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21DU1NWYWx1ZUxpc3QgR2RvbUNTU1ZhbHVlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTVmFsdWVMaXN0Q2xhc3MgR2RvbUNTU1ZhbHVlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiBHZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb247
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uQ2xhc3MgR2RvbUNT
U1ZhcmlhYmxlc0RlY2xhcmF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1Zhcmlh
Ymxlc1J1bGUgR2RvbUNTU1ZhcmlhYmxlc1J1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1Zh
cmlhYmxlc1J1bGVDbGFzcyBHZG9tQ1NTVmFyaWFibGVzUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21EYXRhYmFzZSBHZG9tRGF0YWJhc2U7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURhdGFi
YXNlQ2xhc3MgR2RvbURhdGFiYXNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50
RnJhZ21lbnQgR2RvbURvY3VtZW50RnJhZ21lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3Vt
ZW50RnJhZ21lbnRDbGFzcyBHZG9tRG9jdW1lbnRGcmFnbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21Eb2N1bWVudCBHZG9tRG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3Vt
ZW50Q2xhc3MgR2RvbURvY3VtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50
VHlwZSBHZG9tRG9jdW1lbnRUeXBlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudFR5cGVD
bGFzcyBHZG9tRG9jdW1lbnRUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUFwcGxp
Y2F0aW9uQ2FjaGUgR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGU7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bURPTUFwcGxpY2F0aW9uQ2FjaGVDbGFzcyBHZG9tRE9NQXBwbGljYXRpb25DYWNoZUNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01Db3JlRXhjZXB0aW9uIEdkb21ET01Db3JlRXhjZXB0aW9u
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01Db3JlRXhjZXB0aW9uQ2xhc3MgR2RvbURPTUNvcmVF
eGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NSW1wbGVtZW50YXRpb24gR2Rv
bURPTUltcGxlbWVudGF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01JbXBsZW1lbnRhdGlv
bkNsYXNzIEdkb21ET01JbXBsZW1lbnRhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21E
T01QYXJzZXIgR2RvbURPTVBhcnNlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NUGFyc2VyQ2xh
c3MgR2RvbURPTVBhcnNlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01TZWxlY3Rpb24g
R2RvbURPTVNlbGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NU2VsZWN0aW9uQ2xhc3Mg
R2RvbURPTVNlbGVjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01XaW5kb3cgR2Rv
bURPTVdpbmRvdzsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NV2luZG93Q2xhc3MgR2RvbURPTVdp
bmRvd0NsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbGVtZW50IEdkb21FbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21FbGVtZW50Q2xhc3MgR2RvbUVsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRW50aXR5IEdkb21FbnRpdHk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVudGl0
eUNsYXNzIEdkb21FbnRpdHlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRW50aXR5UmVmZXJl
bmNlIEdkb21FbnRpdHlSZWZlcmVuY2U7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVudGl0eVJlZmVy
ZW5jZUNsYXNzIEdkb21FbnRpdHlSZWZlcmVuY2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RXZlbnRFeGNlcHRpb24gR2RvbUV2ZW50RXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21F
dmVudEV4Y2VwdGlvbkNsYXNzIEdkb21FdmVudEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21FdmVudCBHZG9tRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50Q2xhc3Mg
R2RvbUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUZpbGUgR2RvbUZpbGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUZpbGVDbGFzcyBHZG9tRmlsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21GaWxlTGlzdCBHZG9tRmlsZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUZpbGVMaXN0
Q2xhc3MgR2RvbUZpbGVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhpc3RvcnkgR2Rv
bUhpc3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhpc3RvcnlDbGFzcyBHZG9tSGlzdG9yeUNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQW5jaG9yRWxlbWVudCBHZG9tSFRNTEFuY2hv
ckVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBbmNob3JFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxBbmNob3JFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBcHBsZXRF
bGVtZW50IEdkb21IVE1MQXBwbGV0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFw
cGxldEVsZW1lbnRDbGFzcyBHZG9tSFRNTEFwcGxldEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEFyZWFFbGVtZW50IEdkb21IVE1MQXJlYUVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxBcmVhRWxlbWVudENsYXNzIEdkb21IVE1MQXJlYUVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJhc2VFbGVtZW50IEdkb21IVE1MQmFzZUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCYXNlRWxlbWVudENsYXNzIEdkb21IVE1MQmFzZUVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJhc2VGb250RWxlbWVudCBHZG9t
SFRNTEJhc2VGb250RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJhc2VGb250RWxl
bWVudENsYXNzIEdkb21IVE1MQmFzZUZvbnRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudCBHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnRDbGFzcyBHZG9tSFRNTEJsb2Nr
cXVvdGVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCb2R5RWxlbWVudCBH
ZG9tSFRNTEJvZHlFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQm9keUVsZW1lbnRD
bGFzcyBHZG9tSFRNTEJvZHlFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxC
UkVsZW1lbnQgR2RvbUhUTUxCUkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCUkVs
ZW1lbnRDbGFzcyBHZG9tSFRNTEJSRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MQnV0dG9uRWxlbWVudCBHZG9tSFRNTEJ1dHRvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3MgR2RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxDYW52YXNFbGVtZW50IEdkb21IVE1MQ2FudmFzRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTENhbnZhc0VsZW1lbnRDbGFzcyBHZG9tSFRNTENh
bnZhc0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTENvbGxlY3Rpb24gR2Rv
bUhUTUxDb2xsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ29sbGVjdGlvbkNsYXNz
IEdkb21IVE1MQ29sbGVjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRGlyZWN0
b3J5RWxlbWVudCBHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxEaXJlY3RvcnlFbGVtZW50Q2xhc3MgR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEaXZFbGVtZW50IEdkb21IVE1MRGl2RWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERpdkVsZW1lbnRDbGFzcyBHZG9tSFRNTERpdkVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERMaXN0RWxlbWVudCBHZG9tSFRNTERM
aXN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERMaXN0RWxlbWVudENsYXNzIEdk
b21IVE1MRExpc3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEb2N1bWVu
dCBHZG9tSFRNTERvY3VtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRG9jdW1lbnRDbGFz
cyBHZG9tSFRNTERvY3VtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxFbGVtZW50
IEdkb21IVE1MRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEVsZW1lbnRDbGFzcyBH
ZG9tSFRNTEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEVtYmVkRWxlbWVu
dCBHZG9tSFRNTEVtYmVkRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEVtYmVkRWxl
bWVudENsYXNzIEdkb21IVE1MRW1iZWRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxGaWVsZFNldEVsZW1lbnQgR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxGaWVsZFNldEVsZW1lbnRDbGFzcyBHZG9tSFRNTEZpZWxkU2V0RWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9udEVsZW1lbnQgR2RvbUhUTUxGb250
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZvbnRFbGVtZW50Q2xhc3MgR2RvbUhU
TUxGb250RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9ybUVsZW1lbnQg
R2RvbUhUTUxGb3JtRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZvcm1FbGVtZW50
Q2xhc3MgR2RvbUhUTUxGb3JtRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
RnJhbWVFbGVtZW50IEdkb21IVE1MRnJhbWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MRnJhbWVFbGVtZW50Q2xhc3MgR2RvbUhUTUxGcmFtZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudCBHZG9tSFRNTEZyYW1lU2V0RWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudENsYXNzIEdkb21IVE1MRnJh
bWVTZXRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIZWFkRWxlbWVudCBH
ZG9tSFRNTEhlYWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSGVhZEVsZW1lbnRD
bGFzcyBHZG9tSFRNTEhlYWRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxI
ZWFkaW5nRWxlbWVudCBHZG9tSFRNTEhlYWRpbmdFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MSGVhZGluZ0VsZW1lbnRDbGFzcyBHZG9tSFRNTEhlYWRpbmdFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIUkVsZW1lbnQgR2RvbUhUTUxIUkVsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxIUkVsZW1lbnRDbGFzcyBHZG9tSFRNTEhSRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSHRtbEVsZW1lbnQgR2RvbUhUTUxIdG1sRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEh0bWxFbGVtZW50Q2xhc3MgR2RvbUhUTUxIdG1s
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSUZyYW1lRWxlbWVudCBHZG9t
SFRNTElGcmFtZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJRnJhbWVFbGVtZW50
Q2xhc3MgR2RvbUhUTUxJRnJhbWVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxJbWFnZUVsZW1lbnQgR2RvbUhUTUxJbWFnZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxJbWFnZUVsZW1lbnRDbGFzcyBHZG9tSFRNTEltYWdlRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MSW5wdXRFbGVtZW50IEdkb21IVE1MSW5wdXRFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSW5wdXRFbGVtZW50Q2xhc3MgR2RvbUhUTUxJbnB1dEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElzSW5kZXhFbGVtZW50IEdkb21IVE1M
SXNJbmRleEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJc0luZGV4RWxlbWVudENs
YXNzIEdkb21IVE1MSXNJbmRleEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TExhYmVsRWxlbWVudCBHZG9tSFRNTExhYmVsRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTExhYmVsRWxlbWVudENsYXNzIEdkb21IVE1MTGFiZWxFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxMZWdlbmRFbGVtZW50IEdkb21IVE1MTGVnZW5kRWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTExlZ2VuZEVsZW1lbnRDbGFzcyBHZG9tSFRNTExlZ2VuZEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExJRWxlbWVudCBHZG9tSFRNTExJ
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExJRWxlbWVudENsYXNzIEdkb21IVE1M
TElFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMaW5rRWxlbWVudCBHZG9t
SFRNTExpbmtFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGlua0VsZW1lbnRDbGFz
cyBHZG9tSFRNTExpbmtFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNYXBF
bGVtZW50IEdkb21IVE1MTWFwRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1hcEVs
ZW1lbnRDbGFzcyBHZG9tSFRNTE1hcEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTE1hcnF1ZWVFbGVtZW50IEdkb21IVE1MTWFycXVlZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxNYXJxdWVlRWxlbWVudENsYXNzIEdkb21IVE1MTWFycXVlZUVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1lbnVFbGVtZW50IEdkb21IVE1MTWVudUVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNZW51RWxlbWVudENsYXNzIEdkb21IVE1MTWVu
dUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1ldGFFbGVtZW50IEdkb21I
VE1MTWV0YUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNZXRhRWxlbWVudENsYXNz
IEdkb21IVE1MTWV0YUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1vZEVs
ZW1lbnQgR2RvbUhUTUxNb2RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTW9kRWxl
bWVudENsYXNzIEdkb21IVE1MTW9kRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MT2JqZWN0RWxlbWVudCBHZG9tSFRNTE9iamVjdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxPYmplY3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxPYmplY3RFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPTGlzdEVsZW1lbnQgR2RvbUhUTUxPTGlzdEVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPTGlzdEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9MaXN0
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0R3JvdXBFbGVtZW50IEdk
b21IVE1MT3B0R3JvdXBFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0R3JvdXBF
bGVtZW50Q2xhc3MgR2RvbUhUTUxPcHRHcm91cEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTE9wdGlvbkVsZW1lbnQgR2RvbUhUTUxPcHRpb25FbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MT3B0aW9uRWxlbWVudENsYXNzIEdkb21IVE1MT3B0aW9uRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24gR2RvbUhUTUxP
cHRpb25zQ29sbGVjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0
aW9uQ2xhc3MgR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudCBHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Q2xhc3MgR2RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQYXJhbUVsZW1lbnQgR2Rv
bUhUTUxQYXJhbUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQYXJhbUVsZW1lbnRD
bGFzcyBHZG9tSFRNTFBhcmFtRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
UHJlRWxlbWVudCBHZG9tSFRNTFByZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQ
cmVFbGVtZW50Q2xhc3MgR2RvbUhUTUxQcmVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxRdW90ZUVsZW1lbnQgR2RvbUhUTUxRdW90ZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxRdW90ZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFF1b3RlRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2NyaXB0RWxlbWVudCBHZG9tSFRNTFNjcmlwdEVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxTY3JpcHRFbGVtZW50Q2xhc3MgR2RvbUhUTUxT
Y3JpcHRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxTZWxlY3RFbGVtZW50
IEdkb21IVE1MU2VsZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNlbGVjdEVs
ZW1lbnRDbGFzcyBHZG9tSFRNTFNlbGVjdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTFN0eWxlRWxlbWVudCBHZG9tSFRNTFN0eWxlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFN0eWxlRWxlbWVudENsYXNzIEdkb21IVE1MU3R5bGVFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50IEdkb21IVE1MVGFibGVD
YXB0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnRDbGFzcyBHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQgR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDZWxsRWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVD
ZWxsRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDb2xFbGVtZW50
IEdkb21IVE1MVGFibGVDb2xFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVD
b2xFbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTFRhYmxlRWxlbWVudCBHZG9tSFRNTFRhYmxlRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTFRhYmxlRWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQgR2RvbUhUTUxUYWJs
ZVJvd0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnRDbGFz
cyBHZG9tSFRNTFRhYmxlUm93RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
VGFibGVTZWN0aW9uRWxlbWVudCBHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUZXh0QXJlYUVsZW1l
bnQgR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUZXh0
QXJlYUVsZW1lbnRDbGFzcyBHZG9tSFRNTFRleHRBcmVhRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MVGl0bGVFbGVtZW50IEdkb21IVE1MVGl0bGVFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MVGl0bGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxUaXRsZUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFVMaXN0RWxlbWVudCBHZG9tSFRNTFVMaXN0
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFVMaXN0RWxlbWVudENsYXNzIEdkb21I
VE1MVUxpc3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUltYWdlRGF0YSBHZG9t
SW1hZ2VEYXRhOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21JbWFnZURhdGFDbGFzcyBHZG9tSW1hZ2VE
YXRhQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUgR2RvbUph
dmFTY3JpcHRDYWxsRnJhbWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUphdmFTY3JpcHRDYWxsRnJh
bWVDbGFzcyBHZG9tSmF2YVNjcmlwdENhbGxGcmFtZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21LZXlib2FyZEV2ZW50IEdkb21LZXlib2FyZEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21L
ZXlib2FyZEV2ZW50Q2xhc3MgR2RvbUtleWJvYXJkRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tTG9jYXRpb24gR2RvbUxvY2F0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Mb2NhdGlv
bkNsYXNzIEdkb21Mb2NhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZWRpYUxpc3Qg
R2RvbU1lZGlhTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWVkaWFMaXN0Q2xhc3MgR2RvbU1l
ZGlhTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZXNzYWdlRXZlbnQgR2RvbU1lc3Nh
Z2VFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWVzc2FnZUV2ZW50Q2xhc3MgR2RvbU1lc3Nh
Z2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NaW1lVHlwZUFycmF5IEdkb21NaW1l
VHlwZUFycmF5OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NaW1lVHlwZUFycmF5Q2xhc3MgR2RvbU1p
bWVUeXBlQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGUgR2RvbU1pbWVU
eXBlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NaW1lVHlwZUNsYXNzIEdkb21NaW1lVHlwZUNsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Nb3VzZUV2ZW50IEdkb21Nb3VzZUV2ZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21Nb3VzZUV2ZW50Q2xhc3MgR2RvbU1vdXNlRXZlbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tTXV0YXRpb25FdmVudCBHZG9tTXV0YXRpb25FdmVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tTXV0YXRpb25FdmVudENsYXNzIEdkb21NdXRhdGlvbkV2ZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbU5hbWVkTm9kZU1hcCBHZG9tTmFtZWROb2RlTWFwOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21OYW1lZE5vZGVNYXBDbGFzcyBHZG9tTmFtZWROb2RlTWFwQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbU5hdmlnYXRvciBHZG9tTmF2aWdhdG9yOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21OYXZpZ2F0b3JDbGFzcyBHZG9tTmF2aWdhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbU5vZGVGaWx0ZXIgR2RvbU5vZGVGaWx0ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5v
ZGVGaWx0ZXJDbGFzcyBHZG9tTm9kZUZpbHRlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21O
b2RlIEdkb21Ob2RlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlQ2xhc3MgR2RvbU5vZGVDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUl0ZXJhdG9yIEdkb21Ob2RlSXRlcmF0b3I7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVJdGVyYXRvckNsYXNzIEdkb21Ob2RlSXRlcmF0b3JDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUxpc3QgR2RvbU5vZGVMaXN0OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21Ob2RlTGlzdENsYXNzIEdkb21Ob2RlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21Ob3RhdGlvbiBHZG9tTm90YXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vdGF0
aW9uQ2xhc3MgR2RvbU5vdGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU92ZXJmbG93
RXZlbnQgR2RvbU92ZXJmbG93RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU92ZXJmbG93RXZl
bnRDbGFzcyBHZG9tT3ZlcmZsb3dFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21QbHVn
aW5BcnJheSBHZG9tUGx1Z2luQXJyYXk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbkFycmF5
Q2xhc3MgR2RvbVBsdWdpbkFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbiBH
ZG9tUGx1Z2luOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21QbHVnaW5DbGFzcyBHZG9tUGx1Z2luQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBHZG9tUHJvY2Vz
c2luZ0luc3RydWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b25DbGFzcyBHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVByb2dyZXNzRXZlbnQgR2RvbVByb2dyZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVByb2dyZXNzRXZlbnRDbGFzcyBHZG9tUHJvZ3Jlc3NFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21SYW5nZUV4Y2VwdGlvbiBHZG9tUmFuZ2VFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVJhbmdlRXhjZXB0aW9uQ2xhc3MgR2RvbVJhbmdlRXhjZXB0aW9uQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVJhbmdlIEdkb21SYW5nZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmFu
Z2VDbGFzcyBHZG9tUmFuZ2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmVjdCBHZG9tUmVj
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmVjdENsYXNzIEdkb21SZWN0Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVNjcmVlbiBHZG9tU2NyZWVuOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TY3Jl
ZW5DbGFzcyBHZG9tU2NyZWVuQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTEVycm9yIEdk
b21TUUxFcnJvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMRXJyb3JDbGFzcyBHZG9tU1FMRXJy
b3JDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0IEdkb21TUUxSZXN1bHRT
ZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldENsYXNzIEdkb21TUUxSZXN1bHRT
ZXRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdCBHZG9tU1FM
UmVzdWx0U2V0Um93TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0Um93TGlz
dENsYXNzIEdkb21TUUxSZXN1bHRTZXRSb3dMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVNRTFRyYW5zYWN0aW9uIEdkb21TUUxUcmFuc2FjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
U1FMVHJhbnNhY3Rpb25DbGFzcyBHZG9tU1FMVHJhbnNhY3Rpb25DbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tU3RvcmFnZUV2ZW50IEdkb21TdG9yYWdlRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVN0b3JhZ2VFdmVudENsYXNzIEdkb21TdG9yYWdlRXZlbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tU3RvcmFnZSBHZG9tU3RvcmFnZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3RvcmFn
ZUNsYXNzIEdkb21TdG9yYWdlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hlZXQg
R2RvbVN0eWxlU2hlZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hlZXRDbGFzcyBHZG9t
U3R5bGVTaGVldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0TGlzdCBHZG9t
U3R5bGVTaGVldExpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hlZXRMaXN0Q2xhc3Mg
R2RvbVN0eWxlU2hlZXRMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRleHRFdmVudCBH
ZG9tVGV4dEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UZXh0RXZlbnRDbGFzcyBHZG9tVGV4
dEV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRleHQgR2RvbVRleHQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVRleHRDbGFzcyBHZG9tVGV4dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21UcmVlV2Fsa2VyIEdkb21UcmVlV2Fsa2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UcmVlV2Fs
a2VyQ2xhc3MgR2RvbVRyZWVXYWxrZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVUlFdmVu
dCBHZG9tVUlFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVUlFdmVudENsYXNzIEdkb21VSUV2
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50IEdkb21X
ZWJLaXRBbmltYXRpb25FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0QW5pbWF0aW9u
RXZlbnRDbGFzcyBHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUgR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVl
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUNsYXNzIEdkb21X
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRU
cmFuc2l0aW9uRXZlbnQgR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50Q2xhc3MgR2RvbVdlYktpdFRyYW5zaXRpb25FdmVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XaGVlbEV2ZW50IEdkb21XaGVlbEV2ZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21XaGVlbEV2ZW50Q2xhc3MgR2RvbVdoZWVsRXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24gR2RvbVhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdEV4Y2Vw
dGlvbkNsYXNzIEdkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21YTUxIdHRwUmVxdWVzdCBHZG9tWE1MSHR0cFJlcXVlc3Q7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVhNTEh0dHBSZXF1ZXN0Q2xhc3MgR2RvbVhNTEh0dHBSZXF1ZXN0Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCBHZG9tWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRDbGFzcyBHZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkIEdkb21YTUxIdHRwUmVxdWVz
dFVwbG9hZDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWRDbGFzcyBH
ZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MU2Vy
aWFsaXplciBHZG9tWE1MU2VyaWFsaXplcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MU2VyaWFs
aXplckNsYXNzIEdkb21YTUxTZXJpYWxpemVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQ
YXRoRXZhbHVhdG9yIEdkb21YUGF0aEV2YWx1YXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBh
dGhFdmFsdWF0b3JDbGFzcyBHZG9tWFBhdGhFdmFsdWF0b3JDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tWFBhdGhFeGNlcHRpb24gR2RvbVhQYXRoRXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21YUGF0aEV4Y2VwdGlvbkNsYXNzIEdkb21YUGF0aEV4Y2VwdGlvbkNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21YUGF0aEV4cHJlc3Npb24gR2RvbVhQYXRoRXhwcmVzc2lvbjsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tWFBhdGhFeHByZXNzaW9uQ2xhc3MgR2RvbVhQYXRoRXhwcmVzc2lvbkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aE5TUmVzb2x2ZXIgR2RvbVhQYXRoTlNSZXNv
bHZlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhOU1Jlc29sdmVyQ2xhc3MgR2RvbVhQYXRo
TlNSZXNvbHZlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aFJlc3VsdCBHZG9tWFBh
dGhSZXN1bHQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoUmVzdWx0Q2xhc3MgR2RvbVhQYXRo
UmVzdWx0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhTTFRQcm9jZXNzb3IgR2RvbVhTTFRQ
cm9jZXNzb3I7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhTTFRQcm9jZXNzb3JDbGFzcyBHZG9tWFNM
VFByb2Nlc3NvckNsYXNzOworCisKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9PQkpFQ1QgICAgICAg
ICAgICAoZ2RvbV9kb21fb2JqZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FVkVO
VF9UQVJHRVRfTk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9BVFRSICAgICAgICAgICAgKGdkb21fYXR0cl9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQkFSX0lORk8gICAgICAgICAgICAoZ2RvbV9iYXJfaW5m
b19nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0FOVkFTX0dSQURJRU5UICAgICAgICAg
ICAgKGdkb21fY2FudmFzX2dyYWRpZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9D
QU5WQVNfUEFUVEVSTiAgICAgICAgICAgIChnZG9tX2NhbnZhc19wYXR0ZXJuX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9DQU5WQVNfUElYRUxfQVJSQVkgICAgICAgICAgICAoZ2RvbV9j
YW52YXNfcGl4ZWxfYXJyYXlfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19S
RU5ERVJJTkdfQ09OVEVYVDJEICAgICAgICAgICAgKGdkb21fY2FudmFzX3JlbmRlcmluZ19jb250
ZXh0MmRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NEQVRBX1NFQ1RJT04gICAgICAg
ICAgICAoZ2RvbV9jZGF0YV9zZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9D
SEFSQUNURVJfREFUQSAgICAgICAgICAgIChnZG9tX2NoYXJhY3Rlcl9kYXRhX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9DTElQQk9BUkQgICAgICAgICAgICAoZ2RvbV9jbGlwYm9hcmRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NPTU1FTlQgICAgICAgICAgICAoZ2RvbV9j
b21tZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DT05TT0xFICAgICAgICAgICAg
KGdkb21fY29uc29sZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ09VTlRFUiAgICAg
ICAgICAgIChnZG9tX2NvdW50ZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19D
SEFSU0VUX1JVTEUgICAgICAgICAgICAoZ2RvbV9jc3NfY2hhcnNldF9ydWxlX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9DU1NfRk9OVF9GQUNFX1JVTEUgICAgICAgICAgICAoZ2RvbV9j
c3NfZm9udF9mYWNlX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19JTVBP
UlRfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19pbXBvcnRfcnVsZV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfQ1NTX01FRElBX1JVTEUgICAgICAgICAgICAoZ2RvbV9jc3NfbWVkaWFf
cnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1BBR0VfUlVMRSAgICAgICAg
ICAgIChnZG9tX2Nzc19wYWdlX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NT
U19QUklNSVRJVkVfVkFMVUUgICAgICAgICAgICAoZ2RvbV9jc3NfcHJpbWl0aXZlX3ZhbHVlX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfUlVMRSAgICAgICAgICAgIChnZG9tX2Nz
c19ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfUlVMRV9MSVNUICAgICAg
ICAgICAgKGdkb21fY3NzX3J1bGVfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
Q1NTX1NUWUxFX0RFQ0xBUkFUSU9OICAgICAgICAgICAgKGdkb21fY3NzX3N0eWxlX2RlY2xhcmF0
aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfU1RZTEVfUlVMRSAgICAgICAg
ICAgIChnZG9tX2Nzc19zdHlsZV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9D
U1NfU1RZTEVfU0hFRVQgICAgICAgICAgICAoZ2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19WQUxVRSAgICAgICAgICAgIChnZG9tX2Nzc192YWx1
ZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZBTFVFX0xJU1QgICAgICAgICAg
ICAoZ2RvbV9jc3NfdmFsdWVfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NT
X1ZBUklBQkxFU19ERUNMQVJBVElPTiAgICAgICAgICAgIChnZG9tX2Nzc192YXJpYWJsZXNfZGVj
bGFyYXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19WQVJJQUJMRVNfUlVM
RSAgICAgICAgICAgIChnZG9tX2Nzc192YXJpYWJsZXNfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfREFUQUJBU0UgICAgICAgICAgICAoZ2RvbV9kYXRhYmFzZV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfRE9DVU1FTlRfRlJBR01FTlQgICAgICAgICAgICAoZ2RvbV9k
b2N1bWVudF9mcmFnbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9DVU1FTlQg
ICAgICAgICAgICAoZ2RvbV9kb2N1bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
RE9DVU1FTlRfVFlQRSAgICAgICAgICAgIChnZG9tX2RvY3VtZW50X3R5cGVfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9BUFBMSUNBVElPTl9DQUNIRSAgICAgICAgICAgIChnZG9t
X2RvbV9hcHBsaWNhdGlvbl9jYWNoZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9N
X0NPUkVfRVhDRVBUSU9OICAgICAgICAgICAgKGdkb21fZG9tX2NvcmVfZXhjZXB0aW9uX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET01fSU1QTEVNRU5UQVRJT04gICAgICAgICAgICAo
Z2RvbV9kb21faW1wbGVtZW50YXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RP
TV9QQVJTRVIgICAgICAgICAgICAoZ2RvbV9kb21fcGFyc2VyX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9ET01fU0VMRUNUSU9OICAgICAgICAgICAgKGdkb21fZG9tX3NlbGVjdGlvbl9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9NX1dJTkRPVyAgICAgICAgICAgIChnZG9t
X2RvbV93aW5kb3dfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FTlRJVFkg
ICAgICAgICAgICAoZ2RvbV9lbnRpdHlfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VO
VElUWV9SRUZFUkVOQ0UgICAgICAgICAgICAoZ2RvbV9lbnRpdHlfcmVmZXJlbmNlX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9FVkVOVF9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV9l
dmVudF9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UICAgICAg
ICAgICAgKGdkb21fZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0ZJTEUgICAg
ICAgICAgICAoZ2RvbV9maWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9GSUxFX0xJ
U1QgICAgICAgICAgICAoZ2RvbV9maWxlX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hJU1RPUlkgICAgICAgICAgICAoZ2RvbV9oaXN0b3J5X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX0FOQ0hPUl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9hbmNo
b3JfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9BUFBMRVRfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfQVJFQV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9h
cmVhX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQkFTRV9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9iYXNlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfQkFTRV9GT05UX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X2Jhc2VfZm9udF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0JM
T0NLUVVPVEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYmxvY2txdW90ZV9lbGVtZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0JPRFlfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MQlJfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxicl9lbGVtZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0JVVFRPTl9FTEVNRU5UICAgICAgICAgICAgKGdk
b21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRN
TF9DQU5WQVNfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQ09MTEVDVElPTiAgICAgICAgICAgIChn
ZG9tX2h0bWxfY29sbGVjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9E
SVJFQ1RPUllfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRElWX0VMRU1FTlQgICAgICAgICAg
ICAoZ2RvbV9odG1sX2Rpdl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MRF9MSVNUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sZF9saXN0X2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRE9DVU1FTlQgICAgICAgICAgICAoZ2Rv
bV9odG1sX2RvY3VtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0hUTUxfRU1CRURfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZW1iZWRfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GSUVMRF9TRVRfRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfZmllbGRfc2V0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfRk9OVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9m
b250X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRk9STV9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfRlJBTUVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZnJh
bWVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GUkFNRV9TRVRf
RUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZnJhbWVfc2V0X2VsZW1lbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSEVBRF9FTEVNRU5UICAgICAgICAgICAgKGdkb21f
aHRtbF9oZWFkX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSEVB
RElOR19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9oZWFkaW5nX2VsZW1lbnRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxIUl9FTEVNRU5UICAgICAgICAgICAgKGdkb21f
aHRtbGhyX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSFRNTF9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9odG1sX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxJX0ZSQU1FX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
aV9mcmFtZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0lNQUdF
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSU5QVVRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxfaW5wdXRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9JU19J
TkRFWF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9pc19pbmRleF9lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0xBQkVMX0VMRU1FTlQgICAgICAgICAgICAo
Z2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hU
TUxfTEVHRU5EX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MTElfRUxFTUVOVCAgICAgICAgICAgIChn
ZG9tX2h0bWxsaV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0xJ
TktfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01BUF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9tYXBfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9NQVJRVUVF
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9NRU5VX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9o
dG1sX21lbnVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9NRVRB
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9NT0RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
bW9kX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfT0JKRUNUX0VM
RU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9IVE1MT19MSVNUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
b19saXN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfT1BUX0dS
T1VQX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX29wdF9ncm91cF9lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX09QVElPTl9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
SFRNTF9PUFRJT05TX0NPTExFQ1RJT04gICAgICAgICAgICAoZ2RvbV9odG1sX29wdGlvbnNfY29s
bGVjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9QQVJBR1JBUEhfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfUEFSQU1fRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxfcGFyYW1fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9QUkVf
RUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfcHJlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfUVVPVEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
cXVvdGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9TQ1JJUFRf
RUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfU0VMRUNUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9o
dG1sX3NlbGVjdF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1NU
WUxFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfQ0FQVElPTl9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF90YWJsZV9jYXB0aW9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfVEFCTEVfQ0VMTF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90
YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFC
TEVfQ09MX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX0VMRU1FTlQgICAgICAgICAg
ICAoZ2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfVEFCTEVfUk9XX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX3Jvd19l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX1NFQ1RJT05f
RUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RFWFRfQVJFQV9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9USVRMRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90aXRsZV9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MVV9MSVNUX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sdV9saXN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0lNQUdFX0RBVEEgICAgICAgICAgICAoZ2RvbV9pbWFnZV9kYXRhX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9KQVZBX1NDUklQVF9DQUxMX0ZSQU1FICAgICAgICAgICAgKGdk
b21famF2YV9zY3JpcHRfY2FsbF9mcmFtZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
S0VZQk9BUkRfRVZFTlQgICAgICAgICAgICAoZ2RvbV9rZXlib2FyZF9ldmVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfTE9DQVRJT04gICAgICAgICAgICAoZ2RvbV9sb2NhdGlvbl9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUVESUFfTElTVCAgICAgICAgICAgIChnZG9t
X21lZGlhX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01FU1NBR0VfRVZFTlQg
ICAgICAgICAgICAoZ2RvbV9tZXNzYWdlX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9NSU1FX1RZUEVfQVJSQVkgICAgICAgICAgICAoZ2RvbV9taW1lX3R5cGVfYXJyYXlfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01JTUVfVFlQRSAgICAgICAgICAgIChnZG9tX21p
bWVfdHlwZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTU9VU0VfRVZFTlQgICAgICAg
ICAgICAoZ2RvbV9tb3VzZV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTVVU
QVRJT05fRVZFTlQgICAgICAgICAgICAoZ2RvbV9tdXRhdGlvbl9ldmVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfTkFNRURfTk9ERV9NQVAgICAgICAgICAgICAoZ2RvbV9uYW1lZF9u
b2RlX21hcF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTkFWSUdBVE9SICAgICAgICAg
ICAgKGdkb21fbmF2aWdhdG9yX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT0RFX0ZJ
TFRFUiAgICAgICAgICAgIChnZG9tX25vZGVfZmlsdGVyX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9OT0RFICAgICAgICAgICAgKGdkb21fbm9kZV9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfTk9ERV9JVEVSQVRPUiAgICAgICAgICAgIChnZG9tX25vZGVfaXRlcmF0b3JfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05PREVfTElTVCAgICAgICAgICAgIChnZG9tX25v
ZGVfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTk9UQVRJT04gICAgICAgICAg
ICAoZ2RvbV9ub3RhdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfT1ZFUkZMT1df
RVZFTlQgICAgICAgICAgICAoZ2RvbV9vdmVyZmxvd19ldmVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfUExVR0lOX0FSUkFZICAgICAgICAgICAgKGdkb21fcGx1Z2luX2FycmF5X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9QTFVHSU4gICAgICAgICAgICAoZ2RvbV9wbHVn
aW5fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04g
ICAgICAgICAgICAoZ2RvbV9wcm9jZXNzaW5nX2luc3RydWN0aW9uX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9QUk9HUkVTU19FVkVOVCAgICAgICAgICAgIChnZG9tX3Byb2dyZXNzX2V2
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9SQU5HRV9FWENFUFRJT04gICAgICAg
ICAgICAoZ2RvbV9yYW5nZV9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1JBTkdFICAgICAgICAgICAgKGdkb21fcmFuZ2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX1JFQ1QgICAgICAgICAgICAoZ2RvbV9yZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9TQ1JFRU4gICAgICAgICAgICAoZ2RvbV9zY3JlZW5fZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX1NRTF9FUlJPUiAgICAgICAgICAgIChnZG9tX3NxbF9lcnJvcl9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfU1FMX1JFU1VMVF9TRVQgICAgICAgICAgICAoZ2RvbV9zcWxf
cmVzdWx0X3NldF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1FMX1JFU1VMVF9TRVRf
Uk9XX0xJU1QgICAgICAgICAgICAoZ2RvbV9zcWxfcmVzdWx0X3NldF9yb3dfbGlzdF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1FMX1RSQU5TQUNUSU9OICAgICAgICAgICAgKGdkb21f
c3FsX3RyYW5zYWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TVE9SQUdFX0VW
RU5UICAgICAgICAgICAgKGdkb21fc3RvcmFnZV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfU1RPUkFHRSAgICAgICAgICAgIChnZG9tX3N0b3JhZ2VfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX1NUWUxFX1NIRUVUICAgICAgICAgICAgKGdkb21fc3R5bGVfc2hlZXRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NUWUxFX1NIRUVUX0xJU1QgICAgICAgICAg
ICAoZ2RvbV9zdHlsZV9zaGVldF9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9U
RVhUX0VWRU5UICAgICAgICAgICAgKGdkb21fdGV4dF9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfVEVYVCAgICAgICAgICAgIChnZG9tX3RleHRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX1RSRUVfV0FMS0VSICAgICAgICAgICAgKGdkb21fdHJlZV93YWxrZXJfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1VJX0VWRU5UICAgICAgICAgICAgKGdkb21fdWlf
ZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1dFQl9LSVRfQU5JTUFUSU9OX0VW
RU5UICAgICAgICAgICAgKGdkb21fd2ViX2tpdF9hbmltYXRpb25fZXZlbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX1dFQl9LSVRfQ1NTX1RSQU5TRk9STV9WQUxVRSAgICAgICAgICAg
IChnZG9tX3dlYl9raXRfY3NzX3RyYW5zZm9ybV92YWx1ZV9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfV0VCX0tJVF9UUkFOU0lUSU9OX0VWRU5UICAgICAgICAgICAgKGdkb21fd2ViX2tp
dF90cmFuc2l0aW9uX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9XSEVFTF9F
VkVOVCAgICAgICAgICAgIChnZG9tX3doZWVsX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9YTUxfSFRUUF9SRVFVRVNUX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9tX3htbF9o
dHRwX3JlcXVlc3RfZXhjZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YTUxf
SFRUUF9SRVFVRVNUICAgICAgICAgICAgKGdkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfWE1MX0hUVFBfUkVRVUVTVF9QUk9HUkVTU19FVkVOVCAgICAg
ICAgICAgIChnZG9tX3htbF9odHRwX3JlcXVlc3RfcHJvZ3Jlc3NfZXZlbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1RfVVBMT0FEICAgICAgICAgICAgKGdk
b21feG1sX2h0dHBfcmVxdWVzdF91cGxvYWRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1hNTF9TRVJJQUxJWkVSICAgICAgICAgICAgKGdkb21feG1sX3NlcmlhbGl6ZXJfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9FVkFMVUFUT1IgICAgICAgICAgICAoZ2RvbV94
X3BhdGhfZXZhbHVhdG9yX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YX1BBVEhfRVhD
RVBUSU9OICAgICAgICAgICAgKGdkb21feF9wYXRoX2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfWF9QQVRIX0VYUFJFU1NJT04gICAgICAgICAgICAoZ2RvbV94X3BhdGhf
ZXhwcmVzc2lvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWF9QQVRIX05TX1JFU09M
VkVSICAgICAgICAgICAgKGdkb21feF9wYXRoX25zX3Jlc29sdmVyX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9YX1BBVEhfUkVTVUxUICAgICAgICAgICAgKGdkb21feF9wYXRoX3Jlc3Vs
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWFNMVF9QUk9DRVNTT1IgICAgICAgICAg
ICAoZ2RvbV94c2x0X3Byb2Nlc3Nvcl9nZXRfdHlwZSgpKQorR19FTkRfREVDTFMKKworI2VuZGlm
CkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRG9jdW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9n
dGsvd2Via2l0L0dkb21Eb2N1bWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisjaWZuZGVmIF9f
R2RvbURvY3VtZW50X0hfXworI2RlZmluZSBfX0dkb21Eb2N1bWVudF9IX18KKyNpbmNsdWRlIDx3
ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUgIkdkb21BdHRyLmgiCisjaW5jbHVkZSAi
R2RvbUNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUgIkdkb21DU1NTdHlsZURlY2xhcmF0aW9uLmgi
CisjaW5jbHVkZSAiR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIgorI2luY2x1ZGUgIkdk
b21Db21tZW50LmgiCisjaW5jbHVkZSAiR2RvbURPTVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIkdk
b21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiR2RvbUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisjaW5jbHVk
ZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisjaW5jbHVk
ZSAiR2RvbU5vZGVGaWx0ZXIuaCIKKyNpbmNsdWRlICJHZG9tTm9kZUl0ZXJhdG9yLmgiCisjaW5j
bHVkZSAiR2RvbU5vZGVMaXN0LmgiCisjaW5jbHVkZSAiR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oIgorI2luY2x1ZGUgIkdkb21SYW5nZS5oIgorI2luY2x1ZGUgIkdkb21UZXh0LmgiCisjaW5j
bHVkZSAiR2RvbVRyZWVXYWxrZXIuaCIKKyNpbmNsdWRlICJHZG9tWFBhdGhFeHByZXNzaW9uLmgi
CisjaW5jbHVkZSAiR2RvbVhQYXRoTlNSZXNvbHZlci5oIgorI2luY2x1ZGUgIkdkb21YUGF0aFJl
c3VsdC5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisKKworR19CRUdJTl9ERUNMUworCit0
eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50IEdkb21Eb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRG9jdW1lbnRDbGFzcyBHZG9tRG9jdW1lbnRDbGFzczsKKworCisjZGVmaW5lIEdET01f
VFlQRV9ET0NVTUVOVCAgICAgICAgICAgIChnZG9tX2RvY3VtZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fRE9DVU1FTlQob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPQ1VNRU5ULCBHZG9tRG9jdW1lbnQpKQorI2RlZmluZSBH
RE9NX0RPQ1VNRU5UX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGts
YXNzKSwgIEdET01fVFlQRV9ET0NVTUVOVCwgR2RvbURvY3VtZW50KUNsYXNzKQorI2RlZmluZSBH
RE9NX0lTX0RPQ1VNRU5UKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUo
KG9iaiksIEdET01fVFlQRV9ET0NVTUVOVCkpCisjZGVmaW5lIEdET01fSVNfRE9DVU1FTlRfQ0xB
U1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0RP
Q1VNRU5UKSkKKyNkZWZpbmUgR0RPTV9ET0NVTUVOVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9J
TlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRE9DVU1FTlQsIEdkb21Eb2N1bWVu
dENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudFByaXZhdGUgR2RvbURvY3Vt
ZW50UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRG9jdW1lbnQgeworICAgIEdkb21FdmVudFRhcmdl
dE5vZGUgcGFyZW50X2luc3RhbmNlOworCisgICAgR2RvbURvY3VtZW50UHJpdmF0ZSAqcHJpdjsK
K307CisKK3N0cnVjdCBfR2RvbURvY3VtZW50Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJl
bnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9tX2RvY3VtZW50X2dldF90eXBl
ICh2b2lkKTsKKworV0VCS0lUX0FQSSBHZG9tRWxlbWVudCAqCitnZG9tX2RvY3VtZW50X2NyZWF0
ZV9lbGVtZW50IChHZG9tRG9jdW1lbnQgKnRoaXosIGNvbnN0IGdjaGFyICp0YWdfbmFtZSk7CisK
K1dFQktJVF9BUEkgR2RvbURvY3VtZW50RnJhZ21lbnQgKgorZ2RvbV9kb2N1bWVudF9jcmVhdGVf
ZG9jdW1lbnRfZnJhZ21lbnQgKEdkb21Eb2N1bWVudCAqdGhpeik7CisKK1dFQktJVF9BUEkgR2Rv
bVRleHQgKgorZ2RvbV9kb2N1bWVudF9jcmVhdGVfdGV4dF9ub2RlIChHZG9tRG9jdW1lbnQgKnRo
aXosIGNvbnN0IGdjaGFyICpkYXRhKTsKKworV0VCS0lUX0FQSSBHZG9tQ29tbWVudCAqCitnZG9t
X2RvY3VtZW50X2NyZWF0ZV9jb21tZW50IChHZG9tRG9jdW1lbnQgKnRoaXosIGNvbnN0IGdjaGFy
ICpkYXRhKTsKKworV0VCS0lUX0FQSSBHZG9tQ0RBVEFTZWN0aW9uICoKK2dkb21fZG9jdW1lbnRf
Y3JlYXRlX2NkYXRhX3NlY3Rpb24gKEdkb21Eb2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKmRh
dGEpOworCitXRUJLSVRfQVBJIEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gKgorZ2RvbV9kb2N1
bWVudF9jcmVhdGVfcHJvY2Vzc2luZ19pbnN0cnVjdGlvbiAoR2RvbURvY3VtZW50ICp0aGl6LCBj
b25zdCBnY2hhciAqdGFyZ2V0LCBjb25zdCBnY2hhciAqZGF0YSk7CisKK1dFQktJVF9BUEkgR2Rv
bUF0dHIgKgorZ2RvbV9kb2N1bWVudF9jcmVhdGVfYXR0cmlidXRlIChHZG9tRG9jdW1lbnQgKnRo
aXosIGNvbnN0IGdjaGFyICpuYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRW50aXR5UmVmZXJlbmNl
ICoKK2dkb21fZG9jdW1lbnRfY3JlYXRlX2VudGl0eV9yZWZlcmVuY2UgKEdkb21Eb2N1bWVudCAq
dGhpeiwgY29uc3QgZ2NoYXIgKm5hbWUpOworCitXRUJLSVRfQVBJIEdkb21Ob2RlTGlzdCAqCitn
ZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFtZSAoR2RvbURvY3VtZW50ICp0aGl6
LCBjb25zdCBnY2hhciAqdGFnbmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbU5vZGUgKgorZ2RvbV9k
b2N1bWVudF9pbXBvcnRfbm9kZSAoR2RvbURvY3VtZW50ICp0aGl6LCBHZG9tTm9kZSAqaW1wb3J0
ZWRfbm9kZSwgZ2Jvb2xlYW4gZGVlcCk7CisKK1dFQktJVF9BUEkgR2RvbUVsZW1lbnQgKgorZ2Rv
bV9kb2N1bWVudF9jcmVhdGVfZWxlbWVudF9ucyAoR2RvbURvY3VtZW50ICp0aGl6LCBjb25zdCBn
Y2hhciAqbmFtZXNwYWNlX3VyaSwgY29uc3QgZ2NoYXIgKnF1YWxpZmllZF9uYW1lKTsKKworV0VC
S0lUX0FQSSBHZG9tQXR0ciAqCitnZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGVfbnMgKEdk
b21Eb2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKm5hbWVzcGFjZV91cmksIGNvbnN0IGdjaGFy
ICpxdWFsaWZpZWRfbmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbU5vZGVMaXN0ICoKK2dkb21fZG9j
dW1lbnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1lX25zIChHZG9tRG9jdW1lbnQgKnRoaXosIGNv
bnN0IGdjaGFyICpuYW1lc3BhY2VfdXJpLCBjb25zdCBnY2hhciAqbG9jYWxfbmFtZSk7CisKK1dF
QktJVF9BUEkgR2RvbUVsZW1lbnQgKgorZ2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudF9ieV9pZCAo
R2RvbURvY3VtZW50ICp0aGl6LCBjb25zdCBnY2hhciAqZWxlbWVudF9pZCk7CisKK1dFQktJVF9B
UEkgR2RvbU5vZGUgKgorZ2RvbV9kb2N1bWVudF9hZG9wdF9ub2RlIChHZG9tRG9jdW1lbnQgKnRo
aXosIEdkb21Ob2RlICpzb3VyY2UpOworCitXRUJLSVRfQVBJIEdkb21FdmVudCAqCitnZG9tX2Rv
Y3VtZW50X2NyZWF0ZV9ldmVudCAoR2RvbURvY3VtZW50ICp0aGl6LCBjb25zdCBnY2hhciAqZXZl
bnRfdHlwZSk7CisKK1dFQktJVF9BUEkgR2RvbVJhbmdlICoKK2dkb21fZG9jdW1lbnRfY3JlYXRl
X3JhbmdlIChHZG9tRG9jdW1lbnQgKnRoaXopOworCitXRUJLSVRfQVBJIEdkb21Ob2RlSXRlcmF0
b3IgKgorZ2RvbV9kb2N1bWVudF9jcmVhdGVfbm9kZV9pdGVyYXRvciAoR2RvbURvY3VtZW50ICp0
aGl6LCBHZG9tTm9kZSAqcm9vdCwgZ3Vsb25nIHdoYXRfdG9fc2hvdywgR2RvbU5vZGVGaWx0ZXIg
KmZpbHRlciwgZ2Jvb2xlYW4gZW50aXR5X3JlZmVyZW5jZV9leHBhbnNpb24pOworCitXRUJLSVRf
QVBJIEdkb21UcmVlV2Fsa2VyICoKK2dkb21fZG9jdW1lbnRfY3JlYXRlX3RyZWVfd2Fsa2VyIChH
ZG9tRG9jdW1lbnQgKnRoaXosIEdkb21Ob2RlICpyb290LCBndWxvbmcgd2hhdF90b19zaG93LCBH
ZG9tTm9kZUZpbHRlciAqZmlsdGVyLCBnYm9vbGVhbiBlbnRpdHlfcmVmZXJlbmNlX2V4cGFuc2lv
bik7CisKK1dFQktJVF9BUEkgR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24gKgorZ2RvbV9kb2N1bWVu
dF9nZXRfb3ZlcnJpZGVfc3R5bGUgKEdkb21Eb2N1bWVudCAqdGhpeiwgR2RvbUVsZW1lbnQgKmVs
ZW1lbnQsIGNvbnN0IGdjaGFyICpwc2V1ZG9fZWxlbWVudCk7CisKK1dFQktJVF9BUEkgR2RvbVhQ
YXRoRXhwcmVzc2lvbiAqCitnZG9tX2RvY3VtZW50X2NyZWF0ZV9leHByZXNzaW9uIChHZG9tRG9j
dW1lbnQgKnRoaXosIGNvbnN0IGdjaGFyICpleHByZXNzaW9uLCBHZG9tWFBhdGhOU1Jlc29sdmVy
ICpyZXNvbHZlcik7CisKK1dFQktJVF9BUEkgR2RvbVhQYXRoTlNSZXNvbHZlciAqCitnZG9tX2Rv
Y3VtZW50X2NyZWF0ZV9uc19yZXNvbHZlciAoR2RvbURvY3VtZW50ICp0aGl6LCBHZG9tTm9kZSAq
bm9kZV9yZXNvbHZlcik7CisKK1dFQktJVF9BUEkgR2RvbVhQYXRoUmVzdWx0ICoKK2dkb21fZG9j
dW1lbnRfZXZhbHVhdGUgKEdkb21Eb2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKmV4cHJlc3Np
b24sIEdkb21Ob2RlICpjb250ZXh0X25vZGUsIEdkb21YUGF0aE5TUmVzb2x2ZXIgKnJlc29sdmVy
LCBndXNob3J0IHR5cGUsIEdkb21YUGF0aFJlc3VsdCAqaW5fcmVzdWx0KTsKKworV0VCS0lUX0FQ
SSBnYm9vbGVhbiAKK2dkb21fZG9jdW1lbnRfZXhlY19jb21tYW5kIChHZG9tRG9jdW1lbnQgKnRo
aXosIGNvbnN0IGdjaGFyICpjb21tYW5kLCBnYm9vbGVhbiB1c2VyX2ludGVyZmFjZSwgY29uc3Qg
Z2NoYXIgKnZhbHVlKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbiAKK2dkb21fZG9jdW1lbnRfcXVl
cnlfY29tbWFuZF9lbmFibGVkIChHZG9tRG9jdW1lbnQgKnRoaXosIGNvbnN0IGdjaGFyICpjb21t
YW5kKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbiAKK2dkb21fZG9jdW1lbnRfcXVlcnlfY29tbWFu
ZF9pbmRldGVybSAoR2RvbURvY3VtZW50ICp0aGl6LCBjb25zdCBnY2hhciAqY29tbWFuZCk7CisK
K1dFQktJVF9BUEkgZ2Jvb2xlYW4gCitnZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfc3RhdGUg
KEdkb21Eb2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKmNvbW1hbmQpOworCitXRUJLSVRfQVBJ
IGdib29sZWFuIAorZ2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX3N1cHBvcnRlZCAoR2RvbURv
Y3VtZW50ICp0aGl6LCBjb25zdCBnY2hhciAqY29tbWFuZCk7CisKK1dFQktJVF9BUEkgY29uc3Qg
Z2NoYXIgKgorZ2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX3ZhbHVlIChHZG9tRG9jdW1lbnQg
KnRoaXosIGNvbnN0IGdjaGFyICpjb21tYW5kKTsKKworV0VCS0lUX0FQSSBHZG9tTm9kZUxpc3Qg
KgorZ2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfbmFtZSAoR2RvbURvY3VtZW50ICp0aGl6
LCBjb25zdCBnY2hhciAqZWxlbWVudF9uYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRWxlbWVudCAq
CitnZG9tX2RvY3VtZW50X2VsZW1lbnRfZnJvbV9wb2ludCAoR2RvbURvY3VtZW50ICp0aGl6LCBn
bG9uZyB4LCBnbG9uZyB5KTsKKworV0VCS0lUX0FQSSBHZG9tRE9NU2VsZWN0aW9uICoKK2dkb21f
ZG9jdW1lbnRfZ2V0X3NlbGVjdGlvbiAoR2RvbURvY3VtZW50ICp0aGl6KTsKKworV0VCS0lUX0FQ
SSBHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbiAqCitnZG9tX2RvY3VtZW50X2NyZWF0ZV9jc3Nfc3R5
bGVfZGVjbGFyYXRpb24gKEdkb21Eb2N1bWVudCAqdGhpeik7CisKK1dFQktJVF9BUEkgR2RvbU5v
ZGVMaXN0ICoKK2dkb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X2NsYXNzX25hbWUgKEdkb21E
b2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKnRhZ25hbWUpOworCisKKy8qIFhYWCBUT0RPOiBj
dXN0b20gZnVuY3Rpb24gZ2RvbV9kb2N1bWVudF9xdWVyeV9zZWxlY3RvciAqLworCisKKy8qIFhY
WCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gZ2RvbV9kb2N1bWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwg
Ki8KKworR19FTkRfREVDTFMKKworI2VuZGlmIC8qIF9fR2RvbURvY3VtZW50X0hfXyAqLwpJbmRl
eDogV2ViS2l0L2d0ay93ZWJraXQvZ2RvbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Vi
a2l0L2dkb20uaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L2dkb20uaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNjAgQEAKKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NT2JqZWN0Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21BdHRyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21CYXJJbmZvLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21DYW52YXNHcmFkaWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
Q2FudmFzUGF0dGVybi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2FudmFzUGl4ZWxBcnJheS5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21DREFUQVNlY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNo
YXJhY3RlckRhdGEuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNsaXBib2FyZC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tQ29tbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ29uc29sZS5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ291bnRlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
Q1NTQ2hhcnNldFJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU0ZvbnRGYWNlUnVsZS5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTSW1wb3J0UnVsZS5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tQ1NTTWVkaWFSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NQYWdlUnVsZS5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUNTU1J1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1J1bGVMaXN0Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21DU1NTdHlsZVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1N0eWxl
U2hlZXQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ZhbHVlLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21DU1NWYWx1ZUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ZhcmlhYmxl
c0RlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NWYXJpYWJsZXNSdWxlLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21EYXRhYmFzZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
RG9jdW1lbnRGcmFnbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRG9jdW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbURvY3VtZW50VHlwZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
RE9NQXBwbGljYXRpb25DYWNoZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NQ29yZUV4Y2Vw
dGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NSW1wbGVtZW50YXRpb24uaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbURPTVBhcnNlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NU2Vs
ZWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUVudGl0eS5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tRW50aXR5UmVmZXJlbmNlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21FdmVudEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRXZlbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUZpbGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUZpbGVMaXN0Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IaXN0b3J5Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MQW5jaG9yRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEFwcGxldEVsZW1l
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxBcmVhRWxlbWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tSFRNTEJhc2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1M
QmFzZUZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQmxvY2txdW90ZUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCb2R5RWxlbWVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tSFRNTEJSRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRN
TEJ1dHRvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxDYW52YXNFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQ29sbGVjdGlvbi5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxEaXZFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRExpc3RFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUhUTUxFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRW1iZWRFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRmllbGRTZXRFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21IVE1MRm9udEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxGb3JtRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZyYW1lRWxlbWVudC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tSFRNTEhlYWRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1M
SGVhZGluZ0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIUkVsZW1lbnQuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIdG1sRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJbWFn
ZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJbnB1dEVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTExhYmVsRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTExlZ2Vu
ZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxMSUVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxMaW5rRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
SFRNTE1hcEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxNYXJxdWVlRWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE1lbnVFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MTWV0YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxN
b2RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MT2JqZWN0RWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9MaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9w
dGlvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlv
bi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxQYXJhbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxQcmVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MUXVvdGVFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MU2NyaXB0RWxlbWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxTdHlsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUNhcHRpb25F
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTFRhYmxlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRh
YmxlUm93RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUaXRsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUhUTUxVTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUltYWdlRGF0YS5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTG9jYXRp
b24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1lZGlhTGlzdC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tTWVzc2FnZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21NaW1lVHlwZUFycmF5
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21NaW1lVHlwZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tTW91c2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTXV0YXRpb25FdmVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tTmFtZWROb2RlTWFwLmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21OYXZpZ2F0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVGaWx0ZXIuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbU5vZGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVJdGVyYXRv
ci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTm9kZUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbU5vdGF0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21PdmVyZmxvd0V2ZW50Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21QbHVnaW5BcnJheS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
UGx1Z2luLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbVByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbVJhbmdlRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21SYW5nZS5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tUmVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU2NyZWVuLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxFcnJvci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
U1FMUmVzdWx0U2V0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxUcmFuc2FjdGlvbi5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tU3RvcmFnZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TdG9yYWdlLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21TdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21TdHlsZVNoZWV0TGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tVGV4dEV2ZW50Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21UZXh0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21UcmVlV2Fs
a2VyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21VSUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVdlYktpdFRyYW5zaXRp
b25FdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2hlZWxFdmVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbVhNTEh0dHBSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0VXBs
b2FkLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxTZXJpYWxpemVyLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21YUGF0aEV2YWx1YXRvci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhF
eGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRoRXhwcmVzc2lvbi5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhOU1Jlc29sdmVyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21YUGF0aFJlc3VsdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFNMVFByb2Nlc3Nvci5oPgpJ
bmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZXZlbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdF
QktJVF9FVkVOVF9ICisjZGVmaW5lIFdFQktJVF9FVkVOVF9ICisKKyNpbmNsdWRlIDxnbGliLW9i
amVjdC5oPgorCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9E
RUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0VWRU5UICAgICAgICAgICAgKHdlYmtpdF9ldmVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfRVZFTlQob2JqKSAgICAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktpdEV2
ZW50KSkKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNL
X0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0VWRU5ULCBXZWJLaXRFdmVudENsYXNz
KSkKKyNkZWZpbmUgV0VCS0lUX0lTX0VWRU5UKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX0VWRU5UKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X0VWRU5UX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdF
QktJVF9UWVBFX0VWRU5UKSkKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0VWRU5ULCBXZWJL
aXRFdmVudENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50UHJpdmF0ZSBXZWJL
aXRFdmVudFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0RXZlbnQgeworICAgIEdPYmplY3QgcGFy
ZW50X2luc3RhbmNlOworCisgICAgV2ViS2l0RXZlbnRQcml2YXRlICpwcml2OworfTsKKworc3Ry
dWN0IF9XZWJLaXRFdmVudENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwor
fTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2V2ZW50X2dldF90eXBlICh2b2lkKTsKKwor
V0VCS0lUX0FQSSBXZWJLaXRFdmVudCAqCit3ZWJraXRfZXZlbnRfbmV3ICAgICAgKHZvaWQpOwor
CisvKldFQktJVF9BUEkgdm9pZAord2Via2l0X2V2ZW50X3NldF91cmkgIChXZWJLaXRFdmVudCAq
cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiAg
ICAgICAgICB1cmkpOyovCisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTIsNiArMiw3IEBACiBXZWJDb3JlIDo9ICQoc3JjZGlyKS9XZWJDb3JlCiAKIEZFQVRVUkVfREVG
SU5FU19KQVZBU0NSSVBUIDo9IExBTkdVQUdFX0pBVkFTQ1JJUFQ9MQorRkVBVFVSRV9ERUZJTkVT
X0dET00gOj0gTEFOR1VBR0VfR09CSkVDVD0xCiBTVkdfRkVBVFVSRVMgOj0KIEhUTUxfRkVBVFVS
RVMgOj0KIApAQCAtOSw2ICsxMCw3IEBACiBXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUyA6PSAk
KFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0g
XAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUgXAogCS1J
JChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yayBcCkBAIC0yOSw2ICszMSw3IEBACiAJLUkkKHNyY2RpcikvV2ViQ29yZS94bWwg
XAogCS1JJChzcmNkaXIpL1dlYkNvcmUvaHRtbCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5k
aW5ncy9qcyBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKIAktSSQoc3Jj
ZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzIFwKIAktSSQoc3JjZGlyKS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYgXApAQCAtNTUsNyArNTgsNyBAQAogCVdlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRUYXJnZXRCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29s
b3IubHV0LmggXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRh
YmxlLmNwcAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxl
LmNwcCAKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9DU1NH
cmFtbWFyLmNwcCBcCkBAIC0zNTgsNyArMzYxLDU4NyBAQAogCURlcml2ZWRTb3VyY2VzL1VzZXJB
Z2VudFN0eWxlU2hlZXRzLmggXAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRz
RGF0YS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNwcCBcCi0JRGVyaXZlZFNvdXJj
ZXMvWE1MTmFtZXMuaAorCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUF0dHIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQmFySW5mby5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFTZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1
bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlhUnVs
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2
ZVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHls
ZURlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlRGVjbGFyYXRp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxl
U2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ1NTVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFs
dWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1Zhcmlh
Ymxlc0RlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dy
YWRpZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNh
bnZhc1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJh
eS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ2hhcmFjdGVyRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
aGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db21t
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29uc29sZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ291bnRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db3Vu
dGVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bURPTUltcGxlbWVudGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUltcGxlbWVu
dGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJzZXIuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01TZWxlY3Rp
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2luZG93
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRGcmFnbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Eb2N1bWVudFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1l
bnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0
eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlSZWZlcmVuY2UuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmls
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21GaWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlTGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEFuY2hvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcHBsZXRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRm9udEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTERMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRExpc3RFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERp
dkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEb2N1bWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNl
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZv
cm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJh
bWVTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNldEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhl
YWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1sRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEltYWdlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MSXNJbmRleEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5kZXhF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGlua0VsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TWFycXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcnF1ZWVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MTWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1ldGFFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9M
aXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TE9wdEdyb3VwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0R3JvdXBF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFncmFw
aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFByZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFByZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNj
cmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNjcmlwdEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MU3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRh
YmxlQ29sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxl
Um93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTFRpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGl0bGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVUxpc3RFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSGlzdG9yeS5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0
YS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUtleWJvYXJkRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21N
ZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVzc2FnZUV2ZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21N
aW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJheS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21N
b3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2RlTWFwLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hdmlnYXRvci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlRmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRvci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Ob3RhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob3Rh
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21PdmVyZmxvd0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVn
aW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21QbHVnaW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9ncmVzc0V2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU2NyZWVuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
dHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21UcmVlV2Fsa2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tVUlFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0
QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21X
aGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdoZWVsRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21YTUxTZXJpYWxpemVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTFNlcmlhbGl6
ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQcm9jZXNzb3IuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tWFNMVFByb2Nlc3Nvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUF0dHIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUF0dHIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21CYXJJbmZvLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ0RBVEFTZWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DREFUQVNlY3Rpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NDaGFyc2V0UnVsZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNT
U0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0ltcG9ydFJ1
bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NNZWRpYVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUNTU01lZGlhUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQYWdl
UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NSdWxl
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTUnVsZUxpc3QuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NT
dHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZVNoZWV0
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tQ1NTVmFsdWVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYWx1
ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNEZWNsYXJh
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFyaWFibGVzRGVjbGFy
YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNSdWxlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzR3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUNhbnZhc0dyYWRpZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tQ2FudmFzUGF0dGVybi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2Fu
dmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1BpeGVsQXJy
YXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1BpeGVsQXJyYXkuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNoYXJhY3RlckRhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21DbGlwYm9hcmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNs
aXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvbW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvbW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db25zb2xl
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ291bnRlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bURPTUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTUNv
cmVFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01JbXBsZW1lbnRh
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NSW1wbGVtZW50YXRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01QYXJzZXIuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbURPTVNlbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NU2Vs
ZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NV2luZG93LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01XaW5kb3cuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21Eb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9j
dW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudEZyYWdtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudEZyYWdtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21Eb2N1bWVudFR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRW50aXR5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbnRpdHlS
ZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUVudGl0eVJlZmVyZW5j
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUV2
ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FdmVudEV4Y2Vw
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUZpbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21G
aWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRmlsZUxpc3QuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFuY2hvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MQXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTEFwcGxldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MQXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxB
cmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCUkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxCbG9ja3F1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxC
b2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJvZHlFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJ1dHRvbkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENhbnZhc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxDYW52YXNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERM
aXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERMaXN0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxG
b250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGb3JtRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZvcm1FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
SFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhlYWRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVhZEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVhZGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTEh0bWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTElGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJ
RnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEltYWdlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEltYWdlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MSXNJbmRleEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxMSUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGFiZWxFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGFiZWxFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExlZ2VuZEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTExpbmtFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1h
cEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWFycXVlZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZW51RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1lbnVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MTW9kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1vZEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT0xpc3RFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT0xpc3RFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxPcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MT3B0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRp
b25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFncmFw
aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxQYXJhZ3JhcGhF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFtRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFtRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU2Ny
aXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNjcmlwdEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU2VsZWN0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxUYWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJs
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVSb3dFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVSb3dFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSGlz
dG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSGlzdG9yeS5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSW1hZ2VEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSmF2YVNj
cmlwdENhbGxGcmFtZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSmF2YVNjcmlw
dENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUtleWJvYXJkRXZlbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUtleWJvYXJkRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZWRpYUxp
c3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbU1lc3NhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tTWVzc2FnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
TWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1pbWVUeXBlLmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWltZVR5cGVBcnJheS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1vdXNl
RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NdXRhdGlvbkV2ZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NdXRhdGlvbkV2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tTmFtZWROb2RlTWFwLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21OYXZp
Z2F0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5hdmlnYXRvci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbU5vZGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlRmlsdGVyLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2Rl
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUxpc3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob3RhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tTm90YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21PdmVyZmxv
d0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21PdmVyZmxvd0V2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21QbHVn
aW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1Z2luQXJyYXkuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVByb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2UuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SYW5nZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SZWN0LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU2NyZWVuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21TY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHlsZVNo
ZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHlsZVNoZWV0LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3R5bGVTaGVldExpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGV4dC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRleHRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tVGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVHJl
ZVdhbGtlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVHJlZVdhbGtlci5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJL
aXRBbmltYXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0
QW5pbWF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdlYktpdFRyYW5z
aXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdoZWVsRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tWE1MSHR0cFJlcXVlc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Y
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Y
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhN
TFNlcmlhbGl6ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTFNlcmlhbGl6
ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YU0xUUHJvY2Vzc29yLmggIFwKKwlXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwKKwlXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAKIAogSURMX0JJ
TkRJTkdTICs9ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgXApAQCAtNzAxLDYgKzEyODQs
MTYgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIFwKIAlXZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9TdHJpbmdTb3VyY2VQcm92aWRlci5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJp
bmRpbmcuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR2RvbURPTU9iamVjdC5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdk
b21ET01PYmplY3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01P
YmplY3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3Bw
IFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIFwKKwlXZWJD
b3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwIFwKKwlXZWJD
b3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCBcCiAJV2ViQ29y
ZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwIFwKIAlXZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5o
IFwKIAlXZWJDb3JlL2JyaWRnZS9jL2NfY2xhc3MuY3BwIFwKQEAgLTIwMDgsOSArMjYwMSwxMiBA
QAogIyAtLS0tCiBpZiBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TCiBGRUFUVVJFX0RF
RklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKK0ZF
QVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQog
CiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAotCURlcml2ZWRTb3VyY2VzL0pTRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAKKwlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NQXBwbGljYXRpb25DYWNoZS5jcHAKIAogSURMX0JJTkRJ
TkdTICs9IFwKIAlXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlk
bApAQCAtMjA1Miw2ICsyNjQ4LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX0RBVEFCQVNFCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfREFUQUJBU0U9MQorRkVBVFVSRV9ERUZJ
TkVTX0dET00gKz0gRU5BQkxFX0RBVEFCQVNFPTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9KU0RhdGFiYXNlLmNwcCBcCkBAIC0yMDYzLDcgKzI2NjAsMjcg
QEAKIAlEZXJpdmVkU291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxU
cmFuc2FjdGlvbi5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaAorCURl
cml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURh
dGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFiYXNlLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TUUxFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxFcnJvci5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0
Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TUUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURh
dGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21EYXRhYmFzZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTEVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFJl
c3VsdFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21TUUxUcmFuc2FjdGlvbi5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2Vi
Q29yZS9zdG9yYWdlL0RhdGFiYXNlLmlkbCBcCkBAIC0yMTM4LDEyICsyNzU1LDIxIEBACiAjIC0t
LS0KIGlmIEVOQUJMRV9ET01fU1RPUkFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9ET01f
U1RPUkFHRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
SlNTdG9yYWdlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmggXAogCURlcml2ZWRT
b3VyY2VzL0pTU3RvcmFnZUV2ZW50LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZl
bnQuaAorCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2UuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
dG9yYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21TdG9yYWdlRXZlbnQuaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlLmlkbCBcCkBAIC0yMjAzLDYgKzI4MjksNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfVklE
RU8KIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9WSURFTz0xCitGRUFUVVJF
X0RFRklORVNfR0RPTSArPSBFTkFCTEVfVklERU89MQogCiBIVE1MX0ZFQVRVUkVTICs9IEVOQUJM
RV9WSURFTz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1ZJREVPPTEKQEAgLTIyMjUs
NyArMjg1MiwzNSBAQAogCURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFj
ay5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTVm9pZENhbGxiYWNrLmgKKwlEZXJpdmVkU291cmNl
cy9KU1ZvaWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEF1ZGlvRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXVkaW9FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTb3VyY2VFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhRXJyb3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tVGltZVJhbmdlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21UaW1lUmFuZ2VzLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tVm9pZENhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEF1
ZGlvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEF1ZGlvRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZWRpYUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNvdXJjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVk
aWFFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVkaWFFcnJvci5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVRpbWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVZvaWRDYWxs
YmFjay5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1l
bnQuaWRsIFwKQEAgLTIyNjksNiArMjkyNCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9YUEFUSAog
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hQQVRIPTEKK0ZFQVRVUkVfREVG
SU5FU19HRE9NICs9IEVOQUJMRV9YUEFUSD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFC
TEVfWFBBVEg9MQogCkBAIC0yMjg0LDcgKzI5NDAsMjcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1hQ
YXRoUmVzdWx0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0aFJlc3VsdC5oIFwKIAlEZXJp
dmVkU291cmNlcy9YUGF0aEdyYW1tYXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1t
YXIuaAorCURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tWFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0
b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0
aEV4cHJlc3Npb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWFBhdGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJl
c3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3VsdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV4
Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXhwcmVzc2lvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFeHByZXNzaW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21YUGF0aFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBh
dGhSZXN1bHQuaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUveG1sL1hQYXRoRXZhbHVh
dG9yLmlkbCBcCkBAIC0yMzQ5LDYgKzMwMjUsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfWFNMVAog
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hTTFQ9MQorRkVBVFVSRV9ERUZJ
TkVTX0dET00gKz0gRU5BQkxFX1hTTFQ9MQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X1hTTFQ9MQogCkBAIC0yMzcyLDYgKzMwNDksNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfU1ZHCiBG
RUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHPTEKKyNGRUFUVVJFX0RFRklO
RVNfR0RPTSArPSBFTkFCTEVfU1ZHPTEgLSBiaWcgVE9ETyEgOikKIAogV0VCQ09SRV9DU1NfUFJP
UEVSVFlfTkFNRVMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbiAKIFdF
QkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTICs9ICQoV2ViQ29yZSkvY3NzL1NWR0NTU1ZhbHVlS2V5
d29yZHMuaW4KQEAgLTI2NDksNiArMzMyNywyNzMgQEAKIAlEZXJpdmVkU291cmNlcy9TVkdOYW1l
cy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwCiAKK25vdC15ZXQ6CisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbHRHbHlwaEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmdsZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmltYXRlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdB
bmltYXRlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkQW5nbGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1h
dGVkQm9vbGVhbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEVudW1lcmF0aW9uLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEludGVnZXIuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdB
bmltYXRlZExlbmd0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZExlbmd0
aC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQW5pbWF0ZWROdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
QW5pbWF0ZWROdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTnVtYmVy
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUmVjdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmltYXRlZFJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1h
dGVkU3RyaW5nLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkU3RyaW5nLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NpcmNsZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ2lyY2xlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0NsaXBQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29s
b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0N1cnNvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZmluaXRp
b25TcmNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZmluaXRpb25TcmNF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEZWZzRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdEZWZzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVzY0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0RvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVt
ZW50SW5zdGFuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxp
c3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0VsbGlwc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFeGNlcHRp
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRXhjZXB0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdGRUJsZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGRUJsZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb21wb3NpdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
RURpc3RhbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaXN0
YW50TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZsb29kRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jQUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHRkVGdW5jQUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0JF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0JFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVG
dW5jUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jUkVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRkVPZmZzZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFT2Zmc2V0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVBvaW50TGlnaHRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZF
VGlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVUaWxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdGaWx0ZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Zp
bHRlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGb250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9u
dEZhY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZUZvcm1hdEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZU5hbWVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGb250RmFjZVNyY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRG
YWNlVXJpRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZVVyaUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR2x5cGhFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dy
YWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHSW1hZ2VFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xlbmd0aC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHTWFya2VyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXJrZXJF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdNYXNrRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHTWF0cml4LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHTWV0YWRhdGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR01ldGFkYXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNaXNzaW5nR2x5cGhF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXIuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXJM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR051bWJlckxpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1BhaW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhaW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0
aFNlZy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1BhdGhTZWdBcmNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdBcmNSZWwu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0FyY1JlbC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnQ2xvc2VQYXRoLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2Vn
Q3VydmV0b0N1YmljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Jl
bC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFi
cy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
QWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
UmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9v
dGhSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
QWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
QWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9v
dGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNTbW9vdGhBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2Vn
TGluZXRvQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9BYnMu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRo
U2VnTGluZXRvVmVydGljYWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGlz
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnTW92ZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2Vn
TW92ZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdHRlcm5FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1BhdHRlcm5FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQb2ludC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHUG9pbnRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Bv
aW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWdvbkVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWdvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQ
b2x5bGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVuZGVy
aW5nSW50ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JlbmRlcmluZ0ludGVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdTVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTY3JpcHRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RvcEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RvcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1N0cmluZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3Ry
aW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3R5bGVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0eWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTd2l0Y2hF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTeW1ib2xFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N5bWJvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1RSZWZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RSZWZFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHVFNwYW5FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Rl
eHRQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdUcmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVHJhbnNmb3JtLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VuaXRU
eXBlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdVbml0VHlwZXMuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1VzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
VXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVmlld0VsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1pvb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdab29tRXZlbnQu
aCAKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N2Zy9FbGVtZW50VGltZUNvbnRyb2wu
aWRsIFwKIAlXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5pZGwgXApAQCAtMzIyOCwzNiArNDE3Myw0
MiBAQAogIyBTVkcgRmVhdHVyZXMKIGlmIEVOQUJMRV9TVkdfVVNFCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX1VTRT0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0g
RU5BQkxFX1NWR19VU0U9MSAjIGJpZyBUT0RPIQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdf
VVNFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX1VTRT0xCiBlbmRpZgogCiBp
ZiBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBF
TkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEgCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVD0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVD0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZPTlRTCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSAr
PSBFTkFCTEVfU1ZHX0ZPTlRTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEK
IHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZPTlRTPTEKIGVuZGlmCiAKIGlmIEVO
QUJMRV9TVkdfRklMVEVSUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NW
R19GSUxURVJTPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9
MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCiB3ZWJjb3JlX2NwcGZsYWdz
ICs9IC1ERU5BQkxFX1NWR19GSUxURVJTPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQVNfSU1B
R0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQor
I0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQogU1ZHX0ZFQVRV
UkVTICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJM
RV9TVkdfQVNfSU1BR0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19BTklNQVRJT04KIEZFQVRV
UkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKKyNGRUFUVVJF
X0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBTVkdfRkVBVFVSRVMgKz0g
RU5BQkxFX1NWR19BTklNQVRJT049MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdf
QU5JTUFUSU9OPTEKIGVuZGlmCkBAIC0zMjY1LDEzICs0MjE2LDE0IEBACiAjIFNWRyB0YWcgYW5k
IGF0dHJpYnV0ZSBuYW1lcyAobmVlZCB0byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4cGVy
aW1lbnRhbCBmZWF0dXJlcyBhcmUgZW5hYmxlZCkKIERlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNw
cDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOwogRGVyaXZlZFNvdXJjZXMv
SlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50
RmFjdG9yeS5jcHAKK0Rlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3Rvcnku
Y3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKIAogaWYgU1ZHX0ZMQUdT
CiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9tL21h
a2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdh
dHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdz
ICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRy
cy5pbiAtLWV4dHJhRGVmaW5lcyAiJChTVkdfRkVBVFVSRVMpIiAtLW91dHB1dERpciAiJChHRU5T
T1VSQ0VTKSIKKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFn
cyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0
cnMuaW4gLS1leHRyYURlZmluZXMgIiQoU1ZHX0ZFQVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VO
U09VUkNFUykiIAogZWxzZQogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAk
KFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChX
ZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJD
b3JlKS9zdmcvc3ZnYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJM
KSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcv
c3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluIC0tb3V0cHV0RGly
ICIkKEdFTlNPVVJDRVMpIiAKIAogZW5kaWYgIyBTVkdfRkxBR1MKIApAQCAtMzI4MCw3ICs0MjMy
LDcgQEAKIERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMvWExpbmtO
YW1lcy5jcHA7CiAKIERlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwIDogJChXZWJDb3JlKS9k
b20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy94bGlua2F0dHJzLmluCi0JJChQRVJMKSAt
SSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3hs
aW5rYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2Vi
Q29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0
cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogCiBlbmRpZiAjIEVORCBFTkFCTEVf
U1ZHCiAKQEAgLTMzNjEsMTYgKzQzMTMsMTYgQEAKIAogaWYgSFRNTF9GTEFHUwogRGVyaXZlZFNv
dXJjZXMvSFRNTE5hbWVzLmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNv
cmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFt
ZXMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAk
KFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbiAtLWV4dHJhRGVmaW5lcyAiJChIVE1MX0ZFQVRVUkVTKSIgLS1v
dXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJz
ICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1leHRyYURlZmluZXMgIiQo
SFRNTF9GRUFUVVJFUykiIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIGVsc2UKIERlcml2
ZWRTb3VyY2VzL0hUTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChX
ZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAkKFdlYkNvcmUpL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRh
Z3MgJChXZWJDb3JlKS9odG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQ
RVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9o
dG1sL0hUTUxUYWdOYW1lcy5pbiAtLWF0dHJzICQoV2ViQ29yZSkvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogZW5kaWYgIyBIVE1MX0ZMQUdT
CiAKIERlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmg6IERlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNw
cDsKIAogRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25h
bWVzLnBsICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmluIC0t
b3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMgJDwgLS1hdHRycyAkKFdlYkNvcmUpL3htbC94bWxhdHRycy5pbiAtLW91dHB1dERp
ciAiJChHRU5TT1VSQ0VTKSIgCiAKIHZwYXRoICUuaWRsID0gXAogICAgICQoV2ViQ29yZSkgXApA
QCAtMzM4Niw2ICs0MzM4LDE1IEBACiAgICAgJChXZWJDb3JlKS94bWwgXAogICAgICQoV2ViQ29y
ZSkvcGx1Z2lucwogCitEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbSUuaDogRGVyaXZlZFNvdXJj
ZXMvR2RvbSUuaDsKKworRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb20lLmNwcDogRGVyaXZlZFNv
dXJjZXMvR2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9HZG9tJS5oOiBEZXJpdmVkU291cmNl
cy9HZG9tJS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL0dkb20lLmNwcDogJS5pZGwgJChTQ1JJUFRT
X0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3QucG0KKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1ZGUgJChXZWJDb3Jl
KS9kb20gLS1pbmNsdWRlICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9jc3Mg
LS1pbmNsdWRlICQoV2ViQ29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJDb3JlKS94bWwgLS1pbmNs
dWRlICQoV2ViQ29yZSkvc3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmluZXMg
IiQoRkVBVFVSRV9ERUZJTkVTX0dET00pIiAtLWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKIERlcml2
ZWRTb3VyY2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiBEZXJpdmVkU291cmNl
cy9KUyUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM0MDEsNiArNDM2Miw3IEBACiAJV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3Nz
L3F1aXJrcy5jc3MgXAogCVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBcCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVu
dFRhcmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVk
ZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJn
ZXROb2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNp
bmNsdWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlz
IG9wdGlvbmFsICovCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIkdkb21F
dmVudC5oIgorZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsK
Kworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCisK
K1dlYkNvcmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9t
RXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0KQoreworICAgIEdET01FdmVudFRhcmdldE5vZGUgKnJl
czsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NRXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9kb21f
b2JqZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihyZXMtPmltcGwoKSk7Cit9CisKKwor
ZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSwgZ2RvbV9l
dmVudF90YXJnZXRfbm9kZSwgR0RPTV9UWVBFX05PREUpOworCisvKgorc3RydWN0IF9HZG9tRXZl
bnRUYXJnZXROb2RlUHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2Rl
ICppdGVtOworfTsgIAorKi8KKworI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9Q
UklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBF
X0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkpCisKKy8qCit2
b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5v
ZGUgKnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0pCit7CisgICAgR2Rv
bUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dF
VF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPml0ZW0gPSBpdGVtOworfQorKi8KKworc3Rh
dGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3Qp
Cit7CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0ID0gR0RPTV9FVkVOVF9UQVJH
RVRfTk9ERShvYmplY3QpOworICAgIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0g
cmVxdWVzdC0+cHJpdjsqLworICAgIAorICAgIEdfT0JKRUNUX0NMQVNTKGdkb21fZXZlbnRfdGFy
Z2V0X25vZGVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZv
aWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9jbGFzc19pbml0KEdkb21FdmVudFRhcmdldE5vZGVD
bGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0g
PSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFT
UyhyZXF1ZXN0Q2xhc3MpLAorICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFT
VCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgIDAsCisgICAgICAgIE5VTEwsCisgICAgICAg
IE5VTEwsCisgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAg
ICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9P
TEVBTik7CisKKyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdk
b21fZXZlbnRfdGFyZ2V0X25vZGVfZmluYWxpemU7CisKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRf
cHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkp
OyovCit9CisKK3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdChHZG9tRXZl
bnRUYXJnZXROb2RlKiByZXF1ZXN0KQoreworICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZh
dGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOwor
ICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OyovCit9ICAgCisKK30gLyogZXh0ZXJuICJDIiAqLwor
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRh
cmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRl
R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xA
bGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNv
bT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9f
R0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXRO
b2RlX0hfX19QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUdkb21Ob2RlLmgiCitjbGFzcyBXZWJDb3JlOjpOb2RlOworCit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOworCitXRUJLSVRfQVBJIFdlYkNv
cmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZlbnRU
YXJnZXROb2RlICpyZXF1ZXN0KTsKKworI2VuZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9r
ZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5j
bHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAi
QXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAi
R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworY2xhc3MgR1N0cmluZ0NvbnZlcnQg
eworICAgIHB1YmxpYzoKKyAgICBjb25zdCBnY2hhciAqbV9zdHI7CisgICAgR1N0cmluZ0NvbnZl
cnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy51dGY4KCku
ZGF0YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25z
dCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorfTsK
KworZXh0ZXJuICJDIiB7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZl
cnQoc3RyKS5tX3N0cikKKwordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50
X3RhcmdldF9ub2RlIChHZG9tRXZlbnRUYXJnZXROb2RlICp0aGl6KQoreworICAgIGdfcmV0dXJu
X2lmX2ZhaWwgKHRoaXopOworICAgIC8qCisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICog
aXRlbSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgV2Vi
Q29yZTo6U3RyaW5nIF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnID0gV2ViQ29yZTo6U3Ry
aW5nKGV2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RXZlbnRUYXJn
ZXROb2RlKF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICAqLworfQorCit9IC8q
IGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9t
RE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0
ZUdkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiTm9kZS5o
IgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKworZXh0ZXJuICJDIiB7CisKK0dfREVG
SU5FX1RZUEUoR2RvbURPTU9iamVjdCwgZ2RvbV9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKTsK
Kworc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSB7CisgICAgIEdET01PYmplY3QgKm1fbm9k
ZTsKK307ICAKKworI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUob2JqKSAoR19U
WVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2Rv
bURPTU9iamVjdFByaXZhdGUpKQorCit2b2lkCitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUo
R2RvbURPTU9iamVjdCAqcmVxdWVzdCwgR0RPTU9iamVjdCAqIGl0ZW0pCit7CisgICAgR2RvbURP
TU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVz
dCk7CisgICAgcHJpdi0+bV9ub2RlID0gaXRlbTsKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgp
LT5yZWYoKTsqLworfQorCitHRE9NT2JqZWN0ICoKK2dkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0
ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0KQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBw
cml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJldHVybiBw
cml2LT5tX25vZGU7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9maW5hbGl6ZShH
T2JqZWN0KiBvYmplY3QpCit7CisgICAgR2RvbURPTU9iamVjdCogcmVxdWVzdCA9IEdET01fRE9N
X09CSkVDVChvYmplY3QpOworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gcmVxdWVz
dC0+cHJpdjsKKyAgICAKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5kZXJlZigpOyovCisg
ICAgZGVsZXRlIHByaXYtPm1fbm9kZTsgLyogY2FsbHMgbV9pbXBsLT5kZXJlZigpICovCisKKyAg
ICBHX09CSkVDVF9DTEFTUyhnZG9tX2RvbV9vYmplY3RfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUo
b2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQoR2Rv
bURPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVx
dWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2RvbV9vYmplY3RfZmluYWxpemU7CisgICAgCisg
ICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21ET01P
YmplY3RQcml2YXRlKSk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9pbml0KEdk
b21ET01PYmplY3QqIHJlcXVlc3QpCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYg
PSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJp
diA9IHByaXY7Cit9ICAgCisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisg
Ki8KKworI2lmbmRlZiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fCisjZGVmaW5lIF9fR2RvbUV2
ZW50VGFyZ2V0Tm9kZV9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOworCisj
ZGVmaW5lIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50
X3RhcmdldF9ub2RlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREUo
b2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9U
WVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlKSkKKyNkZWZpbmUgR0RP
TV9FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19D
QVNUKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdl
dE5vZGVDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RB
UkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFS
R0VUX05PREUpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9DTEFTUyhvYmop
ICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9FVkVOVF9UQVJH
RVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21FdmVudFRhcmdldE5vZGVQcml2YXRlIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlOworCisj
aW5jbHVkZSAiR2RvbU5vZGUuaCIKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAg
ICBHZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJp
dmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAg
ICBHZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dk
b21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQK
K2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50
VGFyZ2V0Tm9kZSAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfX0dkb21FdmVu
dFRhcmdldE5vZGVfSF9fICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9N
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9i
amVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9i
amVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiR2Rv
bURPTU9iamVjdC5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisKK2V4dGVybiAiQyIgewor
Cit2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5pdF9kb21fb2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0
aGl6KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworCS8qCisgICAgV2ViQ29yZTo6
RE9NT2JqZWN0ICogaXRlbSA9IGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZSh0aGl6KTsKKyAg
ICBXZWJDb3JlOjpTdHJpbmcgX2dfZG9tX29iamVjdF90eXBlX2FyZyA9IFdlYkNvcmU6OlN0cmlu
Zyhkb21fb2JqZWN0X3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RE9NT2JqZWN0KF9nX2RvbV9v
YmplY3RfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTURPTU9iamVjdF9IX19fUFJJVl8KKyNk
ZWZpbmUgX19HRE9NRE9NT2JqZWN0X0hfX19QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0Lmgi
CisjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorR19CRUdJTl9ERUNMUworCitjbGFzcyBHRE9N
T2JqZWN0OworV0VCS0lUX0FQSSBHRE9NT2JqZWN0KgorZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2
YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9t
X29iamVjdF9zZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0KiBp
dGVtKTsKKworR19FTkRfREVDTFMKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlz
aW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4MiBAQAorLyoKKyAqIFRISVMgRklM
RSBJUyBERVJJVkVEIEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFURUQgRklMRS4KKyAqICBr
ZWVwaW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcK
KyAqICBhIG1ha2VfbmFtZXMucGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUK
KyAqICBnZW5lcmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmgg
YXMgaW5wdXQuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24g
TGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJHZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdET01I
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxBbmNob3JFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmxv
Y2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJvZHlFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJ1dHRvbkVsZW1l
bnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlQ29sRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRGl2RWxlbWVudC5oIgor
I2luY2x1ZGUgIkdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxFbWJl
ZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZvcm1FbGVtZW50
LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRN
TEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxIUkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSXNJ
bmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTElFbGVtZW50
LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1M
TWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJHZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxNZXRhRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFBh
cmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFBhcmFtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MUXVvdGVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5o
IgorI2luY2x1ZGUgIkdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhU
TUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgor
I2luY2x1ZGUgIkdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQXBw
bGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEFyZWFFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQlJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTW9kRWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRmllbGRTZXRF
bGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEhlYWRpbmdF
bGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSGVhZEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTElG
cmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJbWFnZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTExl
Z2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxMSUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE1lbnVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1M
T3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0aW9uRWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MU2NyaXB0RWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFi
bGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRleHRBcmVhRWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRpdGxlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CisKKyNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcHBsZXRF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJh
c2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGlyZWN0b3J5RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERMaXN0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRmllbGRTZXRF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSFJFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxM
YWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9MaXN0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0
aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFBhcmFtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU3R5bGVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVUxp
c3RFbGVtZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK3R5cGVkZWYgR0RPTU5vZGUqICgqQ3Jl
YXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24pKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsK
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBbmNob3JXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFuY2hvckVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTEFuY2hvckVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQXBwbGV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxBcHBsZXRFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxBcHBsZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFyZWFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFyZWFFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVCYXNlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNlRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQmFzZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlQmFzZUZvbnRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VGb250RWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQmFzZUZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJsb2NrcXVvdGVFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxCbG9ja3F1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVCb2R5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCb2R5RWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MQm9keUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlQlJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQlJF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJ1
dHRvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MQnV0dG9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQnV0dG9uRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVDYW52
YXNXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTENhbnZhc0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVD
YXB0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxU
YWJsZUNhcHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNvbEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTFRhYmxlQ29sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVNb2RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1vZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TE1vZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlRGlyZWN0b3J5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXJlY3RvcnlFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxEaXJlY3RvcnlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZURpdldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRGl2RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGl2
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVE
TGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MRExpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxETGlzdEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRW1iZWRX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTEVtYmVkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZpZWxkU2V0V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxGaWVsZFNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZpZWxkU2V0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb250V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxGb250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9udEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRm9ybVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MRm9ybUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFt
ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGcmFtZVNldFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRnJhbWVT
ZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZVNldEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZGluZ1dyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVh
ZGluZ0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRpbmdFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhlYWRXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhlYWRF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSFJFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxIUkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlSHRtbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSHRtbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TEh0bWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZUlGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MSUZyYW1lRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSUZy
YW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVJbWFnZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MSW1hZ2VFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbWFnZUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSW5w
dXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTElucHV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlzSW5kZXhX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTElzSW5kZXhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJc0luZGV4RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMYWJlbFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MTGFiZWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGVnZW5kV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxMZWdlbmRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMZWdlbmRFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxJV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxMSUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExJRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMaW5rV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxMaW5rRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlTWFwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNYXBFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxNYXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcnF1ZWVFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxNYXJxdWVlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVNZW51V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNZW51RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
TWVudUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlTWV0YVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MTWV0YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9iamVj
dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MT2JqZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPTGlzdFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MT0xpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPTGlzdEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT3B0R3JvdXBXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTE9wdEdyb3VwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9wdGlvbldy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MT3B0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQYXJhZ3JhcGhX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFncmFwaEVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUGFy
YW1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTFBhcmFtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYW1FbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVByZVdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MUHJlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUHJlRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVRdW90ZVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
UXVvdGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxRdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2NyaXB0V3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTY3Jp
cHRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTY3JpcHRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNlbGVjdFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU2VsZWN0
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTdHlsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU3R5bGVFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxTdHlsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MVGFibGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVTZWN0aW9u
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGV4dEFyZWFXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTFRleHRBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRpdGxlV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxUaXRsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRpdGxlRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVJvd1dyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MVGFibGVSb3dFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVJvd0VsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVUxpc3RXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTFVMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVUxpc3RFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgc3RhdGljIEhhc2hNYXA8V2ViQ29y
ZTo6QXRvbWljU3RyaW5nSW1wbCosIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uPiBt
YXA7CisgICAgaWYgKG1hcC5pc0VtcHR5KCkpIHsKKyAgICAgICBtYXAuc2V0KGFUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVBbmNob3JXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFwcGxl
dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFwcGxldFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoYXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFyZWFXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGJhc2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChiYXNlZm9udFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUJhc2VGb250V3JhcHBlcik7CisgICAgICAgbWFwLnNldChibG9ja3F1b3RlVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYm9k
eVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJvZHlXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGJyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQlJXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJ1dHRvbldyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoY2FudmFzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQ2Fu
dmFzV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYXB0aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
ZGVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChkaXJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGRpdlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpdldyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoZGxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVETGlz
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZW1iZWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVFbWJlZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZmllbGRzZXRUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVGaWVsZFNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZm9udFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGZvcm1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb3JtV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1lV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChmcmFtZXNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZy
YW1lU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChoMVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhlYWRUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVIZWFkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoclRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhSV3JhcHBlcik7CisgICAgICAgbWFwLnNldChodG1sVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSHRtbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aWZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSUZyYW1lV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChpbWdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoaW5wdXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbnB1
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUlzSW5kZXhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxhYmVsVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlTGFiZWxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxlZ2VuZFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxlZ2VuZFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQobGlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMSVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQobGlua1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxpbmtXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KG1hcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1hcFdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQobWFycXVlZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1h
cnF1ZWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1lbnVUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVNZW51V3JhcHBlcik7CisgICAgICAgbWFwLnNldChtZXRhVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlTWV0YVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob2JqZWN0VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT2JqZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChv
bFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9MaXN0V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChvcHRncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9wdEdyb3VwV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVP
cHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVQYXJhZ3JhcGhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBhcmFtVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlUGFyYW1XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHByZVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVF1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChzY3JpcHRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTY3JpcHRXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KHNlbGVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoc3R5bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVTdHlsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGFibGVUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVUYWJsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGJvZHlUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHRkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldCh0ZXh0YXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRleHRBcmVh
V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aXRsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVRpdGxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0clRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVRhYmxlUm93V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh1bFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVVMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xncm91
cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChoMlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGgzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoaDRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVI
ZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg2VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1hZ2VUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aW5zVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChrZXlnZW5UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGxpc3RpbmdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRmb290VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGhlYWRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHhtcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOwor
ICAgIH0KKyAgICBwcmludGYoImNyZWF0ZUdET01IVE1MV3JhcHBlcjogJXNcbiIsIGVsZW1lbnQt
PmxvY2FsTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIENyZWF0ZUhUTUxFbGVt
ZW50V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbiA9IG1hcC5nZXQoZWxlbWVu
dC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICBpZiAoY3JlYXRlV3JhcHBlckZ1bmN0aW9uKQor
ICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlckZ1bmN0aW9uKGVsZW1lbnQpOworICAgIHJldHVy
biBuZXcgR0RPTUhUTUxFbGVtZW50KGVsZW1lbnQuZ2V0KCkpOworfQorCit9CisKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRH
ZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19H
RE9NRXZlbnRUYXJnZXROb2RlX0hfX19JTlRfCisjZGVmaW5lIF9fR0RPTUV2ZW50VGFyZ2V0Tm9k
ZV9IX19fSU5UXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21Ob2RlLmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01FdmVudFRhcmdldE5vZGUg
OiBwdWJsaWMgR0RPTU5vZGUgeworCitwdWJsaWM6CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZShQ
YXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGltcGwpIDogR0RPTU5vZGUoaW1wbCkge30KKyAgICBp
bnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERTsg
fQorfTsKKworCitHX0VORF9ERUNMUworI2VuZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
RE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAxIEBACisvKgorICogIENv
cHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAg
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8
c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAq
LworCisvLyBnY2MgMy54IGNhbid0IGhhbmRsZSBpbmNsdWRpbmcgdGhlIEhhc2hNYXAgcG9pbnRl
ciBzcGVjaWFsaXphdGlvbiBpbiB0aGlzIGZpbGUKKyNpZiBkZWZpbmVkIF9fR05VQ19fICYmICFk
ZWZpbmVkIF9fR0xJQkNYWF9fIC8vIGxlc3MgdGhhbiBnY2MgMy40CisjZGVmaW5lIEhBU0hfTUFQ
X1BUUl9TUEVDX1dPUktBUk9VTkQgMQorI2VuZGlmCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJH
ZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKyNpbmNs
dWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiR2RvbUNTU1N0
eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1N0eWxlU2hlZXQuaCIKKwor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1M
SW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiR2RvbU5v
ZGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTm9k
ZS5oIgorCisjaW5jbHVkZSAiQXR0ci5oIgorI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgorI2lu
Y2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ29tbWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50
VHlwZS5oIgorI2luY2x1ZGUgIkVudGl0eS5oIgorI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5jZS5o
IgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oIgorI2luY2x1ZGUgIkdkb21BdHRyLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21BdHRy
LmgiCisjaW5jbHVkZSAiR2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJHZG9tVGV4dC5o
IgorI2luY2x1ZGUgIkdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudC5o
IgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudEZyYWdt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkdkb21FbnRp
dHkuaCIKKyNpbmNsdWRlICJHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1ZUxp
c3QuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJHZG9t
RW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAi
R2RvbUhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
aCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlICJHZG9t
Q1NTUnVsZS5oIgorI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9u
dEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkNTU01l
ZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVS
dWxlLmgiCisjaW5jbHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1ND
aGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRl
ICJHZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NNZWRpYVJ1bGUuaCIKKyNp
bmNsdWRlICJHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVSdWxlLmgi
CisjaW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRXZlbnQuaCIKKworI2luY2x1ZGUgIkNsaXBib2Fy
ZC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUNsaXBib2FyZC5oIgorI2lu
Y2x1ZGUgIkdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU1lc3NhZ2VFdmVudC5o
IgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU11dGF0aW9uRXZl
bnQuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9n
cmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVRleHRFdmVudC5oIgorI2luY2x1ZGUgIkdkb21V
SUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVk
ZSAiR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdkb21XaGVlbEV2ZW50
LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1
ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRl
ICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIk92
ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiVGV4
dEV2ZW50LmgiCisjaW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlv
bkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAi
V2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgor
CisjaW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJBdG9taWNTdHJp
bmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25z
Q29sbGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQWxsQ29s
bGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiR2RvbUhUTUxBbGxDb2xsZWN0aW9uLmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorLy8gZXJyLi4uICNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisvLyBlcnIuLi4gI2luY2x1
ZGUgIkdkb21OYW1lZE5vZGVzQ29sbGVjdGlvbi5oIgorCisjaWYgRU5BQkxFKERPTV9TVE9SQUdF
KQorI2luY2x1ZGUgIkdkb21TdG9yYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJTdG9yYWdlRXZlbnQu
aCIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNpZiAwIC8qIFRPRE8gKi8KKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIkdkb21TVkdab29tRXZl
bnQuaCIKKyNpbmNsdWRlICJTVkdab29tRXZlbnQuaCIKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBF
TkFCTEUoU1ZHKQorI2lmIDAgLyogWFhYIFRPRE8gKi8KKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50V3Jh
cHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRpZgor
CisjaWYgMAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiR2RvbVNWR0V4Y2VwdGlvbi5oIgor
I2luY2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NSdWxl
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUNvbW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUVudGl0eS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21D
U1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRW50aXR5UmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVRleHQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0lt
cG9ydFJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU01lZGlhUnVsZS5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTVmFyaWFibGVz
UnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21NdXRhdGlvbkV2ZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21UZXh0
RXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVdo
ZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tU3RvcmFnZUV2ZW50LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9p
bnRlcj4gRE9NT2JqZWN0TWFwOwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gR2Rv
bVdyYXBwZXJDYWNoZTsgLyogQVJHISBVTkZBSVIhIEpTV3JhcHBlckNhY2hlIGlzIGluIERvY3Vt
ZW50ISEgKi8KKworLy8gRm9yIGRlYnVnZ2luZywga2VlcCBhIHNldCBvZiB3cmFwcGVycyBjdXJy
ZW50bHkgcmVnaXN0ZXJlZCwgYW5kIGNoZWNrIHRoYXQKKy8vIGFsbCBhcmUgdW5yZWdpc3RlcmVk
IGJlZm9yZSB0aGV5IGFyZSBkZXN0cm95ZWQuIFRoaXMgaGFzIGhlbHBlZCB1cyBmaXggYXQKKy8v
IGxlYXN0IG9uZSBidWcuCisKKyNpZiAwCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmpl
Y3QqIHdyYXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFw
cGVyKTsKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKTsKKworI2lmZGVmIE5ERUJVRworCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkV3Jh
cHBlcihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZVdyYXBw
ZXIoR0RPTU9iamVjdCopCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVy
cyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJikKK3sKK30KKworI2Vsc2UKKworc3RhdGljIEhhc2hT
ZXQ8R0RPTU9iamVjdCo+JiB3cmFwcGVyU2V0KCkKK3sKKyAgICBzdGF0aWMgSGFzaFNldDxHRE9N
T2JqZWN0Kj4gc3RhdGljV3JhcHBlclNldDsKKyAgICByZXR1cm4gc3RhdGljV3JhcHBlclNldDsK
K30KKworc3RhdGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKQoreworICAg
IEFTU0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAgICB3cmFwcGVyU2V0
KCkuYWRkKHdyYXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmpl
Y3QqIHdyYXBwZXIpCit7CisgICAgaWYgKCF3cmFwcGVyKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKHdyYXBwZXJTZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgp
LnJlbW92ZSh3cmFwcGVyKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3Qg
R2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCit7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hl
Ojpjb25zdF9pdGVyYXRvciBpdCA9IHdyYXBwZXJzLmJlZ2luKCk7IGl0ICE9IHdyYXBwZXJzLmVu
ZCgpOyArK2l0KQorICAgICAgICByZW1vdmVXcmFwcGVyKGl0LT5zZWNvbmQpOworfQorCitHRE9N
T2JqZWN0Ojp+R0RPTU9iamVjdCgpCit7CisgICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFp
bnModGhpcykpOworfQorCisjZW5kaWYKKyNlbmRpZiAvKiBjb21tZW50ZWQgb3V0IGZvciBub3cg
Ki8KKworc3RhdGljIEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJDYWNoZSgpCit7IAorICAgIC8v
IFVORkFJUiEgaSB3YW50IG9uZSBvZiB0aGVzZSBwZXIgRG9jdW1lbnQsIHRvbyEKKyAgICAvLyBE
b24ndCB1c2UgbWFsbG9jIGhlcmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9u
IGNhbiBkZWFkbG9jay4KKyAgICBzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSBzdGF0aWNHZG9tV3Jh
cHBlckNhY2hlOworICAgIHJldHVybiBzdGF0aWNHZG9tV3JhcHBlckNhY2hlOworfQorCitzdGF0
aWMgRE9NT2JqZWN0TWFwJiBkb21PYmplY3RzKCkKK3sgCisgICAgLy8gRG9uJ3QgdXNlIG1hbGxv
YyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxvY2su
CisgICAgc3RhdGljIERPTU9iamVjdE1hcCBzdGF0aWNET01PYmplY3RzOworICAgIHJldHVybiBz
dGF0aWNET01PYmplY3RzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Omdl
dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpIAoreworICAgIGdwb2ludGVyIHJldCA9IGRv
bU9iamVjdHMoKS5nZXQob2JqZWN0SGFuZGxlKTsKKyAgICBwcmludGYoImdldERPTU9iamVjdDog
JXAgJXBcbiIsIG9iamVjdEhhbmRsZSwgcmV0KTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0
aWMgZ3BvaW50ZXIgY3JlYXRlX2dkb21fb2JqZWN0KEdET01PYmplY3QgKmRvYikKK3sKKyAgICBn
cG9pbnRlciByZXMgPSBnX29iamVjdF9uZXcoZG9iLT5nZXRfZ29ial90eXBlKCksIE5VTEwpOwor
ICAgIGdkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVzKSwgZG9i
KTsKKyAgICByZXR1cm4gcmVzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OnB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqIHdyYXBwZXIpIAor
eworICAgIC8vIGFkZFdyYXBwZXIod3JhcHBlcik7CisgICAgZ3BvaW50ZXIgb2JqID0gY3JlYXRl
X2dkb21fb2JqZWN0KHdyYXBwZXIpOworICAgIHByaW50ZigicHV0RE9NT2JqZWN0OiAlcCAlcCAl
cFxuIiwgb2JqZWN0SGFuZGxlLCB3cmFwcGVyLCBvYmopOworICAgIGRvbU9iamVjdHMoKS5zZXQo
b2JqZWN0SGFuZGxlLCBvYmopOworICAgIHJldHVybiBvYmo7Cit9CisKK3ZvaWQgR0RPTVNjcmlw
dEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKQoreworICAg
IGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSk7CisgICAgLy9yZW1vdmVXcmFwcGVyKGRv
bU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSkpOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5v
ZGUqIG5vZGUpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGdwb2ludGVyID4oZG9tT2JqZWN0cygpLmdldChub2RlKSk7CisgICAgcmV0dXJuIC8qIFhY
WCBncnJyIGRvY3VtZW50LT4gKi93cmFwcGVyQ2FjaGUoKS5nZXQobm9kZSk7Cit9CisKK3ZvaWQg
R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAg
Zm9yZ2V0RE9NT2JqZWN0KG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vcmVt
b3ZlV3JhcHBlcigvKiBYWFggZ3JyIGRvY3VtZW50LT4qL3dyYXBwZXJDYWNoZSgpLnRha2Uobm9k
ZSkpOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JE
b2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUsIEdET01Ob2RlICp3cmFwcGVy
KQoreworICAgIC8vYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7Cisg
ICAgICAgIG5vZGUtPnJlZigpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVy
OjpwdXRET01PYmplY3Qobm9kZSwgd3JhcHBlcikgOworICAgIH0KKyAgICBncG9pbnRlciBvYmog
PSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgLyogWFhYIGdycnIgZG9jdW1lbnQt
Piovd3JhcHBlckNhY2hlKCkuc2V0KG5vZGUsIG9iaik7CisgICAgcmV0dXJuIG9iajsKK30KKwor
dm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQo
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgLy9yZW1v
dmVXcmFwcGVycyhkb2N1bWVudC0+d3JhcHBlckNhY2hlKCkpOworfQorCisjaWYgMAordm9pZCBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50KiBk
b2MpCit7CisjaWYgMCAvKlhYWCBUT0RPKi8KKyAgICAvLyBJZiBhIG5vZGUncyBHZG9tIHdyYXBw
ZXIgaG9sZHMgY3VzdG9tIHByb3BlcnRpZXMsIHRob3NlIHByb3BlcnRpZXMgbXVzdAorICAgIC8v
IHBlcnNpc3QgZXZlcnkgdGltZSB0aGUgbm9kZSBpcyBmZXRjaGVkIGZyb20gdGhlIERPTS4gU28s
IHdlIGtlZXAgR2RvbQorICAgIC8vIHdyYXBwZXJzIGxpa2UgdGhhdCBmcm9tIGJlaW5nIGdhcmJh
Z2UgY29sbGVjdGVkLgorCisgICAgR2RvbVdyYXBwZXJDYWNoZSYgbm9kZURpY3QgPSAvKmRvYy0+
Ki93cmFwcGVyQ2FjaGUoKTsKKyAgICBHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBub2RlRW5k
ID0gbm9kZURpY3QuZW5kKCk7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBu
b2RlSXQgPSBub2RlRGljdC5iZWdpbigpOyBub2RlSXQgIT0gbm9kZUVuZDsgKytub2RlSXQpIHsK
KyAgICAgICAgZ3BvaW50ZXIgZ05vZGUgPSBub2RlSXQtPnNlY29uZDsKKyAgICAgICAgTm9kZSog
bm9kZSA9IGdOb2RlLT5pbXBsKCk7CisKKyAgICAgICAgaWYgKGdOb2RlLT5tYXJrZWQoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5vIG5lZWQgdG8gcHJlc2VydmUgYSB3
cmFwcGVyIHRoYXQgaGFzIG5vIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIGlzIG5vCisgICAgICAgIC8v
IGxvbmdlciBmZXRjaGFibGUgdGhyb3VnaCB0aGUgRE9NLgorICAgICAgICBpZiAoIWdOb2RlLT5o
YXNDdXN0b21Qcm9wZXJ0aWVzKCkgfHwgIW5vZGUtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgICAg
IC8vLi4uIHVubGVzcyB0aGUgd3JhcHBlciB3cmFwcyBhIGxvYWRpbmcgaW1hZ2UsIHNpbmNlIHRo
ZSAibmV3IEltYWdlIgorICAgICAgICAgICAgLy8gc3ludGF4IGFsbG93cyBhbiBvcnBoYW4gaW1h
Z2Ugd3JhcHBlciB0byBiZSB0aGUgbGFzdCByZWZlcmVuY2UKKyAgICAgICAgICAgIC8vIHRvIGEg
bG9hZGluZyBpbWFnZSwgd2hvc2UgbG9hZCBldmVudCBtaWdodCBoYXZlIGltcG9ydGFudCBzaWRl
LWVmZmVjdHMuCisgICAgICAgICAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoaW1nVGFnKSB8fCBz
dGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4obm9kZSktPmhhdmVGaXJlZExvYWRFdmVudCgp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGdOb2RlLT5tYXJrKCk7Cisg
ICAgfQorI2VuZGlmCit9CisKKy8qIFhYWCAtIHJlcXVpcmVzIGxvb2tpbmcgdXAgb2JqZWN0IC0g
Y2FsbCB0byBHX09CSkVDVCgpIG1hY3JvIGluIGFyZworICogIndyYXBwZXIiIHRvIHB1dERPTU5v
ZGVGb3JEb2N1bWVudD8qLworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjp1cGRhdGVE
T01Ob2RlRG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvYywgRG9jdW1lbnQqIG5l
d0RvYykKK3sKKyAgICBBU1NFUlQob2xkRG9jICE9IG5ld0RvYyk7CisgICAgc3R5bGVTaGVldC0+
cmVmKCk7CisgICAgZ3BvaW50ZXIgd3JhcHBlciA9IGdldERPTU5vZGVGb3JEb2N1bWVudChvbGRE
b2MsIG5vZGUpOworICAgIGlmICh3cmFwcGVyKSB7CisgICAgICAgIC8vcmVtb3ZlV3JhcHBlcih3
cmFwcGVyKTsKKyAgICAgICAgZ3BvaW50ZXIgb2JqID0gcHV0RE9NTm9kZUZvckRvY3VtZW50KG5l
d0RvYywgbm9kZSwgd3JhcHBlcik7CisgICAgICAgIGZvcmdldERPTU5vZGVGb3JEb2N1bWVudChv
bGREb2MsIG5vZGUpOworICAgICAgICAvL2FkZFdyYXBwZXIod3JhcHBlcik7CisgICAgICAgIHJl
dHVybiBvYmo7CisgICAgfQorICAgIHJldHVybiBOVUxMOyAvKiBlcnIuLi4gKi8KK30KKyNlbmRp
ZgorCitncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBpZiAoIWRvYykKKyAg
ICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2Jq
ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9jKTsKKyAgICBpZiAoZ29i
aikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBp
ZiAoZG9jLT5pc0hUTUxEb2N1bWVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxEb2N1
bWVudChzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihkb2MpKTsKKyNpZiBFTkFCTEUoU1ZHKQor
ICAgIGVsc2UgaWYgKGRvYy0+aXNTVkdEb2N1bWVudCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IE5VTEw7IC8qIFhYWCBUT0RPICovCisjaWYgMAorICAgICAgICByZXQgPSBuZXcgR0RPTVNWR0Rv
Y3VtZW50KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4oZG9jKSk7CisjZW5kaWYKKyAgICB9Cisj
ZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnQoZG9jKTsKKwor
ICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9N
T2JqZWN0KGRvYywgcmV0KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9k
ZSogbm9kZSk7CisKK2dwb2ludGVyIHRvR0RPTU5ld2x5Q3JlYXRlZChOb2RlKiBub2RlKQorewor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisgICAg
CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisgICAgCitncG9pbnRlciB0b0dE
T00oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBOVUxMOyAv
KiBobW1tLi4uLiAqLworCisgICAgRG9jdW1lbnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50KCk7Cisg
ICAgZ3BvaW50ZXIgcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9j
dW1lbnQoZG9jLCBub2RlKTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisg
ICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShDU1NW
YWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8q
IGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmdldERPTU9iamVjdCh2YWx1ZSk7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdv
Ymo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0
KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWVMaXN0KHN0YXRpY19jYXN0PENTU1Zh
bHVlTGlzdCo+KHZhbHVlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmICh2YWx1ZS0+
aXNTVkdQYWludCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAg
ICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1BhaW50KHN0YXRpY19jYXN0PFNWR1BhaW50Kj4odmFs
dWUpKTsKKyAgICB9CisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHQ29sb3IoKSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gbmV3IEdET01T
VkdDb2xvcihzdGF0aWNfY2FzdDxTVkdDb2xvcio+KHZhbHVlKSk7CisgICAgfQorI2VuZGlmCisg
ICAgZWxzZSBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0ID0gbmV3
IEdET01DU1NQcmltaXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZh
bHVlKSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhbHVlKHZhbHVlKTsK
KworICAgIHZhbHVlLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpw
dXRET01PYmplY3QodmFsdWUsIHJldCk7Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGdwb2lu
dGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAg
QVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KG5vZGUtPmRv
Y3VtZW50KCksIG5vZGUpKTsKKyAgICAKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9jdW1l
bnQoKTsKKyAgICBHRE9NTm9kZSAqcmV0ID0gTlVMTDsKKyAgICAKKyAgICBwcmludGYoImNyZWF0
ZVdyYXBwZXIgbm9kZVR5cGUgJWRcbiIsIG5vZGUtPm5vZGVUeXBlKCkpOworCisgICAgc3dpdGNo
IChub2RlLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgor
ICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICBy
ZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2Rl
KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmlzU1ZHRWxl
bWVudCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2lmIDAgLyogWFhYIFRPRE8g
Ki8KKyAgICAgICAgICAgICAgICByZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2Fz
dDxTVkdFbGVtZW50Kj4obm9kZSkpOworI2VuZGlmCisjZW5kaWYKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkFUVFJJ
QlVURV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01BdHRyKHN0YXRpY19jYXN0PEF0
dHIqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpURVhU
X05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVRleHQoc3RhdGljX2Nhc3Q8VGV4dCo+
KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NF
Q1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ0RBVEFTZWN0aW9uKHN0YXRp
Y19jYXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01FbnRp
dHkoc3RhdGljX2Nhc3Q8RW50aXR5Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oc3RhdGljX2Nhc3Q8UHJvY2Vzc2lu
Z0luc3RydWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Tm9kZTo6Q09NTUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Db21tZW50KHN0
YXRpY19jYXN0PENvbW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0
byBjYWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFy
eQorICAgICAgICAgICAgcmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUp
KTsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICBy
ZXQgPSBuZXcgR0RPTURvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVudFR5cGUqPihub2Rl
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpOT1RBVElPTl9OT0RF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob3RhdGlvbihzdGF0aWNfY2FzdDxOb3RhdGlv
bio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VN
RU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTURvY3VtZW50RnJh
Z21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRGcmFnbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0PEVudGl0eVJl
ZmVyZW5jZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob2RlKG5vZGUpOworICAgIH0KKworICAgIGRvYy0+
cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRv
Y3VtZW50KGRvYywgbm9kZSwgcmV0KTsKK30KKyAKK2dwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVj
dGlvbiogY29sbGVjdGlvbikKK3sKKyAgICBpZiAoIWNvbGxlY3Rpb24pCisgICAgICAgIHJldHVy
biBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNvbGxlY3Rpb24pOworCisgICAgaWYgKGdvYmopCisg
ICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAo
Y29sbGVjdGlvbi0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OlNlbGVj
dE9wdGlvbnM6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxPcHRpb25zQ29sbGVjdGlv
bihzdGF0aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAg
ICAgICAgICBicmVhazsKKyNpZiAwCisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OkRvY0Fs
bDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTEFsbENvbGxlY3Rpb24oc3RhdGljX2Nh
c3Q8SFRNTENvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyNl
bmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQ29s
bGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNvbGxlY3Rpb24tPnJlZigpOworICAgIHJldHVy
biBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChjb2xsZWN0aW9uLCByZXQpOwor
fQorCitncG9pbnRlciB0b0dET00oRXZlbnQqIGV2ZW50KQoreworICAgIGlmICghZXZlbnQpCisg
ICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgcHJpbnRmKCJ0b0dET00g
RXZlbnQgdHlwZSAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
KworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVj
dChldmVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RP
TU9iamVjdCAqcmV0OworICAgIGlmIChldmVudC0+aXNVSUV2ZW50KCkpIHsKKyAgICAgICAgaWYg
KGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NS2V5
Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAg
ZWxzZSBpZiAoZXZlbnQtPmlzVGV4dEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RP
TVRleHRFdmVudChzdGF0aWNfY2FzdDxUZXh0RXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNl
IGlmIChldmVudC0+aXNNb3VzZUV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU1v
dXNlRXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2Ug
aWYgKGV2ZW50LT5pc1doZWVsRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NV2hl
ZWxFdmVudChzdGF0aWNfY2FzdDxXaGVlbEV2ZW50Kj4oZXZlbnQpKTsKKyNpZiBFTkFCTEUoU1ZH
KQorICAgICAgICBlbHNlIGlmIChldmVudC0+aXNTVkdab29tRXZlbnQoKSkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgICAgIC8vcmV0ID0g
bmV3IEdET01TVkdab29tRXZlbnQoc3RhdGljX2Nhc3Q8U1ZHWm9vbUV2ZW50Kj4oZXZlbnQpLCAw
KTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NVUlFdmVudChzdGF0aWNfY2FzdDxVSUV2ZW50Kj4oZXZlbnQpKTsKKyAgICB9IGVsc2Ug
aWYgKGV2ZW50LT5pc011dGF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01NdXRh
dGlvbkV2ZW50KHN0YXRpY19jYXN0PE11dGF0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2Ug
aWYgKGV2ZW50LT5pc092ZXJmbG93RXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01PdmVy
Zmxvd0V2ZW50KHN0YXRpY19jYXN0PE92ZXJmbG93RXZlbnQqPihldmVudCkpOworICAgIGVsc2Ug
aWYgKGV2ZW50LT5pc01lc3NhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTU1lc3Nh
Z2VFdmVudChzdGF0aWNfY2FzdDxNZXNzYWdlRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYg
KGV2ZW50LT5pc1Byb2dyZXNzRXZlbnQoKSkgeworICAgICAgICBpZiAoZXZlbnQtPmlzWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVhNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSBuZXcgR0RP
TVByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CisgICAg
fQorI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyAgICBlbHNlIGlmIChldmVudC0+aXNTdG9yYWdl
RXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01TdG9yYWdlRXZlbnQoc3RhdGljX2Nhc3Q8
U3RvcmFnZUV2ZW50Kj4oZXZlbnQpKTsKKyNlbmRpZgorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1dl
YktpdEFuaW1hdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0QW5pbWF0
aW9uRXZlbnQoc3RhdGljX2Nhc3Q8V2ViS2l0QW5pbWF0aW9uRXZlbnQqPihldmVudCkpOworICAg
IGVsc2UgaWYgKGV2ZW50LT5pc1dlYktpdFRyYW5zaXRpb25FdmVudCgpKQorICAgICAgICByZXQg
PSBuZXcgR0RPTVdlYktpdFRyYW5zaXRpb25FdmVudChzdGF0aWNfY2FzdDxXZWJLaXRUcmFuc2l0
aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01FdmVu
dChldmVudCk7CisKKyAgICBldmVudC0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6cHV0RE9NT2JqZWN0KGV2ZW50LCByZXQpOworfQorCisvKiBUT0RPIFhYWCBobW1t
Li4uIG5vdCBzbyBoYXBweSBhYm91dCB0aGlzIC0gc2hvdWxkIGJlICJuZXdseSBjcmVhdGVkIiAq
LworZ3BvaW50ZXIgdG9HRE9NKFRleHQqIHRleHQpCit7CisgICAgaWYgKCF0ZXh0KQorICAgICAg
ICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0KTsKKyAgICBp
ZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NTm9kZSAqcmV0ID0gbmV3
IEdET01UZXh0KHRleHQpOworICAgIHRleHQtPmRvY3VtZW50KCktPnJlZigpOworICAgIHJldHVy
biBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1
bWVudCgpLCB0ZXh0LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTUnVsZSogcnVsZSkK
K3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAq
LworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2Jq
ZWN0KHJ1bGUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAg
R0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7CisgICAgICAgIGNh
c2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5
bGVSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUNTU01lZGlhUnVsZShzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihydWxlKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpGT05UX0ZBQ0VfUlVM
RToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTRm9udEZhY2VSdWxlKHN0YXRpY19jYXN0
PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUGFn
ZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NQ1NTSW1wb3J0UnVsZShzdGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxlKj4ocnVsZSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Q0hBUlNFVF9SVUxF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NDaGFyc2V0UnVsZShzdGF0aWNfY2FzdDxD
U1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NW
YXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1ZhcmlhYmxlc1J1bGUqPihydWxlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NQ1NTUnVsZShydWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJ1bGUt
PnJlZigpOworICAgIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHJ1bGUsIHJl
dCk7CisgICAgcmV0dXJuIHJldDsKK30KKworLyogVE9ETzogc2hvdWxkIGJlIHRvR0RPTU5ld2x5
Q3JlYXRlZCAqLworZ3BvaW50ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYg
KCFlbGVtZW50KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8vIHNob3VsZG4ndCBiZSBv
bmU/IEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChlbGVt
ZW50LT5kb2N1bWVudCgpLCBlbGVtZW50KSk7CisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCks
IGVsZW1lbnQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsgLy8gaHVoPyBl
cnIuLi4KKworICAgIEdET01Ob2RlICpyZXQ7CisgICAgRG9jdW1lbnQqIGRvYyA9IGVsZW1lbnQt
PmRvY3VtZW50KCk7CisKKyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAg
ICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihl
bGVtZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0Vs
ZW1lbnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAg
IC8vcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KGVs
ZW1lbnQpKTsKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9N
RWxlbWVudChlbGVtZW50KTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KGRvYywgZWxlbWVudCwgcmV0KTsK
K30KKworZ3BvaW50ZXIgdG9HRE9NKFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQpCit7CisgICAgaWYg
KCFzdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gTlVMTDsgLyogZXJyLi4uICovCisKKyAgICBn
cG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qoc3R5bGVT
aGVldCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9i
amVjdCAqcmV0OworICAgIGlmIChzdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKKyAgICAg
ICAgcmV0ID0gbmV3IEdET01DU1NTdHlsZVNoZWV0KHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQq
PihzdHlsZVNoZWV0KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTVN0eWxlU2hl
ZXQoc3R5bGVTaGVldCk7CisKKyAgICBzdHlsZVNoZWV0LT5yZWYoKTsKKyAgICByZXR1cm4gR0RP
TVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qoc3R5bGVTaGVldCwgcmV0KTsKK30KKwor
LyogZGVyaXZlZCBzb3VyY2VzIGF1dG8tZ2VuZXJhdGVkICovCitncG9pbnRlciB0b0dET00oWE1M
SHR0cFJlcXVlc3RVcGxvYWQqIG9iaik7CisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldCog
dGFyZ2V0KQoreworICAgIGlmICghdGFyZ2V0KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAK
KyNpZiAwCisjaWYgRU5BQkxFKFNWRykKKyAgICAvLyBTVkdFbGVtZW50SW5zdGFuY2Ugc3VwcG9y
dHMgYm90aCB0b1NWR0VsZW1lbnRJbnN0YW5jZSBhbmQgdG9Ob2RlIHNpbmNlIHNvIG11Y2ggbW91
c2UgaGFuZGxpbmcgY29kZSBkZXBlbmRzIG9uIHRvTm9kZSByZXR1cm5pbmcgYSB2YWxpZCBub2Rl
LgorICAgIFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2UgPSB0YXJnZXQtPnRvU1ZHRWxlbWVu
dEluc3RhbmNlKCk7CisgICAgaWYgKGluc3RhbmNlKQorICAgICAgICByZXR1cm4gdG9HRE9NKGV4
ZWMsIGluc3RhbmNlKTsKKyNlbmRpZgorI2VuZGlmCisKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0
LT50b05vZGUoKTsKKyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsK
KyAgICAKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3QqIHhociA9IHRhcmdldC0+dG9YTUxIdHRwUmVx
dWVzdCgpKQorICAgICAgICAvLyBYTUxIdHRwUmVxdWVzdCBpcyBhbHdheXMgY3JlYXRlZCB2aWEg
R0RPTSwgc28gd2UgZG9uJ3QgbmVlZCB0byB1c2UgY2FjaGVET01PYmplY3QoKSBoZXJlLgorICAg
ICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoeGhyKTsKKwor
ICAgIGlmIChYTUxIdHRwUmVxdWVzdFVwbG9hZCogdXBsb2FkID0gdGFyZ2V0LT50b1hNTEh0dHBS
ZXF1ZXN0VXBsb2FkKCkpCisgICAgICAgIHJldHVybiB0b0dET00odXBsb2FkKTsKKyAgICAKKyNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGlmIChET01BcHBsaWNhdGlv
bkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCisgICAgICAg
IC8vIERPTUFwcGxpY2F0aW9uQ2FjaGUgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdl
IGRvbid0IG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJu
IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNhY2hlKTsKKyNlbmRpZgorCisg
ICAgLy8gVGhlcmUgYXJlIHR3byBraW5kcyBvZiBFdmVudFRhcmdldHM6IEV2ZW50VGFyZ2V0Tm9k
ZSBhbmQgWE1MSHR0cFJlcXVlc3QuCisgICAgLy8gSWYgU1ZHIHN1cHBvcnQgaXMgZW5hYmxlZCwg
dGhlcmUgaXMgYWxzbyBTVkdFbGVtZW50SW5zdGFuY2UuCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIE5VTEw7Cit9ICAgCisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdl
dE5vZGUqIHRhcmdldCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisgICAgCisgICAgTm9kZSogbm9kZSA9IHRhcmdldC0+dG9Ob2RlKCk7CisgICAgaWYgKG5vZGUp
CisgICAgICAgIHJldHVybiB0b0dET00obm9kZSk7CisgICAgCisgICAgcmV0dXJuIHRvR0RPTShz
dGF0aWNfY2FzdDxFdmVudFRhcmdldCo+KHRhcmdldCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAw
OCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxl
IEluYy4KKyAqLworCisjaWZuZGVmIF9fR2RvbURPTU9iamVjdF9IX18KKyNkZWZpbmUgX19HZG9t
RE9NT2JqZWN0X0hfXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0
L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0cnVjdCBfR2Rv
bURPTU9iamVjdCBHZG9tRE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RD
bGFzcyBHZG9tRE9NT2JqZWN0Q2xhc3M7CisKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9PQkpFQ1Qg
ICAgICAgICAgICAoZ2RvbV9kb21fb2JqZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRE9N
X09CSkVDVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmop
LCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdCkpCisjZGVmaW5lIEdET01fRE9N
X09CSkVDVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyks
ICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkKKyNkZWZpbmUgR0RP
TV9JU19ET01fT0JKRUNUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUo
KG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNUKSkKKyNkZWZpbmUgR0RPTV9JU19ET01fT0JKRUNU
X0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQ
RV9ET01fT0JKRUNUKSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBH
ZG9tRE9NT2JqZWN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdFByaXZh
dGUgR2RvbURPTU9iamVjdFByaXZhdGU7CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdCB7CisgICAg
R09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSAqcHJp
djsKK307CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3Mg
cGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorZ2RvbV9kb21fb2JqZWN0X2dl
dF90eXBlICh2b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5pdF9k
b21fb2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0aGl6KTsKKworR19FTkRfREVDTFMKKworI2VuZGlm
IC8qIF9fR2RvbURPTU9iamVjdF9IX18gKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTU9i
amVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01PYmplY3Qu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfX0RPTU9iamVjdF9oX18K
KyNkZWZpbmUgX19ET01PYmplY3RfaF9fCisKKy8vIG5hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgR0RPTU9iamVjdCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R0RPTU9iamVjdCgpIHt9Cisg
ICAgdmlydHVhbCBpbnQgZ2V0X2dvYmpfdHlwZSgpID0gMDsKK307CisKKy8vIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhU
TUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogVEhJUyBGSUxFIElTIERFUklWRUQgRlJP
TSBBTiBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBGSUxFLgorICoga2VlcGluZyBpdCB1cC10by1k
YXRlIGNvdWxkIHBvdGVudGlhbGx5IGJlIGRvbmUgYnkgYWRkaW5nCisgKiBhIG1ha2VfbmFtZXMu
cGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUKKyAqIGdlbmVyYXRlciB3aGlj
aCB0YWtlcyBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBhcyBpbnB1dC4KKyAqCisgKgor
ICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisKKyNpZm5kZWYgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnlf
aAorI2RlZmluZSBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCisKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbU5vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEhUTUxFbGVtZW50OworCisgICAgR0RPTU5vZGUq
IGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK30KKyAK
KyNlbmRpZiAvLyBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkxIEBACisvKgorICog
IENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisg
KiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5p
ZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaWZuZGVmIEdkb21ET01CaW5kaW5nX2gKKyNkZWZpbmUgR2RvbURPTUJpbmRpbmdf
aAorCisjaW5jbHVkZSA8a2pzL2ludGVycHJldGVyLmg+CisjaW5jbHVkZSA8a2pzL2xvb2t1cC5o
PgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisjaW5jbHVkZSAiR2RvbU5vZGUuaCIK
KyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob2RlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEF0b21pY1N0cmluZzsKKyAgICBj
bGFzcyBEb2N1bWVudDsKKyAgICBjbGFzcyBFdmVudDsKKyAgICBjbGFzcyBGcmFtZTsKKyAgICBj
bGFzcyBLVVJMOworICAgIGNsYXNzIE5vZGU7CisgICAgY2xhc3MgU3RyaW5nOworCisjaWYgRU5B
QkxFKFNWRykKKyAgICBjbGFzcyBTVkdFbGVtZW50OworI2VuZGlmCisKKyAgICBjbGFzcyBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIHZvaWQqIGdl
dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpOworICAgICAgICBzdGF0aWMgdm9pZCogcHV0
RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVjdCopOworICAgICAgICBzdGF0
aWMgdm9pZCBmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsKKworICAgICAgICBz
dGF0aWMgdm9pZCogZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSopOworICAg
ICAgICBzdGF0aWMgdm9pZCogcHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSos
IEdET01Ob2RlKiBub2RlV3JhcHBlcik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU5v
ZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZm9y
Z2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOworCQkjaWYgMAorICAgICAgICBz
dGF0aWMgdm9pZCB1cGRhdGVET01Ob2RlRG9jdW1lbnQoTm9kZSosIERvY3VtZW50KiBvbGREb2Ms
IERvY3VtZW50KiBuZXdEb2MpOworICAgICAgICBzdGF0aWMgdm9pZCBtYXJrRE9NTm9kZXNGb3JE
b2N1bWVudChEb2N1bWVudCopOworCQkjZW5kaWYKKyAgICB9OworCisgICAgLy8gUmV0cmlldmUg
ZnJvbSBjYWNoZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYSBET00gb2JqZWN0Lgor
ICAgIHRlbXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3MgR2RvbURPTU9iaj4gaW5saW5lIHZvaWQq
IGNhY2hlRE9NT2JqZWN0KERPTU9iaiogZG9tT2JqKQorICAgIHsKKyAgICAgICAgaWYgKCFkb21P
YmopCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKyAgICAgICAg
aWYgKHZvaWQqIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvbU9i
aikpCisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBHRE9NT2JqZWN0KiByZXQgPSBu
ZXcgR2RvbURPTU9iaihkb21PYmopOworCQlkb21PYmotPnJlZigpOworICAgICAgICByZXR1cm4g
R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZG9tT2JqLCByZXQpOworICAgIH0K
KworI2lmIEVOQUJMRShTVkcpCisgICAgLy8gUmV0cmlldmUgZnJvbSBjYWNoZSwgb3IgY3JlYXRl
LCBhIEdkb20gd3JhcHBlciBmb3IgYW4gU1ZHIERPTSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xh
c3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2JqPiBpbmxpbmUgdm9pZCogY2FjaGVTVkdET01PYmpl
Y3QoRE9NT2JqKiBkb21PYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpCisgICAgeworICAgICAgICBp
ZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLwor
ICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmpl
Y3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIEdET01PYmplY3Qq
IHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaiwgY29udGV4dCk7CisJCWRvbU9iai0+cmVmKCk7
CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChkb21P
YmosIHJldCk7CisgICAgfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEdkb21ET01CaW5kaW5nX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2
YXRlSW50R2RvbURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9Qcml2YXRlSW50R2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisK
KyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTY3MiBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENh
c3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBU
b2tlciA8YWxwQGF0b2tlci5jb20+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFp
bnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlIC0gU3VpdGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFj
a2FnZSBDb2RlR2VuZXJhdG9yR09iamVjdDsKKworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVz
CitteSAkbGljZW5jZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xcQGxrY2wubmV0PgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsK
K215ICVoZHJJbmNsdWRlcyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkgJWlt
cGxUeXBlZGVmcyA9ICgpOworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRj
b2RlR2VuZXJhdG9yID0gc2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxl
c3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1
YiBmaW5pc2gKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9t
Q2xhc3MnIHN0cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9
IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hp
ZnQ7CisKKyAgICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFt
ZVxuIjsKKworICAgICRvYmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdyaXRl
IGNoYW5nZXMKKyAgICBteSAkZm5hbWUgPSAiR2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXplKCRu
YW1lKTsKKyAgICAkZm5hbWUgPX4gcy9fLy9nOworICAgICRvYmplY3QtPldyaXRlRGF0YSgkZm5h
bWUpOworfQorCisjIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1v
ZHVsZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlm
dDsKKworICAgICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09i
alR5cGUKK3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2Ft
ZWxpemUoJGNsYXNzTmFtZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBt
eSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURP
TU9iamVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9t
IiAuICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOwor
fQorc3ViIEdldFBhcmVudEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisK
KyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJM
ZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRk
YXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9H
T2JqVHlwZSgkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDAp
KSk7Cit9CisKKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAx
CitzdWIgY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsg
dWNmaXJzdCAkXyB9IHNwbGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7
Cit9CisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3Vi
IGRlY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1a
XT8pKFtBLVpdKikoW0EtWl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0w
OworICAgICAgICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAg
ICAgICBteSAkdCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/
ICRwMSA/ICIke3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7
CisgICAgfWdlOworICAgICRzOworfQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAk
bmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4g
Ikdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUg
PSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9t
JG5hbWUiOworfQorCitzdWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworICAgICAgICBteSAkbmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5h
bWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIg
aWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7
CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4g
IiIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZs
b2F0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICBy
ZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxv
bmcgbG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQi
OworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVybiAi
UmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gIkdkb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgY2hhciI7CisgICAgICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBw
ZXIKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5n
IjsKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiIGlmICR0eXBlIGVxICJF
dmVudFRhcmdldCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBl
cSAiZmxvYXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEg
ImJvb2xlYW4iOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEg
InZvaWQiOworCisgICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1cm5zIDEgaWYgd2Ug
bmVlZCB0byBjcmVhdGUgYSBnb2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSByZXR1cm4gcmVzdWx0
CitzdWIgSXNHRE9NQ2xhc3NUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAg
bXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJET01UaW1lU3RhbXAiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9N
U3RyaW5nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiOwor
ICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJk
b3VibGUiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAg
IHJldHVybiAwIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUg
ZXEgImxvbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlw
ZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiaW50IjsKKyAg
ICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJSR0JDb2xv
ciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorCisgICAgICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAxOworfQorCitzdWIgR2V0UHJvcEdUeXBl
Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgk
dHlwZSk7CisKKyAgICByZXR1cm4gInN0cmluZyIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7Cisg
ICAgcmV0dXJuICJmbG9hdCIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICByZXR1cm4gIm5vdHll
dHN1cHBvcnRlZCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgIHJldHVybiAiZG91Ymxl
IiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICByZXR1cm4gImJvb2xlYW4iIGlmICR0eXBlIGVx
ICJib29sZWFuIjsKKyAgICByZXR1cm4gImNoYXIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICBy
ZXR1cm4gImxvbmciIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gImludCIgaWYgJHR5
cGUgZXEgInNob3J0IjsKKyAgICByZXR1cm4gInVjaGFyIiBpZiAkdHlwZSBlcSAidWNoYXIiOwor
ICAgIHJldHVybiAidWludCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICByZXR1cm4gImlu
dCIgaWYgJHR5cGUgZXEgImludCI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5z
aWduZWQgaW50IjsKKyAgICByZXR1cm4gInVpbnQ2NCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxv
bmcgbG9uZyI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmci
OworICAgIHJldHVybiAidXNob3J0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAg
IHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00g
Y2xhc3Mgd3JhcHBlcgorCisgICAgcmV0dXJuICJvYmplY3QiOworfQorCitzdWIgR2V0R1R5cGUK
K3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFt
ZSgkdHlwZSk7CisgICAgICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFtZSgkdHlw
ZSkpOworCisgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqIiBpZiAkdHlwZSBl
cSAiRXZlbnRUYXJnZXQiOworICAgICAgICByZXR1cm4gImNvbnN0IGdjaGFyICoiIGlmICR0eXBl
IGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gImdmbG9hdCAiIGlmICR0eXBlIGVxICJm
bG9hdCI7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVIb3cgIiBpZiAk
dHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJldHVybiAiZ2RvdWJsZSAiIGlmICR0eXBl
IGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gImdib29sZWFuICIgaWYgJHR5cGUgZXEgImJv
b2xlYW4iOworICAgICAgICByZXR1cm4gImdjaGFyICIgaWYgJHR5cGUgZXEgImNoYXIiOworICAg
ICAgICByZXR1cm4gImdsb25nICIgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4g
ImdzaG9ydCAiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgICAgIHJldHVybiAiZ3VjaGFyICIg
aWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJuICJndWludCAiIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAiZ2ludCAiIGlmICR0eXBlIGVxICJpbnQiOwor
ICAgICAgICByZXR1cm4gImd1aW50ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAg
ICAgIHJldHVybiAiZ3Vsb25nICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAg
ICByZXR1cm4gImd1aW50NjQgIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAg
ICAgICAgcmV0dXJuICJndXNob3J0ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAg
ICAgICAgcmV0dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8g
LSBET00gY2xhc3Mgd3JhcHBlcgorCisgICAgICAgIHJldHVybiAidm9pZCIgaWYgJHR5cGUgZXEg
InZvaWQiOworCisgICAgcmV0dXJuICIkbmFtZSAqIjsKK30KKworc3ViIGdldEluY0hkcgorewor
ICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaW5jbHVkZUhkciA9IEdldEdJbmNsdWRl
SGRyKCR0eXBlKTsKKyAgICBpZiAoJGluY2x1ZGVIZHIpIHsKKyAgICAgICAgaWYgKCR0eXBlIGVx
ICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oIjsKKyAgICAgICAgfQorICAgICAgICBlbHNpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsK
KyAgICAgICAgICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3Iu
CisgICAgICAgICAgICByZXR1cm4gIkdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCI7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gJGluY2x1ZGVIZHI7CisgICAgICAg
IH0KKyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgYWRkUHJvcEluY0hkcgoreworICAg
IG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAg
ICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyRoZHJ9ID0gMTsK
KyAgICAgICAgaWYgKElzR0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRoZHJQ
cm9wSW5jbHVkZXN7IlByaXZhdGUiLiRoZHJ9ID0gMTsKKyAgICAgICAgICAgICRoZHJQcm9wSW5j
bHVkZXN7IlByaXZhdGVJbnQiLiRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0KKworfQorCitz
dWIgYWRkSW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBn
ZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgICRoZHJJbmNs
dWRlc3skaGRyfSA9IDE7CisgICAgfQorCit9CisKK3N1YiBhZGRJbmNCb2R5Cit7CisgICAgbXkg
JHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlm
ICgkaGRyIG5lICIiKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0K
K30KKworc3ViIEdldFByaXZGbgoreworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7Cisg
ICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9IHNoaWZ0OworICAgIG15ICRyZXMgPSBzaGlmdDsKKyAg
ICBteSAkcGFybSA9IHNoaWZ0OworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJFdmVudFRh
cmdldCIpIHsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiAkcmVz
ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9ldmVudF90YXJn
ZXRfbm9kZV9nZXRfcHJpdmF0ZShzZWxmKSk7IjsKKyAgICB9CisgICAgcmV0dXJuICJXZWJDb3Jl
Ojoke2ludGVyZmFjZU5hbWV9ICogJHJlcyA9ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZh
dGUoJHBhcm0pKTsiOworfQorCitzdWIgc2tpcFByb3BUZW1wb3JhcmlseQoreworICAgIG15ICR0
eXBlID0gc2hpZnQ7CisgICAgbXkgJHByb3BfdHlwZSA9IHNoaWZ0OworCisgICAgIyBza2lwIE1l
ZGlhTGlzdAorICAgIGlmICgkcHJvcF90eXBlIGVxICJzdHlsZXNoZWV0czo6TWVkaWFMaXN0Iikg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2
ZW50VGFyZ2V0IikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBD
U1NWYXJpYWJsZXNEZWNsYXJhdGlvbgorICAgIGlmICgkcHJvcF90eXBlIGVxICJDU1NWYXJpYWJs
ZXNEZWNsYXJhdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBza2lw
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJDU1NT
dHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMg
c2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAi
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24iKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAj
fQorCisgICAgIyBza2lwIEV2ZW50TGlzdGVuZXIKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2
ZW50TGlzdGVuZXIiKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lw
IERPTVdpbmRvdworICAgICNpZiAoJHByb3BfdHlwZSBlcSAiRE9NV2luZG93IikgeworICAgICMg
ICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDb25zdHJ1Y3RvcnMgKHdoYXRldmVy
IHRoZXkgYXJlKSBmb3Igbm93LgorICAgIGlmICgkcHJvcF90eXBlID1+IC9Db25zdHJ1Y3RvciQv
KSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgY2FudmFzMmQuLi4uCisgICAg
aWYgKCRwcm9wX3R5cGUgZXEgImN1c3RvbSIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkFycmF5IikgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgeworICAgICAgICBy
ZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIFRPRE86IFNWRworICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+SXNQb2RUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUo
JHR5cGUpKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKwor
c3ViIFVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24KK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworCisgICAgIyBza2lwcGVkIG91dCBDYW52YXNQaXhlbEFycmF5IC0gc2VlIEpTQ2FudmFzUGl4
ZWxBcnJheUN1c3RvbS5jcHAgZm9yIHdoeS4KKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiTm9k
ZSIgb3IgJHR5cGUgZXEgIkRvY3VtZW50IiBvciAkdHlwZSBlcSAiSFRNTENvbGxlY3Rpb24iIG9y
ICR0eXBlIGVxICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUg
ZXEgIkNTU1J1bGUiIG9yICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IgJHR5cGUgZXEgIkV2ZW50IiBv
ciAkdHlwZSBlcSAiRWxlbWVudCIgb3IgJHR5cGUgZXEgIlRleHQiOworICAgIHJldHVybiAwOwor
fQorCisKKyMgR2VuZXJhdGUgaGVhZGVyIGFuZCBpbXBsCitzdWIgR2VuZXJhdGUKK3sKKyAgICBt
eSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAk
aGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5
UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+cGFyZW50c30g
PiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFy
ZW50OworICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05hbWUoJGRhdGFO
b2RlKTsKKyAgICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJlbnRHT2JqVHlwZSgkZGF0YU5v
ZGUpOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRj
bGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOworICAgIG15ICRoZHJOYW1l
ID0gR2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBp
bXBsIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VU
ZW1wbGF0ZSk7CisgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CisKKyAgICAkaW1wbEluY2x1ZGVz
eyJHRE9NQmluZGluZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiRoZHJOYW1lLmgifSA9
IDE7CisgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZSR7aGRyTmFtZX0uaCJ9ID0gMTsKKworICAg
IG15ICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gIkRPTU9iamVjdCI7CisgICAgbXkgJHBhcmVudEdJ
ZmFjZU5hbWUgPSAiR0RPTU9iamVjdCI7CisgICAgbXkgJHBhcmVudEhkck5hbWUgPSAiR2RvbURP
TU9iamVjdCI7CisgICAgaWYgKCRwYXJlbnRDbGFzc05hbWUgbmUgIkdPYmplY3QiKQorICAgIHsK
KyAgICAgICAgJHBhcmVudEludGVyZmFjZU5hbWUgPSBzdWJzdHIoJHBhcmVudENsYXNzTmFtZSwg
NCk7CisgICAgICAgIGlmICgkcGFyZW50SW50ZXJmYWNlTmFtZSBuZSAiRE9NT2JqZWN0Iikgewor
ICAgICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTSIuc3Vic3RyKCRwYXJlbnRDbGFz
c05hbWUsIDQpOworICAgICAgICAgICAgJHBhcmVudEhkck5hbWUgPSBHZXRIZHJOYW1lKCRwYXJl
bnRJbnRlcmZhY2VOYW1lKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAg
ICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgICAgICB9Cisg
ICAgICAgICRpbXBsSW5jbHVkZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAg
JGltcGxJbmNsdWRlc3siUHJpdmF0ZSR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAg
JGhkckluY2x1ZGVzeyIke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICMkaGRySW5j
bHVkZXN7IlByaXZhdGUke3BhcmVudEhkck5hbWV9LmgifSA9IDA7CisgICAgfQorCisgICAgIyBU
T0RPIC0gbWFrZSB0aGVzZSBvbmx5IGluY2x1ZGUgd2hlcmUgbmVlZGVkLCBsaWtld2lzZSB0aGUK
KyAgICAjIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0b0dET00sIHRvbworICAgICRpbXBsSW5jbHVk
ZXN7Ik5vZGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFbGVtZW50LmgifSA9IDE7Cisg
ICAgJGltcGxJbmNsdWRlc3siQ1NTVmFsdWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJD
U1NSdWxlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siSFRNTENvbGxlY3Rpb24uaCJ9ID0g
MTsKKyAgICAjJGltcGxJbmNsdWRlc3siU1ZHUGF0aFNlZy5oIn0gPSAxOworICAgICRpbXBsSW5j
bHVkZXN7IlN0eWxlU2hlZXQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFdmVudC5oIn0g
PSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNhbnZhc1BpeGVsQXJyYXkuaCJ9ID0gMTsKKyAgICAk
aW1wbEluY2x1ZGVzeyJET01XaW5kb3cuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJUZXh0
LmgifSA9IDE7CisKKyAgICAjIFhYWCBUT0RPOiBtYWtlIHRoaXMgb3B0aW9uYWwgb3IgaW4gYSBo
ZWFkZXIgZmlsZS4gIG9yIGZpbmQgYSBiZXR0ZXIgd2F5LgorICAgIG15ICRoYWNrRGVjbHMgPSA8
PCAiRU9GIjsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oTm9kZSog
bm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKENTU1ZhbHVlKiBub2RlKTsKKyAgICBncG9pbnRl
ciB0b0dET00oQ1NTUnVsZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEVsZW1lbnQqIG5v
ZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShEb2N1bWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIg
dG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBub2RlKTsgCisgICAgLy9ncG9pbnRlciB0b0dET00oU1ZH
UGF0aFNlZyogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBub2RlKTsg
CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0Tm9kZSogbm9kZSk7IAorICAgIGdwb2lu
dGVyIHRvR0RPTShFdmVudFRhcmdldCogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShFdmVu
dCogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShDYW52YXNQaXhlbEFycmF5KiBub2RlKTsg
CisgICAgZ3BvaW50ZXIgdG9HRE9NKERPTVdpbmRvdyogbm9kZSk7IAorICAgIGdwb2ludGVyIHRv
R0RPTShUZXh0KiBub2RlKTsgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK0VPRgorCisgICAg
cHVzaChAY0JvZHksICRoYWNrRGVjbHMpOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9w
dGlvbmFsIG9yIGluIGEgaGVhZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBt
eSAkc3RyaW5nQ29udmVydCA9IDw8ICJFT0YiOworY2xhc3MgR1N0cmluZ0NvbnZlcnQgeworICAg
IHB1YmxpYzoKKyAgICBjb25zdCBnY2hhciAqbV9zdHI7CisgICAgR1N0cmluZ0NvbnZlcnQoV2Vi
Q29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgp
KTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OktVUkwgY29uc3QmIHMpIHsgbV9zdHIg
PSBnX3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZl
cnQoY29uc3QgS0pTOjpVU3RyaW5nICYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuVVRGOFN0cmlu
ZygpLmNfc3RyKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5n
IGNvbnN0JnMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9
Cit9OworCitFT0YKKworICAgIHB1c2goQGNCb2R5LCAkc3RyaW5nQ29udmVydCk7CisKKyAgICBw
dXNoKEBjQm9keSwgIm5hbWVzcGFjZSBXZWJDb3JlIHtcbiIpOworCisgICAgIyBHZXQgY29ycmVj
dCBwYXNzL3N0b3JlIHR5cGVzIHJlc3BlY3RpbmcgUE9EVHlwZSBmbGFnCisgICAgbXkgJHBvZFR5
cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07CisgICAgbXkg
JHBhc3NUeXBlID0gJHBvZFR5cGUgPyAiSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIiA6
ICIkaW50ZXJmYWNlTmFtZSoiOworCisgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRPTVdp
bmRvdyIgfHwgKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVy
ZmFjZU5hbWUpKSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNo
KEBjQm9keSwgIktKUzo6SlNWYWx1ZSogdG9KUyhLSlM6OkV4ZWNTdGF0ZSogZXhlYywgSlNTVkdQ
T0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIG9iaiwgU1ZHRWxlbWVudCogY29udGV4dClcbiIpOwor
ICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxD
bGFzc05hbWUpKSB7CisgICAgICAgICMgICAgIHB1c2goQGNCb2R5LCAiS0pTOjpKU1ZhbHVlKiB0
b0pTKEtKUzo6RXhlY1N0YXRlKiBleGVjLCAkcGFzc1R5cGUgb2JqLCBTVkdFbGVtZW50KiBjb250
ZXh0KVxuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICJn
cG9pbnRlciB0b0dET00oV2ViQ29yZTo6JHBhc3NUeXBlIG9iailcbiIpOworICAgICAgICAjfQor
CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsK
KyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gY2FjaGVTVkdET01PYmplY3Q8
SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4sICRjbGFzc05hbWUsICR7Y2xhc3NOYW1lfVBy
b3RvdHlwZT4oZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNT
VkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAg
ICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2JqZWN0PCRpbXBsQ2xh
c3NOYW1lLCAkY2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGV4ZWMsIG9iaiwgY29u
dGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICByZXR1cm4gV2ViQ29yZTo6Y2FjaGVET01PYmplY3Q8V2ViQ29yZTo6JGludGVyZmFjZU5h
bWUsIEdET00kaW50ZXJmYWNlTmFtZT4ob2JqKTtcbiIpOworICAgICAgICAjfQorICAgICAgICBw
dXNoKEBjQm9keSwgIn1cbiIpOworICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBuYW1l
c3BhY2UgV2ViQ29yZSAqLyBcbiIpOworICAgIG15ICRpbXBsQ29udGVudCA9ICIiOworCisgICAg
IyBYWFggVE9ETyBwdXNoKEBjQm9keSwgInVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlO1xuXG4iKTsK
KyAgICBwdXNoKEBjQm9keSwgImV4dGVybiBcIkNcIiB7XG5cbiIpOworICAgIHB1c2goQGNCb2R5
LCAiI2RlZmluZSBfR19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKVxu
Iik7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAaFByZWZp
eCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgICAgICAjcHVzaChAaFByZWZp
eCwgIlxuIik7CisKKyAgICAjIEhlYWRlciBndWFyZAorICAgICAgICBteSAkZ3VhcmQgPSAiX18i
IC4gJGNsYXNzTmFtZSAuICJfSF9fIjsKKworICAgIG15ICRjbHNDYXBzID0gc3Vic3RyKENsc1Rv
R09ialR5cGUoJGNsYXNzTmFtZSksIDUpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSAiZ2Rv
bV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgI215ICRwYXJlbnRDbHNDYXBz
ID0gIkdET01fIiAuIENsc1RvR09ialR5cGUoJHBhcmVudEludGVyZmFjZU5hbWUpOworCisgICAg
QGhQcmVmaXhHdWFyZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUgJGd1YXJk
CitFT0YKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworR19CRUdJTl9ERUNMUworCitF
T0YKKworICAgIHB1c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7CisKKyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAg
ICAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBz
fShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9N
X1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01f
VFlQRV8ke2Nsc0NhcHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xz
Q2Fwc30ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RP
TV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fw
c30pKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5T
VEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1l
fUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtjbGFzc05h
bWV9UHJpdmF0ZTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFyZW50Q2xhc3NO
YW1lfSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICAke2NsYXNzTmFtZX1Qcml2YXRlICpwcml2Owor
fTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX1DbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVu
dF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRf
dHlwZSAodm9pZCk7CisKK0VPRgorCisgICAgcHVzaChAaEJvZHksICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJHtndWFyZH1fUFJPUF8KKyNk
ZWZpbmUgJHtndWFyZH1fUFJPUF8KK0VPRgorCisgICAgcHVzaChAaEJvZHlQcm9wUHJlLCAkaW1w
bENvbnRlbnQpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19CRUdJTl9ERUNMU1xuIik7CisK
KyAgICAkaGRyUHJvcEluY2x1ZGV7ImdsaWItb2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJ
bmNsdWRleyJQcml2YXRlSW50JHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRoZHJQcm9w
SW5jbHVkZXsiR0RPTU9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiJHtpbnRl
cmZhY2VOYW1lfS5oIn0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZu
ZGVmICR7Z3VhcmR9X0lOVF8KKyNkZWZpbmUgJHtndWFyZH1fSU5UXworI2luY2x1ZGUgImdsaWIt
b2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludCR7cGFyZW50SGRyTmFtZX0uaCIKKyNpbmNs
dWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgorRU9GCisK
KyAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworCisgICAgIGlmICgke2lu
dGVyZmFjZU5hbWV9IGVxICJET01XaW5kb3ciIHx8ICghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9K
U0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VOYW1lKSkgeworICAgICAgICAkaW1wbENvbnRlbnQg
PSA8PCAiRU9GIjsKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oJHtp
bnRlcmZhY2VOYW1lfSogbm9kZSk7Cit9IC8qIG5hbWVzcGFjZSBXZWJDb3JlICovIAorRU9GCisg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKyAgICB9CisgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgI0NsYXNzIGRlY2xhcmF0
aW9uCisgICAgI2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICMgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgImNsYXNzIEdET00kaW50ZXJmYWNlTmFtZSB7XG4iKTsKKyAg
ICAjfSBlbHNlIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgImNsYXNzIEdET00kaW50
ZXJmYWNlTmFtZSA6IHB1YmxpYyAkcGFyZW50R0lmYWNlTmFtZSB7XG4iKTsKKyAgICAgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICB0eXBlZGVmICRwYXJlbnRHSWZhY2VOYW1lIEJhc2U7XG4i
KTsKKyAgICAjfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJwdWJsaWM6XG4iKTsKKworICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgaW50IGdldF9nb2JqX3R5cGUoKSB7IHJldHVybiBH
RE9NX1RZUEVfJHtjbHNDYXBzfTsgfVxuIik7CisKKyAgICBteSAkbmVlZHNTVkdDb250ZXh0ID0g
MDsKKyAgICAjIENvbnN0cnVjdG9yCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBHRE9N
JGludGVyZmFjZU5hbWUoUGFzc1JlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gaW1wbCIg
LiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQiIDogIiIpIC4gIik7
XG4iKTsKKworICAgICMgRGVzdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
dmlydHVhbCB+R0RPTSRpbnRlcmZhY2VOYW1lKCk7XG4iKSBpZiAoISRoYXNQYXJlbnQgb3IgJGlu
dGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50Iikgb3IgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRv
dyI7CisKKyAgICBpZiAoISRoYXNQYXJlbnQgfHwgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5k
b3ciKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogaW1wbCgpIGNv
bnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZXh0LmdldCgpOyB9XG5cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICJwcml2YXRlOlxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBS
ZWZQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0O1xuIik7CisgICAgICAgICMgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4gPiBt
X2ltcGw7XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFy
YW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJu
YWwsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0
KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxl
bWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsK
KyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAg
ICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29u
dGV4dDtcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRy
PCRpbXBsQ2xhc3NOYW1lID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAg
ICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSog
aW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRlOlxuIik7CisgICAgICAgICAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIFJlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gbV9pbXBs
O1xuIik7CisgICAgICAgICN9CisgICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgeworICAgICAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgIFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3RcbiIp
OworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHtcbiIpOworICAgICAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JGlu
dGVyZmFjZU5hbWUqPihCYXNlOjppbXBsKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICIgICAgfVxuIik7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJ9O1xu
Iik7CisKKyAgICAjIENvbnN0cnVjdG9yCisgICAgcHVzaChAY0JvZHksICJHRE9NJHtpbnRlcmZh
Y2VOYW1lfTo6R0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFj
ZU5hbWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0
IiA6ICIiKSAuICIpXG4iKTsKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIp
IHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOm1faW1wbChpbXBsKVxuIik7CisgICAgfSBl
bHNpZiAoJGhhc1BhcmVudCkgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRH
SWZhY2VOYW1lKGltcGwiIC4gKCRwYXJlbnROZWVkc1NWR0NvbnRleHQgPyAiLCBjb250ZXh0IiA6
ICIiKSAuICIpXG4iKSBpZiAoJGludGVyZmFjZU5hbWUgbmUgIkRPTVdpbmRvdyIpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDogJHBhcmVudEdJZmFjZU5hbWUoKVxu
IikgOworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAsIG1fY29udGV4dChjb250ZXh0KVxuIikg
aWYgJG5lZWRzU1ZHQ29udGV4dDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBtX2ltcGwo
aW1wbClcbiIpOworICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAgcHVzaChA
Y0JvZHksICJ9XG5cbiIpOworCisgICAgIyBEZXN0cnVjdG9yCisgICAgaWYgKCEkaGFzUGFyZW50
IG9yICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgcHVzaChAY0Jv
ZHksICJHRE9NJHtpbnRlcmZhY2VOYW1lfTo6fkdET00kaW50ZXJmYWNlTmFtZSgpXG4iKTsKKyAg
ICAgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBt
X2ltcGwuZ2V0KCktPmRlcmVmKCk7XG4iKTsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJOb2RlIikgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6R0RPTVNj
cmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQobV9pbXBsLT5kb2N1bWVu
dCgpLCBtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAj
aWYgKCRwb2RUeXBlKSB7CisgICAgICAgICAgICAjICAgIG15ICRhbmltYXRlZFR5cGUgPSAkaW1w
bENsYXNzTmFtZTsKKyAgICAgICAgICAgICMgICAgJGFuaW1hdGVkVHlwZSA9fiBzL1NWRy9TVkdB
bmltYXRlZC87CisKKyAgICAgICAgICAgICMgICAgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVt
YmVyCisgICAgICAgICAgICAjICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5
cGUoJGFuaW1hdGVkVHlwZSkgYW5kICRwb2RUeXBlIG5lICJmbG9hdCIpIHsKKyAgICAgICAgICAg
ICMgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIEpTU1ZHRHluYW1pY1BPRFR5cGVXcmFwcGVyQ2Fj
aGU8JHBvZFR5cGUsICRhbmltYXRlZFR5cGU+Ojpmb3JnZXRXcmFwcGVyKG1faW1wbC5nZXQoKSk7
XG4iKTsKKyAgICAgICAgICAgICMgICAgfQorICAgICAgICAgICAgI30KKyAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9N
T2JqZWN0KG1faW1wbC5nZXQoKSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQGNC
b2R5LCAiXG59XG5cbiIpOworICAgIH0KKworICAgICMgRG9jdW1lbnQgbmVlZHMgYSBzcGVjaWFs
IGRlc3RydWN0b3IgYmVjYXVzZSBpdCdzIGEgc3BlY2lhbCBjYXNlIGZvciBjYWNoaW5nLiBJdCBu
ZWVkcworICAgICMgaXRzIG93biBzcGVjaWFsIGhhbmRsaW5nIHJhdGhlciB0aGFuIHJlbHlpbmcg
b24gdGhlIGNhY2hpbmcgdGhhdCBOb2RlIG5vcm1hbGx5IGRvZXMuCisgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJEb2N1bWVudCIpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICJHRE9NJHtpbnRl
cmZhY2VOYW1lfTo6fkdET00kaW50ZXJmYWNlTmFtZSgpXG4iKTsKKyAgICAgICAgcHVzaChAY0Jv
ZHksICJ7XG4gICAgV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmpl
Y3Qoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KGltcGwoKSkpO1xufVxu
XG4iKTsKKyAgICB9CisKKyAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmVudEhkck5hbWV9LmgifSA9
IDE7CisgICAgJGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworICAgICRp
bXBsSW5jbHVkZXN7IkdET01PYmplY3QuaCJ9ID0gMTsKKworICAgICRpbXBsVHlwZWRlZnN7IiRj
bGFzc05hbWUifSA9IDE7CisgICAgJGltcGxUeXBlZGVmc3siJHtjbGFzc05hbWV9Q2xhc3MifSA9
IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVz
Lmg+CisjaW5jbHVkZSAiRE9NV2luZG93LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0
aW9uYWwgKi8KKyNpbmNsdWRlICJOb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0
aW9uYWwgKi8KKyNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIgLyogeXVrazogVE9ETyAtIG1ha2Ug
dGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIgLyogeXVrazogVE9E
TyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc0dyYWRpZW50LmgiIC8q
IHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNTdHls
ZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9u
YWwgKi8KKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIiAvKiB5dWtrOiBUT0RPIC0g
bWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIiAv
KiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCBv
biBFdmVudFRhcmdldCovCisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgorI2luY2x1ZGUg
IiR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICJQcml2YXRlJHtoZHJOYW1lfS5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnQke2hkck5hbWV9LmgiCisjaW5jbHVkZSAiJHtoZHJOYW1lfXByb3BzLmgiCisj
aW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAidXN0cmluZy5oIgorI2luY2x1ZGUgIktVUkwu
aCIKKworI2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKKyNpbmNsdWRlICJFdmVudC5oIgor
I2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1J1
bGUuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIlN0eWxlU2hlZXQu
aCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKKyNp
bmNsdWRlICJHZG9tRXZlbnQuaCIKKworCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGlt
cGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCiske2hhY2tEZWNs
c30KKworR19CRUdJTl9ERUNMUworCiske3N0cmluZ0NvbnZlcnR9CisKK0dfREVGSU5FX1RZUEUo
JHtjbGFzc05hbWV9LCAke2xjYXNlX2lmYWNlbmFtZX0sICR7cGFyZW50R09ialR5cGV9KTsKKwor
I2RlZmluZSBfR19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKQorCisv
Kgorc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjoke2lu
dGVyZmFjZU5hbWV9ICppdGVtOworfTsgIAorCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9HRVRf
UFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIEdET01fVFlQ
RV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1Qcml2YXRlKSkKKyovCitHX0VORF9ERUNMUworV2Vi
Q29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUo
JHtjbGFzc05hbWV9ICpyZXF1ZXN0KQoreworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYsICRp
bXBsQ29udGVudCk7CisKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisgICAgR0RP
TSR7aW50ZXJmYWNlTmFtZX0gKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NJHtpbnRl
cmZhY2VOYW1lfSo+KGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1Qo
cmVxdWVzdCkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfSo+KHJlcy0+aW1wbCgpKTsKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250
ZW50KTsKKworICAgICMgUHJvcGVydGllcworICAgIG15ICRmdW5jdGlvbk5hbWVQcmVmaXggPSAk
bGNhc2VfaWZhY2VuYW1lOyAKKyAgICBTS0lQUFJPUDogZm9yZWFjaCBteSAkYXR0cmlidXRlIChA
eyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHByb3BOYW1lID0gZGVjYW1l
bGl6ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpOworICAgICAgICBteSAkcHJvcF90eXBl
ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICBteSAkdHlwZSA9IEdldEdU
eXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSAiJGNsYXNzTmFtZSAq
dGhpeiI7CisgICAgICAgIG15ICRjdXN0b20gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsKKworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0pIHsKKyAgICAgICAg
ICAgIG5leHQgU0tJUFBST1A7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAkaW1w
bEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxIGlmICR0eXBlIGVx
ICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKworICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3Jhcmls
eSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAgICAgICAgICAgIG5leHQgU0tJUFBST1A7CisgICAg
ICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBhZGRQcm9wSW5jSGRyKCRwcm9wX3R5cGUpOwor
CisgICAgICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfQVBJICR0eXBlXG4kZnVuY3Rpb25O
YW1lUHJlZml4IiAuICJfcHJvcF9nZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZyk7XG5c
biIpOworCisgICAgICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfQVBJIHZvaWRcbiRmdW5j
dGlvbk5hbWVQcmVmaXgiIC4gIl9wcm9wX3NldF8iIC4gIiRwcm9wTmFtZSAoJGZ1bmN0aW9uU2ln
LCAkdHlwZSIgLiAidmFsdWUpO1xuXG4iKTsKKyAgICB9CisKKyAgICAjIFByb3BlcnRpZXMKKyAg
ICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK30KKworR19CRUdJTl9ERUNMUworCitlbnVtIHsK
KyAgICBCUk9XU0VSX0VWRU5ULAorICAgIExBU1RfU0lHTkFMCit9OworCitzdGF0aWMgZ3VpbnQg
ZXZlbnRfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CisKK2VudW0geworICAgIFBST1Bf
MCwKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgIG15IEB0
eHRfaW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfc2V0X3Byb3BzID0gKCk7CisgICAg
bXkgQHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAgIG15ICRwcml2X2ZuID0gR2V0UHJpdkZuKCRp
bnRlcmZhY2VOYW1lLCAke2xjYXNlX2lmYWNlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisKKyAg
ICBteSAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNl
bmFtZX1fX2dldF9wcm9wZXJ0eV9mbihHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAor
ICAgICAgICAgICAgICAgICAgICAgR1ZhbHVlICogdmFsdWUsCisgICAgICAgICAgICAgICAgICAg
ICBHUGFyYW1TcGVjICogcHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9ICpzZWxmID0gR0RPTV8k
e2Nsc0NhcHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKyAgICBzd2l0Y2ggKHByb3BfaWQpIHsK
K0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgbXkg
JHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9
X19zZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAg
ICAgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01f
JHtjbHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7
CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKworICAgIFNL
SVBFTlVNOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkg
eworICAgICAgICBteSAkcHJvcF9uYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwor
ICAgICAgICBteSAkc2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3Qo
JHByb3BfbmFtZSk7CisgICAgICAgIG15ICRnZXRwcm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRv
ci0+V0tfbGNmaXJzdCgkcHJvcF9uYW1lKTsKKworICAgICAgICBteSAkcHJvcE5hbWUgPSBkZWNh
bWVsaXplKCRwcm9wX25hbWUpOworICAgICAgICBteSAkcHJvcENhcHMgPSB1YygkcHJvcE5hbWUp
OworICAgICAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOwor
ICAgICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAke3By
b3BFbnVtfSA9ICJQUk9QXyR7cHJvcENhcHN9IjsKKyAgICAgICAgbXkgJHtwcm9wX2d0eXBlfSA9
IGRlY2FtZWxpemUoJHByb3BfdHlwZSk7CisgICAgICAgIGlmICgkcHJvcF9ndHlwZSBlcSAiZXZl
bnRfdGFyZ2V0IikgeworICAgICAgICAgICAgJHByb3BfZ3R5cGUgPSAiZXZlbnRfdGFyZ2V0X25v
ZGUiOworICAgICAgICB9CisgICAgICAgIG15ICR7cHJvcEdUeXBlfSA9IHVjKCRwcm9wX2d0eXBl
KTsKKyAgICAgICAgbXkgJGxjYXNlX2d0eXBlbmFtZSA9ICJnZG9tXyIgLiAkcHJvcF9ndHlwZTsK
KworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgICAgICBu
ZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgJGltcGxJbmNs
dWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NT
U3R5bGVEZWNsYXJhdGlvbiI7CisgICAgICAgIGlmIChza2lwUHJvcFRlbXBvcmFyaWx5KCR0eXBl
LCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgIiAgICAke3Byb3BFbnVtfSxc
biIpOworCisgICAgICAgIG15ICRndHlwZSA9IEdldFByb3BHVHlwZSgkcHJvcF90eXBlKTsKKyAg
ICAgICAgbXkgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEQUJMRSI7CisgICAgICAgIG15ICR3
cml0ZWFibGUgPSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkvOworICAgICAgICBteSAk
Y29uc3QgPSAicmVhZC1vbmx5ICI7CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICRjdXN0b20p
IHsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLW9ubHkgKGR1ZSB0byBjdXN0b20gZnVuY3Rp
b25zIG5lZWRlZCBpbiBnZG9td2Via2l0KSI7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOwor
ICAgICAgICB9CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICEkY3VzdG9tKSB7CisgICAgICAg
ICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURXUklURSI7CisgICAgICAgICAgICAkY29u
c3QgPSAicmVhZC13cml0ZSAiOworICAgICAgICB9CisKKyAgICAgICAgbXkgJF9ndHlwZSA9ICRn
dHlwZTsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgJF9n
dHlwZSA9ICJ1aW50IjsgIyB5dWsuCisgICAgICAgIH0KKyAgICAgICAgbXkgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChn
X2tsYXNzLCAke3Byb3BFbnVtfSwgCisgICAgICAgICAgICBnX3BhcmFtX3NwZWNfJHtfZ3R5cGV9
ICgiJHtwcm9wTmFtZX0iLCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgIiR7aW50ZXJmYWNl
TmFtZX0uJHtwcm9wTmFtZX0iLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAg
ICAgICIke2NvbnN0fSAke3R5cGV9ICR7aW50ZXJmYWNlTmFtZX0uJHtwcm9wTmFtZX0iLCAvKiBs
b25nZXIgKi8KK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0
YWxsX3Byb3ApOworICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9ICIvKiBUT0RPISAkZ3R5cGUg
Ki9cbiI7CisKKyAgICAgICAgaWYgKCR3cml0ZWFibGUpIHsKKworICAgICAgICAgICAgbXkgJG9r
ID0gMDsKKyAgICAgICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgICAgICBpZiAo
JGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiV2Vi
Q29yZTo6U3RyaW5nIjsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAg
InB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAg
ICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAg
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1
dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAg
ICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lm
ICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
JHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERp
cmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAg
ICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgk
Z3R5cGUgZXEgImxvbmciKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0g
bmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8g
aWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50Iikg
eworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAg
ICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJjaGFyIikgeworICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjIFhYWCBUT0RPIC0gc2tpcCBMb2Nh
dGlvbgorICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJMb2NhdGlvbiIpIHsKKyAg
ICAgICAgICAgICAgICAkb2sgPSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAo
JG9rKSB7CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICBjYXNlICR7
cHJvcEVudW19OlxuICAgIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJv
cHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0
cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0
X3Byb3BzLCAiICAgICAgICBnc2VsZi0+c2V0JHtzZXRwcm9wX25hbWVfZm59KCR7Y29udmVydF9m
bn0oZ192YWx1ZV9nZXRfJGd0eXBlICh2YWx1ZSkpIik7CisKKyAgICAgICAgICAgICAgICBwdXNo
KEB0eHRfc2V0X3Byb3BzLCAiLCBlYyIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9u
c307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIik7XG4iKTsKKworICAg
ICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1c
biIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVzaChAdHh0X2dldF9w
cm9wcywgIiAgICBjYXNlICR7cHJvcEVudW19OlxuICAgIHtcbiIpOworCisgICAgICAgIG15ICRl
eGNlcHRpb24gPSAiIjsKKyAgICAgICAgaWYgKEB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9u
c30pIHsKKyAgICAgICAgICAgICRleGNlcHRpb24gPSAiZWMiOworICAgICAgICAgICAgcHVzaChA
dHh0X2dldF9wcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4i
KTsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15
ICRwb3N0X2NvbnZlcnRfZm4gPSAiIjsKKyAgICAgICAgbXkgJGRvbmUgPSAwOworICAgICAgICBp
ZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAkY29udmVydF9mbiA9ICJfR19H
RVRfVVRGOCgiOworICAgICAgICAgICAgJHBvc3RfY29udmVydF9mbiA9ICIpIjsKKyAgICAgICAg
fQorICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICAjJGNv
bnZlcnRfZm4gPSAiV1RGOjpnZXRQdHIoJHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKCI7
CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSBHZXRQcml2Rm4oJGludGVyZmFjZU5hbWUsICR7
bGNhc2VfZ3R5cGVuYW1lfSwgImdzZWxmIiwgInNlbGYiKTsKKyAgICAgICAgICAgICMkY29udmVy
dF9mbiA9ICIke2xjYXNlX2d0eXBlbmFtZX1fZ2V0X3ByaXZhdGUoUGFzc1JlZlB0cjxXZWJDb3Jl
Ojoke3Byb3BfdHlwZX0+KCI7CisgICAgICAgICAgICAjJHBvc3RfY29udmVydF9mbiA9ICIpIjsK
KyAgICAgICAgICAgIG15ICRkb21vYmpUeXBlID0gIkdET00iLiRwcm9wX3R5cGU7CisgICAgICAg
ICAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6JHtwcm9wX3R5cGV9PiBwdHIgPSBnc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0
aW9ufSk7CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCAodmFsdWUsIFdlYkNvcmU6OnRvR0RP
TShwdHIuZ2V0KCkpKTsKK0VPRgorICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4
dF9nZXRfcHJvcCk7CisgICAgICAgICAgICAkZG9uZSA9IDE7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoISRkb25lKSB7CisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAg
ICBnX3ZhbHVlX3NldF8kX2d0eXBlICh2YWx1ZSwgJHtjb252ZXJ0X2ZufWdzZWxmLT4ke2dldHBy
b3BfbmFtZV9mbn0oJHtleGNlcHRpb259KSR7cG9zdF9jb252ZXJ0X2ZufSk7XG4iKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAg
IH1cbiIpOworCisgICAgICAgICMgaXMgdGhpcyBfZW50aXJlbHlfIG5lY2Vzc2FyeT8/PworICAg
ICAgICAjIGNhbiBpdCBiZSBkb25lIHdpdGggZ2VuZXJpYyBnX3BhcmFtX3NwZWNfZ3R5cGUKKyAg
ICAgICAgIyBhbmQgZ2V0dGluZyBhIGZldyB0aGluZ3MsIGlnbm9yaW5nIHRoZSBtaW4tbWF4IGZv
ciBleGFtcGxlPworICAgICAgICBpZiAoJGd0eXBlIGVxICJpbnQiKSB7CisgICAgICAgICAgICAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOSU5ULCAg
ICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhJTlQsIC8qIG1heCAqLworICAg
ICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNp
ZiAoJGd0eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3Ag
PSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBGQUxTRSwgLyogZGVmYXVsdCAqLworRU9GCisg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAgICAgICAgICAkdHh0X2lu
c3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlORkxPQVQsICAgICAg
ICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWEZMT0FULCAvKiBtYXggKi8KKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAiZG91YmxlIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8
PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkRPVUJMRSwgICAgICAgIC8qIG1pbiAqLwor
ICAgICAgICAgICAgICAgIEdfTUFYRE9VQkxFLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAw
LCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
dWludDY0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAg
ICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhV
SU5UNjQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICov
CitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUxPTkcsIC8qIG1heCAqLworICAgICAg
ICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAo
JGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAi
RU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkxPTkcsICAgICAgICAvKiBtaW4gKi8KKyAgICAg
ICAgICAgICAgICBHX01BWExPTkcsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAg
ICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50Iikg
eworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAg
ICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5ULCAvKiBt
YXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICov
CisgICAgICAgICAgICAgICAgR19NQVhVSU5UMTYsIC8qIG1heCAqLworICAgICAgICAgICAgICAg
IDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVx
ICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7Cisg
ICAgICAgICAgICAgICAgR19NSU5JTlQ4LCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAg
ICAgR19NQVhJTlQ4LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVm
YXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwg
ICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDgsIC8qIG1heCAqLwor
ICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJv
cCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCitFT0YKKyAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICAkdHh0X2lu
c3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdET01fVFlQRV8ke3Byb3BH
VHlwZX0sIC8qIGdvYmplY3QgdHlwZSAqLworRU9GCisgICAgICAgIH0KKyAgICAgICAgcHVzaChA
dHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAoR1BhcmFtRmxhZ3MpJHtncGFy
YW1mbGFnfSkpOyAgICAgICAgICAgICAgICAgICAKKworRU9GCisgICAgICAgIHB1c2goQHR4dF9p
bnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisKKworICAgIH0KKworICAgIHB1c2go
QGNCb2R5UHJpdiwgIn07XG5cbiIpOworCisKKyAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lE
KG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CitFT0YK
KyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgICR0eHRfc2V0
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lO
VkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisgICAgICAgIGJyZWFr
OworICAgIH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0eHRfc2V0X3Byb3Ap
OworCisgICAgbXkgJHR4dF9zZXRfZ2V0X3Byb3BzID0gPDwgIkVPRiI7CisgICAgY2FzZSBQUk9Q
X0FHRToKKyAgICAgICAgc2VsZi0+YWdlID0gZ192YWx1ZV9nZXRfaW50ICh2YWx1ZSk7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBQUk9QX0FHRToKKyAgICAgICAgZ192YWx1ZV9zZXRfaW50
KHZhbHVlLCBzZWxmLT5hZ2UpOworICAgICAgICBicmVhazsKKworICAgICAgICArICAgZ192YWx1
ZV9pbml0KCZwYXJhbXNbMF0sIEdfVFlQRV9GUk9NX0lOU1RBTkNFKG9iamVjdCkpOworICAgICAg
ICArICAgZ192YWx1ZV9zZXRfaW5zdGFuY2UoJnBhcmFtc1swXSwgKGdwb2ludGVyKW9iamVjdCk7
CisKK0VPRgorCisgICAgIyBUT0RPOiB3b3JrIG91dCBpZiBpdCdzIGFwcHJvcHJpYXRlIHRvIHNw
bGl0IHRoaXMgaW50byBtYW55IGRpZmZlcmVudAorICAgICMgc2lnbmFscyBlLmcuICJjbGljayIg
ZXRjLgorICAgIG15ICR0eHRfaW5zdGFsbF9zaWduYWxzID0gIiI7CisKKyAgICBpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgb3IKKyAgICAgICAgJGludGVyZmFjZU5hbWUgZXEgIlhN
TEh0dHBSZXF1ZXN0IikgeworICAgICAgICAkdHh0X2luc3RhbGxfc2lnbmFscyA9IDw8ICJFT0Yi
OworICAgIGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJyb3dz
ZXItZXZlbnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhyZXF1ZXN0Q2xhc3MpLAorICAg
ICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiks
CisgICAgICAgIDAsCisgICAgICAgIE5VTEwsCisgICAgICAgIE5VTEwsCisgICAgICAgIHdlYmtp
dF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICBHX1RZUEVfTk9ORSwgMiwK
KyAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CitFT0YKKyAgICB9CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFj
ZW5hbWV9X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfSog
cmVxdWVzdCA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOyovCisgICAgLyoke2NsYXNzTmFtZX1Q
cml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworICAgIAorICAgIC8qR09iamVjdENsYXNz
ICpwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVlayAoZ190eXBlX3BlZWtfcGFyZW50ICgk
e3BhcmVudEdPYmpUeXBlfSkpOyovCisKKyAgICAvKiBGcmVlIGFueSBtZW1vcnkgb3IgY2xvc2Ug
YW55IGZpbGVzICovIAorCisgICAgLypwYXJlbnRfY2xhc3MtPiBmaW5hbGl6ZSAob2JqZWN0KTsq
LworCisgICAgR19PQkpFQ1RfQ0xBU1MoJHtsY2FzZV9pZmFjZW5hbWV9X3BhcmVudF9jbGFzcykt
PmZpbmFsaXplKG9iamVjdCk7Cit9CisKK0B0eHRfc2V0X3Byb3BzCisKK0B0eHRfZ2V0X3Byb3Bz
CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9jbGFzc19pbml0KCR7Y2xhc3NOYW1l
fUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR09iamVjdENsYXNzICpnX2tsYXNzID0gR19P
QkpFQ1RfQ0xBU1MgKHJlcXVlc3RDbGFzcyk7CisgICAgZ19rbGFzcy0+ZmluYWxpemUgPSAke2xj
YXNlX2lmYWNlbmFtZX1fZmluYWxpemU7CisgICAgZ19rbGFzcy0+c2V0X3Byb3BlcnR5ID0gJHts
Y2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlfZm47CisgICAgZ19rbGFzcy0+Z2V0X3Byb3Bl
cnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm47CisgICAgCitAdHh0X2lu
c3RhbGxfcHJvcHMKKworJHR4dF9pbnN0YWxsX3NpZ25hbHMKKworICAgIC8qZ190eXBlX2NsYXNz
X3JlbW92ZV9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKCR7Y2xhc3NOYW1lfVByaXZhdGUp
KTsqLworfQorCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1faW5pdCgke2NsYXNzTmFt
ZX0qIHJlcXVlc3QpCit7CisgICAgLyoke2NsYXNzTmFtZX1Qcml2YXRlKiBwcml2ID0gR0RPTV8k
e2Nsc0NhcHN9X0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2
OyovCit9ICAgCisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOwor
CisgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUludEdkb20ke2ludGVyZmFjZU5hbWV9LmgifSA9
IDE7CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNpZm5kZWYgJHtndWFyZH1fUFJJ
Vl8KKyNkZWZpbmUgJHtndWFyZH1fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2lu
Y2x1ZGUgIiR7cGFyZW50SGRyTmFtZX0uaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisvKiNp
bmNsdWRlICJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIiovCisvKkdfQkVHSU5fREVDTFMqLwor
LypjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9OyovCisjaW5jbHVkZSAiJHtpbnRlcmZh
Y2VOYW1lfS5oIgorRU9GCisKKyAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBHRE9NJHtpbnRlcmZhY2VOYW1lfSA6IHB1YmxpYyAke3BhcmVudEdJZmFjZU5hbWV9IHsK
KworcHVibGljOgorICAgIEdET00ke2ludGVyZmFjZU5hbWV9KFdlYkNvcmU6OiR7aW50ZXJmYWNl
TmFtZX0qIGltcGwpIDogJHBhcmVudEdJZmFjZU5hbWV9KGltcGwpCisgICAgeyBpbXBsLT5yZWYo
KTsgfQorICAgIH5HRE9NJHtpbnRlcmZhY2VOYW1lfSgpIHsgbV9pbXBsLT5kZXJlZigpOyB9CisK
KyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9p
bXBsOyB9CisKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICptX2lt
cGw7Cit9OworCitFT0YKKworICAgICAgICAjcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQp
OworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSAke2NsYXNzTmFtZX07CisKK1dlYkNv
cmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7
Y2xhc3NOYW1lfSAqcmVxdWVzdCk7CisKKy8qR19FTkRfREVDTFMqLworCisjZW5kaWYgLyogJHtn
dWFyZH1fUFJJVl8gKi8KKworRU9GCisKKyAgICAjcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2Vi
Q29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KChXZWJDb3JlOjpOb2RlKikocmVzKSk7CisgICAgICAg
IHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICAgICAjaWYgKCRwYXJhbUlE
TFR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICMgWFhYID8/Pz8gd3RmPz8gOikg
Y29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3siSlND
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgI30gZWxzZSB7CisgICAg
ICAgICMgICAgJGltcGxJbmNsdWRlc3skaW5jbHVkZUhkcn0gPSAxOworICAgICAgICAjfQorICAg
ICAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAgICAgICRp
bXBsSW5jbHVkZXN7IlByaXZhdGVHZG9tRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAgICAgTE9P
UDogZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CisgICAg
ICAgICAgICAjbXkgJGZ1bmN0aW9uTmFtZSA9IGRlY2FtZWxpemUoJGNsYXNzTmFtZSkgLiAiXyIg
LiBkZWNhbWVsaXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAgICAg
ICBteSAkZm5fc2lnX25hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAg
ICAgICAgICBteSAkZm5fc2lnX3R5cGUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZTsKKyAg
ICAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGlu
dGVyZmFjZU5hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25hbWUpOworICAgICAgICAg
ICAgICAgIG15ICRyZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKyAgICAgICAg
ICAgICAgICBteSAkcmV0X2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRmbl9zaWdfdHlw
ZSk7CisKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSAiJGNsYXNzTmFtZSAqdGhp
eiI7CisKKyAgICAgICAgICAgICAgICBteSAkY2FsbF9pbXBsX3BhcmFtcyA9ICIiOworICAgICAg
ICAgICAgICAgIG15ICRnZG9tX2ZuX3ByZWZpeCA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRmbl9z
aWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9j
c3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X3Byb3BlcnR5IikgeworICAgICAgICAgICAgICAgICAg
ICAjIHJlc2VydmVkIG5hbWUgY2xhc2ggaW4gZ2xpYiEKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSA9ICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfY3NzX3Byb3BlcnR5
IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBDb21wYXJl
SG93IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUg
ZXEgImdkb21fcmFuZ2VfY29tcGFyZV9ib3VuZGFyeV9wb2ludHMiKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBm
dW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIFNWR0RvY3Vt
ZW50IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIGVx
ICJHZG9tU1ZHRG9jdW1lbnQgKiIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHks
ICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9u
TmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBY
WFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICov
XG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlvbnMgZm9y
IG5vdworICAgICAgICAgICAgICAgIG15ICRpc19jdXN0b21fZm4gPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAgICAgICAgICAgICAgIGlm
ICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9pdGVtIiB8fAorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9uYW1l
ZF9pdGVtIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3ht
bF9odHRwX3JlcXVlc3Rfb3BlbiIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3NldF9yZXF1ZXN0X2hlYWRlciIgfHwKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3Nl
bmQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0
dHBfcmVxdWVzdF9nZXRfcmVzcG9uc2VfaGVhZGVyIiB8fAorICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfb3ZlcnJpZGVfbWltZV90eXBl
IiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRw
X3JlcXVlc3RfZGlzcGF0Y2hfZXZlbnQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgZXEgImdkb21fZWxlbWVudF9zZXRfYXR0cmlidXRlIikgeworICAgICAgICAgICAgICAg
ICAgICAkaXNfY3VzdG9tX2ZuID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICMkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfYWRkX2V2ZW50
X2xpc3RlbmVyIiB8fAorICAgICAgICAgICAgICAgICAgICAjJGZ1bmN0aW9uTmFtZSBlcSAiZ2Rv
bV94bWxfaHR0cF9yZXF1ZXN0X3JlbW92ZV9ldmVudF9saXN0ZW5lciIgfHwKKyAgICAgICAgICAg
ICAgICBpZiAoJGlzX2N1c3RvbV9mbiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX25leHRfbm9kZSIgJiYgCisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiICYmIAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxk
IiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2lu
c2VydF9iZWZvcmUiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3BhcmVudF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9maXJzdF9jaGlsZCIgJiYg
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJf
bGFzdF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fdHJlZV93YWxrZXJfcHJldmlvdXNfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9zaWJsaW5nIiAmJiAKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wcmV2
aW91c19ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2Rv
bV90cmVlX3dhbGtlcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3JfcHJldmlvdXNfbm9kZSIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24g
JHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxu
Iik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRl
cnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5
cGU7CisgICAgICAgICAgICAgICAgICAgIGFkZEluY0JvZHkoJHBhcmFtSURMVHlwZSk7CisgICAg
ICAgICAgICAgICAgICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgbXkgJHBhcmFtVHlwZSA9IEdldEdUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAg
ICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworCisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvblNpZyAuPSAiLCAkcGFyYW1UeXBlJHBhcmFtTmFt
ZSI7CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9N
Q2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFt
X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlw
ZSBuZSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbUlE
TFR5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRp
bXBsSW5jbHVkZXN7IlByaXZhdGVJbnRHZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUdkb20ke3BhcmFt
SURMVHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyIke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsgIyB0aGlzIGlzbid0IHN0cmljdGx5IG5lY2Vz
c2FyeSBidXQgb25lIG9mIHRoZSBhdXRvLWdlbmVyYXRlZCBmaWxlcyBuZWVkZWQgaXQgc28uLi4u
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSB8fCAoJHBhcmFtSURMVHlwZSBl
cSAiRE9NU3RyaW5nIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbU5hbWUgPSAi
X2dfIiAuICRwYXJhbU5hbWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAk
Y2FsbF9pbXBsX3BhcmFtcyAuPSAiLCAkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRj
YWxsX2ltcGxfcGFyYW1zID0gIiRwYXJhbU5hbWUiOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRmbl9zaWdfdHlw
ZSk7CisgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAg
ICAgICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke2ZuX3NpZ190eXBlfSJ9ID0gMTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQi
KSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9t
IGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
Ikdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdf
dHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7IlByaXZhdGVJbnRHZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUdkb20k
e2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyJHZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
ICMgWFhYIHNraXAgY3VzdG9tIGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgIyBi
dXQgc2tpcCBmcm9tIGhlcmUgdG8gYWxsb3cgc29tZSBoZWFkZXJzIHRvIGJlIGNyZWF0ZWQKKyAg
ICAgICAgICAgICAgICAjIGZvciBhIHN1Y2Nlc3NmdWwgY29tcGlsZS4KKyAgICAgICAgICAgICAg
ICBpZiAoJGlzX2N1c3RvbV9mbiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1l
IG5lICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUiICYmCisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxk
IikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IGN1
c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rp
b25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG15ICRfcmV0dXJuVHlwZSA9ICRyZXR1cm5U
eXBlOworICAgICAgICAgICAgICAgIG15ICRkb21vYmpUeXBlID0gIkdET00iLiRmbl9zaWdfdHlw
ZTsKKyAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21faHRtbF9jYW52YXNfZWxl
bWVudF9nZXRfY29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggSEFDSyEKKyAg
ICAgICAgICAgICAgICAgICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250
ZXh0IConOworICAgICAgICAgICAgICAgICAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dCc7CisgICAgICAgICAgICAgICAgICAgICRnZG9tX2ZuX3ByZWZpeCA9ICdn
ZG9tX2NhbnZhc19yZW5kZXJpbmdfY29udGV4dCc7CisgICAgICAgICAgICAgICAgICAgIG5leHQg
TE9PUDsgIyBYWFggLSB0b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICAg
ICAgICAgICAgICMgbXVzdCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMg
Y29kZSB0byBmaW5kIG91dCBob3cpCisgICAgICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3b3Jr
IG91dCBob3cgdG8gY3JlYXRlIGEgR0RPTURvbU9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEg
J0RPTU9iamVjdCcgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAnZ2Rv
bV9kb2N1bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAg
ICAjIFhYWCBIQUNLIQorICAgICAgICAgICAgICAgICAgICAkX3JldHVyblR5cGUgPSAnR2RvbUNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRCAqJzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9ialR5
cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCc7CisgICAgICAgICAgICAgICAgICAg
ICRnZG9tX2ZuX3ByZWZpeCA9ICdnZG9tX2NhbnZhc19yZW5kZXJpbmdfY29udGV4dDJkJzsKKyAg
ICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93
LiAgc2tpcCBpdC4KKyAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01P
YmplY3QgKFRPRE86IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAgICAgICAgICAg
ICAgICAgICAgIyBiZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAg
ICAgICBwdXNoKEBoQm9keSwgIldFQktJVF9BUEkgJF9yZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1l
ICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
JF9yZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcpXG57XG4iKTsKKworICAg
ICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAodGhpeiwg
MCk7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTtcbiIpOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7
aW50ZXJmYWNlTmFtZX0gKiBpdGVtID0gKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSh0
aGl6KSk7XG4iKTsKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7
CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCBy
ZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKGl0ZW0sIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoaXRlbSk7
XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFt
IChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBh
cmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAg
bXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgbXkg
JHBhcmFtVHlwZUlzUHJpbWl0aXZlID0gJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgk
cGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBl
ID0gSXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBh
ZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1f
aXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJH
ZG9tJHtwYXJhbUlETFR5cGV9In0gPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGlmICghJHBhcmFtVHlwZUlzUHJpbWl0aXZlKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsICgkcGFyYW1OYW1lLCAwKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3Jl
dHVybl9pZl9mYWlsICgkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgJHJldHVyblBhcmFtTmFtZSA9ICIiOworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkg
JHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAg
bXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgbXkg
JHBhcmFtVHlwZSA9IEdldEdUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworCisgICAgICAgICAg
ICAgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1J
RExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgIyBIQUNLIQorICAgICAgICAgICAgICAgICAg
ICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X29wZW4iICYmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtLT5uYW1lIGVxICJ1cmwiKSB7CisKKyAgICAg
ICAgICAgICAgICAgICAgICAgICMkaW1wbEluY2x1ZGVzeyJLVVJMLmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpLVVJMIF9nXyR7cGFy
YW1OYW1lfSA9IFdlYkNvcmU6OktVUkwoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9N
U3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2Vi
Q29yZTo6U3RyaW5nIF9nXyR7cGFyYW1OYW1lfSA9IFdlYkNvcmU6OlN0cmluZygkcGFyYW1OYW1l
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgk
cGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9n
ZG9tX2ZuID0gImdkb21fIiAuIGRlY2FtZWxpemUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAjcHVzaChAY0JvZHksICIgICAgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6
OiR7cGFyYW1JRExUeXBlfT4gKiBfZ18ke3BhcmFtTmFtZX0gPSBXVEY6OlJlZlB0cjwke3BhcmFt
X2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJhbU5hbWUpPjtcbiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIg
ICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogX2dfJHtwYXJhbU5hbWV9ID0gc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRf
cHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29y
ZTo6JHtwYXJhbUlETFR5cGV9ICogX2dfJHtwYXJhbU5hbWV9ID0gKCR7cGFyYW1fZ2RvbV9mbn1f
Z2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZh
dWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0sIDApO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKF9nXyR7cGFyYW1OYW1lfSk7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiX2dfIi4kcGFyYW1OYW1lIGlmICRw
YXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJldHVybiJ9OworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIG15ICRhc3NpZ24gPSAiIjsKKyAgICAgICAgICAgICAgICBteSAk
YXNzaWduX3ByZSA9ICIiOworICAgICAgICAgICAgICAgIG15ICRhc3NpZ25fcG9zdCA9ICIiOwor
ICAgICAgICAgICAgICAgICRnX3JlcyA9IDA7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgeworCisgICAgICAgICAgICAgICAgICAg
IGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWdu
ID0gIlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtmbl9zaWdfdHlwZX0+IGdfcmVzID0gIjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcHJlID0gIldURjo6Z2V0UHRyKCI7CisgICAgICAg
ICAgICAgICAgICAgICAgICAkYXNzaWduX3Bvc3QgPSAiKSI7CisgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduID0gIiR7X3JldHVyblR5
cGV9IHJlcyA9ICI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgbXkgJGV4Y2VwdGlvbnMgPSAiIjsKKyAgICAgICAgICAgICAgICBpZiAo
QHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIGlmICgke2NhbGxfaW1wbF9wYXJhbXN9IG5lICIiKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICIsIGVjIjsKKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRleGNlcHRpb25zID0gImVjIjsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgICMgbmVlZCB0aGlzIGZvciBpbmNsdWRpbmcgLi4uIF9zb21ldGhpbmdfIC0gZm9yIHRoZSBj
bGFzcyBhcmdzCisgICAgICAgICAgICAgICAgI2lmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAg
ICAgICAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0g
MTsKKyAgICAgICAgICAgICAgICAjfQorICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1l
IGVxICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIGVxICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgfHwKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiIHx8CisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQi
KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGls
ZCA9IDw8ICJFT0YiOworICAgIGJvb2wgb2sgPSBpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxf
aW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSk7CisgICAgaWYgKG9rKQorICAgIHsKKyAgICAgICAg
JHtfcmV0dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nhc3Q8JHtfcmV0dXJuVHlwZX0+KFdlYkNvcmU6
OnRvR0RPTSgkcmV0dXJuUGFyYW1OYW1lKSk7IAorICAgICAgICByZXR1cm4gcmVzOworICAgIH0K
KyAgICByZXR1cm4gTlVMTDsKK0VPRgorICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
JGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBuZSAnZ2RvbV9kb2N1bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0Jykgewor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAvKiBYWFggVE9ETyAtIGdldCBj
YW52YXMgb2JqZWN0IChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtl
eGNlcHRpb25zfSkpOyovXG4iICk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn1fR19HRVRfVVRGOChpdGVtLT4ke2Zu
X3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpO1xuIiApOworICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkZ19yZXMpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICRnX3JlcyA9ICIke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9
aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fz
c2lnbl9wb3N0fSkiIDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVt
LT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWdu
X3Bvc3R9KTtcbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9t
X2ZuKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRE9NT2Jq
ZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke19yZXR1cm5U
eXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKGdf
cmVzLmdldCgpKSk7IFxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9N
T2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0
dXJuIE5VTEw7IC8qIFhYWCBUT0RPOiByZXR1cm4gY2FudmFzIG9iamVjdCAqL1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICByZXR1cm4gcmVzO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbiIpOworCisgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICJ9XG5cbiIpOworICAgICAgICB9CisKKyAgICBwdXNo
KEBjQm9keSwgIn0gLyogZXh0ZXJuIFwiQ1wiICovXG5cbiIpOworICAgIHB1c2goQGNCb2R5UHJp
diwgIn0gLyogZXh0ZXJuIFwiQ1wiICovXG5cbiIpOworCisgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIjZW5kaWYg
LyogJHtndWFyZH1fSU5UXyovXG4iKTsKKworICAgIHB1c2goQGhCb2R5LCAiR19FTkRfREVDTFNc
blxuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5kaWYgLyogJGd1YXJkICovXG4iKTsKKworICAg
IHB1c2goQGhCb2R5UHJvcCwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2goQGhCb2R5UHJv
cCwgIiNlbmRpZiAvKiAke2d1YXJkfV9QUk9QXyovXG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxw
ZXIKK3N1YiBXcml0ZURhdGEKK3sKKyAgICBteSAoJG9iamVjdCwgJG5hbWUpID0gQF87CisKKwor
ICAgICMgV3JpdGUgSW50ZXJuYWwgaGVhZGVyCisgICAgbXkgJGhkckZOYW1lSW50ZXJuYWwgPSAi
JG91dHB1dERpci9Qcml2YXRlSW50IiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKElOVEhFQURF
UiwgIj4kaGRyRk5hbWVJbnRlcm5hbCIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJG
TmFtZUludGVybmFsIjsKKworICAgIHByaW50IElOVEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmlu
dCBJTlRIRUFERVIgIlxuIjsKKyAgICBwcmludCBJTlRIRUFERVIgQGhCb2R5SW50ZXJuYWw7Cisg
ICAgY2xvc2UoSU5USEVBREVSKTsKKworICAgICMgV3JpdGUgUHJpdmF0ZSBoZWFkZXIKKyAgICBt
eSAkaGRyRk5hbWVQcml2ID0gIiRvdXRwdXREaXIvUHJpdmF0ZSIgLiAkbmFtZSAuICIuaCI7Cisg
ICAgb3BlbihQUklWSEVBREVSLCAiPiRoZHJGTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9w
ZW4gZmlsZSAkaGRyRk5hbWVQcml2IjsKKworICAgIHByaW50IFBSSVZIRUFERVIgQGhQcmVmaXg7
CisgICAgcHJpbnQgUFJJVkhFQURFUiAiXG4iOworICAgIHByaW50IFBSSVZIRUFERVIgQGhCb2R5
UHJpdjsKKyAgICBjbG9zZShQUklWSEVBREVSKTsKKworICAgICMgV3JpdGUgUHJpdmF0ZSBJbXBs
ZW1lbnRhdGlvbgorICAgIG15ICRpbXBsRmlsZU5hbWVQcml2ID0gIiRvdXRwdXREaXIvUHJpdmF0
ZSIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKFBSSVZJTVBMLCAiPiRpbXBsRmlsZU5hbWVQ
cml2Iikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGltcGxGaWxlTmFtZVByaXYiOworCisg
ICAgcHJpbnQgUFJJVklNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQgUFJJVklNUEwgIlxuIjsKKyAg
ICBwcmludCBQUklWSU1QTCBAY0JvZHlQcml2OworCisgICAgY2xvc2UoUFJJVklNUEwpOworCisg
ICAgIyBXcml0ZSBwcm9wZXJ0aWVzIGhlYWRlciAoYXZvaWRzIHJlY3Vyc2l2ZSBuaWdodG1hcmUp
CisgICAgbXkgJGhkclByb3BGTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICJwcm9wcy5o
IjsKKyAgICBvcGVuKFBST1BIRUFERVIsICI+JGhkclByb3BGTmFtZSIpIG9yIGRpZSAiQ291bGRu
J3Qgb3BlbiBmaWxlICRoZHJQcm9wRk5hbWUiOworCisgICAgJGhkclByb3BJbmNsdWRlc3siZ2xp
Yi1vYmplY3QuaCJ9ID0gMTsKKworICAgIHByaW50IFBST1BIRUFERVIgQGhQcmVmaXg7CisgICAg
cHJpbnQgUFJPUEhFQURFUiAiLyogcmVjdXJzaXZlIGluY2x1ZGVzIC8gZGVmaW5lcyBpc3N1ZSBm
b3JjZXMgc2VwYXJhdGUgaGVhZGVyIGZvciBwcm9wZXJ0aWVzLlxucGVyaGFwcyAtIGJldHRlciAt
IGFsbCBnZG9tIGd0ayBmdW5jdGlvbnMgc2hvdWxkIGJlIGluIGhlcmUhKi9cbiI7CisgICAgcHJp
bnQgUFJPUEhFQURFUiBAaEJvZHlQcm9wUHJlOworICAgIHByaW50IFBST1BIRUFERVIgIiNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPlxuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIG1h
cCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWhkclByb3BJbmNsdWRlcyk7Cisg
ICAgcHJpbnQgUFJPUEhFQURFUiAiXG4iIGlmIGtleXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAg
cHJpbnQgUFJPUEhFQURFUiAiXG4iOworICAgIHByaW50IFBST1BIRUFERVIgQGhCb2R5UHJvcDsK
KworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdyaXRlIHB1YmxpYyBoZWFkZXIuCisgICAg
bXkgJGhkckZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKEhF
QURFUiwgIj4kaGRyRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWUi
OworCisgICAgJGhkckluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQg
SEVBREVSIEBoUHJlZml4OworICAgIHByaW50IEhFQURFUiBAaFByZWZpeEd1YXJkOworICAgIHBy
aW50IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHBy
aW50IEhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJJbmNs
dWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaGRySW5jbHVkZXMpOworICAg
IHByaW50IEhFQURFUiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaEJvZHlQcmU7CisgICAgcHJp
bnQgSEVBREVSIG1hcCB7ICJ0eXBlZGVmIHN0cnVjdCBfJF8gJF87XG4iIH0gc29ydCBrZXlzKCVp
bXBsVHlwZWRlZnMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWltcGxUeXBlZGVm
cyk7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAg
ICAjIFdyaXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBzb3VyY2VzCisgICAgbXkgJGltcGxGaWxlTmFt
ZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKElNUEwsICI+JGlt
cGxGaWxlTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWUiOwor
CisgICAgcHJpbnQgSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcImNv
bmZpZy5oXCJcblxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8d3RmL0dldFB0ci5oPlxu
IjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcIkNTdHJpbmcuaFwiXG4iOworICAgIHByaW50
IElNUEwgIiNpbmNsdWRlIFwiUGxhdGZvcm1TdHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwg
IiNpbmNsdWRlIFwiQXRvbWljU3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVk
ZSBcInVzdHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiS1VSTC5oXCJc
biI7CisgICAgcHJpbnQgSU1QTCBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlz
KCVpbXBsSW5jbHVkZXMpOworICAgIHByaW50IElNUEwgIlxuIiBpZiBrZXlzKCVpbXBsSW5jbHVk
ZXMpOworICAgIHByaW50IElNUEwgQGNCb2R5OworCisgICAgY2xvc2UoSU1QTCk7CisKKyAgICAl
aW1wbEluY2x1ZGVzID0gKCk7CisgICAgJWltcGxUeXBlZGVmcyA9ICgpOworICAgICVoZHJJbmNs
dWRlcyA9ICgpOworICAgIEBoUHJlZml4ID0gKCk7CisgICAgQGhCb2R5ID0gKCk7CisgICAgQGhC
b2R5UHJpdiA9ICgpOworICAgIEBoQm9keUludGVybmFsID0gKCk7CisgICAgQGhCb2R5UHJvcCA9
ICgpOworICAgIEBoQm9keVByb3BQcmUgPSAoKTsKKworICAgIEBjUHJlZml4ID0gKCk7CisgICAg
QGNCb2R5ID0gKCk7CisgICAgQGNCb2R5UHJpdiA9ICgpOworfQorCisxOwpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAg
ICBdIEhUTUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCAgICAgIGZvcm07CiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGVmYXVsdFNlbGVjdGVkOwotI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
IHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
ICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIHRleHQKICAg
ICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbHNlCklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyAr
NDcsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlYXJjaDsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwogCi0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0
b1N0cmluZygpOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAko
cmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSwxNCArMzUsMTQgQEAKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvZGU7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb2Rl
QmFzZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGhlaWdodDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpF
Q1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBoc3BhY2U7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnRGcm9tU3RyaW5nXSBsb25nIGhzcGFjZTsKICNlbmRpZgogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IG9iamVjdDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2
c3BhY2U7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3Ry
aW5nXSBsb25nIHZzcGFjZTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHJldmlz
aW9uIDM1NzU4KQorKysgV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAgICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD05M2Uw
NDA3YS04MzgwLTRmZjAtOTc4ZC1mNzczZjJkZWU2YTMKICAgICBdIEhUTUxFbWJlZEVsZW1lbnQg
OiBIVE1MRWxlbWVudCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBhbGlnbjsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdV
QUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyBoZWlnaHQ7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhlaWdodDsKQEAgLTM4LDcgKzM4LDcgQEAK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIG5hbWU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyBzcmM7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0eXBlOwotI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmlu
ZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHdpZHRoOwogI2Vsc2UKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyB3aWR0aDsKSW5kZXg6IFdlYkNv
cmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5p
ZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQo
TEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBkb21haW47CiAjZWxzZQogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRvbWFpbjsKQEAgLTE4Miw3ICsxODIsNyBAQAogCiAgICAg
ICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlOYW1lKGluIERPTVN0cmluZyBlbGVtZW50TmFtZSk7
CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCiAKQEAg
LTE5NSw3ICsxOTUsNyBAQAogICAgICAgICBFbGVtZW50ICAgICAgICAgICAgZWxlbWVudEZyb21Q
b2ludChpbiBsb25nIHgsIGluIGxvbmcgeSk7CiAKICAgICAgICAgLy8gTW96aWxsYSBleHRlbnNp
b25zCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgIERP
TVNlbGVjdGlvbiAgICAgICBnZXRTZWxlY3Rpb24oKTsKICNlbmRpZgogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGNoYXJhY3Rl
clNldDsKQEAgLTIzNiw3ICsyMzYsNyBAQAogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKGluIERPTVN0cmluZyB0YWduYW1lKTsKIAogICAgICAgICAvLyBOb2RlU2VsZWN0
b3IgLSBTZWxlY3RvciBBUEkKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYg
KGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KSkKICAgICAgICAgW0N1c3RvbV0gRWxlbWVudCBxdWVyeVNlbGVjdG9yKGluIFtDb252ZXJ0VW5k
ZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JzLCBpbiBOU1Jlc29s
dmVyIHJlc29sdmVyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IFtDdXN0b21dIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoaW4gW0NvbnZlcnRVbmRlZmluZWRP
ck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVz
b2x2ZXIpCkluZGV4OiBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdl
YkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcs
NyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0j
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1d
IERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvZG9tL0RPTUNv
cmVFeGNlcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9u
LmgJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgKi8KIAogI2lmbmRlZiBET01Db3JlRXhj
ZXB0aW9uX2gKLSNkZWZpbmUgRE9NQ29kZUV4Y2VwdGlvbl9oCisjZGVmaW5lIERPTUNvcmVFeGNl
cHRpb25faAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQmFzZS5oIgogCkluZGV4OiBXZWJDb3JlL2Rv
bS9FdmVudEV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnRFeGNl
cHRpb24uaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9u
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5H
VUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJs
ZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRp
ZgpJbmRleDogV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9k
b20vS2V5Ym9hcmRFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGFsdEdyYXBoS2V5KTsKIAog
ICAgICAgICAvLyBXZWJLaXQgRXh0ZW5zaW9ucwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpCisjaWYgKCghZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSkgJiYgKCFkZWZpbmVk
KExBTkdVQUdFX0dPQkpFQ1QpKSkKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAg
ICAgICAgICAga2V5Q29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAg
ICAgICAgY2hhckNvZGU7CiAgICAgICAgIApJbmRleDogV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2Vw
dGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwJ
KHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkK
KyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0
CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6
IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw5ICs2MiwxMyBAQAogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gdm9pZCBzZW5kKCk7Ci0g
ICAgICAgIC8vIHZvaWQgc2VuZChpbiBET01TdHJpbmcgZGF0YSk7CisjaWYgZGVmaW5lZChMQU5H
VUFHRV9HT0JKRUNUKQorICAgICAgICB2b2lkIHNlbmQoaW4gRE9NU3RyaW5nIGRhdGEpCisgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbHNlCiAgICAgICAgIFtDdXN0b21dIHZv
aWQgc2VuZChpbiBEb2N1bWVudCBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisjZW5kaWYKIAogICAgICAgICB2b2lkIGFib3J0KCk7CiAKSW5kZXg6IFdlYkNvcmUveG1s
L1hQYXRoRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0aEV4Y2Vw
dGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24u
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdV
QUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxl
IGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlm
CkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAz
NTc1OCkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAg
ICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDogV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNyBAQAogICAgICAgICBbRG9Ob3RDaGVja0Rv
bWFpblNlY3VyaXR5LCBDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gRE9NU3RyaW5nIG1lc3Nh
Z2UsIGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAg
ICAgLy8gR2xvYmFsIGNvbnN0cnVjdG9ycwogICAgICAgICBhdHRyaWJ1dGUgU3R5bGVTaGVldENv
bnN0cnVjdG9yIFN0eWxlU2hlZXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBDU1NTdHlsZVNoZWV0Q29u
c3RydWN0b3IgQ1NTU3R5bGVTaGVldDsKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24u
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCShyZXZpc2lv
biAzNTc1OCkKKysrIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAgIHZvaWQgcmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAg
ICAgIHZvaWQgYWRkUmFuZ2UoaW4gUmFuZ2UgcmFuZ2UpOwogCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmlu
ZygpOwogI2VuZGlmCiAgICAgfTsKSW5kZXg6IFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAzNTc1OCkK
KysrIFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01LDYgKzUs
NyBAQAogIyBHdGtMYXVuY2hlcgogUHJvZ3JhbXNfR3RrTGF1bmNoZXJfQ1BQRkxBR1MgPSBcCiAJ
LUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQg
XAogCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBc
CiAJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23173</attachid>
            <date>2008-09-04 12:04:48 -0700</date>
            <delta_ts>2008-09-12 07:16:13 -0700</delta_ts>
            <desc>use &quot;detail&quot; on signals</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>286991</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNTc1OCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYkNvcmUv
YmluZGluZ3MvZ2RvbQogCiAjIFRoZSB2YXJpYWJsZXMgYWJvdmUgYXJlIGFscmVhZHkgaW5jbHVk
ZWQgYmVsb3cgc28gbm8gbmVlZCB0byB0b3VjaAogIyB0aGVzZSB2YXJpYWJsZXMgdW5sZXNzIHlv
dSByZWFsbHkgaGF2ZSB0bwpAQCAtMjIwLDYgKzIyMSw3IEBACiAKICMgV2ViS2l0CiB3ZWJraXRn
dGtfaF9hcGkgOj0KK2dkb21ndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9CiB3ZWJr
aXRndGtfY3BwZmxhZ3MgOj0KIHdlYmtpdGd0a19idWlsdF9zb3VyY2VzIDo9CkBAIC0yMzIsOCAr
MjM0LDEzIEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0
LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkkKHdlYmtpdGd0a19o
X2FwaSkgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCisJJChnZG9tZ3Rr
X2hfYXBpKSBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmggXAorCVdlYktp
dC9ndGsvd2Via2l0L2dkb20uaCAKIAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMu
aAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgKKwogbGlid2Via2l0XzFfMF9sYV9T
T1VSQ0VTID0gXAogCSQod2Via2l0Z3RrX3NvdXJjZXMpCiAKQEAgLTMwNCw2ICszMTEsMzQ2IEBA
CiB3ZWJjb3JlX2xpYmFkZCArPSAtbGdzdGludGVyZmFjZXMtMC4xMCAtbGdzdHZpZGVvLTAuMTAK
IGVuZGlmCiAKK1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6IFdlYktpdC9ndGsv
d2Via2l0L0dkb21Eb2N1bWVudC5oIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaCBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3Qu
aAorCitXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaDogRGVyaXZlZFNvdXJj
ZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmgKKwljcCBEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJl
cXVlc3QuaCBXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaAorCitXZWJLaXQv
Z3RrL3dlYmtpdC9HZG9tRE9NV2luZG93Lmg6IERlcml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cu
aAorCWNwIERlcml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cuaCBXZWJLaXQvZ3RrL3dlYmtpdC9H
ZG9tRE9NV2luZG93LmgKKworV2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50Lmg6IERlcml2
ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oCisJY3AgRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50
LmggV2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50LmgKKworV2ViS2l0L2d0ay93ZWJraXQv
R2RvbURPTU9iamVjdC5oOiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oCisJ
Y3AgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaCBXZWJLaXQvZ3RrL3dlYmtp
dC9HZG9tRE9NT2JqZWN0LmgKKworV2ViS2l0L2d0ay93ZWJraXQvR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oOiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisJY3AgV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCBXZWJLaXQvZ3RrL3dlYmtp
dC9HZG9tRXZlbnRUYXJnZXROb2RlLmgKKworCitnZG9tZ3RrX2hfYXBpICs9IFwKKwlXZWJLaXQv
Z3RrL3dlYmtpdC9HZG9tRG9jdW1lbnQuaFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRXZlbnRU
YXJnZXROb2RlLmhcCisJV2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTU9iamVjdC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21BdHRyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUF0dHJwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21CYXJJbmZvLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUJhcklu
Zm9wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNHcmFkaWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DYW52YXNHcmFkaWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNhbnZhc1BhdHRlcm4uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGF0dGVybnByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BpeGVsQXJyYXkuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DREFUQVNlY3Rpb24u
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFTZWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ2hhcmFjdGVyRGF0YS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DaGFyYWN0ZXJE
YXRhcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJkLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNsaXBib2FyZHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29tbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNvbnNvbGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29uc29sZXByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNvdW50ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ291bnRlcnBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0NoYXJzZXRSdWxlLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNTU0NoYXJzZXRSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NT
Rm9udEZhY2VSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ZvbnRGYWNlUnVsZXByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGUuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTSW1wb3J0UnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlh
UnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NNZWRpYVJ1bGVwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NQYWdlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQYWdl
UnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlcHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ1NTUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlTGlzdC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU1J1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZURlY2xhcmF0
aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlRGVjbGFyYXRpb25wcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTU3R5bGVSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVldC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVNoZWV0cHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ1NTVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1ZhbHVlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVz
RGVjbGFyYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRp
b25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc1J1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21EYXRhYmFzZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21EYXRhYmFzZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50RnJhZ21lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRG9jdW1lbnRGcmFnbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRUeXBlLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbURvY3VtZW50VHlwZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUFw
cGxpY2F0aW9uQ2FjaGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQXBwbGljYXRpb25DYWNo
ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRE9NQ29yZUV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbURPTUltcGxlbWVudGF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUltcGxlbWVu
dGF0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NUGFyc2VyLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbURPTVBhcnNlcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVNl
bGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01TZWxlY3Rpb25wcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2lu
ZG93cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVu
dGl0eVJlZmVyZW5jZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlSZWZlcmVuY2Vwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21FdmVudEV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRmlsZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlTGlzdC5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21GaWxlTGlzdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IaXN0b3J5LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhp
c3Rvcnlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQW5jaG9yRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxB
cHBsZXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFyZWFFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVhRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
QmFzZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUZvbnRFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRm9udEVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEJvZHlFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVu
dHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEJSRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxCdXR0b25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCdXR0b25FbGVtZW50
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTENhbnZhc0VsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MQ29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlv
bnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTERpdkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERp
dkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRExpc3RFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxETGlzdEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MRG9jdW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERvY3Vt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
RW1iZWRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbWJlZEVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNldEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRm9udEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvbnRFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1FbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxl
bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
SGVhZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZGluZ0VsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRpbmdFbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MSFJFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0bWxFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1sRWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxJRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxJRnJhbWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEltYWdlRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW1hZ2VFbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MSW5wdXRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5k
ZXhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJc0luZGV4RWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMYWJlbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxMZWdlbmRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMZWdlbmRFbGVtZW50
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExJRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTElFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TExpbmtFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMaW5rRWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxNYXBFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1h
cnF1ZWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXJxdWVlRWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MTWV0YUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1ldGFFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1vZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTE1vZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
T2JqZWN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPTGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTE9MaXN0RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxPcHRHcm91cEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdEdyb3Vw
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25FbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxPcHRpb25zQ29sbGVjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQ
YXJhZ3JhcGhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhZ3JhcGhFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYW1FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTFByZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFByZUVsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUXVvdGVFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MU2NyaXB0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2NyaXB0
RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFN0eWxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
U3R5bGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRw
cm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFRhYmxlQ29sRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTFRhYmxlUm93RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRpdGxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MVGl0bGVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFVM
aXN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVUxpc3RFbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSW1hZ2VEYXRhLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUltYWdlRGF0YXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUphdmFTY3JpcHRDYWxsRnJh
bWUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUtleWJvYXJkRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
S2V5Ym9hcmRFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9uLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TWVkaWFMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhTGlzdHByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbU1lc3NhZ2VFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNz
YWdlRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlQXJyYXlwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21NaW1lVHlwZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU1vdXNlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTW91
c2VFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTXV0YXRpb25FdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU5hbWVkTm9kZU1hcC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYW1lZE5vZGVNYXBwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYXZpZ2F0b3IuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTmF2aWdhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUZpbHRlci5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlRmlsdGVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTm9kZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0b3IuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTm9kZUl0ZXJhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9k
ZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUxpc3Rwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Ob2RlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm90YXRpb24uaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tTm90YXRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21PdmVyZmxvd0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU92ZXJmbG93RXZlbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheS5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21QbHVnaW5BcnJheXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbi5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvY2Vzc2luZ0lu
c3RydWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvZ3Jlc3NFdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Qcm9ncmVzc0V2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tUmFuZ2VFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRp
b25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZS5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21SYW5nZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJlY3QuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUmVjdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbi5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TY3JlZW5wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
UUxFcnJvci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxFcnJvcnByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1
bHRTZXRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldFJvd0xpc3Rwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxU
cmFuc2FjdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2VFdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TdG9yYWdlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2Vwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxl
U2hlZXRMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXRMaXN0cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVRleHRFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0RXZlbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21UZXh0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21UcmVlV2Fsa2VyLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVRyZWVXYWxrZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21VSUV2ZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21X
ZWJLaXRBbmltYXRpb25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRBbmltYXRp
b25FdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlcHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVdoZWVsRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2hlZWxFdmVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1
ZXN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWRwcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YTUxTZXJpYWxpemVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTFNl
cmlhbGl6ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV2YWx1YXRvci5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV2YWx1YXRvcnByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0
aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhwcmVzc2lvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhQYXRoTlNSZXNvbHZlci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2
ZXJwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3VsdC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21YUGF0aFJlc3VsdHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQ
cm9jZXNzb3IuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nlc3NvcnByb3BzLmgKKwog
d2Via2l0Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaCBcCiAJV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKQEAgLTMxNSwxMiArNjYyLDE3IEBACiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaCBcCiAJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5oCiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmlu
ZXMuaAorCiB3ZWJraXRndGtfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0ZW51bXR5cGVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZW51bXR5cGVzLmgKIAorIwlEZXJpdmVkU291cmNlcy9nZG9tZW51bXR5cGVzLmNwcCAKKyMJ
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisKIHdlYmtpdGd0a19zb3VyY2VzICs9
IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgXAogCVdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggXApAQCAtMzQ0LDcgKzY5
Niw5IEBACiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwICBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZl
bnQuaCAKIAogd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKIAktREJVSUxESU5HX1dFQktJVCBcCkBA
IC0zNjYsNiArNzIwLDkgQEAKIAlzdGFtcC13ZWJraXRlbnVtdHlwZXMuY3BwIFwKIAlzdGFtcC13
ZWJraXRlbnVtdHlwZXMuaAogCisjCXN0YW1wLWdkb21lbnVtdHlwZXMuY3BwIAorIwlzdGFtcC1n
ZG9tZW51bXR5cGVzLmggCisKIFdFQktJVF9NQVJTSEFMID0gJChHRU5TT1VSQ0VTKS93ZWJraXRt
YXJzaGFsCiBXRUJLSVRfTUFSU0hBTF9MSVNUID0gJChXRUJLSVRfTUFSU0hBTCkubGlzdAogCkBA
IC00NDIsNiArNzk5LDU0IEBACiAJJiYgY3AgeGdlbi1ndGMgJEAgXAogCSYmIHJtIC1mIHhnZW4t
Z3RjCiAKK1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaDogc3RhbXAtZ2RvbWVudW10
eXBlcy5oCisJQHRydWUKK3N0YW1wLWdkb21lbnVtdHlwZXMuaDogJChnZG9tZ3RrX2hfYXBpKSBH
TlVtYWtlZmlsZQorCShjZCAkKHNyY2RpcikgXAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZo
ZWFkICIjaWZuZGVmIEdET01fRU5VTV9UWVBFU19IXG4iIFwKKwkJCS0tZmhlYWQgIiNkZWZpbmUg
R0RPTV9FTlVNX1RZUEVTX0hcblxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD5cblxuIiBcCisJCQktLWZoZWFkICJHX0JFR0lOX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFp
bCAiR19FTkRfREVDTFNcblxuIiBcCisJCQktLWZ0YWlsICIjZW5kaWZcbiIgXAorCQkJLS1mcHJv
ZCAiI2luY2x1ZGUgPEBmaWxlbmFtZUA+XG5cbiIgXAorCQkJLS1lcHJvZCAiI2RlZmluZSBHRE9N
X1RZUEVfQEVOVU1TSE9SVEAgQGVudW1fbmFtZUBfZ2V0X3R5cGUoKVxuXG4iIFwKKwkJCS0tZXBy
b2QgIldFQktJVF9BUEkgR1R5cGVcbkBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpO1xuXG4iIFwK
KwkJCSQoZ2RvbWd0a19oX2FwaSkgfCBcCisJCQlzZWQgJ3MsV2ViS2l0L2d0ay8sLCcgfCBcCisJ
CXNlZCAncyx3ZWJfa2l0LGdkb20sJyB8IFwKKwkJc2VkICdzLEdET01fVFlQRV9LSVQsR0RPTV9U
WVBFLCcgXAorCQkpID4geGdlbi1jZ3RoIFwKKwkmJiAoY21wIC1zIHhnZW4tY2d0aCBXZWJLaXQv
Z3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmggfHwgY3AgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Vi
a2l0L2dkb21lbnVtdHlwZXMuaCkgXAorCSYmIHJtIC1mIHhnZW4tY2d0aCBcCisJJiYgZWNobyB0
aW1lc3RhbXAgPiAkKEBGKQorCisjICAgICAgICAgICAgICAtLWZoZWFkICIjaW5jbHVkZSA8d2Vi
a2l0L2dkb21kZWZpbmVzLmg+XG5cbiIgCisKK0Rlcml2ZWRTb3VyY2VzL2dkb21lbnVtdHlwZXMu
Y3BwOiAkKGdkb21ndGtfaF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYg
Z2xpYi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxjb25maWcuaD5cbiIgXAorCQkJ
LS1maGVhZCAiI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG4iIFwKKwkJCS0tZmhlYWQgIiNpbmNs
dWRlIFwiJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaFwi
XG5cbiIgXAorCQkJLS1maGVhZCAiZXh0ZXJuIFwiQ1wiIHtcblxuIiBcCisJCQktLWZwcm9kICJc
bi8qIGVudW1lcmF0aW9ucyBmcm9tIFwiQGZpbGVuYW1lQFwiICovIiBcCisJCQktLXZoZWFkICJz
dGF0aWMgY29uc3QgR0BUeXBlQFZhbHVlIF9AZW51bV9uYW1lQF92YWx1ZXNbXSA9IHsiIFwKKwkJ
CS0tdnByb2QgIiAgICB7IEBWQUxVRU5BTUVALCBcIkBWQUxVRU5BTUVAXCIsIFwiQHZhbHVlbmlj
a0BcIiB9LCIgXAorCQkJLS12dGFpbCAiICAgIHsgMCwgTlVMTCwgTlVMTCB9XG59O1xuXG4iIFwK
KwkJCS0tdnRhaWwgIkdUeXBlIEBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpXG57XG4iIFwKKwkJ
CS0tdnRhaWwgIiAgICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7XG5cbiIgXAorCQkJLS12dGFpbCAi
ICAgIGlmICghdHlwZSlcbiIgXAorCQkJLS12dGFpbCAiICAgICAgICB0eXBlID0gZ19AdHlwZUBf
cmVnaXN0ZXJfc3RhdGljKFwiQEVudW1OYW1lQFwiLCBfQGVudW1fbmFtZUBfdmFsdWVzKTtcblxu
IiBcCisJCQktLXZ0YWlsICIgICAgcmV0dXJuIHR5cGU7XG59XG5cbiIgXAorCQkJLS1mdGFpbCAi
fVxuIiBcCisJCSQoZ2RvbWd0a19oX2FwaSkgfCBcCisJCXNlZCAncyx3ZWJfa2l0LGdkb20sJyBc
CisJCSkgPiB4Z2VuLWNndGMgXAorCSYmIGNwIHhnZW4tY2d0YyAkQCBcCisJJiYgcm0gLWYgeGdl
bi1jZ3RjCisKICMgRU5EIFdFQktJVCBHVEsrCiAjCiAjIEZpbGVzIHRoYXQgd2lsbCBiZSBkaXN0
cmlidXRlZApJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw2
ICsyMTgsOCBAQAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpwb3N0UHJvZ3Jlc3NFc3RpbWF0
ZUNoYW5nZWROb3RpZmljYXRpb24oKQogeworICAgIGlmICghbV9mcmFtZSkgLyogYnVnIzIwNDAz
IC0gaGFjayEgc2hvdWxkbid0IGJlIGhlcmUhICB3ZSd2ZSBiZWVuIGRlbGV0ZWQhICovCisgICAg
ICAgIHJldHVybjsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFt
ZShtX2ZyYW1lKTsKICAgICBQYWdlKiBjb3JlUGFnZSA9IGNvcmUod2ViVmlldyk7CiAKSW5kZXg6
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDM2MDE1KQorKysgV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEx
ICsxLDEzIEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEhvbGdlciBIYW5zIFBl
dGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4KICAqIENv
cHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgogICogQ29weXJpZ2h0IChDKSAy
MDA4IE51YW50aSBMdGQuCiAgKgorICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTQyLDYg
KzQ0LDIwIEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZG9t
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tWE1MSHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJH
RE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21YTUxIdHRwUmVxdWVzdC5oIgor
I2luY2x1ZGUgIlByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21Eb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21FdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXaW5kb3cuaCIKKyNp
bmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0RG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJHZG9tRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21ET01XaW5kb3cu
aCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTVdpbmRvdy5oIgogCiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQVBJQ2FzdC5oPgogCkBAIC00OSw2ICs2NSwxMiBAQAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV2ViQ29yZSB7CisJ
Z3BvaW50ZXIgdG9HRE9NKERPTVdpbmRvdyogZG9jKTsKKwlncG9pbnRlciB0b0dET00oRG9jdW1l
bnQqIGRvYyk7CisJZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0KiBvYmopOworfQorCiBl
eHRlcm4gIkMiIHsKIAogZW51bSB7CkBAIC01Nyw2ICs3OSw3IEBACiAgICAgTE9BRF9ET05FLAog
ICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAorICAgIEJST1dTRVJf
RVZFTlQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2Miw2ICsxODUsMTcgQEAKICAgICAg
ICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBFX1NUUklORywgR19UWVBF
X1NUUklORyk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0g
PSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01f
Q0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9S
VU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiB8CisJCQkgICAgICAgICAgICAgICBHX1NJR05BTF9E
RVRBSUxFRAkpLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAg
ICBOVUxMLAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4s
CisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgICAgIEdET01fVFlQRV9FVkVO
VCwgR19UWVBFX0JPT0xFQU4pOworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2Yg
dmlydHVhbCBtZXRob2RzCiAgICAgICovCkBAIC0yOTQsNiArMzI4LDkyIEBACiB9CiAKIC8qKgor
ICogd2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdDoKKyAqIEBmcmFtZTogYSAj
V2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhbiBY
TUxIdHRwUmVxdWVzdAorICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tWE1MSHR0cFJlcXVlc3QK
KyAqLworR2RvbVhNTEh0dHBSZXF1ZXN0KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9y
ZXF1ZXN0KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZy
YW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCXJldHVybiBHRE9NX1hNTF9I
VFRQX1JFUVVFU1QoV2ViQ29yZTo6dG9HRE9NKFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoY29yZUZy
YW1lLT5kb2N1bWVudCgpKS5nZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X2RvbV93aW5kb3c6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0
dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYSBET01XaW5kb3cKKyAqCisgKiBSZXR1cm4gdmFs
dWU6IGEgR2RvbURPTVdpbmRvdworICovCitHZG9tRE9NV2luZG93KiB3ZWJraXRfd2ViX2ZyYW1l
X2dldF9kb21fd2luZG93KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dl
YktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNv
cmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCVBhc3NSZWZQ
dHI8RE9NV2luZG93PiB3aW4gPSBjb3JlRnJhbWUtPmRvbVdpbmRvdygpOworCXJldHVybiBHRE9N
X0RPTV9XSU5ET1coV2ViQ29yZTo6dG9HRE9NKHdpbi5nZXQoKSkpOworfQorCisvKioKKyAqIHdl
YmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2Vi
RnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAor
ICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tRG9jdW1lbnQKKyAqLworR2RvbURvY3VtZW50KiB3
ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBO
VUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7
CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVG
cmFtZSk7CisJcmV0dXJuIEdET01fRE9DVU1FTlQoV2ViQ29yZTo6dG9HRE9NKGNvcmVGcmFtZS0+
ZG9jdW1lbnQoKSkpOworfQorCisvKiBYWFggVE9ETzogbWFrZSB0aGlzIG5vdCB0YWtlIGZyYW1l
KiBhcyBhbiBhcmd1bWVudCwKKyAqIGFuZCBtYWtlIGl0IHJldHVybiBhIEdkb21FdmVudExpc3Rl
bmVyIGNsYXNzICovCitleHRlcm4gIkMiIHsKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93aW5k
b3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNvbnN0
IGNoYXIgKm5hbWUpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xp
c3RlbmVyOgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIGFkZHMgYW4gZXZl
bnQgbGlzdGVuZXIgdG8gdGhlIGZyYW1lJ3MgZG9jdW1lbnQKKyAqCisgKiBSZXR1cm4gdmFsdWU6
IHRoZSBuYW1lIG9mIEBmcmFtZQorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9l
dmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogZXZlbnRfdHlwZSkKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgRkFMU0Up
OworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKwor
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1l
KTsKKworCXJldHVybiBhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKGZyYW1lLCBjb3JlRnJhbWUs
IGV2ZW50X3R5cGUpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAg
KiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCiAgKgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQv
RXZlbnRMaXN0ZW5lck5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVu
dExpc3RlbmVyTm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRM
aXN0ZW5lck5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisKKyNpZm5kZWYgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX05PREVfSAorI2RlZmluZSBKU19ET01f
RVZFTlRfTElTVEVORVJfTk9ERV9ICisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdGRlZmluZXMuaD4KKworCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IgorCisvKiBUT0RPOiByZXR1cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3
aGljaCByZXF1aXJlcworICogYSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisg
KiBUT0RPOiBwcm92aWRlIGEgJ3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhh
dCBnbGliCisgKiBvYmplY3QgYXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lU
X0FQSQorZ2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndm
LCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu
IHVzZUNhcHR1cmUpOworfQorCisjZW5kaWYgLypKU19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9I
ICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDM2MDE1KQor
KysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIg
RnJleXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDkgQEAKIAogI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5l
dHdvcmtyZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1bWVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tRE9NV2luZG93Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRw
UmVxdWVzdC5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYxLDYgKzY1LDE1IEBACiBXRUJLSVRf
QVBJIFdlYktpdFdlYkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAg
IChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIEdkb21YTUxI
dHRwUmVxdWVzdCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0ICAgICAg
IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21ET01XaW5k
b3cgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyAgICAgICAoV2ViS2l0V2ViRnJh
bWUgICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRG9jdW1lbnQgKgord2Via2l0X3dl
Yl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJh
bWUpOworCiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3dlYl9mcmFtZV9nZXRf
d2ViX3ZpZXcgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKQEAgLTkzLDYg
KzEwNiwxMCBAQAogV0VCS0lUX0FQSSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X2dsb2JhbF9jb250ZXh0IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCitX
RUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihX
ZWJLaXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYK
SW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRE9NV2luZG93LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQv
Z3RrL3dlYmtpdC9HZG9tRE9NV2luZG93LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTExIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRv
a2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKyNpZm5kZWYg
X19HZG9tRE9NV2luZG93X0hfXworI2RlZmluZSBfX0dkb21ET01XaW5kb3dfSF9fCisjaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKyNpbmNsdWRlICJHZG9tQ1NTUnVsZUxpc3QuaCIK
KyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkdkb21ET01P
YmplY3QuaCIKKyNpbmNsdWRlICJHZG9tRE9NU2VsZWN0aW9uLmgiCisjaW5jbHVkZSAiR2RvbURh
dGFiYXNlLmgiCisjaW5jbHVkZSAiR2RvbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnbGliLW9iamVj
dC5oIgorCisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01XaW5kb3cg
R2RvbURPTVdpbmRvdzsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NV2luZG93Q2xhc3MgR2RvbURP
TVdpbmRvd0NsYXNzOworCisKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9XSU5ET1cgICAgICAgICAg
ICAoZ2RvbV9kb21fd2luZG93X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRE9NX1dJTkRPVyhv
YmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZ
UEVfRE9NX1dJTkRPVywgR2RvbURPTVdpbmRvdykpCisjZGVmaW5lIEdET01fRE9NX1dJTkRPV19D
TEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZ
UEVfRE9NX1dJTkRPVywgR2RvbURPTVdpbmRvdylDbGFzcykKKyNkZWZpbmUgR0RPTV9JU19ET01f
V0lORE9XKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdE
T01fVFlQRV9ET01fV0lORE9XKSkKKyNkZWZpbmUgR0RPTV9JU19ET01fV0lORE9XX0NMQVNTKGts
YXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fV0lO
RE9XKSkKKyNkZWZpbmUgR0RPTV9ET01fV0lORE9XX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lO
U1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9ET01fV0lORE9XLCBHZG9tRE9NV2lu
ZG93Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVdpbmRvd1ByaXZhdGUgR2RvbURP
TVdpbmRvd1ByaXZhdGU7CisKK3N0cnVjdCBfR2RvbURPTVdpbmRvdyB7CisgICAgR2RvbURPTU9i
amVjdCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRE9NV2luZG93UHJpdmF0ZSAqcHJpdjsK
K307CisKK3N0cnVjdCBfR2RvbURPTVdpbmRvd0NsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFy
ZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorZ2RvbV9kb21fd2luZG93X2dldF90
eXBlICh2b2lkKTsKKworV0VCS0lUX0FQSSBHZG9tRE9NU2VsZWN0aW9uICoKK2dkb21fZG9tX3dp
bmRvd19nZXRfc2VsZWN0aW9uIChHZG9tRE9NV2luZG93ICp0aGl6KTsKKworV0VCS0lUX0FQSSB2
b2lkCitnZG9tX2RvbV93aW5kb3dfZm9jdXMgKEdkb21ET01XaW5kb3cgKnRoaXopOworCitXRUJL
SVRfQVBJIHZvaWQKK2dkb21fZG9tX3dpbmRvd19ibHVyIChHZG9tRE9NV2luZG93ICp0aGl6KTsK
KworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2RvbV93aW5kb3dfY2xvc2UgKEdkb21ET01XaW5kb3cg
KnRoaXopOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX3dpbmRvd19wcmludCAoR2RvbURP
TVdpbmRvdyAqdGhpeik7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fd2luZG93X3N0b3Ag
KEdkb21ET01XaW5kb3cgKnRoaXopOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX3dpbmRv
d19hbGVydCAoR2RvbURPTVdpbmRvdyAqdGhpeiwgY29uc3QgZ2NoYXIgKm1lc3NhZ2UpOworCitX
RUJLSVRfQVBJIGdib29sZWFuIAorZ2RvbV9kb21fd2luZG93X2NvbmZpcm0gKEdkb21ET01XaW5k
b3cgKnRoaXosIGNvbnN0IGdjaGFyICptZXNzYWdlKTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hh
ciAqCitnZG9tX2RvbV93aW5kb3dfcHJvbXB0IChHZG9tRE9NV2luZG93ICp0aGl6LCBjb25zdCBn
Y2hhciAqbWVzc2FnZSwgY29uc3QgZ2NoYXIgKmRlZmF1bHRfdmFsdWUpOworCitXRUJLSVRfQVBJ
IGdib29sZWFuIAorZ2RvbV9kb21fd2luZG93X2ZpbmQgKEdkb21ET01XaW5kb3cgKnRoaXosIGNv
bnN0IGdjaGFyICpzdHJpbmcsIGdib29sZWFuIGNhc2Vfc2Vuc2l0aXZlLCBnYm9vbGVhbiBiYWNr
d2FyZHMsIGdib29sZWFuIHdyYXAsIGdib29sZWFuIHdob2xlX3dvcmQsIGdib29sZWFuIHNlYXJj
aF9pbl9mcmFtZXMsIGdib29sZWFuIHNob3dfZGlhbG9nKTsKKworV0VCS0lUX0FQSSB2b2lkCitn
ZG9tX2RvbV93aW5kb3dfc2Nyb2xsX2J5IChHZG9tRE9NV2luZG93ICp0aGl6LCBnbG9uZyB4LCBn
bG9uZyB5KTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2RvbV93aW5kb3dfc2Nyb2xsX3RvIChH
ZG9tRE9NV2luZG93ICp0aGl6LCBnbG9uZyB4LCBnbG9uZyB5KTsKKworV0VCS0lUX0FQSSB2b2lk
CitnZG9tX2RvbV93aW5kb3dfc2Nyb2xsIChHZG9tRE9NV2luZG93ICp0aGl6LCBnbG9uZyB4LCBn
bG9uZyB5KTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2RvbV93aW5kb3dfbW92ZV9ieSAoR2Rv
bURPTVdpbmRvdyAqdGhpeiwgZ2Zsb2F0IHgsIGdmbG9hdCB5KTsKKworV0VCS0lUX0FQSSB2b2lk
CitnZG9tX2RvbV93aW5kb3dfbW92ZV90byAoR2RvbURPTVdpbmRvdyAqdGhpeiwgZ2Zsb2F0IHgs
IGdmbG9hdCB5KTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2RvbV93aW5kb3dfcmVzaXplX2J5
IChHZG9tRE9NV2luZG93ICp0aGl6LCBnZmxvYXQgeCwgZ2Zsb2F0IHkpOworCitXRUJLSVRfQVBJ
IHZvaWQKK2dkb21fZG9tX3dpbmRvd19yZXNpemVfdG8gKEdkb21ET01XaW5kb3cgKnRoaXosIGdm
bG9hdCB3aWR0aCwgZ2Zsb2F0IGhlaWdodCk7CisKK1dFQktJVF9BUEkgR2RvbUNTU1N0eWxlRGVj
bGFyYXRpb24gKgorZ2RvbV9kb21fd2luZG93X2dldF9jb21wdXRlZF9zdHlsZSAoR2RvbURPTVdp
bmRvdyAqdGhpeiwgR2RvbUVsZW1lbnQgKmVsZW1lbnQsIGNvbnN0IGdjaGFyICpwc2V1ZG9fZWxl
bWVudCk7CisKK1dFQktJVF9BUEkgR2RvbUNTU1J1bGVMaXN0ICoKK2dkb21fZG9tX3dpbmRvd19n
ZXRfbWF0Y2hlZF9jc3NfcnVsZXMgKEdkb21ET01XaW5kb3cgKnRoaXosIEdkb21FbGVtZW50ICpl
bGVtZW50LCBjb25zdCBnY2hhciAqcHNldWRvX2VsZW1lbnQsIGdib29sZWFuIGF1dGhvcl9vbmx5
KTsKKworV0VCS0lUX0FQSSBHZG9tRGF0YWJhc2UgKgorZ2RvbV9kb21fd2luZG93X29wZW5fZGF0
YWJhc2UgKEdkb21ET01XaW5kb3cgKnRoaXosIGNvbnN0IGdjaGFyICpuYW1lLCBjb25zdCBnY2hh
ciAqdmVyc2lvbiwgY29uc3QgZ2NoYXIgKmRpc3BsYXlfbmFtZSwgZ3Vsb25nIGVzdGltYXRlZF9z
aXplKTsKKworCisvKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uIGdkb21fZG9tX3dpbmRvd19w
b3N0X21lc3NhZ2UgKi8KKworR19FTkRfREVDTFMKKworI2VuZGlmIC8qIF9fR2RvbURPTVdpbmRv
d19IX18gKi8KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RP
TV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJf
V0lORE9XX0gKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVm
aW5lcy5oPgorCisKK2V4dGVybiAiQyIgeworLyogVE9ETzogbWFrZSBhIEdkb21FdmVudExpc3Rl
bmVyIGNsYXNzLCB0byBiZSByZXR1cm5lZCBoZXJlICovCit9CisKKyNlbmRpZiAvKkpTX0RPTV9F
VkVOVF9MSVNURU5FUl9XSU5ET1dfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvR2RvbVhN
TEh0dHBSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvR2RvbVhNTEh0
dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0
cFJlcXVlc3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0Pgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisjaWZuZGVmIF9fR2RvbVhNTEh0dHBSZXF1
ZXN0X0hfXworI2RlZmluZSBfX0dkb21YTUxIdHRwUmVxdWVzdF9IX18KKyNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRl
ICJHZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorCisKK0dfQkVHSU5fREVD
TFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdCBHZG9tWE1MSHR0cFJlcXVl
c3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0Q2xhc3MgR2RvbVhNTEh0dHBS
ZXF1ZXN0Q2xhc3M7CisKKworI2RlZmluZSBHRE9NX1RZUEVfWE1MX0hUVFBfUkVRVUVTVCAgICAg
ICAgICAgIChnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9Y
TUxfSFRUUF9SRVFVRVNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NB
U1QoKG9iaiksIEdET01fVFlQRV9YTUxfSFRUUF9SRVFVRVNULCBHZG9tWE1MSHR0cFJlcXVlc3Qp
KQorI2RlZmluZSBHRE9NX1hNTF9IVFRQX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1QsIEdk
b21YTUxIdHRwUmVxdWVzdClDbGFzcykKKyNkZWZpbmUgR0RPTV9JU19YTUxfSFRUUF9SRVFVRVNU
KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQ
RV9YTUxfSFRUUF9SRVFVRVNUKSkKKyNkZWZpbmUgR0RPTV9JU19YTUxfSFRUUF9SRVFVRVNUX0NM
QVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9Y
TUxfSFRUUF9SRVFVRVNUKSkKKyNkZWZpbmUgR0RPTV9YTUxfSFRUUF9SRVFVRVNUX0dFVF9DTEFT
UyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9YTUxf
SFRUUF9SRVFVRVNULCBHZG9tWE1MSHR0cFJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0
IF9HZG9tWE1MSHR0cFJlcXVlc3RQcml2YXRlIEdkb21YTUxIdHRwUmVxdWVzdFByaXZhdGU7CisK
K3N0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0IHsKKyAgICBHZG9tRE9NT2JqZWN0IHBhcmVudF9p
bnN0YW5jZTsKKworICAgIEdkb21YTUxIdHRwUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9OworCitz
dHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50
X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dl
dF90eXBlICh2b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX3htbF9odHRwX3JlcXVlc3Rf
b3BlbiAoR2RvbVhNTEh0dHBSZXF1ZXN0ICp0aGl6LCBjb25zdCBnY2hhciAqbWV0aG9kLCBjb25z
dCBnY2hhciAqdXJsLCBnYm9vbGVhbiBhc3luYywgY29uc3QgZ2NoYXIgKnVzZXIsIGNvbnN0IGdj
aGFyICpwYXNzd29yZCk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV94bWxfaHR0cF9yZXF1ZXN0
X3NldF9yZXF1ZXN0X2hlYWRlciAoR2RvbVhNTEh0dHBSZXF1ZXN0ICp0aGl6LCBjb25zdCBnY2hh
ciAqaGVhZGVyLCBjb25zdCBnY2hhciAqdmFsdWUpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21f
eG1sX2h0dHBfcmVxdWVzdF9zZW5kIChHZG9tWE1MSHR0cFJlcXVlc3QgKnRoaXosIGNvbnN0IGdj
aGFyICpkYXRhKTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX3htbF9odHRwX3JlcXVlc3RfYWJv
cnQgKEdkb21YTUxIdHRwUmVxdWVzdCAqdGhpeik7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIg
KgorZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dldF9hbGxfcmVzcG9uc2VfaGVhZGVycyAoR2RvbVhN
TEh0dHBSZXF1ZXN0ICp0aGl6KTsKKworV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCitnZG9tX3ht
bF9odHRwX3JlcXVlc3RfZ2V0X3Jlc3BvbnNlX2hlYWRlciAoR2RvbVhNTEh0dHBSZXF1ZXN0ICp0
aGl6LCBjb25zdCBnY2hhciAqaGVhZGVyKTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX3htbF9o
dHRwX3JlcXVlc3Rfb3ZlcnJpZGVfbWltZV90eXBlIChHZG9tWE1MSHR0cFJlcXVlc3QgKnRoaXos
IGNvbnN0IGdjaGFyICpvdmVycmlkZSk7CisKKworLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlv
biBnZG9tX3htbF9odHRwX3JlcXVlc3RfYWRkX2V2ZW50X2xpc3RlbmVyICovCisKKworLyogWFhY
IFRPRE86IGN1c3RvbSBmdW5jdGlvbiBnZG9tX3htbF9odHRwX3JlcXVlc3RfcmVtb3ZlX2V2ZW50
X2xpc3RlbmVyICovCisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4gCitnZG9tX3htbF9odHRwX3JlcXVl
c3RfZGlzcGF0Y2hfZXZlbnQgKEdkb21YTUxIdHRwUmVxdWVzdCAqdGhpeiwgR2RvbUV2ZW50ICpl
dnQpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tWE1MSHR0cFJlcXVlc3RfSF9f
ICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJl
cXVlc3QuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJY
TUxIdHRwUmVxdWVzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKworI2lmbmRlZiBKU19ET01fRVZFTlRfTElTVEVORVJfWE1MX0hUVFBfUkVRVUVTVF9ICisj
ZGVmaW5lIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9YTUxfSFRUUF9SRVFVRVNUX0gKKworI2luY2x1
ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKKyNpbmNs
dWRlICJHZG9tWE1MSHR0cFJlcXVlc3QuaCIKKworLyogVE9ETzogcmV0dXJuIHRoZSBhY3R1YWwg
ZXZlbnQgbGlzdGVuZXIgY3JlYXRlZCwgd2hpY2ggcmVxdWlyZXMKKyAqIGEgZ2xpYiB3cmFwcGVy
IG9iamVjdCB0byBiZSBjcmVhdGVkLgorICogVE9ETzogcHJvdmlkZSBhICdyZW1vdmVfZXZlbnRf
bGlzdGVuZXInIHdoaWNoIHRha2VzIHRoYXQgZ2xpYgorICogb2JqZWN0IGFzIGFuIGFyZ3VtZW50
ICovCitleHRlcm4gIkMiIHsKK1dFQktJVF9BUEkKK2dib29sZWFuIGFkZF94bWxfaHR0cF9yZXF1
ZXN0X2V2ZW50X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCAqd2YsCisgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICpuYW1lKTsKK30KKworI2VuZGlmIC8qSlNfRE9NX0VWRU5UX0xJU1RFTkVS
X1hNTF9IVFRQX1JFUVVFU1RfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZl
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2Vy
IEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGgg
Q2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5o
IgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisj
aW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgor
I2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJOb2Rl
LmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50
LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKyNpbmNs
dWRlICJHZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJ3ZWJraXRldmVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIgorCisKKyNpbmNs
dWRlIDxnbGliLW9iamVjdC5oPgorCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBkb2MpOworICAgIGdw
b2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RP
TShYTUxIdHRwUmVxdWVzdCogbm9kZSk7Cit9CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9U
WVBFKFdlYktpdEV2ZW50LCB3ZWJraXRfZXZlbnQsIEdfVFlQRV9PQkpFQ1QpOworCitzdHJ1Y3Qg
X1dlYktpdEV2ZW50UHJpdmF0ZSB7CisgICAgRXZlbnQqIGV2ZW50OworfTsKKworI2RlZmluZSBX
RUJLSVRfRVZFTlRfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRF
KChvYmopLCBXRUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZlbnRQcml2YXRlKSkKKworc3RhdGlj
IHZvaWQgd2Via2l0X2V2ZW50X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvL1dl
YktpdEV2ZW50KiByZXF1ZXN0ID0gV0VCS0lUX0VWRU5UKG9iamVjdCk7CisgICAgLy9XZWJLaXRF
dmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworCisgICAgLy9nX2ZyZWUocHJpdi0+
dXJpKTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9ldmVudF9wYXJlbnRfY2xhc3MpLT5m
aW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfY2xhc3NfaW5p
dChXZWJLaXRFdmVudENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1Mo
cmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSB3ZWJraXRfZXZlbnRfZmluYWxpemU7CisKKyAgICBn
X3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoV2ViS2l0RXZlbnRQ
cml2YXRlKSk7Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9ldmVudF9pbml0KFdlYktpdEV2ZW50
KiByZXF1ZXN0KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9FVkVO
VF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsKK30KKwor
V2ViS2l0RXZlbnQqIHdlYmtpdF9ldmVudF9uZXcodm9pZCkKK3sKKyAgICBXZWJLaXRFdmVudCog
cmVxdWVzdCA9IFdFQktJVF9FVkVOVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfRVZFTlQsIE5V
TEwpKTsKKyAgICAvL3ByaXYtPmV2ZW50ID0gZXZlbnQ7CisKKyAgICByZXR1cm4gcmVxdWVzdDsK
K30KKworLyoKK3ZvaWQgd2Via2l0X2V2ZW50X3NldF91cmkoV2ViS2l0RXZlbnQqIHJlcXVlc3Qs
IGNvbnN0IGdjaGFyKiB1cmkpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfRVZF
TlQocmVxdWVzdCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKKworICAgIFdlYktpdEV2
ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAgICBnX2ZyZWUocHJpdi0+dXJp
KTsKKyAgICBwcml2LT51cmkgPSBnX3N0cmR1cCh1cmkpOworfQorKi8KK0dfQ09OU1RfUkVUVVJO
IGdjaGFyKiB3ZWJraXRfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoV2ViS2l0RXZlbnQqIHJlcXVlc3Qp
Cit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0VWRU5UKHJlcXVlc3QpLCBO
VUxMKTsKKworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Cisg
ICAgcmV0dXJuIGdfc3RyZHVwKHByaXYtPmV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7Cit9CisKK3ZvaWQgd2Via2l0X2V2ZW50X2NhbmNlbF9idWJibGUgIChXZWJLaXRFdmVu
dCAqcmVxdWVzdCwgZ2Jvb2xlYW4gY2FuY2VsKQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSog
cHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnNldENhbmNlbEJ1YmJsZShj
YW5jZWwpOworfQorCit2b2lkIHdlYmtpdF9ldmVudF9wcmV2ZW50X2RlZmF1bHQgIChXZWJLaXRF
dmVudCAqcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0
LT5wcml2OworICAgIHByaXYtPmV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworfQorCit2b2lkIHdl
YmtpdF9ldmVudF9zdG9wX3Byb3BhZ2F0aW9uICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QpCit7Cisg
ICAgV2ViS2l0RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5l
dmVudC0+c3RvcFByb3BhZ2F0aW9uKCk7Cit9CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93
aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNv
bnN0IGNoYXIgKm5hbWUpOworCit9IC8vIGV4dGVybiAiQyIKKworY2xhc3MgWE1MSHR0cFJlcXVl
c3RFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21Y
TUxIdHRwUmVxdWVzdCogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IFhNTEh0dHBSZXF1
ZXN0RXZlbnRMaXN0ZW5lcih3ZikpOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2
ZW50KiwgYm9vbCB1c2VDYXB0dXJlKTsKKworICAgIHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAq
ZXZ0eXBlKSB7IG1fdHlwZSA9IGdfc3RyZHVwKGV2dHlwZSk7IH0KKyAgICBwcml2YXRlOgorICAg
IGNoYXIgKm1fdHlwZTsKKyAgICBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoR2RvbVhNTEh0
dHBSZXF1ZXN0KiB3ZikgOiBtX3dmKHdmKQorICAgIHsgbV90eXBlID0gTlVMTDsgfQorICAgIH5Y
TUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkK
KyAgICAgICAgICAgIGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBHZG9tWE1MSHR0cFJlcXVl
c3QqIG1fd2Y7Cit9OworCit2b2lkIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxl
RXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0
dmFsOworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6
JXMiLCBtX3R5cGUpOworICAgIC8qIFRPRE86IHNlZSBKU0V2ZW50TGlzdGVuZXIuY3BwJ3MgaGFu
ZGxlRXZlbnQgLSBzb21lIHdlaXJkIHN0dWZmLi4uICovCisgICAgcHJpbnRmKCJYTUxIdHRwUmVx
dWVzdCBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2
ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwgd2V2LCB1c2VD
YXB0dXJlLCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30KKworY2xhc3MgTm9kZUV2
ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8Tm9kZUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9tRXZlbnRUYXJnZXROb2Rl
KiB3ZikKKyAgICB7IHJldHVybiBhZG9wdFJlZihuZXcgTm9kZUV2ZW50TGlzdGVuZXIod2YpKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgdXNlQ2FwdHVyZSk7
CisKKyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0
cmR1cChldnR5cGUpOyB9CisgICAgcHJpdmF0ZToKKyAgICBjaGFyICptX3R5cGU7CisgICAgTm9k
ZUV2ZW50TGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogd2YpIDogbV93Zih3ZikKKyAgICB7
IG1fdHlwZSA9IE5VTEw7IH0KKyAgICB+Tm9kZUV2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAg
ICAgaWYgKG1fdHlwZSkKKyAgICAgICAgICAgIGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBH
ZG9tRXZlbnRUYXJnZXROb2RlKiBtX3dmOworfTsKKwordm9pZCBOb2RlRXZlbnRMaXN0ZW5lcjo6
aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xl
YW4gcmV0dmFsOworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1l
dmVudDo6JXMiLCBtX3R5cGUpOworICAgIHByaW50Zigibm9kZSBoYW5kbGVFdmVudCAlc1xuIiwg
ZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndl
diA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1p
dF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwgd2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKKyAgICBn
X2ZyZWUoZXZuYW1lKTsKK30KKworY2xhc3MgV2luZG93RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBF
dmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXaW5kb3dFdmVu
dExpc3RlbmVyPiBjcmVhdGUoV2ViS2l0V2ViRnJhbWUqIHdmKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXaW5kb3dFdmVudExpc3RlbmVyKHdmKSk7IAorICAgIH0KKyAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOworICAg
IHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlwZSA9IGdfc3RyZHVwKGV2
dHlwZSk7IH0KKyAgICBwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsKKyAgICBXaW5kb3dFdmVu
dExpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3ZikgOiBtX3dmKHdmKQorICAgIHsgbV90eXBlID0g
TlVMTDsgfQorICAgIH5XaW5kb3dFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlmICht
X3R5cGUpCisgICAgICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgV2ViS2l0V2Vi
RnJhbWUqIG1fd2Y7Cit9OworCit2b2lkIFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50
KEV2ZW50KiBldmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQoreworICAgIGNoYXIgKmV2bmFtZSA9
IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5cGUpOworICAgIGdib29s
ZWFuIHJldHZhbDsKKyAgICBwcmludGYoIndpbmRvdyBoYW5kbGVFdmVudCAlcyAlc1xuIiwgZXZu
YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQtPnR5cGUoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2Vi
Q29yZTo6dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2
bmFtZSwgd2V2LCBpc1dpbmRvd0V2ZW50LCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsK
K30KKworZ2Jvb2xlYW4gYWRkX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIoR2RvbVhN
TEh0dHBSZXF1ZXN0ICp3ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpuYW1lKQoreworICAgIFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0ICpyZXEgPSBnZG9tX3htbF9o
dHRwX3JlcXVlc3RfZ2V0X3ByaXZhdGUod2YpOworICAgIGlmIChuYW1lID09IE5VTEwpCisgICAg
ICAgIHJldHVybiBGQUxTRTsKKyAgICBpZiAocmVxID09IE5VTEwpCisgICAgICAgIHJldHVybiBG
QUxTRTsKKworICAgIGlmIChzdHJjbXAobmFtZSwgIm9ucmVhZHlzdGF0ZWNoYW5nZSIpID09IDAp
CisgICAgeworICAgICAgICBSZWZQdHI8WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyPiBsaXN0
ZW5lcjsKKyAgICAgICAgbGlzdGVuZXIgPSBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OmNy
ZWF0ZSh3Zik7CisgICAgICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICAgICAgcmVx
LT5zZXRPblJlYWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgIHJldHVy
biBUUlVFOworICAgIH0KKyAgICByZXR1cm4gRkFMU0U7Cit9IAorCitnYm9vbGVhbiBhZGRfZXZl
bnRfbGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBX
ZWJDb3JlOjpOb2RlICpub2RlID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh3
Zik7CisgICAgaWYgKG5vZGUgPT0gTlVMTCB8fCAhbm9kZS0+aXNFdmVudFRhcmdldE5vZGUoKSkK
KyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGV0
biA9IChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKj4obm9kZSkpLT50b05v
ZGUoKTsKKyAgICBpZiAoZXRuID09IE5VTEwpCisgICAgICAgIHJldHVybiBGQUxTRTsKKworICAg
IFJlZlB0cjxOb2RlRXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBOb2RlRXZlbnRMaXN0ZW5lcjo6
Y3JlYXRlKHdmKTsKKyAgICBsaXN0ZW5lci0+c2V0X3R5cGUobmFtZSk7CisgICAgZXRuLT5hZGRF
dmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsKKworICAgIHJldHVybiBU
UlVFOworCit9IAorCitnYm9vbGVhbiBhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKFdlYktpdFdl
YkZyYW1lICp3ZiwgRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBjaGFyICpuYW1lKQoreworICAgIERvY3VtZW50KiBkb2MgPSBmcmFtZS0+ZG9j
dW1lbnQoKTsKKworICAgIFJlZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IFdp
bmRvd0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgbGlzdGVuZXItPnNldF90eXBlKG5h
bWUpOworICAgIGRvYy0+YWRkV2luZG93RXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5lciwgdHJ1
ZSk7CisKKyAgICByZXR1cm4gVFJVRTsKKworfSAKKwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0ZGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRl
ZmluZXMuaAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDkgQEAKIAogR19CRUdJTl9ERUNMUwog
Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnQgV2ViS2l0RXZlbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0RXZlbnRDbGFzcyBXZWJLaXRFdmVudENsYXNzOworCiB0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0TmV0d29ya1JlcXVlc3QgV2ViS2l0TmV0d29ya1JlcXVlc3Q7CiB0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzcyBXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzOwog
CkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3Rr
L3dlYmtpdC9nZG9tZGVmaW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0
aGVyCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpZm5kZWYgV0VCS0lUX0dET01fREVGSU5FU19ICisjZGVmaW5lIFdFQktJVF9HRE9NX0RF
RklORVNfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorCisjaWZkZWYgR19PU19XSU4zMgorICAgICNp
ZmRlZiBCVUlMRElOR19XRUJLSVRfR0RPTQorICAgICAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQ
SSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKKyAgICAjZWxzZQorICAgICAgICAjZGVmaW5lIFdFQktJ
VF9HRE9NX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyAgICAjZW5kaWYKKyAgICAjZGVmaW5l
IFdFQktJVF9HRE9NX09CU09MRVRFX0FQSSBXRUJLSVRfR0RPTV9BUEkKKyNlbHNlCisgICAgI2Rl
ZmluZSBXRUJLSVRfR0RPTV9BUEkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIp
KSkKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9NX09CU09MRVRFX0FQSSBXRUJLSVRfR0RPTV9BUEkg
X19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCkpCisjZW5kaWYKKworI2lmbmRlZiBXRUJLSVRfR0RP
TV9BUEkKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQSQorI2VuZGlmCisKK0dfQkVHSU5fREVD
TFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0
Tm9kZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2RvbUV2ZW50
VGFyZ2V0Tm9kZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9i
amVjdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENs
YXNzOworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUF0dHIgR2RvbUF0dHI7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUF0dHJDbGFzcyBHZG9tQXR0ckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21CYXJJ
bmZvIEdkb21CYXJJbmZvOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21CYXJJbmZvQ2xhc3MgR2RvbUJh
ckluZm9DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzR3JhZGllbnQgR2RvbUNhbnZh
c0dyYWRpZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNHcmFkaWVudENsYXNzIEdkb21D
YW52YXNHcmFkaWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQYXR0ZXJuIEdk
b21DYW52YXNQYXR0ZXJuOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQYXR0ZXJuQ2xhc3Mg
R2RvbUNhbnZhc1BhdHRlcm5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGl4ZWxB
cnJheSBHZG9tQ2FudmFzUGl4ZWxBcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGl4
ZWxBcnJheUNsYXNzIEdkb21DYW52YXNQaXhlbEFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCBHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDbGFzcyBHZG9t
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNEQVRB
U2VjdGlvbiBHZG9tQ0RBVEFTZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DREFUQVNlY3Rp
b25DbGFzcyBHZG9tQ0RBVEFTZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNoYXJh
Y3RlckRhdGEgR2RvbUNoYXJhY3RlckRhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNoYXJhY3Rl
ckRhdGFDbGFzcyBHZG9tQ2hhcmFjdGVyRGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21D
bGlwYm9hcmQgR2RvbUNsaXBib2FyZDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2xpcGJvYXJkQ2xh
c3MgR2RvbUNsaXBib2FyZENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db21tZW50IEdkb21D
b21tZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db21tZW50Q2xhc3MgR2RvbUNvbW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ29uc29sZSBHZG9tQ29uc29sZTsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ29uc29sZUNsYXNzIEdkb21Db25zb2xlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNvdW50ZXIgR2RvbUNvdW50ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvdW50ZXJDbGFz
cyBHZG9tQ291bnRlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NDaGFyc2V0UnVsZSBH
ZG9tQ1NTQ2hhcnNldFJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0NoYXJzZXRSdWxlQ2xh
c3MgR2RvbUNTU0NoYXJzZXRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ZvbnRG
YWNlUnVsZSBHZG9tQ1NTRm9udEZhY2VSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NGb250
RmFjZVJ1bGVDbGFzcyBHZG9tQ1NTRm9udEZhY2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNTU0ltcG9ydFJ1bGUgR2RvbUNTU0ltcG9ydFJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUNTU0ltcG9ydFJ1bGVDbGFzcyBHZG9tQ1NTSW1wb3J0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21DU1NNZWRpYVJ1bGUgR2RvbUNTU01lZGlhUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tQ1NTTWVkaWFSdWxlQ2xhc3MgR2RvbUNTU01lZGlhUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21DU1NQYWdlUnVsZSBHZG9tQ1NTUGFnZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUNTU1BhZ2VSdWxlQ2xhc3MgR2RvbUNTU1BhZ2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNTU1ByaW1pdGl2ZVZhbHVlIEdkb21DU1NQcmltaXRpdmVWYWx1ZTsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTUHJpbWl0aXZlVmFsdWVDbGFzcyBHZG9tQ1NTUHJpbWl0aXZlVmFsdWVDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZSBHZG9tQ1NTUnVsZTsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTUnVsZUNsYXNzIEdkb21DU1NSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNTU1J1bGVMaXN0IEdkb21DU1NSdWxlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NT
UnVsZUxpc3RDbGFzcyBHZG9tQ1NTUnVsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTU3R5bGVEZWNsYXJhdGlvbiBHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbkNsYXNzIEdkb21DU1NTdHlsZURlY2xhcmF0aW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlUnVsZSBHZG9tQ1NTU3R5bGVSdWxl
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZVJ1bGVDbGFzcyBHZG9tQ1NTU3R5bGVSdWxl
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlU2hlZXQgR2RvbUNTU1N0eWxlU2hl
ZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlU2hlZXRDbGFzcyBHZG9tQ1NTU3R5bGVT
aGVldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYWx1ZSBHZG9tQ1NTVmFsdWU7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhbHVlQ2xhc3MgR2RvbUNTU1ZhbHVlQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUNTU1ZhbHVlTGlzdCBHZG9tQ1NTVmFsdWVMaXN0OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21DU1NWYWx1ZUxpc3RDbGFzcyBHZG9tQ1NTVmFsdWVMaXN0Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIEdkb21DU1NWYXJpYWJsZXNE
ZWNsYXJhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25D
bGFzcyBHZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tQ1NTVmFyaWFibGVzUnVsZSBHZG9tQ1NTVmFyaWFibGVzUnVsZTsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tQ1NTVmFyaWFibGVzUnVsZUNsYXNzIEdkb21DU1NWYXJpYWJsZXNSdWxlQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbURhdGFiYXNlIEdkb21EYXRhYmFzZTsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRGF0YWJhc2VDbGFzcyBHZG9tRGF0YWJhc2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRG9jdW1lbnRGcmFnbWVudCBHZG9tRG9jdW1lbnRGcmFnbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRG9jdW1lbnRGcmFnbWVudENsYXNzIEdkb21Eb2N1bWVudEZyYWdtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50IEdkb21Eb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRG9jdW1lbnRDbGFzcyBHZG9tRG9jdW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRG9jdW1lbnRUeXBlIEdkb21Eb2N1bWVudFR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURv
Y3VtZW50VHlwZUNsYXNzIEdkb21Eb2N1bWVudFR5cGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRE9NQXBwbGljYXRpb25DYWNoZSBHZG9tRE9NQXBwbGljYXRpb25DYWNoZTsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRE9NQXBwbGljYXRpb25DYWNoZUNsYXNzIEdkb21ET01BcHBsaWNhdGlvbkNh
Y2hlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUNvcmVFeGNlcHRpb24gR2RvbURPTUNv
cmVFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUNvcmVFeGNlcHRpb25DbGFzcyBH
ZG9tRE9NQ29yZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01JbXBsZW1l
bnRhdGlvbiBHZG9tRE9NSW1wbGVtZW50YXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUlt
cGxlbWVudGF0aW9uQ2xhc3MgR2RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbURPTVBhcnNlciBHZG9tRE9NUGFyc2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21E
T01QYXJzZXJDbGFzcyBHZG9tRE9NUGFyc2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURP
TVNlbGVjdGlvbiBHZG9tRE9NU2VsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01TZWxl
Y3Rpb25DbGFzcyBHZG9tRE9NU2VsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURP
TVdpbmRvdyBHZG9tRE9NV2luZG93OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01XaW5kb3dDbGFz
cyBHZG9tRE9NV2luZG93Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVsZW1lbnQgR2RvbUVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVsZW1lbnRDbGFzcyBHZG9tRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbnRpdHkgR2RvbUVudGl0eTsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRW50aXR5Q2xhc3MgR2RvbUVudGl0eUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21F
bnRpdHlSZWZlcmVuY2UgR2RvbUVudGl0eVJlZmVyZW5jZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RW50aXR5UmVmZXJlbmNlQ2xhc3MgR2RvbUVudGl0eVJlZmVyZW5jZUNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21FdmVudEV4Y2VwdGlvbiBHZG9tRXZlbnRFeGNlcHRpb247Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUV2ZW50RXhjZXB0aW9uQ2xhc3MgR2RvbUV2ZW50RXhjZXB0aW9uQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50IEdkb21FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RXZlbnRDbGFzcyBHZG9tRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmlsZSBHZG9t
RmlsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmlsZUNsYXNzIEdkb21GaWxlQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUZpbGVMaXN0IEdkb21GaWxlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRmlsZUxpc3RDbGFzcyBHZG9tRmlsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SGlzdG9yeSBHZG9tSGlzdG9yeTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSGlzdG9yeUNsYXNzIEdk
b21IaXN0b3J5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBbmNob3JFbGVtZW50IEdk
b21IVE1MQW5jaG9yRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFuY2hvckVsZW1l
bnRDbGFzcyBHZG9tSFRNTEFuY2hvckVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTEFwcGxldEVsZW1lbnQgR2RvbUhUTUxBcHBsZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MQXBwbGV0RWxlbWVudENsYXNzIEdkb21IVE1MQXBwbGV0RWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQXJlYUVsZW1lbnQgR2RvbUhUTUxBcmVhRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFyZWFFbGVtZW50Q2xhc3MgR2RvbUhUTUxBcmVhRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUVsZW1lbnQgR2RvbUhUTUxC
YXNlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJhc2VFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxCYXNlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUZvbnRF
bGVtZW50IEdkb21IVE1MQmFzZUZvbnRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
QmFzZUZvbnRFbGVtZW50Q2xhc3MgR2RvbUhUTUxCYXNlRm9udEVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50IEdkb21IVE1MQmxvY2txdW90ZUVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudENsYXNzIEdk
b21IVE1MQmxvY2txdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJv
ZHlFbGVtZW50IEdkb21IVE1MQm9keUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxC
b2R5RWxlbWVudENsYXNzIEdkb21IVE1MQm9keUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTEJSRWxlbWVudCBHZG9tSFRNTEJSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTEJSRWxlbWVudENsYXNzIEdkb21IVE1MQlJFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxCdXR0b25FbGVtZW50IEdkb21IVE1MQnV0dG9uRWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTEJ1dHRvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTEJ1dHRvbkVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTENhbnZhc0VsZW1lbnQgR2RvbUhUTUxD
YW52YXNFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ2FudmFzRWxlbWVudENsYXNz
IEdkb21IVE1MQ2FudmFzRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ29s
bGVjdGlvbiBHZG9tSFRNTENvbGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxDb2xs
ZWN0aW9uQ2xhc3MgR2RvbUhUTUxDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxEaXJlY3RvcnlFbGVtZW50IEdkb21IVE1MRGlyZWN0b3J5RWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRDbGFzcyBHZG9tSFRNTERpcmVjdG9yeUVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERpdkVsZW1lbnQgR2RvbUhUTUxE
aXZFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRGl2RWxlbWVudENsYXNzIEdkb21I
VE1MRGl2RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRExpc3RFbGVtZW50
IEdkb21IVE1MRExpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRExpc3RFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxETGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTERvY3VtZW50IEdkb21IVE1MRG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxE
b2N1bWVudENsYXNzIEdkb21IVE1MRG9jdW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTEVsZW1lbnQgR2RvbUhUTUxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRWxl
bWVudENsYXNzIEdkb21IVE1MRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
RW1iZWRFbGVtZW50IEdkb21IVE1MRW1iZWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MRW1iZWRFbGVtZW50Q2xhc3MgR2RvbUhUTUxFbWJlZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudCBHZG9tSFRNTEZpZWxkU2V0RWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudENsYXNzIEdkb21IVE1MRmll
bGRTZXRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb250RWxlbWVudCBH
ZG9tSFRNTEZvbnRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9udEVsZW1lbnRD
bGFzcyBHZG9tSFRNTEZvbnRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxG
b3JtRWxlbWVudCBHZG9tSFRNTEZvcm1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
Rm9ybUVsZW1lbnRDbGFzcyBHZG9tSFRNTEZvcm1FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxGcmFtZUVsZW1lbnQgR2RvbUhUTUxGcmFtZUVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxGcmFtZUVsZW1lbnRDbGFzcyBHZG9tSFRNTEZyYW1lRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRnJhbWVTZXRFbGVtZW50IEdkb21IVE1MRnJhbWVT
ZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Q2xhc3Mg
R2RvbUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhl
YWRFbGVtZW50IEdkb21IVE1MSGVhZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxI
ZWFkRWxlbWVudENsYXNzIEdkb21IVE1MSGVhZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTEhlYWRpbmdFbGVtZW50IEdkb21IVE1MSGVhZGluZ0VsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxIZWFkaW5nRWxlbWVudENsYXNzIEdkb21IVE1MSGVhZGluZ0VsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhSRWxlbWVudCBHZG9tSFRNTEhSRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhSRWxlbWVudENsYXNzIEdkb21IVE1MSFJF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIdG1sRWxlbWVudCBHZG9tSFRN
TEh0bWxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSHRtbEVsZW1lbnRDbGFzcyBH
ZG9tSFRNTEh0bWxFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJRnJhbWVF
bGVtZW50IEdkb21IVE1MSUZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElG
cmFtZUVsZW1lbnRDbGFzcyBHZG9tSFRNTElGcmFtZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEltYWdlRWxlbWVudCBHZG9tSFRNTEltYWdlRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTEltYWdlRWxlbWVudENsYXNzIEdkb21IVE1MSW1hZ2VFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJbnB1dEVsZW1lbnQgR2RvbUhUTUxJbnB1dEVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJbnB1dEVsZW1lbnRDbGFzcyBHZG9tSFRN
TElucHV0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSXNJbmRleEVsZW1l
bnQgR2RvbUhUTUxJc0luZGV4RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElzSW5k
ZXhFbGVtZW50Q2xhc3MgR2RvbUhUTUxJc0luZGV4RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MTGFiZWxFbGVtZW50IEdkb21IVE1MTGFiZWxFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MTGFiZWxFbGVtZW50Q2xhc3MgR2RvbUhUTUxMYWJlbEVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExlZ2VuZEVsZW1lbnQgR2RvbUhUTUxMZWdlbmRF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGVnZW5kRWxlbWVudENsYXNzIEdkb21I
VE1MTGVnZW5kRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTElFbGVtZW50
IEdkb21IVE1MTElFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTElFbGVtZW50Q2xh
c3MgR2RvbUhUTUxMSUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExpbmtF
bGVtZW50IEdkb21IVE1MTGlua0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMaW5r
RWxlbWVudENsYXNzIEdkb21IVE1MTGlua0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTE1hcEVsZW1lbnQgR2RvbUhUTUxNYXBFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MTWFwRWxlbWVudENsYXNzIEdkb21IVE1MTWFwRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MTWFycXVlZUVsZW1lbnQgR2RvbUhUTUxNYXJxdWVlRWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50Q2xhc3MgR2RvbUhUTUxNYXJxdWVl
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWVudUVsZW1lbnQgR2RvbUhU
TUxNZW51RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1lbnVFbGVtZW50Q2xhc3Mg
R2RvbUhUTUxNZW51RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWV0YUVs
ZW1lbnQgR2RvbUhUTUxNZXRhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1ldGFF
bGVtZW50Q2xhc3MgR2RvbUhUTUxNZXRhRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MTW9kRWxlbWVudCBHZG9tSFRNTE1vZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxNb2RFbGVtZW50Q2xhc3MgR2RvbUhUTUxNb2RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxPYmplY3RFbGVtZW50IEdkb21IVE1MT2JqZWN0RWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTE9iamVjdEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9iamVjdEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9MaXN0RWxlbWVudCBHZG9tSFRNTE9M
aXN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9MaXN0RWxlbWVudENsYXNzIEdk
b21IVE1MT0xpc3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRHcm91
cEVsZW1lbnQgR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxPcHRHcm91cEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9wdEdyb3VwRWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0aW9uRWxlbWVudCBHZG9tSFRNTE9wdGlvbkVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRpb25FbGVtZW50Q2xhc3MgR2RvbUhUTUxPcHRp
b25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlv
biBHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0
aW9uc0NvbGxlY3Rpb25DbGFzcyBHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50IEdkb21IVE1MUGFyYWdyYXBoRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnRDbGFzcyBHZG9t
SFRNTFBhcmFncmFwaEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFt
RWxlbWVudCBHZG9tSFRNTFBhcmFtRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBh
cmFtRWxlbWVudENsYXNzIEdkb21IVE1MUGFyYW1FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxQcmVFbGVtZW50IEdkb21IVE1MUHJlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFByZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFByZUVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTFF1b3RlRWxlbWVudCBHZG9tSFRNTFF1b3RlRWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTFF1b3RlRWxlbWVudENsYXNzIEdkb21IVE1MUXVvdGVFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxTY3JpcHRFbGVtZW50IEdkb21IVE1M
U2NyaXB0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNjcmlwdEVsZW1lbnRDbGFz
cyBHZG9tSFRNTFNjcmlwdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNl
bGVjdEVsZW1lbnQgR2RvbUhUTUxTZWxlY3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MU2VsZWN0RWxlbWVudENsYXNzIEdkb21IVE1MU2VsZWN0RWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MU3R5bGVFbGVtZW50IEdkb21IVE1MU3R5bGVFbGVtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU3R5bGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxTdHlsZUVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQgR2Rv
bUhUTUxUYWJsZUNhcHRpb25FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVD
YXB0aW9uRWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDZWxsRWxlbWVudCBHZG9tSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJs
ZUNvbEVsZW1lbnQgR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxlQ29sRWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVFbGVtZW50IEdkb21IVE1MVGFibGVFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJs
ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlUm93RWxlbWVudCBH
ZG9tSFRNTFRhYmxlUm93RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlUm93
RWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVSb3dFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IEdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRDbGFzcyBHZG9t
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRl
eHRBcmVhRWxlbWVudCBHZG9tSFRNTFRleHRBcmVhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTFRleHRBcmVhRWxlbWVudENsYXNzIEdkb21IVE1MVGV4dEFyZWFFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUaXRsZUVsZW1lbnQgR2RvbUhUTUxUaXRsZUVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUaXRsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFRp
dGxlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVUxpc3RFbGVtZW50IEdk
b21IVE1MVUxpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVUxpc3RFbGVtZW50
Q2xhc3MgR2RvbUhUTUxVTGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSW1h
Z2VEYXRhIEdkb21JbWFnZURhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUltYWdlRGF0YUNsYXNz
IEdkb21JbWFnZURhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSmF2YVNjcmlwdENhbGxG
cmFtZSBHZG9tSmF2YVNjcmlwdENhbGxGcmFtZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSmF2YVNj
cmlwdENhbGxGcmFtZUNsYXNzIEdkb21KYXZhU2NyaXB0Q2FsbEZyYW1lQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUtleWJvYXJkRXZlbnQgR2RvbUtleWJvYXJkRXZlbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUtleWJvYXJkRXZlbnRDbGFzcyBHZG9tS2V5Ym9hcmRFdmVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21Mb2NhdGlvbiBHZG9tTG9jYXRpb247Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUxvY2F0aW9uQ2xhc3MgR2RvbUxvY2F0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bU1lZGlhTGlzdCBHZG9tTWVkaWFMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZWRpYUxpc3RD
bGFzcyBHZG9tTWVkaWFMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lc3NhZ2VFdmVu
dCBHZG9tTWVzc2FnZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZXNzYWdlRXZlbnRDbGFz
cyBHZG9tTWVzc2FnZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQXJy
YXkgR2RvbU1pbWVUeXBlQXJyYXk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQXJyYXlD
bGFzcyBHZG9tTWltZVR5cGVBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NaW1lVHlw
ZSBHZG9tTWltZVR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQ2xhc3MgR2RvbU1p
bWVUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1vdXNlRXZlbnQgR2RvbU1vdXNlRXZl
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1vdXNlRXZlbnRDbGFzcyBHZG9tTW91c2VFdmVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NdXRhdGlvbkV2ZW50IEdkb21NdXRhdGlvbkV2ZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NdXRhdGlvbkV2ZW50Q2xhc3MgR2RvbU11dGF0aW9uRXZl
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTmFtZWROb2RlTWFwIEdkb21OYW1lZE5vZGVN
YXA7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5hbWVkTm9kZU1hcENsYXNzIEdkb21OYW1lZE5vZGVN
YXBDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTmF2aWdhdG9yIEdkb21OYXZpZ2F0b3I7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbU5hdmlnYXRvckNsYXNzIEdkb21OYXZpZ2F0b3JDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tTm9kZUZpbHRlciBHZG9tTm9kZUZpbHRlcjsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tTm9kZUZpbHRlckNsYXNzIEdkb21Ob2RlRmlsdGVyQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbU5vZGUgR2RvbU5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVDbGFzcyBH
ZG9tTm9kZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlSXRlcmF0b3IgR2RvbU5vZGVJ
dGVyYXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUl0ZXJhdG9yQ2xhc3MgR2RvbU5vZGVJ
dGVyYXRvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlTGlzdCBHZG9tTm9kZUxpc3Q7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVMaXN0Q2xhc3MgR2RvbU5vZGVMaXN0Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbU5vdGF0aW9uIEdkb21Ob3RhdGlvbjsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tTm90YXRpb25DbGFzcyBHZG9tTm90YXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tT3ZlcmZsb3dFdmVudCBHZG9tT3ZlcmZsb3dFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
T3ZlcmZsb3dFdmVudENsYXNzIEdkb21PdmVyZmxvd0V2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVBsdWdpbkFycmF5IEdkb21QbHVnaW5BcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
UGx1Z2luQXJyYXlDbGFzcyBHZG9tUGx1Z2luQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tUGx1Z2luIEdkb21QbHVnaW47Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbkNsYXNzIEdk
b21QbHVnaW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9u
IEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVByb2Nlc3Np
bmdJbnN0cnVjdGlvbkNsYXNzIEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tUHJvZ3Jlc3NFdmVudCBHZG9tUHJvZ3Jlc3NFdmVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tUHJvZ3Jlc3NFdmVudENsYXNzIEdkb21Qcm9ncmVzc0V2ZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVJhbmdlRXhjZXB0aW9uIEdkb21SYW5nZUV4Y2VwdGlvbjsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tUmFuZ2VFeGNlcHRpb25DbGFzcyBHZG9tUmFuZ2VFeGNlcHRpb25D
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmFuZ2UgR2RvbVJhbmdlOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21SYW5nZUNsYXNzIEdkb21SYW5nZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21S
ZWN0IEdkb21SZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SZWN0Q2xhc3MgR2RvbVJlY3RDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU2NyZWVuIEdkb21TY3JlZW47Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVNjcmVlbkNsYXNzIEdkb21TY3JlZW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
U1FMRXJyb3IgR2RvbVNRTEVycm9yOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxFcnJvckNsYXNz
IEdkb21TUUxFcnJvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXQgR2Rv
bVNRTFJlc3VsdFNldDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0Q2xhc3MgR2Rv
bVNRTFJlc3VsdFNldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRSb3dM
aXN0IEdkb21TUUxSZXN1bHRTZXRSb3dMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1
bHRTZXRSb3dMaXN0Q2xhc3MgR2RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tU1FMVHJhbnNhY3Rpb24gR2RvbVNRTFRyYW5zYWN0aW9uOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21TUUxUcmFuc2FjdGlvbkNsYXNzIEdkb21TUUxUcmFuc2FjdGlvbkNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9yYWdlRXZlbnQgR2RvbVN0b3JhZ2VFdmVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tU3RvcmFnZUV2ZW50Q2xhc3MgR2RvbVN0b3JhZ2VFdmVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9yYWdlIEdkb21TdG9yYWdlOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21TdG9yYWdlQ2xhc3MgR2RvbVN0b3JhZ2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
U3R5bGVTaGVldCBHZG9tU3R5bGVTaGVldDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVl
dENsYXNzIEdkb21TdHlsZVNoZWV0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hl
ZXRMaXN0IEdkb21TdHlsZVNoZWV0TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVl
dExpc3RDbGFzcyBHZG9tU3R5bGVTaGVldExpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
VGV4dEV2ZW50IEdkb21UZXh0RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRleHRFdmVudENs
YXNzIEdkb21UZXh0RXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dCBHZG9tVGV4
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dENsYXNzIEdkb21UZXh0Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVRyZWVXYWxrZXIgR2RvbVRyZWVXYWxrZXI7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVRyZWVXYWxrZXJDbGFzcyBHZG9tVHJlZVdhbGtlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21VSUV2ZW50IEdkb21VSUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21VSUV2ZW50Q2xh
c3MgR2RvbVVJRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0QW5pbWF0aW9u
RXZlbnQgR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJL
aXRBbmltYXRpb25FdmVudENsYXNzIEdkb21XZWJLaXRBbmltYXRpb25FdmVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSBHZG9tV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVl
Q2xhc3MgR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVdlYktpdFRyYW5zaXRpb25FdmVudCBHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzcyBHZG9tV2ViS2l0VHJh
bnNpdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdoZWVsRXZlbnQgR2RvbVdo
ZWVsRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdoZWVsRXZlbnRDbGFzcyBHZG9tV2hlZWxF
dmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiBH
ZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uQ2xhc3MgR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0IEdkb21YTUxIdHRwUmVxdWVzdDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RDbGFzcyBHZG9tWE1MSHR0cFJlcXVlc3RD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50IEdk
b21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudENsYXNzIEdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQgR2RvbVhN
TEh0dHBSZXF1ZXN0VXBsb2FkOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFVw
bG9hZENsYXNzIEdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21YTUxTZXJpYWxpemVyIEdkb21YTUxTZXJpYWxpemVyOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21YTUxTZXJpYWxpemVyQ2xhc3MgR2RvbVhNTFNlcmlhbGl6ZXJDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tWFBhdGhFdmFsdWF0b3IgR2RvbVhQYXRoRXZhbHVhdG9yOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21YUGF0aEV2YWx1YXRvckNsYXNzIEdkb21YUGF0aEV2YWx1YXRvckNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV4Y2VwdGlvbiBHZG9tWFBhdGhFeGNlcHRpb247Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXhjZXB0aW9uQ2xhc3MgR2RvbVhQYXRoRXhjZXB0aW9uQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXhwcmVzc2lvbiBHZG9tWFBhdGhFeHByZXNz
aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV4cHJlc3Npb25DbGFzcyBHZG9tWFBhdGhF
eHByZXNzaW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoTlNSZXNvbHZlciBHZG9t
WFBhdGhOU1Jlc29sdmVyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aE5TUmVzb2x2ZXJDbGFz
cyBHZG9tWFBhdGhOU1Jlc29sdmVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoUmVz
dWx0IEdkb21YUGF0aFJlc3VsdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhSZXN1bHRDbGFz
cyBHZG9tWFBhdGhSZXN1bHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFNMVFByb2Nlc3Nv
ciBHZG9tWFNMVFByb2Nlc3NvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFNMVFByb2Nlc3NvckNs
YXNzIEdkb21YU0xUUHJvY2Vzc29yQ2xhc3M7CisKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09C
SkVDVCAgICAgICAgICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFICAgICAgICAgICAgKGdkb21fZXZlbnRfdGFyZ2V0X25v
ZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0FUVFIgICAgICAgICAgICAoZ2RvbV9h
dHRyX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9CQVJfSU5GTyAgICAgICAgICAgIChn
ZG9tX2Jhcl9pbmZvX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DQU5WQVNfR1JBRElF
TlQgICAgICAgICAgICAoZ2RvbV9jYW52YXNfZ3JhZGllbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0NBTlZBU19QQVRURVJOICAgICAgICAgICAgKGdkb21fY2FudmFzX3BhdHRlcm5f
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19QSVhFTF9BUlJBWSAgICAgICAg
ICAgIChnZG9tX2NhbnZhc19waXhlbF9hcnJheV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfQ0FOVkFTX1JFTkRFUklOR19DT05URVhUMkQgICAgICAgICAgICAoZ2RvbV9jYW52YXNfcmVu
ZGVyaW5nX2NvbnRleHQyZF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0RBVEFfU0VD
VElPTiAgICAgICAgICAgIChnZG9tX2NkYXRhX3NlY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0NIQVJBQ1RFUl9EQVRBICAgICAgICAgICAgKGdkb21fY2hhcmFjdGVyX2RhdGFf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NMSVBCT0FSRCAgICAgICAgICAgIChnZG9t
X2NsaXBib2FyZF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ09NTUVOVCAgICAgICAg
ICAgIChnZG9tX2NvbW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NPTlNPTEUg
ICAgICAgICAgICAoZ2RvbV9jb25zb2xlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9D
T1VOVEVSICAgICAgICAgICAgKGdkb21fY291bnRlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfQ1NTX0NIQVJTRVRfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19jaGFyc2V0X3J1bGVf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19GT05UX0ZBQ0VfUlVMRSAgICAgICAg
ICAgIChnZG9tX2Nzc19mb250X2ZhY2VfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfQ1NTX0lNUE9SVF9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX2ltcG9ydF9ydWxlX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfTUVESUFfUlVMRSAgICAgICAgICAgIChnZG9t
X2Nzc19tZWRpYV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfUEFHRV9S
VUxFICAgICAgICAgICAgKGdkb21fY3NzX3BhZ2VfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfQ1NTX1BSSU1JVElWRV9WQUxVRSAgICAgICAgICAgIChnZG9tX2Nzc19wcmltaXRp
dmVfdmFsdWVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19SVUxFICAgICAgICAg
ICAgKGdkb21fY3NzX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19SVUxF
X0xJU1QgICAgICAgICAgICAoZ2RvbV9jc3NfcnVsZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9DU1NfU1RZTEVfREVDTEFSQVRJT04gICAgICAgICAgICAoZ2RvbV9jc3Nfc3R5
bGVfZGVjbGFyYXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19TVFlMRV9S
VUxFICAgICAgICAgICAgKGdkb21fY3NzX3N0eWxlX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0NTU19TVFlMRV9TSEVFVCAgICAgICAgICAgIChnZG9tX2Nzc19zdHlsZV9zaGVl
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZBTFVFICAgICAgICAgICAgKGdk
b21fY3NzX3ZhbHVlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFMVUVfTElT
VCAgICAgICAgICAgIChnZG9tX2Nzc192YWx1ZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9DU1NfVkFSSUFCTEVTX0RFQ0xBUkFUSU9OICAgICAgICAgICAgKGdkb21fY3NzX3Zh
cmlhYmxlc19kZWNsYXJhdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZB
UklBQkxFU19SVUxFICAgICAgICAgICAgKGdkb21fY3NzX3ZhcmlhYmxlc19ydWxlX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9EQVRBQkFTRSAgICAgICAgICAgIChnZG9tX2RhdGFiYXNl
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAg
ICAgIChnZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9ET0NVTUVOVCAgICAgICAgICAgIChnZG9tX2RvY3VtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9ET0NVTUVOVF9UWVBFICAgICAgICAgICAgKGdkb21fZG9jdW1lbnRfdHlwZV9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9NX0FQUExJQ0FUSU9OX0NBQ0hFICAgICAg
ICAgICAgKGdkb21fZG9tX2FwcGxpY2F0aW9uX2NhY2hlX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9ET01fQ09SRV9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV9kb21fY29yZV9leGNl
cHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9JTVBMRU1FTlRBVElPTiAg
ICAgICAgICAgIChnZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfRE9NX1BBUlNFUiAgICAgICAgICAgIChnZG9tX2RvbV9wYXJzZXJfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9TRUxFQ1RJT04gICAgICAgICAgICAoZ2RvbV9kb21f
c2VsZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET01fV0lORE9XICAgICAg
ICAgICAgKGdkb21fZG9tX3dpbmRvd19nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0VOVElUWSAgICAgICAgICAgIChnZG9tX2VudGl0eV9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfRU5USVRZX1JFRkVSRU5DRSAgICAgICAgICAgIChnZG9tX2VudGl0eV9yZWZlcmVu
Y2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UX0VYQ0VQVElPTiAgICAgICAg
ICAgIChnZG9tX2V2ZW50X2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
RVZFTlQgICAgICAgICAgICAoZ2RvbV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfRklMRSAgICAgICAgICAgIChnZG9tX2ZpbGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0ZJTEVfTElTVCAgICAgICAgICAgIChnZG9tX2ZpbGVfbGlzdF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfSElTVE9SWSAgICAgICAgICAgIChnZG9tX2hpc3RvcnlfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQU5DSE9SX0VMRU1FTlQgICAgICAgICAgICAoZ2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1M
X0FQUExFVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9BUkVBX0VMRU1FTlQgICAgICAgICAgICAo
Z2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRN
TF9CQVNFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Jhc2VfZWxlbWVudF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CQVNFX0ZPTlRfRUxFTUVOVCAgICAgICAgICAg
IChnZG9tX2h0bWxfYmFzZV9mb250X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxfQkxPQ0tRVU9URV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9ibG9ja3F1
b3RlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQk9EWV9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxCUl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGJyX2VsZW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQlVUVE9OX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX0NBTlZBU19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9jYW52YXNf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9DT0xMRUNUSU9OICAg
ICAgICAgICAgKGdkb21faHRtbF9jb2xsZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9IVE1MX0RJUkVDVE9SWV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9kaXJlY3Rv
cnlfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9ESVZfRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfZGl2X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxEX0xJU1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxkX2xpc3Rf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9ET0NVTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9FTUJFRF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9lbWJlZF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZJRUxE
X1NFVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9maWVsZF9zZXRfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GT05UX0VMRU1FTlQgICAgICAgICAgICAo
Z2RvbV9odG1sX2ZvbnRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRN
TF9GT1JNX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GUkFNRV9FTEVNRU5UICAgICAgICAgICAgKGdk
b21faHRtbF9mcmFtZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1M
X0ZSQU1FX1NFVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9mcmFtZV9zZXRfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9IRUFEX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX2hlYWRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9IRUFESU5HX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2hlYWRpbmdfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTEhSX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1saHJfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
SFRNTF9IVE1MX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2h0bWxfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTElfRlJBTUVfRUxFTUVOVCAgICAgICAgICAg
IChnZG9tX2h0bWxpX2ZyYW1lX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfSU1BR0VfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9JTlBVVF9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MX0lTX0lOREVYX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2lzX2luZGV4X2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTEFCRUxfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfbGFiZWxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9MRUdFTkRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbGVnZW5k
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxMSV9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbGxpX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxfTElOS19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9saW5rX2VsZW1lbnRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTUFQX0VMRU1FTlQgICAgICAgICAg
ICAoZ2RvbV9odG1sX21hcF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MX01BUlFVRUVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWFycXVlZV9lbGVtZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01FTlVfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfbWVudV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MX01FVEFfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01PRF9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbF9tb2RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRN
TF9PQkpFQ1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxPX0xJU1RfRUxFTUVOVCAgICAgICAgICAg
IChnZG9tX2h0bWxvX2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
SFRNTF9PUFRfR1JPVVBfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfb3B0X2dyb3VwX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfT1BUSU9OX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX09QVElPTlNfQ09MTEVDVElPTiAgICAgICAgICAgIChnZG9tX2h0bWxf
b3B0aW9uc19jb2xsZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1BB
UkFHUkFQSF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9wYXJhZ3JhcGhfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9QQVJBTV9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF9wYXJhbV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MX1BSRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9wcmVfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9RVU9URV9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbF9xdW90ZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MX1NDUklQVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9zY3JpcHRfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9TRUxFQ1RfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxfU1RZTEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfc3R5bGVfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DQVBUSU9OX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX2NhcHRpb25fZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DRUxMX0VMRU1FTlQgICAgICAgICAgICAo
Z2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9UQUJMRV9DT0xfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfY29s
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9ST1dfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
dGFibGVfcm93X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFC
TEVfU0VDVElPTl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9zZWN0aW9uX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEVYVF9BUkVBX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9IVE1MX1RJVExFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X3RpdGxlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxVX0xJU1Rf
RUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWx1X2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSU1BR0VfREFUQSAgICAgICAgICAgIChnZG9tX2ltYWdlX2RhdGFf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0pBVkFfU0NSSVBUX0NBTExfRlJBTUUgICAg
ICAgICAgICAoZ2RvbV9qYXZhX3NjcmlwdF9jYWxsX2ZyYW1lX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9LRVlCT0FSRF9FVkVOVCAgICAgICAgICAgIChnZG9tX2tleWJvYXJkX2V2ZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9MT0NBVElPTiAgICAgICAgICAgIChnZG9t
X2xvY2F0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NRURJQV9MSVNUICAgICAg
ICAgICAgKGdkb21fbWVkaWFfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUVT
U0FHRV9FVkVOVCAgICAgICAgICAgIChnZG9tX21lc3NhZ2VfZXZlbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX01JTUVfVFlQRV9BUlJBWSAgICAgICAgICAgIChnZG9tX21pbWVfdHlw
ZV9hcnJheV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUlNRV9UWVBFICAgICAgICAg
ICAgKGdkb21fbWltZV90eXBlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NT1VTRV9F
VkVOVCAgICAgICAgICAgIChnZG9tX21vdXNlX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9NVVRBVElPTl9FVkVOVCAgICAgICAgICAgIChnZG9tX211dGF0aW9uX2V2ZW50X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OQU1FRF9OT0RFX01BUCAgICAgICAgICAgIChn
ZG9tX25hbWVkX25vZGVfbWFwX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OQVZJR0FU
T1IgICAgICAgICAgICAoZ2RvbV9uYXZpZ2F0b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX05PREVfRklMVEVSICAgICAgICAgICAgKGdkb21fbm9kZV9maWx0ZXJfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX05PREUgICAgICAgICAgICAoZ2RvbV9ub2RlX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9OT0RFX0lURVJBVE9SICAgICAgICAgICAgKGdkb21fbm9kZV9p
dGVyYXRvcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTk9ERV9MSVNUICAgICAgICAg
ICAgKGdkb21fbm9kZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT1RBVElP
TiAgICAgICAgICAgIChnZG9tX25vdGF0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9PVkVSRkxPV19FVkVOVCAgICAgICAgICAgIChnZG9tX292ZXJmbG93X2V2ZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9QTFVHSU5fQVJSQVkgICAgICAgICAgICAoZ2RvbV9wbHVn
aW5fYXJyYXlfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1BMVUdJTiAgICAgICAgICAg
IChnZG9tX3BsdWdpbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUFJPQ0VTU0lOR19J
TlNUUlVDVElPTiAgICAgICAgICAgIChnZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1BST0dSRVNTX0VWRU5UICAgICAgICAgICAgKGdkb21f
cHJvZ3Jlc3NfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1JBTkdFX0VYQ0VQ
VElPTiAgICAgICAgICAgIChnZG9tX3JhbmdlX2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfUkFOR0UgICAgICAgICAgICAoZ2RvbV9yYW5nZV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfUkVDVCAgICAgICAgICAgIChnZG9tX3JlY3RfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX1NDUkVFTiAgICAgICAgICAgIChnZG9tX3NjcmVlbl9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfU1FMX0VSUk9SICAgICAgICAgICAgKGdkb21fc3FsX2Vycm9y
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxfUkVTVUxUX1NFVCAgICAgICAgICAg
IChnZG9tX3NxbF9yZXN1bHRfc2V0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxf
UkVTVUxUX1NFVF9ST1dfTElTVCAgICAgICAgICAgIChnZG9tX3NxbF9yZXN1bHRfc2V0X3Jvd19s
aXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxfVFJBTlNBQ1RJT04gICAgICAg
ICAgICAoZ2RvbV9zcWxfdHJhbnNhY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1NUT1JBR0VfRVZFTlQgICAgICAgICAgICAoZ2RvbV9zdG9yYWdlX2V2ZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9TVE9SQUdFICAgICAgICAgICAgKGdkb21fc3RvcmFnZV9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1RZTEVfU0hFRVQgICAgICAgICAgICAoZ2RvbV9z
dHlsZV9zaGVldF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1RZTEVfU0hFRVRfTElT
VCAgICAgICAgICAgIChnZG9tX3N0eWxlX3NoZWV0X2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX1RFWFRfRVZFTlQgICAgICAgICAgICAoZ2RvbV90ZXh0X2V2ZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9URVhUICAgICAgICAgICAgKGdkb21fdGV4dF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfVFJFRV9XQUxLRVIgICAgICAgICAgICAoZ2RvbV90cmVl
X3dhbGtlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfVUlfRVZFTlQgICAgICAgICAg
ICAoZ2RvbV91aV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfV0VCX0tJVF9B
TklNQVRJT05fRVZFTlQgICAgICAgICAgICAoZ2RvbV93ZWJfa2l0X2FuaW1hdGlvbl9ldmVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfV0VCX0tJVF9DU1NfVFJBTlNGT1JNX1ZBTFVF
ICAgICAgICAgICAgKGdkb21fd2ViX2tpdF9jc3NfdHJhbnNmb3JtX3ZhbHVlX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9XRUJfS0lUX1RSQU5TSVRJT05fRVZFTlQgICAgICAgICAgICAo
Z2RvbV93ZWJfa2l0X3RyYW5zaXRpb25fZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX1dIRUVMX0VWRU5UICAgICAgICAgICAgKGdkb21fd2hlZWxfZXZlbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1RfRVhDRVBUSU9OICAgICAgICAgICAg
KGdkb21feG1sX2h0dHBfcmVxdWVzdF9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX1hNTF9IVFRQX1JFUVVFU1QgICAgICAgICAgICAoZ2RvbV94bWxfaHR0cF9yZXF1ZXN0
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YTUxfSFRUUF9SRVFVRVNUX1BST0dSRVNT
X0VWRU5UICAgICAgICAgICAgKGdkb21feG1sX2h0dHBfcmVxdWVzdF9wcm9ncmVzc19ldmVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWE1MX0hUVFBfUkVRVUVTVF9VUExPQUQgICAg
ICAgICAgICAoZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3VwbG9hZF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfWE1MX1NFUklBTElaRVIgICAgICAgICAgICAoZ2RvbV94bWxfc2VyaWFsaXpl
cl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWF9QQVRIX0VWQUxVQVRPUiAgICAgICAg
ICAgIChnZG9tX3hfcGF0aF9ldmFsdWF0b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1hfUEFUSF9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV94X3BhdGhfZXhjZXB0aW9uX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YX1BBVEhfRVhQUkVTU0lPTiAgICAgICAgICAgIChn
ZG9tX3hfcGF0aF9leHByZXNzaW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YX1BB
VEhfTlNfUkVTT0xWRVIgICAgICAgICAgICAoZ2RvbV94X3BhdGhfbnNfcmVzb2x2ZXJfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9SRVNVTFQgICAgICAgICAgICAoZ2RvbV94
X3BhdGhfcmVzdWx0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YU0xUX1BST0NFU1NP
UiAgICAgICAgICAgIChnZG9tX3hzbHRfcHJvY2Vzc29yX2dldF90eXBlKCkpCitHX0VORF9ERUNM
UworCisjZW5kaWYKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0dkb21Eb2N1bWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0dkb21Eb2N1bWVudC5oCShyZXZpc2lvbiAwKQor
KysgV2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24g
TGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2Vy
IDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8K
KyNpZm5kZWYgX19HZG9tRG9jdW1lbnRfSF9fCisjZGVmaW5lIF9fR2RvbURvY3VtZW50X0hfXwor
I2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisjaW5jbHVkZSAiR2RvbUF0dHIuaCIK
KyNpbmNsdWRlICJHZG9tQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUNTU1N0eWxlRGVj
bGFyYXRpb24uaCIKKyNpbmNsdWRlICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiCisj
aW5jbHVkZSAiR2RvbUNvbW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRE9NU2VsZWN0aW9uLmgiCisj
aW5jbHVkZSAiR2RvbURvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJHZG9tRWxlbWVudC5o
IgorI2luY2x1ZGUgIkdkb21FbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnQu
aCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbU5vZGUu
aCIKKyNpbmNsdWRlICJHZG9tTm9kZUZpbHRlci5oIgorI2luY2x1ZGUgIkdkb21Ob2RlSXRlcmF0
b3IuaCIKKyNpbmNsdWRlICJHZG9tTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJHZG9tUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiR2RvbVJhbmdlLmgiCisjaW5jbHVkZSAiR2RvbVRl
eHQuaCIKKyNpbmNsdWRlICJHZG9tVHJlZVdhbGtlci5oIgorI2luY2x1ZGUgIkdkb21YUGF0aEV4
cHJlc3Npb24uaCIKKyNpbmNsdWRlICJHZG9tWFBhdGhOU1Jlc29sdmVyLmgiCisjaW5jbHVkZSAi
R2RvbVhQYXRoUmVzdWx0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworCitHX0JFR0lO
X0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnQgR2RvbURvY3VtZW50OwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudENsYXNzIEdkb21Eb2N1bWVudENsYXNzOworCisKKyNk
ZWZpbmUgR0RPTV9UWVBFX0RPQ1VNRU5UICAgICAgICAgICAgKGdkb21fZG9jdW1lbnRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9ET0NVTUVOVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVD
S19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfRE9DVU1FTlQsIEdkb21Eb2N1bWVudCkp
CisjZGVmaW5lIEdET01fRE9DVU1FTlRfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPQ1VNRU5ULCBHZG9tRG9jdW1lbnQpQ2xhc3Mp
CisjZGVmaW5lIEdET01fSVNfRE9DVU1FTlQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0RPQ1VNRU5UKSkKKyNkZWZpbmUgR0RPTV9JU19E
T0NVTUVOVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBH
RE9NX1RZUEVfRE9DVU1FTlQpKQorI2RlZmluZSBHRE9NX0RPQ1VNRU5UX0dFVF9DTEFTUyhvYmop
ICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9ET0NVTUVOVCwg
R2RvbURvY3VtZW50Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50UHJpdmF0
ZSBHZG9tRG9jdW1lbnRQcml2YXRlOworCitzdHJ1Y3QgX0dkb21Eb2N1bWVudCB7CisgICAgR2Rv
bUV2ZW50VGFyZ2V0Tm9kZSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRG9jdW1lbnRQcml2
YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRG9jdW1lbnRDbGFzcyB7CisgICAgR09iamVj
dENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21fZG9jdW1l
bnRfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIEdkb21FbGVtZW50ICoKK2dkb21fZG9j
dW1lbnRfY3JlYXRlX2VsZW1lbnQgKEdkb21Eb2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKnRh
Z19uYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRG9jdW1lbnRGcmFnbWVudCAqCitnZG9tX2RvY3Vt
ZW50X2NyZWF0ZV9kb2N1bWVudF9mcmFnbWVudCAoR2RvbURvY3VtZW50ICp0aGl6KTsKKworV0VC
S0lUX0FQSSBHZG9tVGV4dCAqCitnZG9tX2RvY3VtZW50X2NyZWF0ZV90ZXh0X25vZGUgKEdkb21E
b2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKmRhdGEpOworCitXRUJLSVRfQVBJIEdkb21Db21t
ZW50ICoKK2dkb21fZG9jdW1lbnRfY3JlYXRlX2NvbW1lbnQgKEdkb21Eb2N1bWVudCAqdGhpeiwg
Y29uc3QgZ2NoYXIgKmRhdGEpOworCitXRUJLSVRfQVBJIEdkb21DREFUQVNlY3Rpb24gKgorZ2Rv
bV9kb2N1bWVudF9jcmVhdGVfY2RhdGFfc2VjdGlvbiAoR2RvbURvY3VtZW50ICp0aGl6LCBjb25z
dCBnY2hhciAqZGF0YSk7CisKK1dFQktJVF9BUEkgR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbiAq
CitnZG9tX2RvY3VtZW50X2NyZWF0ZV9wcm9jZXNzaW5nX2luc3RydWN0aW9uIChHZG9tRG9jdW1l
bnQgKnRoaXosIGNvbnN0IGdjaGFyICp0YXJnZXQsIGNvbnN0IGdjaGFyICpkYXRhKTsKKworV0VC
S0lUX0FQSSBHZG9tQXR0ciAqCitnZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGUgKEdkb21E
b2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKm5hbWUpOworCitXRUJLSVRfQVBJIEdkb21FbnRp
dHlSZWZlcmVuY2UgKgorZ2RvbV9kb2N1bWVudF9jcmVhdGVfZW50aXR5X3JlZmVyZW5jZSAoR2Rv
bURvY3VtZW50ICp0aGl6LCBjb25zdCBnY2hhciAqbmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbU5v
ZGVMaXN0ICoKK2dkb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1lIChHZG9tRG9j
dW1lbnQgKnRoaXosIGNvbnN0IGdjaGFyICp0YWduYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tTm9k
ZSAqCitnZG9tX2RvY3VtZW50X2ltcG9ydF9ub2RlIChHZG9tRG9jdW1lbnQgKnRoaXosIEdkb21O
b2RlICppbXBvcnRlZF9ub2RlLCBnYm9vbGVhbiBkZWVwKTsKKworV0VCS0lUX0FQSSBHZG9tRWxl
bWVudCAqCitnZG9tX2RvY3VtZW50X2NyZWF0ZV9lbGVtZW50X25zIChHZG9tRG9jdW1lbnQgKnRo
aXosIGNvbnN0IGdjaGFyICpuYW1lc3BhY2VfdXJpLCBjb25zdCBnY2hhciAqcXVhbGlmaWVkX25h
bWUpOworCitXRUJLSVRfQVBJIEdkb21BdHRyICoKK2dkb21fZG9jdW1lbnRfY3JlYXRlX2F0dHJp
YnV0ZV9ucyAoR2RvbURvY3VtZW50ICp0aGl6LCBjb25zdCBnY2hhciAqbmFtZXNwYWNlX3VyaSwg
Y29uc3QgZ2NoYXIgKnF1YWxpZmllZF9uYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tTm9kZUxpc3Qg
KgorZ2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfbnMgKEdkb21Eb2N1bWVu
dCAqdGhpeiwgY29uc3QgZ2NoYXIgKm5hbWVzcGFjZV91cmksIGNvbnN0IGdjaGFyICpsb2NhbF9u
YW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRWxlbWVudCAqCitnZG9tX2RvY3VtZW50X2dldF9lbGVt
ZW50X2J5X2lkIChHZG9tRG9jdW1lbnQgKnRoaXosIGNvbnN0IGdjaGFyICplbGVtZW50X2lkKTsK
KworV0VCS0lUX0FQSSBHZG9tTm9kZSAqCitnZG9tX2RvY3VtZW50X2Fkb3B0X25vZGUgKEdkb21E
b2N1bWVudCAqdGhpeiwgR2RvbU5vZGUgKnNvdXJjZSk7CisKK1dFQktJVF9BUEkgR2RvbUV2ZW50
ICoKK2dkb21fZG9jdW1lbnRfY3JlYXRlX2V2ZW50IChHZG9tRG9jdW1lbnQgKnRoaXosIGNvbnN0
IGdjaGFyICpldmVudF90eXBlKTsKKworV0VCS0lUX0FQSSBHZG9tUmFuZ2UgKgorZ2RvbV9kb2N1
bWVudF9jcmVhdGVfcmFuZ2UgKEdkb21Eb2N1bWVudCAqdGhpeik7CisKK1dFQktJVF9BUEkgR2Rv
bU5vZGVJdGVyYXRvciAqCitnZG9tX2RvY3VtZW50X2NyZWF0ZV9ub2RlX2l0ZXJhdG9yIChHZG9t
RG9jdW1lbnQgKnRoaXosIEdkb21Ob2RlICpyb290LCBndWxvbmcgd2hhdF90b19zaG93LCBHZG9t
Tm9kZUZpbHRlciAqZmlsdGVyLCBnYm9vbGVhbiBlbnRpdHlfcmVmZXJlbmNlX2V4cGFuc2lvbik7
CisKK1dFQktJVF9BUEkgR2RvbVRyZWVXYWxrZXIgKgorZ2RvbV9kb2N1bWVudF9jcmVhdGVfdHJl
ZV93YWxrZXIgKEdkb21Eb2N1bWVudCAqdGhpeiwgR2RvbU5vZGUgKnJvb3QsIGd1bG9uZyB3aGF0
X3RvX3Nob3csIEdkb21Ob2RlRmlsdGVyICpmaWx0ZXIsIGdib29sZWFuIGVudGl0eV9yZWZlcmVu
Y2VfZXhwYW5zaW9uKTsKKworV0VCS0lUX0FQSSBHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbiAqCitn
ZG9tX2RvY3VtZW50X2dldF9vdmVycmlkZV9zdHlsZSAoR2RvbURvY3VtZW50ICp0aGl6LCBHZG9t
RWxlbWVudCAqZWxlbWVudCwgY29uc3QgZ2NoYXIgKnBzZXVkb19lbGVtZW50KTsKKworV0VCS0lU
X0FQSSBHZG9tWFBhdGhFeHByZXNzaW9uICoKK2dkb21fZG9jdW1lbnRfY3JlYXRlX2V4cHJlc3Np
b24gKEdkb21Eb2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKmV4cHJlc3Npb24sIEdkb21YUGF0
aE5TUmVzb2x2ZXIgKnJlc29sdmVyKTsKKworV0VCS0lUX0FQSSBHZG9tWFBhdGhOU1Jlc29sdmVy
ICoKK2dkb21fZG9jdW1lbnRfY3JlYXRlX25zX3Jlc29sdmVyIChHZG9tRG9jdW1lbnQgKnRoaXos
IEdkb21Ob2RlICpub2RlX3Jlc29sdmVyKTsKKworV0VCS0lUX0FQSSBHZG9tWFBhdGhSZXN1bHQg
KgorZ2RvbV9kb2N1bWVudF9ldmFsdWF0ZSAoR2RvbURvY3VtZW50ICp0aGl6LCBjb25zdCBnY2hh
ciAqZXhwcmVzc2lvbiwgR2RvbU5vZGUgKmNvbnRleHRfbm9kZSwgR2RvbVhQYXRoTlNSZXNvbHZl
ciAqcmVzb2x2ZXIsIGd1c2hvcnQgdHlwZSwgR2RvbVhQYXRoUmVzdWx0ICppbl9yZXN1bHQpOwor
CitXRUJLSVRfQVBJIGdib29sZWFuIAorZ2RvbV9kb2N1bWVudF9leGVjX2NvbW1hbmQgKEdkb21E
b2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKmNvbW1hbmQsIGdib29sZWFuIHVzZXJfaW50ZXJm
YWNlLCBjb25zdCBnY2hhciAqdmFsdWUpOworCitXRUJLSVRfQVBJIGdib29sZWFuIAorZ2RvbV9k
b2N1bWVudF9xdWVyeV9jb21tYW5kX2VuYWJsZWQgKEdkb21Eb2N1bWVudCAqdGhpeiwgY29uc3Qg
Z2NoYXIgKmNvbW1hbmQpOworCitXRUJLSVRfQVBJIGdib29sZWFuIAorZ2RvbV9kb2N1bWVudF9x
dWVyeV9jb21tYW5kX2luZGV0ZXJtIChHZG9tRG9jdW1lbnQgKnRoaXosIGNvbnN0IGdjaGFyICpj
b21tYW5kKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbiAKK2dkb21fZG9jdW1lbnRfcXVlcnlfY29t
bWFuZF9zdGF0ZSAoR2RvbURvY3VtZW50ICp0aGl6LCBjb25zdCBnY2hhciAqY29tbWFuZCk7CisK
K1dFQktJVF9BUEkgZ2Jvb2xlYW4gCitnZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfc3VwcG9y
dGVkIChHZG9tRG9jdW1lbnQgKnRoaXosIGNvbnN0IGdjaGFyICpjb21tYW5kKTsKKworV0VCS0lU
X0FQSSBjb25zdCBnY2hhciAqCitnZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfdmFsdWUgKEdk
b21Eb2N1bWVudCAqdGhpeiwgY29uc3QgZ2NoYXIgKmNvbW1hbmQpOworCitXRUJLSVRfQVBJIEdk
b21Ob2RlTGlzdCAqCitnZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV9uYW1lIChHZG9tRG9j
dW1lbnQgKnRoaXosIGNvbnN0IGdjaGFyICplbGVtZW50X25hbWUpOworCitXRUJLSVRfQVBJIEdk
b21FbGVtZW50ICoKK2dkb21fZG9jdW1lbnRfZWxlbWVudF9mcm9tX3BvaW50IChHZG9tRG9jdW1l
bnQgKnRoaXosIGdsb25nIHgsIGdsb25nIHkpOworCitXRUJLSVRfQVBJIEdkb21ET01TZWxlY3Rp
b24gKgorZ2RvbV9kb2N1bWVudF9nZXRfc2VsZWN0aW9uIChHZG9tRG9jdW1lbnQgKnRoaXopOwor
CitXRUJLSVRfQVBJIEdkb21DU1NTdHlsZURlY2xhcmF0aW9uICoKK2dkb21fZG9jdW1lbnRfY3Jl
YXRlX2Nzc19zdHlsZV9kZWNsYXJhdGlvbiAoR2RvbURvY3VtZW50ICp0aGl6KTsKKworV0VCS0lU
X0FQSSBHZG9tTm9kZUxpc3QgKgorZ2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfY2xhc3Nf
bmFtZSAoR2RvbURvY3VtZW50ICp0aGl6LCBjb25zdCBnY2hhciAqdGFnbmFtZSk7CisKKworLyog
WFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiBnZG9tX2RvY3VtZW50X3F1ZXJ5X3NlbGVjdG9yICov
CisKKworLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiBnZG9tX2RvY3VtZW50X3F1ZXJ5X3Nl
bGVjdG9yX2FsbCAqLworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tRG9jdW1lbnRf
SF9fICovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay93ZWJraXQvZ2RvbS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQv
Z2RvbS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2MCBAQAorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tRXZlbnRUYXJnZXROb2RlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01PYmplY3QuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbUF0dHIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUJhcklu
Zm8uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNhbnZhc0dyYWRpZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21DYW52YXNQYXR0ZXJuLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DYW52YXNQ
aXhlbEFycmF5Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNEQVRBU2VjdGlvbi5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tQ2hhcmFjdGVyRGF0YS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2xpcGJvYXJk
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Db21tZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21Db25zb2xlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Db3VudGVyLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21DU1NDaGFyc2V0UnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTRm9u
dEZhY2VSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NJbXBvcnRSdWxlLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21DU1NNZWRpYVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNT
U1BhZ2VSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NQcmltaXRpdmVWYWx1ZS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NT
UnVsZUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1N0eWxlUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tQ1NTU3R5bGVTaGVldC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTVmFsdWUuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ZhbHVlTGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
Q1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1Zhcmlh
Ymxlc1J1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURhdGFiYXNlLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21Eb2N1bWVudEZyYWdtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1
bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRG9jdW1lbnRUeXBlLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21E
T01Db3JlRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01JbXBsZW1lbnRhdGlv
bi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NUGFyc2VyLmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21ET01TZWxlY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTVdpbmRvdy5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRW50
aXR5Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21FbnRpdHlSZWZlcmVuY2UuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUV2ZW50RXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21FdmVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRmlsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
RmlsZUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhpc3RvcnkuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUhUTUxBbmNob3JFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1M
QXBwbGV0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEFyZWFFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQmFzZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxC
bG9ja3F1b3RlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJvZHlFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQlJFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21IVE1MQnV0dG9uRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTENh
bnZhc0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxDb2xsZWN0aW9uLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTERpdkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxETGlz
dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxEb2N1bWVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tSFRNTEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxF
bWJlZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxGb250RWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTEZvcm1FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRnJh
bWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSGVhZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEhS
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEh0bWxFbGVtZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21IVE1MSUZyYW1lRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTEltYWdlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTElucHV0RWxl
bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTElzSW5kZXhFbGVtZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21IVE1MTGFiZWxFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21IVE1MTGVnZW5kRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTExJRWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTExpbmtFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MTWFwRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE1h
cnF1ZWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTWVudUVsZW1lbnQuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxNZXRhRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTE1vZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPYmplY3RF
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MT0xpc3RFbGVtZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21IVE1MT3B0R3JvdXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21IVE1MT3B0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MUGFyYWdyYXBoRWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFBhcmFtRWxlbWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tSFRNTFByZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxR
dW90ZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxTY3JpcHRFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MU2VsZWN0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTFN0eWxlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUNlbGxF
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVDb2xFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21IVE1MVGFibGVSb3dFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRleHRBcmVhRWxl
bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRpdGxlRWxlbWVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tSFRNTFVMaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
SW1hZ2VEYXRhLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21LZXlib2FyZEV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21Mb2NhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTWVkaWFMaXN0Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21NZXNzYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1p
bWVUeXBlQXJyYXkuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1pbWVUeXBlLmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21Nb3VzZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21NdXRhdGlv
bkV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21OYW1lZE5vZGVNYXAuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbU5hdmlnYXRvci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTm9kZUZpbHRl
ci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTm9kZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
Tm9kZUl0ZXJhdG9yLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Ob2RlTGlzdC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tTm90YXRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU92ZXJmbG93
RXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVBsdWdpbkFycmF5Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21QbHVnaW4uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVByb2Nlc3NpbmdJbnN0
cnVjdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUHJvZ3Jlc3NFdmVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tUmFuZ2VFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVJh
bmdlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21SZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21TY3JlZW4uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVNRTEVycm9yLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21TUUxSZXN1bHRTZXQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVNRTFJlc3Vs
dFNldFJvd0xpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVNRTFRyYW5zYWN0aW9uLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21TdG9yYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bVN0b3JhZ2UuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVN0eWxlU2hlZXQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbVN0eWxlU2hlZXRMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21UZXh0
RXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVRleHQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbVRyZWVXYWxrZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVVJRXZlbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21XaGVlbEV2ZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWE1MSHR0
cFJlcXVlc3RVcGxvYWQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhNTFNlcmlhbGl6ZXIuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRoRXZhbHVhdG9yLmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21YUGF0aEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhFeHByZXNz
aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YUGF0aE5TUmVzb2x2ZXIuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbVhQYXRoUmVzdWx0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YU0xUUHJv
Y2Vzc29yLmg+CkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVy
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgV0VCS0lUX0VWRU5UX0gKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0gKKworI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+CisKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgor
CitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfRVZFTlQgICAgICAgICAgICAo
d2Via2l0X2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9FVkVOVChvYmopICAgICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9FVkVO
VCwgV2ViS2l0RXZlbnQpKQorI2RlZmluZSBXRUJLSVRfRVZFTlRfQ0xBU1Moa2xhc3MpICAgIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktp
dEV2ZW50Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfRVZFTlQob2JqKSAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfRVZFTlQpKQorI2RlZmlu
ZSBXRUJLSVRfSVNfRVZFTlRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgo
a2xhc3MpLCAgV0VCS0lUX1RZUEVfRVZFTlQpKQorI2RlZmluZSBXRUJLSVRfRVZFTlRfR0VUX0NM
QVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVf
RVZFTlQsIFdlYktpdEV2ZW50Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnRQ
cml2YXRlIFdlYktpdEV2ZW50UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRFdmVudCB7CisgICAg
R09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBXZWJLaXRFdmVudFByaXZhdGUgKnByaXY7
Cit9OworCitzdHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJl
bnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfZXZlbnRfZ2V0X3R5cGUg
KHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdEV2ZW50ICoKK3dlYmtpdF9ldmVudF9uZXcgICAg
ICAodm9pZCk7CisKKy8qV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZXZlbnRfc2V0X3VyaSAgKFdl
YktpdEV2ZW50ICpyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIqICAgICAgICAgIHVyaSk7Ki8KKworR19FTkRfREVDTFMKKworI2VuZGlmCkluZGV4
OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKIFdlYkNvcmUgOj0gJChzcmNkaXIpL1dlYkNvcmUKIAog
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgOj0gTEFOR1VBR0VfSkFWQVNDUklQVD0xCitGRUFU
VVJFX0RFRklORVNfR0RPTSA6PSBMQU5HVUFHRV9HT0JKRUNUPTEKIFNWR19GRUFUVVJFUyA6PQog
SFRNTF9GRUFUVVJFUyA6PQogCkBAIC05LDYgKzEwLDcgQEAKIFdFQkNPUkVfQ1NTX1ZBTFVFX0tF
WVdPUkRTIDo9ICQoV2ViQ29yZSkvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KIAogd2ViY29yZV9j
cHBmbGFncyArPSBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHNyY2RpcikvV2Vi
Q29yZSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybSBcCiAJLUkkKHNyY2RpcikvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrIFwKQEAgLTI5LDYgKzMxLDcgQEAKIAktSSQoc3JjZGlyKS9X
ZWJDb3JlL3htbCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9odG1sIFwKIAktSSQoc3JjZGlyKS9X
ZWJDb3JlL2JpbmRpbmdzL2pzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20g
XAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogCS1JJChz
cmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wIFwKIAktSSQoc3JjZGly
KS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZiBcCkBAIC01NSw3ICs1OCw3IEBA
CiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UubHV0LmggXAogCVdlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudFRhcmdldEJhc2UubHV0LmggXAogCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNSR0JDb2xvci5sdXQuaCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVs
ZW1lbnRCYXNlVGFibGUuY3BwCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1l
bnRCYXNlVGFibGUuY3BwIAogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRT
b3VyY2VzL0NTU0dyYW1tYXIuY3BwIFwKQEAgLTM1OCw3ICszNjEsNTg3IEBACiAJRGVyaXZlZFNv
dXJjZXMvVXNlckFnZW50U3R5bGVTaGVldHMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvVXNlckFnZW50
U3R5bGVTaGVldHNEYXRhLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwIFwKLQlE
ZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oCisJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUF0dHIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQXR0ci5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQmFySW5mby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21CYXJJbmZvLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DREFUQVNlY3Rpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFTZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NDaGFyc2V0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NDaGFyc2V0UnVsZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTRm9udEZhY2VSdWxlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1w
b3J0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NJbXBvcnRSdWxlLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DU1NNZWRpYVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTTWVkaWFSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQYWdlUnVsZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Q1NTUHJpbWl0aXZlVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUHJpbWl0aXZl
VmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ1NTUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZUxpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVSdWxlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVNoZWV0
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21DU1NWYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVMaXN0LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NT
VmFyaWFibGVzRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxl
c1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzR3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ2FudmFzR3JhZGllbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRlcm4u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52
YXNQaXhlbEFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DaGFyYWN0ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNoYXJhY3RlckRhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNsaXBib2Fy
ZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNvbW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29tbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db25z
b2xlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db3VudGVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQ29yZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRE9NSW1wbGVtZW50YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
RE9NSW1wbGVtZW50YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVBhcnNlci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bURPTVNlbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01TZWxlY3Rpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21ET01XaW5kb3cuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbURvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVu
dEZyYWdtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50RnJhZ21lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50VHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21Eb2N1bWVudFR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50
aXR5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eS5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tRW50aXR5UmVmZXJlbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eVJl
ZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9uLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21GaWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUZpbGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVMaXN0
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEFwcGxldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFwcGxldEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVhRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxCUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJSRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJh
c2VGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUZvbnRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MQm9keUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEJvZHlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQnV0dG9uRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQnV0dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTENhbnZhc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTENhbnZhc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDb2xsZWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MRExpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3RvcnlFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGl2RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERvY3VtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbWJlZEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRmllbGRT
ZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9udEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZy
YW1lU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MSGVhZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MSHRtbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0
bWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSUZyYW1lRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
SW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxJc0luZGV4RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MSXNJbmRleEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExJRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TGFiZWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGVnZW5kRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGVnZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTExpbmtFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxMaW5rRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TWFycXVlZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxNZXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TWV0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNb2RFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MT0xpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPTGlz
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPYmplY3RFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxPcHRHcm91cEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25FbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MUGFyYWdyYXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYWdy
YXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYW1FbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MUHJlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUHJl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2Ny
aXB0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFN0eWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxU
YWJsZUNvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MVGFibGVSb3dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxUaXRsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxVTGlzdEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSGlzdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IaXN0b3J5Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21JbWFnZURhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSW1hZ2VEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUtleWJvYXJkRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
S2V5Ym9hcmRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTG9jYXRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlh
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU1lc3NhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNzYWdl
RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU1pbWVUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTW91c2VFdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTXV0YXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21NdXRhdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYW1lZE5v
ZGVNYXAuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21OYXZpZ2F0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmF2aWdh
dG9yLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbU5vZGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0ZXIuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tTm9kZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUl0
ZXJhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRvci5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUxp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vdGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbU5vdGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21PdmVyZmxvd0V2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU92ZXJmbG93RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVBsdWdpbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW4uaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVBsdWdpbkFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBs
dWdpbkFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Qcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVByb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVJhbmdlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZUV4Y2Vw
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZUV4Y2VwdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21SZWN0LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TY3JlZW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU2Ny
ZWVuLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVN0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXRM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21UZXh0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVRleHRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21U
ZXh0RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tVHJlZVdhbGtlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVUlFdmVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21VSUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJL
aXRBbmltYXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVdoZWVsRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2hlZWxFdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVhNTFNlcmlhbGl6ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WE1MU2VyaWFsaXplci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nlc3Nvci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YU0xUUHJvY2Vzc29yLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tQXR0ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQXR0ci5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUJhckluZm8uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21D
REFUQVNlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNEQVRBU2VjdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0NoYXJzZXRSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NDaGFyc2V0UnVsZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ1NTRm9udEZhY2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
Q1NTSW1wb3J0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTSW1wb3J0
UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU01lZGlhUnVsZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTTWVkaWFSdWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNTU1BhZ2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTUHJpbWl0
aXZlVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ByaW1pdGl2ZVZh
bHVlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTUnVsZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NSdWxl
TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZVJ1bGUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUNTU1N0eWxlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUNTU1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNT
U1N0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYWx1ZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21DU1NWYWx1ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNTU1ZhbHVlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1Zhcmlh
Ymxlc0RlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1Zhcmlh
Ymxlc1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ZhcmlhYmxlc1J1
bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNHcmFkaWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzR3JhZGllbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21DYW52YXNQYXR0ZXJuLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2Fu
dmFzUGl4ZWxBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzUGl4
ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2hhcmFjdGVyRGF0YS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2hhcmFjdGVyRGF0YS5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNsaXBib2FyZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ29tbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ29tbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNvbnNvbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db3VudGVyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db3VudGVyLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tRE9NQ29yZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tRE9NQ29yZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURP
TUltcGxlbWVudGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01JbXBs
ZW1lbnRhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTVBhcnNlci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tRE9NU2VsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21ET01TZWxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01XaW5k
b3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTVdpbmRvdy5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbURvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURvY3VtZW50
RnJhZ21lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURvY3VtZW50RnJhZ21l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudFR5cGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURvY3VtZW50VHlwZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbnRpdHkuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUVudGl0eS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRW50
aXR5UmVmZXJlbmNlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tRXZlbnRFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRmlsZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRmlsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUZpbGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21GaWxl
TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBbmNob3JFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQW5jaG9yRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBcHBsZXRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQXBwbGV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TEJSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJSRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJhc2VFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJhc2VGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MQm9keUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQnV0dG9u
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJ1dHRvbkVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQ2FudmFzRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MRExpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MRExpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERpcmVj
dG9yeUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEaXJlY3Rv
cnlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERpdkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEaXZFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRW1iZWRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRW1iZWRFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRm9ybUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRnJhbWVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRnJhbWVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
SGVhZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIZWFkRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhlYWRpbmdFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSHRtbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MSUZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSW1h
Z2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTElucHV0RWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTElucHV0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJc0luZGV4RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTElzSW5kZXhFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTExJRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTExJRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMYWJl
bEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGVnZW5kRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGlua0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMaW5rRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MTWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxN
YXJxdWVlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1hcnF1
ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1lbnVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWVudUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxNb2RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPTGlz
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPTGlzdEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTE9wdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxPcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MUGFyYWdyYXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TFBhcmFncmFwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUGFy
YW1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUGFyYW1FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFByZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxQcmVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTFF1b3RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MU2NyaXB0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxTZWxl
Y3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU2VsZWN0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxTdHlsZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDb2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDb2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTFRhYmxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTFRhYmxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxU
YWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJs
ZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGV4dEFyZWFF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGV4dEFyZWFFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRpdGxlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRpdGxlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxVTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IaXN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IaXN0b3J5
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21JbWFnZURhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tS2V5
Ym9hcmRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tS2V5Ym9hcmRFdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUxvY2F0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21Mb2NhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbU1lZGlhTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVkaWFMaXN0
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVzc2FnZUV2ZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZXNzYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWlt
ZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NaW1lVHlwZUFycmF5LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tTW91c2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tTW91c2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU11dGF0aW9u
RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU11dGF0aW9uRXZlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21OYW1lZE5vZGVNYXAuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbU5hdmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTmF2aWdh
dG9yLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tTm9kZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5v
ZGVGaWx0ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGVGaWx0ZXIuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlSXRlcmF0b3IuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbU5vZGVJdGVyYXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vdGF0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob3RhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbU92ZXJmbG93RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU92ZXJm
bG93RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21QbHVnaW4uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVBsdWdpbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbVBsdWdpbkFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21QbHVn
aW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2Nlc3NpbmdJbnN0cnVj
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUHJvZ3Jlc3NFdmVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVJhbmdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21S
YW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVJhbmdlRXhjZXB0aW9uLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SYW5nZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TY3JlZW4uY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0eWxlU2hl
ZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21UZXh0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21U
ZXh0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UZXh0RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21UcmVlV2Fsa2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UcmVl
V2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVUlFdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVUlFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21XZWJLaXRBbmltYXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
V2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2hl
ZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2hlZWxFdmVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
WE1MU2VyaWFsaXplci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhTTFRQcm9jZXNz
b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhTTFRQcm9jZXNzb3IuaCAgXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAg
XAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5o
IAogCiBJRExfQklORElOR1MgKz0gIFwKIAlXZWJDb3JlL2Nzcy9Db3VudGVyLmlkbCBcCkBAIC03
MDEsNiArMTI4NCwxNiBAQAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmggXAorCVdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HRE9NQmluZGluZy5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGlu
Zy5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2
YXRlR2RvbURPTU9iamVjdC5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2Rl
LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IFwKIAlXZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgXAogCVdlYkNvcmUvYnJpZGdlL05Q
X2pzb2JqZWN0LmggXAogCVdlYkNvcmUvYnJpZGdlL2MvY19jbGFzcy5jcHAgXApAQCAtMjAwOCw5
ICsyNjAxLDEyIEBACiAjIC0tLS0KIGlmIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMK
IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlM9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUz0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCi0JRGVyaXZlZFNvdXJjZXMv
SlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcAorCURlcml2ZWRTb3VyY2VzL0pTRE9NQXBwbGljYXRp
b25DYWNoZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01BcHBsaWNhdGlvbkNhY2hlLmNwcAog
CiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0
aW9uQ2FjaGUuaWRsCkBAIC0yMDUyLDYgKzI2NDgsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfREFU
QUJBU0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9EQVRBQkFTRT0xCitG
RUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfREFUQUJBU0U9MQogCiB3ZWJjb3JlX2J1aWx0
X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0pTRGF0YWJhc2UuY3BwIFwKQEAgLTIwNjMs
NyArMjY2MCwyNyBAQAogCURlcml2ZWRTb3VyY2VzL0pTU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL0pTU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKIAlEZXJpdmVkU291
cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFuc2Fj
dGlvbi5oCisJRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRGF0YWJhc2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRGF0YWJhc2UuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTEVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNRTEVycm9yLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
UUxSZXN1bHRTZXRSb3dMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNl
dFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tRGF0YWJhc2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURhdGFi
YXNlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTEVycm9yLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tU1FMUmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxS
ZXN1bHRTZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxSZXN1bHRTZXRSb3dM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxSZXN1bHRTZXRSb3dMaXN0
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFRyYW5zYWN0aW9uLmgKIAogSURMX0JJTkRJTkdT
ICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaWRsIFwKQEAgLTIxMzgsMTIgKzI3NTUs
MjEgQEAKICMgLS0tLQogaWYgRU5BQkxFX0RPTV9TVE9SQUdFCiBGRUFUVVJFX0RFRklORVNfSkFW
QVNDUklQVCArPSBFTkFCTEVfRE9NX1NUT1JBR0U9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0g
RU5BQkxFX0RPTV9TVE9SQUdFPTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJp
dmVkU291cmNlcy9KU1N0b3JhZ2UuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2UuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9K
U1N0b3JhZ2VFdmVudC5oCisJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFn
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVN0b3JhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0
b3JhZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0b3JhZ2UuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVN0b3JhZ2VFdmVudC5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKQEAgLTIyMDMsNiArMjgyOSw3IEBACiAjIC0tLS0KIGlm
IEVOQUJMRV9WSURFTwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1ZJREVP
PTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9WSURFTz0xCiAKIEhUTUxfRkVBVFVS
RVMgKz0gRU5BQkxFX1ZJREVPPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfVklERU89
MQpAQCAtMjIyNSw3ICsyODUyLDM1IEBACiAJRGVyaXZlZFNvdXJjZXMvSlNUaW1lUmFuZ2VzLmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNUaW1lUmFuZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL0pT
Vm9pZENhbGxiYWNrLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suaAorCURl
cml2ZWRTb3VyY2VzL0pTVm9pZENhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
QXVkaW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBdWRpb0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZWRpYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTE1lZGlhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFNvdXJjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNvdXJjZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTFZpZGVvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TWVkaWFFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUVycm9yLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21UaW1lUmFuZ2VzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRp
bWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVZvaWRDYWxsYmFjay5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Wb2lkQ2FsbGJhY2suaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MQXVkaW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MQXVkaW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1lZGlh
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1lZGlhRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxTb3VyY2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21NZWRpYUVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZWRp
YUVycm9yLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGltZVJhbmdlcy5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGltZVJhbmdlcy5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVZvaWRDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tVm9pZENhbGxiYWNrLmgKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2h0bWwvSFRN
TEF1ZGlvRWxlbWVudC5pZGwgXApAQCAtMjI2OSw2ICsyOTI0LDcgQEAKICMgLS0tLQogaWYgRU5B
QkxFX1hQQVRICiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFBBVEg9MQor
RkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1hQQVRIPTEKIAogd2ViY29yZV9jcHBmbGFn
cyArPSAtREVOQUJMRV9YUEFUSD0xCiAKQEAgLTIyODQsNyArMjk0MCwyNyBAQAogCURlcml2ZWRT
b3VyY2VzL0pTWFBhdGhSZXN1bHQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVzdWx0
LmggXAogCURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2Vz
L1hQYXRoR3JhbW1hci5oCisJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YUGF0aEV2YWx1YXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Y
UGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeGNlcHRpb24uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVhQYXRoRXhwcmVzc2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4
cHJlc3Npb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhQYXRoUmVzdWx0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoUmVzdWx0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXZhbHVhdG9yLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tWFBhdGhFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhF
eHByZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV4cHJlc3Np
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVhQYXRoUmVzdWx0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21YUGF0aFJlc3VsdC5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS94bWwv
WFBhdGhFdmFsdWF0b3IuaWRsIFwKQEAgLTIzNDksNiArMzAyNSw3IEBACiAjIC0tLS0KIGlmIEVO
QUJMRV9YU0xUCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFNMVD0xCitG
RUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfWFNMVD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3Mg
Kz0gLURFTkFCTEVfWFNMVD0xCiAKQEAgLTIzNzIsNiArMzA0OSw3IEBACiAjIC0tLS0KIGlmIEVO
QUJMRV9TVkcKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9MQorI0ZF
QVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkc9MSAtIGJpZyBUT0RPISA6KQogCiBXRUJD
T1JFX0NTU19QUk9QRVJUWV9OQU1FUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NQcm9wZXJ0eU5h
bWVzLmluIAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMgKz0gJChXZWJDb3JlKS9jc3MvU1ZH
Q1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMjY0OSw2ICszMzI3LDI3MyBAQAogCURlcml2ZWRTb3Vy
Y2VzL1NWR05hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHAKIAorbm90
LXlldDoKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FsdEdseXBo
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbHRHbHlwaEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0FuZ2xlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0FuaW1hdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRl
VHJhbnNmb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRBbmds
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEFuZ2xlLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEJvb2xlYW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHQW5pbWF0ZWRCb29sZWFuLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRl
ZEVudW1lcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkRW51bWVy
YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkSW50ZWdlci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEludGVnZXIuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Fu
aW1hdGVkTGVuZ3RoLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZExlbmd0aExp
c3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZE51bWJlci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmltYXRlZE51bWJlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5p
bWF0ZWROdW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTnVt
YmVyTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRSZWN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0
ZWRTdHJpbmcuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkVHJhbnNmb3JtTGlz
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHQ2lyY2xlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDaXJjbGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDbGlwUGF0aEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdDb2xvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDb2xvci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0N1cnNvckVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQ3Vyc29yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRGVmaW5pdGlvblNyY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVm
aW5pdGlvblNyY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZnNFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZnNFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdEZXNjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdE
ZXNjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRG9jdW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudEluc3RhbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVu
dEluc3RhbmNlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50SW5zdGFu
Y2VMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3Rvcnku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxsaXBzZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRWxsaXBzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0V4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFeGNlcHRpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQmxlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZFQmxlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
RUNvbG9yTWF0cml4RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9zaXRlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZF
Rmxvb2RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRmxvb2RFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRkVGdW5jQkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jQkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0dFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGRUZ1bmNSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1
bmNSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVHYXVzc2lhbkJsdXJFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRkVJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0ZFTWVyZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFTWVyZ2VFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdGRU9mZnNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRkVPZmZzZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVBvaW50TGln
aHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFUG9pbnRMaWdodEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVTcG90TGlnaHRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRkVUaWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVRp
bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVR1cmJ1bGVuY2VFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZpbHRlckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRmlsdGVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGb250RmFjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRG
YWNlRm9ybWF0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZUZv
cm1hdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VTcmNFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Zv
bnRGYWNlVXJpRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdHbHlwaEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR2x5cGhFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHR3JhZGllbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdJbWFn
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHSW1hZ2VFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdMZW5ndGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHTGVuZ3RoLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMZW5ndGhMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xlbmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0xpbmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xpbmVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdNYXJrZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR01hcmtlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hc2tFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hc2tFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdNYXRyaXguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWF0cml4
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHTWV0YWRhdGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01p
c3NpbmdHbHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR051bWJlci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR051bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTnVtYmVyTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGFpbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUGFpbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdQYXRoU2VnLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWcuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdBcmNBYnMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHUGF0aFNlZ0FyY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0
aFNlZ0FyY1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQXJjUmVsLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDbG9zZVBhdGguaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNTbW9vdGhBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNTbW9vdGhSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1Ntb290aEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1BhdGhTZWdMaW5ldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6
b250YWxBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6
b250YWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvUmVsLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9SZWwuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1BhdGhTZWdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTW92ZXRvQWJzLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1BhdGhTZWdNb3ZldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z01vdmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0dGVybkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0dGVybkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1BvaW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvaW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHUG9pbnRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2x5Z29uRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2x5Z29uRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWxpbmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUHJl
c2VydmVBc3BlY3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1JlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JlY3RFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdSZW5kZXJpbmdJbnRlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVuZGVy
aW5nSW50ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTVkdFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NWR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1NjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU2NyaXB0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU2V0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdT
dG9wRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTdG9wRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RyaW5nTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdTdHJpbmdMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTdHlsZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3R5bGVFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdTd2l0Y2hFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1N3aXRjaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N5bWJvbEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3ltYm9sRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHVFJlZkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHVFJlZkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RTcGFuRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUU3BhbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdUZXh0Q29udGVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0UGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RpdGxlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUaXRsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1RyYW5zZm9ybS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUcmFu
c2Zvcm0uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RyYW5zZm9ybUxpc3QuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHVW5pdFR5cGVzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VuaXRUeXBlcy5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdVc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdWaWV3RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdWaWV3RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHWm9vbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1pvb21FdmVudC5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3ZnL0VsZW1lbnRU
aW1lQ29udHJvbC5pZGwgXAogCVdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmlkbCBcCkBAIC0zMjI4
LDM2ICs0MTczLDQyIEBACiAjIFNWRyBGZWF0dXJlcwogaWYgRU5BQkxFX1NWR19VU0UKIEZFQVRV
UkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfVVNFPTEKKyNGRUFUVVJFX0RFRklO
RVNfR0RPTSArPSBFTkFCTEVfU1ZHX1VTRT0xICMgYmlnIFRPRE8hCiBTVkdfRkVBVFVSRVMgKz0g
RU5BQkxFX1NWR19VU0U9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfVVNFPTEK
IGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QKIEZFQVRVUkVfREVGSU5FU19K
QVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQorI0ZFQVRVUkVfREVGSU5F
U19HRE9NICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MSAKIFNWR19GRUFUVVJFUyArPSBF
TkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
U1ZHX0ZPUkVJR05fT0JKRUNUPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfRk9OVFMKIEZFQVRV
UkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRk9OVFM9MQorI0ZFQVRVUkVfREVG
SU5FU19HRE9NICs9IEVOQUJMRV9TVkdfRk9OVFM9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9T
VkdfRk9OVFM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9OVFM9MQogZW5k
aWYKIAogaWYgRU5BQkxFX1NWR19GSUxURVJTCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9T
VkdfRklMVEVSUz0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIHdlYmNv
cmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogZW5kaWYKIAogaWYgRU5BQkxF
X1NWR19BU19JTUFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19B
U19JTUFHRT0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BU19JTUFHRT0x
CiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19BU19JTUFHRT0xCiB3ZWJjb3JlX2NwcGZsYWdz
ICs9IC1ERU5BQkxFX1NWR19BU19JTUFHRT0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FOSU1B
VElPTgogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19BTklNQVRJT049
MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIFNWR19G
RUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1E
RU5BQkxFX1NWR19BTklNQVRJT049MQogZW5kaWYKQEAgLTMyNjUsMTMgKzQyMTYsMTQgQEAKICMg
U1ZHIHRhZyBhbmQgYXR0cmlidXRlIG5hbWVzIChuZWVkIHRvIHBhc3MgYW4gZXh0cmEgZmxhZyBp
ZiBzdmcgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkKQogRGVyaXZlZFNvdXJjZXMv
U1ZHTmFtZXMuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA7CiBEZXJp
dmVkU291cmNlcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2Vz
L1NWR0VsZW1lbnRGYWN0b3J5LmNwcAorRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRXcmFw
cGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcAogCiBp
ZiBTVkdfRkxBR1MKIERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJD
b3JlKS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29y
ZSkvc3ZnL3N2Z2F0dHJzLmluCi0JJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cyAkPCAtLXRhZ3MgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAtLWF0dHJzICQoV2ViQ29yZSkv
c3ZnL3N2Z2F0dHJzLmluIC0tZXh0cmFEZWZpbmVzICIkKFNWR19GRUFUVVJFUykiIC0tb3V0cHV0
RGlyICIkKEdFTlNPVVJDRVMpIgorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1hdHRycyAkKFdlYkNvcmUp
L3N2Zy9zdmdhdHRycy5pbiAtLWV4dHJhRGVmaW5lcyAiJChTVkdfRkVBVFVSRVMpIiAtLW91dHB1
dERpciAiJChHRU5TT1VSQ0VTKSIgCiBlbHNlCiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFj
dG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcvc3Zn
dGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMgJDwgLS10YWdzICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gLS1h
dHRycyAkKFdlYkNvcmUpL3N2Zy9zdmdhdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VT
KSIKKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdl
YkNvcmUpL3N2Zy9zdmd0YWdzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4g
LS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAogCiBlbmRpZiAjIFNWR19GTEFHUwogCkBAIC0z
MjgwLDcgKzQyMzIsNyBAQAogRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5oOiBEZXJpdmVkU291
cmNlcy9YTGlua05hbWVzLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHAgOiAk
KFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4K
LQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJD
b3JlKS9zdmcveGxpbmthdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIKKwkkKFBF
UkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS9z
dmcveGxpbmthdHRycy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiAKIGVuZGlmICMg
RU5EIEVOQUJMRV9TVkcKIApAQCAtMzM2MSwxNiArNDMxMywxNiBAQAogCiBpZiBIVE1MX0ZMQUdT
CiBEZXJpdmVkU291cmNlcy9IVE1MTmFtZXMuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVz
LnBsICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gJChXZWJDb3JlKS9odG1sL0hUTUxB
dHRyaWJ1dGVOYW1lcy5pbgotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMg
JDwgLS10YWdzICQoV2ViQ29yZSkvaHRtbC9IVE1MVGFnTmFtZXMuaW4gLS1hdHRycyAkKFdlYkNv
cmUpL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIC0tZXh0cmFEZWZpbmVzICIkKEhUTUxfRkVB
VFVSRVMpIiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIKKwkkKFBFUkwpIC1JJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVz
LmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLWV4dHJh
RGVmaW5lcyAiJChIVE1MX0ZFQVRVUkVTKSIgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIAog
ZWxzZQogRGVyaXZlZFNvdXJjZXMvSFRNTE5hbWVzLmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9u
YW1lcy5wbCAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluICQoV2ViQ29yZSkvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzICQ8IC0tdGFncyAkKFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChX
ZWJDb3JlKS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VS
Q0VTKSIKKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tdGFncyAk
KFdlYkNvcmUpL2h0bWwvSFRNTFRhZ05hbWVzLmluIC0tYXR0cnMgJChXZWJDb3JlKS9odG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbiAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgCiBlbmRpZiAj
IEhUTUxfRkxBR1MKIAogRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMv
WE1MTmFtZXMuY3BwOwogCiBEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHA6ICQoV2ViQ29yZSkv
ZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS94bWwveG1sYXR0cnMuaW4KLQkkKFBFUkwpIC1J
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwveG1s
YXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiCisJJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0dHJzICQoV2ViQ29yZSkveG1sL3htbGF0dHJzLmlu
IC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAKIAogdnBhdGggJS5pZGwgPSBcCiAgICAgJChX
ZWJDb3JlKSBcCkBAIC0zMzg2LDYgKzQzMzgsMTUgQEAKICAgICAkKFdlYkNvcmUpL3htbCBcCiAg
ICAgJChXZWJDb3JlKS9wbHVnaW5zCiAKK0Rlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tJS5oOiBE
ZXJpdmVkU291cmNlcy9HZG9tJS5oOworCitEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbSUuY3Bw
OiBEZXJpdmVkU291cmNlcy9HZG9tJS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL0dkb20lLmg6IERl
cml2ZWRTb3VyY2VzL0dkb20lLmNwcDsKKworRGVyaXZlZFNvdXJjZXMvR2RvbSUuY3BwOiAlLmlk
bCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbQorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMg
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0taW5jbHVk
ZSAkKFdlYkNvcmUpL2RvbSAtLWluY2x1ZGUgJChXZWJDb3JlKS9odG1sIC0taW5jbHVkZSAkKFdl
YkNvcmUpL2NzcyAtLWluY2x1ZGUgJChXZWJDb3JlKS9wYWdlIC0taW5jbHVkZSAkKFdlYkNvcmUp
L3htbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9zdmcgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUyki
IC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVNfR0RPTSkiIC0tZ2VuZXJhdG9yIEdPYmplY3Qg
JDwKKwogRGVyaXZlZFNvdXJjZXMvSlMlLmg6IERlcml2ZWRTb3VyY2VzL0pTJS5jcHA7CiAKIERl
cml2ZWRTb3VyY2VzL0pTJS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3Jl
KS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzQwMSw2ICs0MzYyLDcg
QEAKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc1BhcnNlci5wbSBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIFwKKwlXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gXAogCVdlYkNvcmUvY3NzL2h0bWw0LmNzcyBcCiAJ
V2ViQ29yZS9jc3MvcXVpcmtzLmNzcyBcCiAJV2ViQ29yZS9jc3Mvdmlldy1zb3VyY2UuY3NzIFwK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRU
YXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2
YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUu
aCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8g
LSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5j
bHVkZSAiR2RvbUV2ZW50LmgiCitlbnVtIHsKKyAgICBCUk9XU0VSX0VWRU5ULAorICAgIExBU1Rf
U0lHTkFMCit9OworCitzdGF0aWMgZ3VpbnQgZXZlbnRfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7
IDAsIH07CisKKworV2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9w
cml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7CisgICAgR0RPTUV2ZW50VGFy
Z2V0Tm9kZSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19jYXN0PEdET01FdmVudFRhcmdldE5vZGUq
PihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7
CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHJlcy0+aW1wbCgp
KTsKK30KKworCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRXZlbnRUYXJnZXRO
b2RlLCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlLCBHRE9NX1RZUEVfTk9ERSk7CisKKy8qCitzdHJ1
Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpFdmVu
dFRhcmdldE5vZGUgKml0ZW07Cit9OyAgCisqLworCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VU
X05PREVfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmop
LCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRl
KSkKKworLyoKK3ZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfc2V0X3ByaXZhdGUoR2RvbUV2
ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCwgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSkK
K3sKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFS
R0VUX05PREVfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcHJpdi0+aXRlbSA9IGl0ZW07Cit9
CisqLworCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplKEdPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICAvKkdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QgPSBHRE9N
X0VWRU5UX1RBUkdFVF9OT0RFKG9iamVjdCk7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZh
dGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisgICAgCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2Rv
bV9ldmVudF90YXJnZXRfbm9kZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQor
CitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQoR2RvbUV2ZW50
VGFyZ2V0Tm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9X
U0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQ
RV9GUk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lH
TkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR19TSUdOQUxfREVUQUlMRUQgICAgKSwKKyAgICAgICAgMCwKKyAgICAgICAg
TlVMTCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNU
X0JPT0xFQU4sCisgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9NX1RZUEVfRVZF
TlQsIEdfVFlQRV9CT09MRUFOKTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcykt
PmZpbmFsaXplID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZTsKKworICAgIC8qZ190
eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21FdmVudFRhcmdl
dE5vZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9pbml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7CisgICAgLypHZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZB
VEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworfSAvKiBl
eHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2
ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2
YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLwor
CisKKyNpZm5kZWYgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19QUklWXworI2RlZmluZSBfX0dE
T01FdmVudFRhcmdldE5vZGVfSF9fX1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNp
bmNsdWRlICJQcml2YXRlR2RvbU5vZGUuaCIKK2NsYXNzIFdlYkNvcmU6Ok5vZGU7CisKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIEdkb21FdmVudFRhcmdldE5vZGU7CisKK1dF
QktJVF9BUEkgV2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2
YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QpOworCisjZW5kaWYKKwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUu
aCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorCitjbGFzcyBH
U3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgorICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAg
ICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0
cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRv
bWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOyB9Cit9OworCitleHRlcm4gIkMiIHsKKworI2RlZmluZSBfR19HRVRfVVRGOChzdHIp
IChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKQorCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9u
b2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXopCit7
CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisgICAgLyoKKyAgICBXZWJDb3JlOjpFdmVu
dFRhcmdldE5vZGUgKiBpdGVtID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh0
aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcg
PSBXZWJDb3JlOjpTdHJpbmcoZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcpOworICAgIGl0ZW0t
PmluaXRFdmVudFRhcmdldE5vZGUoX2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcpOworICAg
ICovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisg
Ki8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNp
bmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkdE
T01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIgorCitleHRlcm4g
IkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRE9NT2JqZWN0LCBnZG9tX2RvbV9vYmplY3QsIEdf
VFlQRV9PQkpFQ1QpOworCitzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIHsKKyAgICAgR0RP
TU9iamVjdCAqbV9ub2RlOworfTsgIAorCisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9HRVRfUFJJ
VkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIEdET01fVFlQRV9E
T01fT0JKRUNULCBHZG9tRE9NT2JqZWN0UHJpdmF0ZSkpCisKK3ZvaWQKK2dkb21fZG9tX29iamVj
dF9zZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0ICogaXRlbSkK
K3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRf
UFJJVkFURShyZXF1ZXN0KTsKKyAgICBwcml2LT5tX25vZGUgPSBpdGVtOworICAgIC8qcHJpdi0+
bV9ub2RlLT5pbXBsKCktPnJlZigpOyovCit9CisKK0dET01PYmplY3QgKgorZ2RvbV9kb21fb2Jq
ZWN0X2dldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QpCit7CisgICAgR2RvbURPTU9i
amVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7
CisgICAgcmV0dXJuIHByaXYtPm1fbm9kZTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2Jq
ZWN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0KiByZXF1
ZXN0ID0gR0RPTV9ET01fT0JKRUNUKG9iamVjdCk7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUq
IHByaXYgPSByZXF1ZXN0LT5wcml2OworICAgIAorICAgIC8qcHJpdi0+bV9ub2RlLT5pbXBsKCkt
PmRlcmVmKCk7Ki8KKyAgICBkZWxldGUgcHJpdi0+bV9ub2RlOyAvKiBjYWxscyBtX2ltcGwtPmRl
cmVmKCkgKi8KKworICAgIEdfT0JKRUNUX0NMQVNTKGdkb21fZG9tX29iamVjdF9wYXJlbnRfY2xh
c3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3Rf
Y2xhc3NfaW5pdChHZG9tRE9NT2JqZWN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBHX09C
SkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdkb21fZG9tX29iamVjdF9maW5h
bGl6ZTsKKyAgICAKKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBz
aXplb2YoR2RvbURPTU9iamVjdFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21f
b2JqZWN0X2luaXQoR2RvbURPTU9iamVjdCogcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0
UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAg
ICByZXF1ZXN0LT5wcml2ID0gcHJpdjsKK30gICAKKworfSAvKiBleHRlcm4gIkMiICovCisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18KKyNk
ZWZpbmUgX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXworI2luY2x1ZGUgImdsaWItb2JqZWN0Lmgi
CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0
eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyBHZG9tRXZlbnRUYXJnZXRO
b2RlQ2xhc3M7CisKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFICAgICAgICAg
ICAgKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9FVkVO
VF9UQVJHRVRfTk9ERShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGUp
KQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBF
X0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwg
R2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRf
Tk9ERShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9N
X1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9O
T0RFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01f
VFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVf
R0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9U
WVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorCit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgR2RvbUV2ZW50VGFyZ2V0Tm9k
ZVByaXZhdGU7CisKKyNpbmNsdWRlICJHZG9tTm9kZS5oIgorCitzdHJ1Y3QgX0dkb21FdmVudFRh
cmdldE5vZGUgeworICAgIEdkb21Ob2RlIHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21FdmVu
dFRhcmdldE5vZGVQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXRO
b2RlQ2xhc3MgeworICAgIEdkb21Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lU
X0FQSSBHVHlwZQorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSAodm9pZCk7CisKK1dF
QktJVF9BUEkgdm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50X3RhcmdldF9u
b2RlIChHZG9tRXZlbnRUYXJnZXROb2RlICp0aGl6KTsKKworR19FTkRfREVDTFMKKworI2VuZGlm
IC8qIF9fR2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18gKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dkb21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIK
KyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKwor
ZXh0ZXJuICJDIiB7CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdk
b21ET01PYmplY3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisJLyoK
KyAgICBXZWJDb3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2
YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0X3R5cGVfYXJnID0g
V2ViQ29yZTo6U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRET01P
YmplY3QoX2dfZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAvKiBleHRlcm4gIkMi
ICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVj
dC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9N
T2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRE9NT2JqZWN0
X0hfX19QUklWXworI2RlZmluZSBfX0dET01ET01PYmplY3RfSF9fX1BSSVZfCisjaW5jbHVkZSAi
Z2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCitHX0JFR0lOX0RFQ0xT
CisKK2NsYXNzIEdET01PYmplY3Q7CitXRUJLSVRfQVBJIEdET01PYmplY3QqCitnZG9tX2RvbV9v
YmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCk7CisKK1dFQktJVF9BUEkg
dm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3Qs
IEdET01PYmplY3QqIGl0ZW0pOworCitHX0VORF9ERUNMUworI2VuZGlmCisKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTgyIEBACisv
KgorICogVEhJUyBGSUxFIElTIERFUklWRUQgRlJPTSBBTiBBVVRPTUFUSUNBTExZIEdFTkVSQVRF
RCBGSUxFLgorICogIGtlZXBpbmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBk
b25lIGJ5IGFkZGluZworICogIGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRp
bmcgYSBzZXBhcmF0ZQorICogIGdlbmVyYXRlciB3aGljaCB0YWtlcyBKU0hUTUxFbGVtZW50V3Jh
cHBlckZhY3RvcnkuaCBhcyBpbnB1dC4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKgorICogQ29weXJp
Z2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisj
aW5jbHVkZSAiR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEFwcGxldEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxCYXNl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQm9keUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQ2FudmFzRWxlbWVudC5oIgor
I2luY2x1ZGUgIkdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxNb2RFbGVtZW50LmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxE
aXZFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRmllbGRTZXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxIZWFk
aW5nRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSHRtbEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTElt
YWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTGFiZWxFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTExpbmtFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxNYXJxdWVlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTE1ldGFFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9wdEdy
b3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MUGFyYW1F
bGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFN0
eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxUYWJs
ZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVS
b3dFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCIKKworI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1M
QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxCYXNlRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxCdXR0b25FbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRGlyZWN0
b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERpdkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxGb250
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEZvcm1FbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21IVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxIZWFk
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEhSRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TExJRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTExpbmtFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21IVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxNZXRhRWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MUGFyYWdy
YXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFBhcmFtRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MU2VsZWN0
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFN0eWxlRWxlbWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGl0bGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFibGVSb3dFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKKworI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTEFwcGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXJlYUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUZvbnRFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJv
ZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxC
dXR0b25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXJlY3Rv
cnlFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
RExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9udEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkaW5n
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxI
UkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
SUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElzSW5kZXhFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTExJRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcnF1ZWVF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1l
dGFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFByZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNj
cmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxs
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MVGl0bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxVTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBH
RE9NTm9kZSogKCpDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4pOworCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFuY2hvcldyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MQW5jaG9yRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcHBsZXRXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEFwcGxldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFwcGxldEVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXJl
YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJhc2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxCYXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVCYXNlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUZvbnRFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxCYXNlRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmxvY2txdW90
ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJsb2NrcXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJvZHlXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJvZHlF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxCb2R5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQlJFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxCUkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlQnV0dG9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCdXR0b25FbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxCdXR0b25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUNhbnZhc1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQ2FudmFzRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQ2FudmFzRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVDb2xXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ29sRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDb2xFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1vZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTW9kRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MTW9kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTERpcmVjdG9yeUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRGl2V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXZFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxEaXZFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZURMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxETGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTERMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVFbWJlZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRW1iZWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxF
bWJlZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlRmllbGRTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZpZWxkU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
RmllbGRTZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUZvbnRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb250
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVG
b3JtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxGb3JtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEZyYW1lRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lU2V0V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxGcmFtZVNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0RWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkaW5nV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxIZWFkaW5nRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZGluZ0VsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MSGVhZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhSV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxI
UkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIdG1sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIdG1sRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MSHRtbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlSUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxJRnJhbWVFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZUltYWdlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEltYWdlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVJbnB1dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlSXNJbmRleFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSXNJbmRleEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TElzSW5kZXhFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUxhYmVsV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxMYWJlbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExh
YmVsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVMZWdlbmRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTExlZ2VuZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExlZ2Vu
ZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
TElXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTExJRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTElFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxpbmtXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTExpbmtFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNYXBXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1hcEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWFycXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFycXVlZUVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTE1hcnF1ZWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1lbnVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1lbnVFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxNZW51RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVNZXRhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNZXRhRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MTWV0YUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlT2JqZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxPYmplY3RFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxPYmplY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZU9MaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxPTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9M
aXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVPcHRHcm91cFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MT3B0R3JvdXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxP
cHRHcm91cEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlT3B0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxPcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxP
cHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZVBhcmFncmFwaFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MUGFyYWdyYXBoRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MUGFyYWdyYXBoRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVQYXJhbVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MUGFyYW1FbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxQYXJhbUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlUHJlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxQcmVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQcmVFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVF1b3Rl
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxRdW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTY3JpcHRXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTFNjcmlwdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNjcmlwdEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2VsZWN0V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxTZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVN0eWxlV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxTdHlsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
VGFibGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2Vs
bFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MVGFibGVDZWxsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxs
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVU
ZXh0QXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MVGV4dEFyZWFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUZXh0
QXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlVGl0bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRpdGxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGl0bGVF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRh
YmxlUm93V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxl
Um93RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVVTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MVUxpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxVTGlzdEVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK0dET01Ob2RlKiBjcmVhdGVHRE9NSFRNTFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBzdGF0aWMg
SGFzaE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFw
cGVyRnVuY3Rpb24+IG1hcDsKKyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAgIG1hcC5z
ZXQoYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoYXBwbGV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXJl
YVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUJhc2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlQmFzZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJsb2NrcXVv
dGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCUldyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
QnV0dG9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVDYW52YXNXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25UYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGNvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChkZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpcmVj
dG9yeVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlRGl2V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZURMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmaWVsZHNl
dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7CisgICAgICAg
bWFwLnNldChmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoZm9ybVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1XcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
RnJhbWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlRnJhbWVTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaGVh
ZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGhyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGh0bWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJhbWVX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUlucHV0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGFi
ZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQobGVnZW5kVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChsaVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGlu
a1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlTWFwV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlTWFycXVlZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1ldGFU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChvYmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KG9sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
T3B0R3JvdXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZU9wdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocGFy
YW1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQocHJlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KHNjcmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNjcmlw
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVN0eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJsZVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0
Ym9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQodGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlVGV4dEFyZWFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlVGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRyVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGNvbGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVh
ZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDZU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChpbWFnZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChpbnNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNl
bGVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRo
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAg
bWFwLnNldCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
UHJlV3JhcHBlcik7CisgICAgfQorICAgIHByaW50ZigiY3JlYXRlR0RPTUhUTUxXcmFwcGVyOiAl
c1xuIiwgZWxlbWVudC0+bG9jYWxOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAg
Q3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0g
bWFwLmdldChlbGVtZW50LT5sb2NhbE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFw
cGVyRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVu
dCk7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEVsZW1lbnQoZWxlbWVudC5nZXQoKSk7Cit9CisK
K30KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJn
ZXROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRH
ZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisK
KworI2lmbmRlZiBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX0lOVF8KKyNkZWZpbmUgX19HRE9N
RXZlbnRUYXJnZXROb2RlX0hfX19JTlRfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbU5vZGUuaCIKK0dfQkVHSU5fREVDTFMKKworY2xhc3MgR0RPTUV2
ZW50VGFyZ2V0Tm9kZSA6IHB1YmxpYyBHRE9NTm9kZSB7CisKK3B1YmxpYzoKKyAgICBHRE9NRXZl
bnRUYXJnZXROb2RlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gaW1wbCkgOiBHRE9NTm9kZShp
bXBsKSB7fQorICAgIGludCBnZXRfZ29ial90eXBlKCkgeyByZXR1cm4gR0RPTV9UWVBFX0VWRU5U
X1RBUkdFVF9OT0RFOyB9Cit9OworCisKK0dfRU5EX0RFQ0xTCisjZW5kaWYKKwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MDEg
QEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5A
a2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBT
YW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKy8vIGdjYyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUg
SGFzaE1hcCBwb2ludGVyIHNwZWNpYWxpemF0aW9uIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQg
X19HTlVDX18gJiYgIWRlZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNk
ZWZpbmUgSEFTSF9NQVBfUFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5o
IgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9i
amVjdC5oIgorI2luY2x1ZGUgIkdET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiR0RPTUhUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuaCIKKworI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNs
dWRlICJHZG9tQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTU3R5
bGVTaGVldC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudEV4Y2Vw
dGlvbi5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNp
bmNsdWRlICJHZG9tTm9kZS5oIgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21Ob2RlLmgiCisKKyNpbmNsdWRlICJBdHRyLmgiCisjaW5jbHVkZSAiQ0RBVEFT
ZWN0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDb21tZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiRW50aXR5LmgiCisjaW5jbHVkZSAiRW50
aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
RXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbUF0dHIuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUF0dHIuaCIKKyNpbmNsdWRlICJHZG9tQ2hhcmFjdGVyRGF0YS5oIgorI2luY2x1
ZGUgIkdkb21UZXh0LmgiCisjaW5jbHVkZSAiR2RvbUNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUg
Ikdkb21Db21tZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bURvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnRUeXBlLmgiCisjaW5j
bHVkZSAiR2RvbUVudGl0eS5oIgorI2luY2x1ZGUgIkdkb21FbGVtZW50LmgiCisjaW5jbHVkZSAi
R2RvbUNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIgor
I2luY2x1ZGUgIkdkb21FbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJHZG9tTm90YXRpb24u
aCIKKyNpbmNsdWRlICJHZG9tSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbVByb2Nlc3Np
bmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJOb3RhdGlvbi5o
IgorI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
I2luY2x1ZGUgIkdkb21DU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NTQ2hhcnNldFJ1bGUuaCIKKyNp
bmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCisj
aW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKKyNpbmNs
dWRlICJDU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5j
bHVkZSAiR2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0ZvbnRGYWNlUnVs
ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU01l
ZGlhUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgIkdkb21D
U1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFyaWFibGVzUnVsZS5oIgorCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FdmVudC5oIgorCisjaW5j
bHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tQ2xp
cGJvYXJkLmgiCisjaW5jbHVkZSAiR2RvbUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9t
TWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJH
ZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5j
bHVkZSAiR2RvbVByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tVGV4dEV2ZW50LmgiCisj
aW5jbHVkZSAiR2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tV2ViS2l0QW5pbWF0aW9uRXZl
bnQuaCIKKyNpbmNsdWRlICJHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAi
R2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50LmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVu
dC5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJNdXRhdGlvbkV2ZW50Lmgi
CisjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIK
KyNpbmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJVSUV2ZW50LmgiCisjaW5jbHVkZSAi
V2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmgiCisKKyNpbmNsdWRlICJHZG9tSFRNTENvbGxlY3Rpb24uaCIKKworI2luY2x1
ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVk
ZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisvLyBUT0RPICNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxBbGxDb2xsZWN0aW9uLmgiCisvLyBUT0RPICNpbmNsdWRlICJHZG9tSFRNTEFsbENv
bGxlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisvLyBl
cnIuLi4gI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTmFtZWROb2Rlc0NvbGxlY3Rpb24uaCIKKy8v
IGVyci4uLiAjaW5jbHVkZSAiR2RvbU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisKKyNpZiBFTkFC
TEUoRE9NX1NUT1JBR0UpCisjaW5jbHVkZSAiR2RvbVN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUg
IlN0b3JhZ2VFdmVudC5oIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoU1ZHKQorI2lmIDAgLyogVE9E
TyAqLworI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVkZSAi
R2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgorI2VuZGlmCisj
ZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBYWFggVE9ETyAqLworI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiR2Rv
bVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNl
bmRpZgorI2VuZGlmCisKKyNpZiAwCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJHZG9tU1ZH
RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiU1ZHRXhjZXB0aW9uLmgiCisjZW5kaWYKKyNlbmRpZgor
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUNTU1J1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNEQVRBU2VjdGlvbi5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50RnJhZ21l
bnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21FbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU5vdGF0aW9uLmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tVGV4dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTQ2hhcnNldFJ1bGUuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTTWVk
aWFSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21DU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21LZXlib2FyZEV2
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21NZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU11
dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU92ZXJmbG93RXZlbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbVRleHRFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tVUlFdmVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21TdG9yYWdl
RXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTENvbGxlY3Rpb24uaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit0eXBlZGVmIEhhc2hN
YXA8dm9pZCosIGdwb2ludGVyPiBET01PYmplY3RNYXA7Cit0eXBlZGVmIEhhc2hNYXA8dm9pZCos
IGdwb2ludGVyPiBHZG9tV3JhcHBlckNhY2hlOyAvKiBBUkchIFVORkFJUiEgSlNXcmFwcGVyQ2Fj
aGUgaXMgaW4gRG9jdW1lbnQhISAqLworCisvLyBGb3IgZGVidWdnaW5nLCBrZWVwIGEgc2V0IG9m
IHdyYXBwZXJzIGN1cnJlbnRseSByZWdpc3RlcmVkLCBhbmQgY2hlY2sgdGhhdAorLy8gYWxsIGFy
ZSB1bnJlZ2lzdGVyZWQgYmVmb3JlIHRoZXkgYXJlIGRlc3Ryb3llZC4gVGhpcyBoYXMgaGVscGVk
IHVzIGZpeCBhdAorLy8gbGVhc3Qgb25lIGJ1Zy4KKworI2lmIDAKK3N0YXRpYyB2b2lkIGFkZFdy
YXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcik7CitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdE
T01PYmplY3QqIHdyYXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2Rv
bVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpOworCisjaWZkZWYgTkRFQlVHCisKK3N0YXRpYyBpbmxp
bmUgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqKQoreworfQorCitzdGF0aWMgaW5saW5lIHZv
aWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lk
IHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUmKQoreworfQorCisjZWxzZQor
CitzdGF0aWMgSGFzaFNldDxHRE9NT2JqZWN0Kj4mIHdyYXBwZXJTZXQoKQoreworICAgIHN0YXRp
YyBIYXNoU2V0PEdET01PYmplY3QqPiBzdGF0aWNXcmFwcGVyU2V0OworICAgIHJldHVybiBzdGF0
aWNXcmFwcGVyU2V0OworfQorCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqIHdy
YXBwZXIpCit7CisgICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFpbnMod3JhcHBlcikpOwor
ICAgIHdyYXBwZXJTZXQoKS5hZGQod3JhcHBlcik7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZVdy
YXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcikKK3sKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAg
IHJldHVybjsKKyAgICBBU1NFUlQod3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAg
ICB3cmFwcGVyU2V0KCkucmVtb3ZlKHdyYXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVX
cmFwcGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVycykKK3sKKyAgICBmb3IgKEdk
b21XcmFwcGVyQ2FjaGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gd3JhcHBlcnMuYmVnaW4oKTsgaXQg
IT0gd3JhcHBlcnMuZW5kKCk7ICsraXQpCisgICAgICAgIHJlbW92ZVdyYXBwZXIoaXQtPnNlY29u
ZCk7Cit9CisKK0dET01PYmplY3Q6On5HRE9NT2JqZWN0KCkKK3sKKyAgICBBU1NFUlQoIXdyYXBw
ZXJTZXQoKS5jb250YWlucyh0aGlzKSk7Cit9CisKKyNlbmRpZgorI2VuZGlmIC8qIGNvbW1lbnRl
ZCBvdXQgZm9yIG5vdyAqLworCitzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlckNhY2hl
KCkKK3sgCisgICAgLy8gVU5GQUlSISBpIHdhbnQgb25lIG9mIHRoZXNlIHBlciBEb2N1bWVudCwg
dG9vIQorICAgIC8vIERvbid0IHVzZSBtYWxsb2MgaGVyZS4gQ2FsbGluZyBtYWxsb2MgZnJvbSBh
IG1hcmsgZnVuY3Rpb24gY2FuIGRlYWRsb2NrLgorICAgIHN0YXRpYyBHZG9tV3JhcHBlckNhY2hl
IHN0YXRpY0dkb21XcmFwcGVyQ2FjaGU7CisgICAgcmV0dXJuIHN0YXRpY0dkb21XcmFwcGVyQ2Fj
aGU7Cit9CisKK3N0YXRpYyBET01PYmplY3RNYXAmIGRvbU9iamVjdHMoKQoreyAKKyAgICAvLyBE
b24ndCB1c2UgbWFsbG9jIGhlcmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9u
IGNhbiBkZWFkbG9jay4KKyAgICBzdGF0aWMgRE9NT2JqZWN0TWFwIHN0YXRpY0RPTU9iamVjdHM7
CisgICAgcmV0dXJuIHN0YXRpY0RPTU9iamVjdHM7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSkgCit7CisgICAgZ3Bv
aW50ZXIgcmV0ID0gZG9tT2JqZWN0cygpLmdldChvYmplY3RIYW5kbGUpOworICAgIHByaW50Zigi
Z2V0RE9NT2JqZWN0OiAlcCAlcFxuIiwgb2JqZWN0SGFuZGxlLCByZXQpOworICAgIHJldHVybiBy
ZXQ7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVfZ2RvbV9vYmplY3QoR0RPTU9iamVjdCAq
ZG9iKQoreworICAgIGdwb2ludGVyIHJlcyA9IGdfb2JqZWN0X25ldyhkb2ItPmdldF9nb2JqX3R5
cGUoKSwgTlVMTCk7CisgICAgZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdET01fRE9NX09C
SkVDVChyZXMpLCBkb2IpOworICAgIHJldHVybiByZXM7Cit9CisKK2dwb2ludGVyIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVj
dCogd3JhcHBlcikgCit7CisgICAgLy8gYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBncG9pbnRl
ciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgcHJpbnRmKCJwdXRET01P
YmplY3Q6ICVwICVwICVwXG4iLCBvYmplY3RIYW5kbGUsIHdyYXBwZXIsIG9iaik7CisgICAgZG9t
T2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIG9iaik7CisgICAgcmV0dXJuIG9iajsKK30KKwor
dm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RI
YW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKTsKKyAgICAvL3Jl
bW92ZVdyYXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7Cit9CisKK2dwb2lu
dGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50
KiBkb2N1bWVudCwgTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Z3BvaW50ZXIgPihkb21PYmplY3RzKCkuZ2V0KG5vZGUpKTsKKyAg
ICByZXR1cm4gLyogWFhYIGdycnIgZG9jdW1lbnQtPiAqL3dyYXBwZXJDYWNoZSgpLmdldChub2Rl
KTsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFkb2N1bWVu
dCkgeworICAgICAgICBmb3JnZXRET01PYmplY3Qobm9kZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgLy9yZW1vdmVXcmFwcGVyKC8qIFhYWCBncnIgZG9jdW1lbnQtPiovd3JhcHBlckNh
Y2hlKCkudGFrZShub2RlKSk7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6
cHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogbm9kZSwgR0RP
TU5vZGUgKndyYXBwZXIpCit7CisgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIpOworICAgIGlmICgh
ZG9jdW1lbnQpIHsKKyAgICAgICAgbm9kZS0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChub2RlLCB3cmFwcGVyKSA7CisgICAgfQorICAg
IGdwb2ludGVyIG9iaiA9IGNyZWF0ZV9nZG9tX29iamVjdCh3cmFwcGVyKTsKKyAgICAvKiBYWFgg
Z3JyciBkb2N1bWVudC0+Ki93cmFwcGVyQ2FjaGUoKS5zZXQobm9kZSwgb2JqKTsKKyAgICByZXR1
cm4gb2JqOworfQorCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0QWxsRE9NTm9k
ZXNGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50
KTsKKyAgICAvL3JlbW92ZVdyYXBwZXJzKGRvY3VtZW50LT53cmFwcGVyQ2FjaGUoKSk7Cit9CisK
KyNpZiAwCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6bWFya0RPTU5vZGVzRm9yRG9jdW1l
bnQoRG9jdW1lbnQqIGRvYykKK3sKKyNpZiAwIC8qWFhYIFRPRE8qLworICAgIC8vIElmIGEgbm9k
ZSdzIEdkb20gd3JhcHBlciBob2xkcyBjdXN0b20gcHJvcGVydGllcywgdGhvc2UgcHJvcGVydGll
cyBtdXN0CisgICAgLy8gcGVyc2lzdCBldmVyeSB0aW1lIHRoZSBub2RlIGlzIGZldGNoZWQgZnJv
bSB0aGUgRE9NLiBTbywgd2Uga2VlcCBHZG9tCisgICAgLy8gd3JhcHBlcnMgbGlrZSB0aGF0IGZy
b20gYmVpbmcgZ2FyYmFnZSBjb2xsZWN0ZWQuCisKKyAgICBHZG9tV3JhcHBlckNhY2hlJiBub2Rl
RGljdCA9IC8qZG9jLT4qL3dyYXBwZXJDYWNoZSgpOworICAgIEdkb21XcmFwcGVyQ2FjaGU6Oml0
ZXJhdG9yIG5vZGVFbmQgPSBub2RlRGljdC5lbmQoKTsKKyAgICBmb3IgKEdkb21XcmFwcGVyQ2Fj
aGU6Oml0ZXJhdG9yIG5vZGVJdCA9IG5vZGVEaWN0LmJlZ2luKCk7IG5vZGVJdCAhPSBub2RlRW5k
OyArK25vZGVJdCkgeworICAgICAgICBncG9pbnRlciBnTm9kZSA9IG5vZGVJdC0+c2Vjb25kOwor
ICAgICAgICBOb2RlKiBub2RlID0gZ05vZGUtPmltcGwoKTsKKworICAgICAgICBpZiAoZ05vZGUt
Pm1hcmtlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm8gbmVlZCB0
byBwcmVzZXJ2ZSBhIHdyYXBwZXIgdGhhdCBoYXMgbm8gY3VzdG9tIHByb3BlcnRpZXMgb3IgaXMg
bm8KKyAgICAgICAgLy8gbG9uZ2VyIGZldGNoYWJsZSB0aHJvdWdoIHRoZSBET00uCisgICAgICAg
IGlmICghZ05vZGUtPmhhc0N1c3RvbVByb3BlcnRpZXMoKSB8fCAhbm9kZS0+aW5Eb2N1bWVudCgp
KQorICAgICAgICAgICAgLy8uLi4gdW5sZXNzIHRoZSB3cmFwcGVyIHdyYXBzIGEgbG9hZGluZyBp
bWFnZSwgc2luY2UgdGhlICJuZXcgSW1hZ2UiCisgICAgICAgICAgICAvLyBzeW50YXggYWxsb3dz
IGFuIG9ycGhhbiBpbWFnZSB3cmFwcGVyIHRvIGJlIHRoZSBsYXN0IHJlZmVyZW5jZQorICAgICAg
ICAgICAgLy8gdG8gYSBsb2FkaW5nIGltYWdlLCB3aG9zZSBsb2FkIGV2ZW50IG1pZ2h0IGhhdmUg
aW1wb3J0YW50IHNpZGUtZWZmZWN0cy4KKyAgICAgICAgICAgIGlmICghbm9kZS0+aGFzVGFnTmFt
ZShpbWdUYWcpIHx8IHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2RlKS0+aGF2ZUZp
cmVkTG9hZEV2ZW50KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZ05v
ZGUtPm1hcmsoKTsKKyAgICB9CisjZW5kaWYKK30KKworLyogWFhYIC0gcmVxdWlyZXMgbG9va2lu
ZyB1cCBvYmplY3QgLSBjYWxsIHRvIEdfT0JKRUNUKCkgbWFjcm8gaW4gYXJnCisgKiAid3JhcHBl
ciIgdG8gcHV0RE9NTm9kZUZvckRvY3VtZW50PyovCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJw
cmV0ZXI6OnVwZGF0ZURPTU5vZGVEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9j
LCBEb2N1bWVudCogbmV3RG9jKQoreworICAgIEFTU0VSVChvbGREb2MgIT0gbmV3RG9jKTsKKyAg
ICBzdHlsZVNoZWV0LT5yZWYoKTsKKyAgICBncG9pbnRlciB3cmFwcGVyID0gZ2V0RE9NTm9kZUZv
ckRvY3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgaWYgKHdyYXBwZXIpIHsKKyAgICAgICAgLy9y
ZW1vdmVXcmFwcGVyKHdyYXBwZXIpOworICAgICAgICBncG9pbnRlciBvYmogPSBwdXRET01Ob2Rl
Rm9yRG9jdW1lbnQobmV3RG9jLCBub2RlLCB3cmFwcGVyKTsKKyAgICAgICAgZm9yZ2V0RE9NTm9k
ZUZvckRvY3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgICAgIC8vYWRkV3JhcHBlcih3cmFwcGVy
KTsKKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4u
LiAqLworfQorI2VuZGlmCisKK2dwb2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKQoreworICAg
IGlmICghZG9jKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAg
IGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb2Mp
OworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3Qg
KnJldDsKKworICAgIGlmIChkb2MtPmlzSFRNTERvY3VtZW50KCkpCisgICAgICAgIHJldCA9IG5l
dyBHRE9NSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KGRvYykpOworI2lm
IEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5pc1NWR0RvY3VtZW50KCkpCisgICAgewor
ICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gKi8KKyNpZiAwCisgICAgICAgIHJldCA9
IG5ldyBHRE9NU1ZHRG9jdW1lbnQoc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnQqPihkb2MpKTsKKyNl
bmRpZgorICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01Eb2N1
bWVudChkb2MpOworCisgICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVy
cHJldGVyOjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3Jl
YXRlV3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3bHlDcmVhdGVkKE5v
ZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1t
bS4uLi4gKi8KKyAgICAKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKyAgICAK
K2dwb2ludGVyIHRvR0RPTShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAg
cmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+
ZG9jdW1lbnQoKTsKKyAgICBncG9pbnRlciByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Omdl
dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJl
dHVybiByZXQ7CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50
ZXIgdG9HRE9NKENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICBy
ZXR1cm4gTlVMTDsgLyogaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAg
ICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKworICAgIGlmICh2YWx1
ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZUxpc3Qoc3Rh
dGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVs
c2UgaWYgKHZhbHVlLT5pc1NWR1BhaW50KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsg
LyogVE9ETyAqLworICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHUGFpbnQoc3RhdGljX2Nhc3Q8
U1ZHUGFpbnQqPih2YWx1ZSkpOworICAgIH0KKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdDb2xv
cigpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9y
ZXQgPSBuZXcgR0RPTVNWR0NvbG9yKHN0YXRpY19jYXN0PFNWR0NvbG9yKj4odmFsdWUpKTsKKyAg
ICB9CisjZW5kaWYKKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAg
ICAgICByZXQgPSBuZXcgR0RPTUNTU1ByaW1pdGl2ZVZhbHVlKHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWUpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NT
VmFsdWUodmFsdWUpOworCisgICAgdmFsdWUtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCh2YWx1ZSwgcmV0KTsKK30KKworc3RhdGljIEFMV0FZ
U19JTkxJTkUgZ3BvaW50ZXIgY3JlYXRlV3JhcHBlcihOb2RlKiBub2RlKQoreworICAgIEFTU0VS
VChub2RlKTsKKyAgICBBU1NFUlQoIVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9j
dW1lbnQobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSkpOworICAgIAorICAgIERvY3VtZW50KiBkb2Mg
PSBub2RlLT5kb2N1bWVudCgpOworICAgIEdET01Ob2RlICpyZXQgPSBOVUxMOworICAgIAorICAg
IHByaW50ZigiY3JlYXRlV3JhcHBlciBub2RlVHlwZSAlZFxuIiwgbm9kZS0+bm9kZVR5cGUoKSk7
CisKKyAgICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBOb2RlOjpF
TEVNRU5UX05PREU6CisgICAgICAgICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKQorICAg
ICAgICAgICAgICAgIHJldCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxIVE1M
RWxlbWVudCo+KG5vZGUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAgICAgZWxzZSBpZiAo
bm9kZS0+aXNTVkdFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisjaWYg
MCAvKiBYWFggVE9ETyAqLworICAgICAgICAgICAgICAgIHJldCA9IGNyZWF0ZUdET01TVkdXcmFw
cGVyKHN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihub2RlKSk7CisjZW5kaWYKKyNlbmRpZgorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRWxlbWVudChzdGF0
aWNfY2FzdDxFbGVtZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTm9kZTo6QVRUUklCVVRFX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUF0dHIo
c3RhdGljX2Nhc3Q8QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6OlRFWFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NVGV4dChzdGF0
aWNfY2FzdDxUZXh0Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DREFU
QVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUVudGl0eShzdGF0aWNfY2FzdDxFbnRpdHkqPihub2RlKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6
CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbihzdGF0aWNf
Y2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUNvbW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CisgICAgICAgICAgICAvLyB3
ZSBkb24ndCB3YW50IHRvIGNhY2hlIHRoZSBkb2N1bWVudCBpdHNlbGYgaW4gdGhlIHBlci1kb2N1
bWVudCBkaWN0aW9uYXJ5CisgICAgICAgICAgICByZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PERv
Y3VtZW50Kj4obm9kZSkpOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToK
KyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnRUeXBlKHN0YXRpY19jYXN0PERvY3Vt
ZW50VHlwZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
Ok5PVEFUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vdGF0aW9uKHN0YXRp
Y19jYXN0PE5vdGF0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NRG9jdW1lbnRGcmFnbWVudChzdGF0aWNfY2FzdDxEb2N1bWVudEZyYWdtZW50Kj4obm9kZSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01FbnRpdHlSZWZlcmVuY2Uoc3RhdGlj
X2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vZGUobm9kZSk7CisgICAg
fQorCisgICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpw
dXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlLCByZXQpOworfQorIAorZ3BvaW50ZXIgdG9H
RE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQoreworICAgIGlmICghY29sbGVjdGlvbikK
KyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9pbnRlciBnb2Jq
ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoY29sbGVjdGlvbik7CisKKyAg
ICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7
CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBIVE1MQ29s
bGVjdGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTE9w
dGlvbnNDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlvbio+KGNvbGxl
Y3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIDAKKyAgICAgICAgY2FzZSBIVE1MQ29s
bGVjdGlvbjo6RG9jQWxsOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQWxsQ29sbGVj
dGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAg
ICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29sbGVj
dGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY29sbGVjdGlvbi0+cmVm
KCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGNvbGxl
Y3Rpb24sIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQpCit7CisgICAg
aWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBw
cmludGYoInRvR0RPTSBFdmVudCB0eXBlICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRl
cjo6Z2V0RE9NT2JqZWN0KGV2ZW50KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdv
Ymo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgaWYgKGV2ZW50LT5pc1VJRXZlbnQoKSkg
eworICAgICAgICBpZiAoZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKQorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01LZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVu
dCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNUZXh0RXZlbnQoKSkKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NVGV4dEV2ZW50KHN0YXRpY19jYXN0PFRleHRFdmVudCo+KGV2ZW50KSk7
CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSkKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NTW91c2VFdmVudChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpKTsK
KyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2hlZWxFdmVudCgpKQorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01XaGVlbEV2ZW50KHN0YXRpY19jYXN0PFdoZWVsRXZlbnQqPihldmVudCkpOwor
I2lmIEVOQUJMRShTVkcpCisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVudCgp
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAgICAg
ICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1pvb21FdmVudChzdGF0aWNfY2FzdDxTVkdab29tRXZl
bnQqPihldmVudCksIDApOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01VSUV2ZW50KHN0YXRpY19jYXN0PFVJRXZlbnQqPihldmVudCkp
OworICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlzTXV0YXRpb25FdmVudCgpKQorICAgICAgICByZXQg
PSBuZXcgR0RPTU11dGF0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8TXV0YXRpb25FdmVudCo+KGV2ZW50
KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzT3ZlcmZsb3dFdmVudCgpKQorICAgICAgICByZXQg
PSBuZXcgR0RPTU92ZXJmbG93RXZlbnQoc3RhdGljX2Nhc3Q8T3ZlcmZsb3dFdmVudCo+KGV2ZW50
KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzTWVzc2FnZUV2ZW50KCkpCisgICAgICAgIHJldCA9
IG5ldyBHRE9NTWVzc2FnZUV2ZW50KHN0YXRpY19jYXN0PE1lc3NhZ2VFdmVudCo+KGV2ZW50KSk7
CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzUHJvZ3Jlc3NFdmVudCgpKSB7CisgICAgICAgIGlmIChl
dmVudC0+aXNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NUHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxQcm9ncmVzc0V2ZW50Kj4o
ZXZlbnQpKTsKKyAgICB9CisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorICAgIGVsc2UgaWYgKGV2
ZW50LT5pc1N0b3JhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTVN0b3JhZ2VFdmVu
dChzdGF0aWNfY2FzdDxTdG9yYWdlRXZlbnQqPihldmVudCkpOworI2VuZGlmCisgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzV2ViS2l0QW5pbWF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01XZWJLaXRBbmltYXRpb25FdmVudChzdGF0aWNfY2FzdDxXZWJLaXRBbmltYXRpb25FdmVudCo+
KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkp
CisgICAgICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50KHN0YXRpY19jYXN0
PFdlYktpdFRyYW5zaXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZQorICAgICAgICByZXQg
PSBuZXcgR0RPTUV2ZW50KGV2ZW50KTsKKworICAgIGV2ZW50LT5yZWYoKTsKKyAgICByZXR1cm4g
R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZXZlbnQsIHJldCk7Cit9CisKKy8q
IFRPRE8gWFhYIGhtbW0uLi4gbm90IHNvIGhhcHB5IGFib3V0IHRoaXMgLSBzaG91bGQgYmUgIm5l
d2x5IGNyZWF0ZWQiICovCitncG9pbnRlciB0b0dET00oVGV4dCogdGV4dCkKK3sKKyAgICBpZiAo
IXRleHQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KHRleHQtPmRvY3VtZW50KCks
IHRleHQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01O
b2RlICpyZXQgPSBuZXcgR0RPTVRleHQodGV4dCk7CisgICAgdGV4dC0+ZG9jdW1lbnQoKS0+cmVm
KCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3Vt
ZW50KHRleHQtPmRvY3VtZW50KCksIHRleHQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShD
U1NSdWxlKiBydWxlKQoreworICAgIGlmICghcnVsZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8q
IFhYWCBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpnZXRET01PYmplY3QocnVsZSk7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJu
IGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgc3dpdGNoIChydWxlLT50eXBlKCkp
IHsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpTVFlMRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01DU1NTdHlsZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6TUVESUFfUlVMRToKKyAg
ICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTTWVkaWFSdWxlKHN0YXRpY19jYXN0PENTU01lZGlh
UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6
OkZPTlRfRkFDRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NGb250RmFjZVJ1
bGUoc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6UEFHRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01DU1NQYWdlUnVsZShzdGF0aWNfY2FzdDxDU1NQYWdlUnVsZSo+KHJ1bGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OklNUE9SVF9SVUxFOgorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NJbXBvcnRSdWxlKHN0YXRpY19jYXN0PENTU0ltcG9y
dFJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxl
OjpDSEFSU0VUX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0NoYXJzZXRSdWxl
KHN0YXRpY19jYXN0PENTU0NoYXJzZXRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6VkFSSUFCTEVTX1JVTEU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUNTU1ZhcmlhYmxlc1J1bGUoc3RhdGljX2Nhc3Q8Q1NTVmFyaWFibGVzUnVsZSo+
KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgcmV0ID0gbmV3IEdET01DU1NSdWxlKHJ1bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgcnVsZS0+cmVmKCk7CisgICAgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01P
YmplY3QocnVsZSwgcmV0KTsKKyAgICByZXR1cm4gcmV0OworfQorCisvKiBUT0RPOiBzaG91bGQg
YmUgdG9HRE9NTmV3bHlDcmVhdGVkICovCitncG9pbnRlciB0b0dET00oRWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8g
c2hvdWxkbid0IGJlIG9uZT8gQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZv
ckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpKTsKKyAgICBncG9pbnRlciBn
b2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZWxlbWVu
dC0+ZG9jdW1lbnQoKSwgZWxlbWVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBn
b2JqOyAvLyBodWg/IGVyci4uLgorCisgICAgR0RPTU5vZGUgKnJldDsKKyAgICBEb2N1bWVudCog
ZG9jID0gZWxlbWVudC0+ZG9jdW1lbnQoKTsKKworICAgIGlmIChlbGVtZW50LT5pc0hUTUxFbGVt
ZW50KCkpCisgICAgICAgIHJldCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxI
VE1MRWxlbWVudCo+KGVsZW1lbnQpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKGVs
ZW1lbnQtPmlzU1ZHRWxlbWVudCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRP
RE8gKi8KKyAgICAgICAgLy9yZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxT
VkdFbGVtZW50Kj4oZWxlbWVudCkpOworICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAg
cmV0ID0gbmV3IEdET01FbGVtZW50KGVsZW1lbnQpOworCisgICAgZG9jLT5yZWYoKTsKKyAgICBy
ZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBl
bGVtZW50LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oU3R5bGVTaGVldCogc3R5bGVTaGVl
dCkKK3sKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBlcnIu
Li4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU9iamVjdChzdHlsZVNoZWV0KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7
CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgaWYgKHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVT
aGVldCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1N0eWxlU2hlZXQoc3RhdGljX2Nhc3Q8
Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5l
dyBHRE9NU3R5bGVTaGVldChzdHlsZVNoZWV0KTsKKworICAgIHN0eWxlU2hlZXQtPnJlZigpOwor
ICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChzdHlsZVNoZWV0
LCByZXQpOworfQorCisvKiBkZXJpdmVkIHNvdXJjZXMgYXV0by1nZW5lcmF0ZWQgKi8KK2dwb2lu
dGVyIHRvR0RPTShYTUxIdHRwUmVxdWVzdFVwbG9hZCogb2JqKTsKKworZ3BvaW50ZXIgdG9HRE9N
KEV2ZW50VGFyZ2V0KiB0YXJnZXQpCit7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVy
biBOVUxMOworICAgIAorI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFNWR0VsZW1lbnRJ
bnN0YW5jZSBzdXBwb3J0cyBib3RoIHRvU1ZHRWxlbWVudEluc3RhbmNlIGFuZCB0b05vZGUgc2lu
Y2Ugc28gbXVjaCBtb3VzZSBoYW5kbGluZyBjb2RlIGRlcGVuZHMgb24gdG9Ob2RlIHJldHVybmlu
ZyBhIHZhbGlkIG5vZGUuCisgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSA9IHRhcmdl
dC0+dG9TVkdFbGVtZW50SW5zdGFuY2UoKTsKKyAgICBpZiAoaW5zdGFuY2UpCisgICAgICAgIHJl
dHVybiB0b0dET00oZXhlYywgaW5zdGFuY2UpOworI2VuZGlmCisjZW5kaWYKKworICAgIE5vZGUq
IG5vZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICByZXR1cm4g
dG9HRE9NKG5vZGUpOworICAgIAorICAgIGlmIChYTUxIdHRwUmVxdWVzdCogeGhyID0gdGFyZ2V0
LT50b1hNTEh0dHBSZXF1ZXN0KCkpCisgICAgICAgIC8vIFhNTEh0dHBSZXF1ZXN0IGlzIGFsd2F5
cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSBjYWNoZURPTU9iamVj
dCgpIGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9i
amVjdCh4aHIpOworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxvYWQgPSB0YXJn
ZXQtPnRvWE1MSHR0cFJlcXVlc3RVcGxvYWQoKSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTSh1cGxv
YWQpOworICAgIAorI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgaWYg
KERPTUFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gdGFyZ2V0LT50b0RPTUFwcGxpY2F0aW9uQ2Fj
aGUoKSkKKyAgICAgICAgLy8gRE9NQXBwbGljYXRpb25DYWNoZSBpcyBhbHdheXMgY3JlYXRlZCB2
aWEgR0RPTSwgc28gd2UgZG9uJ3QgbmVlZCB0byB1c2UgY2FjaGVET01PYmplY3QoKSBoZXJlLgor
ICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoY2FjaGUp
OworI2VuZGlmCisKKyAgICAvLyBUaGVyZSBhcmUgdHdvIGtpbmRzIG9mIEV2ZW50VGFyZ2V0czog
RXZlbnRUYXJnZXROb2RlIGFuZCBYTUxIdHRwUmVxdWVzdC4KKyAgICAvLyBJZiBTVkcgc3VwcG9y
dCBpcyBlbmFibGVkLCB0aGVyZSBpcyBhbHNvIFNWR0VsZW1lbnRJbnN0YW5jZS4KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlVMTDsKK30gICAKKworZ3BvaW50ZXIgdG9H
RE9NKEV2ZW50VGFyZ2V0Tm9kZSogdGFyZ2V0KQoreworICAgIGlmICghdGFyZ2V0KQorICAgICAg
ICByZXR1cm4gTlVMTDsKKyAgICAKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0LT50b05vZGUoKTsK
KyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsKKyAgICAKKyAgICBy
ZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PEV2ZW50VGFyZ2V0Kj4odGFyZ2V0KSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21E
T01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9i
amVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpZm5kZWYgX19HZG9tRE9NT2JqZWN0X0hfXwor
I2RlZmluZSBfX0dkb21ET01PYmplY3RfSF9fCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNp
bmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0IEdkb21ET01PYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbURPTU9iamVjdENsYXNzIEdkb21ET01PYmplY3RDbGFzczsKKworI2RlZmluZSBHRE9NX1RZ
UEVfRE9NX09CSkVDVCAgICAgICAgICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9ET01fT0JKRUNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RB
TkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0KSkKKyNk
ZWZpbmUgR0RPTV9ET01fT0JKRUNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNT
X0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3Mp
KQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9N
X0lTX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VU
X0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBF
X0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RE9NT2JqZWN0UHJpdmF0ZSBHZG9tRE9NT2JqZWN0UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRE9N
T2JqZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21ET01PYmpl
Y3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgeworICAg
IEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9t
X2RvbV9vYmplY3RfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9t
X29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRoaXopOworCitHX0VORF9E
RUNMUworCisjZW5kaWYgLyogX19HZG9tRE9NT2JqZWN0X0hfXyAqLworCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACisjaWZuZGVmIF9f
RE9NT2JqZWN0X2hfXworI2RlZmluZSBfX0RPTU9iamVjdF9oX18KKworLy8gbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBHRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5HRE9N
T2JqZWN0KCkge30KKyAgICB2aXJ0dWFsIGludCBnZXRfZ29ial90eXBlKCkgPSAwOworfTsKKwor
Ly8gfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBUSElTIEZJTEUg
SVMgREVSSVZFRCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBrZWVw
aW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAq
IGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICog
Z2VuZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlu
cHV0LgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2lmbmRlZiBHRE9NSFRNTEVsZW1lbnRX
cmFwcGVyRmFjdG9yeV9oCisjZGVmaW5lIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gK
KworI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTm9kZS5oIgorCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7CisK
KyAgICBHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+KTsKKworfQorIAorI2VuZGlmIC8vIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
OTEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0
ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAw
NyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgR2RvbURPTUJpbmRpbmdfaAorI2RlZmluZSBH
ZG9tRE9NQmluZGluZ19oCisKKyNpbmNsdWRlIDxranMvaW50ZXJwcmV0ZXIuaD4KKyNpbmNsdWRl
IDxranMvbG9va3VwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRl
ICJHZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbU5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgQXRvbWlj
U3RyaW5nOworICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNzIEV2ZW50OworICAgIGNsYXNz
IEZyYW1lOworICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgTm9kZTsKKyAgICBjbGFzcyBTdHJp
bmc7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGNsYXNzIFNWR0VsZW1lbnQ7CisjZW5kaWYKKwor
ICAgIGNsYXNzIEdET01TY3JpcHRJbnRlcnByZXRlciB7CisgICAgcHVibGljOgorICAgICAgICBz
dGF0aWMgdm9pZCogZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisgICAgICAgIHN0
YXRpYyB2b2lkKiBwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBHRE9NT2JqZWN0Kik7
CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUp
OworCisgICAgICAgIHN0YXRpYyB2b2lkKiBnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQq
LCBOb2RlKik7CisgICAgICAgIHN0YXRpYyB2b2lkKiBwdXRET01Ob2RlRm9yRG9jdW1lbnQoRG9j
dW1lbnQqLCBOb2RlKiwgR0RPTU5vZGUqIG5vZGVXcmFwcGVyKTsKKyAgICAgICAgc3RhdGljIHZv
aWQgZm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSopOworICAgICAgICBz
dGF0aWMgdm9pZCBmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50Kik7CisJCSNp
ZiAwCisgICAgICAgIHN0YXRpYyB2b2lkIHVwZGF0ZURPTU5vZGVEb2N1bWVudChOb2RlKiwgRG9j
dW1lbnQqIG9sZERvYywgRG9jdW1lbnQqIG5ld0RvYyk7CisgICAgICAgIHN0YXRpYyB2b2lkIG1h
cmtET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50Kik7CisJCSNlbmRpZgorICAgIH07CisKKyAg
ICAvLyBSZXRyaWV2ZSBmcm9tIGNhY2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBh
IERPTSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2Jq
PiBpbmxpbmUgdm9pZCogY2FjaGVET01PYmplY3QoRE9NT2JqKiBkb21PYmopCisgICAgeworICAg
ICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4u
LiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRE
T01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIEdET01P
YmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaik7CisJCWRvbU9iai0+cmVmKCk7Cisg
ICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChkb21PYmos
IHJldCk7CisgICAgfQorCisjaWYgRU5BQkxFKFNWRykKKyAgICAvLyBSZXRyaWV2ZSBmcm9tIGNh
Y2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBhbiBTVkcgRE9NIG9iamVjdC4KKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlubGluZSB2b2lkKiBj
YWNoZVNWR0RPTU9iamVjdChET01PYmoqIGRvbU9iaiwgU1ZHRWxlbWVudCogY29udGV4dCkKKyAg
ICB7CisgICAgICAgIGlmICghZG9tT2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhY
WCBobW1tLi4uICovCisgICAgICAgIGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OmdldERPTU9iamVjdChkb21PYmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAg
ICAgR0RPTU9iamVjdCogcmV0ID0gbmV3IEdkb21ET01PYmooZG9tT2JqLCBjb250ZXh0KTsKKwkJ
ZG9tT2JqLT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0
RE9NT2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gR2RvbURPTUJpbmRpbmdfaApJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2Vu
bmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuCisgKi8KKworI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNjczIEBACisjCisjIENvcHlyaWdodCAoQykgMjAwOCBM
dWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorIyBDb3B5cmlnaHQg
KEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyMgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JHT2JqZWN0OworCisjIERlZmF1bHQgTGlj
ZW5jZSBUZW1wbGF0ZXMKK215ICRsaWNlbmNlVGVtcGxhdGUgPSA8PCAiRU9GIjsKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbFxAbGtj
bC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBcQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCitFT0YKKworbXkgJWltcGxJ
bmNsdWRlcyA9ICgpOworbXkgJWhkckluY2x1ZGVzID0gKCk7CitteSAlaGRyUHJvcEluY2x1ZGVz
ID0gKCk7CitteSAlaW1wbFR5cGVkZWZzID0gKCk7CisKKyMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgor
c3ViIG5ldworeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkcmVmZXJlbmNlID0g
eyB9OworCisgICAgJGNvZGVHZW5lcmF0b3IgPSBzaGlmdDsKKyAgICAkb3V0cHV0RGlyID0gc2hp
ZnQ7CisKKyAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKKyAgICByZXR1cm4gJHJlZmVy
ZW5jZTsKK30KKworc3ViIGZpbmlzaAoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKK30KKwor
IyBQYXJhbXM6ICdkb21DbGFzcycgc3RydWN0CitzdWIgR2VuZXJhdGVJbnRlcmZhY2UKK3sKKyAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkg
JGRlZmluZXMgPSBzaGlmdDsKKworICAgIG15ICRuYW1lID0gJGRhdGFOb2RlLT5uYW1lOworCisg
ICAgcHJpbnQgIiRuYW1lXG4iOworCisgICAgJG9iamVjdC0+R2VuZXJhdGUoJGRhdGFOb2RlKTsK
KworICAgICMgV3JpdGUgY2hhbmdlcworICAgIG15ICRmbmFtZSA9ICJHZG9tXyIgLiAkbmFtZTsg
I2RlY2FtZWxpemUoJG5hbWUpOworICAgICRmbmFtZSA9fiBzL18vL2c7CisgICAgJG9iamVjdC0+
V3JpdGVEYXRhKCRmbmFtZSk7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAor
c3ViIEdlbmVyYXRlTW9kdWxlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRk
YXRhTm9kZSA9IHNoaWZ0OworCisgICAgJG1vZHVsZSA9ICRkYXRhTm9kZS0+bW9kdWxlOworfQor
CitzdWIgQ2xzVG9HT2JqVHlwZQoreworICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICBy
ZXR1cm4gdWMoZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSkKK30KKworc3ViIEdldFBhcmVudENsYXNz
TmFtZQoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgIyA/PyBxdWU/PworICAg
ICNyZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0g
aWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAg
cmV0dXJuICJHZG9tRE9NT2JqZWN0IiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAg
ICByZXR1cm4gIkdkb20iIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+
cGFyZW50cygwKSk7Cit9CitzdWIgR2V0UGFyZW50R09ialR5cGUKK3sKKyAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR0RPTV9UWVBFX0RPTV9P
QkpFQ1QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiR0RPTV9U
WVBFXyIgLiBDbHNUb0dPYmpUeXBlKCRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5v
ZGUtPnBhcmVudHMoMCkpKTsKK30KKworCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6
Q2FtZWxDYXNlIDAuMDEKK3N1YiBjYW1lbGl6ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAg
am9pbignJywgbWFweyB1Y2ZpcnN0ICRfIH0gc3BsaXQoLyg/PD1bQS1aYS16XSlfKD89W0EtWmEt
el0pfFxiLywgJHMpKTsKK30KKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVs
Q2FzZSAwLjAxCitzdWIgZGVjYW1lbGl6ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAgJHMg
PX4gc3soW15hLXpBLVpdPykoW0EtWl0qKShbQS1aXSkoW2Etel0/KX17CisgICAgICAgIG15ICRm
YyA9IHBvcygkcyk9PTA7CisgICAgICAgIG15ICgkcDAsJHAxLCRwMiwkcDMpID0gKCQxLGxjJDIs
bGMkMywkNCk7CisgICAgICAgIG15ICR0ID0gJHAwIHx8ICRmYyA/ICRwMCA6ICdfJzsKKyAgICAg
ICAgJHQgLj0gJHAzID8gJHAxID8gIiR7cDF9XyRwMiRwMyIgOiAiJHAyJHAzIiA6ICIkcDEkcDIi
OworICAgICAgICAkdDsKKyAgICB9Z2U7CisgICAgJHM7Cit9CisKK3N1YiBHZXRIZHJOYW1lCit7
CisgICAgICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsK
KworICAgIHJldHVybiAiR2RvbSRuYW1lIjsKK30KKworc3ViIEdldENsYXNzTmFtZQoreworICAg
ICAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAg
ICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRHSW5jbHVkZUhkcgoreworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0SGRyTmFtZSgkdHlwZSk7Cisg
ICAgICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFtZSgkdHlwZSkpOworCisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0
eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJzaG9ydCI7Cisg
ICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAiIiBp
ZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImRvdWJs
ZSI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICBy
ZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAgIHJldHVybiAiIiBp
ZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBl
cSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRE9NVGltZVN0
YW1wIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsKKyAg
ICAgICAgcmV0dXJuICJSYW5nZS5oIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAg
IHJldHVybiAiR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiBpZiAkdHlwZSBlcSAiRE9N
T2JqZWN0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsK
KyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBE
T00gY2xhc3Mgd3JhcHBlcgorICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBl
IGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCIg
aWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0
LmgiIGlmICR0eXBlIGVxICJmbG9hdCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5o
IiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5o
IiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lLmgiOworfQorCisjIHJl
dHVybnMgMSBpZiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGdvYmplY3Qgd3JhcHBlciBhcm91bmQgdGhl
IHJldHVybiByZXN1bHQKK3N1YiBJc0dET01DbGFzc1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNo
aWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRXZl
bnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJib29s
ZWFuIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJz
aG9ydCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJl
dHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJpbnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9CisKK3N1
YiBHZXRQcm9wR1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRuYW1lID0g
R2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5nIiBpZiAkdHlwZSBlcSAi
RE9NU3RyaW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAg
IHJldHVybiAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAg
cmV0dXJuICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAiYm9vbGVh
biIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hhciIgaWYgJHR5cGUgZXEg
ImNoYXIiOworICAgIHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVy
biAiaW50IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAidWNoYXIiIGlmICR0eXBl
IGVxICJ1Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOwor
ICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICByZXR1cm4gInVpbnQiIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWludDY0IiBpZiAkdHlwZSBl
cSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25l
ZCBzaG9ydCI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBY
WFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gIm9iamVjdCI7Cit9CisK
K3N1YiBHZXRHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1l
ID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0
Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2Rl
ICoiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisgICAgICAgIHJldHVybiAiY29uc3QgZ2No
YXIgKiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiZ2Zsb2F0ICIg
aWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpSYW5nZTo6Q29t
cGFyZUhvdyAiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJuICJnZG91
YmxlICIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAiZ2Jvb2xlYW4gIiBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJldHVybiAiZ2NoYXIgIiBpZiAkdHlwZSBl
cSAiY2hhciI7CisgICAgICAgIHJldHVybiAiZ2xvbmcgIiBpZiAkdHlwZSBlcSAibG9uZyI7Cisg
ICAgICAgIHJldHVybiAiZ3Nob3J0ICIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0
dXJuICJndWNoYXIgIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgICAgICByZXR1cm4gImd1aW50
ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJnaW50ICIgaWYgJHR5
cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiZ3VpbnQgIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgaW50IjsKKyAgICAgICAgcmV0dXJuICJndWxvbmcgIiBpZiAkdHlwZSBlcSAidW5zaWduZWQg
bG9uZyI7CisgICAgICAgIHJldHVybiAiZ3VpbnQ2NCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIGxvbmciOworICAgICAgICByZXR1cm4gImd1c2hvcnQgIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9y
IjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAgcmV0dXJuICJ2b2lk
IiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lICoiOworfQorCitzdWIg
Z2V0SW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRpbmNsdWRlSGRy
ID0gR2V0R0luY2x1ZGVIZHIoJHR5cGUpOworICAgIGlmICgkaW5jbHVkZUhkcikgeworICAgICAg
ICBpZiAoJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgcmV0dXJuICJHZG9t
RXZlbnRUYXJnZXROb2RlLmgiOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkdHlwZSBlcSAi
RE9NT2JqZWN0IikgeworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJv
bSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgIHJldHVybiAiR2RvbUNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAkaW5jbHVk
ZUhkcjsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBhZGRQcm9w
SW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNI
ZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgICRoZHJQcm9wSW5jbHVk
ZXN7JGhkcn0gPSAxOworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAg
ICAgICAgICAgJGhkclByb3BJbmNsdWRlc3siUHJpdmF0ZSIuJGhkcn0gPSAxOworICAgICAgICAg
ICAgJGhkclByb3BJbmNsdWRlc3siUHJpdmF0ZUludCIuJGhkcn0gPSAxOworICAgICAgICB9Cisg
ICAgfQorCit9CisKK3N1YiBhZGRJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisg
ICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAg
ICAgICAgJGhkckluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICB9CisKK30KKworc3ViIGFkZEluY0Jv
ZHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigk
dHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3skaGRy
fSA9IDE7CisgICAgfQorfQorCitzdWIgR2V0UHJpdkZuCit7CisgICAgbXkgJGludGVyZmFjZU5h
bWUgPSBzaGlmdDsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gc2hpZnQ7CisgICAgbXkgJHJl
cyA9IHNoaWZ0OworICAgIG15ICRwYXJtID0gc2hpZnQ7CisKKyAgICBpZiAoJGludGVyZmFjZU5h
bWUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICByZXR1cm4gIldlYkNvcmU6OkV2ZW50VGFy
Z2V0Tm9kZSAqICRyZXMgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUqPihn
ZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKHNlbGYpKTsiOworICAgIH0KKyAgICBy
ZXR1cm4gIldlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiAkcmVzID0gKCR7bGNhc2VfaWZhY2Vu
YW1lfV9nZXRfcHJpdmF0ZSgkcGFybSkpOyI7Cit9CisKK3N1YiBza2lwUHJvcFRlbXBvcmFyaWx5
Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkcHJvcF90eXBlID0gc2hpZnQ7CisK
KyAgICAjIHNraXAgTWVkaWFMaXN0CisgICAgaWYgKCRwcm9wX3R5cGUgZXEgInN0eWxlc2hlZXRz
OjpNZWRpYUxpc3QiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICNpZiAoJHBy
b3BfdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQor
CisgICAgIyBza2lwIENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uCisgICAgaWYgKCRwcm9wX3R5cGUg
ZXEgIkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9w
X3R5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAg
ICAjfQorCisgICAgIyBza2lwIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCisgICAgI2lmICgk
cHJvcF90eXBlIGVxICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJl
dHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgRXZlbnRMaXN0ZW5lcgorICAgICNpZiAoJHBy
b3BfdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9
CisKKyAgICAjIHNraXAgRE9NV2luZG93CisgICAgI2lmICgkcHJvcF90eXBlIGVxICJET01XaW5k
b3ciKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIENvbnN0cnVj
dG9ycyAod2hhdGV2ZXIgdGhleSBhcmUpIGZvciBub3cuCisgICAgaWYgKCRwcm9wX3R5cGUgPX4g
L0NvbnN0cnVjdG9yJC8pIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBjYW52
YXMyZC4uLi4KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiY3VzdG9tIikgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQXJyYXkiKSB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGlmICgkcHJvcF90eXBlIGVxICJET01UaW1lU3RhbXAi
KSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgVE9ETzogU1ZHCisgICAgaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1NW
R0FuaW1hdGVkVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJl
dHVybiAwOworfQorCitzdWIgVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbgoreworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXBwZWQgb3V0IENhbnZhc1BpeGVsQXJyYXkgLSBz
ZWUgSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBmb3Igd2h5LgorICAgIHJldHVybiAxIGlm
ICR0eXBlIGVxICJOb2RlIiBvciAkdHlwZSBlcSAiRG9jdW1lbnQiIG9yICR0eXBlIGVxICJIVE1M
Q29sbGVjdGlvbiIgb3IgJHR5cGUgZXEgIlNWR1BhdGhTZWciIG9yICR0eXBlIGVxICJTdHlsZVNo
ZWV0IiBvciAkdHlwZSBlcSAiQ1NTUnVsZSIgb3IgJHR5cGUgZXEgIkNTU1ZhbHVlIiBvciAkdHlw
ZSBlcSAiRXZlbnQiIG9yICR0eXBlIGVxICJFbGVtZW50IiBvciAkdHlwZSBlcSAiVGV4dCI7Cisg
ICAgcmV0dXJuIDA7Cit9CisKKworIyBHZW5lcmF0ZSBoZWFkZXIgYW5kIGltcGwKK3N1YiBHZW5l
cmF0ZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlm
dDsKKworICAgIG15ICRoYXNMZWdhY3lQYXJlbnQgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICBteSAkaGFzUmVhbFBhcmVudCA9IEB7JGRhdGFO
b2RlLT5wYXJlbnRzfSA+IDA7CisgICAgbXkgJGhhc1BhcmVudCA9ICRoYXNMZWdhY3lQYXJlbnQg
fHwgJGhhc1JlYWxQYXJlbnQ7CisgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9IEdldFBhcmVudENs
YXNzTmFtZSgkZGF0YU5vZGUpOworICAgIG15ICRwYXJlbnRHT2JqVHlwZSA9IEdldFBhcmVudEdP
YmpUeXBlKCRkYXRhTm9kZSk7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5h
bWU7CisgICAgbXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7Cisg
ICAgbXkgJGhkck5hbWUgPSBHZXRIZHJOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKworICAgICMgQWRk
IHRoZSBkZWZhdWx0IGltcGwgaGVhZGVyIHRlbXBsYXRlCisgICAgQGNQcmVmaXggPSBzcGxpdCgi
XHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICBwdXNoKEBjUHJlZml4LCAiXG4iKTsKKworICAg
ICRpbXBsSW5jbHVkZXN7IkdET01CaW5kaW5nLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3si
JGhkck5hbWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlJHtoZHJOYW1lfS5o
In0gPSAxOworCisgICAgbXkgJHBhcmVudEludGVyZmFjZU5hbWUgPSAiRE9NT2JqZWN0IjsKKyAg
ICBteSAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICBteSAkcGFyZW50SGRy
TmFtZSA9ICJHZG9tRE9NT2JqZWN0IjsKKyAgICBpZiAoJHBhcmVudENsYXNzTmFtZSBuZSAiR09i
amVjdCIpCisgICAgeworICAgICAgICAkcGFyZW50SW50ZXJmYWNlTmFtZSA9IHN1YnN0cigkcGFy
ZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgaWYgKCRwYXJlbnRJbnRlcmZhY2VOYW1lIG5lICJE
T01PYmplY3QiKSB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NIi5zdWJz
dHIoJHBhcmVudENsYXNzTmFtZSwgNCk7CisgICAgICAgICAgICAkcGFyZW50SGRyTmFtZSA9IEdl
dEhkck5hbWUoJHBhcmVudEludGVyZmFjZU5hbWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UK
KyAgICAgICAgeworICAgICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTU9iamVjdCI7
CisgICAgICAgIH0KKyAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0g
PSAxOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0g
PSAxOworICAgICAgICAkaGRySW5jbHVkZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAg
ICAgICAgIyRoZHJJbmNsdWRlc3siUHJpdmF0ZSR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMDsKKyAg
ICB9CisKKyAgICAjIFRPRE8gLSBtYWtlIHRoZXNlIG9ubHkgaW5jbHVkZSB3aGVyZSBuZWVkZWQs
IGxpa2V3aXNlIHRoZQorICAgICMgZnVuY3Rpb24gZGVjbGFyYXRpb25zIHRvR0RPTSwgdG9vCisg
ICAgJGltcGxJbmNsdWRlc3siTm9kZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkVsZW1l
bnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDU1NWYWx1ZS5oIn0gPSAxOworICAgICRp
bXBsSW5jbHVkZXN7IkNTU1J1bGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJIVE1MQ29s
bGVjdGlvbi5oIn0gPSAxOworICAgICMkaW1wbEluY2x1ZGVzeyJTVkdQYXRoU2VnLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siU3R5bGVTaGVldC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVk
ZXN7IkV2ZW50LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ2FudmFzUGl4ZWxBcnJheS5o
In0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkRPTVdpbmRvdy5oIn0gPSAxOworICAgICRpbXBs
SW5jbHVkZXN7IlRleHQuaCJ9ID0gMTsKKworICAgICMgWFhYIFRPRE86IG1ha2UgdGhpcyBvcHRp
b25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3YXkuCisgICAgbXkg
JGhhY2tEZWNscyA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVy
IHRvR0RPTShOb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIG5vZGUp
OworICAgIGdwb2ludGVyIHRvR0RPTShDU1NSdWxlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dE
T00oRWxlbWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBub2RlKTsK
KyAgICBncG9pbnRlciB0b0dET00oSFRNTENvbGxlY3Rpb24qIG5vZGUpOyAKKyAgICAvL2dwb2lu
dGVyIHRvR0RPTShTVkdQYXRoU2VnKiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKFN0eWxl
U2hlZXQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXROb2RlKiBub2Rl
KTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0KiBub2RlKTsgCisgICAgZ3BvaW50
ZXIgdG9HRE9NKEV2ZW50KiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKENhbnZhc1BpeGVs
QXJyYXkqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRE9NV2luZG93KiBub2RlKTsgCisg
ICAgZ3BvaW50ZXIgdG9HRE9NKFRleHQqIG5vZGUpOyAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJGhhY2tEZWNscyk7CisKKyAgICAjIFhYWCBUT0RP
OiBtYWtlIHRoaXMgb3B0aW9uYWwgb3IgaW4gYSBoZWFkZXIgZmlsZS4gIG9yIGZpbmQgYSBiZXR0
ZXIgd2F5LgorICAgIG15ICRzdHJpbmdDb252ZXJ0ID0gPDwgIkVPRiI7CitjbGFzcyBHU3RyaW5n
Q29udmVydCB7CisgICAgcHVibGljOgorICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAgICBHU3Ry
aW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChz
LnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6S1VSTCBjb25z
dCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7IH0KKyAg
ICBHU3RyaW5nQ29udmVydChjb25zdCBLSlM6OlVTdHJpbmcgJiBzKSB7IG1fc3RyID0gZ19zdHJk
dXAocy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3Jl
OjpBdG9taWNTdHJpbmcgY29uc3QmcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7IH0KK307CisKK0VPRgorCisgICAgcHVzaChAY0JvZHksICRzdHJpbmdDb252
ZXJ0KTsKKworICAgIHB1c2goQGNCb2R5LCAibmFtZXNwYWNlIFdlYkNvcmUge1xuIik7CisKKyAg
ICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQT0RUeXBlIGZsYWcK
KyAgICBteSAkcG9kVHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlBPRFR5
cGUifTsKKyAgICBteSAkcGFzc1R5cGUgPSAkcG9kVHlwZSA/ICJKU1NWR1BPRFR5cGVXcmFwcGVy
PCRwb2RUeXBlPioiIDogIiRpbnRlcmZhY2VOYW1lKiI7CisKKyAgICBpZiAoJHtpbnRlcmZhY2VO
YW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01hbnVhbFRvSlNJbXBsZW1l
bnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAg
ICAgICAjICAgIHB1c2goQGNCb2R5LCAiS0pTOjpKU1ZhbHVlKiB0b0pTKEtKUzo6RXhlY1N0YXRl
KiBleGVjLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogb2JqLCBTVkdFbGVtZW50KiBj
b250ZXh0KVxuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBh
cmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICAgcHVzaChAY0JvZHksICJL
SlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMsICRwYXNzVHlwZSBvYmosIFNW
R0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAgICAgICBw
dXNoKEBjQm9keSwgImdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjokcGFzc1R5cGUgb2JqKVxuIik7
CisgICAgICAgICN9CisKKyAgICAgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKyAgICAgICAgI2lm
ICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBjYWNo
ZVNWR0RPTU9iamVjdDxKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiwgJGNsYXNzTmFtZSwg
JHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQpO1xuIik7CisgICAgICAg
ICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFt
ZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gY2FjaGVTVkdET01P
YmplY3Q8JGltcGxDbGFzc05hbWUsICRjbGFzc05hbWUsICR7Y2xhc3NOYW1lfVByb3RvdHlwZT4o
ZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBXZWJDb3JlOjpjYWNoZURPTU9iamVjdDxXZWJDb3Jl
OjokaW50ZXJmYWNlTmFtZSwgR0RPTSRpbnRlcmZhY2VOYW1lPihvYmopO1xuIik7CisgICAgICAg
ICN9CisgICAgICAgIHB1c2goQGNCb2R5LCAifVxuIik7CisgICAgfQorCisgICAgcHVzaChAY0Jv
ZHksICJ9IC8qIG5hbWVzcGFjZSBXZWJDb3JlICovIFxuIik7CisgICAgbXkgJGltcGxDb250ZW50
ID0gIiI7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNCb2R5LCAidXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiZXh0ZXJuIFwiQ1wiIHtcblxuIik7Cisg
ICAgcHVzaChAY0JvZHksICIjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0
KHN0cikubV9zdHIpXG4iKTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0
ZQorICAgIEBoUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgICAg
ICNwdXNoKEBoUHJlZml4LCAiXG4iKTsKKworICAgICMgSGVhZGVyIGd1YXJkCisgICAgICAgIG15
ICRndWFyZCA9ICJfXyIgLiAkY2xhc3NOYW1lIC4gIl9IX18iOworCisgICAgbXkgJGNsc0NhcHMg
PSBzdWJzdHIoQ2xzVG9HT2JqVHlwZSgkY2xhc3NOYW1lKSwgNSk7CisgICAgbXkgJGxjYXNlX2lm
YWNlbmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKTsKKyAgICAjbXkg
JHBhcmVudENsc0NhcHMgPSAiR0RPTV8iIC4gQ2xzVG9HT2JqVHlwZSgkcGFyZW50SW50ZXJmYWNl
TmFtZSk7CisKKyAgICBAaFByZWZpeEd1YXJkID0gPDwgIkVPRiI7CisjaWZuZGVmICRndWFyZAor
I2RlZmluZSAkZ3VhcmQKK0VPRgorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitHX0JF
R0lOX0RFQ0xTCisKK0VPRgorCisgICAgcHVzaChAaEJvZHlQcmUsICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworI2RlZmluZSBHRE9NX1RZUEVfJHtjbHND
YXBzfSAgICAgICAgICAgICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV8ke2Nsc0NhcHN9KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NB
U1QoKG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX0pKQorI2RlZmluZSBH
RE9NXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgo
a2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICRjbGFzc05hbWUpQ2xhc3MpCisjZGVmaW5l
IEdET01fSVNfJHtjbHNDYXBzfShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9U
WVBFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdET01fSVNfJHtjbHND
YXBzfV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9N
X1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9HRVRfQ0xBU1Mob2Jq
KSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfJHtjbHNDYXBz
fSwgJHtjbGFzc05hbWV9Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9UHJp
dmF0ZSAke2NsYXNzTmFtZX1Qcml2YXRlOworCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSB7CisgICAg
JHtwYXJlbnRDbGFzc05hbWV9IHBhcmVudF9pbnN0YW5jZTsKKworICAgICR7Y2xhc3NOYW1lfVBy
aXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfUNsYXNzIHsKKyAgICBHT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorJHtsY2FzZV9p
ZmFjZW5hbWV9X2dldF90eXBlICh2b2lkKTsKKworRU9GCisKKyAgICBwdXNoKEBoQm9keSwgJGlt
cGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2lmbmRlZiAke2d1
YXJkfV9QUk9QXworI2RlZmluZSAke2d1YXJkfV9QUk9QXworRU9GCisKKyAgICBwdXNoKEBoQm9k
eVByb3BQcmUsICRpbXBsQ29udGVudCk7CisKKyAgICBwdXNoKEBoQm9keVByb3AsICJHX0JFR0lO
X0RFQ0xTXG4iKTsKKworICAgICRoZHJQcm9wSW5jbHVkZXsiZ2xpYi1vYmplY3QuaCJ9ID0gMTsK
KyAgICAkaGRyUHJvcEluY2x1ZGV7IlByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9LmgifSA9IDE7
CisgICAgJGhkclByb3BJbmNsdWRleyJHRE9NT2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJ
bmNsdWRleyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8
PCAiRU9GIjsKKyNpZm5kZWYgJHtndWFyZH1fSU5UXworI2RlZmluZSAke2d1YXJkfV9JTlRfCisj
aW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50JHtwYXJlbnRIZHJO
YW1lfS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICIke2ludGVyZmFjZU5h
bWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVudCk7CisK
KyAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFzUGFyZW50
IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQg
IVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAg
ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2lu
dGVyIHRvR0RPTSgke2ludGVyZmFjZU5hbWV9KiBub2RlKTsKK30gLyogbmFtZXNwYWNlIFdlYkNv
cmUgKi8gCitFT0YKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworICAg
IH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19CRUdJTl9ERUNMU1xuIik7CisKKyAgICAj
Q2xhc3MgZGVjbGFyYXRpb24KKyAgICAjaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ci
KSB7CisgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiY2xhc3MgR0RPTSRpbnRlcmZhY2VO
YW1lIHtcbiIpOworICAgICN9IGVsc2UgeworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
Y2xhc3MgR0RPTSRpbnRlcmZhY2VOYW1lIDogcHVibGljICRwYXJlbnRHSWZhY2VOYW1lIHtcbiIp
OworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHR5cGVkZWYgJHBhcmVudEdJZmFj
ZU5hbWUgQmFzZTtcbiIpOworICAgICN9CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInB1Ymxp
YzpcbiIpOworCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBpbnQgZ2V0X2dvYmpfdHlw
ZSgpIHsgcmV0dXJuIEdET01fVFlQRV8ke2Nsc0NhcHN9OyB9XG4iKTsKKworICAgIG15ICRuZWVk
c1NWR0NvbnRleHQgPSAwOworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVy
bmFsLCAiICAgIEdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZh
Y2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4
dCIgOiAiIikgLiAiKTtcbiIpOworCisgICAgIyBEZXN0cnVjdG9yCisgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICB2aXJ0dWFsIH5HRE9NJGludGVyZmFjZU5hbWUoKTtcbiIpIGlmICghJGhh
c1BhcmVudCBvciAkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSBvciAkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IjsKKworICAgIGlmICghJGhhc1BhcmVudCB8fCAoJGludGVyZmFjZU5h
bWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5
cGU+KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxKU1NWR1BPRFR5cGVXcmFwcGVy
PCRwb2RUeXBlPiA+IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVl
ZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wbCgpIGNvbnN0IHsgcmV0
dXJuIG1faW1wbC5nZXQoKTsgfVxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0Lmdl
dCgpOyB9XG5cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRl
OlxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8U1ZH
RWxlbWVudD4gbV9jb250ZXh0O1xuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICBSZWZQdHI8JGltcGxDbGFzc05hbWUgPiBtX2ltcGw7XG4iKTsKKyAgICAgICAgI30g
ZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFdlYkNvcmU6OiRp
bnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG5cbiIp
OworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZh
Y2VOYW1lPiBtX2ltcGw7XG4iKTsKKyAgICAgICAgI30KKyAgICB9IGVsc2lmICgkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7CisgICAg
ICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGlt
cGwoKSBjb25zdFxuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAge1xuIik7
CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSo+KEJhc2U6OmltcGwoKSk7XG4iKTsKKyAgICAgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB9XG4iKTsKKyAgICB9CisgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIn07XG4iKTsKKworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBjQm9keSwg
IkdET00ke2ludGVyZmFjZU5hbWV9OjpHRE9NJGludGVyZmFjZU5hbWUoUGFzc1JlZlB0cjxXZWJD
b3JlOjokaW50ZXJmYWNlTmFtZT4gaW1wbCIgLiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0Vs
ZW1lbnQqIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiRE9NV2luZG93IikgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6bV9pbXBsKGltcGwp
XG4iKTsKKyAgICB9IGVsc2lmICgkaGFzUGFyZW50KSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIDogJHBhcmVudEdJZmFjZU5hbWUoaW1wbCIgLiAoJHBhcmVudE5lZWRzU1ZHQ29udGV4dCA/
ICIsIGNvbnRleHQiIDogIiIpIC4gIilcbiIpIGlmICgkaW50ZXJmYWNlTmFtZSBuZSAiRE9NV2lu
ZG93Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50
R0lmYWNlTmFtZSgpXG4iKSA7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9jb250ZXh0
KGNvbnRleHQpXG4iKSBpZiAkbmVlZHNTVkdDb250ZXh0OworICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICAsIG1faW1wbChpbXBsKVxuIik7CisgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ7XG4i
KTsKKyAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBp
ZiAoISRoYXNQYXJlbnQgb3IgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSkgeworICAg
ICAgICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VO
YW1lKClcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworCisgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgIG1faW1wbC5nZXQoKS0+ZGVyZWYoKTtcbiIpOworICAgICAgICBpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIk5vZGUiKSB7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBX
ZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1bWVudCht
X2ltcGwtPmRvY3VtZW50KCksIG1faW1wbC5nZXQoKSk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgICAgICMgICAgbXkgJGFuaW1h
dGVkVHlwZSA9ICRpbXBsQ2xhc3NOYW1lOworICAgICAgICAgICAgIyAgICAkYW5pbWF0ZWRUeXBl
ID1+IHMvU1ZHL1NWR0FuaW1hdGVkLzsKKworICAgICAgICAgICAgIyAgICAjIFNwZWNpYWwgY2Fz
ZSBmb3IgSlNTVkdOdW1iZXIKKyAgICAgICAgICAgICMgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5J
c1NWR0FuaW1hdGVkVHlwZSgkYW5pbWF0ZWRUeXBlKSBhbmQgJHBvZFR5cGUgbmUgImZsb2F0Iikg
eworICAgICAgICAgICAgIyAgICAgICAgcHVzaChAY0JvZHksICIgICAgSlNTVkdEeW5hbWljUE9E
VHlwZVdyYXBwZXJDYWNoZTwkcG9kVHlwZSwgJGFuaW1hdGVkVHlwZT46OmZvcmdldFdyYXBwZXIo
bV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICAgICAgIyAgICB9CisgICAgICAgICAgICAjfQor
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJl
dGVyOjpmb3JnZXRET01PYmplY3QobV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICB9CisKKyAg
ICAgICAgcHVzaChAY0JvZHksICJcbn1cblxuIik7CisgICAgfQorCisgICAgIyBEb2N1bWVudCBu
ZWVkcyBhIHNwZWNpYWwgZGVzdHJ1Y3RvciBiZWNhdXNlIGl0J3MgYSBzcGVjaWFsIGNhc2UgZm9y
IGNhY2hpbmcuIEl0IG5lZWRzCisgICAgIyBpdHMgb3duIHNwZWNpYWwgaGFuZGxpbmcgcmF0aGVy
IHRoYW4gcmVseWluZyBvbiB0aGUgY2FjaGluZyB0aGF0IE5vZGUgbm9ybWFsbHkgZG9lcy4KKyAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50IikgeworICAgICAgICBwdXNoKEBjQm9k
eSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOworICAg
ICAgICBwdXNoKEBjQm9keSwgIntcbiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmZvcmdldERPTU9iamVjdChzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4o
aW1wbCgpKSk7XG59XG5cbiIpOworICAgIH0KKworICAgICRpbXBsSW5jbHVkZXN7IiR7cGFyZW50
SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9Lmgi
fSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siR0RPTU9iamVjdC5oIn0gPSAxOworCisgICAgJGlt
cGxUeXBlZGVmc3siJGNsYXNzTmFtZSJ9ID0gMTsKKyAgICAkaW1wbFR5cGVkZWZzeyIke2NsYXNz
TmFtZX1DbGFzcyJ9ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0
L3dlYmtpdGRlZmluZXMuaD4KKyNpbmNsdWRlICJET01XaW5kb3cuaCIgLyogeXVrazogVE9ETyAt
IG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIk5vZGUuaCIgLyogeXVrazogVE9ETyAt
IG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIiAvKiB5dWtr
OiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5o
IiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFz
R3JhZGllbnQuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1
ZGUgIkNhbnZhc1N0eWxlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8K
KyNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgLyogeXVrazogVE9ETyAtIG1h
a2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0LmgiIC8q
IHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJHZG9tRXZlbnRU
YXJnZXROb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNs
dWRlICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0
aGlzIG9wdGlvbmFsIG9uIEV2ZW50VGFyZ2V0Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9
LmgiCisjaW5jbHVkZSAiJHtoZHJOYW1lfS5oIgorI2luY2x1ZGUgIlByaXZhdGUke2hkck5hbWV9
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludCR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5h
bWV9cHJvcHMuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJ1c3RyaW5nLmgiCisj
aW5jbHVkZSAiS1VSTC5oIgorCisjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1
ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisj
aW5jbHVkZSAiQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVk
ZSAiU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAid2Via2l0
bWFyc2hhbC5oIgorI2luY2x1ZGUgIkdkb21FdmVudC5oIgorCisKK0VPRgorCisgICAgcHVzaChA
Y0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
CisKKyR7aGFja0RlY2xzfQorCitHX0JFR0lOX0RFQ0xTCisKKyR7c3RyaW5nQ29udmVydH0KKwor
R19ERUZJTkVfVFlQRSgke2NsYXNzTmFtZX0sICR7bGNhc2VfaWZhY2VuYW1lfSwgJHtwYXJlbnRH
T2JqVHlwZX0pOworCisjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0KHN0
cikubV9zdHIpCisKKy8qCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgeworICAgIGNsYXNz
IFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKml0ZW07Cit9OyAgCisKKyNkZWZpbmUgR0RPTV8k
e2Nsc0NhcHN9X0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgo
b2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfVByaXZhdGUpKQorKi8KK0df
RU5EX0RFQ0xTCitXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1l
fV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJlcXVlc3QpCit7CitFT0YKKworICAgIHB1c2go
QGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAi
RU9GIjsKKyAgICBHRE9NJHtpbnRlcmZhY2VOYW1lfSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19j
YXN0PEdET00ke2ludGVyZmFjZU5hbWV9Kj4oZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdE
T01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3Jl
Ojoke2ludGVyZmFjZU5hbWV9Kj4ocmVzLT5pbXBsKCkpOworRU9GCisgICAgcHVzaChAY0JvZHlQ
cml2LCAkaW1wbENvbnRlbnQpOworCisgICAgIyBQcm9wZXJ0aWVzCisgICAgbXkgJGZ1bmN0aW9u
TmFtZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5hbWU7IAorICAgIFNLSVBQUk9QOiBmb3JlYWNoIG15
ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJv
cE5hbWUgPSBkZWNhbWVsaXplKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAg
IG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15
ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICRmdW5jdGlvblNpZyA9
ICIkY2xhc3NOYW1lICp0aGl6IjsKKyAgICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIi
fSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9
IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworCisgICAgICAgIGlmIChza2lw
UHJvcFRlbXBvcmFyaWx5KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBT
S0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGFkZFByb3BJbmNIZHIo
JHByb3BfdHlwZSk7CisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJvcCwgIldFQktJVF9BUEkgJHR5
cGVcbiRmdW5jdGlvbk5hbWVQcmVmaXgiIC4gIl9wcm9wX2dldF8iIC4gIiRwcm9wTmFtZSAoJGZ1
bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJvcCwgIldFQktJVF9B
UEkgdm9pZFxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3Bfc2V0XyIgLiAiJHByb3BOYW1l
ICgkZnVuY3Rpb25TaWcsICR0eXBlIiAuICJ2YWx1ZSk7XG5cbiIpOworICAgIH0KKworICAgICMg
UHJvcGVydGllcworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworfQorCitHX0JFR0lOX0RF
Q0xTCisKK2VudW0geworICAgIEJST1dTRVJfRVZFTlQsCisgICAgTEFTVF9TSUdOQUwKK307CisK
K3N0YXRpYyBndWludCBldmVudF9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKKworZW51
bSB7CisgICAgUFJPUF8wLAorRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQp
OworCisgICAgbXkgQHR4dF9pbnN0YWxsX3Byb3BzID0gKCk7CisgICAgbXkgQHR4dF9zZXRfcHJv
cHMgPSAoKTsKKyAgICBteSBAdHh0X2dldF9wcm9wcyA9ICgpOworCisgICAgbXkgJHByaXZfZm4g
PSBHZXRQcml2Rm4oJGludGVyZmFjZU5hbWUsICR7bGNhc2VfaWZhY2VuYW1lfSwgImdzZWxmIiwg
InNlbGYiKTsKKworICAgIG15ICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lk
ICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1
aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAgICAgICBHVmFsdWUgKiB2YWx1ZSwKKyAgICAg
ICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0g
KnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRj
aCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJv
cCk7CisKKyAgICBteSAkdHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xj
YXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9mbihHT2JqZWN0ICogb2JqZWN0LCBndWludCBw
cm9wX2lkLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1ZhbHVlICogdmFsdWUsCisgICAg
ICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICogcHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9
ICpzZWxmID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKyAgICBzd2l0
Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0eHRfc2V0X3By
b3ApOworCisgICAgU0tJUEVOVU06IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUt
PmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wX25hbWUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWU7CisgICAgICAgIG15ICRzZXRwcm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJGdldHByb3BfbmFtZV9mbiA9
ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRwcm9wX25hbWUpOworCisgICAgICAgIG15ICRw
cm9wTmFtZSA9IGRlY2FtZWxpemUoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRwcm9wQ2FwcyA9
IHVjKCRwcm9wTmFtZSk7CisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7Cisg
ICAgICAgIG15ICR7cHJvcEVudW19ID0gIlBST1BfJHtwcm9wQ2Fwc30iOworICAgICAgICBteSAk
e3Byb3BfZ3R5cGV9ID0gZGVjYW1lbGl6ZSgkcHJvcF90eXBlKTsKKyAgICAgICAgaWYgKCRwcm9w
X2d0eXBlIGVxICJldmVudF90YXJnZXQiKSB7CisgICAgICAgICAgICAkcHJvcF9ndHlwZSA9ICJl
dmVudF90YXJnZXRfbm9kZSI7CisgICAgICAgIH0KKyAgICAgICAgbXkgJHtwcm9wR1R5cGV9ID0g
dWMoJHByb3BfZ3R5cGUpOworICAgICAgICBteSAkbGNhc2VfZ3R5cGVuYW1lID0gImdkb21fIiAu
ICRwcm9wX2d0eXBlOworCisgICAgICAgIG15ICRjdXN0b20gPSAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsKKworICAgICAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0pIHsK
KyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxIGlm
ICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKyAgICAgICAgaWYgKHNraXBQcm9wVGVt
cG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVN
OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcHVzaChAY0JvZHlQcml2LCAiICAg
ICR7cHJvcEVudW19LFxuIik7CisKKyAgICAgICAgbXkgJGd0eXBlID0gR2V0UHJvcEdUeXBlKCRw
cm9wX3R5cGUpOworICAgICAgICBteSAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURBQkxFIjsK
KyAgICAgICAgbXkgJHdyaXRlYWJsZSA9ICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS87
CisgICAgICAgIG15ICRjb25zdCA9ICJyZWFkLW9ubHkgIjsKKyAgICAgICAgaWYgKCR3cml0ZWFi
bGUgJiYgJGN1c3RvbSkgeworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtb25seSAoZHVlIHRv
IGN1c3RvbSBmdW5jdGlvbnMgbmVlZGVkIGluIGdkb213ZWJraXQpIjsKKyAgICAgICAgICAgIG5l
eHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgISRjdXN0
b20pIHsKKyAgICAgICAgICAgICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBRFdSSVRFIjsKKyAg
ICAgICAgICAgICRjb25zdCA9ICJyZWFkLXdyaXRlICI7CisgICAgICAgIH0KKworICAgICAgICBt
eSAkX2d0eXBlID0gJGd0eXBlOworICAgICAgICBpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7Cisg
ICAgICAgICAgICAkX2d0eXBlID0gInVpbnQiOyAjIHl1ay4KKyAgICAgICAgfQorICAgICAgICBt
eSAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkgKGdfa2xhc3MsICR7cHJvcEVudW19LCAKKyAgICAgICAgICAgIGdfcGFyYW1f
c3BlY18ke19ndHlwZX0gKCIke3Byb3BOYW1lfSIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAg
ICAiJHtpbnRlcmZhY2VOYW1lfS4ke3Byb3BOYW1lfSIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICov
CisgICAgICAgICAgICAgICAgIiR7Y29uc3R9ICR7dHlwZX0gJHtpbnRlcmZhY2VOYW1lfS4ke3By
b3BOYW1lfSIsIC8qIGxvbmdlciAqLworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3By
b3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gIi8q
IFRPRE8hICRndHlwZSAqL1xuIjsKKworICAgICAgICBpZiAoJHdyaXRlYWJsZSkgeworCisgICAg
ICAgICAgICBteSAkb2sgPSAwOworICAgICAgICAgICAgbXkgJGNvbnZlcnRfZm4gPSAiIjsKKyAg
ICAgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAkY29u
dmVydF9mbiA9ICJXZWJDb3JlOjpTdHJpbmciOworICAgICAgICAgICAgICAgICRvayA9IDE7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJib29sZWFuIikgewor
ICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNY
WFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0
IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAgICAgICAgICAgICAg
JG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAg
ICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFgg
VE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHll
dAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVsb25nIikgeworICAgICAg
ICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9E
Tzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAor
ICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtp
bnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVj
dCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAg
ICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7Cisg
ICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVjaGFyIikgeworICAgICAgICAgICAgICAg
ICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAg
ICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICMgWFhYIFRP
RE8gLSBza2lwIExvY2F0aW9uCisgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkxv
Y2F0aW9uIikgeworICAgICAgICAgICAgICAgICRvayA9IDA7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICgkb2spIHsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3Bz
LCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAg
IHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGdzZWxmLT5zZXQke3NldHByb3BfbmFtZV9m
bn0oJHtjb252ZXJ0X2ZufShnX3ZhbHVlX2dldF8kZ3R5cGUgKHZhbHVlKSkiKTsKKworICAgICAg
ICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIsIGVjIikgaWYgQHskYXR0cmlidXRlLT5z
ZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAi
KTtcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAg
YnJlYWs7XG4gICAgfVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBw
dXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisK
KyAgICAgICAgbXkgJGV4Y2VwdGlvbiA9ICIiOworICAgICAgICBpZiAoQHskYXR0cmlidXRlLT5n
ZXR0ZXJFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgJGV4Y2VwdGlvbiA9ICJlYyI7CisgICAg
ICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgbXkgJGNvbnZlcnRfZm4gPSAi
IjsKKyAgICAgICAgbXkgJHBvc3RfY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkZG9uZSA9
IDA7CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICRjb252
ZXJ0X2ZuID0gIl9HX0dFVF9VVEY4KCI7CisgICAgICAgICAgICAkcG9zdF9jb252ZXJ0X2ZuID0g
IikiOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAg
ICAgICAgICAgICMkY29udmVydF9mbiA9ICJXVEY6OmdldFB0cigke2xjYXNlX2d0eXBlbmFtZX1f
Z2V0X3ByaXZhdGUoIjsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9IEdldFByaXZGbigkaW50
ZXJmYWNlTmFtZSwgJHtsY2FzZV9ndHlwZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworICAgICAg
ICAgICAgIyRjb252ZXJ0X2ZuID0gIiR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZShQYXNz
UmVmUHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4oIjsKKyAgICAgICAgICAgICMkcG9zdF9jb252
ZXJ0X2ZuID0gIikiOworICAgICAgICAgICAgbXkgJGRvbW9ialR5cGUgPSAiR0RPTSIuJHByb3Bf
dHlwZTsKKyAgICAgICAgICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgUGFz
c1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+IHB0ciA9IGdzZWxmLT4ke2dldHByb3BfbmFt
ZV9mbn0oJHtleGNlcHRpb259KTsKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0ICh2YWx1ZSwg
V2ViQ29yZTo6dG9HRE9NKHB0ci5nZXQoKSkpOworRU9GCisgICAgICAgICAgICBwdXNoKEB0eHRf
Z2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKyAgICAgICAgICAgICRkb25lID0gMTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICghJGRvbmUpIHsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRf
cHJvcHMsICIgICAgICAgIGdfdmFsdWVfc2V0XyRfZ3R5cGUgKHZhbHVlLCAke2NvbnZlcnRfZm59
Z3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pJHtwb3N0X2NvbnZlcnRfZm59
KTtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAg
ICAgYnJlYWs7XG4gICAgfVxuIik7CisKKyAgICAgICAgIyBpcyB0aGlzIF9lbnRpcmVseV8gbmVj
ZXNzYXJ5Pz8/CisgICAgICAgICMgY2FuIGl0IGJlIGRvbmUgd2l0aCBnZW5lcmljIGdfcGFyYW1f
c3BlY19ndHlwZQorICAgICAgICAjIGFuZCBnZXR0aW5nIGEgZmV3IHRoaW5ncywgaWdub3Jpbmcg
dGhlIG1pbi1tYXggZm9yIGV4YW1wbGU/CisgICAgICAgIGlmICgkZ3R5cGUgZXEgImludCIpIHsK
KyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAg
ICAgR19NSU5JTlQsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWElOVCwg
LyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgor
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAkdHh0
X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEZBTFNFLCAvKiBkZWZh
dWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19N
SU5GTE9BVCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYRkxPQVQsIC8q
IG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAgICAgICAgICAkdHh0X2lu
c3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlORE9VQkxFLCAgICAg
ICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhET1VCTEUsIC8qIG1heCAqLworICAg
ICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNp
ZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9
IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAg
ICAgICAgICBHX01BWFVJTlQ2NCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVsb25nIikg
eworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAg
ICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVTE9ORywgLyog
bWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxvbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgICAgICAgIC8q
IG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYTE9ORywgLyogbWF4ICovCisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0Yi
OworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBH
X01BWFVJTlQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0
ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAg
ICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAg
ICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQxNiwgLyogbWF4ICovCisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgInVjaGFyIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3Ag
PSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklOVDgsICAgICAgICAvKiBtaW4gKi8K
KyAgICAgICAgICAgICAgICBHX01BWElOVDgsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAs
ICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJj
aGFyIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5U
OCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VP
RgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1
bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR0RP
TV9UWVBFXyR7cHJvcEdUeXBlfSwgLyogZ29iamVjdCB0eXBlICovCitFT0YKKyAgICAgICAgfQor
ICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworICAg
ICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIChHUGFy
YW1GbGFncykke2dwYXJhbWZsYWd9KSk7ICAgICAgICAgICAgICAgICAgIAorCitFT0YKKyAgICAg
ICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKworCisgICAg
fQorCisgICAgcHVzaChAY0JvZHlQcml2LCAifTtcblxuIik7CisKKworICAgICR0eHRfZ2V0X3By
b3AgPSA8PCAiRU9GIjsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFM
SURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOwor
CisgICAgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdf
T0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywg
JHR4dF9zZXRfcHJvcCk7CisKKyAgICBteSAkdHh0X3NldF9nZXRfcHJvcHMgPSA8PCAiRU9GIjsK
KyAgICBjYXNlIFBST1BfQUdFOgorICAgICAgICBzZWxmLT5hZ2UgPSBnX3ZhbHVlX2dldF9pbnQg
KHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBST1BfQUdFOgorICAgICAgICBn
X3ZhbHVlX3NldF9pbnQodmFsdWUsIHNlbGYtPmFnZSk7CisgICAgICAgIGJyZWFrOworCisgICAg
ICAgICsgICBnX3ZhbHVlX2luaXQoJnBhcmFtc1swXSwgR19UWVBFX0ZST01fSU5TVEFOQ0Uob2Jq
ZWN0KSk7CisgICAgICAgICsgICBnX3ZhbHVlX3NldF9pbnN0YW5jZSgmcGFyYW1zWzBdLCAoZ3Bv
aW50ZXIpb2JqZWN0KTsKKworRU9GCisKKyAgICAjIFRPRE86IHdvcmsgb3V0IGlmIGl0J3MgYXBw
cm9wcmlhdGUgdG8gc3BsaXQgdGhpcyBpbnRvIG1hbnkgZGlmZmVyZW50CisgICAgIyBzaWduYWxz
IGUuZy4gImNsaWNrIiBldGMuCisgICAgbXkgJHR4dF9pbnN0YWxsX3NpZ25hbHMgPSAiIjsKKwor
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiBvcgorICAgICAgICAkaW50ZXJm
YWNlTmFtZSBlcSAiWE1MSHR0cFJlcXVlc3QiKSB7CisgICAgICAgICR0eHRfaW5zdGFsbF9zaWdu
YWxzID0gPDwgIkVPRiI7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2ln
bmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHJlcXVl
c3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19T
SUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHX1NJR05BTF9ERVRBSUxFRCAgKSwKKyAgICAgICAgMCwKKyAgICAgICAgTlVMTCwKKyAgICAg
ICAgTlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisg
ICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9C
T09MRUFOKTsKK0VPRgorICAgIH0KKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCitz
dGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemUoR09iamVjdCogb2JqZWN0KQor
eworICAgIC8qJHtjbGFzc05hbWV9KiByZXF1ZXN0ID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7
Ki8KKyAgICAvKiR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisg
ICAgCisgICAgLypHT2JqZWN0Q2xhc3MgKnBhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVr
IChnX3R5cGVfcGVla19wYXJlbnQgKCR7cGFyZW50R09ialR5cGV9KSk7Ki8KKworICAgIC8qIEZy
ZWUgYW55IG1lbW9yeSBvciBjbG9zZSBhbnkgZmlsZXMgKi8gCisKKyAgICAvKnBhcmVudF9jbGFz
cy0+IGZpbmFsaXplIChvYmplY3QpOyovCisKKyAgICBHX09CSkVDVF9DTEFTUygke2xjYXNlX2lm
YWNlbmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworQHR4dF9zZXRf
cHJvcHMKKworQHR4dF9nZXRfcHJvcHMKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9
X2NsYXNzX2luaXQoJHtjbGFzc05hbWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBHT2Jq
ZWN0Q2xhc3MgKmdfa2xhc3MgPSBHX09CSkVDVF9DTEFTUyAocmVxdWVzdENsYXNzKTsKKyAgICBn
X2tsYXNzLT5maW5hbGl6ZSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZTsKKyAgICBnX2ts
YXNzLT5zZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9mbjsK
KyAgICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9w
ZXJ0eV9mbjsKKyAgICAKK0B0eHRfaW5zdGFsbF9wcm9wcworCiskdHh0X2luc3RhbGxfc2lnbmFs
cworCisgICAgLypnX3R5cGVfY2xhc3NfcmVtb3ZlX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXpl
b2YoJHtjbGFzc05hbWV9UHJpdmF0ZSkpOyovCit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZh
Y2VuYW1lfV9pbml0KCR7Y2xhc3NOYW1lfSogcmVxdWVzdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1l
fVByaXZhdGUqIHByaXYgPSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUocmVxdWVzdCk7Cisg
ICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworRU9GCisKKyAgICBwdXNoKEBjQm9k
eVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2Rv
bSR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsK
KworI2lmbmRlZiAke2d1YXJkfV9QUklWXworI2RlZmluZSAke2d1YXJkfV9QUklWXworI2luY2x1
ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiJHtwYXJlbnRIZHJOYW1lfS5oIgorI2luY2x1
ZGUgIkdET01PYmplY3QuaCIKKy8qI2luY2x1ZGUgIlByaXZhdGUke3BhcmVudEhkck5hbWV9Lmgi
Ki8KKy8qR19CRUdJTl9ERUNMUyovCisvKmNsYXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX07
Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5
UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy9u
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdET00ke2ludGVyZmFjZU5hbWV9IDogcHVibGlj
ICR7cGFyZW50R0lmYWNlTmFtZX0geworCitwdWJsaWM6CisgICAgR0RPTSR7aW50ZXJmYWNlTmFt
ZX0oV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCkgOiAkcGFyZW50R0lmYWNlTmFtZX0o
aW1wbCkKKyAgICB7IGltcGwtPnJlZigpOyB9CisgICAgfkdET00ke2ludGVyZmFjZU5hbWV9KCkg
eyBtX2ltcGwtPmRlcmVmKCk7IH0KKworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGlt
cGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGw7IH0KKworCitwcml2YXRlOgorICAgIFdlYkNvcmU6
OiR7aW50ZXJmYWNlTmFtZX0gKm1faW1wbDsKK307CisKK0VPRgorCisgICAgICAgICNwdXNoKEBo
Qm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsK
Ky8vfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9
ICR7Y2xhc3NOYW1lfTsKKworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lm
YWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKworLypHX0VORF9E
RUNMUyovCisKKyNlbmRpZiAvKiAke2d1YXJkfV9QUklWXyAqLworCitFT0YKKworICAgICNyZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oKFdlYkNvcmU6
Ok5vZGUqKShyZXMpKTsKKyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOwor
CisgICAgICAgICNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAg
ICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAg
IyAgICAkaW1wbEluY2x1ZGVzeyJKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0gPSAxOwor
ICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyRpbmNsdWRlSGRy
fSA9IDE7CisgICAgICAgICN9CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFt
ZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUdkb21ET01PYmplY3Qu
aCJ9ID0gMTsKKworICAgICAgICBMT09QOiBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5v
ZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgICAgICNteSAkZnVuY3Rpb25OYW1lID0gZGVjYW1l
bGl6ZSgkY2xhc3NOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWUpOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfbmFtZSA9ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAi
Z2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRm
bl9zaWdfbmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldHVyblR5cGUgPSBHZXRHVHlwZSgk
Zm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIG15ICRyZXRfaXNfY2xzX3R5cGUgPSBJc0dE
T01DbGFzc1R5cGUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlv
blNpZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKworICAgICAgICAgICAgICAgIG15ICRjYWxsX2lt
cGxfcGFyYW1zID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gImdk
b21fIiAuIGRlY2FtZWxpemUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIGlmICgk
ZnVuY3Rpb25OYW1lIGVxICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHki
KSB7CisgICAgICAgICAgICAgICAgICAgICMgcmVzZXJ2ZWQgbmFtZSBjbGFzaCBpbiBnbGliIQor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdkb21fY3NzX3N0eWxlX2RlY2xh
cmF0aW9uX3NldF9jc3NfcHJvcGVydHkiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAjIFhYWCBza2lwIENvbXBhcmVIb3cgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAg
ICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3Bv
aW50cyIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RP
OiBza2lwcGluZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGlu
ZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgICMgWFhYIHNraXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAg
ICAgICBpZiAoJHJldHVyblR5cGUgZXEgIkdkb21TVkdEb2N1bWVudCAqIikgeworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3Vt
ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5j
dGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQg
TE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIHNv
bWUgY3VzdG9tIGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgbXkgJGlzX2N1c3Rv
bV9mbiA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
In07CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xs
ZWN0aW9uX2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdk
b21faHRtbF9jb2xsZWN0aW9uX25hbWVkX2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiB8fAorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfc2V0X3Jl
cXVlc3RfaGVhZGVyIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJn
ZG9tX3htbF9odHRwX3JlcXVlc3Rfc2VuZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dldF9yZXNwb25zZV9oZWFkZXIiIHx8
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVx
dWVzdF9vdmVycmlkZV9taW1lX3R5cGUiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9kaXNwYXRjaF9ldmVudCIgfHwKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1
dGUiKSB7CisgICAgICAgICAgICAgICAgICAgICRpc19jdXN0b21fZm4gPSAwOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIyRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1s
X2h0dHBfcmVxdWVzdF9hZGRfZXZlbnRfbGlzdGVuZXIiIHx8CisgICAgICAgICAgICAgICAgICAg
ICMkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfcmVtb3ZlX2V2ZW50X2xp
c3RlbmVyIiB8fAorICAgICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmIAorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3JfbmV4dF9u
b2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2Rl
X2FwcGVuZF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUg
Imdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiICYmCisgICAgICAg
ICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcGFyZW50X25v
ZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVf
d2Fsa2VyX2ZpcnN0X2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9sYXN0X2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19zaWJsaW5nIiAm
JiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtl
cl9uZXh0X3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5l
ICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX25vZGUiICYmIAorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfbm9kZSIgJiYgCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9wcmV2
aW91c19ub2RlIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhY
IFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9u
ICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09Q
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFt
IChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBh
cmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jQm9k
eSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlE
TFR5cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBh
cmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVs
aXplKCRwYXJhbS0+bmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49
ICIsICRwYXJhbVR5cGUkcGFyYW1OYW1lIjsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFy
YW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAg
ICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkcGFyYW1JRExUeXBlIG5lICJET01PYmplY3QiICYmCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJHBhcmFtSURMVHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUludEdkb20ke3BhcmFt
SURMVHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJQcml2YXRlR2RvbSR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOyAjIHRo
aXMgaXNuJ3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGJ1dCBvbmUgb2YgdGhlIGF1dG8tZ2VuZXJhdGVk
IGZpbGVzIG5lZWRlZCBpdCBzby4uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190
eXBlIHx8ICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgJHBhcmFtTmFtZSA9ICJfZ18iIC4gJHBhcmFtTmFtZTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJGNhbGxfaW1wbF9wYXJhbXMpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICRjYWxsX2ltcGxfcGFyYW1zIC49ICIsICRwYXJhbU5hbWUi
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgPSAiJHBhcmFtTmFtZSI7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBhZGRJbmNIZHIoJGZuX3NpZ190eXBlKTsKKyAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19j
bHNfdHlwZSkgeworICAgICAgICAgICAgICAgICMgICAgJGltcGxUeXBlZGVmc3siR2RvbSR7Zm5f
c2lnX3R5cGV9In0gPSAxOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlm
ICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJHJl
dF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlw
ZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYID8/
Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0g
PSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUludEdkb20ke2Zu
X3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJQcml2YXRlR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Ikdkb20ke2ZuX3NpZ190eXBlfS5o
In0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBjdXN0b20gZnVuY3Rpb25zIGZvciBu
b3cKKyAgICAgICAgICAgICAgICAjIGJ1dCBza2lwIGZyb20gaGVyZSB0byBhbGxvdyBzb21lIGhl
YWRlcnMgdG8gYmUgY3JlYXRlZAorICAgICAgICAgICAgICAgICMgZm9yIGEgc3VjY2Vzc2Z1bCBj
b21waWxlLgorICAgICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaW5zZXJ0X2Jl
Zm9yZSIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2Rl
X3JlcGxhY2VfY2hpbGQiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUg
Imdkb21fbm9kZV9hcHBlbmRfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhC
b2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xu
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBj
dXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAg
ICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkg
JF9yZXR1cm5UeXBlID0gJHJldHVyblR5cGU7CisgICAgICAgICAgICAgICAgbXkgJGRvbW9ialR5
cGUgPSAiR0RPTSIuJGZuX3NpZ190eXBlOworICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5
cGUgZXEgJ0RPTU9iamVjdCcgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBl
cSAnZ2RvbV9odG1sX2NhbnZhc19lbGVtZW50X2dldF9jb250ZXh0JykgeworICAgICAgICAgICAg
ICAgICAgICAjIFhYWCBIQUNLIQorICAgICAgICAgICAgICAgICAgICAkX3JldHVyblR5cGUgPSAn
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21v
YmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0JzsKKyAgICAgICAgICAgICAgICAg
ICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250ZXh0JzsKKyAg
ICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93
LiAgc2tpcCBpdC4KKyAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01P
YmplY3QgKFRPRE86IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAgICAgICAgICAg
ICAgICAgICAgIyBiZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQn
KSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAg
ICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIConOworICAgICAg
ICAgICAgICAgICAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
JzsKKyAgICAgICAgICAgICAgICAgICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3Jl
bmRlcmluZ19jb250ZXh0MmQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhY
IC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAj
IG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmlu
ZCBvdXQgaG93KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRv
IGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAKKworICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiV0VCS0lUX0FQSSAkX3Jl
dHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5j
dGlvblNpZylcbntcbiIpOworCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2
b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRl
ZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAwKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwg
KHRoaXopO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGl0ZW0gPSAoJHtsY2FzZV9p
ZmFjZW5hbWV9X2dldF9wcml2YXRlKHRoaXopKTtcbiIpOworICAgICAgICAgICAgICAgIGlmICgk
cmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggVE9ETzog
cmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoaXRlbSwgMCk7XG4iKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBn
X3JldHVybl9pZl9mYWlsIChpdGVtKTtcbiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAg
ICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUp
OworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwor
ICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlSXNQcmltaXRpdmUgPSAkY29kZUdlbmVy
YXRvci0+SXNQcmltaXRpdmVUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7
CisgICAgICAgICAgICAgICAgICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAg
ICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke3BhcmFtSURMVHlwZX0ifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCEkcGFyYW1UeXBlSXNQcmlt
aXRpdmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9p
ZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJv
cGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKCRwYXJhbU5hbWUsIDApO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKCRwYXJhbU5hbWUpO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIiI7CisgICAg
ICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkg
eworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwor
ICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURMVHlw
ZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJh
bS0+bmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0g
SXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICAjIEhB
Q0shCisgICAgICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9o
dHRwX3JlcXVlc3Rfb3BlbiIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW0tPm5h
bWUgZXEgInVybCIpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgIyRpbXBsSW5jbHVkZXN7
IktVUkwuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IFdlYkNvcmU6OktVUkwgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6S1VSTCgkcGFyYW1OYW1l
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2lm
ICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2Vi
Q29yZTo6U3RyaW5nKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFy
YW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNwdXNoKEBjQm9keSwgIiAgICBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9PiAqIF9nXyR7cGFyYW1OYW1l
fSA9IFdURjo6UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSk+
O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZl
bnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
UHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBfZ18k
e3BhcmFtTmFtZX0gPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUqPihnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBfZ18ke3BhcmFtTmFt
ZX0gPSAoJHtwYXJhbV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0
dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBU
T0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKF9nXyR7cGFyYW1O
YW1lfSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAo
X2dfJHtwYXJhbU5hbWV9KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJHJldHVyblBhcmFtTmFtZSA9
ICJfZ18iLiRwYXJhbU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJu
In07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbiA9ICIi
OworICAgICAgICAgICAgICAgIG15ICRhc3NpZ25fcHJlID0gIiI7CisgICAgICAgICAgICAgICAg
bXkgJGFzc2lnbl9wb3N0ID0gIiI7CisgICAgICAgICAgICAgICAgJGdfcmVzID0gMDsKKyAgICAg
ICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7
CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICRhc3NpZ24gPSAiUGFzc1JlZlB0cjxXZWJDb3JlOjoke2ZuX3NpZ190
eXBlfT4gZ19yZXMgPSAiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wcmUgPSAi
V1RGOjpnZXRQdHIoIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcG9zdCA9ICIp
IjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICRhc3NpZ24gPSAiJHtfcmV0dXJuVHlwZX0gcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBteSAkZXhjZXB0aW9ucyA9ICIi
OworICAgICAgICAgICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR7Y2FsbF9pbXBsX3Bh
cmFtc30gbmUgIiIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRleGNlcHRpb25zID0gIiwg
ZWMiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAg
ICAgJGV4Y2VwdGlvbnMgPSAiZWMiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBuZWVkIHRoaXMgZm9yIGluY2x1ZGluZyAuLi4g
X3NvbWV0aGluZ18gLSBmb3IgdGhlIGNsYXNzIGFyZ3MKKyAgICAgICAgICAgICAgICAjaWYgKCRy
ZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7Imdk
b20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICN9CisgICAgICAgICAg
ICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiIHx8Cisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9pbnNlcnRfYmVm
b3JlIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVf
cmVwbGFjZV9jaGlsZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGN1c3Rv
bV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0t
PiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KTsKKyAgICBp
ZiAob2spCisgICAgeworICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwk
e19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKCRyZXR1cm5QYXJhbU5hbWUpKTsgCisgICAg
ICAgIHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiBOVUxMOworRU9GCisgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOwor
ICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IiAmJgor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICdnZG9tX2RvY3VtZW50X2dldF9j
c3NfY2FudmFzX2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIC8qIFhYWCBUT0RPIC0gZ2V0IGNhbnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9
KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01T
dHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdu
fV9HX0dFVF9VVEY4KGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4
Y2VwdGlvbnN9KSk7XG4iICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRnX3JlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGdfcmVzID0g
IiR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9w
YXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KSIgOworICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHth
c3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFt
c30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0pO1xuIiApOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBu
ZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAo
JGZuX3NpZ190eXBlIG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5
cGV9PihXZWJDb3JlOjp0b0dET00oZ19yZXMuZ2V0KCkpKTsgXG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBp
ZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBjYW52
YXMgb2JqZWN0ICovXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIlxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7
CisgICAgICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxu
Iik7CisgICAgcHVzaChAY0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisK
KyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgIiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9cbiIpOworCisgICAgcHVz
aChAaEJvZHksICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAv
KiAkZ3VhcmQgKi9cbiIpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19FTkRfREVDTFNcblxu
Iik7CisgICAgcHVzaChAaEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3VhcmR9X1BST1BfKi9cbiIp
OworfQorCisjIEludGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2Jq
ZWN0LCAkbmFtZSkgPSBAXzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBt
eSAkaGRyRk5hbWVJbnRlcm5hbCA9ICIkb3V0cHV0RGlyL1ByaXZhdGVJbnQiIC4gJG5hbWUgLiAi
LmgiOworICAgIG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFsIikgb3IgZGllICJD
b3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAgcHJpbnQgSU5USEVB
REVSIEBoUHJlZml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAgIHByaW50IElOVEhF
QURFUiBAaEJvZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOworCisgICAgIyBXcml0
ZSBQcml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1dERpci9Qcml2
YXRlIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJp
diIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworCisgICAgcHJp
bnQgUFJJVkhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7CisgICAg
cHJpbnQgUFJJVkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisg
ICAgIyBXcml0ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgbXkgJGltcGxGaWxlTmFtZVBy
aXYgPSAiJG91dHB1dERpci9Qcml2YXRlIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oUFJJ
VklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
aW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICBw
cmludCBQUklWSU1QTCAiXG4iOworICAgIHByaW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAg
ICBjbG9zZShQUklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9p
ZHMgcmVjdXJzaXZlIG5pZ2h0bWFyZSkKKyAgICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXRE
aXIvIiAuICRuYW1lIC4gInByb3BzLmgiOworICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJv
cEZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAg
ICAkaGRyUHJvcEluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJP
UEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5j
bHVkZXMgLyBkZWZpbmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRp
ZXMuXG5wZXJoYXBzIC0gYmV0dGVyIC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUg
aW4gaGVyZSEqL1xuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAg
cHJpbnQgUFJPUEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOwor
ICAgIHByaW50IFBST1BIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5
cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cygl
aGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQg
UFJPUEhFQURFUiBAaEJvZHlQcm9wOworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3Jp
dGUgcHVibGljIGhlYWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5h
bWUgLiAiLmgiOworICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRu
J3Qgb3BlbiBmaWxlICRoZHJGTmFtZSI7CisKKyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0
LmgifSA9IDE7CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVS
IEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSA8d2Via2l0L3dlYmtp
dGRlZmluZXMuaD5cbiI7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJc
biIgfSBzb3J0IGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBr
ZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiI7CisgICAgcHJpbnQgSEVB
REVSIEBoQm9keVByZTsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgInR5cGVkZWYgc3RydWN0IF8k
XyAkXztcbiIgfSBzb3J0IGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSICJc
biIgaWYga2V5cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5OworCisg
ICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgdGhlIGltcGxlbWVudGF0aW9uIHNvdXJj
ZXMKKyAgICBteSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAi
OworICAgIG9wZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVu
IGZpbGUgJGltcGxGaWxlTmFtZSI7CisKKyAgICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHBy
aW50IElNUEwgIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4iOworICAgIHByaW50IElNUEwgIiNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiQ1N0
cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJQbGF0Zm9ybVN0cmluZy5o
XCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJBdG9taWNTdHJpbmcuaFwiXG4iOwor
ICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwidXN0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1Q
TCAiI2luY2x1ZGUgXCJLVVJMLmhcIlxuIjsKKyAgICBwcmludCBJTVBMIG1hcCB7ICIjaW5jbHVk
ZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCAi
XG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAg
ICBjbG9zZShJTVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAgICAlaW1wbFR5cGVk
ZWZzID0gKCk7CisgICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAg
ICBAaEJvZHkgPSAoKTsKKyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAgQGhCb2R5SW50ZXJuYWwg
PSAoKTsKKyAgICBAaEJvZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJvcFByZSA9ICgpOworCisg
ICAgQGNQcmVmaXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7
Cit9CisKKzE7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDM1
NzU4KQorKysgV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNyArMjcsNyBAQAogICAgIF0gSFRNTE9wdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVu
dCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9y
bTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkZWZh
dWx0U2VsZWN0ZWQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nICAgICAgICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAko
cmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgc2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHRleHQ7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAg
IFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTEFwcGxldEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNTc1OCkKKysrIFdlYkNvcmUvaHRtbC9I
VE1MQXBwbGV0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE0ICszNSwxNCBAQAog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgY29kZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIGNvZGVCYXNlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0OwotI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8
IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhzcGFjZTsKICNlbHNlCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaHNwYWNlOwogI2Vu
ZGlmCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb2JqZWN0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHZzcGFjZTsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgdnNwYWNlOwpJbmRleDogV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVt
YmVkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAg
SW1wbGVtZW50YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZmMC05NzhkLWY3NzNmMmRlZTZhMwog
ICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwotI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKICNlbHNl
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaGVp
Z2h0OwpAQCAtMzgsNyArMzgsNyBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNyYzsKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5
cGU7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgd2lkdGg7
CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBs
b25nIHdpZHRoOwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQAogCiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyB0aXRsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWZlcnJlcjsK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRvbWFpbjsK
ICNlbHNlCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOwpAQCAt
MTgyLDcgKzE4Miw3IEBACiAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4g
RE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24g
bG9jYXRpb247CiAjZW5kaWYKIApAQCAtMTk1LDcgKzE5NSw3IEBACiAgICAgICAgIEVsZW1lbnQg
ICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKIAogICAg
ICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFH
RV9HT0JKRUNUKSkKICAgICAgICAgRE9NU2VsZWN0aW9uICAgICAgIGdldFNlbGVjdGlvbigpOwog
I2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1O
dWxsXSBET01TdHJpbmcgY2hhcmFjdGVyU2V0OwpAQCAtMjM2LDcgKzIzNiw3IEBACiAgICAgICAg
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gRE9NU3RyaW5nIHRhZ25hbWUpOwog
CiAgICAgICAgIC8vIE5vZGVTZWxlY3RvciAtIFNlbGVjdG9yIEFQSQotI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICBbQ3VzdG9tXSBFbGVtZW50IHF1ZXJ5
U2VsZWN0b3IoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgW0N1c3RvbV0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFs
bChpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVj
dG9ycywgaW4gTlNSZXNvbHZlciByZXNvbHZlcikKSW5kZXg6IFdlYkNvcmUvZG9tL1JhbmdlRXhj
ZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJ
KHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpF
Q1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJ
bmRleDogV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2Rv
bS9ET01Db3JlRXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAq
LwogCiAjaWZuZGVmIERPTUNvcmVFeGNlcHRpb25faAotI2RlZmluZSBET01Db2RlRXhjZXB0aW9u
X2gKKyNkZWZpbmUgRE9NQ29yZUV4Y2VwdGlvbl9oCiAKICNpbmNsdWRlICJFeGNlcHRpb25CYXNl
LmgiCiAKSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2Vi
Q29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3
IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRl
IGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0
cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2aXNp
b24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtNTksNyArNTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gYWx0R3JhcGhLZXkpOwogCiAgICAgICAgIC8vIFdlYktpdCBFeHRlbnNpb25zCi0jaWYg
IWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoKCFkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpKSAmJiAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpKQogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKICAgICAgICAgCkluZGV4OiBX
ZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9ET01Db3JlRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJDb3JlL2RvbS9E
T01Db3JlRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkg
fHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1v
emlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9T
dHJpbmcoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAkocmV2aXNpb24gMzU3
NTgpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTYyLDkgKzYyLDEzIEBACiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAg
ICAgICAvLyB2b2lkIHNlbmQoKTsKLSAgICAgICAgLy8gdm9pZCBzZW5kKGluIERPTVN0cmluZyBk
YXRhKTsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCisgICAgICAgIHZvaWQgc2VuZChp
biBET01TdHJpbmcgZGF0YSkKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworI2Vs
c2UKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZW5kKGluIERvY3VtZW50IGRhdGEpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgogCiAgICAgICAgIHZvaWQgYWJvcnQo
KTsKIApJbmRleDogV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJD
b3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcg
QEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUg
aW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3Ry
aW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3RFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxs
YSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmlu
ZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMzU3NTgpCisrKyBXZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBA
CiAgICAgICAgIFtEb05vdENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0TWVz
c2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSwgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikKICAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChM
QU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBHbG9iYWwgY29uc3RydWN0b3JzCiAgICAgICAg
IGF0dHJpYnV0ZSBTdHlsZVNoZWV0Q29uc3RydWN0b3IgU3R5bGVTaGVldDsKICAgICAgICAgYXR0
cmlidXRlIENTU1N0eWxlU2hlZXRDb25zdHJ1Y3RvciBDU1NTdHlsZVNoZWV0OwpJbmRleDogV2Vi
Q29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RP
TVNlbGVjdGlvbi5pZGwJKHJldmlzaW9uIDM1NzU4KQorKysgV2ViQ29yZS9wYWdlL0RPTVNlbGVj
dGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAKICAgICAgICAgdm9pZCBy
ZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgdm9pZCBhZGRSYW5nZShpbiBSYW5nZSByYW5nZSk7
CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250
RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKICAgICB9OwpJbmRleDogV2ViS2l0
VG9vbHMvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDM1NzU4KQorKysgV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHdv
cmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBACiAjIEd0a0xhdW5jaGVyCiBQcm9ncmFtc19HdGtM
YXVuY2hlcl9DUFBGTEFHUyA9IFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBc
CiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23366</attachid>
            <date>2008-09-12 07:16:13 -0700</date>
            <delta_ts>2008-09-12 07:28:53 -0700</delta_ts>
            <desc>updated ChangeLogs</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>283730</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNjEyOSkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDkgQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRT
b3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20KIAogIyBU
aGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1ZGVkIGJlbG93IHNvIG5vIG5lZWQg
dG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5b3UgcmVhbGx5IGhhdmUgdG8KQEAg
LTIyMCw2ICsyMjIsNyBAQAogCiAjIFdlYktpdAogd2Via2l0Z3RrX2hfYXBpIDo9CitnZG9tZ3Rr
X2hfYXBpIDo9CiB3ZWJraXRndGtfc291cmNlcyA6PQogd2Via2l0Z3RrX2NwcGZsYWdzIDo9CiB3
ZWJraXRndGtfYnVpbHRfc291cmNlcyA6PQpAQCAtMjMyLDggKzIzNSwxMyBAQAogbGlid2Via2l0
XzFfMF9sYWRpciA9ICQocHJlZml4KS9pbmNsdWRlL3dlYmtpdC0xLjAvd2Via2l0CiBsaWJ3ZWJr
aXRfMV8wX2xhX0hFQURFUlMgPSBcCiAJJCh3ZWJraXRndGtfaF9hcGkpIFwKLQlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRlbnVtdHlwZXMuaAorCSQoZ2RvbWd0a19oX2FwaSkgXAorCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tLmgg
CiAKKyNXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgKKyNXZWJLaXQvZ3RrL3dlYmtp
dC9nZG9tZGVmaW5lcy5oCisKIGxpYndlYmtpdF8xXzBfbGFfU09VUkNFUyA9IFwKIAkkKHdlYmtp
dGd0a19zb3VyY2VzKQogCkBAIC0zMDUsNiArMzEzLDM1NCBAQAogd2ViY29yZV9saWJhZGQgKz0g
LWxnc3RpbnRlcmZhY2VzLTAuMTAgLWxnc3R2aWRlby0wLjEwCiBlbmRpZgogCitXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOiAkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJr
aXQvR2RvbURvY3VtZW50LmggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaCBcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0
ay93ZWJraXQvR2RvbURPTU9iamVjdC5oIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRXZlbnRUYXJnZXRO
b2RlLmggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0b3BfYnVpbGRk
aXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdC5oCisKKyQodG9wX2J1aWxk
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaDogRGVyaXZlZFNvdXJj
ZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmgKKwljcCBEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJl
cXVlc3QuaCAkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbVhNTEh0dHBSZXF1
ZXN0LmgKKwljcCBEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3QuaCAkKHNyY2Rpcikv
V2ViS2l0L2d0ay93ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0LmgKKworJCh0b3BfYnVpbGRkaXIp
L1dlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaDogRGVyaXZlZFNvdXJjZXMvR2RvbURP
TVdpbmRvdy5oCisJY3AgRGVyaXZlZFNvdXJjZXMvR2RvbURPTVdpbmRvdy5oICQodG9wX2J1aWxk
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRE9NV2luZG93LmgKKwljcCBEZXJpdmVkU291cmNl
cy9HZG9tRE9NV2luZG93LmggJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5k
b3cuaAorCiskKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50Lmg6
ICQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnQuaAorCWNwIERlcml2
ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtp
dC9HZG9tRG9jdW1lbnQuaAorCWNwIERlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oICQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRG9jdW1lbnQuaAorCiskKHRvcF9idWlsZGRpcikv
V2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTU9iamVjdC5oOiAkKHRvcF9idWlsZGRpcikvV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaAorCWNwICQoc3JjZGlyKS9XZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dl
YmtpdC9HZG9tRE9NT2JqZWN0LmgKKwljcCAkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dkb21ET01PYmplY3QuaCAkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTU9iamVj
dC5oCisKK1dlYktpdC9ndGsvd2Via2l0L0dkb21FdmVudFRhcmdldE5vZGUuaDogJCh0b3BfYnVp
bGRkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgKKwljcCAk
KHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCAkKHRv
cF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisJY3Ag
JChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggJChz
cmNkaXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21FdmVudFRhcmdldE5vZGUuaAorCisKK2dkb21n
dGtfaF9hcGkgKz0gXAorCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRG9j
dW1lbnQuaFwKKwkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oXAorCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRE9NT2Jq
ZWN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUF0dHIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
QXR0cnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUJhckluZm8uaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQmFySW5mb3Byb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRp
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRpZW50cHJvcHMuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ2FudmFzUGF0dGVybi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52
YXNQYXR0ZXJucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheS5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQaXhlbEFycmF5cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNEQVRBU2VjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DREFUQVNlY3Rpb25wcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DaGFyYWN0ZXJEYXRhLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNoYXJhY3RlckRhdGFwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJkcHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ29tbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db21tZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ29uc29sZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db25zb2xl
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ291bnRlci5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21Db3VudGVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGVwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NGb250RmFjZVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTRm9u
dEZhY2VSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1wb3J0UnVsZS5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NJbXBvcnRSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTTWVkaWFSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlhUnVsZXBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1BhZ2VSdWxlLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1BhZ2VSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUHJpbWl0
aXZlVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUHJpbWl0aXZlVmFsdWVwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U1J1bGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U1N0eWxlRGVjbGFyYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVEZWNsYXJh
dGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlUnVsZS5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NTdHlsZVNoZWV0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlU2hlZXRwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NWYWx1ZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVMaXN0cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxl
c1J1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzUnVsZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbURhdGFiYXNlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFi
YXNlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRGcmFnbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tRG9jdW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudFR5cGUu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRUeXBlcHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01B
cHBsaWNhdGlvbkNhY2hlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQ29yZUV4Y2Vw
dGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9ucHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tRE9NSW1wbGVtZW50YXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRE9NSW1wbGVtZW50YXRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJz
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NUGFyc2VycHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRE9NU2VsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVNlbGVjdGlv
bnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVdpbmRvdy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21ET01XaW5kb3dwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21FbnRpdHkuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRW50aXR5UmVmZXJlbmNlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0
eVJlZmVyZW5jZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9uLmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21GaWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVMaXN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRmlsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhpc3RvcnkuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSGlzdG9yeXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBbmNo
b3JFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBbmNob3JFbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEFwcGxldEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MQXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFyZWFFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxCYXNlRm9udEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VGb250RWxl
bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQm9keUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEJvZHlFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJSRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEJ1dHRvbkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ2FudmFzRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ2FudmFzRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDb2xsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxDb2xsZWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpcmVjdG9y
eUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGl2RWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MRGl2RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxE
TGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERMaXN0RWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEb2N1bWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRG9jdW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxFbWJlZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVt
YmVkRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNldEVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb250RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MRm9udEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9ybUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1FbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MRnJhbWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1l
U2V0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxIZWFkaW5nRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZGluZ0VsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSFJFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MSHRtbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0bWxFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MSW1hZ2VFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJbWFnZUVsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxJbnB1dEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5k
ZXhFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGFiZWxFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TExlZ2VuZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTGlua0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExp
bmtFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MTWFycXVlZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1h
cnF1ZWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxNZXRhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TWV0YUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxPYmplY3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxP
YmplY3RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9MaXN0RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50cHJvcHMuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MT3B0R3JvdXBFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9w
dGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbkVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFBhcmFncmFwaEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYW1F
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUHJlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MUHJlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTY3JpcHRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxTY3JpcHRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNl
bGVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNlbGVjdEVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU3R5bGVFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVD
YXB0aW9uRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNlbGxF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFRhYmxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVSb3dFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MVGV4dEFyZWFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0QXJlYUVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGl0bGVFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUaXRsZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MVUxpc3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxVTGlz
dEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21JbWFnZURhdGEuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSW1hZ2VEYXRhcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2
YVNjcmlwdENhbGxGcmFtZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0Q2FsbEZy
YW1lcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tS2V5Ym9hcmRFdmVudC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21LZXlib2FyZEV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TG9jYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTG9jYXRpb25wcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFMaXN0
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVzc2FnZUV2ZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU1lc3NhZ2VFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVU
eXBlQXJyYXkuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJheXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVU
eXBlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTW91c2VFdmVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Nb3VzZUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTXV0YXRp
b25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NdXRhdGlvbkV2ZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2RlTWFwLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5h
bWVkTm9kZU1hcHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hdmlnYXRvci5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21OYXZpZ2F0b3Jwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21O
b2RlRmlsdGVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0ZXJwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Ob2RlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRv
ci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0b3Jwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Ob2RlTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlTGlzdHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Ob3RhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob3RhdGlvbnByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbU92ZXJmbG93RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tT3Zl
cmZsb3dFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbkFycmF5LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbkFycmF5cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tUGx1Z2luLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbnByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9n
cmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2dyZXNzRXZlbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZUV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21SYW5nZUV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmVj
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21SZWN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU2NyZWVuLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbnByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNRTEVycm9yLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTEVycm9ycHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0LmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNRTFJlc3VsdFNldHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3Vs
dFNldFJvd0xpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9uLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3Rv
cmFnZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2VFdmVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2UuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFn
ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU3R5bGVTaGVldExpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVl
dExpc3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHRN
ZXRyaWNzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHRFdmVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVRleHQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVRyZWVXYWxrZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVHJl
ZVdhbGtlcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tVUlFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdEFu
aW1hdGlvbkV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
V2hlZWxFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XaGVlbEV2ZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21YTUxIdHRwUmVxdWVzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3Rwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVhNTFNlcmlhbGl6ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MU2VyaWFsaXpl
cnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXZhbHVhdG9yLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVhQYXRoRXZhbHVhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WFBhdGhFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeGNlcHRpb25wcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4cHJlc3Npb24uaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBh
dGhOU1Jlc29sdmVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoTlNSZXNvbHZlcnByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoUmVzdWx0LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhQYXRoUmVzdWx0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nlc3Nv
ci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YU0xUUHJvY2Vzc29ycHJvcHMuaAorCiB3ZWJraXRn
dGtfaF9hcGkgKz0gXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdC5oIFwKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRkZWZpbmVzLmggXApAQCAtMzE0LDE0ICs2NzAsMjAgQEAKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJoaXN0b3J5aXRlbS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5o
IFwKLQlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKKwlXZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmggXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmggCiAK
KyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtfYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dG1hcnNoYWwuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmgKIAorIwlE
ZXJpdmVkU291cmNlcy9nZG9tZW51bXR5cGVzLmNwcCAKKyMJV2ViS2l0L2d0ay93ZWJraXQvZ2Rv
bWVudW10eXBlcy5oCisKIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmggXApAQCAtMzQ1LDE0ICs3MDcsMTcgQEAKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
Ymhpc3RvcnlpdGVtLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwIFwKLQlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorCVdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVu
dC5jcHAgIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5oIAogCiB3ZWJraXRndGtf
Y3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJTkdfV0VCS0lUIFwKIAktSSQoc3JjZGlyKS9XZWJLaXQv
Z3RrIFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0IFwKIAktSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCi0JLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93
ZWJraXQKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9i
dWlsZGRpcikvV2ViS2l0L2d0awogCiB3ZWJraXRndGtfY2xlYW5maWxlcyArPSBcCiAJJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zL0d0a0xhdW5jaGVyIFwKQEAgLTM2Nyw2ICs3MzIsOSBAQAogCXN0
YW1wLXdlYmtpdGVudW10eXBlcy5jcHAgXAogCXN0YW1wLXdlYmtpdGVudW10eXBlcy5oCiAKKyMJ
c3RhbXAtZ2RvbWVudW10eXBlcy5jcHAgCisjCXN0YW1wLWdkb21lbnVtdHlwZXMuaCAKKwogV0VC
S0lUX01BUlNIQUwgPSAkKEdFTlNPVVJDRVMpL3dlYmtpdG1hcnNoYWwKIFdFQktJVF9NQVJTSEFM
X0xJU1QgPSAkKFdFQktJVF9NQVJTSEFMKS5saXN0CiAKQEAgLTQ0Myw2ICs4MTEsNTQgQEAKIAkm
JiBjcCB4Z2VuLWd0YyAkQCBcCiAJJiYgcm0gLWYgeGdlbi1ndGMKIAorV2ViS2l0L2d0ay93ZWJr
aXQvZ2RvbWVudW10eXBlcy5oOiBzdGFtcC1nZG9tZW51bXR5cGVzLmgKKwlAdHJ1ZQorc3RhbXAt
Z2RvbWVudW10eXBlcy5oOiAkKGdkb21ndGtfaF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3Jj
ZGlyKSBcCisJJiYgZ2xpYi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpZm5kZWYgR0RPTV9FTlVN
X1RZUEVTX0hcbiIgXAorCQkJLS1maGVhZCAiI2RlZmluZSBHRE9NX0VOVU1fVFlQRVNfSFxuXG4i
IFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuXG4iIFwKKwkJCS0tZmhl
YWQgIkdfQkVHSU5fREVDTFNcblxuIiBcCisJCQktLWZ0YWlsICJHX0VORF9ERUNMU1xuXG4iIFwK
KwkJCS0tZnRhaWwgIiNlbmRpZlxuIiBcCisJCQktLWZwcm9kICIjaW5jbHVkZSA8QGZpbGVuYW1l
QD5cblxuIiBcCisJCQktLWVwcm9kICIjZGVmaW5lIEdET01fVFlQRV9ARU5VTVNIT1JUQCBAZW51
bV9uYW1lQF9nZXRfdHlwZSgpXG5cbiIgXAorCQkJLS1lcHJvZCAiV0VCS0lUX0FQSSBHVHlwZVxu
QGVudW1fbmFtZUBfZ2V0X3R5cGUodm9pZCk7XG5cbiIgXAorCQkJJChnZG9tZ3RrX2hfYXBpKSB8
IFwKKwkJCXNlZCAncyxXZWJLaXQvZ3RrLywsJyB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwn
IHwgXAorCQlzZWQgJ3MsR0RPTV9UWVBFX0tJVCxHRE9NX1RZUEUsJyBcCisJCSkgPiB4Z2VuLWNn
dGggXAorCSYmIChjbXAgLXMgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlw
ZXMuaCB8fCBjcCB4Z2VuLWNndGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oKSBc
CisJJiYgcm0gLWYgeGdlbi1jZ3RoIFwKKwkmJiBlY2hvIHRpbWVzdGFtcCA+ICQoQEYpCisKKyMg
ICAgICAgICAgICAgIC0tZmhlYWQgIiNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD5cblxu
IiAKKworRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5jcHA6ICQoZ2RvbWd0a19oX2FwaSkg
R05VbWFrZWZpbGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1m
aGVhZCAiI2luY2x1ZGUgPGNvbmZpZy5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xp
Yi1vYmplY3QuaD5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgXCIkKHRvcF9idWlsZGRpcikv
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oXCJcblxuIiBcCisJCQktLWZoZWFkICJl
eHRlcm4gXCJDXCIge1xuXG4iIFwKKwkJCS0tZnByb2QgIlxuLyogZW51bWVyYXRpb25zIGZyb20g
XCJAZmlsZW5hbWVAXCIgKi8iIFwKKwkJCS0tdmhlYWQgInN0YXRpYyBjb25zdCBHQFR5cGVAVmFs
dWUgX0BlbnVtX25hbWVAX3ZhbHVlc1tdID0geyIgXAorCQkJLS12cHJvZCAiICAgIHsgQFZBTFVF
TkFNRUAsIFwiQFZBTFVFTkFNRUBcIiwgXCJAdmFsdWVuaWNrQFwiIH0sIiBcCisJCQktLXZ0YWls
ICIgICAgeyAwLCBOVUxMLCBOVUxMIH1cbn07XG5cbiIgXAorCQkJLS12dGFpbCAiR1R5cGUgQGVu
dW1fbmFtZUBfZ2V0X3R5cGUodm9pZClcbntcbiIgXAorCQkJLS12dGFpbCAiICAgIHN0YXRpYyBH
VHlwZSB0eXBlID0gMDtcblxuIiBcCisJCQktLXZ0YWlsICIgICAgaWYgKCF0eXBlKVxuIiBcCisJ
CQktLXZ0YWlsICIgICAgICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMoXCJARW51
bU5hbWVAXCIsIF9AZW51bV9uYW1lQF92YWx1ZXMpO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAgICBy
ZXR1cm4gdHlwZTtcbn1cblxuIiBcCisJCQktLWZ0YWlsICJ9XG4iIFwKKwkJJChnZG9tZ3RrX2hf
YXBpKSB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIFwKKwkJKSA+IHhnZW4tY2d0YyBcCisJ
JiYgY3AgeGdlbi1jZ3RjICRAIFwKKwkmJiBybSAtZiB4Z2VuLWNndGMKKwogIyBFTkQgV0VCS0lU
IEdUSysKICMKICMgRmlsZXMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkCkluZGV4OiBXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkocmV2
aXNpb24gMzYxMjkpCisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE2LDYgKzIxNiw4IEBACiAKIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbigp
CiB7CisgICAgaWYgKCFtX2ZyYW1lKSAvKiBidWcjMjA0MDMgLSBoYWNrISBzaG91bGRuJ3QgYmUg
aGVyZSEgIHdlJ3ZlIGJlZW4gZGVsZXRlZCEgKi8KKyAgICAgICAgcmV0dXJuOwogICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwogICAgIFBhZ2Uq
IGNvcmVQYWdlID0gY29yZSh3ZWJWaWV3KTsKIApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcAkocmV2aXNpb24gMzYxMjkpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzEsMTMgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlz
dGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4
IENvbGxhYm9yYSBMdGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KICAqCisg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKICAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNDIsNiArNDQsMjAgQEAKICNpbmNsdWRlICJS
ZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUg
Ikdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21Y
TUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisj
aW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5o
IgorI2luY2x1ZGUgIlRleHREb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21ET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tRE9NV2luZG93LmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAK
QEAgLTQ5LDYgKzY1LDEyIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwlncG9pbnRlciB0b0dET00oRE9NV2lu
ZG93KiBkb2MpOworCWdwb2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKTsKKwlncG9pbnRlciB0
b0dET00oWE1MSHR0cFJlcXVlc3QqIG9iaik7Cit9CisKIGV4dGVybiAiQyIgewogCiBlbnVtIHsK
QEAgLTU3LDYgKzc5LDcgQEAKICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAg
ICBIT1ZFUklOR19PVkVSX0xJTkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05B
TAogfTsKIApAQCAtMTYyLDYgKzE4NSwxNyBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIs
CiAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtp
dF93ZWJfZnJhbWVfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nl
ci1ldmVudCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAg
ICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNU
SU9OIHwKKwkJCSAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVECSksCisgICAgICAgICAg
ICAwLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3
ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9O
T05FLCAyLAorICAgICAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisK
ICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAg
Ki8KQEAgLTI5NCw2ICszMjgsOTIgQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF94bWxfaHR0cF9yZXF1ZXN0OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAq
IHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGFuIFhNTEh0dHBSZXF1ZXN0CisgKgorICog
UmV0dXJuIHZhbHVlOiBhIEdkb21YTUxIdHRwUmVxdWVzdAorICovCitHZG9tWE1MSHR0cFJlcXVl
c3QqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3htbF9odHRwX3JlcXVlc3QoV2ViS2l0V2ViRnJhbWUq
IGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUo
ZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJh
bWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNT
RVJUKGNvcmVGcmFtZSk7CisJcmV0dXJuIEdET01fWE1MX0hUVFBfUkVRVUVTVChXZWJDb3JlOjp0
b0dET00oWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZShjb3JlRnJhbWUtPmRvY3VtZW50KCkpLmdldCgp
KSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdzoKKyAqIEBm
cmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFy
b3VuZCBhIERPTVdpbmRvdworICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tRE9NV2luZG93Cisg
Ki8KK0dkb21ET01XaW5kb3cqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3coV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBw
cml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7
CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisJUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbiA9IGNv
cmVGcmFtZS0+ZG9tV2luZG93KCk7CisJcmV0dXJuIEdET01fRE9NX1dJTkRPVyhXZWJDb3JlOjp0
b0dET00od2luLmdldCgpKSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9t
X2RvY3VtZW50OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMg
YSBHZG9tIHdyYXBwZXIgYXJvdW5kIGEgRG9jdW1lbnQgCisgKgorICogUmV0dXJuIHZhbHVlOiBh
IEdkb21Eb2N1bWVudAorICovCitHZG9tRG9jdW1lbnQqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2Rv
bV9kb2N1bWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRX
ZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKwlyZXR1cm4gR0RPTV9E
T0NVTUVOVChXZWJDb3JlOjp0b0dET00oY29yZUZyYW1lLT5kb2N1bWVudCgpKSk7Cit9CisKKy8q
IFhYWCBUT0RPOiBtYWtlIHRoaXMgbm90IHRha2UgZnJhbWUqIGFzIGFuIGFyZ3VtZW50LAorICog
YW5kIG1ha2UgaXQgcmV0dXJuIGEgR2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MgKi8KK2V4dGVybiAi
QyIgeworV0VCS0lUX0FQSSBnYm9vbGVhbgorYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJL
aXRXZWJGcmFtZSogd2YsIEZyYW1lICpmcmFtZSwgY29uc3QgY2hhciAqbmFtZSk7Cit9CisKKy8q
KgorICogd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJhbWU6IGEg
I1dlYktpdFdlYkZyYW1lCisgKgorICogYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZnJh
bWUncyBkb2N1bWVudAorICoKKyAqIFJldHVybiB2YWx1ZTogdGhlIG5hbWUgb2YgQGZyYW1lCisg
Ki8KK2dib29sZWFuIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyKiBldmVudF90eXBlKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBGQUxTRSk7CisKKyAgICAvL1dlYktpdFdlYkZy
YW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCisJcmV0dXJuIGFkZF93aW5k
b3dfZXZlbnRfbGlzdGVuZXIoZnJhbWUsIGNvcmVGcmFtZSwgZXZlbnRfdHlwZSk7Cit9CisKKy8q
KgogICogd2Via2l0X3dlYl9mcmFtZV9nZXRfbmFtZToKICAqIEBmcmFtZTogYSAjV2ViS2l0V2Vi
RnJhbWUKICAqCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgJKHJldmlz
aW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2Vu
bmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBKU19ET01fRVZF
TlRfTElTVEVORVJfTk9ERV9ICisjZGVmaW5lIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9OT0RFX0gK
KworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgor
CisKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisKKy8qIFRPRE86IHJldHVybiB0
aGUgYWN0dWFsIGV2ZW50IGxpc3RlbmVyIGNyZWF0ZWQsIHdoaWNoIHJlcXVpcmVzCisgKiBhIGds
aWIgd3JhcHBlciBvYmplY3QgdG8gYmUgY3JlYXRlZC4KKyAqIFRPRE86IHByb3ZpZGUgYSAncmVt
b3ZlX2V2ZW50X2xpc3RlbmVyJyB3aGljaCB0YWtlcyB0aGF0IGdsaWIKKyAqIG9iamVjdCBhcyBh
biBhcmd1bWVudCAqLworZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJCitnYm9vbGVhbiBhZGRfZXZl
bnRfbGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSk7Cit9CisKKyNl
bmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5FUl9OT0RFX0ggKi8KSW5kZXg6IFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViZnJhbWUuaAkocmV2aXNpb24gMzYxMjkpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJmcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0
IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMjYsNiArMjcsOSBAQAogCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRl
ZmluZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbURvY3VtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01XaW5k
b3cuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0Lmg+CiAKIEdfQkVHSU5f
REVDTFMKIApAQCAtNjEsNiArNjUsMTUgQEAKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUgKgog
d2Via2l0X3dlYl9mcmFtZV9uZXcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgR2RvbVhNTEh0dHBSZXF1ZXN0ICoKK3dlYmtpdF93
ZWJfZnJhbWVfZ2V0X3htbF9odHRwX3JlcXVlc3QgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAg
ICpmcmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbURPTVdpbmRvdyAqCit3ZWJraXRfd2ViX2ZyYW1l
X2dldF9kb21fd2luZG93ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCitX
RUJLSVRfQVBJIEdkb21Eb2N1bWVudCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1l
bnQgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKIFdFQktJVF9BUEkgV2Vi
S2l0V2ViVmlldyAqCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAgICAgICAoV2ViS2l0
V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIApAQCAtOTMsNiArMTA2LDEwIEBACiBXRUJLSVRfQVBJ
IEpTR2xvYmFsQ29udGV4dFJlZgogd2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dl
YmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAg
ICAqbmFtZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpJbmRleDogV2ViS2l0L2d0ay93ZWJr
aXQvRXZlbnRMaXN0ZW5lcldpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0
L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0
L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisKKyNpZm5kZWYgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1dJTkRPV19ICisjZGVm
aW5lIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgor
I2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKworZXh0ZXJuICJDIiB7CisvKiBU
T0RPOiBtYWtlIGEgR2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MsIHRvIGJlIHJldHVybmVkIGhlcmUg
Ki8KK30KKworI2VuZGlmIC8qSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1dJTkRPV19IICovCkluZGV4
OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAko
cmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRwUmVx
dWVzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKworI2lm
bmRlZiBKU19ET01fRVZFTlRfTElTVEVORVJfWE1MX0hUVFBfUkVRVUVTVF9ICisjZGVmaW5lIEpT
X0RPTV9FVkVOVF9MSVNURU5FUl9YTUxfSFRUUF9SRVFVRVNUX0gKKworI2luY2x1ZGUgPGdsaWIu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKKyNpbmNsdWRlICJHZG9t
WE1MSHR0cFJlcXVlc3QuaCIKKworLyogVE9ETzogcmV0dXJuIHRoZSBhY3R1YWwgZXZlbnQgbGlz
dGVuZXIgY3JlYXRlZCwgd2hpY2ggcmVxdWlyZXMKKyAqIGEgZ2xpYiB3cmFwcGVyIG9iamVjdCB0
byBiZSBjcmVhdGVkLgorICogVE9ETzogcHJvdmlkZSBhICdyZW1vdmVfZXZlbnRfbGlzdGVuZXIn
IHdoaWNoIHRha2VzIHRoYXQgZ2xpYgorICogb2JqZWN0IGFzIGFuIGFyZ3VtZW50ICovCitleHRl
cm4gIkMiIHsKK1dFQktJVF9BUEkKK2dib29sZWFuIGFkZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50
X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCAqd2YsCisgICAgICAgICAgICAgICBjb25zdCBj
aGFyICpuYW1lKTsKK30KKworI2VuZGlmIC8qSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1hNTF9IVFRQ
X1JFUVVFU1RfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0
ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1
ZGUgIlN0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRN
TERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUg
Ik5vZGUuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRXZl
bnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJOb2RlLmgiCisjaW5j
bHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5j
bHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJHZG9t
RXZlbnQuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21E
T01PYmplY3QuaCIKKyNpbmNsdWRlICJ3ZWJraXRldmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIgorCisKKyNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgorCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBkb2MpOworICAgIGdwb2ludGVyIHRv
R0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShYTUxIdHRw
UmVxdWVzdCogbm9kZSk7Cit9CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKFdlYktp
dEV2ZW50LCB3ZWJraXRfZXZlbnQsIEdfVFlQRV9PQkpFQ1QpOworCitzdHJ1Y3QgX1dlYktpdEV2
ZW50UHJpdmF0ZSB7CisgICAgRXZlbnQqIGV2ZW50OworfTsKKworI2RlZmluZSBXRUJLSVRfRVZF
TlRfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBX
RUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZlbnRQcml2YXRlKSkKKworc3RhdGljIHZvaWQgd2Vi
a2l0X2V2ZW50X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvL1dlYktpdEV2ZW50
KiByZXF1ZXN0ID0gV0VCS0lUX0VWRU5UKG9iamVjdCk7CisgICAgLy9XZWJLaXRFdmVudFByaXZh
dGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworCisgICAgLy9nX2ZyZWUocHJpdi0+dXJpKTsKKwor
ICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9ldmVudF9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShv
YmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfY2xhc3NfaW5pdChXZWJLaXRF
dmVudENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENs
YXNzKS0+ZmluYWxpemUgPSB3ZWJraXRfZXZlbnRfZmluYWxpemU7CisKKyAgICBnX3R5cGVfY2xh
c3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoV2ViS2l0RXZlbnRQcml2YXRlKSk7
Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9ldmVudF9pbml0KFdlYktpdEV2ZW50KiByZXF1ZXN0
KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9FVkVOVF9HRVRfUFJJ
VkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsKK30KKworV2ViS2l0RXZl
bnQqIHdlYmtpdF9ldmVudF9uZXcodm9pZCkKK3sKKyAgICBXZWJLaXRFdmVudCogcmVxdWVzdCA9
IFdFQktJVF9FVkVOVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfRVZFTlQsIE5VTEwpKTsKKyAg
ICAvL3ByaXYtPmV2ZW50ID0gZXZlbnQ7CisKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKworLyoK
K3ZvaWQgd2Via2l0X2V2ZW50X3NldF91cmkoV2ViS2l0RXZlbnQqIHJlcXVlc3QsIGNvbnN0IGdj
aGFyKiB1cmkpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfRVZFTlQocmVxdWVz
dCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKKworICAgIFdlYktpdEV2ZW50UHJpdmF0
ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAgICBnX2ZyZWUocHJpdi0+dXJpKTsKKyAgICBw
cml2LT51cmkgPSBnX3N0cmR1cCh1cmkpOworfQorKi8KK0dfQ09OU1RfUkVUVVJOIGdjaGFyKiB3
ZWJraXRfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoV2ViS2l0RXZlbnQqIHJlcXVlc3QpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0VWRU5UKHJlcXVlc3QpLCBOVUxMKTsKKwor
ICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgcmV0dXJu
IGdfc3RyZHVwKHByaXYtPmV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cit9
CisKK3ZvaWQgd2Via2l0X2V2ZW50X2NhbmNlbF9idWJibGUgIChXZWJLaXRFdmVudCAqcmVxdWVz
dCwgZ2Jvb2xlYW4gY2FuY2VsKQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJl
cXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnNldENhbmNlbEJ1YmJsZShjYW5jZWwpOwor
fQorCit2b2lkIHdlYmtpdF9ldmVudF9wcmV2ZW50X2RlZmF1bHQgIChXZWJLaXRFdmVudCAqcmVx
dWVzdCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2Owor
ICAgIHByaXYtPmV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworfQorCit2b2lkIHdlYmtpdF9ldmVu
dF9zdG9wX3Byb3BhZ2F0aW9uICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QpCit7CisgICAgV2ViS2l0
RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5ldmVudC0+c3Rv
cFByb3BhZ2F0aW9uKCk7Cit9CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93aW5kb3dfZXZl
bnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNvbnN0IGNoYXIg
Km5hbWUpOworCit9IC8vIGV4dGVybiAiQyIKKworY2xhc3MgWE1MSHR0cFJlcXVlc3RFdmVudExp
c3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21YTUxIdHRwUmVx
dWVzdCogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IFhNTEh0dHBSZXF1ZXN0RXZlbnRM
aXN0ZW5lcih3ZikpOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9v
bCB1c2VDYXB0dXJlKTsKKworICAgIHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7
IG1fdHlwZSA9IGdfc3RyZHVwKGV2dHlwZSk7IH0KKyAgICBwcml2YXRlOgorICAgIGNoYXIgKm1f
dHlwZTsKKyAgICBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0
KiB3ZikgOiBtX3dmKHdmKQorICAgIHsgbV90eXBlID0gTlVMTDsgfQorICAgIH5YTUxIdHRwUmVx
dWVzdEV2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAgICAgICAg
ICAgIGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBHZG9tWE1MSHR0cFJlcXVlc3QqIG1fd2Y7
Cit9OworCit2b2lkIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZl
bnQqIGV2ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAg
IGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5
cGUpOworICAgIC8qIFRPRE86IHNlZSBKU0V2ZW50TGlzdGVuZXIuY3BwJ3MgaGFuZGxlRXZlbnQg
LSBzb21lIHdlaXJkIHN0dWZmLi4uICovCisgICAgcHJpbnRmKCJYTUxIdHRwUmVxdWVzdCBoYW5k
bGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50KSk7Cisg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwgd2V2LCB1c2VDYXB0dXJlLCAm
cmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30KKworY2xhc3MgTm9kZUV2ZW50TGlzdGVu
ZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Tm9kZUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9tRXZlbnRUYXJnZXROb2RlKiB3ZikKKyAg
ICB7IHJldHVybiBhZG9wdFJlZihuZXcgTm9kZUV2ZW50TGlzdGVuZXIod2YpKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgdXNlQ2FwdHVyZSk7CisKKyAgICB2
b2lkIHNldF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0cmR1cChldnR5
cGUpOyB9CisgICAgcHJpdmF0ZToKKyAgICBjaGFyICptX3R5cGU7CisgICAgTm9kZUV2ZW50TGlz
dGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogd2YpIDogbV93Zih3ZikKKyAgICB7IG1fdHlwZSA9
IE5VTEw7IH0KKyAgICB+Tm9kZUV2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1f
dHlwZSkKKyAgICAgICAgICAgIGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBHZG9tRXZlbnRU
YXJnZXROb2RlKiBtX3dmOworfTsKKwordm9pZCBOb2RlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZl
bnQoRXZlbnQqIGV2ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFs
OworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMi
LCBtX3R5cGUpOworICAgIHByaW50Zigibm9kZSBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5
cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01f
RVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1l
KG1fd2YsIGV2bmFtZSwgd2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZu
YW1lKTsKK30KKworY2xhc3MgV2luZG93RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3Rl
bmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXaW5kb3dFdmVudExpc3RlbmVy
PiBjcmVhdGUoV2ViS2l0V2ViRnJhbWUqIHdmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXaW5kb3dFdmVudExpc3RlbmVyKHdmKSk7IAorICAgIH0KKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOworICAgIHZvaWQgc2V0
X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlwZSA9IGdfc3RyZHVwKGV2dHlwZSk7IH0K
KyAgICBwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsKKyAgICBXaW5kb3dFdmVudExpc3RlbmVy
KFdlYktpdFdlYkZyYW1lKiB3ZikgOiBtX3dmKHdmKQorICAgIHsgbV90eXBlID0gTlVMTDsgfQor
ICAgIH5XaW5kb3dFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUpCisg
ICAgICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgV2ViS2l0V2ViRnJhbWUqIG1f
d2Y7Cit9OworCit2b2lkIFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBl
dmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQoreworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVw
X3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5cGUpOworICAgIGdib29sZWFuIHJldHZh
bDsKKyAgICBwcmludGYoIndpbmRvdyBoYW5kbGVFdmVudCAlcyAlc1xuIiwgZXZuYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9H
RE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwgd2V2
LCBpc1dpbmRvd0V2ZW50LCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30KKworZ2Jv
b2xlYW4gYWRkX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1
ZXN0ICp3ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQor
eworICAgIFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0ICpyZXEgPSBnZG9tX3htbF9odHRwX3JlcXVl
c3RfZ2V0X3ByaXZhdGUod2YpOworICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVy
biBGQUxTRTsKKyAgICBpZiAocmVxID09IE5VTEwpCisgICAgICAgIHJldHVybiBGQUxTRTsKKwor
ICAgIGlmIChzdHJjbXAobmFtZSwgIm9ucmVhZHlzdGF0ZWNoYW5nZSIpID09IDApCisgICAgewor
ICAgICAgICBSZWZQdHI8WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyPiBsaXN0ZW5lcjsKKyAg
ICAgICAgbGlzdGVuZXIgPSBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7
CisgICAgICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICAgICAgcmVxLT5zZXRPblJl
YWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgIHJldHVybiBUUlVFOwor
ICAgIH0KKyAgICByZXR1cm4gRkFMU0U7Cit9IAorCitnYm9vbGVhbiBhZGRfZXZlbnRfbGlzdGVu
ZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBXZWJDb3JlOjpO
b2RlICpub2RlID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh3Zik7CisgICAg
aWYgKG5vZGUgPT0gTlVMTCB8fCAhbm9kZS0+aXNFdmVudFRhcmdldE5vZGUoKSkKKyAgICAgICAg
cmV0dXJuIEZBTFNFOworICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGV0biA9IChzdGF0
aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKj4obm9kZSkpLT50b05vZGUoKTsKKyAg
ICBpZiAoZXRuID09IE5VTEwpCisgICAgICAgIHJldHVybiBGQUxTRTsKKworICAgIFJlZlB0cjxO
b2RlRXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBOb2RlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdm
KTsKKyAgICBsaXN0ZW5lci0+c2V0X3R5cGUobmFtZSk7CisgICAgZXRuLT5hZGRFdmVudExpc3Rl
bmVyKG5hbWUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsKKworICAgIHJldHVybiBUUlVFOworCit9
IAorCitnYm9vbGVhbiBhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lICp3
ZiwgRnJhbWUgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBjaGFyICpuYW1lKQoreworICAgIERvY3VtZW50KiBkb2MgPSBmcmFtZS0+ZG9jdW1lbnQoKTsK
KworICAgIFJlZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IFdpbmRvd0V2ZW50
TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgbGlzdGVuZXItPnNldF90eXBlKG5hbWUpOworICAg
IGRvYy0+YWRkV2luZG93RXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5lciwgdHJ1ZSk7CisKKyAg
ICByZXR1cm4gVFJVRTsKKworfSAKKwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVm
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAko
cmV2aXNpb24gMzYxMjkpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDkgQEAKIAogR19CRUdJTl9ERUNMUwogCit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0RXZlbnQgV2ViS2l0RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RXZlbnRDbGFzcyBXZWJLaXRFdmVudENsYXNzOworCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0
d29ya1JlcXVlc3QgV2ViS2l0TmV0d29ya1JlcXVlc3Q7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
TmV0d29ya1JlcXVlc3RDbGFzcyBXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzOwogCkluZGV4OiBX
ZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
d2Via2l0L2dkb21kZWZpbmVzLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9n
ZG9tZGVmaW5lcy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5k
ZWYgV0VCS0lUX0dET01fREVGSU5FU19ICisjZGVmaW5lIFdFQktJVF9HRE9NX0RFRklORVNfSAor
CisjaW5jbHVkZSA8Z2xpYi5oPgorCisjaWZkZWYgR19PU19XSU4zMgorICAgICNpZmRlZiBCVUlM
RElOR19XRUJLSVRfR0RPTQorICAgICAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQSSBfX2RlY2xz
cGVjKGRsbGV4cG9ydCkKKyAgICAjZWxzZQorICAgICAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQ
SSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyAgICAjZW5kaWYKKyAgICAjZGVmaW5lIFdFQktJVF9H
RE9NX09CU09MRVRFX0FQSSBXRUJLSVRfR0RPTV9BUEkKKyNlbHNlCisgICAgI2RlZmluZSBXRUJL
SVRfR0RPTV9BUEkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyAgICAj
ZGVmaW5lIFdFQktJVF9HRE9NX09CU09MRVRFX0FQSSBXRUJLSVRfR0RPTV9BUEkgX19hdHRyaWJ1
dGVfXygoZGVwcmVjYXRlZCkpCisjZW5kaWYKKworI2lmbmRlZiBXRUJLSVRfR0RPTV9BUEkKKyAg
ICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQSQorI2VuZGlmCisKK0dfQkVHSU5fREVDTFMKKwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2RvbUV2ZW50VGFyZ2V0Tm9k
ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOworCit0
eXBlZGVmIHN0cnVjdCBfR2RvbUF0dHIgR2RvbUF0dHI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUF0
dHJDbGFzcyBHZG9tQXR0ckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21CYXJJbmZvIEdkb21C
YXJJbmZvOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21CYXJJbmZvQ2xhc3MgR2RvbUJhckluZm9DbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzR3JhZGllbnQgR2RvbUNhbnZhc0dyYWRpZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNHcmFkaWVudENsYXNzIEdkb21DYW52YXNHcmFk
aWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQYXR0ZXJuIEdkb21DYW52YXNQ
YXR0ZXJuOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQYXR0ZXJuQ2xhc3MgR2RvbUNhbnZh
c1BhdHRlcm5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGl4ZWxBcnJheSBHZG9t
Q2FudmFzUGl4ZWxBcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGl4ZWxBcnJheUNs
YXNzIEdkb21DYW52YXNQaXhlbEFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCBHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDbGFzcyBHZG9tQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNEQVRBU2VjdGlvbiBH
ZG9tQ0RBVEFTZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DREFUQVNlY3Rpb25DbGFzcyBH
ZG9tQ0RBVEFTZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNoYXJhY3RlckRhdGEg
R2RvbUNoYXJhY3RlckRhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNoYXJhY3RlckRhdGFDbGFz
cyBHZG9tQ2hhcmFjdGVyRGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DbGlwYm9hcmQg
R2RvbUNsaXBib2FyZDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2xpcGJvYXJkQ2xhc3MgR2RvbUNs
aXBib2FyZENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db21tZW50IEdkb21Db21tZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21Db21tZW50Q2xhc3MgR2RvbUNvbW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tQ29uc29sZSBHZG9tQ29uc29sZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q29uc29sZUNsYXNzIEdkb21Db25zb2xlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvdW50
ZXIgR2RvbUNvdW50ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvdW50ZXJDbGFzcyBHZG9tQ291
bnRlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NDaGFyc2V0UnVsZSBHZG9tQ1NTQ2hh
cnNldFJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0NoYXJzZXRSdWxlQ2xhc3MgR2RvbUNT
U0NoYXJzZXRSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ZvbnRGYWNlUnVsZSBH
ZG9tQ1NTRm9udEZhY2VSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NGb250RmFjZVJ1bGVD
bGFzcyBHZG9tQ1NTRm9udEZhY2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0lt
cG9ydFJ1bGUgR2RvbUNTU0ltcG9ydFJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ltcG9y
dFJ1bGVDbGFzcyBHZG9tQ1NTSW1wb3J0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21D
U1NNZWRpYVJ1bGUgR2RvbUNTU01lZGlhUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTTWVk
aWFSdWxlQ2xhc3MgR2RvbUNTU01lZGlhUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21D
U1NQYWdlUnVsZSBHZG9tQ1NTUGFnZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1BhZ2VS
dWxlQ2xhc3MgR2RvbUNTU1BhZ2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1By
aW1pdGl2ZVZhbHVlIEdkb21DU1NQcmltaXRpdmVWYWx1ZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTUHJpbWl0aXZlVmFsdWVDbGFzcyBHZG9tQ1NTUHJpbWl0aXZlVmFsdWVDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tQ1NTUnVsZSBHZG9tQ1NTUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTUnVsZUNsYXNzIEdkb21DU1NSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1J1
bGVMaXN0IEdkb21DU1NSdWxlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZUxpc3RD
bGFzcyBHZG9tQ1NTUnVsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTU3R5bGVE
ZWNsYXJhdGlvbiBHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTU3R5bGVEZWNsYXJhdGlvbkNsYXNzIEdkb21DU1NTdHlsZURlY2xhcmF0aW9uQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlUnVsZSBHZG9tQ1NTU3R5bGVSdWxlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21DU1NTdHlsZVJ1bGVDbGFzcyBHZG9tQ1NTU3R5bGVSdWxlQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlU2hlZXQgR2RvbUNTU1N0eWxlU2hlZXQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlU2hlZXRDbGFzcyBHZG9tQ1NTU3R5bGVTaGVldENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYWx1ZSBHZG9tQ1NTVmFsdWU7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUNTU1ZhbHVlQ2xhc3MgR2RvbUNTU1ZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUNTU1ZhbHVlTGlzdCBHZG9tQ1NTVmFsdWVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21DU1NWYWx1ZUxpc3RDbGFzcyBHZG9tQ1NTVmFsdWVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIEdkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlv
bjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25DbGFzcyBHZG9t
Q1NTVmFyaWFibGVzRGVjbGFyYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFy
aWFibGVzUnVsZSBHZG9tQ1NTVmFyaWFibGVzUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NT
VmFyaWFibGVzUnVsZUNsYXNzIEdkb21DU1NWYXJpYWJsZXNSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbURhdGFiYXNlIEdkb21EYXRhYmFzZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRGF0
YWJhc2VDbGFzcyBHZG9tRGF0YWJhc2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1l
bnRGcmFnbWVudCBHZG9tRG9jdW1lbnRGcmFnbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9j
dW1lbnRGcmFnbWVudENsYXNzIEdkb21Eb2N1bWVudEZyYWdtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbURvY3VtZW50IEdkb21Eb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9j
dW1lbnRDbGFzcyBHZG9tRG9jdW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1l
bnRUeXBlIEdkb21Eb2N1bWVudFR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50VHlw
ZUNsYXNzIEdkb21Eb2N1bWVudFR5cGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NQXBw
bGljYXRpb25DYWNoZSBHZG9tRE9NQXBwbGljYXRpb25DYWNoZTsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRE9NQXBwbGljYXRpb25DYWNoZUNsYXNzIEdkb21ET01BcHBsaWNhdGlvbkNhY2hlQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUNvcmVFeGNlcHRpb24gR2RvbURPTUNvcmVFeGNlcHRp
b247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUNvcmVFeGNlcHRpb25DbGFzcyBHZG9tRE9NQ29y
ZUV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01JbXBsZW1lbnRhdGlvbiBH
ZG9tRE9NSW1wbGVtZW50YXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUltcGxlbWVudGF0
aW9uQ2xhc3MgR2RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bURPTVBhcnNlciBHZG9tRE9NUGFyc2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01QYXJzZXJD
bGFzcyBHZG9tRE9NUGFyc2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVNlbGVjdGlv
biBHZG9tRE9NU2VsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01TZWxlY3Rpb25DbGFz
cyBHZG9tRE9NU2VsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVdpbmRvdyBH
ZG9tRE9NV2luZG93OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01XaW5kb3dDbGFzcyBHZG9tRE9N
V2luZG93Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVsZW1lbnQgR2RvbUVsZW1lbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUVsZW1lbnRDbGFzcyBHZG9tRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21FbnRpdHkgR2RvbUVudGl0eTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRW50
aXR5Q2xhc3MgR2RvbUVudGl0eUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbnRpdHlSZWZl
cmVuY2UgR2RvbUVudGl0eVJlZmVyZW5jZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRW50aXR5UmVm
ZXJlbmNlQ2xhc3MgR2RvbUVudGl0eVJlZmVyZW5jZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21FdmVudEV4Y2VwdGlvbiBHZG9tRXZlbnRFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUV2ZW50RXhjZXB0aW9uQ2xhc3MgR2RvbUV2ZW50RXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUV2ZW50IEdkb21FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRDbGFz
cyBHZG9tRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmlsZSBHZG9tRmlsZTsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRmlsZUNsYXNzIEdkb21GaWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUZpbGVMaXN0IEdkb21GaWxlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmlsZUxp
c3RDbGFzcyBHZG9tRmlsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSGlzdG9yeSBH
ZG9tSGlzdG9yeTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSGlzdG9yeUNsYXNzIEdkb21IaXN0b3J5
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBbmNob3JFbGVtZW50IEdkb21IVE1MQW5j
aG9yRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFuY2hvckVsZW1lbnRDbGFzcyBH
ZG9tSFRNTEFuY2hvckVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFwcGxl
dEVsZW1lbnQgR2RvbUhUTUxBcHBsZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
QXBwbGV0RWxlbWVudENsYXNzIEdkb21IVE1MQXBwbGV0RWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MQXJlYUVsZW1lbnQgR2RvbUhUTUxBcmVhRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTEFyZWFFbGVtZW50Q2xhc3MgR2RvbUhUTUxBcmVhRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUVsZW1lbnQgR2RvbUhUTUxCYXNlRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJhc2VFbGVtZW50Q2xhc3MgR2RvbUhUTUxCYXNl
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUZvbnRFbGVtZW50IEdk
b21IVE1MQmFzZUZvbnRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUZvbnRF
bGVtZW50Q2xhc3MgR2RvbUhUTUxCYXNlRm9udEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50IEdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudENsYXNzIEdkb21IVE1MQmxv
Y2txdW90ZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJvZHlFbGVtZW50
IEdkb21IVE1MQm9keUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCb2R5RWxlbWVu
dENsYXNzIEdkb21IVE1MQm9keUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TEJSRWxlbWVudCBHZG9tSFRNTEJSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJS
RWxlbWVudENsYXNzIEdkb21IVE1MQlJFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxCdXR0b25FbGVtZW50IEdkb21IVE1MQnV0dG9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTEJ1dHRvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTEJ1dHRvbkVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTENhbnZhc0VsZW1lbnQgR2RvbUhUTUxDYW52YXNFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ2FudmFzRWxlbWVudENsYXNzIEdkb21IVE1M
Q2FudmFzRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ29sbGVjdGlvbiBH
ZG9tSFRNTENvbGxlY3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxDb2xsZWN0aW9uQ2xh
c3MgR2RvbUhUTUxDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEaXJl
Y3RvcnlFbGVtZW50IEdkb21IVE1MRGlyZWN0b3J5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRDbGFzcyBHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERpdkVsZW1lbnQgR2RvbUhUTUxEaXZFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRGl2RWxlbWVudENsYXNzIEdkb21IVE1MRGl2RWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRExpc3RFbGVtZW50IEdkb21IVE1M
RExpc3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRExpc3RFbGVtZW50Q2xhc3Mg
R2RvbUhUTUxETGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERvY3Vt
ZW50IEdkb21IVE1MRG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEb2N1bWVudENs
YXNzIEdkb21IVE1MRG9jdW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEVsZW1l
bnQgR2RvbUhUTUxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRWxlbWVudENsYXNz
IEdkb21IVE1MRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRW1iZWRFbGVt
ZW50IEdkb21IVE1MRW1iZWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRW1iZWRF
bGVtZW50Q2xhc3MgR2RvbUhUTUxFbWJlZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTEZpZWxkU2V0RWxlbWVudCBHZG9tSFRNTEZpZWxkU2V0RWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudENsYXNzIEdkb21IVE1MRmllbGRTZXRFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb250RWxlbWVudCBHZG9tSFRNTEZv
bnRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9udEVsZW1lbnRDbGFzcyBHZG9t
SFRNTEZvbnRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb3JtRWxlbWVu
dCBHZG9tSFRNTEZvcm1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9ybUVsZW1l
bnRDbGFzcyBHZG9tSFRNTEZvcm1FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxGcmFtZUVsZW1lbnQgR2RvbUhUTUxGcmFtZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxGcmFtZUVsZW1lbnRDbGFzcyBHZG9tSFRNTEZyYW1lRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MRnJhbWVTZXRFbGVtZW50IEdkb21IVE1MRnJhbWVTZXRFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Q2xhc3MgR2RvbUhUTUxG
cmFtZVNldEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhlYWRFbGVtZW50
IEdkb21IVE1MSGVhZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIZWFkRWxlbWVu
dENsYXNzIEdkb21IVE1MSGVhZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TEhlYWRpbmdFbGVtZW50IEdkb21IVE1MSGVhZGluZ0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxIZWFkaW5nRWxlbWVudENsYXNzIEdkb21IVE1MSGVhZGluZ0VsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhSRWxlbWVudCBHZG9tSFRNTEhSRWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhSRWxlbWVudENsYXNzIEdkb21IVE1MSFJFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIdG1sRWxlbWVudCBHZG9tSFRNTEh0bWxFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSHRtbEVsZW1lbnRDbGFzcyBHZG9tSFRNTEh0
bWxFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJRnJhbWVFbGVtZW50IEdk
b21IVE1MSUZyYW1lRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElGcmFtZUVsZW1l
bnRDbGFzcyBHZG9tSFRNTElGcmFtZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTEltYWdlRWxlbWVudCBHZG9tSFRNTEltYWdlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTEltYWdlRWxlbWVudENsYXNzIEdkb21IVE1MSW1hZ2VFbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxJbnB1dEVsZW1lbnQgR2RvbUhUTUxJbnB1dEVsZW1lbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJbnB1dEVsZW1lbnRDbGFzcyBHZG9tSFRNTElucHV0RWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSXNJbmRleEVsZW1lbnQgR2RvbUhU
TUxJc0luZGV4RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElzSW5kZXhFbGVtZW50
Q2xhc3MgR2RvbUhUTUxJc0luZGV4RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MTGFiZWxFbGVtZW50IEdkb21IVE1MTGFiZWxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MTGFiZWxFbGVtZW50Q2xhc3MgR2RvbUhUTUxMYWJlbEVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTExlZ2VuZEVsZW1lbnQgR2RvbUhUTUxMZWdlbmRFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGVnZW5kRWxlbWVudENsYXNzIEdkb21IVE1MTGVnZW5k
RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTElFbGVtZW50IEdkb21IVE1M
TElFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTElFbGVtZW50Q2xhc3MgR2RvbUhU
TUxMSUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExpbmtFbGVtZW50IEdk
b21IVE1MTGlua0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMaW5rRWxlbWVudENs
YXNzIEdkb21IVE1MTGlua0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1h
cEVsZW1lbnQgR2RvbUhUTUxNYXBFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWFw
RWxlbWVudENsYXNzIEdkb21IVE1MTWFwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MTWFycXVlZUVsZW1lbnQgR2RvbUhUTUxNYXJxdWVlRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50Q2xhc3MgR2RvbUhUTUxNYXJxdWVlRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWVudUVsZW1lbnQgR2RvbUhUTUxNZW51RWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1lbnVFbGVtZW50Q2xhc3MgR2RvbUhUTUxN
ZW51RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWV0YUVsZW1lbnQgR2Rv
bUhUTUxNZXRhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1ldGFFbGVtZW50Q2xh
c3MgR2RvbUhUTUxNZXRhRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTW9k
RWxlbWVudCBHZG9tSFRNTE1vZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNb2RF
bGVtZW50Q2xhc3MgR2RvbUhUTUxNb2RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxPYmplY3RFbGVtZW50IEdkb21IVE1MT2JqZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTE9iamVjdEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9iamVjdEVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9MaXN0RWxlbWVudCBHZG9tSFRNTE9MaXN0RWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9MaXN0RWxlbWVudENsYXNzIEdkb21IVE1MT0xp
c3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQg
R2RvbUhUTUxPcHRHcm91cEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRHcm91
cEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9wdEdyb3VwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MT3B0aW9uRWxlbWVudCBHZG9tSFRNTE9wdGlvbkVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxPcHRpb25FbGVtZW50Q2xhc3MgR2RvbUhUTUxPcHRpb25FbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbiBHZG9tSFRN
TE9wdGlvbnNDb2xsZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0aW9uc0NvbGxl
Y3Rpb25DbGFzcyBHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50IEdkb21IVE1MUGFyYWdyYXBoRWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnRDbGFzcyBHZG9tSFRNTFBhcmFn
cmFwaEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFtRWxlbWVudCBH
ZG9tSFRNTFBhcmFtRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFtRWxlbWVu
dENsYXNzIEdkb21IVE1MUGFyYW1FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxQcmVFbGVtZW50IEdkb21IVE1MUHJlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TFByZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFByZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFF1b3RlRWxlbWVudCBHZG9tSFRNTFF1b3RlRWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTFF1b3RlRWxlbWVudENsYXNzIEdkb21IVE1MUXVvdGVFbGVtZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxTY3JpcHRFbGVtZW50IEdkb21IVE1MU2NyaXB0RWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNjcmlwdEVsZW1lbnRDbGFzcyBHZG9tSFRN
TFNjcmlwdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNlbGVjdEVsZW1l
bnQgR2RvbUhUTUxTZWxlY3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2VsZWN0
RWxlbWVudENsYXNzIEdkb21IVE1MU2VsZWN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MU3R5bGVFbGVtZW50IEdkb21IVE1MU3R5bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MU3R5bGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxTdHlsZUVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQgR2RvbUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDYXB0aW9uRWxl
bWVudENsYXNzIEdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MVGFibGVDZWxsRWxlbWVudCBHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJs
ZUNlbGxFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNvbEVsZW1l
bnQgR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJs
ZUNvbEVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxlQ29sRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MVGFibGVFbGVtZW50IEdkb21IVE1MVGFibGVFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlUm93RWxlbWVudCBHZG9tSFRNTFRh
YmxlUm93RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlUm93RWxlbWVudENs
YXNzIEdkb21IVE1MVGFibGVSb3dFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50IEdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRleHRBcmVhRWxl
bWVudCBHZG9tSFRNTFRleHRBcmVhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRl
eHRBcmVhRWxlbWVudENsYXNzIEdkb21IVE1MVGV4dEFyZWFFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxUaXRsZUVsZW1lbnQgR2RvbUhUTUxUaXRsZUVsZW1lbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxUaXRsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFRpdGxlRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVUxpc3RFbGVtZW50IEdkb21IVE1MVUxp
c3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVUxpc3RFbGVtZW50Q2xhc3MgR2Rv
bUhUTUxVTGlzdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSW1hZ2VEYXRhIEdk
b21JbWFnZURhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUltYWdlRGF0YUNsYXNzIEdkb21JbWFn
ZURhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZSBHZG9t
SmF2YVNjcmlwdENhbGxGcmFtZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSmF2YVNjcmlwdENhbGxG
cmFtZUNsYXNzIEdkb21KYXZhU2NyaXB0Q2FsbEZyYW1lQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUtleWJvYXJkRXZlbnQgR2RvbUtleWJvYXJkRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUtleWJvYXJkRXZlbnRDbGFzcyBHZG9tS2V5Ym9hcmRFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21Mb2NhdGlvbiBHZG9tTG9jYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUxvY2F0
aW9uQ2xhc3MgR2RvbUxvY2F0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lZGlhTGlz
dCBHZG9tTWVkaWFMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZWRpYUxpc3RDbGFzcyBHZG9t
TWVkaWFMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lc3NhZ2VFdmVudCBHZG9tTWVz
c2FnZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZXNzYWdlRXZlbnRDbGFzcyBHZG9tTWVz
c2FnZUV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQXJyYXkgR2RvbU1p
bWVUeXBlQXJyYXk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQXJyYXlDbGFzcyBHZG9t
TWltZVR5cGVBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NaW1lVHlwZSBHZG9tTWlt
ZVR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQ2xhc3MgR2RvbU1pbWVUeXBlQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1vdXNlRXZlbnQgR2RvbU1vdXNlRXZlbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbU1vdXNlRXZlbnRDbGFzcyBHZG9tTW91c2VFdmVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21NdXRhdGlvbkV2ZW50IEdkb21NdXRhdGlvbkV2ZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21NdXRhdGlvbkV2ZW50Q2xhc3MgR2RvbU11dGF0aW9uRXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tTmFtZWROb2RlTWFwIEdkb21OYW1lZE5vZGVNYXA7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbU5hbWVkTm9kZU1hcENsYXNzIEdkb21OYW1lZE5vZGVNYXBDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tTmF2aWdhdG9yIEdkb21OYXZpZ2F0b3I7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbU5hdmlnYXRvckNsYXNzIEdkb21OYXZpZ2F0b3JDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tTm9kZUZpbHRlciBHZG9tTm9kZUZpbHRlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Tm9kZUZpbHRlckNsYXNzIEdkb21Ob2RlRmlsdGVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bU5vZGUgR2RvbU5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVDbGFzcyBHZG9tTm9kZUNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlSXRlcmF0b3IgR2RvbU5vZGVJdGVyYXRvcjsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUl0ZXJhdG9yQ2xhc3MgR2RvbU5vZGVJdGVyYXRvckNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlTGlzdCBHZG9tTm9kZUxpc3Q7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbU5vZGVMaXN0Q2xhc3MgR2RvbU5vZGVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbU5vdGF0aW9uIEdkb21Ob3RhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm90
YXRpb25DbGFzcyBHZG9tTm90YXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tT3ZlcmZs
b3dFdmVudCBHZG9tT3ZlcmZsb3dFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tT3ZlcmZsb3dF
dmVudENsYXNzIEdkb21PdmVyZmxvd0V2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBs
dWdpbkFycmF5IEdkb21QbHVnaW5BcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luQXJy
YXlDbGFzcyBHZG9tUGx1Z2luQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2lu
IEdkb21QbHVnaW47Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbkNsYXNzIEdkb21QbHVnaW5D
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uIEdkb21Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVByb2Nlc3NpbmdJbnN0cnVj
dGlvbkNsYXNzIEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tUHJvZ3Jlc3NFdmVudCBHZG9tUHJvZ3Jlc3NFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tUHJvZ3Jlc3NFdmVudENsYXNzIEdkb21Qcm9ncmVzc0V2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbVJhbmdlRXhjZXB0aW9uIEdkb21SYW5nZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tUmFuZ2VFeGNlcHRpb25DbGFzcyBHZG9tUmFuZ2VFeGNlcHRpb25DbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tUmFuZ2UgR2RvbVJhbmdlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21S
YW5nZUNsYXNzIEdkb21SYW5nZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SZWN0IEdkb21S
ZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SZWN0Q2xhc3MgR2RvbVJlY3RDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tU2NyZWVuIEdkb21TY3JlZW47Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNj
cmVlbkNsYXNzIEdkb21TY3JlZW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMRXJyb3Ig
R2RvbVNRTEVycm9yOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxFcnJvckNsYXNzIEdkb21TUUxF
cnJvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXQgR2RvbVNRTFJlc3Vs
dFNldDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0Q2xhc3MgR2RvbVNRTFJlc3Vs
dFNldENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0IEdkb21T
UUxSZXN1bHRTZXRSb3dMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRSb3dM
aXN0Q2xhc3MgR2RvbVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tU1FMVHJhbnNhY3Rpb24gR2RvbVNRTFRyYW5zYWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21TUUxUcmFuc2FjdGlvbkNsYXNzIEdkb21TUUxUcmFuc2FjdGlvbkNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21TdG9yYWdlRXZlbnQgR2RvbVN0b3JhZ2VFdmVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tU3RvcmFnZUV2ZW50Q2xhc3MgR2RvbVN0b3JhZ2VFdmVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21TdG9yYWdlIEdkb21TdG9yYWdlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9y
YWdlQ2xhc3MgR2RvbVN0b3JhZ2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVl
dCBHZG9tU3R5bGVTaGVldDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldENsYXNzIEdk
b21TdHlsZVNoZWV0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hlZXRMaXN0IEdk
b21TdHlsZVNoZWV0TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldExpc3RDbGFz
cyBHZG9tU3R5bGVTaGVldExpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dEV2ZW50
IEdkb21UZXh0RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRleHRFdmVudENsYXNzIEdkb21U
ZXh0RXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dCBHZG9tVGV4dDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tVGV4dENsYXNzIEdkb21UZXh0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVRyZWVXYWxrZXIgR2RvbVRyZWVXYWxrZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRyZWVX
YWxrZXJDbGFzcyBHZG9tVHJlZVdhbGtlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21VSUV2
ZW50IEdkb21VSUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21VSUV2ZW50Q2xhc3MgR2RvbVVJ
RXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQgR2Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRBbmltYXRp
b25FdmVudENsYXNzIEdkb21XZWJLaXRBbmltYXRpb25FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSBHZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3MgR2Rv
bVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktp
dFRyYW5zaXRpb25FdmVudCBHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnRDbGFzcyBHZG9tV2ViS2l0VHJhbnNpdGlvbkV2
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdoZWVsRXZlbnQgR2RvbVdoZWVsRXZlbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdoZWVsRXZlbnRDbGFzcyBHZG9tV2hlZWxFdmVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiBHZG9tWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0RXhj
ZXB0aW9uQ2xhc3MgR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0IEdkb21YTUxIdHRwUmVxdWVzdDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RDbGFzcyBHZG9tWE1MSHR0cFJlcXVlc3RDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50IEdkb21YTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudENsYXNzIEdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQgR2RvbVhNTEh0dHBSZXF1
ZXN0VXBsb2FkOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZENsYXNz
IEdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxT
ZXJpYWxpemVyIEdkb21YTUxTZXJpYWxpemVyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxTZXJp
YWxpemVyQ2xhc3MgR2RvbVhNTFNlcmlhbGl6ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
WFBhdGhFdmFsdWF0b3IgR2RvbVhQYXRoRXZhbHVhdG9yOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Y
UGF0aEV2YWx1YXRvckNsYXNzIEdkb21YUGF0aEV2YWx1YXRvckNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21YUGF0aEV4Y2VwdGlvbiBHZG9tWFBhdGhFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVhQYXRoRXhjZXB0aW9uQ2xhc3MgR2RvbVhQYXRoRXhjZXB0aW9uQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXhwcmVzc2lvbiBHZG9tWFBhdGhFeHByZXNzaW9uOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV4cHJlc3Npb25DbGFzcyBHZG9tWFBhdGhFeHByZXNzaW9u
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoTlNSZXNvbHZlciBHZG9tWFBhdGhOU1Jl
c29sdmVyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aE5TUmVzb2x2ZXJDbGFzcyBHZG9tWFBh
dGhOU1Jlc29sdmVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoUmVzdWx0IEdkb21Y
UGF0aFJlc3VsdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhSZXN1bHRDbGFzcyBHZG9tWFBh
dGhSZXN1bHRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFNMVFByb2Nlc3NvciBHZG9tWFNM
VFByb2Nlc3NvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFNMVFByb2Nlc3NvckNsYXNzIEdkb21Y
U0xUUHJvY2Vzc29yQ2xhc3M7CisKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAgICAg
ICAgICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VW
RU5UX1RBUkdFVF9OT0RFICAgICAgICAgICAgKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0FUVFIgICAgICAgICAgICAoZ2RvbV9hdHRyX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9CQVJfSU5GTyAgICAgICAgICAgIChnZG9tX2Jhcl9p
bmZvX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DQU5WQVNfR1JBRElFTlQgICAgICAg
ICAgICAoZ2RvbV9jYW52YXNfZ3JhZGllbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0NBTlZBU19QQVRURVJOICAgICAgICAgICAgKGdkb21fY2FudmFzX3BhdHRlcm5fZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19QSVhFTF9BUlJBWSAgICAgICAgICAgIChnZG9t
X2NhbnZhc19waXhlbF9hcnJheV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0FOVkFT
X1JFTkRFUklOR19DT05URVhUMkQgICAgICAgICAgICAoZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2Nv
bnRleHQyZF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0RBVEFfU0VDVElPTiAgICAg
ICAgICAgIChnZG9tX2NkYXRhX3NlY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0NIQVJBQ1RFUl9EQVRBICAgICAgICAgICAgKGdkb21fY2hhcmFjdGVyX2RhdGFfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NMSVBCT0FSRCAgICAgICAgICAgIChnZG9tX2NsaXBib2Fy
ZF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ09NTUVOVCAgICAgICAgICAgIChnZG9t
X2NvbW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NPTlNPTEUgICAgICAgICAg
ICAoZ2RvbV9jb25zb2xlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DT1VOVEVSICAg
ICAgICAgICAgKGdkb21fY291bnRlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NT
X0NIQVJTRVRfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19jaGFyc2V0X3J1bGVfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19GT05UX0ZBQ0VfUlVMRSAgICAgICAgICAgIChnZG9t
X2Nzc19mb250X2ZhY2VfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX0lN
UE9SVF9SVUxFICAgICAgICAgICAgKGdkb21fY3NzX2ltcG9ydF9ydWxlX2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9DU1NfTUVESUFfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19tZWRp
YV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfUEFHRV9SVUxFICAgICAg
ICAgICAgKGdkb21fY3NzX3BhZ2VfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
Q1NTX1BSSU1JVElWRV9WQUxVRSAgICAgICAgICAgIChnZG9tX2Nzc19wcmltaXRpdmVfdmFsdWVf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19SVUxFICAgICAgICAgICAgKGdkb21f
Y3NzX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19SVUxFX0xJU1QgICAg
ICAgICAgICAoZ2RvbV9jc3NfcnVsZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9DU1NfU1RZTEVfREVDTEFSQVRJT04gICAgICAgICAgICAoZ2RvbV9jc3Nfc3R5bGVfZGVjbGFy
YXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19TVFlMRV9SVUxFICAgICAg
ICAgICAgKGdkb21fY3NzX3N0eWxlX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0NTU19TVFlMRV9TSEVFVCAgICAgICAgICAgIChnZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZBTFVFICAgICAgICAgICAgKGdkb21fY3NzX3Zh
bHVlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFMVUVfTElTVCAgICAgICAg
ICAgIChnZG9tX2Nzc192YWx1ZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9D
U1NfVkFSSUFCTEVTX0RFQ0xBUkFUSU9OICAgICAgICAgICAgKGdkb21fY3NzX3ZhcmlhYmxlc19k
ZWNsYXJhdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZBUklBQkxFU19S
VUxFICAgICAgICAgICAgKGdkb21fY3NzX3ZhcmlhYmxlc19ydWxlX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9EQVRBQkFTRSAgICAgICAgICAgIChnZG9tX2RhdGFiYXNlX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAgICAgIChnZG9t
X2RvY3VtZW50X2ZyYWdtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET0NVTUVO
VCAgICAgICAgICAgIChnZG9tX2RvY3VtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9ET0NVTUVOVF9UWVBFICAgICAgICAgICAgKGdkb21fZG9jdW1lbnRfdHlwZV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfRE9NX0FQUExJQ0FUSU9OX0NBQ0hFICAgICAgICAgICAgKGdk
b21fZG9tX2FwcGxpY2F0aW9uX2NhY2hlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9E
T01fQ09SRV9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV9kb21fY29yZV9leGNlcHRpb25fZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9JTVBMRU1FTlRBVElPTiAgICAgICAgICAg
IChnZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
RE9NX1BBUlNFUiAgICAgICAgICAgIChnZG9tX2RvbV9wYXJzZXJfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0RPTV9TRUxFQ1RJT04gICAgICAgICAgICAoZ2RvbV9kb21fc2VsZWN0aW9u
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET01fV0lORE9XICAgICAgICAgICAgKGdk
b21fZG9tX3dpbmRvd19nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VOVElU
WSAgICAgICAgICAgIChnZG9tX2VudGl0eV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
RU5USVRZX1JFRkVSRU5DRSAgICAgICAgICAgIChnZG9tX2VudGl0eV9yZWZlcmVuY2VfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9t
X2V2ZW50X2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRVZFTlQgICAg
ICAgICAgICAoZ2RvbV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRklMRSAg
ICAgICAgICAgIChnZG9tX2ZpbGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0ZJTEVf
TElTVCAgICAgICAgICAgIChnZG9tX2ZpbGVfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSElTVE9SWSAgICAgICAgICAgIChnZG9tX2hpc3RvcnlfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfQU5DSE9SX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Fu
Y2hvcl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0FQUExFVF9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9BUkVBX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X2FyZWFfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CQVNFX0VM
RU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Jhc2VfZWxlbWVudF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfSFRNTF9CQVNFX0ZPTlRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxfYmFzZV9mb250X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxf
QkxPQ0tRVU9URV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9ibG9ja3F1b3RlX2VsZW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQk9EWV9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxCUl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGJyX2VsZW1lbnRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQlVUVE9OX0VMRU1FTlQgICAgICAgICAgICAo
Z2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MX0NBTlZBU19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9jYW52YXNfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9DT0xMRUNUSU9OICAgICAgICAgICAg
KGdkb21faHRtbF9jb2xsZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1M
X0RJUkVDVE9SWV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9kaXJlY3RvcnlfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9ESVZfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfZGl2X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxEX0xJU1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxkX2xpc3RfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9ET0NVTUVOVCAgICAgICAgICAgIChn
ZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9FTUJFRF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9lbWJlZF9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZJRUxEX1NFVF9FTEVN
RU5UICAgICAgICAgICAgKGdkb21faHRtbF9maWVsZF9zZXRfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GT05UX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X2ZvbnRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GT1JNX0VM
RU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfSFRNTF9GUkFNRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9m
cmFtZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZSQU1FX1NF
VF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9IRUFEX0VMRU1FTlQgICAgICAgICAgICAoZ2Rv
bV9odG1sX2hlYWRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9I
RUFESU5HX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTEhSX0VMRU1FTlQgICAgICAgICAgICAoZ2Rv
bV9odG1saHJfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9IVE1M
X0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2h0bWxfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTElfRlJBTUVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxpX2ZyYW1lX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSU1B
R0VfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9JTlBVVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21f
aHRtbF9pbnB1dF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0lT
X0lOREVYX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2lzX2luZGV4X2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTEFCRUxfRUxFTUVOVCAgICAgICAgICAg
IChnZG9tX2h0bWxfbGFiZWxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
SFRNTF9MRUdFTkRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbGVnZW5kX2VsZW1lbnRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxMSV9FTEVNRU5UICAgICAgICAgICAg
KGdkb21faHRtbGxpX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxf
TElOS19FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTUFQX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9o
dG1sX21hcF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01BUlFV
RUVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWFycXVlZV9lbGVtZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01FTlVfRUxFTUVOVCAgICAgICAgICAgIChnZG9t
X2h0bWxfbWVudV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01F
VEFfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01PRF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9tb2RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PQkpFQ1Rf
RUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxPX0xJU1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxvX2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PUFRf
R1JPVVBfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfT1BUSU9OX0VMRU1FTlQgICAgICAgICAg
ICAoZ2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9IVE1MX09QVElPTlNfQ09MTEVDVElPTiAgICAgICAgICAgIChnZG9tX2h0bWxfb3B0aW9uc19j
b2xsZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1BBUkFHUkFQSF9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9wYXJhZ3JhcGhfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9QQVJBTV9FTEVNRU5UICAgICAgICAgICAgKGdkb21f
aHRtbF9wYXJhbV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1BS
RV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9wcmVfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9RVU9URV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF9xdW90ZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1NDUklQ
VF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9zY3JpcHRfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9TRUxFQ1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9t
X2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxf
U1RZTEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DQVBUSU9OX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX3RhYmxlX2NhcHRpb25fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DRUxMX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9U
QUJMRV9DT0xfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9UQUJMRV9ST1dfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfcm93
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfU0VDVElP
Tl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEVYVF9BUkVBX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX1RJVExFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RpdGxlX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxVX0xJU1RfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWx1X2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSU1BR0VfREFUQSAgICAgICAgICAgIChnZG9tX2ltYWdlX2RhdGFfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0pBVkFfU0NSSVBUX0NBTExfRlJBTUUgICAgICAgICAgICAo
Z2RvbV9qYXZhX3NjcmlwdF9jYWxsX2ZyYW1lX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9LRVlCT0FSRF9FVkVOVCAgICAgICAgICAgIChnZG9tX2tleWJvYXJkX2V2ZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9MT0NBVElPTiAgICAgICAgICAgIChnZG9tX2xvY2F0aW9u
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NRURJQV9MSVNUICAgICAgICAgICAgKGdk
b21fbWVkaWFfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUVTU0FHRV9FVkVO
VCAgICAgICAgICAgIChnZG9tX21lc3NhZ2VfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX01JTUVfVFlQRV9BUlJBWSAgICAgICAgICAgIChnZG9tX21pbWVfdHlwZV9hcnJheV9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUlNRV9UWVBFICAgICAgICAgICAgKGdkb21f
bWltZV90eXBlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NT1VTRV9FVkVOVCAgICAg
ICAgICAgIChnZG9tX21vdXNlX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9N
VVRBVElPTl9FVkVOVCAgICAgICAgICAgIChnZG9tX211dGF0aW9uX2V2ZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9OQU1FRF9OT0RFX01BUCAgICAgICAgICAgIChnZG9tX25hbWVk
X25vZGVfbWFwX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OQVZJR0FUT1IgICAgICAg
ICAgICAoZ2RvbV9uYXZpZ2F0b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05PREVf
RklMVEVSICAgICAgICAgICAgKGdkb21fbm9kZV9maWx0ZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX05PREUgICAgICAgICAgICAoZ2RvbV9ub2RlX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9OT0RFX0lURVJBVE9SICAgICAgICAgICAgKGdkb21fbm9kZV9pdGVyYXRvcl9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTk9ERV9MSVNUICAgICAgICAgICAgKGdkb21f
bm9kZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT1RBVElPTiAgICAgICAg
ICAgIChnZG9tX25vdGF0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9PVkVSRkxP
V19FVkVOVCAgICAgICAgICAgIChnZG9tX292ZXJmbG93X2V2ZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9QTFVHSU5fQVJSQVkgICAgICAgICAgICAoZ2RvbV9wbHVnaW5fYXJyYXlf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1BMVUdJTiAgICAgICAgICAgIChnZG9tX3Bs
dWdpbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUFJPQ0VTU0lOR19JTlNUUlVDVElP
TiAgICAgICAgICAgIChnZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX1BST0dSRVNTX0VWRU5UICAgICAgICAgICAgKGdkb21fcHJvZ3Jlc3Nf
ZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1JBTkdFX0VYQ0VQVElPTiAgICAg
ICAgICAgIChnZG9tX3JhbmdlX2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfUkFOR0UgICAgICAgICAgICAoZ2RvbV9yYW5nZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfUkVDVCAgICAgICAgICAgIChnZG9tX3JlY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX1NDUkVFTiAgICAgICAgICAgIChnZG9tX3NjcmVlbl9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfU1FMX0VSUk9SICAgICAgICAgICAgKGdkb21fc3FsX2Vycm9yX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxfUkVTVUxUX1NFVCAgICAgICAgICAgIChnZG9tX3Nx
bF9yZXN1bHRfc2V0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxfUkVTVUxUX1NF
VF9ST1dfTElTVCAgICAgICAgICAgIChnZG9tX3NxbF9yZXN1bHRfc2V0X3Jvd19saXN0X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxfVFJBTlNBQ1RJT04gICAgICAgICAgICAoZ2Rv
bV9zcWxfdHJhbnNhY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NUT1JBR0Vf
RVZFTlQgICAgICAgICAgICAoZ2RvbV9zdG9yYWdlX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9TVE9SQUdFICAgICAgICAgICAgKGdkb21fc3RvcmFnZV9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfU1RZTEVfU0hFRVQgICAgICAgICAgICAoZ2RvbV9zdHlsZV9zaGVl
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1RZTEVfU0hFRVRfTElTVCAgICAgICAg
ICAgIChnZG9tX3N0eWxlX3NoZWV0X2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1RFWFRfRVZFTlQgICAgICAgICAgICAoZ2RvbV90ZXh0X2V2ZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9URVhUICAgICAgICAgICAgKGdkb21fdGV4dF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfVFJFRV9XQUxLRVIgICAgICAgICAgICAoZ2RvbV90cmVlX3dhbGtlcl9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfVUlfRVZFTlQgICAgICAgICAgICAoZ2RvbV91
aV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfV0VCX0tJVF9BTklNQVRJT05f
RVZFTlQgICAgICAgICAgICAoZ2RvbV93ZWJfa2l0X2FuaW1hdGlvbl9ldmVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfV0VCX0tJVF9DU1NfVFJBTlNGT1JNX1ZBTFVFICAgICAgICAg
ICAgKGdkb21fd2ViX2tpdF9jc3NfdHJhbnNmb3JtX3ZhbHVlX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9XRUJfS0lUX1RSQU5TSVRJT05fRVZFTlQgICAgICAgICAgICAoZ2RvbV93ZWJf
a2l0X3RyYW5zaXRpb25fZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1dIRUVM
X0VWRU5UICAgICAgICAgICAgKGdkb21fd2hlZWxfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVFU1RfRVhDRVBUSU9OICAgICAgICAgICAgKGdkb21feG1s
X2h0dHBfcmVxdWVzdF9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hN
TF9IVFRQX1JFUVVFU1QgICAgICAgICAgICAoZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9YTUxfSFRUUF9SRVFVRVNUX1BST0dSRVNTX0VWRU5UICAg
ICAgICAgICAgKGdkb21feG1sX2h0dHBfcmVxdWVzdF9wcm9ncmVzc19ldmVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfWE1MX0hUVFBfUkVRVUVTVF9VUExPQUQgICAgICAgICAgICAo
Z2RvbV94bWxfaHR0cF9yZXF1ZXN0X3VwbG9hZF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfWE1MX1NFUklBTElaRVIgICAgICAgICAgICAoZ2RvbV94bWxfc2VyaWFsaXplcl9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWF9QQVRIX0VWQUxVQVRPUiAgICAgICAgICAgIChnZG9t
X3hfcGF0aF9ldmFsdWF0b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9F
WENFUFRJT04gICAgICAgICAgICAoZ2RvbV94X3BhdGhfZXhjZXB0aW9uX2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9YX1BBVEhfRVhQUkVTU0lPTiAgICAgICAgICAgIChnZG9tX3hfcGF0
aF9leHByZXNzaW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YX1BBVEhfTlNfUkVT
T0xWRVIgICAgICAgICAgICAoZ2RvbV94X3BhdGhfbnNfcmVzb2x2ZXJfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9SRVNVTFQgICAgICAgICAgICAoZ2RvbV94X3BhdGhfcmVz
dWx0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YU0xUX1BST0NFU1NPUiAgICAgICAg
ICAgIChnZG9tX3hzbHRfcHJvY2Vzc29yX2dldF90eXBlKCkpCitHX0VORF9ERUNMUworCisjZW5k
aWYKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L2dkb20uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL3dlYmtpdC9nZG9tLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9t
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTYwIEBACisjaW5jbHVkZSA8d2Via2l0L0dkb21F
dmVudFRhcmdldE5vZGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTU9iamVjdC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tQXR0ci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQmFySW5mby5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2FudmFzR3JhZGllbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUNhbnZhc1BhdHRlcm4uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNhbnZhc1BpeGVs
QXJyYXkuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ0RBVEFTZWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21DaGFyYWN0ZXJEYXRhLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DbGlwYm9hcmQuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNvbW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNv
bnNvbGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNvdW50ZXIuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUNTU0NoYXJzZXRSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NGb250RmFj
ZVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU0ltcG9ydFJ1bGUuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUNTU01lZGlhUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTUGFn
ZVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21DU1NSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NSdWxl
TGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tQ1NTU3R5bGVSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21D
U1NTdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NWYWx1ZS5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tQ1NTVmFsdWVMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NW
YXJpYWJsZXNEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTVmFyaWFibGVz
UnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRGF0YWJhc2UuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbURvY3VtZW50RnJhZ21lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURvY3VtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1bWVudFR5cGUuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTUNv
cmVFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTUltcGxlbWVudGF0aW9uLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01QYXJzZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bURPTVNlbGVjdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NV2luZG93Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21FbnRpdHku
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUVudGl0eVJlZmVyZW5jZS5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tRXZlbnRFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUV2ZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21GaWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21GaWxl
TGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSGlzdG9yeS5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTEFuY2hvckVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxBcHBs
ZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQXJlYUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCYXNlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTEJhc2VGb250RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJsb2Nr
cXVvdGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQm9keUVsZW1lbnQuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUhUTUxCdXR0b25FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQ2FudmFz
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTENvbGxlY3Rpb24uaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21IVE1MRGl2RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTERMaXN0RWxl
bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTERvY3VtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEVtYmVk
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21IVE1MRm9ybUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxGcmFtZUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIZWFkRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tSFRNTEhlYWRpbmdFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSFJFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSHRtbEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxJRnJhbWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MSW1hZ2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSW5wdXRFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxMYWJlbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhU
TUxMZWdlbmRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTElFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTGlua0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxNYXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTWFycXVl
ZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxNZW51RWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE1ldGFFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21IVE1MTW9kRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9iamVjdEVsZW1l
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxPcHRpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MUGFyYW1FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21IVE1MUHJlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFF1b3Rl
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxTZWxlY3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21IVE1MU3R5bGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVD
YXB0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1l
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxUYWJsZVJvd0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGV4dEFyZWFFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGl0bGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MVUxpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21JbWFn
ZURhdGEuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUtleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUxvY2F0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21NZWRpYUxpc3QuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbU1lc3NhZ2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTWltZVR5
cGVBcnJheS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTWltZVR5cGUuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbU1vdXNlRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU11dGF0aW9uRXZl
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5hbWVkTm9kZU1hcC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tTmF2aWdhdG9yLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Ob2RlRmlsdGVyLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21Ob2RlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Ob2Rl
SXRlcmF0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVMaXN0Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21Ob3RhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tT3ZlcmZsb3dFdmVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUGx1Z2luQXJyYXkuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbVBsdWdpbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Qcm9ncmVzc0V2ZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21SYW5nZUV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUmFuZ2Uu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVJlY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVNj
cmVlbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU1FMRXJyb3IuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbVNRTFJlc3VsdFNldC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU1FMUmVzdWx0U2V0
Um93TGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU1FMVHJhbnNhY3Rpb24uaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbVN0b3JhZ2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU3Rv
cmFnZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU3R5bGVTaGVldC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tU3R5bGVTaGVldExpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVRleHRFdmVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tVGV4dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
VHJlZVdhbGtlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tVUlFdmVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21XZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVdoZWVsRXZlbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRwUmVx
dWVzdFVwbG9hZC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWE1MU2VyaWFsaXplci5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhFdmFsdWF0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bVhQYXRoRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YUGF0aEV4cHJlc3Npb24u
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRoTlNSZXNvbHZlci5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tWFBhdGhSZXN1bHQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhTTFRQcm9jZXNz
b3IuaD4KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lm
bmRlZiBXRUJLSVRfRVZFTlRfSAorI2RlZmluZSBXRUJLSVRfRVZFTlRfSAorCisjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD4KKworI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0df
QkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9FVkVOVCAgICAgICAgICAgICh3ZWJr
aXRfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0VWRU5UKG9iaikgICAgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0VWRU5ULCBX
ZWJLaXRFdmVudCkpCisjZGVmaW5lIFdFQktJVF9FVkVOVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQ
RV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZl
bnRDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19FVkVOVChvYmopICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9FVkVOVCkpCisjZGVmaW5lIFdF
QktJVF9JU19FVkVOVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFz
cyksICBXRUJLSVRfVFlQRV9FVkVOVCkpCisjZGVmaW5lIFdFQktJVF9FVkVOVF9HRVRfQ0xBU1Mo
b2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9FVkVO
VCwgV2ViS2l0RXZlbnRDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudFByaXZh
dGUgV2ViS2l0RXZlbnRQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdEV2ZW50IHsKKyAgICBHT2Jq
ZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSAqcHJpdjsKK307
CisKK3N0cnVjdCBfV2ViS2l0RXZlbnRDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9j
bGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9ldmVudF9nZXRfdHlwZSAodm9p
ZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0RXZlbnQgKgord2Via2l0X2V2ZW50X25ldyAgICAgICh2
b2lkKTsKKworLypXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9ldmVudF9zZXRfdXJpICAoV2ViS2l0
RXZlbnQgKnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciogICAgICAgICAgdXJpKTsqLworCitHX0VORF9ERUNMUworCisjZW5kaWYKSW5kZXg6IFdl
YktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAzNjM0OSkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMDgtMDktMTIgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKiB3ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0
L0V2ZW50TGlzdGVuZXJXaW5kb3cuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L0V2ZW50TGlz
dGVuZXJYTUxIdHRwUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvZ2RvbS5oOiBB
ZGRlZC4gIFRoaXMgZmlsZSBwdWxscyBpbiBhbGwgb2YgdGhlIGdkb20gZ2xpYiBoZWFkZXJzLiAg
aXQncyB0aGVyZSBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGJlIGxhenkgYW5kIG5vdCBoYXZlIHRv
ICNpbmNsdWRlIDMwMCBmaWxlcy4KKyAgICAgICAgKiB3ZWJraXQvZ2RvbWRlZmluZXMuaDogQWRk
ZWQuIFRoZSBzdHlsZSBvZiB0aGlzIGZpbGUgaXMgY29waWVkIGZyb20gd2Via2l0ZGVmaW5lcy5o
IGFuZCBpcyB1bmxpa2VseSB0byBzdXJ2aXZlIGZvciBsb25nLgorICAgICAgICAqIHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdGV2ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfZmluYWxpemUpOgor
ICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X2NsYXNzX2luaXQpOgor
ICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X2luaXQpOgorICAgICAg
ICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X25ldyk6CisgICAgICAgIChfV2Vi
S2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfZ2V0X2V2ZW50X3R5cGUpOgorICAgICAgICAo
X1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X2NhbmNlbF9idWJibGUpOgorICAgICAg
ICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X3ByZXZlbnRfZGVmYXVsdCk6Cisg
ICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfc3RvcF9wcm9wYWdhdGlv
bik6CisgICAgICAgIChYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OnNldF90eXBlKToKKyAgICAgICAgKFhN
TEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6flhNTEh0dHBSZXF1ZXN0RXZl
bnRMaXN0ZW5lcik6CisgICAgICAgIChYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OmhhbmRs
ZUV2ZW50KToKKyAgICAgICAgKE5vZGVFdmVudExpc3RlbmVyOjpjcmVhdGUpOgorICAgICAgICAo
Tm9kZUV2ZW50TGlzdGVuZXI6OnNldF90eXBlKToKKyAgICAgICAgKE5vZGVFdmVudExpc3RlbmVy
OjpOb2RlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6fk5vZGVF
dmVudExpc3RlbmVyKToKKyAgICAgICAgKE5vZGVFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6
CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVyOjpjcmVhdGUpOgorICAgICAgICAoV2luZG93
RXZlbnRMaXN0ZW5lcjo6c2V0X3R5cGUpOgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6
V2luZG93RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVyOjp+V2lu
ZG93RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVyOjpoYW5kbGVF
dmVudCk6CisgICAgICAgIChhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9saXN0ZW5lcik6Cisg
ICAgICAgIChhZGRfZXZlbnRfbGlzdGVuZXIpOgorICAgICAgICAoYWRkX3dpbmRvd19ldmVudF9s
aXN0ZW5lcik6CisgICAgICAgICogd2Via2l0L3dlYmtpdGV2ZW50Lmg6IEFkZGVkLgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6IGFkZGVkIGJyb3dzZXItZXZlbnQsIHN1cHBv
cnQgZm9yIFhNTEh0dHBSZXF1ZXN0LCBnZXR0aW5nIERPTSBXaW5kb3csIERPTSBEb2N1bWVudCwg
YW5kIFdpbmRvdyBldmVudCBsaXN0ZW5lci4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJh
bWUuaDoKKwogMjAwOC0wOS0xMCAgQWxwIFRva2VyICA8YWxwQG51YW50aS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAzNjEyOSkKKysr
IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiBX
ZWJDb3JlIDo9ICQoc3JjZGlyKS9XZWJDb3JlCiAKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBU
IDo9IExBTkdVQUdFX0pBVkFTQ1JJUFQ9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gOj0gTEFOR1VB
R0VfR09CSkVDVD0xCiBTVkdfRkVBVFVSRVMgOj0KIEhUTUxfRkVBVFVSRVMgOj0KIApAQCAtOSw2
ICsxMCw3IEBACiBXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUyA6PSAkKFdlYkNvcmUpL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAorCS1JJChzcmNkaXIp
L1dlYktpdC9ndGsgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUgXAogCS1JJChzcmNkaXIpL1dlYkNv
cmUvYmluZGluZ3MvanMgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYnJpZGdlIFwKQEAgLTI3LDYg
KzI5LDcgQEAKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtIFwKIAktSSQoc3JjZGlyKS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbSBc
CiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAJLUkkKHNy
Y2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAgXAogCS1JJChzcmNkaXIp
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmIFwKQEAgLTU2LDcgKzU5LDcgQEAK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1JHQkNvbG9yLmx1dC5oIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxl
bWVudEJhc2VUYWJsZS5jcHAKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVu
dEJhc2VUYWJsZS5jcHAgCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNv
dXJjZXMvQ1NTR3JhbW1hci5jcHAgXApAQCAtMzY1LDcgKzM2OCw1OTEgQEAKIAlEZXJpdmVkU291
cmNlcy9Vc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKIAlEZXJpdmVkU291cmNlcy9Vc2VyQWdlbnRT
dHlsZVNoZWV0c0RhdGEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHAgXAotCURl
cml2ZWRTb3VyY2VzL1hNTE5hbWVzLmgKKwlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQXR0ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21BdHRyLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUJhckluZm8uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U0NoYXJzZXRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0NoYXJzZXRSdWxlLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ1NTRm9udEZhY2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NJbXBv
cnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU01lZGlhUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NNZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNTU1BhZ2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NQcmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQcmltaXRpdmVW
YWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHls
ZURlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVJ1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21DU1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlU2hlZXQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NW
YXJpYWJsZXNEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVz
UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DYW52YXNHcmFkaWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGF0dGVybi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQYXR0ZXJuLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZh
c1BpeGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ2hhcmFjdGVyRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJk
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ29tbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db21tZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbnNv
bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQ29yZUV4Y2VwdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21E
T01JbXBsZW1lbnRhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NUGFyc2VyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
RE9NU2VsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVNlbGVjdGlvbi5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bURPTVdpbmRvdy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50
RnJhZ21lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbURvY3VtZW50VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRp
dHkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5UmVm
ZXJlbmNlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnRFeGNlcHRpb24uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmlsZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmlsZUxpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBbmNob3JFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MQXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXBwbGV0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEJSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEJhc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFz
ZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRm9udEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
Qm9keUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCdXR0b25FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MQ2FudmFzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENvbGxlY3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TERMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpcmVjdG9yeUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxEaXZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRG9jdW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNl
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9ybUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJh
bWVTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSFJFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSHRt
bEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJ
bWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJbnB1dEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxJc0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExJRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxM
YWJlbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMZWdlbmRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTGlua0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TExpbmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFwRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxN
YXJxdWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxN
ZXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxPTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9MaXN0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbkVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYW1FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQcmVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTY3Jp
cHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2VsZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
U3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDYXB0aW9uRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRh
YmxlQ29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFRpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFVMaXN0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IaXN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhpc3RvcnkuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21JbWFnZURhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tS2V5Ym9hcmRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21L
ZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Mb2NhdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Mb2NhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tTWVzc2FnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lc3NhZ2VF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tTWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlQXJyYXku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tTW91c2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Nb3VzZUV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NdXRhdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU11dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hbWVkTm9k
ZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbU5hdmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYXZpZ2F0
b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTm9kZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRl
cmF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21Ob2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tTm90YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU92ZXJmbG93RXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1
Z2luQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
UHJvZ3Jlc3NFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2UuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tUmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlRXhjZXB0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJlY3QuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TY3Jl
ZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldExp
c3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRl
eHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dE1ldHJpY3MuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tVGV4dE1ldHJpY3MuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRyZWVX
YWxrZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVHJlZVdhbGtlci5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tVUlFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21VSUV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2Vi
S2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5z
aXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdoZWVsRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tV2hlZWxFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVl
c3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Y
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1M
SHR0cFJlcXVlc3RVcGxvYWQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVl
c3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTFNlcmlhbGl6ZXIuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWE1MU2VyaWFsaXplci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WFNMVFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YU0xUUHJvY2Vzc29yLmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQXR0ci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tQXR0ci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUJhckluZm8u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUJhckluZm8uaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21DREFUQVNlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0No
YXJzZXRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NDaGFyc2V0UnVs
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTRm9udEZhY2VSdWxlLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ1NTSW1wb3J0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNT
U01lZGlhUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTTWVkaWFSdWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1BhZ2VSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NT
UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTUnVsZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21DU1NSdWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNT
U1N0eWxlRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1N0
eWxlRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZVJ1
bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1N0eWxlUnVsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUNTU1N0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYWx1ZUxpc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ZhbHVlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUNTU1ZhcmlhYmxlc1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52
YXNHcmFkaWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzR3JhZGll
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNQYXR0ZXJuLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tQ2FudmFzUGl4ZWxBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tQ2hhcmFjdGVyRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2hhcmFj
dGVyRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNsaXBib2FyZC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tQ29tbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ29t
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNvbnNvbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21Db3VudGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db3VudGVyLmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NQ29yZUV4Y2VwdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NQ29yZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbURPTUltcGxlbWVudGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21ET01JbXBsZW1lbnRhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbURPTVBhcnNlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NUGFyc2Vy
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NU2VsZWN0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01TZWxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURP
TVdpbmRvdy5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURvY3VtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbURvY3VtZW50RnJhZ21lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbURvY3VtZW50RnJhZ21lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1
bWVudFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURvY3VtZW50VHlwZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21F
bnRpdHkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUVudGl0eS5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tRW50aXR5UmVmZXJlbmNlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUV2ZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRXZlbnRFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tRmlsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRmlsZS5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUZpbGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxBbmNob3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQW5j
aG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBcHBsZXRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQXBwbGV0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBcmVhRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTEJSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTEJSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxC
YXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJhc2VFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJhc2VGb250RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MQm9keUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MQnV0dG9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
Q2FudmFzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENhbnZh
c0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQ29sbGVjdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRExpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MRExpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxE
aXZFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERvY3VtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRG9jdW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
RW1iZWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRW1iZWRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZpZWxkU2V0RWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGb250RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MRm9ybUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRnJh
bWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lU2V0RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lU2V0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MSGVhZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxIZWFkaW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhl
YWRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEh0bWxFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSHRtbEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSUZyYW1lRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTElucHV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TElucHV0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJc0luZGV4
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExJRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExJRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxMYWJlbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MTGVnZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGlua0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMaW5rRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTE1lbnVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
TWVudUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWV0YUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZXRhRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNb2RFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxPTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxPTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
T2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9iamVj
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT3B0R3JvdXBFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT3B0R3JvdXBFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdGlvbkVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRpb25FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MUGFyYW1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MUGFyYW1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TFByZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxQcmVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFF1b3RlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MU2NyaXB0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MU2VsZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxTdHlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxTdHls
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDZWxsRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2VsbEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDb2xFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDb2xFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MVGV4dEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TFRpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRpdGxl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxVTGlzdEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IaXN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IaXN0b3J5LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSW1hZ2VE
YXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21JbWFnZURhdGEuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tS2V5Ym9hcmRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tS2V5Ym9hcmRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUxvY2F0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Mb2NhdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbU1lZGlhTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVzc2Fn
ZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZXNzYWdlRXZlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tTWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21N
aW1lVHlwZUFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NaW1lVHlwZUFy
cmF5LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTW91c2VFdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTW91c2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbU11dGF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bU11dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21OYW1lZE5vZGVN
YXAuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5hdmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tTmF2aWdhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9k
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbU5vZGVGaWx0ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlSXRlcmF0
b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGVJdGVyYXRvci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21Ob2RlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vdGF0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob3RhdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbU92ZXJmbG93RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbU92ZXJmbG93RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21QbHVnaW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVBsdWdpbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVBsdWdpbkFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUHJv
Z3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUHJvZ3Jlc3NFdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVJhbmdlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVJh
bmdlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SYW5nZUV4Y2Vw
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21T
Y3JlZW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNjcmVlbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbVN0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHls
ZVNoZWV0TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3R5bGVTaGVldExp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UZXh0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21UZXh0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGV4
dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UZXh0RXZlbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UZXh0TWV0cmljcy5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tVGV4dE1ldHJpY3MuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21UcmVlV2Fsa2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UcmVlV2Fsa2Vy
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVUlFdmVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tVUlFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21X
ZWJLaXRBbmltYXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdlYktp
dFRyYW5zaXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0
VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2hlZWxFdmVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2hlZWxFdmVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MU2Vy
aWFsaXplci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhTTFRQcm9jZXNzb3IuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhTTFRQcm9jZXNzb3IuaCAgXAorCVdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAorCVdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIAogCiBJ
RExfQklORElOR1MgKz0gIFwKIAlXZWJDb3JlL2Nzcy9Db3VudGVyLmlkbCBcCkBAIC03MTEsNiAr
MTI5OCwxNiBAQAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
RE9NQmluZGluZy5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oIFwK
KwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2
YXRlR2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2Rv
bURPTU9iamVjdC5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAgXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIFwKIAlX
ZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgXAogCVdlYkNvcmUvYnJpZGdlL05QX2pzb2Jq
ZWN0LmggXAogCVdlYkNvcmUvYnJpZGdlL2MvY19jbGFzcy5jcHAgXApAQCAtMjA0Niw5ICsyNjQz
LDEyIEBACiAjIC0tLS0KIGlmIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKIEZFQVRV
UkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9
MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
Uz0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCi0JRGVyaXZlZFNvdXJjZXMvSlNET01B
cHBsaWNhdGlvbkNhY2hlLmNwcAorCURlcml2ZWRTb3VyY2VzL0pTRE9NQXBwbGljYXRpb25DYWNo
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01BcHBsaWNhdGlvbkNhY2hlLmNwcAogCiBJRExf
QklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuaWRsCkBAIC0yMDkwLDYgKzI2OTAsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfREFUQUJBU0UK
IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9EQVRBQkFTRT0xCitGRUFUVVJF
X0RFRklORVNfR0RPTSArPSBFTkFCTEVfREFUQUJBU0U9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0pTRGF0YWJhc2UuY3BwIFwKQEAgLTIxMDEsNyArMjcw
MiwyNyBAQAogCURlcml2ZWRTb3VyY2VzL0pTU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL0pTU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9K
U1NRTFRyYW5zYWN0aW9uLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFuc2FjdGlvbi5o
CisJRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRGF0YWJhc2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRGF0YWJhc2UuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNRTEVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTEVy
cm9yLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1FMUmVzdWx0U2V0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1
bHRTZXRSb3dMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldFJvd0xp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tRGF0YWJhc2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURhdGFiYXNlLmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVNRTEVycm9yLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
U1FMUmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxSZXN1bHRT
ZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxSZXN1bHRTZXRSb3dMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxSZXN1bHRTZXRSb3dMaXN0LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVNRTFRyYW5zYWN0aW9uLmgKIAogSURMX0JJTkRJTkdTICs9IFwK
IAlXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaWRsIFwKQEAgLTIxNzUsMTIgKzI3OTYsMjEgQEAK
ICMgLS0tLQogaWYgRU5BQkxFX0RPTV9TVE9SQUdFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCArPSBFTkFCTEVfRE9NX1NUT1JBR0U9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxF
X0RPTV9TVE9SQUdFPTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291
cmNlcy9KU1N0b3JhZ2UuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2UuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9KU1N0b3Jh
Z2VFdmVudC5oCisJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVN0b3JhZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFnZS5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVN0b3JhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0b3JhZ2Uu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbVN0b3JhZ2VFdmVudC5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2UuaWRsIFwKQEAgLTIyNDAsNiArMjg3MCw3IEBACiAjIC0tLS0KIGlmIEVOQUJM
RV9WSURFTwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1ZJREVPPTEKK0ZF
QVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9WSURFTz0xCiAKIEhUTUxfRkVBVFVSRVMgKz0g
RU5BQkxFX1ZJREVPPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfVklERU89MQpAQCAt
MjI2Miw3ICsyODkzLDM1IEBACiAJRGVyaXZlZFNvdXJjZXMvSlNUaW1lUmFuZ2VzLmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvSlNUaW1lUmFuZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL0pTVm9pZENh
bGxiYWNrLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suaAorCURlcml2ZWRT
b3VyY2VzL0pTVm9pZENhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXVkaW9F
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBdWRpb0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZWRpYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTE1lZGlhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNvdXJj
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNvdXJjZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFZpZGVvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFF
cnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUVycm9yLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21UaW1lUmFuZ2VzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRpbWVSYW5n
ZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVZvaWRDYWxsYmFjay5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Wb2lkQ2FsbGJhY2suaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MQXVkaW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQXVk
aW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1lZGlhRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1lZGlhRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxTb3VyY2VFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21NZWRpYUVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZWRpYUVycm9y
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGltZVJhbmdlcy5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGltZVJhbmdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbVZvaWRDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVm9p
ZENhbGxiYWNrLmgKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2h0bWwvSFRNTEF1ZGlv
RWxlbWVudC5pZGwgXApAQCAtMjMwNiw2ICsyOTY1LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1hQ
QVRICiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFBBVEg9MQorRkVBVFVS
RV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1hQQVRIPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAt
REVOQUJMRV9YUEFUSD0xCiAKQEAgLTIzMjEsNyArMjk4MSwyNyBAQAogCURlcml2ZWRTb3VyY2Vz
L0pTWFBhdGhSZXN1bHQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVzdWx0LmggXAog
CURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hQYXRo
R3JhbW1hci5oCisJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21YUGF0aEV2YWx1YXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV2
YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeGNlcHRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVhQYXRoRXhwcmVzc2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4cHJlc3Np
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQ
YXRoUmVzdWx0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoUmVzdWx0LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXZhbHVhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tWFBhdGhFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQ
YXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFeHByZXNz
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV4cHJlc3Npb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVhQYXRoUmVzdWx0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21YUGF0aFJlc3VsdC5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS94bWwvWFBhdGhF
dmFsdWF0b3IuaWRsIFwKQEAgLTIzODYsNiArMzA2Niw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9Y
U0xUCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFNMVD0xCitGRUFUVVJF
X0RFRklORVNfR0RPTSArPSBFTkFCTEVfWFNMVD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURF
TkFCTEVfWFNMVD0xCiAKQEAgLTI0MDksNiArMzA5MCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9T
VkcKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9MQorI0ZFQVRVUkVf
REVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkc9MSAtIGJpZyBUT0RPISA6KQogCiBXRUJDT1JFX0NT
U19QUk9QRVJUWV9OQU1FUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmlu
IAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTVmFs
dWVLZXl3b3Jkcy5pbgpAQCAtMjY4Niw2ICszMzY4LDI3MyBAQAogCURlcml2ZWRTb3VyY2VzL1NW
R05hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHAKIAorbm90LXlldDoK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHQUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FsdEdseXBoRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbHRHbHlwaEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0FuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Fu
Z2xlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0FuaW1hdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlVHJh
bnNmb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEFuZ2xlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmltYXRlZEJvb2xlYW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
QW5pbWF0ZWRCb29sZWFuLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEVudW1l
cmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkSW50ZWdlci5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEludGVnZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVk
TGVuZ3RoLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZExlbmd0aExpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZE51bWJlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdBbmltYXRlZE51bWJlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTnVtYmVyTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
by5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRSZWN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
QW5pbWF0ZWRTdHJpbmcuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRTdHJp
bmcuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ2ly
Y2xlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDaXJjbGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDbGlwUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdDb2xvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDb2xvci5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0N1cnNvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQ3Vyc29yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVm
aW5pdGlvblNyY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVmaW5pdGlv
blNyY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZnNFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZnNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdEZXNjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEZXNjRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRWxlbWVudEluc3RhbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0VsZW1lbnRJbnN0YW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudEluc3Rh
bmNlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxsaXBzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRWxsaXBzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0V4
Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFeGNlcHRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ZFQmxlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0ZFQmxlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbG9yTWF0cml4
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
RURpc3RhbnRMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRmxvb2RF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRmxvb2RFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVG
dW5jQkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jQkVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0dFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGRUZ1bmNSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNSRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRkVJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFTWVy
Z2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFTWVyZ2VFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGRU9mZnNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVP
ZmZzZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVBvaW50TGlnaHRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVTcG90TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRkVUaWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVRpbGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZpbHRlckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRmlsdGVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZvbnRGYWNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGb250RmFjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlRm9y
bWF0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZUZvcm1hdEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VTcmNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNl
VXJpRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdHbHlwaEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHR3JhZGllbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdJbWFnZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHSW1hZ2VFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdMZW5ndGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGVu
Z3RoLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0xlbmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xp
bmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xpbmVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdNYXJrZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01h
cmtlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hc2tFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hc2tFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdNYXRyaXguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWF0cml4LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHTWV0YWRhdGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdN
aXNzaW5nR2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01pc3NpbmdH
bHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR051bWJlci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR051
bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTnVtYmVyTGlzdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUGFpbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
UGFpbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQYXRoU2VnLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWcuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdBcmNBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUGF0aFNlZ0FyY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0Fy
Y1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQXJjUmVsLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1BhdGhTZWdDbG9zZVBhdGguaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1
YmljUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21v
b3RoQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGhBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGhSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1Ntb290aEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNTbW9vdGhSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Bh
dGhTZWdMaW5ldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0
b0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxB
YnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxB
YnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVs
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVs
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvUmVsLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQ
YXRoU2VnTGluZXRvVmVydGljYWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhT
ZWdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTW92ZXRvQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Bh
dGhTZWdNb3ZldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ01vdmV0
b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0dGVybkVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0dGVybkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BvaW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvaW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHUG9pbnRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2x5Z29uRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2x5Z29uRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHUG9seWxpbmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1BvbHlsaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Jl
Y3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1JlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdS
ZW5kZXJpbmdJbnRlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVuZGVyaW5nSW50
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTVkdFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1NWR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Nj
cmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU2NyaXB0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTdG9wRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTdG9wRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHU3RyaW5nTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdTdHJpbmdMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTdHlsZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdTd2l0Y2hFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N3
aXRjaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N5bWJvbEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3ltYm9sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHVFJlZkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVFJl
ZkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RTcGFuRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdUU3BhbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdU
ZXh0Q29udGVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdUZXh0UGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHVGV4dFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRQb3NpdGlvbmlu
Z0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RpdGxlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdUaXRsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1RyYW5zZm9ybS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUcmFuc2Zvcm0u
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
VW5pdFR5cGVzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VuaXRUeXBlcy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHVXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdVc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdWaWV3RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdWaWV3RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHWm9vbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1pvb21F
dmVudC5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3ZnL0VsZW1lbnRUaW1lQ29u
dHJvbC5pZGwgXAogCVdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmlkbCBcCkBAIC0zMjY1LDM2ICs0
MjE0LDQyIEBACiAjIFNWRyBGZWF0dXJlcwogaWYgRU5BQkxFX1NWR19VU0UKIEZFQVRVUkVfREVG
SU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfVVNFPTEKKyNGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfU1ZHX1VTRT0xICMgYmlnIFRPRE8hCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxF
X1NWR19VU0U9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfVVNFPTEKIGVuZGlm
CiAKIGlmIEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9N
ICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MSAKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVf
U1ZHX0ZPUkVJR05fT0JKRUNUPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZP
UkVJR05fT0JKRUNUPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfRk9OVFMKIEZFQVRVUkVfREVG
SU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRk9OVFM9MQorI0ZFQVRVUkVfREVGSU5FU19H
RE9NICs9IEVOQUJMRV9TVkdfRk9OVFM9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9O
VFM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9OVFM9MQogZW5kaWYKIAog
aWYgRU5BQkxFX1NWR19GSUxURVJTCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFC
TEVfU1ZHX0ZJTFRFUlM9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfRklM
VEVSUz0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIHdlYmNvcmVfY3Bw
ZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19B
U19JTUFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19BU19JTUFH
RT0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BU19JTUFHRT0xCiBTVkdf
RkVBVFVSRVMgKz0gRU5BQkxFX1NWR19BU19JTUFHRT0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1E
RU5BQkxFX1NWR19BU19JTUFHRT0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FOSU1BVElPTgog
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQorI0ZF
QVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIFNWR19GRUFUVVJF
UyArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X1NWR19BTklNQVRJT049MQogZW5kaWYKQEAgLTMzMDIsNiArNDI1Nyw3IEBACiAjIFNWRyB0YWcg
YW5kIGF0dHJpYnV0ZSBuYW1lcyAobmVlZCB0byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4
cGVyaW1lbnRhbCBmZWF0dXJlcyBhcmUgZW5hYmxlZCkKIERlcml2ZWRTb3VyY2VzL1NWR05hbWVz
LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOwogRGVyaXZlZFNvdXJj
ZXMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVt
ZW50RmFjdG9yeS5jcHAKK0Rlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3Rv
cnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKIAogaWYgU1ZHX0ZM
QUdTCiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9t
L21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9z
dmdhdHRycy5pbgpAQCAtMzQyMyw2ICs0Mzc5LDE1IEBACiAgICAgJChXZWJDb3JlKS94bWwgXAog
ICAgICQoV2ViQ29yZSkvcGx1Z2lucwogCitEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbSUuaDog
RGVyaXZlZFNvdXJjZXMvR2RvbSUuaDsKKworRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb20lLmNw
cDogRGVyaXZlZFNvdXJjZXMvR2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9HZG9tJS5oOiBE
ZXJpdmVkU291cmNlcy9HZG9tJS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL0dkb20lLmNwcDogJS5p
ZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckdPYmplY3QucG0KKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRz
ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1
ZGUgJChXZWJDb3JlKS9kb20gLS1pbmNsdWRlICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUgJChX
ZWJDb3JlKS9jc3MgLS1pbmNsdWRlICQoV2ViQ29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJDb3Jl
KS94bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkvc3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMp
IiAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTX0dET00pIiAtLWdlbmVyYXRvciBHT2JqZWN0
ICQ8CisKIERlcml2ZWRTb3VyY2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiBE
ZXJpdmVkU291cmNlcy9KUyUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM0MzgsNiArNDQwMyw3
IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAog
CVdlYkNvcmUvY3NzL3F1aXJrcy5jc3MgXAogCVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBc
CkBAIC0zNDc1LDMgKzQ0NDEsNSBAQAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3IubHV0LmgKIAorCisK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRU
YXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2
YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUu
aCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8g
LSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5j
bHVkZSAiR2RvbUV2ZW50LmgiCitlbnVtIHsKKyAgICBCUk9XU0VSX0VWRU5ULAorICAgIExBU1Rf
U0lHTkFMCit9OworCitzdGF0aWMgZ3VpbnQgZXZlbnRfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7
IDAsIH07CisKKworV2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9w
cml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7CisgICAgR0RPTUV2ZW50VGFy
Z2V0Tm9kZSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19jYXN0PEdET01FdmVudFRhcmdldE5vZGUq
PihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7
CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHJlcy0+aW1wbCgp
KTsKK30KKworCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRXZlbnRUYXJnZXRO
b2RlLCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlLCBHRE9NX1RZUEVfTk9ERSk7CisKKy8qCitzdHJ1
Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpFdmVu
dFRhcmdldE5vZGUgKml0ZW07Cit9OyAgCisqLworCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VU
X05PREVfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmop
LCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRl
KSkKKworLyoKK3ZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfc2V0X3ByaXZhdGUoR2RvbUV2
ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCwgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSkK
K3sKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFS
R0VUX05PREVfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcHJpdi0+aXRlbSA9IGl0ZW07Cit9
CisqLworCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplKEdPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICAvKkdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QgPSBHRE9N
X0VWRU5UX1RBUkdFVF9OT0RFKG9iamVjdCk7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZh
dGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisgICAgCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2Rv
bV9ldmVudF90YXJnZXRfbm9kZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQor
CitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQoR2RvbUV2ZW50
VGFyZ2V0Tm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9X
U0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQ
RV9GUk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lH
TkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR19TSUdOQUxfREVUQUlMRUQgICAgKSwKKyAgICAgICAgMCwKKyAgICAgICAg
TlVMTCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNU
X0JPT0xFQU4sCisgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9NX1RZUEVfRVZF
TlQsIEdfVFlQRV9CT09MRUFOKTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcykt
PmZpbmFsaXplID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZTsKKworICAgIC8qZ190
eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21FdmVudFRhcmdl
dE5vZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9pbml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7CisgICAgLypHZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZB
VEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworfSAvKiBl
eHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2
ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2
YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLwor
CisKKyNpZm5kZWYgX19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19QUklWXworI2RlZmluZSBfX0dE
T01FdmVudFRhcmdldE5vZGVfSF9fX1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNp
bmNsdWRlICJQcml2YXRlR2RvbU5vZGUuaCIKK2NsYXNzIFdlYkNvcmU6Ok5vZGU7CisKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIEdkb21FdmVudFRhcmdldE5vZGU7CisKK1dF
QktJVF9BUEkgV2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2
YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QpOworCisjZW5kaWYKKwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUu
aCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorCitjbGFzcyBH
U3RyaW5nQ29udmVydCB7CisgICAgcHVibGljOgorICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAg
ICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0
cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRv
bWljU3RyaW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOyB9Cit9OworCitleHRlcm4gIkMiIHsKKworI2RlZmluZSBfR19HRVRfVVRGOChzdHIp
IChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKQorCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9u
b2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXopCit7
CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisgICAgLyoKKyAgICBXZWJDb3JlOjpFdmVu
dFRhcmdldE5vZGUgKiBpdGVtID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh0
aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcg
PSBXZWJDb3JlOjpTdHJpbmcoZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcpOworICAgIGl0ZW0t
PmluaXRFdmVudFRhcmdldE5vZGUoX2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcpOworICAg
ICovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisg
Ki8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNp
bmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkdE
T01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIgorCitleHRlcm4g
IkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRE9NT2JqZWN0LCBnZG9tX2RvbV9vYmplY3QsIEdf
VFlQRV9PQkpFQ1QpOworCitzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIHsKKyAgICAgR0RP
TU9iamVjdCAqbV9ub2RlOworfTsgIAorCisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9HRVRfUFJJ
VkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIEdET01fVFlQRV9E
T01fT0JKRUNULCBHZG9tRE9NT2JqZWN0UHJpdmF0ZSkpCisKK3ZvaWQKK2dkb21fZG9tX29iamVj
dF9zZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0ICogaXRlbSkK
K3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRf
UFJJVkFURShyZXF1ZXN0KTsKKyAgICBwcml2LT5tX25vZGUgPSBpdGVtOworICAgIC8qcHJpdi0+
bV9ub2RlLT5pbXBsKCktPnJlZigpOyovCit9CisKK0dET01PYmplY3QgKgorZ2RvbV9kb21fb2Jq
ZWN0X2dldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QpCit7CisgICAgR2RvbURPTU9i
amVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7
CisgICAgcmV0dXJuIHByaXYtPm1fbm9kZTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2Jq
ZWN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0KiByZXF1
ZXN0ID0gR0RPTV9ET01fT0JKRUNUKG9iamVjdCk7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUq
IHByaXYgPSByZXF1ZXN0LT5wcml2OworICAgIAorICAgIC8qcHJpdi0+bV9ub2RlLT5pbXBsKCkt
PmRlcmVmKCk7Ki8KKyAgICBkZWxldGUgcHJpdi0+bV9ub2RlOyAvKiBjYWxscyBtX2ltcGwtPmRl
cmVmKCkgKi8KKworICAgIEdfT0JKRUNUX0NMQVNTKGdkb21fZG9tX29iamVjdF9wYXJlbnRfY2xh
c3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3Rf
Y2xhc3NfaW5pdChHZG9tRE9NT2JqZWN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBHX09C
SkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdkb21fZG9tX29iamVjdF9maW5h
bGl6ZTsKKyAgICAKKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBz
aXplb2YoR2RvbURPTU9iamVjdFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21f
b2JqZWN0X2luaXQoR2RvbURPTU9iamVjdCogcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0
UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAg
ICByZXF1ZXN0LT5wcml2ID0gcHJpdjsKK30gICAKKworfSAvKiBleHRlcm4gIkMiICovCisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9fR2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18KKyNk
ZWZpbmUgX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXworI2luY2x1ZGUgImdsaWItb2JqZWN0Lmgi
CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0
eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyBHZG9tRXZlbnRUYXJnZXRO
b2RlQ2xhc3M7CisKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFICAgICAgICAg
ICAgKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9FVkVO
VF9UQVJHRVRfTk9ERShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGUp
KQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBF
X0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwg
R2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRf
Tk9ERShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9N
X1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9O
T0RFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01f
VFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVf
R0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9U
WVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorCit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgR2RvbUV2ZW50VGFyZ2V0Tm9k
ZVByaXZhdGU7CisKKyNpbmNsdWRlICJHZG9tTm9kZS5oIgorCitzdHJ1Y3QgX0dkb21FdmVudFRh
cmdldE5vZGUgeworICAgIEdkb21Ob2RlIHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21FdmVu
dFRhcmdldE5vZGVQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXRO
b2RlQ2xhc3MgeworICAgIEdkb21Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lU
X0FQSSBHVHlwZQorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSAodm9pZCk7CisKK1dF
QktJVF9BUEkgdm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50X3RhcmdldF9u
b2RlIChHZG9tRXZlbnRUYXJnZXROb2RlICp0aGl6KTsKKworR19FTkRfREVDTFMKKworI2VuZGlm
IC8qIF9fR2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18gKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dkb21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIK
KyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKwor
ZXh0ZXJuICJDIiB7CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdk
b21ET01PYmplY3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisJLyoK
KyAgICBXZWJDb3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2
YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0X3R5cGVfYXJnID0g
V2ViQ29yZTo6U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRET01P
YmplY3QoX2dfZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAvKiBleHRlcm4gIkMi
ICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVj
dC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9N
T2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRE9NT2JqZWN0
X0hfX19QUklWXworI2RlZmluZSBfX0dET01ET01PYmplY3RfSF9fX1BSSVZfCisjaW5jbHVkZSAi
Z2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCitHX0JFR0lOX0RFQ0xT
CisKK2NsYXNzIEdET01PYmplY3Q7CitXRUJLSVRfQVBJIEdET01PYmplY3QqCitnZG9tX2RvbV9v
YmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCk7CisKK1dFQktJVF9BUEkg
dm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3Qs
IEdET01PYmplY3QqIGl0ZW0pOworCitHX0VORF9ERUNMUworI2VuZGlmCisKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTgyIEBACisv
KgorICogVEhJUyBGSUxFIElTIERFUklWRUQgRlJPTSBBTiBBVVRPTUFUSUNBTExZIEdFTkVSQVRF
RCBGSUxFLgorICogIGtlZXBpbmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBk
b25lIGJ5IGFkZGluZworICogIGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRp
bmcgYSBzZXBhcmF0ZQorICogIGdlbmVyYXRlciB3aGljaCB0YWtlcyBKU0hUTUxFbGVtZW50V3Jh
cHBlckZhY3RvcnkuaCBhcyBpbnB1dC4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKgorICogQ29weXJp
Z2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisj
aW5jbHVkZSAiR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEFwcGxldEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxCYXNl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQm9keUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQ2FudmFzRWxlbWVudC5oIgor
I2luY2x1ZGUgIkdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxNb2RFbGVtZW50LmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxE
aXZFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRmllbGRTZXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxIZWFk
aW5nRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSHRtbEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTElt
YWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTGFiZWxFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTExpbmtFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxNYXJxdWVlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTE1ldGFFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9wdEdy
b3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MUGFyYW1F
bGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFN0
eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxUYWJs
ZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVS
b3dFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCIKKworI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1M
QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxCYXNlRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxCdXR0b25FbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRGlyZWN0
b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERpdkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxGb250
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEZvcm1FbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21IVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxIZWFk
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEhSRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TExJRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTExpbmtFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21IVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxNZXRhRWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MUGFyYWdy
YXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFBhcmFtRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MU2VsZWN0
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFN0eWxlRWxlbWVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGl0bGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFibGVSb3dFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKKworI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTEFwcGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXJlYUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUZvbnRFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJv
ZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxC
dXR0b25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXJlY3Rv
cnlFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
RExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9udEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkaW5n
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxI
UkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
SUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElzSW5kZXhFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTExJRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcnF1ZWVF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1l
dGFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFByZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNj
cmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxs
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MVGl0bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxVTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBH
RE9NTm9kZSogKCpDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4pOworCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFuY2hvcldyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MQW5jaG9yRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcHBsZXRXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEFwcGxldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFwcGxldEVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXJl
YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJhc2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxCYXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVCYXNlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUZvbnRFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxCYXNlRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmxvY2txdW90
ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJsb2NrcXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJvZHlXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJvZHlF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxCb2R5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQlJFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxCUkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlQnV0dG9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCdXR0b25FbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxCdXR0b25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUNhbnZhc1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQ2FudmFzRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQ2FudmFzRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVDb2xXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlQ29sRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDb2xFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1vZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTW9kRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MTW9kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpcmVjdG9yeUVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTERpcmVjdG9yeUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRGl2V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXZFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxEaXZFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZURMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxETGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTERMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVFbWJlZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRW1iZWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxF
bWJlZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlRmllbGRTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZpZWxkU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
RmllbGRTZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUZvbnRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb250
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVG
b3JtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxGb3JtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEZyYW1lRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lU2V0V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxGcmFtZVNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0RWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkaW5nV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxIZWFkaW5nRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZGluZ0VsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MSGVhZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhSV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxI
UkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIdG1sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIdG1sRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MSHRtbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlSUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxJRnJhbWVFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZUltYWdlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEltYWdlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVJbnB1dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlSXNJbmRleFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSXNJbmRleEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TElzSW5kZXhFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUxhYmVsV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxMYWJlbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExh
YmVsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVMZWdlbmRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTExlZ2VuZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExlZ2Vu
ZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
TElXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTExJRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTElFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxpbmtXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTExpbmtFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNYXBXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1hcEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWFycXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFycXVlZUVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTE1hcnF1ZWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1lbnVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1lbnVFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxNZW51RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVNZXRhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNZXRhRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MTWV0YUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlT2JqZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxPYmplY3RFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxPYmplY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZU9MaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxPTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9M
aXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVPcHRHcm91cFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MT3B0R3JvdXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxP
cHRHcm91cEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlT3B0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxPcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxP
cHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZVBhcmFncmFwaFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MUGFyYWdyYXBoRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MUGFyYWdyYXBoRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVQYXJhbVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MUGFyYW1FbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxQYXJhbUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlUHJlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxQcmVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQcmVFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVF1b3Rl
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxRdW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTY3JpcHRXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTFNjcmlwdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNjcmlwdEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2VsZWN0V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxTZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVN0eWxlV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RP
TUhUTUxTdHlsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
VGFibGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2Vs
bFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MVGFibGVDZWxsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxs
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVU
ZXh0QXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MVGV4dEFyZWFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUZXh0
QXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlVGl0bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRpdGxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGl0bGVF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRh
YmxlUm93V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxl
Um93RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVVTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MVUxpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxVTGlzdEVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK0dET01Ob2RlKiBjcmVhdGVHRE9NSFRNTFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBzdGF0aWMg
SGFzaE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFw
cGVyRnVuY3Rpb24+IG1hcDsKKyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAgIG1hcC5z
ZXQoYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoYXBwbGV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXJl
YVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUJhc2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlQmFzZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJsb2NrcXVv
dGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCUldyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
QnV0dG9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVDYW52YXNXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25UYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGNvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChkZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpcmVj
dG9yeVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlRGl2V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZURMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmaWVsZHNl
dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7CisgICAgICAg
bWFwLnNldChmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoZm9ybVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1XcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
RnJhbWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlRnJhbWVTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaGVh
ZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGhyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGh0bWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJhbWVX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUlucHV0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGFi
ZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQobGVnZW5kVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChsaVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGlu
a1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlTWFwV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlTWFycXVlZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1ldGFU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChvYmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KG9sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
T3B0R3JvdXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZU9wdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocGFy
YW1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQocHJlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KHNjcmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNjcmlw
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVN0eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJsZVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0
Ym9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQodGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlVGV4dEFyZWFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlVGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRyVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGNvbGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVh
ZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDZU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChpbWFnZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChpbnNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNl
bGVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRo
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAg
bWFwLnNldCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
UHJlV3JhcHBlcik7CisgICAgfQorICAgIHByaW50ZigiY3JlYXRlR0RPTUhUTUxXcmFwcGVyOiAl
c1xuIiwgZWxlbWVudC0+bG9jYWxOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAg
Q3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0g
bWFwLmdldChlbGVtZW50LT5sb2NhbE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFw
cGVyRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVu
dCk7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEVsZW1lbnQoZWxlbWVudC5nZXQoKSk7Cit9CisK
K30KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJn
ZXROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRH
ZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisK
KworI2lmbmRlZiBfX0dET01FdmVudFRhcmdldE5vZGVfSF9fX0lOVF8KKyNkZWZpbmUgX19HRE9N
RXZlbnRUYXJnZXROb2RlX0hfX19JTlRfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbU5vZGUuaCIKK0dfQkVHSU5fREVDTFMKKworY2xhc3MgR0RPTUV2
ZW50VGFyZ2V0Tm9kZSA6IHB1YmxpYyBHRE9NTm9kZSB7CisKK3B1YmxpYzoKKyAgICBHRE9NRXZl
bnRUYXJnZXROb2RlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gaW1wbCkgOiBHRE9NTm9kZShp
bXBsKSB7fQorICAgIGludCBnZXRfZ29ial90eXBlKCkgeyByZXR1cm4gR0RPTV9UWVBFX0VWRU5U
X1RBUkdFVF9OT0RFOyB9Cit9OworCisKK0dfRU5EX0RFQ0xTCisjZW5kaWYKKwpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MDEg
QEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5A
a2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBT
YW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKy8vIGdjYyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUg
SGFzaE1hcCBwb2ludGVyIHNwZWNpYWxpemF0aW9uIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQg
X19HTlVDX18gJiYgIWRlZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNk
ZWZpbmUgSEFTSF9NQVBfUFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5o
IgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9i
amVjdC5oIgorI2luY2x1ZGUgIkdET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiR0RPTUhUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuaCIKKworI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNs
dWRlICJHZG9tQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTU3R5
bGVTaGVldC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudEV4Y2Vw
dGlvbi5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNp
bmNsdWRlICJHZG9tTm9kZS5oIgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21Ob2RlLmgiCisKKyNpbmNsdWRlICJBdHRyLmgiCisjaW5jbHVkZSAiQ0RBVEFT
ZWN0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDb21tZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiRW50aXR5LmgiCisjaW5jbHVkZSAiRW50
aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
RXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbUF0dHIuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUF0dHIuaCIKKyNpbmNsdWRlICJHZG9tQ2hhcmFjdGVyRGF0YS5oIgorI2luY2x1
ZGUgIkdkb21UZXh0LmgiCisjaW5jbHVkZSAiR2RvbUNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUg
Ikdkb21Db21tZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bURvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnRUeXBlLmgiCisjaW5j
bHVkZSAiR2RvbUVudGl0eS5oIgorI2luY2x1ZGUgIkdkb21FbGVtZW50LmgiCisjaW5jbHVkZSAi
R2RvbUNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIgor
I2luY2x1ZGUgIkdkb21FbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJHZG9tTm90YXRpb24u
aCIKKyNpbmNsdWRlICJHZG9tSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbVByb2Nlc3Np
bmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJOb3RhdGlvbi5o
IgorI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
I2luY2x1ZGUgIkdkb21DU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NTQ2hhcnNldFJ1bGUuaCIKKyNp
bmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCisj
aW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKKyNpbmNs
dWRlICJDU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5j
bHVkZSAiR2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0ZvbnRGYWNlUnVs
ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU01l
ZGlhUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgIkdkb21D
U1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFyaWFibGVzUnVsZS5oIgorCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FdmVudC5oIgorCisjaW5j
bHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tQ2xp
cGJvYXJkLmgiCisjaW5jbHVkZSAiR2RvbUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9t
TWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJH
ZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5j
bHVkZSAiR2RvbVByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tVGV4dEV2ZW50LmgiCisj
aW5jbHVkZSAiR2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tV2ViS2l0QW5pbWF0aW9uRXZl
bnQuaCIKKyNpbmNsdWRlICJHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAi
R2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50LmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVu
dC5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJNdXRhdGlvbkV2ZW50Lmgi
CisjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIK
KyNpbmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJVSUV2ZW50LmgiCisjaW5jbHVkZSAi
V2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmgiCisKKyNpbmNsdWRlICJHZG9tSFRNTENvbGxlY3Rpb24uaCIKKworI2luY2x1
ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVk
ZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisvLyBUT0RPICNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxBbGxDb2xsZWN0aW9uLmgiCisvLyBUT0RPICNpbmNsdWRlICJHZG9tSFRNTEFsbENv
bGxlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisvLyBl
cnIuLi4gI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTmFtZWROb2Rlc0NvbGxlY3Rpb24uaCIKKy8v
IGVyci4uLiAjaW5jbHVkZSAiR2RvbU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisKKyNpZiBFTkFC
TEUoRE9NX1NUT1JBR0UpCisjaW5jbHVkZSAiR2RvbVN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUg
IlN0b3JhZ2VFdmVudC5oIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoU1ZHKQorI2lmIDAgLyogVE9E
TyAqLworI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVkZSAi
R2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgorI2VuZGlmCisj
ZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBYWFggVE9ETyAqLworI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiR2Rv
bVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNl
bmRpZgorI2VuZGlmCisKKyNpZiAwCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJHZG9tU1ZH
RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiU1ZHRXhjZXB0aW9uLmgiCisjZW5kaWYKKyNlbmRpZgor
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUNTU1J1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNEQVRBU2VjdGlvbi5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50RnJhZ21l
bnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21FbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU5vdGF0aW9uLmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tVGV4dC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTQ2hhcnNldFJ1bGUuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTTWVk
aWFSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21DU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21LZXlib2FyZEV2
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21NZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU11
dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU92ZXJmbG93RXZlbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbVRleHRFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tVUlFdmVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21TdG9yYWdl
RXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTENvbGxlY3Rpb24uaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit0eXBlZGVmIEhhc2hN
YXA8dm9pZCosIGdwb2ludGVyPiBET01PYmplY3RNYXA7Cit0eXBlZGVmIEhhc2hNYXA8dm9pZCos
IGdwb2ludGVyPiBHZG9tV3JhcHBlckNhY2hlOyAvKiBBUkchIFVORkFJUiEgSlNXcmFwcGVyQ2Fj
aGUgaXMgaW4gRG9jdW1lbnQhISAqLworCisvLyBGb3IgZGVidWdnaW5nLCBrZWVwIGEgc2V0IG9m
IHdyYXBwZXJzIGN1cnJlbnRseSByZWdpc3RlcmVkLCBhbmQgY2hlY2sgdGhhdAorLy8gYWxsIGFy
ZSB1bnJlZ2lzdGVyZWQgYmVmb3JlIHRoZXkgYXJlIGRlc3Ryb3llZC4gVGhpcyBoYXMgaGVscGVk
IHVzIGZpeCBhdAorLy8gbGVhc3Qgb25lIGJ1Zy4KKworI2lmIDAKK3N0YXRpYyB2b2lkIGFkZFdy
YXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcik7CitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdE
T01PYmplY3QqIHdyYXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2Rv
bVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpOworCisjaWZkZWYgTkRFQlVHCisKK3N0YXRpYyBpbmxp
bmUgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqKQoreworfQorCitzdGF0aWMgaW5saW5lIHZv
aWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lk
IHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUmKQoreworfQorCisjZWxzZQor
CitzdGF0aWMgSGFzaFNldDxHRE9NT2JqZWN0Kj4mIHdyYXBwZXJTZXQoKQoreworICAgIHN0YXRp
YyBIYXNoU2V0PEdET01PYmplY3QqPiBzdGF0aWNXcmFwcGVyU2V0OworICAgIHJldHVybiBzdGF0
aWNXcmFwcGVyU2V0OworfQorCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqIHdy
YXBwZXIpCit7CisgICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFpbnMod3JhcHBlcikpOwor
ICAgIHdyYXBwZXJTZXQoKS5hZGQod3JhcHBlcik7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZVdy
YXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcikKK3sKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAg
IHJldHVybjsKKyAgICBBU1NFUlQod3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAg
ICB3cmFwcGVyU2V0KCkucmVtb3ZlKHdyYXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVX
cmFwcGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVycykKK3sKKyAgICBmb3IgKEdk
b21XcmFwcGVyQ2FjaGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gd3JhcHBlcnMuYmVnaW4oKTsgaXQg
IT0gd3JhcHBlcnMuZW5kKCk7ICsraXQpCisgICAgICAgIHJlbW92ZVdyYXBwZXIoaXQtPnNlY29u
ZCk7Cit9CisKK0dET01PYmplY3Q6On5HRE9NT2JqZWN0KCkKK3sKKyAgICBBU1NFUlQoIXdyYXBw
ZXJTZXQoKS5jb250YWlucyh0aGlzKSk7Cit9CisKKyNlbmRpZgorI2VuZGlmIC8qIGNvbW1lbnRl
ZCBvdXQgZm9yIG5vdyAqLworCitzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlckNhY2hl
KCkKK3sgCisgICAgLy8gVU5GQUlSISBpIHdhbnQgb25lIG9mIHRoZXNlIHBlciBEb2N1bWVudCwg
dG9vIQorICAgIC8vIERvbid0IHVzZSBtYWxsb2MgaGVyZS4gQ2FsbGluZyBtYWxsb2MgZnJvbSBh
IG1hcmsgZnVuY3Rpb24gY2FuIGRlYWRsb2NrLgorICAgIHN0YXRpYyBHZG9tV3JhcHBlckNhY2hl
IHN0YXRpY0dkb21XcmFwcGVyQ2FjaGU7CisgICAgcmV0dXJuIHN0YXRpY0dkb21XcmFwcGVyQ2Fj
aGU7Cit9CisKK3N0YXRpYyBET01PYmplY3RNYXAmIGRvbU9iamVjdHMoKQoreyAKKyAgICAvLyBE
b24ndCB1c2UgbWFsbG9jIGhlcmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9u
IGNhbiBkZWFkbG9jay4KKyAgICBzdGF0aWMgRE9NT2JqZWN0TWFwIHN0YXRpY0RPTU9iamVjdHM7
CisgICAgcmV0dXJuIHN0YXRpY0RPTU9iamVjdHM7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSkgCit7CisgICAgZ3Bv
aW50ZXIgcmV0ID0gZG9tT2JqZWN0cygpLmdldChvYmplY3RIYW5kbGUpOworICAgIHByaW50Zigi
Z2V0RE9NT2JqZWN0OiAlcCAlcFxuIiwgb2JqZWN0SGFuZGxlLCByZXQpOworICAgIHJldHVybiBy
ZXQ7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVfZ2RvbV9vYmplY3QoR0RPTU9iamVjdCAq
ZG9iKQoreworICAgIGdwb2ludGVyIHJlcyA9IGdfb2JqZWN0X25ldyhkb2ItPmdldF9nb2JqX3R5
cGUoKSwgTlVMTCk7CisgICAgZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdET01fRE9NX09C
SkVDVChyZXMpLCBkb2IpOworICAgIHJldHVybiByZXM7Cit9CisKK2dwb2ludGVyIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVj
dCogd3JhcHBlcikgCit7CisgICAgLy8gYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBncG9pbnRl
ciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgcHJpbnRmKCJwdXRET01P
YmplY3Q6ICVwICVwICVwXG4iLCBvYmplY3RIYW5kbGUsIHdyYXBwZXIsIG9iaik7CisgICAgZG9t
T2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIG9iaik7CisgICAgcmV0dXJuIG9iajsKK30KKwor
dm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RI
YW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKTsKKyAgICAvL3Jl
bW92ZVdyYXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7Cit9CisKK2dwb2lu
dGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50
KiBkb2N1bWVudCwgTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Z3BvaW50ZXIgPihkb21PYmplY3RzKCkuZ2V0KG5vZGUpKTsKKyAg
ICByZXR1cm4gLyogWFhYIGdycnIgZG9jdW1lbnQtPiAqL3dyYXBwZXJDYWNoZSgpLmdldChub2Rl
KTsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFkb2N1bWVu
dCkgeworICAgICAgICBmb3JnZXRET01PYmplY3Qobm9kZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgLy9yZW1vdmVXcmFwcGVyKC8qIFhYWCBncnIgZG9jdW1lbnQtPiovd3JhcHBlckNh
Y2hlKCkudGFrZShub2RlKSk7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6
cHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogbm9kZSwgR0RP
TU5vZGUgKndyYXBwZXIpCit7CisgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIpOworICAgIGlmICgh
ZG9jdW1lbnQpIHsKKyAgICAgICAgbm9kZS0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChub2RlLCB3cmFwcGVyKSA7CisgICAgfQorICAg
IGdwb2ludGVyIG9iaiA9IGNyZWF0ZV9nZG9tX29iamVjdCh3cmFwcGVyKTsKKyAgICAvKiBYWFgg
Z3JyciBkb2N1bWVudC0+Ki93cmFwcGVyQ2FjaGUoKS5zZXQobm9kZSwgb2JqKTsKKyAgICByZXR1
cm4gb2JqOworfQorCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0QWxsRE9NTm9k
ZXNGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50
KTsKKyAgICAvL3JlbW92ZVdyYXBwZXJzKGRvY3VtZW50LT53cmFwcGVyQ2FjaGUoKSk7Cit9CisK
KyNpZiAwCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6bWFya0RPTU5vZGVzRm9yRG9jdW1l
bnQoRG9jdW1lbnQqIGRvYykKK3sKKyNpZiAwIC8qWFhYIFRPRE8qLworICAgIC8vIElmIGEgbm9k
ZSdzIEdkb20gd3JhcHBlciBob2xkcyBjdXN0b20gcHJvcGVydGllcywgdGhvc2UgcHJvcGVydGll
cyBtdXN0CisgICAgLy8gcGVyc2lzdCBldmVyeSB0aW1lIHRoZSBub2RlIGlzIGZldGNoZWQgZnJv
bSB0aGUgRE9NLiBTbywgd2Uga2VlcCBHZG9tCisgICAgLy8gd3JhcHBlcnMgbGlrZSB0aGF0IGZy
b20gYmVpbmcgZ2FyYmFnZSBjb2xsZWN0ZWQuCisKKyAgICBHZG9tV3JhcHBlckNhY2hlJiBub2Rl
RGljdCA9IC8qZG9jLT4qL3dyYXBwZXJDYWNoZSgpOworICAgIEdkb21XcmFwcGVyQ2FjaGU6Oml0
ZXJhdG9yIG5vZGVFbmQgPSBub2RlRGljdC5lbmQoKTsKKyAgICBmb3IgKEdkb21XcmFwcGVyQ2Fj
aGU6Oml0ZXJhdG9yIG5vZGVJdCA9IG5vZGVEaWN0LmJlZ2luKCk7IG5vZGVJdCAhPSBub2RlRW5k
OyArK25vZGVJdCkgeworICAgICAgICBncG9pbnRlciBnTm9kZSA9IG5vZGVJdC0+c2Vjb25kOwor
ICAgICAgICBOb2RlKiBub2RlID0gZ05vZGUtPmltcGwoKTsKKworICAgICAgICBpZiAoZ05vZGUt
Pm1hcmtlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm8gbmVlZCB0
byBwcmVzZXJ2ZSBhIHdyYXBwZXIgdGhhdCBoYXMgbm8gY3VzdG9tIHByb3BlcnRpZXMgb3IgaXMg
bm8KKyAgICAgICAgLy8gbG9uZ2VyIGZldGNoYWJsZSB0aHJvdWdoIHRoZSBET00uCisgICAgICAg
IGlmICghZ05vZGUtPmhhc0N1c3RvbVByb3BlcnRpZXMoKSB8fCAhbm9kZS0+aW5Eb2N1bWVudCgp
KQorICAgICAgICAgICAgLy8uLi4gdW5sZXNzIHRoZSB3cmFwcGVyIHdyYXBzIGEgbG9hZGluZyBp
bWFnZSwgc2luY2UgdGhlICJuZXcgSW1hZ2UiCisgICAgICAgICAgICAvLyBzeW50YXggYWxsb3dz
IGFuIG9ycGhhbiBpbWFnZSB3cmFwcGVyIHRvIGJlIHRoZSBsYXN0IHJlZmVyZW5jZQorICAgICAg
ICAgICAgLy8gdG8gYSBsb2FkaW5nIGltYWdlLCB3aG9zZSBsb2FkIGV2ZW50IG1pZ2h0IGhhdmUg
aW1wb3J0YW50IHNpZGUtZWZmZWN0cy4KKyAgICAgICAgICAgIGlmICghbm9kZS0+aGFzVGFnTmFt
ZShpbWdUYWcpIHx8IHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2RlKS0+aGF2ZUZp
cmVkTG9hZEV2ZW50KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZ05v
ZGUtPm1hcmsoKTsKKyAgICB9CisjZW5kaWYKK30KKworLyogWFhYIC0gcmVxdWlyZXMgbG9va2lu
ZyB1cCBvYmplY3QgLSBjYWxsIHRvIEdfT0JKRUNUKCkgbWFjcm8gaW4gYXJnCisgKiAid3JhcHBl
ciIgdG8gcHV0RE9NTm9kZUZvckRvY3VtZW50PyovCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJw
cmV0ZXI6OnVwZGF0ZURPTU5vZGVEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9j
LCBEb2N1bWVudCogbmV3RG9jKQoreworICAgIEFTU0VSVChvbGREb2MgIT0gbmV3RG9jKTsKKyAg
ICBzdHlsZVNoZWV0LT5yZWYoKTsKKyAgICBncG9pbnRlciB3cmFwcGVyID0gZ2V0RE9NTm9kZUZv
ckRvY3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgaWYgKHdyYXBwZXIpIHsKKyAgICAgICAgLy9y
ZW1vdmVXcmFwcGVyKHdyYXBwZXIpOworICAgICAgICBncG9pbnRlciBvYmogPSBwdXRET01Ob2Rl
Rm9yRG9jdW1lbnQobmV3RG9jLCBub2RlLCB3cmFwcGVyKTsKKyAgICAgICAgZm9yZ2V0RE9NTm9k
ZUZvckRvY3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgICAgIC8vYWRkV3JhcHBlcih3cmFwcGVy
KTsKKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4u
LiAqLworfQorI2VuZGlmCisKK2dwb2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKQoreworICAg
IGlmICghZG9jKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAg
IGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb2Mp
OworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3Qg
KnJldDsKKworICAgIGlmIChkb2MtPmlzSFRNTERvY3VtZW50KCkpCisgICAgICAgIHJldCA9IG5l
dyBHRE9NSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KGRvYykpOworI2lm
IEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5pc1NWR0RvY3VtZW50KCkpCisgICAgewor
ICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gKi8KKyNpZiAwCisgICAgICAgIHJldCA9
IG5ldyBHRE9NU1ZHRG9jdW1lbnQoc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnQqPihkb2MpKTsKKyNl
bmRpZgorICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01Eb2N1
bWVudChkb2MpOworCisgICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVy
cHJldGVyOjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3Jl
YXRlV3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3bHlDcmVhdGVkKE5v
ZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1t
bS4uLi4gKi8KKyAgICAKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKyAgICAK
K2dwb2ludGVyIHRvR0RPTShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAg
cmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+
ZG9jdW1lbnQoKTsKKyAgICBncG9pbnRlciByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Omdl
dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJl
dHVybiByZXQ7CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50
ZXIgdG9HRE9NKENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICBy
ZXR1cm4gTlVMTDsgLyogaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAg
ICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKworICAgIGlmICh2YWx1
ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZUxpc3Qoc3Rh
dGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVs
c2UgaWYgKHZhbHVlLT5pc1NWR1BhaW50KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsg
LyogVE9ETyAqLworICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHUGFpbnQoc3RhdGljX2Nhc3Q8
U1ZHUGFpbnQqPih2YWx1ZSkpOworICAgIH0KKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdDb2xv
cigpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9y
ZXQgPSBuZXcgR0RPTVNWR0NvbG9yKHN0YXRpY19jYXN0PFNWR0NvbG9yKj4odmFsdWUpKTsKKyAg
ICB9CisjZW5kaWYKKyAgICBlbHNlIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAg
ICAgICByZXQgPSBuZXcgR0RPTUNTU1ByaW1pdGl2ZVZhbHVlKHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWUpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NT
VmFsdWUodmFsdWUpOworCisgICAgdmFsdWUtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCh2YWx1ZSwgcmV0KTsKK30KKworc3RhdGljIEFMV0FZ
U19JTkxJTkUgZ3BvaW50ZXIgY3JlYXRlV3JhcHBlcihOb2RlKiBub2RlKQoreworICAgIEFTU0VS
VChub2RlKTsKKyAgICBBU1NFUlQoIVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9j
dW1lbnQobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSkpOworICAgIAorICAgIERvY3VtZW50KiBkb2Mg
PSBub2RlLT5kb2N1bWVudCgpOworICAgIEdET01Ob2RlICpyZXQgPSBOVUxMOworICAgIAorICAg
IHByaW50ZigiY3JlYXRlV3JhcHBlciBub2RlVHlwZSAlZFxuIiwgbm9kZS0+bm9kZVR5cGUoKSk7
CisKKyAgICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBOb2RlOjpF
TEVNRU5UX05PREU6CisgICAgICAgICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKQorICAg
ICAgICAgICAgICAgIHJldCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxIVE1M
RWxlbWVudCo+KG5vZGUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAgICAgZWxzZSBpZiAo
bm9kZS0+aXNTVkdFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisjaWYg
MCAvKiBYWFggVE9ETyAqLworICAgICAgICAgICAgICAgIHJldCA9IGNyZWF0ZUdET01TVkdXcmFw
cGVyKHN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihub2RlKSk7CisjZW5kaWYKKyNlbmRpZgorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRWxlbWVudChzdGF0
aWNfY2FzdDxFbGVtZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTm9kZTo6QVRUUklCVVRFX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUF0dHIo
c3RhdGljX2Nhc3Q8QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6OlRFWFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NVGV4dChzdGF0
aWNfY2FzdDxUZXh0Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DREFU
QVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUVudGl0eShzdGF0aWNfY2FzdDxFbnRpdHkqPihub2RlKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6
CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbihzdGF0aWNf
Y2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUNvbW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CisgICAgICAgICAgICAvLyB3
ZSBkb24ndCB3YW50IHRvIGNhY2hlIHRoZSBkb2N1bWVudCBpdHNlbGYgaW4gdGhlIHBlci1kb2N1
bWVudCBkaWN0aW9uYXJ5CisgICAgICAgICAgICByZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PERv
Y3VtZW50Kj4obm9kZSkpOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToK
KyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnRUeXBlKHN0YXRpY19jYXN0PERvY3Vt
ZW50VHlwZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
Ok5PVEFUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vdGF0aW9uKHN0YXRp
Y19jYXN0PE5vdGF0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NRG9jdW1lbnRGcmFnbWVudChzdGF0aWNfY2FzdDxEb2N1bWVudEZyYWdtZW50Kj4obm9kZSkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5D
RV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01FbnRpdHlSZWZlcmVuY2Uoc3RhdGlj
X2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vZGUobm9kZSk7CisgICAg
fQorCisgICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpw
dXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlLCByZXQpOworfQorIAorZ3BvaW50ZXIgdG9H
RE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQoreworICAgIGlmICghY29sbGVjdGlvbikK
KyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9pbnRlciBnb2Jq
ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoY29sbGVjdGlvbik7CisKKyAg
ICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7
CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBIVE1MQ29s
bGVjdGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTE9w
dGlvbnNDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlvbio+KGNvbGxl
Y3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIDAKKyAgICAgICAgY2FzZSBIVE1MQ29s
bGVjdGlvbjo6RG9jQWxsOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQWxsQ29sbGVj
dGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAg
ICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29sbGVj
dGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY29sbGVjdGlvbi0+cmVm
KCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGNvbGxl
Y3Rpb24sIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQpCit7CisgICAg
aWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBw
cmludGYoInRvR0RPTSBFdmVudCB0eXBlICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRl
cjo6Z2V0RE9NT2JqZWN0KGV2ZW50KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdv
Ymo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgaWYgKGV2ZW50LT5pc1VJRXZlbnQoKSkg
eworICAgICAgICBpZiAoZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKQorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01LZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVu
dCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNUZXh0RXZlbnQoKSkKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NVGV4dEV2ZW50KHN0YXRpY19jYXN0PFRleHRFdmVudCo+KGV2ZW50KSk7
CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSkKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NTW91c2VFdmVudChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpKTsK
KyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2hlZWxFdmVudCgpKQorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01XaGVlbEV2ZW50KHN0YXRpY19jYXN0PFdoZWVsRXZlbnQqPihldmVudCkpOwor
I2lmIEVOQUJMRShTVkcpCisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVudCgp
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAgICAg
ICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1pvb21FdmVudChzdGF0aWNfY2FzdDxTVkdab29tRXZl
bnQqPihldmVudCksIDApOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01VSUV2ZW50KHN0YXRpY19jYXN0PFVJRXZlbnQqPihldmVudCkp
OworICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlzTXV0YXRpb25FdmVudCgpKQorICAgICAgICByZXQg
PSBuZXcgR0RPTU11dGF0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8TXV0YXRpb25FdmVudCo+KGV2ZW50
KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzT3ZlcmZsb3dFdmVudCgpKQorICAgICAgICByZXQg
PSBuZXcgR0RPTU92ZXJmbG93RXZlbnQoc3RhdGljX2Nhc3Q8T3ZlcmZsb3dFdmVudCo+KGV2ZW50
KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzTWVzc2FnZUV2ZW50KCkpCisgICAgICAgIHJldCA9
IG5ldyBHRE9NTWVzc2FnZUV2ZW50KHN0YXRpY19jYXN0PE1lc3NhZ2VFdmVudCo+KGV2ZW50KSk7
CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzUHJvZ3Jlc3NFdmVudCgpKSB7CisgICAgICAgIGlmIChl
dmVudC0+aXNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NUHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxQcm9ncmVzc0V2ZW50Kj4o
ZXZlbnQpKTsKKyAgICB9CisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorICAgIGVsc2UgaWYgKGV2
ZW50LT5pc1N0b3JhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTVN0b3JhZ2VFdmVu
dChzdGF0aWNfY2FzdDxTdG9yYWdlRXZlbnQqPihldmVudCkpOworI2VuZGlmCisgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzV2ViS2l0QW5pbWF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01XZWJLaXRBbmltYXRpb25FdmVudChzdGF0aWNfY2FzdDxXZWJLaXRBbmltYXRpb25FdmVudCo+
KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkp
CisgICAgICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50KHN0YXRpY19jYXN0
PFdlYktpdFRyYW5zaXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZQorICAgICAgICByZXQg
PSBuZXcgR0RPTUV2ZW50KGV2ZW50KTsKKworICAgIGV2ZW50LT5yZWYoKTsKKyAgICByZXR1cm4g
R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZXZlbnQsIHJldCk7Cit9CisKKy8q
IFRPRE8gWFhYIGhtbW0uLi4gbm90IHNvIGhhcHB5IGFib3V0IHRoaXMgLSBzaG91bGQgYmUgIm5l
d2x5IGNyZWF0ZWQiICovCitncG9pbnRlciB0b0dET00oVGV4dCogdGV4dCkKK3sKKyAgICBpZiAo
IXRleHQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KHRleHQtPmRvY3VtZW50KCks
IHRleHQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01O
b2RlICpyZXQgPSBuZXcgR0RPTVRleHQodGV4dCk7CisgICAgdGV4dC0+ZG9jdW1lbnQoKS0+cmVm
KCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3Vt
ZW50KHRleHQtPmRvY3VtZW50KCksIHRleHQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShD
U1NSdWxlKiBydWxlKQoreworICAgIGlmICghcnVsZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8q
IFhYWCBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpnZXRET01PYmplY3QocnVsZSk7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJu
IGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgc3dpdGNoIChydWxlLT50eXBlKCkp
IHsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpTVFlMRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01DU1NTdHlsZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6TUVESUFfUlVMRToKKyAg
ICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTTWVkaWFSdWxlKHN0YXRpY19jYXN0PENTU01lZGlh
UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6
OkZPTlRfRkFDRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NGb250RmFjZVJ1
bGUoc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6UEFHRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01DU1NQYWdlUnVsZShzdGF0aWNfY2FzdDxDU1NQYWdlUnVsZSo+KHJ1bGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OklNUE9SVF9SVUxFOgorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NJbXBvcnRSdWxlKHN0YXRpY19jYXN0PENTU0ltcG9y
dFJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxl
OjpDSEFSU0VUX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0NoYXJzZXRSdWxl
KHN0YXRpY19jYXN0PENTU0NoYXJzZXRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6VkFSSUFCTEVTX1JVTEU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUNTU1ZhcmlhYmxlc1J1bGUoc3RhdGljX2Nhc3Q8Q1NTVmFyaWFibGVzUnVsZSo+
KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgcmV0ID0gbmV3IEdET01DU1NSdWxlKHJ1bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgcnVsZS0+cmVmKCk7CisgICAgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01P
YmplY3QocnVsZSwgcmV0KTsKKyAgICByZXR1cm4gcmV0OworfQorCisvKiBUT0RPOiBzaG91bGQg
YmUgdG9HRE9NTmV3bHlDcmVhdGVkICovCitncG9pbnRlciB0b0dET00oRWxlbWVudCogZWxlbWVu
dCkKK3sKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8g
c2hvdWxkbid0IGJlIG9uZT8gQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZv
ckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpKTsKKyAgICBncG9pbnRlciBn
b2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZWxlbWVu
dC0+ZG9jdW1lbnQoKSwgZWxlbWVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBn
b2JqOyAvLyBodWg/IGVyci4uLgorCisgICAgR0RPTU5vZGUgKnJldDsKKyAgICBEb2N1bWVudCog
ZG9jID0gZWxlbWVudC0+ZG9jdW1lbnQoKTsKKworICAgIGlmIChlbGVtZW50LT5pc0hUTUxFbGVt
ZW50KCkpCisgICAgICAgIHJldCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxI
VE1MRWxlbWVudCo+KGVsZW1lbnQpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKGVs
ZW1lbnQtPmlzU1ZHRWxlbWVudCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRP
RE8gKi8KKyAgICAgICAgLy9yZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxT
VkdFbGVtZW50Kj4oZWxlbWVudCkpOworICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAg
cmV0ID0gbmV3IEdET01FbGVtZW50KGVsZW1lbnQpOworCisgICAgZG9jLT5yZWYoKTsKKyAgICBy
ZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBl
bGVtZW50LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oU3R5bGVTaGVldCogc3R5bGVTaGVl
dCkKK3sKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBlcnIu
Li4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU9iamVjdChzdHlsZVNoZWV0KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7
CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgaWYgKHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVT
aGVldCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1N0eWxlU2hlZXQoc3RhdGljX2Nhc3Q8
Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5l
dyBHRE9NU3R5bGVTaGVldChzdHlsZVNoZWV0KTsKKworICAgIHN0eWxlU2hlZXQtPnJlZigpOwor
ICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChzdHlsZVNoZWV0
LCByZXQpOworfQorCisvKiBkZXJpdmVkIHNvdXJjZXMgYXV0by1nZW5lcmF0ZWQgKi8KK2dwb2lu
dGVyIHRvR0RPTShYTUxIdHRwUmVxdWVzdFVwbG9hZCogb2JqKTsKKworZ3BvaW50ZXIgdG9HRE9N
KEV2ZW50VGFyZ2V0KiB0YXJnZXQpCit7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVy
biBOVUxMOworICAgIAorI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFNWR0VsZW1lbnRJ
bnN0YW5jZSBzdXBwb3J0cyBib3RoIHRvU1ZHRWxlbWVudEluc3RhbmNlIGFuZCB0b05vZGUgc2lu
Y2Ugc28gbXVjaCBtb3VzZSBoYW5kbGluZyBjb2RlIGRlcGVuZHMgb24gdG9Ob2RlIHJldHVybmlu
ZyBhIHZhbGlkIG5vZGUuCisgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSA9IHRhcmdl
dC0+dG9TVkdFbGVtZW50SW5zdGFuY2UoKTsKKyAgICBpZiAoaW5zdGFuY2UpCisgICAgICAgIHJl
dHVybiB0b0dET00oZXhlYywgaW5zdGFuY2UpOworI2VuZGlmCisjZW5kaWYKKworICAgIE5vZGUq
IG5vZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICByZXR1cm4g
dG9HRE9NKG5vZGUpOworICAgIAorICAgIGlmIChYTUxIdHRwUmVxdWVzdCogeGhyID0gdGFyZ2V0
LT50b1hNTEh0dHBSZXF1ZXN0KCkpCisgICAgICAgIC8vIFhNTEh0dHBSZXF1ZXN0IGlzIGFsd2F5
cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSBjYWNoZURPTU9iamVj
dCgpIGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9i
amVjdCh4aHIpOworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxvYWQgPSB0YXJn
ZXQtPnRvWE1MSHR0cFJlcXVlc3RVcGxvYWQoKSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTSh1cGxv
YWQpOworICAgIAorI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgaWYg
KERPTUFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gdGFyZ2V0LT50b0RPTUFwcGxpY2F0aW9uQ2Fj
aGUoKSkKKyAgICAgICAgLy8gRE9NQXBwbGljYXRpb25DYWNoZSBpcyBhbHdheXMgY3JlYXRlZCB2
aWEgR0RPTSwgc28gd2UgZG9uJ3QgbmVlZCB0byB1c2UgY2FjaGVET01PYmplY3QoKSBoZXJlLgor
ICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoY2FjaGUp
OworI2VuZGlmCisKKyAgICAvLyBUaGVyZSBhcmUgdHdvIGtpbmRzIG9mIEV2ZW50VGFyZ2V0czog
RXZlbnRUYXJnZXROb2RlIGFuZCBYTUxIdHRwUmVxdWVzdC4KKyAgICAvLyBJZiBTVkcgc3VwcG9y
dCBpcyBlbmFibGVkLCB0aGVyZSBpcyBhbHNvIFNWR0VsZW1lbnRJbnN0YW5jZS4KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlVMTDsKK30gICAKKworZ3BvaW50ZXIgdG9H
RE9NKEV2ZW50VGFyZ2V0Tm9kZSogdGFyZ2V0KQoreworICAgIGlmICghdGFyZ2V0KQorICAgICAg
ICByZXR1cm4gTlVMTDsKKyAgICAKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0LT50b05vZGUoKTsK
KyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsKKyAgICAKKyAgICBy
ZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PEV2ZW50VGFyZ2V0Kj4odGFyZ2V0KSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21E
T01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9i
amVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpZm5kZWYgX19HZG9tRE9NT2JqZWN0X0hfXwor
I2RlZmluZSBfX0dkb21ET01PYmplY3RfSF9fCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNp
bmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0IEdkb21ET01PYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbURPTU9iamVjdENsYXNzIEdkb21ET01PYmplY3RDbGFzczsKKworI2RlZmluZSBHRE9NX1RZ
UEVfRE9NX09CSkVDVCAgICAgICAgICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9ET01fT0JKRUNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RB
TkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0KSkKKyNk
ZWZpbmUgR0RPTV9ET01fT0JKRUNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNT
X0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3Mp
KQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9N
X0lTX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VU
X0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBF
X0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RE9NT2JqZWN0UHJpdmF0ZSBHZG9tRE9NT2JqZWN0UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRE9N
T2JqZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21ET01PYmpl
Y3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgeworICAg
IEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9t
X2RvbV9vYmplY3RfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9t
X29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRoaXopOworCitHX0VORF9E
RUNMUworCisjZW5kaWYgLyogX19HZG9tRE9NT2JqZWN0X0hfXyAqLworCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACisjaWZuZGVmIF9f
RE9NT2JqZWN0X2hfXworI2RlZmluZSBfX0RPTU9iamVjdF9oX18KKworLy8gbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBHRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5HRE9N
T2JqZWN0KCkge30KKyAgICB2aXJ0dWFsIGludCBnZXRfZ29ial90eXBlKCkgPSAwOworfTsKKwor
Ly8gfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBUSElTIEZJTEUg
SVMgREVSSVZFRCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBrZWVw
aW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAq
IGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICog
Z2VuZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlu
cHV0LgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2lmbmRlZiBHRE9NSFRNTEVsZW1lbnRX
cmFwcGVyRmFjdG9yeV9oCisjZGVmaW5lIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gK
KworI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTm9kZS5oIgorCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7CisK
KyAgICBHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+KTsKKworfQorIAorI2VuZGlmIC8vIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
OTEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0
ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAw
NyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgR2RvbURPTUJpbmRpbmdfaAorI2RlZmluZSBH
ZG9tRE9NQmluZGluZ19oCisKKyNpbmNsdWRlIDxranMvaW50ZXJwcmV0ZXIuaD4KKyNpbmNsdWRl
IDxranMvbG9va3VwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRl
ICJHZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbU5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgQXRvbWlj
U3RyaW5nOworICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNzIEV2ZW50OworICAgIGNsYXNz
IEZyYW1lOworICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgTm9kZTsKKyAgICBjbGFzcyBTdHJp
bmc7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGNsYXNzIFNWR0VsZW1lbnQ7CisjZW5kaWYKKwor
ICAgIGNsYXNzIEdET01TY3JpcHRJbnRlcnByZXRlciB7CisgICAgcHVibGljOgorICAgICAgICBz
dGF0aWMgdm9pZCogZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisgICAgICAgIHN0
YXRpYyB2b2lkKiBwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBHRE9NT2JqZWN0Kik7
CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUp
OworCisgICAgICAgIHN0YXRpYyB2b2lkKiBnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQq
LCBOb2RlKik7CisgICAgICAgIHN0YXRpYyB2b2lkKiBwdXRET01Ob2RlRm9yRG9jdW1lbnQoRG9j
dW1lbnQqLCBOb2RlKiwgR0RPTU5vZGUqIG5vZGVXcmFwcGVyKTsKKyAgICAgICAgc3RhdGljIHZv
aWQgZm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSopOworICAgICAgICBz
dGF0aWMgdm9pZCBmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50Kik7CisJCSNp
ZiAwCisgICAgICAgIHN0YXRpYyB2b2lkIHVwZGF0ZURPTU5vZGVEb2N1bWVudChOb2RlKiwgRG9j
dW1lbnQqIG9sZERvYywgRG9jdW1lbnQqIG5ld0RvYyk7CisgICAgICAgIHN0YXRpYyB2b2lkIG1h
cmtET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50Kik7CisJCSNlbmRpZgorICAgIH07CisKKyAg
ICAvLyBSZXRyaWV2ZSBmcm9tIGNhY2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBh
IERPTSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2Jq
PiBpbmxpbmUgdm9pZCogY2FjaGVET01PYmplY3QoRE9NT2JqKiBkb21PYmopCisgICAgeworICAg
ICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4u
LiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRE
T01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIEdET01P
YmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaik7CisJCWRvbU9iai0+cmVmKCk7Cisg
ICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChkb21PYmos
IHJldCk7CisgICAgfQorCisjaWYgRU5BQkxFKFNWRykKKyAgICAvLyBSZXRyaWV2ZSBmcm9tIGNh
Y2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBhbiBTVkcgRE9NIG9iamVjdC4KKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlubGluZSB2b2lkKiBj
YWNoZVNWR0RPTU9iamVjdChET01PYmoqIGRvbU9iaiwgU1ZHRWxlbWVudCogY29udGV4dCkKKyAg
ICB7CisgICAgICAgIGlmICghZG9tT2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhY
WCBobW1tLi4uICovCisgICAgICAgIGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OmdldERPTU9iamVjdChkb21PYmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAg
ICAgR0RPTU9iamVjdCogcmV0ID0gbmV3IEdkb21ET01PYmooZG9tT2JqLCBjb250ZXh0KTsKKwkJ
ZG9tT2JqLT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0
RE9NT2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gR2RvbURPTUJpbmRpbmdfaApJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2Vu
bmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuCisgKi8KKworI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNjczIEBACisjCisjIENvcHlyaWdodCAoQykgMjAwOCBM
dWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorIyBDb3B5cmlnaHQg
KEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyMgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JHT2JqZWN0OworCisjIERlZmF1bHQgTGlj
ZW5jZSBUZW1wbGF0ZXMKK215ICRsaWNlbmNlVGVtcGxhdGUgPSA8PCAiRU9GIjsKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbFxAbGtj
bC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBcQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCitFT0YKKworbXkgJWltcGxJ
bmNsdWRlcyA9ICgpOworbXkgJWhkckluY2x1ZGVzID0gKCk7CitteSAlaGRyUHJvcEluY2x1ZGVz
ID0gKCk7CitteSAlaW1wbFR5cGVkZWZzID0gKCk7CisKKyMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgor
c3ViIG5ldworeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkcmVmZXJlbmNlID0g
eyB9OworCisgICAgJGNvZGVHZW5lcmF0b3IgPSBzaGlmdDsKKyAgICAkb3V0cHV0RGlyID0gc2hp
ZnQ7CisKKyAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKKyAgICByZXR1cm4gJHJlZmVy
ZW5jZTsKK30KKworc3ViIGZpbmlzaAoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKK30KKwor
IyBQYXJhbXM6ICdkb21DbGFzcycgc3RydWN0CitzdWIgR2VuZXJhdGVJbnRlcmZhY2UKK3sKKyAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkg
JGRlZmluZXMgPSBzaGlmdDsKKworICAgIG15ICRuYW1lID0gJGRhdGFOb2RlLT5uYW1lOworCisg
ICAgcHJpbnQgIiRuYW1lXG4iOworCisgICAgJG9iamVjdC0+R2VuZXJhdGUoJGRhdGFOb2RlKTsK
KworICAgICMgV3JpdGUgY2hhbmdlcworICAgIG15ICRmbmFtZSA9ICJHZG9tXyIgLiAkbmFtZTsg
I2RlY2FtZWxpemUoJG5hbWUpOworICAgICRmbmFtZSA9fiBzL18vL2c7CisgICAgJG9iamVjdC0+
V3JpdGVEYXRhKCRmbmFtZSk7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAor
c3ViIEdlbmVyYXRlTW9kdWxlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRk
YXRhTm9kZSA9IHNoaWZ0OworCisgICAgJG1vZHVsZSA9ICRkYXRhTm9kZS0+bW9kdWxlOworfQor
CitzdWIgQ2xzVG9HT2JqVHlwZQoreworICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICBy
ZXR1cm4gdWMoZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSkKK30KKworc3ViIEdldFBhcmVudENsYXNz
TmFtZQoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgIyA/PyBxdWU/PworICAg
ICNyZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0g
aWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAg
cmV0dXJuICJHZG9tRE9NT2JqZWN0IiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAg
ICByZXR1cm4gIkdkb20iIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+
cGFyZW50cygwKSk7Cit9CitzdWIgR2V0UGFyZW50R09ialR5cGUKK3sKKyAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR0RPTV9UWVBFX0RPTV9P
QkpFQ1QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiR0RPTV9U
WVBFXyIgLiBDbHNUb0dPYmpUeXBlKCRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5v
ZGUtPnBhcmVudHMoMCkpKTsKK30KKworCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6
Q2FtZWxDYXNlIDAuMDEKK3N1YiBjYW1lbGl6ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAg
am9pbignJywgbWFweyB1Y2ZpcnN0ICRfIH0gc3BsaXQoLyg/PD1bQS1aYS16XSlfKD89W0EtWmEt
el0pfFxiLywgJHMpKTsKK30KKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVs
Q2FzZSAwLjAxCitzdWIgZGVjYW1lbGl6ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAgJHMg
PX4gc3soW15hLXpBLVpdPykoW0EtWl0qKShbQS1aXSkoW2Etel0/KX17CisgICAgICAgIG15ICRm
YyA9IHBvcygkcyk9PTA7CisgICAgICAgIG15ICgkcDAsJHAxLCRwMiwkcDMpID0gKCQxLGxjJDIs
bGMkMywkNCk7CisgICAgICAgIG15ICR0ID0gJHAwIHx8ICRmYyA/ICRwMCA6ICdfJzsKKyAgICAg
ICAgJHQgLj0gJHAzID8gJHAxID8gIiR7cDF9XyRwMiRwMyIgOiAiJHAyJHAzIiA6ICIkcDEkcDIi
OworICAgICAgICAkdDsKKyAgICB9Z2U7CisgICAgJHM7Cit9CisKK3N1YiBHZXRIZHJOYW1lCit7
CisgICAgICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsK
KworICAgIHJldHVybiAiR2RvbSRuYW1lIjsKK30KKworc3ViIEdldENsYXNzTmFtZQoreworICAg
ICAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAg
ICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRHSW5jbHVkZUhkcgoreworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0SGRyTmFtZSgkdHlwZSk7Cisg
ICAgICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFtZSgkdHlwZSkpOworCisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0
eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJzaG9ydCI7Cisg
ICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAiIiBp
ZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImRvdWJs
ZSI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICBy
ZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAgIHJldHVybiAiIiBp
ZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBl
cSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRE9NVGltZVN0
YW1wIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsKKyAg
ICAgICAgcmV0dXJuICJSYW5nZS5oIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAg
IHJldHVybiAiR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiBpZiAkdHlwZSBlcSAiRE9N
T2JqZWN0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsK
KyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBE
T00gY2xhc3Mgd3JhcHBlcgorICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBl
IGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCIg
aWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0
LmgiIGlmICR0eXBlIGVxICJmbG9hdCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5o
IiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5o
IiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lLmgiOworfQorCisjIHJl
dHVybnMgMSBpZiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGdvYmplY3Qgd3JhcHBlciBhcm91bmQgdGhl
IHJldHVybiByZXN1bHQKK3N1YiBJc0dET01DbGFzc1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNo
aWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRXZl
bnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJib29s
ZWFuIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJz
aG9ydCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJl
dHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJpbnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9CisKK3N1
YiBHZXRQcm9wR1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRuYW1lID0g
R2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5nIiBpZiAkdHlwZSBlcSAi
RE9NU3RyaW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAg
IHJldHVybiAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAg
cmV0dXJuICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAiYm9vbGVh
biIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hhciIgaWYgJHR5cGUgZXEg
ImNoYXIiOworICAgIHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVy
biAiaW50IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAidWNoYXIiIGlmICR0eXBl
IGVxICJ1Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOwor
ICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICByZXR1cm4gInVpbnQiIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWludDY0IiBpZiAkdHlwZSBl
cSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25l
ZCBzaG9ydCI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBY
WFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gIm9iamVjdCI7Cit9CisK
K3N1YiBHZXRHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1l
ID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0
Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2Rl
ICoiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisgICAgICAgIHJldHVybiAiY29uc3QgZ2No
YXIgKiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiZ2Zsb2F0ICIg
aWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpSYW5nZTo6Q29t
cGFyZUhvdyAiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJuICJnZG91
YmxlICIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAiZ2Jvb2xlYW4gIiBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJldHVybiAiZ2NoYXIgIiBpZiAkdHlwZSBl
cSAiY2hhciI7CisgICAgICAgIHJldHVybiAiZ2xvbmcgIiBpZiAkdHlwZSBlcSAibG9uZyI7Cisg
ICAgICAgIHJldHVybiAiZ3Nob3J0ICIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0
dXJuICJndWNoYXIgIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgICAgICByZXR1cm4gImd1aW50
ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJnaW50ICIgaWYgJHR5
cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiZ3VpbnQgIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgaW50IjsKKyAgICAgICAgcmV0dXJuICJndWxvbmcgIiBpZiAkdHlwZSBlcSAidW5zaWduZWQg
bG9uZyI7CisgICAgICAgIHJldHVybiAiZ3VpbnQ2NCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIGxvbmciOworICAgICAgICByZXR1cm4gImd1c2hvcnQgIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9y
IjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAgcmV0dXJuICJ2b2lk
IiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lICoiOworfQorCitzdWIg
Z2V0SW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRpbmNsdWRlSGRy
ID0gR2V0R0luY2x1ZGVIZHIoJHR5cGUpOworICAgIGlmICgkaW5jbHVkZUhkcikgeworICAgICAg
ICBpZiAoJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgcmV0dXJuICJHZG9t
RXZlbnRUYXJnZXROb2RlLmgiOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkdHlwZSBlcSAi
RE9NT2JqZWN0IikgeworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJv
bSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgIHJldHVybiAiR2RvbUNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAkaW5jbHVk
ZUhkcjsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBhZGRQcm9w
SW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNI
ZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgICRoZHJQcm9wSW5jbHVk
ZXN7JGhkcn0gPSAxOworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAg
ICAgICAgICAgJGhkclByb3BJbmNsdWRlc3siUHJpdmF0ZSIuJGhkcn0gPSAxOworICAgICAgICAg
ICAgJGhkclByb3BJbmNsdWRlc3siUHJpdmF0ZUludCIuJGhkcn0gPSAxOworICAgICAgICB9Cisg
ICAgfQorCit9CisKK3N1YiBhZGRJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisg
ICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAg
ICAgICAgJGhkckluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICB9CisKK30KKworc3ViIGFkZEluY0Jv
ZHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigk
dHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3skaGRy
fSA9IDE7CisgICAgfQorfQorCitzdWIgR2V0UHJpdkZuCit7CisgICAgbXkgJGludGVyZmFjZU5h
bWUgPSBzaGlmdDsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gc2hpZnQ7CisgICAgbXkgJHJl
cyA9IHNoaWZ0OworICAgIG15ICRwYXJtID0gc2hpZnQ7CisKKyAgICBpZiAoJGludGVyZmFjZU5h
bWUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICByZXR1cm4gIldlYkNvcmU6OkV2ZW50VGFy
Z2V0Tm9kZSAqICRyZXMgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUqPihn
ZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKHNlbGYpKTsiOworICAgIH0KKyAgICBy
ZXR1cm4gIldlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiAkcmVzID0gKCR7bGNhc2VfaWZhY2Vu
YW1lfV9nZXRfcHJpdmF0ZSgkcGFybSkpOyI7Cit9CisKK3N1YiBza2lwUHJvcFRlbXBvcmFyaWx5
Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkcHJvcF90eXBlID0gc2hpZnQ7CisK
KyAgICAjIHNraXAgTWVkaWFMaXN0CisgICAgaWYgKCRwcm9wX3R5cGUgZXEgInN0eWxlc2hlZXRz
OjpNZWRpYUxpc3QiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICNpZiAoJHBy
b3BfdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQor
CisgICAgIyBza2lwIENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uCisgICAgaWYgKCRwcm9wX3R5cGUg
ZXEgIkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9w
X3R5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAg
ICAjfQorCisgICAgIyBza2lwIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCisgICAgI2lmICgk
cHJvcF90eXBlIGVxICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJl
dHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgRXZlbnRMaXN0ZW5lcgorICAgICNpZiAoJHBy
b3BfdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9
CisKKyAgICAjIHNraXAgRE9NV2luZG93CisgICAgI2lmICgkcHJvcF90eXBlIGVxICJET01XaW5k
b3ciKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIENvbnN0cnVj
dG9ycyAod2hhdGV2ZXIgdGhleSBhcmUpIGZvciBub3cuCisgICAgaWYgKCRwcm9wX3R5cGUgPX4g
L0NvbnN0cnVjdG9yJC8pIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBjYW52
YXMyZC4uLi4KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiY3VzdG9tIikgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQXJyYXkiKSB7CisgICAgICAg
IHJldHVybiAxOworICAgIH0KKworICAgIGlmICgkcHJvcF90eXBlIGVxICJET01UaW1lU3RhbXAi
KSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgVE9ETzogU1ZHCisgICAgaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1NW
R0FuaW1hdGVkVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJl
dHVybiAwOworfQorCitzdWIgVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbgoreworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXBwZWQgb3V0IENhbnZhc1BpeGVsQXJyYXkgLSBz
ZWUgSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBmb3Igd2h5LgorICAgIHJldHVybiAxIGlm
ICR0eXBlIGVxICJOb2RlIiBvciAkdHlwZSBlcSAiRG9jdW1lbnQiIG9yICR0eXBlIGVxICJIVE1M
Q29sbGVjdGlvbiIgb3IgJHR5cGUgZXEgIlNWR1BhdGhTZWciIG9yICR0eXBlIGVxICJTdHlsZVNo
ZWV0IiBvciAkdHlwZSBlcSAiQ1NTUnVsZSIgb3IgJHR5cGUgZXEgIkNTU1ZhbHVlIiBvciAkdHlw
ZSBlcSAiRXZlbnQiIG9yICR0eXBlIGVxICJFbGVtZW50IiBvciAkdHlwZSBlcSAiVGV4dCI7Cisg
ICAgcmV0dXJuIDA7Cit9CisKKworIyBHZW5lcmF0ZSBoZWFkZXIgYW5kIGltcGwKK3N1YiBHZW5l
cmF0ZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlm
dDsKKworICAgIG15ICRoYXNMZWdhY3lQYXJlbnQgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICBteSAkaGFzUmVhbFBhcmVudCA9IEB7JGRhdGFO
b2RlLT5wYXJlbnRzfSA+IDA7CisgICAgbXkgJGhhc1BhcmVudCA9ICRoYXNMZWdhY3lQYXJlbnQg
fHwgJGhhc1JlYWxQYXJlbnQ7CisgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9IEdldFBhcmVudENs
YXNzTmFtZSgkZGF0YU5vZGUpOworICAgIG15ICRwYXJlbnRHT2JqVHlwZSA9IEdldFBhcmVudEdP
YmpUeXBlKCRkYXRhTm9kZSk7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5h
bWU7CisgICAgbXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7Cisg
ICAgbXkgJGhkck5hbWUgPSBHZXRIZHJOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKworICAgICMgQWRk
IHRoZSBkZWZhdWx0IGltcGwgaGVhZGVyIHRlbXBsYXRlCisgICAgQGNQcmVmaXggPSBzcGxpdCgi
XHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICBwdXNoKEBjUHJlZml4LCAiXG4iKTsKKworICAg
ICRpbXBsSW5jbHVkZXN7IkdET01CaW5kaW5nLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3si
JGhkck5hbWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlJHtoZHJOYW1lfS5o
In0gPSAxOworCisgICAgbXkgJHBhcmVudEludGVyZmFjZU5hbWUgPSAiRE9NT2JqZWN0IjsKKyAg
ICBteSAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICBteSAkcGFyZW50SGRy
TmFtZSA9ICJHZG9tRE9NT2JqZWN0IjsKKyAgICBpZiAoJHBhcmVudENsYXNzTmFtZSBuZSAiR09i
amVjdCIpCisgICAgeworICAgICAgICAkcGFyZW50SW50ZXJmYWNlTmFtZSA9IHN1YnN0cigkcGFy
ZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgaWYgKCRwYXJlbnRJbnRlcmZhY2VOYW1lIG5lICJE
T01PYmplY3QiKSB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NIi5zdWJz
dHIoJHBhcmVudENsYXNzTmFtZSwgNCk7CisgICAgICAgICAgICAkcGFyZW50SGRyTmFtZSA9IEdl
dEhkck5hbWUoJHBhcmVudEludGVyZmFjZU5hbWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UK
KyAgICAgICAgeworICAgICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTU9iamVjdCI7
CisgICAgICAgIH0KKyAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0g
PSAxOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0g
PSAxOworICAgICAgICAkaGRySW5jbHVkZXN7IiR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAg
ICAgICAgIyRoZHJJbmNsdWRlc3siUHJpdmF0ZSR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMDsKKyAg
ICB9CisKKyAgICAjIFRPRE8gLSBtYWtlIHRoZXNlIG9ubHkgaW5jbHVkZSB3aGVyZSBuZWVkZWQs
IGxpa2V3aXNlIHRoZQorICAgICMgZnVuY3Rpb24gZGVjbGFyYXRpb25zIHRvR0RPTSwgdG9vCisg
ICAgJGltcGxJbmNsdWRlc3siTm9kZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkVsZW1l
bnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDU1NWYWx1ZS5oIn0gPSAxOworICAgICRp
bXBsSW5jbHVkZXN7IkNTU1J1bGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJIVE1MQ29s
bGVjdGlvbi5oIn0gPSAxOworICAgICMkaW1wbEluY2x1ZGVzeyJTVkdQYXRoU2VnLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siU3R5bGVTaGVldC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVk
ZXN7IkV2ZW50LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ2FudmFzUGl4ZWxBcnJheS5o
In0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkRPTVdpbmRvdy5oIn0gPSAxOworICAgICRpbXBs
SW5jbHVkZXN7IlRleHQuaCJ9ID0gMTsKKworICAgICMgWFhYIFRPRE86IG1ha2UgdGhpcyBvcHRp
b25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3YXkuCisgICAgbXkg
JGhhY2tEZWNscyA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVy
IHRvR0RPTShOb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIG5vZGUp
OworICAgIGdwb2ludGVyIHRvR0RPTShDU1NSdWxlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dE
T00oRWxlbWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBub2RlKTsK
KyAgICBncG9pbnRlciB0b0dET00oSFRNTENvbGxlY3Rpb24qIG5vZGUpOyAKKyAgICAvL2dwb2lu
dGVyIHRvR0RPTShTVkdQYXRoU2VnKiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKFN0eWxl
U2hlZXQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXROb2RlKiBub2Rl
KTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0KiBub2RlKTsgCisgICAgZ3BvaW50
ZXIgdG9HRE9NKEV2ZW50KiBub2RlKTsgCisgICAgZ3BvaW50ZXIgdG9HRE9NKENhbnZhc1BpeGVs
QXJyYXkqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oRE9NV2luZG93KiBub2RlKTsgCisg
ICAgZ3BvaW50ZXIgdG9HRE9NKFRleHQqIG5vZGUpOyAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJGhhY2tEZWNscyk7CisKKyAgICAjIFhYWCBUT0RP
OiBtYWtlIHRoaXMgb3B0aW9uYWwgb3IgaW4gYSBoZWFkZXIgZmlsZS4gIG9yIGZpbmQgYSBiZXR0
ZXIgd2F5LgorICAgIG15ICRzdHJpbmdDb252ZXJ0ID0gPDwgIkVPRiI7CitjbGFzcyBHU3RyaW5n
Q29udmVydCB7CisgICAgcHVibGljOgorICAgIGNvbnN0IGdjaGFyICptX3N0cjsKKyAgICBHU3Ry
aW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChz
LnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6S1VSTCBjb25z
dCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7IH0KKyAg
ICBHU3RyaW5nQ29udmVydChjb25zdCBLSlM6OlVTdHJpbmcgJiBzKSB7IG1fc3RyID0gZ19zdHJk
dXAocy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3Jl
OjpBdG9taWNTdHJpbmcgY29uc3QmcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7IH0KK307CisKK0VPRgorCisgICAgcHVzaChAY0JvZHksICRzdHJpbmdDb252
ZXJ0KTsKKworICAgIHB1c2goQGNCb2R5LCAibmFtZXNwYWNlIFdlYkNvcmUge1xuIik7CisKKyAg
ICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQT0RUeXBlIGZsYWcK
KyAgICBteSAkcG9kVHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlBPRFR5
cGUifTsKKyAgICBteSAkcGFzc1R5cGUgPSAkcG9kVHlwZSA/ICJKU1NWR1BPRFR5cGVXcmFwcGVy
PCRwb2RUeXBlPioiIDogIiRpbnRlcmZhY2VOYW1lKiI7CisKKyAgICBpZiAoJHtpbnRlcmZhY2VO
YW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01hbnVhbFRvSlNJbXBsZW1l
bnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAg
ICAgICAjICAgIHB1c2goQGNCb2R5LCAiS0pTOjpKU1ZhbHVlKiB0b0pTKEtKUzo6RXhlY1N0YXRl
KiBleGVjLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogb2JqLCBTVkdFbGVtZW50KiBj
b250ZXh0KVxuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBh
cmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICAgcHVzaChAY0JvZHksICJL
SlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4ZWMsICRwYXNzVHlwZSBvYmosIFNW
R0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAgICAgICBw
dXNoKEBjQm9keSwgImdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjokcGFzc1R5cGUgb2JqKVxuIik7
CisgICAgICAgICN9CisKKyAgICAgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKyAgICAgICAgI2lm
ICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBjYWNo
ZVNWR0RPTU9iamVjdDxKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiwgJGNsYXNzTmFtZSwg
JHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQpO1xuIik7CisgICAgICAg
ICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFt
ZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gY2FjaGVTVkdET01P
YmplY3Q8JGltcGxDbGFzc05hbWUsICRjbGFzc05hbWUsICR7Y2xhc3NOYW1lfVByb3RvdHlwZT4o
ZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBXZWJDb3JlOjpjYWNoZURPTU9iamVjdDxXZWJDb3Jl
OjokaW50ZXJmYWNlTmFtZSwgR0RPTSRpbnRlcmZhY2VOYW1lPihvYmopO1xuIik7CisgICAgICAg
ICN9CisgICAgICAgIHB1c2goQGNCb2R5LCAifVxuIik7CisgICAgfQorCisgICAgcHVzaChAY0Jv
ZHksICJ9IC8qIG5hbWVzcGFjZSBXZWJDb3JlICovIFxuIik7CisgICAgbXkgJGltcGxDb250ZW50
ID0gIiI7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNCb2R5LCAidXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiZXh0ZXJuIFwiQ1wiIHtcblxuIik7Cisg
ICAgcHVzaChAY0JvZHksICIjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0
KHN0cikubV9zdHIpXG4iKTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0
ZQorICAgIEBoUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgICAg
ICNwdXNoKEBoUHJlZml4LCAiXG4iKTsKKworICAgICMgSGVhZGVyIGd1YXJkCisgICAgICAgIG15
ICRndWFyZCA9ICJfXyIgLiAkY2xhc3NOYW1lIC4gIl9IX18iOworCisgICAgbXkgJGNsc0NhcHMg
PSBzdWJzdHIoQ2xzVG9HT2JqVHlwZSgkY2xhc3NOYW1lKSwgNSk7CisgICAgbXkgJGxjYXNlX2lm
YWNlbmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKTsKKyAgICAjbXkg
JHBhcmVudENsc0NhcHMgPSAiR0RPTV8iIC4gQ2xzVG9HT2JqVHlwZSgkcGFyZW50SW50ZXJmYWNl
TmFtZSk7CisKKyAgICBAaFByZWZpeEd1YXJkID0gPDwgIkVPRiI7CisjaWZuZGVmICRndWFyZAor
I2RlZmluZSAkZ3VhcmQKK0VPRgorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitHX0JF
R0lOX0RFQ0xTCisKK0VPRgorCisgICAgcHVzaChAaEJvZHlQcmUsICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworI2RlZmluZSBHRE9NX1RZUEVfJHtjbHND
YXBzfSAgICAgICAgICAgICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV8ke2Nsc0NhcHN9KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NB
U1QoKG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX0pKQorI2RlZmluZSBH
RE9NXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgo
a2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICRjbGFzc05hbWUpQ2xhc3MpCisjZGVmaW5l
IEdET01fSVNfJHtjbHNDYXBzfShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9U
WVBFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdET01fSVNfJHtjbHND
YXBzfV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9N
X1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9HRVRfQ0xBU1Mob2Jq
KSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfJHtjbHNDYXBz
fSwgJHtjbGFzc05hbWV9Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9UHJp
dmF0ZSAke2NsYXNzTmFtZX1Qcml2YXRlOworCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSB7CisgICAg
JHtwYXJlbnRDbGFzc05hbWV9IHBhcmVudF9pbnN0YW5jZTsKKworICAgICR7Y2xhc3NOYW1lfVBy
aXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfUNsYXNzIHsKKyAgICBHT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorJHtsY2FzZV9p
ZmFjZW5hbWV9X2dldF90eXBlICh2b2lkKTsKKworRU9GCisKKyAgICBwdXNoKEBoQm9keSwgJGlt
cGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2lmbmRlZiAke2d1
YXJkfV9QUk9QXworI2RlZmluZSAke2d1YXJkfV9QUk9QXworRU9GCisKKyAgICBwdXNoKEBoQm9k
eVByb3BQcmUsICRpbXBsQ29udGVudCk7CisKKyAgICBwdXNoKEBoQm9keVByb3AsICJHX0JFR0lO
X0RFQ0xTXG4iKTsKKworICAgICRoZHJQcm9wSW5jbHVkZXsiZ2xpYi1vYmplY3QuaCJ9ID0gMTsK
KyAgICAkaGRyUHJvcEluY2x1ZGV7IlByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9LmgifSA9IDE7
CisgICAgJGhkclByb3BJbmNsdWRleyJHRE9NT2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJ
bmNsdWRleyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8
PCAiRU9GIjsKKyNpZm5kZWYgJHtndWFyZH1fSU5UXworI2RlZmluZSAke2d1YXJkfV9JTlRfCisj
aW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50JHtwYXJlbnRIZHJO
YW1lfS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICIke2ludGVyZmFjZU5h
bWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVudCk7CisK
KyAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFzUGFyZW50
IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQg
IVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAg
ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2lu
dGVyIHRvR0RPTSgke2ludGVyZmFjZU5hbWV9KiBub2RlKTsKK30gLyogbmFtZXNwYWNlIFdlYkNv
cmUgKi8gCitFT0YKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworICAg
IH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19CRUdJTl9ERUNMU1xuIik7CisKKyAgICAj
Q2xhc3MgZGVjbGFyYXRpb24KKyAgICAjaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ci
KSB7CisgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiY2xhc3MgR0RPTSRpbnRlcmZhY2VO
YW1lIHtcbiIpOworICAgICN9IGVsc2UgeworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
Y2xhc3MgR0RPTSRpbnRlcmZhY2VOYW1lIDogcHVibGljICRwYXJlbnRHSWZhY2VOYW1lIHtcbiIp
OworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHR5cGVkZWYgJHBhcmVudEdJZmFj
ZU5hbWUgQmFzZTtcbiIpOworICAgICN9CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInB1Ymxp
YzpcbiIpOworCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBpbnQgZ2V0X2dvYmpfdHlw
ZSgpIHsgcmV0dXJuIEdET01fVFlQRV8ke2Nsc0NhcHN9OyB9XG4iKTsKKworICAgIG15ICRuZWVk
c1NWR0NvbnRleHQgPSAwOworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVy
bmFsLCAiICAgIEdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZh
Y2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4
dCIgOiAiIikgLiAiKTtcbiIpOworCisgICAgIyBEZXN0cnVjdG9yCisgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICB2aXJ0dWFsIH5HRE9NJGludGVyZmFjZU5hbWUoKTtcbiIpIGlmICghJGhh
c1BhcmVudCBvciAkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSBvciAkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IjsKKworICAgIGlmICghJGhhc1BhcmVudCB8fCAoJGludGVyZmFjZU5h
bWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5
cGU+KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAg
IyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxKU1NWR1BPRFR5cGVXcmFwcGVy
PCRwb2RUeXBlPiA+IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVl
ZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wbCgpIGNvbnN0IHsgcmV0
dXJuIG1faW1wbC5nZXQoKTsgfVxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0Lmdl
dCgpOyB9XG5cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRl
OlxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8U1ZH
RWxlbWVudD4gbV9jb250ZXh0O1xuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICBSZWZQdHI8JGltcGxDbGFzc05hbWUgPiBtX2ltcGw7XG4iKTsKKyAgICAgICAgI30g
ZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFdlYkNvcmU6OiRp
bnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG5cbiIp
OworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZh
Y2VOYW1lPiBtX2ltcGw7XG4iKTsKKyAgICAgICAgI30KKyAgICB9IGVsc2lmICgkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7CisgICAg
ICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGlt
cGwoKSBjb25zdFxuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAge1xuIik7
CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSo+KEJhc2U6OmltcGwoKSk7XG4iKTsKKyAgICAgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB9XG4iKTsKKyAgICB9CisgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIn07XG4iKTsKKworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBjQm9keSwg
IkdET00ke2ludGVyZmFjZU5hbWV9OjpHRE9NJGludGVyZmFjZU5hbWUoUGFzc1JlZlB0cjxXZWJD
b3JlOjokaW50ZXJmYWNlTmFtZT4gaW1wbCIgLiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0Vs
ZW1lbnQqIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiRE9NV2luZG93IikgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6bV9pbXBsKGltcGwp
XG4iKTsKKyAgICB9IGVsc2lmICgkaGFzUGFyZW50KSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIDogJHBhcmVudEdJZmFjZU5hbWUoaW1wbCIgLiAoJHBhcmVudE5lZWRzU1ZHQ29udGV4dCA/
ICIsIGNvbnRleHQiIDogIiIpIC4gIilcbiIpIGlmICgkaW50ZXJmYWNlTmFtZSBuZSAiRE9NV2lu
ZG93Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50
R0lmYWNlTmFtZSgpXG4iKSA7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9jb250ZXh0
KGNvbnRleHQpXG4iKSBpZiAkbmVlZHNTVkdDb250ZXh0OworICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICAsIG1faW1wbChpbXBsKVxuIik7CisgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ7XG4i
KTsKKyAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBp
ZiAoISRoYXNQYXJlbnQgb3IgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSkgeworICAg
ICAgICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VO
YW1lKClcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworCisgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgIG1faW1wbC5nZXQoKS0+ZGVyZWYoKTtcbiIpOworICAgICAgICBpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIk5vZGUiKSB7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBX
ZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1bWVudCht
X2ltcGwtPmRvY3VtZW50KCksIG1faW1wbC5nZXQoKSk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgICAgICMgICAgbXkgJGFuaW1h
dGVkVHlwZSA9ICRpbXBsQ2xhc3NOYW1lOworICAgICAgICAgICAgIyAgICAkYW5pbWF0ZWRUeXBl
ID1+IHMvU1ZHL1NWR0FuaW1hdGVkLzsKKworICAgICAgICAgICAgIyAgICAjIFNwZWNpYWwgY2Fz
ZSBmb3IgSlNTVkdOdW1iZXIKKyAgICAgICAgICAgICMgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5J
c1NWR0FuaW1hdGVkVHlwZSgkYW5pbWF0ZWRUeXBlKSBhbmQgJHBvZFR5cGUgbmUgImZsb2F0Iikg
eworICAgICAgICAgICAgIyAgICAgICAgcHVzaChAY0JvZHksICIgICAgSlNTVkdEeW5hbWljUE9E
VHlwZVdyYXBwZXJDYWNoZTwkcG9kVHlwZSwgJGFuaW1hdGVkVHlwZT46OmZvcmdldFdyYXBwZXIo
bV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICAgICAgIyAgICB9CisgICAgICAgICAgICAjfQor
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJl
dGVyOjpmb3JnZXRET01PYmplY3QobV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICB9CisKKyAg
ICAgICAgcHVzaChAY0JvZHksICJcbn1cblxuIik7CisgICAgfQorCisgICAgIyBEb2N1bWVudCBu
ZWVkcyBhIHNwZWNpYWwgZGVzdHJ1Y3RvciBiZWNhdXNlIGl0J3MgYSBzcGVjaWFsIGNhc2UgZm9y
IGNhY2hpbmcuIEl0IG5lZWRzCisgICAgIyBpdHMgb3duIHNwZWNpYWwgaGFuZGxpbmcgcmF0aGVy
IHRoYW4gcmVseWluZyBvbiB0aGUgY2FjaGluZyB0aGF0IE5vZGUgbm9ybWFsbHkgZG9lcy4KKyAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50IikgeworICAgICAgICBwdXNoKEBjQm9k
eSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOworICAg
ICAgICBwdXNoKEBjQm9keSwgIntcbiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmZvcmdldERPTU9iamVjdChzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4o
aW1wbCgpKSk7XG59XG5cbiIpOworICAgIH0KKworICAgICRpbXBsSW5jbHVkZXN7IiR7cGFyZW50
SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9Lmgi
fSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siR0RPTU9iamVjdC5oIn0gPSAxOworCisgICAgJGlt
cGxUeXBlZGVmc3siJGNsYXNzTmFtZSJ9ID0gMTsKKyAgICAkaW1wbFR5cGVkZWZzeyIke2NsYXNz
TmFtZX1DbGFzcyJ9ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0
L3dlYmtpdGRlZmluZXMuaD4KKyNpbmNsdWRlICJET01XaW5kb3cuaCIgLyogeXVrazogVE9ETyAt
IG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIk5vZGUuaCIgLyogeXVrazogVE9ETyAt
IG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIiAvKiB5dWtr
OiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5o
IiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFz
R3JhZGllbnQuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1
ZGUgIkNhbnZhc1N0eWxlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8K
KyNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgLyogeXVrazogVE9ETyAtIG1h
a2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0LmgiIC8q
IHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJHZG9tRXZlbnRU
YXJnZXROb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNs
dWRlICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0
aGlzIG9wdGlvbmFsIG9uIEV2ZW50VGFyZ2V0Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9
LmgiCisjaW5jbHVkZSAiJHtoZHJOYW1lfS5oIgorI2luY2x1ZGUgIlByaXZhdGUke2hkck5hbWV9
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludCR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5h
bWV9cHJvcHMuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJ1c3RyaW5nLmgiCisj
aW5jbHVkZSAiS1VSTC5oIgorCisjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1
ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisj
aW5jbHVkZSAiQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVk
ZSAiU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAid2Via2l0
bWFyc2hhbC5oIgorI2luY2x1ZGUgIkdkb21FdmVudC5oIgorCisKK0VPRgorCisgICAgcHVzaChA
Y0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
CisKKyR7aGFja0RlY2xzfQorCitHX0JFR0lOX0RFQ0xTCisKKyR7c3RyaW5nQ29udmVydH0KKwor
R19ERUZJTkVfVFlQRSgke2NsYXNzTmFtZX0sICR7bGNhc2VfaWZhY2VuYW1lfSwgJHtwYXJlbnRH
T2JqVHlwZX0pOworCisjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0KHN0
cikubV9zdHIpCisKKy8qCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgeworICAgIGNsYXNz
IFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKml0ZW07Cit9OyAgCisKKyNkZWZpbmUgR0RPTV8k
e2Nsc0NhcHN9X0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgo
b2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfVByaXZhdGUpKQorKi8KK0df
RU5EX0RFQ0xTCitXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1l
fV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJlcXVlc3QpCit7CitFT0YKKworICAgIHB1c2go
QGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAi
RU9GIjsKKyAgICBHRE9NJHtpbnRlcmZhY2VOYW1lfSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19j
YXN0PEdET00ke2ludGVyZmFjZU5hbWV9Kj4oZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdE
T01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3Jl
Ojoke2ludGVyZmFjZU5hbWV9Kj4ocmVzLT5pbXBsKCkpOworRU9GCisgICAgcHVzaChAY0JvZHlQ
cml2LCAkaW1wbENvbnRlbnQpOworCisgICAgIyBQcm9wZXJ0aWVzCisgICAgbXkgJGZ1bmN0aW9u
TmFtZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5hbWU7IAorICAgIFNLSVBQUk9QOiBmb3JlYWNoIG15
ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJv
cE5hbWUgPSBkZWNhbWVsaXplKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAg
IG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15
ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICRmdW5jdGlvblNpZyA9
ICIkY2xhc3NOYW1lICp0aGl6IjsKKyAgICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIi
fSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9
IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworCisgICAgICAgIGlmIChza2lw
UHJvcFRlbXBvcmFyaWx5KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBT
S0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGFkZFByb3BJbmNIZHIo
JHByb3BfdHlwZSk7CisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJvcCwgIldFQktJVF9BUEkgJHR5
cGVcbiRmdW5jdGlvbk5hbWVQcmVmaXgiIC4gIl9wcm9wX2dldF8iIC4gIiRwcm9wTmFtZSAoJGZ1
bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJvcCwgIldFQktJVF9B
UEkgdm9pZFxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3Bfc2V0XyIgLiAiJHByb3BOYW1l
ICgkZnVuY3Rpb25TaWcsICR0eXBlIiAuICJ2YWx1ZSk7XG5cbiIpOworICAgIH0KKworICAgICMg
UHJvcGVydGllcworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworfQorCitHX0JFR0lOX0RF
Q0xTCisKK2VudW0geworICAgIEJST1dTRVJfRVZFTlQsCisgICAgTEFTVF9TSUdOQUwKK307CisK
K3N0YXRpYyBndWludCBldmVudF9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKKworZW51
bSB7CisgICAgUFJPUF8wLAorRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQp
OworCisgICAgbXkgQHR4dF9pbnN0YWxsX3Byb3BzID0gKCk7CisgICAgbXkgQHR4dF9zZXRfcHJv
cHMgPSAoKTsKKyAgICBteSBAdHh0X2dldF9wcm9wcyA9ICgpOworCisgICAgbXkgJHByaXZfZm4g
PSBHZXRQcml2Rm4oJGludGVyZmFjZU5hbWUsICR7bGNhc2VfaWZhY2VuYW1lfSwgImdzZWxmIiwg
InNlbGYiKTsKKworICAgIG15ICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lk
ICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1
aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAgICAgICBHVmFsdWUgKiB2YWx1ZSwKKyAgICAg
ICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0g
KnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRj
aCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJv
cCk7CisKKyAgICBteSAkdHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xj
YXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9mbihHT2JqZWN0ICogb2JqZWN0LCBndWludCBw
cm9wX2lkLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1ZhbHVlICogdmFsdWUsCisgICAg
ICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICogcHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9
ICpzZWxmID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKyAgICBzd2l0
Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0eHRfc2V0X3By
b3ApOworCisgICAgU0tJUEVOVU06IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUt
PmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wX25hbWUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWU7CisgICAgICAgIG15ICRzZXRwcm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJGdldHByb3BfbmFtZV9mbiA9
ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRwcm9wX25hbWUpOworCisgICAgICAgIG15ICRw
cm9wTmFtZSA9IGRlY2FtZWxpemUoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRwcm9wQ2FwcyA9
IHVjKCRwcm9wTmFtZSk7CisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7Cisg
ICAgICAgIG15ICR7cHJvcEVudW19ID0gIlBST1BfJHtwcm9wQ2Fwc30iOworICAgICAgICBteSAk
e3Byb3BfZ3R5cGV9ID0gZGVjYW1lbGl6ZSgkcHJvcF90eXBlKTsKKyAgICAgICAgaWYgKCRwcm9w
X2d0eXBlIGVxICJldmVudF90YXJnZXQiKSB7CisgICAgICAgICAgICAkcHJvcF9ndHlwZSA9ICJl
dmVudF90YXJnZXRfbm9kZSI7CisgICAgICAgIH0KKyAgICAgICAgbXkgJHtwcm9wR1R5cGV9ID0g
dWMoJHByb3BfZ3R5cGUpOworICAgICAgICBteSAkbGNhc2VfZ3R5cGVuYW1lID0gImdkb21fIiAu
ICRwcm9wX2d0eXBlOworCisgICAgICAgIG15ICRjdXN0b20gPSAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsKKworICAgICAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0pIHsK
KyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxIGlm
ICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKyAgICAgICAgaWYgKHNraXBQcm9wVGVt
cG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVN
OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgcHVzaChAY0JvZHlQcml2LCAiICAg
ICR7cHJvcEVudW19LFxuIik7CisKKyAgICAgICAgbXkgJGd0eXBlID0gR2V0UHJvcEdUeXBlKCRw
cm9wX3R5cGUpOworICAgICAgICBteSAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURBQkxFIjsK
KyAgICAgICAgbXkgJHdyaXRlYWJsZSA9ICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS87
CisgICAgICAgIG15ICRjb25zdCA9ICJyZWFkLW9ubHkgIjsKKyAgICAgICAgaWYgKCR3cml0ZWFi
bGUgJiYgJGN1c3RvbSkgeworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtb25seSAoZHVlIHRv
IGN1c3RvbSBmdW5jdGlvbnMgbmVlZGVkIGluIGdkb213ZWJraXQpIjsKKyAgICAgICAgICAgIG5l
eHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgISRjdXN0
b20pIHsKKyAgICAgICAgICAgICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBRFdSSVRFIjsKKyAg
ICAgICAgICAgICRjb25zdCA9ICJyZWFkLXdyaXRlICI7CisgICAgICAgIH0KKworICAgICAgICBt
eSAkX2d0eXBlID0gJGd0eXBlOworICAgICAgICBpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7Cisg
ICAgICAgICAgICAkX2d0eXBlID0gInVpbnQiOyAjIHl1ay4KKyAgICAgICAgfQorICAgICAgICBt
eSAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkgKGdfa2xhc3MsICR7cHJvcEVudW19LCAKKyAgICAgICAgICAgIGdfcGFyYW1f
c3BlY18ke19ndHlwZX0gKCIke3Byb3BOYW1lfSIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAg
ICAiJHtpbnRlcmZhY2VOYW1lfS4ke3Byb3BOYW1lfSIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICov
CisgICAgICAgICAgICAgICAgIiR7Y29uc3R9ICR7dHlwZX0gJHtpbnRlcmZhY2VOYW1lfS4ke3By
b3BOYW1lfSIsIC8qIGxvbmdlciAqLworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3By
b3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gIi8q
IFRPRE8hICRndHlwZSAqL1xuIjsKKworICAgICAgICBpZiAoJHdyaXRlYWJsZSkgeworCisgICAg
ICAgICAgICBteSAkb2sgPSAwOworICAgICAgICAgICAgbXkgJGNvbnZlcnRfZm4gPSAiIjsKKyAg
ICAgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAkY29u
dmVydF9mbiA9ICJXZWJDb3JlOjpTdHJpbmciOworICAgICAgICAgICAgICAgICRvayA9IDE7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJib29sZWFuIikgewor
ICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNY
WFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0
IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAgICAgICAgICAgICAg
JG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAg
ICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFgg
VE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHll
dAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVsb25nIikgeworICAgICAg
ICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9E
Tzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAor
ICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtp
bnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVj
dCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAg
ICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7Cisg
ICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVjaGFyIikgeworICAgICAgICAgICAgICAg
ICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAg
ICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICMgWFhYIFRP
RE8gLSBza2lwIExvY2F0aW9uCisgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkxv
Y2F0aW9uIikgeworICAgICAgICAgICAgICAgICRvayA9IDA7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmICgkb2spIHsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3Bz
LCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisgICAgICAgICAgICAgICAgcHVz
aChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAg
IHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGdzZWxmLT5zZXQke3NldHByb3BfbmFtZV9m
bn0oJHtjb252ZXJ0X2ZufShnX3ZhbHVlX2dldF8kZ3R5cGUgKHZhbHVlKSkiKTsKKworICAgICAg
ICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIsIGVjIikgaWYgQHskYXR0cmlidXRlLT5z
ZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAi
KTtcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAg
YnJlYWs7XG4gICAgfVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBw
dXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisK
KyAgICAgICAgbXkgJGV4Y2VwdGlvbiA9ICIiOworICAgICAgICBpZiAoQHskYXR0cmlidXRlLT5n
ZXR0ZXJFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgJGV4Y2VwdGlvbiA9ICJlYyI7CisgICAg
ICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgbXkgJGNvbnZlcnRfZm4gPSAi
IjsKKyAgICAgICAgbXkgJHBvc3RfY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkZG9uZSA9
IDA7CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICRjb252
ZXJ0X2ZuID0gIl9HX0dFVF9VVEY4KCI7CisgICAgICAgICAgICAkcG9zdF9jb252ZXJ0X2ZuID0g
IikiOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAg
ICAgICAgICAgICMkY29udmVydF9mbiA9ICJXVEY6OmdldFB0cigke2xjYXNlX2d0eXBlbmFtZX1f
Z2V0X3ByaXZhdGUoIjsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9IEdldFByaXZGbigkaW50
ZXJmYWNlTmFtZSwgJHtsY2FzZV9ndHlwZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworICAgICAg
ICAgICAgIyRjb252ZXJ0X2ZuID0gIiR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZShQYXNz
UmVmUHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4oIjsKKyAgICAgICAgICAgICMkcG9zdF9jb252
ZXJ0X2ZuID0gIikiOworICAgICAgICAgICAgbXkgJGRvbW9ialR5cGUgPSAiR0RPTSIuJHByb3Bf
dHlwZTsKKyAgICAgICAgICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgUGFz
c1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+IHB0ciA9IGdzZWxmLT4ke2dldHByb3BfbmFt
ZV9mbn0oJHtleGNlcHRpb259KTsKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0ICh2YWx1ZSwg
V2ViQ29yZTo6dG9HRE9NKHB0ci5nZXQoKSkpOworRU9GCisgICAgICAgICAgICBwdXNoKEB0eHRf
Z2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKyAgICAgICAgICAgICRkb25lID0gMTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICghJGRvbmUpIHsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRf
cHJvcHMsICIgICAgICAgIGdfdmFsdWVfc2V0XyRfZ3R5cGUgKHZhbHVlLCAke2NvbnZlcnRfZm59
Z3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pJHtwb3N0X2NvbnZlcnRfZm59
KTtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAg
ICAgYnJlYWs7XG4gICAgfVxuIik7CisKKyAgICAgICAgIyBpcyB0aGlzIF9lbnRpcmVseV8gbmVj
ZXNzYXJ5Pz8/CisgICAgICAgICMgY2FuIGl0IGJlIGRvbmUgd2l0aCBnZW5lcmljIGdfcGFyYW1f
c3BlY19ndHlwZQorICAgICAgICAjIGFuZCBnZXR0aW5nIGEgZmV3IHRoaW5ncywgaWdub3Jpbmcg
dGhlIG1pbi1tYXggZm9yIGV4YW1wbGU/CisgICAgICAgIGlmICgkZ3R5cGUgZXEgImludCIpIHsK
KyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAg
ICAgR19NSU5JTlQsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWElOVCwg
LyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgor
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAkdHh0
X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEZBTFNFLCAvKiBkZWZh
dWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19N
SU5GTE9BVCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYRkxPQVQsIC8q
IG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAgICAgICAgICAkdHh0X2lu
c3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlORE9VQkxFLCAgICAg
ICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhET1VCTEUsIC8qIG1heCAqLworICAg
ICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNp
ZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9
IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAg
ICAgICAgICBHX01BWFVJTlQ2NCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVsb25nIikg
eworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAg
ICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVTE9ORywgLyog
bWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxvbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgICAgICAgIC8q
IG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYTE9ORywgLyogbWF4ICovCisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0Yi
OworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBH
X01BWFVJTlQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0
ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAg
ICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAg
ICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQxNiwgLyogbWF4ICovCisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgInVjaGFyIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3Ag
PSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklOVDgsICAgICAgICAvKiBtaW4gKi8K
KyAgICAgICAgICAgICAgICBHX01BWElOVDgsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAs
ICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJj
aGFyIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5U
OCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VP
RgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1
bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR0RP
TV9UWVBFXyR7cHJvcEdUeXBlfSwgLyogZ29iamVjdCB0eXBlICovCitFT0YKKyAgICAgICAgfQor
ICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworICAg
ICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIChHUGFy
YW1GbGFncykke2dwYXJhbWZsYWd9KSk7ICAgICAgICAgICAgICAgICAgIAorCitFT0YKKyAgICAg
ICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKworCisgICAg
fQorCisgICAgcHVzaChAY0JvZHlQcml2LCAifTtcblxuIik7CisKKworICAgICR0eHRfZ2V0X3By
b3AgPSA8PCAiRU9GIjsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFM
SURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOwor
CisgICAgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdf
T0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywg
JHR4dF9zZXRfcHJvcCk7CisKKyAgICBteSAkdHh0X3NldF9nZXRfcHJvcHMgPSA8PCAiRU9GIjsK
KyAgICBjYXNlIFBST1BfQUdFOgorICAgICAgICBzZWxmLT5hZ2UgPSBnX3ZhbHVlX2dldF9pbnQg
KHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBST1BfQUdFOgorICAgICAgICBn
X3ZhbHVlX3NldF9pbnQodmFsdWUsIHNlbGYtPmFnZSk7CisgICAgICAgIGJyZWFrOworCisgICAg
ICAgICsgICBnX3ZhbHVlX2luaXQoJnBhcmFtc1swXSwgR19UWVBFX0ZST01fSU5TVEFOQ0Uob2Jq
ZWN0KSk7CisgICAgICAgICsgICBnX3ZhbHVlX3NldF9pbnN0YW5jZSgmcGFyYW1zWzBdLCAoZ3Bv
aW50ZXIpb2JqZWN0KTsKKworRU9GCisKKyAgICAjIFRPRE86IHdvcmsgb3V0IGlmIGl0J3MgYXBw
cm9wcmlhdGUgdG8gc3BsaXQgdGhpcyBpbnRvIG1hbnkgZGlmZmVyZW50CisgICAgIyBzaWduYWxz
IGUuZy4gImNsaWNrIiBldGMuCisgICAgbXkgJHR4dF9pbnN0YWxsX3NpZ25hbHMgPSAiIjsKKwor
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiBvcgorICAgICAgICAkaW50ZXJm
YWNlTmFtZSBlcSAiWE1MSHR0cFJlcXVlc3QiKSB7CisgICAgICAgICR0eHRfaW5zdGFsbF9zaWdu
YWxzID0gPDwgIkVPRiI7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2ln
bmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHJlcXVl
c3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19T
SUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHX1NJR05BTF9ERVRBSUxFRCAgKSwKKyAgICAgICAgMCwKKyAgICAgICAgTlVMTCwKKyAgICAg
ICAgTlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisg
ICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9C
T09MRUFOKTsKK0VPRgorICAgIH0KKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCitz
dGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemUoR09iamVjdCogb2JqZWN0KQor
eworICAgIC8qJHtjbGFzc05hbWV9KiByZXF1ZXN0ID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7
Ki8KKyAgICAvKiR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisg
ICAgCisgICAgLypHT2JqZWN0Q2xhc3MgKnBhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVr
IChnX3R5cGVfcGVla19wYXJlbnQgKCR7cGFyZW50R09ialR5cGV9KSk7Ki8KKworICAgIC8qIEZy
ZWUgYW55IG1lbW9yeSBvciBjbG9zZSBhbnkgZmlsZXMgKi8gCisKKyAgICAvKnBhcmVudF9jbGFz
cy0+IGZpbmFsaXplIChvYmplY3QpOyovCisKKyAgICBHX09CSkVDVF9DTEFTUygke2xjYXNlX2lm
YWNlbmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworQHR4dF9zZXRf
cHJvcHMKKworQHR4dF9nZXRfcHJvcHMKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9
X2NsYXNzX2luaXQoJHtjbGFzc05hbWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBHT2Jq
ZWN0Q2xhc3MgKmdfa2xhc3MgPSBHX09CSkVDVF9DTEFTUyAocmVxdWVzdENsYXNzKTsKKyAgICBn
X2tsYXNzLT5maW5hbGl6ZSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZTsKKyAgICBnX2ts
YXNzLT5zZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9mbjsK
KyAgICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9w
ZXJ0eV9mbjsKKyAgICAKK0B0eHRfaW5zdGFsbF9wcm9wcworCiskdHh0X2luc3RhbGxfc2lnbmFs
cworCisgICAgLypnX3R5cGVfY2xhc3NfcmVtb3ZlX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXpl
b2YoJHtjbGFzc05hbWV9UHJpdmF0ZSkpOyovCit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZh
Y2VuYW1lfV9pbml0KCR7Y2xhc3NOYW1lfSogcmVxdWVzdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1l
fVByaXZhdGUqIHByaXYgPSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUocmVxdWVzdCk7Cisg
ICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30gICAKKworRU9GCisKKyAgICBwdXNoKEBjQm9k
eVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2Rv
bSR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsK
KworI2lmbmRlZiAke2d1YXJkfV9QUklWXworI2RlZmluZSAke2d1YXJkfV9QUklWXworI2luY2x1
ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiJHtwYXJlbnRIZHJOYW1lfS5oIgorI2luY2x1
ZGUgIkdET01PYmplY3QuaCIKKy8qI2luY2x1ZGUgIlByaXZhdGUke3BhcmVudEhkck5hbWV9Lmgi
Ki8KKy8qR19CRUdJTl9ERUNMUyovCisvKmNsYXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX07
Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5
UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy9u
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdET00ke2ludGVyZmFjZU5hbWV9IDogcHVibGlj
ICR7cGFyZW50R0lmYWNlTmFtZX0geworCitwdWJsaWM6CisgICAgR0RPTSR7aW50ZXJmYWNlTmFt
ZX0oV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCkgOiAkcGFyZW50R0lmYWNlTmFtZX0o
aW1wbCkKKyAgICB7IGltcGwtPnJlZigpOyB9CisgICAgfkdET00ke2ludGVyZmFjZU5hbWV9KCkg
eyBtX2ltcGwtPmRlcmVmKCk7IH0KKworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGlt
cGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGw7IH0KKworCitwcml2YXRlOgorICAgIFdlYkNvcmU6
OiR7aW50ZXJmYWNlTmFtZX0gKm1faW1wbDsKK307CisKK0VPRgorCisgICAgICAgICNwdXNoKEBo
Qm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsK
Ky8vfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9
ICR7Y2xhc3NOYW1lfTsKKworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lm
YWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKworLypHX0VORF9E
RUNMUyovCisKKyNlbmRpZiAvKiAke2d1YXJkfV9QUklWXyAqLworCitFT0YKKworICAgICNyZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oKFdlYkNvcmU6
Ok5vZGUqKShyZXMpKTsKKyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOwor
CisgICAgICAgICNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAg
ICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAg
IyAgICAkaW1wbEluY2x1ZGVzeyJKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0gPSAxOwor
ICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyRpbmNsdWRlSGRy
fSA9IDE7CisgICAgICAgICN9CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFt
ZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUdkb21ET01PYmplY3Qu
aCJ9ID0gMTsKKworICAgICAgICBMT09QOiBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5v
ZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgICAgICNteSAkZnVuY3Rpb25OYW1lID0gZGVjYW1l
bGl6ZSgkY2xhc3NOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWUpOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfbmFtZSA9ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAi
Z2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRm
bl9zaWdfbmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldHVyblR5cGUgPSBHZXRHVHlwZSgk
Zm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIG15ICRyZXRfaXNfY2xzX3R5cGUgPSBJc0dE
T01DbGFzc1R5cGUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlv
blNpZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKworICAgICAgICAgICAgICAgIG15ICRjYWxsX2lt
cGxfcGFyYW1zID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gImdk
b21fIiAuIGRlY2FtZWxpemUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIGlmICgk
ZnVuY3Rpb25OYW1lIGVxICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHki
KSB7CisgICAgICAgICAgICAgICAgICAgICMgcmVzZXJ2ZWQgbmFtZSBjbGFzaCBpbiBnbGliIQor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdkb21fY3NzX3N0eWxlX2RlY2xh
cmF0aW9uX3NldF9jc3NfcHJvcGVydHkiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAjIFhYWCBza2lwIENvbXBhcmVIb3cgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAg
ICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3Bv
aW50cyIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RP
OiBza2lwcGluZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGlu
ZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgICMgWFhYIHNraXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAg
ICAgICBpZiAoJHJldHVyblR5cGUgZXEgIkdkb21TVkdEb2N1bWVudCAqIikgeworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3Vt
ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5j
dGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQg
TE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIHNv
bWUgY3VzdG9tIGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgbXkgJGlzX2N1c3Rv
bV9mbiA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
In07CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xs
ZWN0aW9uX2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdk
b21faHRtbF9jb2xsZWN0aW9uX25hbWVkX2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiB8fAorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfc2V0X3Jl
cXVlc3RfaGVhZGVyIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJn
ZG9tX3htbF9odHRwX3JlcXVlc3Rfc2VuZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dldF9yZXNwb25zZV9oZWFkZXIiIHx8
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVx
dWVzdF9vdmVycmlkZV9taW1lX3R5cGUiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9kaXNwYXRjaF9ldmVudCIgfHwKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1
dGUiKSB7CisgICAgICAgICAgICAgICAgICAgICRpc19jdXN0b21fZm4gPSAwOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIyRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1s
X2h0dHBfcmVxdWVzdF9hZGRfZXZlbnRfbGlzdGVuZXIiIHx8CisgICAgICAgICAgICAgICAgICAg
ICMkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfcmVtb3ZlX2V2ZW50X2xp
c3RlbmVyIiB8fAorICAgICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmIAorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3JfbmV4dF9u
b2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2Rl
X2FwcGVuZF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUg
Imdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiICYmCisgICAgICAg
ICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcGFyZW50X25v
ZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVf
d2Fsa2VyX2ZpcnN0X2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9sYXN0X2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19zaWJsaW5nIiAm
JiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtl
cl9uZXh0X3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5l
ICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX25vZGUiICYmIAorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfbm9kZSIgJiYgCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9wcmV2
aW91c19ub2RlIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhY
IFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9u
ICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09Q
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFt
IChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBh
cmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jQm9k
eSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlE
TFR5cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBh
cmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVs
aXplKCRwYXJhbS0+bmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49
ICIsICRwYXJhbVR5cGUkcGFyYW1OYW1lIjsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFy
YW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAg
ICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkcGFyYW1JRExUeXBlIG5lICJET01PYmplY3QiICYmCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJHBhcmFtSURMVHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUludEdkb20ke3BhcmFt
SURMVHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJQcml2YXRlR2RvbSR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOyAjIHRo
aXMgaXNuJ3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGJ1dCBvbmUgb2YgdGhlIGF1dG8tZ2VuZXJhdGVk
IGZpbGVzIG5lZWRlZCBpdCBzby4uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190
eXBlIHx8ICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgJHBhcmFtTmFtZSA9ICJfZ18iIC4gJHBhcmFtTmFtZTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJGNhbGxfaW1wbF9wYXJhbXMpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICRjYWxsX2ltcGxfcGFyYW1zIC49ICIsICRwYXJhbU5hbWUi
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgPSAiJHBhcmFtTmFtZSI7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBhZGRJbmNIZHIoJGZuX3NpZ190eXBlKTsKKyAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19j
bHNfdHlwZSkgeworICAgICAgICAgICAgICAgICMgICAgJGltcGxUeXBlZGVmc3siR2RvbSR7Zm5f
c2lnX3R5cGV9In0gPSAxOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlm
ICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJHJl
dF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlw
ZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYID8/
Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0g
PSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUludEdkb20ke2Zu
X3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJQcml2YXRlR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Ikdkb20ke2ZuX3NpZ190eXBlfS5o
In0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBjdXN0b20gZnVuY3Rpb25zIGZvciBu
b3cKKyAgICAgICAgICAgICAgICAjIGJ1dCBza2lwIGZyb20gaGVyZSB0byBhbGxvdyBzb21lIGhl
YWRlcnMgdG8gYmUgY3JlYXRlZAorICAgICAgICAgICAgICAgICMgZm9yIGEgc3VjY2Vzc2Z1bCBj
b21waWxlLgorICAgICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaW5zZXJ0X2Jl
Zm9yZSIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2Rl
X3JlcGxhY2VfY2hpbGQiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUg
Imdkb21fbm9kZV9hcHBlbmRfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhC
b2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xu
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBj
dXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAg
ICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkg
JF9yZXR1cm5UeXBlID0gJHJldHVyblR5cGU7CisgICAgICAgICAgICAgICAgbXkgJGRvbW9ialR5
cGUgPSAiR0RPTSIuJGZuX3NpZ190eXBlOworICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5
cGUgZXEgJ0RPTU9iamVjdCcgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBl
cSAnZ2RvbV9odG1sX2NhbnZhc19lbGVtZW50X2dldF9jb250ZXh0JykgeworICAgICAgICAgICAg
ICAgICAgICAjIFhYWCBIQUNLIQorICAgICAgICAgICAgICAgICAgICAkX3JldHVyblR5cGUgPSAn
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21v
YmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0JzsKKyAgICAgICAgICAgICAgICAg
ICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250ZXh0JzsKKyAg
ICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93
LiAgc2tpcCBpdC4KKyAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01P
YmplY3QgKFRPRE86IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAgICAgICAgICAg
ICAgICAgICAgIyBiZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQn
KSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAg
ICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIConOworICAgICAg
ICAgICAgICAgICAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
JzsKKyAgICAgICAgICAgICAgICAgICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3Jl
bmRlcmluZ19jb250ZXh0MmQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhY
IC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAj
IG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmlu
ZCBvdXQgaG93KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRv
IGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAKKworICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiV0VCS0lUX0FQSSAkX3Jl
dHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5j
dGlvblNpZylcbntcbiIpOworCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2
b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRl
ZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAwKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwg
KHRoaXopO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGl0ZW0gPSAoJHtsY2FzZV9p
ZmFjZW5hbWV9X2dldF9wcml2YXRlKHRoaXopKTtcbiIpOworICAgICAgICAgICAgICAgIGlmICgk
cmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggVE9ETzog
cmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoaXRlbSwgMCk7XG4iKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBn
X3JldHVybl9pZl9mYWlsIChpdGVtKTtcbiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAg
ICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUp
OworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwor
ICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlSXNQcmltaXRpdmUgPSAkY29kZUdlbmVy
YXRvci0+SXNQcmltaXRpdmVUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7
CisgICAgICAgICAgICAgICAgICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAg
ICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke3BhcmFtSURMVHlwZX0ifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCEkcGFyYW1UeXBlSXNQcmlt
aXRpdmUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9p
ZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJv
cGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKCRwYXJhbU5hbWUsIDApO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKCRwYXJhbU5hbWUpO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIiI7CisgICAg
ICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkg
eworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwor
ICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURMVHlw
ZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJh
bS0+bmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0g
SXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICAjIEhB
Q0shCisgICAgICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9o
dHRwX3JlcXVlc3Rfb3BlbiIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW0tPm5h
bWUgZXEgInVybCIpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgIyRpbXBsSW5jbHVkZXN7
IktVUkwuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IFdlYkNvcmU6OktVUkwgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6S1VSTCgkcGFyYW1OYW1l
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2lm
ICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2Vi
Q29yZTo6U3RyaW5nKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFy
YW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNwdXNoKEBjQm9keSwgIiAgICBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9PiAqIF9nXyR7cGFyYW1OYW1l
fSA9IFdURjo6UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSk+
O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZl
bnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
UHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBfZ18k
e3BhcmFtTmFtZX0gPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUqPihnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBfZ18ke3BhcmFtTmFt
ZX0gPSAoJHtwYXJhbV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0
dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBU
T0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKF9nXyR7cGFyYW1O
YW1lfSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAo
X2dfJHtwYXJhbU5hbWV9KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJHJldHVyblBhcmFtTmFtZSA9
ICJfZ18iLiRwYXJhbU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJu
In07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbiA9ICIi
OworICAgICAgICAgICAgICAgIG15ICRhc3NpZ25fcHJlID0gIiI7CisgICAgICAgICAgICAgICAg
bXkgJGFzc2lnbl9wb3N0ID0gIiI7CisgICAgICAgICAgICAgICAgJGdfcmVzID0gMDsKKyAgICAg
ICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7
CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICRhc3NpZ24gPSAiUGFzc1JlZlB0cjxXZWJDb3JlOjoke2ZuX3NpZ190
eXBlfT4gZ19yZXMgPSAiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wcmUgPSAi
V1RGOjpnZXRQdHIoIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcG9zdCA9ICIp
IjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICRhc3NpZ24gPSAiJHtfcmV0dXJuVHlwZX0gcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBteSAkZXhjZXB0aW9ucyA9ICIi
OworICAgICAgICAgICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR7Y2FsbF9pbXBsX3Bh
cmFtc30gbmUgIiIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRleGNlcHRpb25zID0gIiwg
ZWMiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAg
ICAgJGV4Y2VwdGlvbnMgPSAiZWMiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBuZWVkIHRoaXMgZm9yIGluY2x1ZGluZyAuLi4g
X3NvbWV0aGluZ18gLSBmb3IgdGhlIGNsYXNzIGFyZ3MKKyAgICAgICAgICAgICAgICAjaWYgKCRy
ZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7Imdk
b20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICN9CisgICAgICAgICAg
ICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiIHx8Cisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9pbnNlcnRfYmVm
b3JlIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVf
cmVwbGFjZV9jaGlsZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGN1c3Rv
bV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0t
PiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KTsKKyAgICBp
ZiAob2spCisgICAgeworICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwk
e19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKCRyZXR1cm5QYXJhbU5hbWUpKTsgCisgICAg
ICAgIHJldHVybiByZXM7CisgICAgfQorICAgIHJldHVybiBOVUxMOworRU9GCisgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOwor
ICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IiAmJgor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICdnZG9tX2RvY3VtZW50X2dldF9j
c3NfY2FudmFzX2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIC8qIFhYWCBUT0RPIC0gZ2V0IGNhbnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9
KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01T
dHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdu
fV9HX0dFVF9VVEY4KGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4
Y2VwdGlvbnN9KSk7XG4iICk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRnX3JlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGdfcmVzID0g
IiR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9w
YXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KSIgOworICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHth
c3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFt
c30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0pO1xuIiApOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBu
ZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAo
JGZuX3NpZ190eXBlIG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5
cGV9PihXZWJDb3JlOjp0b0dET00oZ19yZXMuZ2V0KCkpKTsgXG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBp
ZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBjYW52
YXMgb2JqZWN0ICovXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIlxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7
CisgICAgICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxu
Iik7CisgICAgcHVzaChAY0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisK
KyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgIiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9cbiIpOworCisgICAgcHVz
aChAaEJvZHksICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAv
KiAkZ3VhcmQgKi9cbiIpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19FTkRfREVDTFNcblxu
Iik7CisgICAgcHVzaChAaEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3VhcmR9X1BST1BfKi9cbiIp
OworfQorCisjIEludGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2Jq
ZWN0LCAkbmFtZSkgPSBAXzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBt
eSAkaGRyRk5hbWVJbnRlcm5hbCA9ICIkb3V0cHV0RGlyL1ByaXZhdGVJbnQiIC4gJG5hbWUgLiAi
LmgiOworICAgIG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFsIikgb3IgZGllICJD
b3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAgcHJpbnQgSU5USEVB
REVSIEBoUHJlZml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAgIHByaW50IElOVEhF
QURFUiBAaEJvZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOworCisgICAgIyBXcml0
ZSBQcml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1dERpci9Qcml2
YXRlIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJp
diIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworCisgICAgcHJp
bnQgUFJJVkhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7CisgICAg
cHJpbnQgUFJJVkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisg
ICAgIyBXcml0ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgbXkgJGltcGxGaWxlTmFtZVBy
aXYgPSAiJG91dHB1dERpci9Qcml2YXRlIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oUFJJ
VklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
aW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICBw
cmludCBQUklWSU1QTCAiXG4iOworICAgIHByaW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAg
ICBjbG9zZShQUklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9p
ZHMgcmVjdXJzaXZlIG5pZ2h0bWFyZSkKKyAgICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXRE
aXIvIiAuICRuYW1lIC4gInByb3BzLmgiOworICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJv
cEZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAg
ICAkaGRyUHJvcEluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJP
UEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5j
bHVkZXMgLyBkZWZpbmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRp
ZXMuXG5wZXJoYXBzIC0gYmV0dGVyIC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUg
aW4gaGVyZSEqL1xuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAg
cHJpbnQgUFJPUEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOwor
ICAgIHByaW50IFBST1BIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5
cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cygl
aGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQg
UFJPUEhFQURFUiBAaEJvZHlQcm9wOworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3Jp
dGUgcHVibGljIGhlYWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5h
bWUgLiAiLmgiOworICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRu
J3Qgb3BlbiBmaWxlICRoZHJGTmFtZSI7CisKKyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0
LmgifSA9IDE7CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVS
IEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSA8d2Via2l0L3dlYmtp
dGRlZmluZXMuaD5cbiI7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJc
biIgfSBzb3J0IGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBr
ZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiI7CisgICAgcHJpbnQgSEVB
REVSIEBoQm9keVByZTsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgInR5cGVkZWYgc3RydWN0IF8k
XyAkXztcbiIgfSBzb3J0IGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSICJc
biIgaWYga2V5cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5OworCisg
ICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgdGhlIGltcGxlbWVudGF0aW9uIHNvdXJj
ZXMKKyAgICBteSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAi
OworICAgIG9wZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVu
IGZpbGUgJGltcGxGaWxlTmFtZSI7CisKKyAgICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHBy
aW50IElNUEwgIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4iOworICAgIHByaW50IElNUEwgIiNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiQ1N0
cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJQbGF0Zm9ybVN0cmluZy5o
XCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJBdG9taWNTdHJpbmcuaFwiXG4iOwor
ICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwidXN0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1Q
TCAiI2luY2x1ZGUgXCJLVVJMLmhcIlxuIjsKKyAgICBwcmludCBJTVBMIG1hcCB7ICIjaW5jbHVk
ZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCAi
XG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAg
ICBjbG9zZShJTVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAgICAlaW1wbFR5cGVk
ZWZzID0gKCk7CisgICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAg
ICBAaEJvZHkgPSAoKTsKKyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAgQGhCb2R5SW50ZXJuYWwg
PSAoKTsKKyAgICBAaEJvZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJvcFByZSA9ICgpOworCisg
ICAgQGNQcmVmaXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7
Cit9CisKKzE7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDM2
MTI5KQorKysgV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNyArMjcsNyBAQAogICAgIF0gSFRNTE9wdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVu
dCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9y
bTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkZWZh
dWx0U2VsZWN0ZWQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nICAgICAgICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAko
cmV2aXNpb24gMzYxMjkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgc2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHRleHQ7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAg
IFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTEFwcGxldEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNjEyOSkKKysrIFdlYkNvcmUvaHRtbC9I
VE1MQXBwbGV0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE0ICszNSwxNCBAQAog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgY29kZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIGNvZGVCYXNlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0OwotI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8
IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhzcGFjZTsKICNlbHNlCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaHNwYWNlOwogI2Vu
ZGlmCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb2JqZWN0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIHZzcGFjZTsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgdnNwYWNlOwpJbmRleDogV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmlkbAkocmV2aXNpb24gMzYxMjkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVt
YmVkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAg
SW1wbGVtZW50YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZmMC05NzhkLWY3NzNmMmRlZTZhMwog
ICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwotI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKICNlbHNl
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaGVp
Z2h0OwpAQCAtMzgsNyArMzgsNyBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNyYzsKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5
cGU7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgd2lkdGg7
CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBs
b25nIHdpZHRoOwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMzYxMjkpCisrKyBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQAogCiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyB0aXRsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWZlcnJlcjsK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRvbWFpbjsK
ICNlbHNlCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOwpAQCAt
MTgyLDcgKzE4Miw3IEBACiAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4g
RE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24g
bG9jYXRpb247CiAjZW5kaWYKIApAQCAtMTk1LDcgKzE5NSw3IEBACiAgICAgICAgIEVsZW1lbnQg
ICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKIAogICAg
ICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFH
RV9HT0JKRUNUKSkKICAgICAgICAgRE9NU2VsZWN0aW9uICAgICAgIGdldFNlbGVjdGlvbigpOwog
I2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1O
dWxsXSBET01TdHJpbmcgY2hhcmFjdGVyU2V0OwpAQCAtMjM2LDcgKzIzNiw3IEBACiAgICAgICAg
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gRE9NU3RyaW5nIHRhZ25hbWUpOwog
CiAgICAgICAgIC8vIE5vZGVTZWxlY3RvciAtIFNlbGVjdG9yIEFQSQotI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICBbQ3VzdG9tXSBFbGVtZW50IHF1ZXJ5
U2VsZWN0b3IoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgW0N1c3RvbV0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFs
bChpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVj
dG9ycywgaW4gTlNSZXNvbHZlciByZXNvbHZlcikKSW5kZXg6IFdlYkNvcmUvZG9tL1JhbmdlRXhj
ZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJ
KHJldmlzaW9uIDM2MTI5KQorKysgV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpF
Q1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJ
bmRleDogV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzYxMjkpCisrKyBXZWJDb3JlL2Rv
bS9FdmVudEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
IHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBN
b3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRv
U3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiAzNjEy
OSkKKysrIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01
OSw3ICs1OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBh
bHRHcmFwaEtleSk7CiAKICAgICAgICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKLSNpZiAhZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmICgoIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkpICYmICghZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkpCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUv
ZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RPTUNv
cmVFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNjEyOSkKKysrIFdlYkNvcmUvZG9tL0RPTUNvcmVF
eGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZp
bmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBj
b21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygp
OwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0NoYW5nZUxvZwkocmV2aXNpb24gMzYzNDkpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzOCBAQAorMjAwOC0wOS0xMiAgbGtjbCAgPGxrY2xAbGtjbC5u
ZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FS
TklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisgICAgICAgIChsa2NsOiBpJ2xs
IGJlIGFic29sdXRlbHkgaG9uZXN0IHdpdGggcGVvcGxlLCBoZXJlOgorICAgICAgICAgaSdtIG5v
dCBnb2luZyB0byBhZGQgb3IgY2hhbmdlIGFueSwgZWl0aGVyLCB1bmxlc3MKKyAgICAgICAgIHRo
ZXJlIGlzIGZ1bmRpbmcgbWFkZSBhdmFpbGFibGUgdG8gZG8gaXQsIG9yIGkgZmluZCBhCisgICAg
ICAgICBnb29kIHJlYXNvbiB0byBwYXkgZm9yIHRoZSB0aW1lIGF0IG15IG93biBleHBlbnNlLgor
ICAgICAgICAgc28gZmFyLCBweXdlYmtpdGd0ayBpdHNlbGYgaGFzIGJlZW4gYSAiZ29vZCBlbm91
Z2ggdGVzdCIKKyAgICAgICAgIGZvciBteSBwdXJwb3Nlcywgd2hpY2ggbWFzaGVzIHRoZSBlbnRp
cmUgcmFuZ2Ugb2YKKyAgICAgICAgIGZ1bmN0aW9uYWxpdHkgYW5kIHByb3ZpZGVzIGdvb2QgZW1w
aXJpY2FsIHRlc3RpbmcpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IGFkZGVkIExBTkdV
QUdFX0dPQkpFQ1QsIGdsaWIgRE9NIGJpbmRpbmdzIGZpbGVzLCBpbmNsdWRpbmcgbWFya2luZyBT
VkcgYXMgIlRPRE8iCisgICAgICAgICogYmluZGluZ3MvZ2RvbTogQWRkZWQuCisgICAgICAgICog
YmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
YWRkV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OnJlbW92ZVdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJTZXQp
OgorICAgICAgICAoV2ViQ29yZTo6R0RPTU9iamVjdDo6fkdET01PYmplY3QpOgorICAgICAgICAo
V2ViQ29yZTo6d3JhcHBlckNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OmRvbU9iamVjdHMpOgor
ICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlX2dkb21fb2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9k
ZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6
Zm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6dXBkYXRlRE9NTm9kZURvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvR0RPTSk6CisgICAgICAgIChXZWJDb3JlOjp0b0dET01OZXdseUNyZWF0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGlu
Z3MvZ2RvbS9HRE9NQmluZGluZy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlRE9N
T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlU1ZHRE9NT2JqZWN0KToKKyAgICAgICAg
KiBiaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogQWRkZWQu
ICBDb3BpZWQgZnJvbSB0aGUgYXV0by1nZW5lcmF0ZWQgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmNwcCAKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFuY2hvcldyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQXBwbGV0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVBcmVhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCYXNlV3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVCYXNlRm9udFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQmxvY2txdW90ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQm9k
eVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQlJXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUJ1dHRvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
Q2FudmFzV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZUNhcHRpb25XcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxlQ29sV3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVNb2RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURp
cmVjdG9yeVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRGl2V3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVETGlzdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlRW1iZWRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZpZWxkU2V0V3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb250V3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGb3JtV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcmFt
ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhbWVTZXRXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhlYWRpbmdXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUhlYWRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhSV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVIdG1sV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVJRnJhbWVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUltYWdlV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJbnB1dFdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlSXNJbmRleFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
TGFiZWxXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxlZ2VuZFdyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTElXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUxpbmtXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1hcFdyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFycXVlZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlTWVudVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWV0YVdyYXBw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT2JqZWN0V3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVPTGlzdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3B0
R3JvdXBXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9wdGlvbldyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFyYWdyYXBoV3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVQYXJhbVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUHJlV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVRdW90ZVdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlU2NyaXB0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVT
ZWxlY3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN0eWxlV3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJs
ZUNlbGxXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRleHRBcmVhV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUaXRsZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlVGFibGVSb3dXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVVMaXN0
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHRE9NSFRNTFdyYXBwZXIpOgorICAg
ICAgICAqIGJpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaDogIEFk
ZGVkLiAgQ29waWVkIGZyb20gdGhlIGF1dG8tZ2VuZXJhdGVkIEpTSFRNTEVsZW1lbnRXcmFwcGVy
RmFjdG9yeS5oCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0Lmg6IEFkZGVkLgor
ICAgICAgICAoR0RPTU9iamVjdDo6fkdET01PYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL2dk
b20vR2RvbURPTU9iamVjdC5jcHA6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR2Rv
bURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21FdmVudFRh
cmdldE5vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEdTdHJpbmdDb252ZXJ0OjpHU3RyaW5nQ29u
dmVydCk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X3Nl
dF9wcml2YXRlKToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2Jq
ZWN0X2dldF9wcml2YXRlKToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9k
b21fb2JqZWN0X2ZpbmFsaXplKToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2Rv
bV9kb21fb2JqZWN0X2NsYXNzX2luaXQpOgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2YXRl
OjpnZG9tX2RvbV9vYmplY3RfaW5pdCk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRl
R2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVH
ZG9tRXZlbnRUYXJnZXROb2RlLmNwcDogQWRkZWQuCisgICAgICAgIChnZG9tX2V2ZW50X3Rhcmdl
dF9ub2RlX2dldF9wcml2YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9t
RXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0
ZUludEdkb21ET01PYmplY3QuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2
YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oOiBBZGRlZC4KKyAgICAgICAgKEdET01FdmVudFRh
cmdldE5vZGU6OkdET01FdmVudFRhcmdldE5vZGUpOgorICAgICAgICAoR0RPTUV2ZW50VGFyZ2V0
Tm9kZTo6Z2V0X2dvYmpfdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbTogQWRkZWQgZ29iamVjdCBiaW5kaW5ncyBhdXRvLWdlbmVyYXRvci4K
KyAgICAgICAgKiBkb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpF
Q1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDogYWRkZWQgTEFOR1VB
R0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vRXZlbnRFeGNlcHRpb24uaWRs
OiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGRvbS9LZXli
b2FyZEV2ZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAg
ICAgKiBkb20vUmFuZ2VFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNp
ZmljIElETAorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsOiBhZGRlZCBMQU5H
VUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1l
bnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGh0
bWwvSFRNTEVtYmVkRWxlbWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMg
SURMCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGw6IGFkZGVkIExBTkdVQUdF
X0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogcGFnZS9ET01TZWxlY3Rpb24uaWRsOiBh
ZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiB4
bWwvWE1MSHR0cFJlcXVlc3QuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElE
TAorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdV
QUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMIAorICAgICAgICAqIHhtbC9YUGF0aEV4Y2VwdGlvbi5p
ZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisKIDIwMDgtMDktMTEgIFRp
bW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHJlbmRl
cmVkSW1hZ2UgbWV0aG9kIHRvIERPTU5vZGUgdG8gZ2V0IGFuIGltYWdlCkluZGV4OiBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaWRsCShyZXZpc2lvbiAzNjEyOSkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNjIsOSArNjIsMTMgQEAKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIHZvaWQgc2VuZCgpOwotICAgICAgICAv
LyB2b2lkIHNlbmQoaW4gRE9NU3RyaW5nIGRhdGEpOworI2lmIGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkKKyAgICAgICAgdm9pZCBzZW5kKGluIERPTVN0cmluZyBkYXRhKQorICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZWxzZQogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNlbmQo
aW4gRG9jdW1lbnQgZGF0YSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworI2Vu
ZGlmCiAKICAgICAgICAgdm9pZCBhYm9ydCgpOwogCkluZGV4OiBXZWJDb3JlL3htbC9YUGF0aEV4
Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRs
CShyZXZpc2lvbiAzNjEyOSkKKysrIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQor
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JK
RUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQK
ICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDog
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzYxMjkpCisr
KyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAg
bWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAg
ICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtE
b250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
CShyZXZpc2lvbiAzNjEyOSkKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTUsNyArMTU1LDcgQEAKICAgICAgICAgW0RvTm90Q2hlY2tEb21haW5TZWN1
cml0eSwgQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGluIERPTVN0cmluZyBtZXNzYWdlLCBpbiBE
T01TdHJpbmcgdGFyZ2V0T3JpZ2luKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIEds
b2JhbCBjb25zdHJ1Y3RvcnMKICAgICAgICAgYXR0cmlidXRlIFN0eWxlU2hlZXRDb25zdHJ1Y3Rv
ciBTdHlsZVNoZWV0OwogICAgICAgICBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldENvbnN0cnVjdG9y
IENTU1N0eWxlU2hlZXQ7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAkocmV2aXNpb24gMzYxMjkp
CisrKyBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNjIs
NyArNjIsNyBAQAogICAgICAgICB2b2lkIHJlbW92ZUFsbFJhbmdlcygpOwogICAgICAgICB2b2lk
IGFkZFJhbmdlKGluIFJhbmdlIHJhbmdlKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VB
R0VfR09CSkVDVCkKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNl
bmRpZgogICAgIH07CkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShy
ZXZpc2lvbiAzNjM0OSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGQgR2Rv
bSouaCBnbGliIERPTSBiaW5kaW5ncyBoZWFkZXIgZmlsZXMsCisgICAgICAgIAorICAgICAgICBB
bHNvIGFkZGVkIGdkb21lbnVtdHlwZXMuY3BwLGggd2hpY2ggcHJlc2VudGx5IGRvIG5vdAorICAg
ICAgICBhY3R1YWxseSBjb250YWluIGFueXRoaW5nLCBiZWNhdXNlIHRoZXJlIGFyZSBubyBlbnVt
cworICAgICAgICBpbiB0aGUgZ2xpYiBiaW5kaW5ncyAtIHlldC4KKwogMjAwOC0wOS0wNCAgTWFy
Y28gQmFyaXNpb25lICA8bWFyY28uYmFyaXNpb25lQGNvbGxhYm9yYS5jby51az4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYktpdFRvb2xzL0dOVW1ha2VmaWxl
LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAz
NjEyOSkKKysrIFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC02
LDYgKzYsOCBAQAogUHJvZ3JhbXNfR3RrTGF1bmNoZXJfQ1BQRkxBR1MgPSBcCiAJLUkkKHNyY2Rp
cikvV2ViS2l0L2d0ayBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNy
Y2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsv
d2Via2l0IFwKIAkkKGdsb2JhbF9jcHBmbGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxh
Z3MpCiAKQEAgLTI4LDYgKzMwLDggQEAKIAktSSQoc3JjZGlyKS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJCh0b3BfYnVpbGRk
aXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKKwktSSQo
dG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwK
IAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQogCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNjM0OSkK
KysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGRlZCAtSSBp
bmNsdWRlcyB0byBndGsgd2Via2l0IHN1YmRpcmVjdG9yaWVzCisKKyAgICAgICAgR2RvbSBnbGli
IERPTSBiaW5kaW5ncyBoYXZlIHRoZWlyIGhlYWRlciBmaWxlcyBjb250YWluaW5nCisgICAgICAg
ICNpbmNsdWRlICJnZG9tKiIgd2hlcmUgI2luY2x1ZGUgPHdlYmtpdC9nZG9tKj4gaXMgbm90Cisg
ICAgICAgIHBvc3NpYmxlLCBhcyB0aGUgZ2RvbSogc291cmNlIGFuZCBoZWFkZXIgZmlsZXMgYXJl
IGF1dG8tZ2VuZXJhdGVkCisgICAgICAgIGludG8gRGVyaXZlZFNvdXJjZXMvIG5vdCBEZXJpdmVk
U291cmNlcy93ZWJraXQsIGZvbGxvd2luZyB0aGUKKyAgICAgICAgZXhhbXBsZSBvZiB0aGUgSlMg
RGVyaXZlZCBTb3VyY2VzLgorCiAyMDA4LTA5LTA4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23367</attachid>
            <date>2008-09-12 07:28:53 -0700</date>
            <delta_ts>2008-09-14 04:57:49 -0700</delta_ts>
            <desc>lkcl-review, coding standards</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>283783</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNjEyOSkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDkgQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRT
b3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20KIAogIyBU
aGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1ZGVkIGJlbG93IHNvIG5vIG5lZWQg
dG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5b3UgcmVhbGx5IGhhdmUgdG8KQEAg
LTIyMCw2ICsyMjIsNyBAQAogCiAjIFdlYktpdAogd2Via2l0Z3RrX2hfYXBpIDo9CitnZG9tZ3Rr
X2hfYXBpIDo9CiB3ZWJraXRndGtfc291cmNlcyA6PQogd2Via2l0Z3RrX2NwcGZsYWdzIDo9CiB3
ZWJraXRndGtfYnVpbHRfc291cmNlcyA6PQpAQCAtMjMyLDggKzIzNSwxMyBAQAogbGlid2Via2l0
XzFfMF9sYWRpciA9ICQocHJlZml4KS9pbmNsdWRlL3dlYmtpdC0xLjAvd2Via2l0CiBsaWJ3ZWJr
aXRfMV8wX2xhX0hFQURFUlMgPSBcCiAJJCh3ZWJraXRndGtfaF9hcGkpIFwKLQlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRlbnVtdHlwZXMuaAorCSQoZ2RvbWd0a19oX2FwaSkgXAorCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tLmgg
CiAKKyNXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgKKyNXZWJLaXQvZ3RrL3dlYmtp
dC9nZG9tZGVmaW5lcy5oCisKIGxpYndlYmtpdF8xXzBfbGFfU09VUkNFUyA9IFwKIAkkKHdlYmtp
dGd0a19zb3VyY2VzKQogCkBAIC0zMDUsNiArMzEzLDM1NCBAQAogd2ViY29yZV9saWJhZGQgKz0g
LWxnc3RpbnRlcmZhY2VzLTAuMTAgLWxnc3R2aWRlby0wLjEwCiBlbmRpZgogCitXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOiAkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJr
aXQvR2RvbURvY3VtZW50LmggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaCBcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0
ay93ZWJraXQvR2RvbURPTU9iamVjdC5oIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRXZlbnRUYXJnZXRO
b2RlLmggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0b3BfYnVpbGRk
aXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdC5oCisKKyQodG9wX2J1aWxk
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaDogRGVyaXZlZFNvdXJj
ZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmgKKwljcCBEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJl
cXVlc3QuaCAkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbVhNTEh0dHBSZXF1
ZXN0LmgKKwljcCBEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3QuaCAkKHNyY2Rpcikv
V2ViS2l0L2d0ay93ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0LmgKKworJCh0b3BfYnVpbGRkaXIp
L1dlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaDogRGVyaXZlZFNvdXJjZXMvR2RvbURP
TVdpbmRvdy5oCisJY3AgRGVyaXZlZFNvdXJjZXMvR2RvbURPTVdpbmRvdy5oICQodG9wX2J1aWxk
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRE9NV2luZG93LmgKKwljcCBEZXJpdmVkU291cmNl
cy9HZG9tRE9NV2luZG93LmggJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5k
b3cuaAorCiskKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50Lmg6
ICQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnQuaAorCWNwIERlcml2
ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtp
dC9HZG9tRG9jdW1lbnQuaAorCWNwIERlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oICQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRG9jdW1lbnQuaAorCiskKHRvcF9idWlsZGRpcikv
V2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTU9iamVjdC5oOiAkKHRvcF9idWlsZGRpcikvV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaAorCWNwICQoc3JjZGlyKS9XZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dl
YmtpdC9HZG9tRE9NT2JqZWN0LmgKKwljcCAkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dkb21ET01PYmplY3QuaCAkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTU9iamVj
dC5oCisKK1dlYktpdC9ndGsvd2Via2l0L0dkb21FdmVudFRhcmdldE5vZGUuaDogJCh0b3BfYnVp
bGRkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgKKwljcCAk
KHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCAkKHRv
cF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisJY3Ag
JChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggJChz
cmNkaXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21FdmVudFRhcmdldE5vZGUuaAorCisKK2dkb21n
dGtfaF9hcGkgKz0gXAorCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRG9j
dW1lbnQuaFwKKwkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oXAorCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRE9NT2Jq
ZWN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUF0dHIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
QXR0cnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUJhckluZm8uaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQmFySW5mb3Byb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRp
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRpZW50cHJvcHMuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ2FudmFzUGF0dGVybi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52
YXNQYXR0ZXJucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheS5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQaXhlbEFycmF5cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNEQVRBU2VjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DREFUQVNlY3Rpb25wcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DaGFyYWN0ZXJEYXRhLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNoYXJhY3RlckRhdGFwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJkcHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ29tbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db21tZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ29uc29sZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db25zb2xl
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ291bnRlci5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21Db3VudGVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGVwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NGb250RmFjZVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTRm9u
dEZhY2VSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1wb3J0UnVsZS5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NJbXBvcnRSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTTWVkaWFSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlhUnVsZXBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1BhZ2VSdWxlLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1BhZ2VSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUHJpbWl0
aXZlVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUHJpbWl0aXZlVmFsdWVwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U1J1bGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U1N0eWxlRGVjbGFyYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVEZWNsYXJh
dGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlUnVsZS5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NTdHlsZVNoZWV0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlU2hlZXRwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NWYWx1ZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVMaXN0cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxl
c1J1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzUnVsZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbURhdGFiYXNlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFi
YXNlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRGcmFnbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tRG9jdW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudFR5cGUu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRUeXBlcHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01B
cHBsaWNhdGlvbkNhY2hlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQ29yZUV4Y2Vw
dGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9ucHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tRE9NSW1wbGVtZW50YXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRE9NSW1wbGVtZW50YXRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJz
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NUGFyc2VycHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRE9NU2VsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVNlbGVjdGlv
bnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVdpbmRvdy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21ET01XaW5kb3dwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21FbnRpdHkuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRW50aXR5UmVmZXJlbmNlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0
eVJlZmVyZW5jZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9uLmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21GaWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVMaXN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRmlsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhpc3RvcnkuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSGlzdG9yeXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBbmNo
b3JFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBbmNob3JFbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEFwcGxldEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MQXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFyZWFFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxCYXNlRm9udEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VGb250RWxl
bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQm9keUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEJvZHlFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJSRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEJ1dHRvbkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ2FudmFzRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ2FudmFzRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDb2xsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxDb2xsZWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpcmVjdG9y
eUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGl2RWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MRGl2RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxE
TGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERMaXN0RWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEb2N1bWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRG9jdW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxFbWJlZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVt
YmVkRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNldEVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb250RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MRm9udEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9ybUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1FbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MRnJhbWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1l
U2V0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxIZWFkaW5nRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZGluZ0VsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSFJFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MSHRtbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0bWxFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MSW1hZ2VFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJbWFnZUVsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxJbnB1dEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5k
ZXhFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGFiZWxFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TExlZ2VuZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTGlua0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExp
bmtFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MTWFycXVlZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1h
cnF1ZWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxNZXRhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TWV0YUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxPYmplY3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxP
YmplY3RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9MaXN0RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50cHJvcHMuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MT3B0R3JvdXBFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9w
dGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbkVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFBhcmFncmFwaEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYW1F
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUHJlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MUHJlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTY3JpcHRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxTY3JpcHRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNl
bGVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNlbGVjdEVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU3R5bGVFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVD
YXB0aW9uRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNlbGxF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFRhYmxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVSb3dFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MVGV4dEFyZWFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0QXJlYUVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGl0bGVFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUaXRsZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MVUxpc3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxVTGlz
dEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21JbWFnZURhdGEuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSW1hZ2VEYXRhcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2
YVNjcmlwdENhbGxGcmFtZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0Q2FsbEZy
YW1lcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tS2V5Ym9hcmRFdmVudC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21LZXlib2FyZEV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TG9jYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTG9jYXRpb25wcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFMaXN0
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVzc2FnZUV2ZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU1lc3NhZ2VFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVU
eXBlQXJyYXkuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJheXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVU
eXBlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTW91c2VFdmVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Nb3VzZUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTXV0YXRp
b25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NdXRhdGlvbkV2ZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2RlTWFwLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5h
bWVkTm9kZU1hcHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hdmlnYXRvci5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21OYXZpZ2F0b3Jwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21O
b2RlRmlsdGVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0ZXJwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Ob2RlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRv
ci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0b3Jwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Ob2RlTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlTGlzdHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Ob3RhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob3RhdGlvbnByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbU92ZXJmbG93RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tT3Zl
cmZsb3dFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbkFycmF5LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbkFycmF5cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tUGx1Z2luLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbnByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9n
cmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2dyZXNzRXZlbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZUV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21SYW5nZUV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmVj
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21SZWN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU2NyZWVuLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbnByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNRTEVycm9yLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTEVycm9ycHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0LmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNRTFJlc3VsdFNldHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3Vs
dFNldFJvd0xpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9uLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3Rv
cmFnZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2VFdmVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2UuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFn
ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU3R5bGVTaGVldExpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVl
dExpc3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHRN
ZXRyaWNzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHRFdmVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVRleHQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVRyZWVXYWxrZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVHJl
ZVdhbGtlcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tVUlFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdEFu
aW1hdGlvbkV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
V2hlZWxFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XaGVlbEV2ZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21YTUxIdHRwUmVxdWVzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3Rwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVhNTFNlcmlhbGl6ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MU2VyaWFsaXpl
cnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXZhbHVhdG9yLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVhQYXRoRXZhbHVhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WFBhdGhFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeGNlcHRpb25wcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4cHJlc3Npb24uaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBh
dGhOU1Jlc29sdmVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoTlNSZXNvbHZlcnByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoUmVzdWx0LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhQYXRoUmVzdWx0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nlc3Nv
ci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YU0xUUHJvY2Vzc29ycHJvcHMuaAorCiB3ZWJraXRn
dGtfaF9hcGkgKz0gXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdC5oIFwKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRkZWZpbmVzLmggXApAQCAtMzE0LDE0ICs2NzAsMjAgQEAKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJoaXN0b3J5aXRlbS5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5o
IFwKLQlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKKwlXZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmggXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmggCiAK
KyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtfYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dG1hcnNoYWwuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmgKIAorIwlE
ZXJpdmVkU291cmNlcy9nZG9tZW51bXR5cGVzLmNwcCAKKyMJV2ViS2l0L2d0ay93ZWJraXQvZ2Rv
bWVudW10eXBlcy5oCisKIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmggXApAQCAtMzQ1LDE0ICs3MDcsMTcgQEAKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
Ymhpc3RvcnlpdGVtLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwIFwKLQlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorCVdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVu
dC5jcHAgIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5oIAogCiB3ZWJraXRndGtf
Y3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJTkdfV0VCS0lUIFwKIAktSSQoc3JjZGlyKS9XZWJLaXQv
Z3RrIFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0IFwKIAktSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCi0JLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93
ZWJraXQKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9i
dWlsZGRpcikvV2ViS2l0L2d0awogCiB3ZWJraXRndGtfY2xlYW5maWxlcyArPSBcCiAJJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zL0d0a0xhdW5jaGVyIFwKQEAgLTM2Nyw2ICs3MzIsOSBAQAogCXN0
YW1wLXdlYmtpdGVudW10eXBlcy5jcHAgXAogCXN0YW1wLXdlYmtpdGVudW10eXBlcy5oCiAKKyMJ
c3RhbXAtZ2RvbWVudW10eXBlcy5jcHAgCisjCXN0YW1wLWdkb21lbnVtdHlwZXMuaCAKKwogV0VC
S0lUX01BUlNIQUwgPSAkKEdFTlNPVVJDRVMpL3dlYmtpdG1hcnNoYWwKIFdFQktJVF9NQVJTSEFM
X0xJU1QgPSAkKFdFQktJVF9NQVJTSEFMKS5saXN0CiAKQEAgLTQ0Myw2ICs4MTEsNTQgQEAKIAkm
JiBjcCB4Z2VuLWd0YyAkQCBcCiAJJiYgcm0gLWYgeGdlbi1ndGMKIAorV2ViS2l0L2d0ay93ZWJr
aXQvZ2RvbWVudW10eXBlcy5oOiBzdGFtcC1nZG9tZW51bXR5cGVzLmgKKwlAdHJ1ZQorc3RhbXAt
Z2RvbWVudW10eXBlcy5oOiAkKGdkb21ndGtfaF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3Jj
ZGlyKSBcCisJJiYgZ2xpYi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpZm5kZWYgR0RPTV9FTlVN
X1RZUEVTX0hcbiIgXAorCQkJLS1maGVhZCAiI2RlZmluZSBHRE9NX0VOVU1fVFlQRVNfSFxuXG4i
IFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuXG4iIFwKKwkJCS0tZmhl
YWQgIkdfQkVHSU5fREVDTFNcblxuIiBcCisJCQktLWZ0YWlsICJHX0VORF9ERUNMU1xuXG4iIFwK
KwkJCS0tZnRhaWwgIiNlbmRpZlxuIiBcCisJCQktLWZwcm9kICIjaW5jbHVkZSA8QGZpbGVuYW1l
QD5cblxuIiBcCisJCQktLWVwcm9kICIjZGVmaW5lIEdET01fVFlQRV9ARU5VTVNIT1JUQCBAZW51
bV9uYW1lQF9nZXRfdHlwZSgpXG5cbiIgXAorCQkJLS1lcHJvZCAiV0VCS0lUX0FQSSBHVHlwZVxu
QGVudW1fbmFtZUBfZ2V0X3R5cGUodm9pZCk7XG5cbiIgXAorCQkJJChnZG9tZ3RrX2hfYXBpKSB8
IFwKKwkJCXNlZCAncyxXZWJLaXQvZ3RrLywsJyB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwn
IHwgXAorCQlzZWQgJ3MsR0RPTV9UWVBFX0tJVCxHRE9NX1RZUEUsJyBcCisJCSkgPiB4Z2VuLWNn
dGggXAorCSYmIChjbXAgLXMgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlw
ZXMuaCB8fCBjcCB4Z2VuLWNndGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oKSBc
CisJJiYgcm0gLWYgeGdlbi1jZ3RoIFwKKwkmJiBlY2hvIHRpbWVzdGFtcCA+ICQoQEYpCisKKyMg
ICAgICAgICAgICAgIC0tZmhlYWQgIiNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD5cblxu
IiAKKworRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5jcHA6ICQoZ2RvbWd0a19oX2FwaSkg
R05VbWFrZWZpbGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1m
aGVhZCAiI2luY2x1ZGUgPGNvbmZpZy5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xp
Yi1vYmplY3QuaD5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgXCIkKHRvcF9idWlsZGRpcikv
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oXCJcblxuIiBcCisJCQktLWZoZWFkICJl
eHRlcm4gXCJDXCIge1xuXG4iIFwKKwkJCS0tZnByb2QgIlxuLyogZW51bWVyYXRpb25zIGZyb20g
XCJAZmlsZW5hbWVAXCIgKi8iIFwKKwkJCS0tdmhlYWQgInN0YXRpYyBjb25zdCBHQFR5cGVAVmFs
dWUgX0BlbnVtX25hbWVAX3ZhbHVlc1tdID0geyIgXAorCQkJLS12cHJvZCAiICAgIHsgQFZBTFVF
TkFNRUAsIFwiQFZBTFVFTkFNRUBcIiwgXCJAdmFsdWVuaWNrQFwiIH0sIiBcCisJCQktLXZ0YWls
ICIgICAgeyAwLCBOVUxMLCBOVUxMIH1cbn07XG5cbiIgXAorCQkJLS12dGFpbCAiR1R5cGUgQGVu
dW1fbmFtZUBfZ2V0X3R5cGUodm9pZClcbntcbiIgXAorCQkJLS12dGFpbCAiICAgIHN0YXRpYyBH
VHlwZSB0eXBlID0gMDtcblxuIiBcCisJCQktLXZ0YWlsICIgICAgaWYgKCF0eXBlKVxuIiBcCisJ
CQktLXZ0YWlsICIgICAgICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMoXCJARW51
bU5hbWVAXCIsIF9AZW51bV9uYW1lQF92YWx1ZXMpO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAgICBy
ZXR1cm4gdHlwZTtcbn1cblxuIiBcCisJCQktLWZ0YWlsICJ9XG4iIFwKKwkJJChnZG9tZ3RrX2hf
YXBpKSB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIFwKKwkJKSA+IHhnZW4tY2d0YyBcCisJ
JiYgY3AgeGdlbi1jZ3RjICRAIFwKKwkmJiBybSAtZiB4Z2VuLWNndGMKKwogIyBFTkQgV0VCS0lU
IEdUSysKICMKICMgRmlsZXMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkCkluZGV4OiBXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkocmV2
aXNpb24gMzYxMjkpCisrKyBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE2LDYgKzIxNiw4IEBACiAKIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbigp
CiB7CisgICAgaWYgKCFtX2ZyYW1lKSAvKiBidWcjMjA0MDMgLSBoYWNrISBzaG91bGRuJ3QgYmUg
aGVyZSEgIHdlJ3ZlIGJlZW4gZGVsZXRlZCEgKi8KKyAgICAgICAgcmV0dXJuOwogICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwogICAgIFBhZ2Uq
IGNvcmVQYWdlID0gY29yZSh3ZWJWaWV3KTsKIApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcAkocmV2aXNpb24gMzYxMjkpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEgKzEsMTMgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlz
dGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4
IENvbGxhYm9yYSBMdGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KICAqCisg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKICAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNDIsNiArNDQsMjAgQEAKICNpbmNsdWRlICJS
ZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUg
Ikdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21Y
TUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisj
aW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5o
IgorI2luY2x1ZGUgIlRleHREb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21ET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tRE9NV2luZG93LmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAK
QEAgLTQ5LDYgKzY1LDEyIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwlncG9pbnRlciB0b0dET00oRE9NV2lu
ZG93KiBkb2MpOworCWdwb2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKTsKKwlncG9pbnRlciB0
b0dET00oWE1MSHR0cFJlcXVlc3QqIG9iaik7Cit9CisKIGV4dGVybiAiQyIgewogCiBlbnVtIHsK
QEAgLTU3LDYgKzc5LDcgQEAKICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAg
ICBIT1ZFUklOR19PVkVSX0xJTkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05B
TAogfTsKIApAQCAtMTYyLDYgKzE4NSwxNyBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIs
CiAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtp
dF93ZWJfZnJhbWVfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nl
ci1ldmVudCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAg
ICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNU
SU9OIHwKKwkJCSAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVECSksCisgICAgICAgICAg
ICAwLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3
ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9O
T05FLCAyLAorICAgICAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisK
ICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAg
Ki8KQEAgLTI5NCw2ICszMjgsOTIgQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF94bWxfaHR0cF9yZXF1ZXN0OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAq
IHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGFuIFhNTEh0dHBSZXF1ZXN0CisgKgorICog
UmV0dXJuIHZhbHVlOiBhIEdkb21YTUxIdHRwUmVxdWVzdAorICovCitHZG9tWE1MSHR0cFJlcXVl
c3QqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3htbF9odHRwX3JlcXVlc3QoV2ViS2l0V2ViRnJhbWUq
IGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUo
ZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJh
bWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNT
RVJUKGNvcmVGcmFtZSk7CisJcmV0dXJuIEdET01fWE1MX0hUVFBfUkVRVUVTVChXZWJDb3JlOjp0
b0dET00oWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZShjb3JlRnJhbWUtPmRvY3VtZW50KCkpLmdldCgp
KSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdzoKKyAqIEBm
cmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFy
b3VuZCBhIERPTVdpbmRvdworICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tRE9NV2luZG93Cisg
Ki8KK0dkb21ET01XaW5kb3cqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3coV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBw
cml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7
CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisJUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbiA9IGNv
cmVGcmFtZS0+ZG9tV2luZG93KCk7CisJcmV0dXJuIEdET01fRE9NX1dJTkRPVyhXZWJDb3JlOjp0
b0dET00od2luLmdldCgpKSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9t
X2RvY3VtZW50OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMg
YSBHZG9tIHdyYXBwZXIgYXJvdW5kIGEgRG9jdW1lbnQgCisgKgorICogUmV0dXJuIHZhbHVlOiBh
IEdkb21Eb2N1bWVudAorICovCitHZG9tRG9jdW1lbnQqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2Rv
bV9kb2N1bWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRX
ZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKwlyZXR1cm4gR0RPTV9E
T0NVTUVOVChXZWJDb3JlOjp0b0dET00oY29yZUZyYW1lLT5kb2N1bWVudCgpKSk7Cit9CisKKy8q
IFhYWCBUT0RPOiBtYWtlIHRoaXMgbm90IHRha2UgZnJhbWUqIGFzIGFuIGFyZ3VtZW50LAorICog
YW5kIG1ha2UgaXQgcmV0dXJuIGEgR2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MgKi8KK2V4dGVybiAi
QyIgeworV0VCS0lUX0FQSSBnYm9vbGVhbgorYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJL
aXRXZWJGcmFtZSogd2YsIEZyYW1lICpmcmFtZSwgY29uc3QgY2hhciAqbmFtZSk7Cit9CisKKy8q
KgorICogd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJhbWU6IGEg
I1dlYktpdFdlYkZyYW1lCisgKgorICogYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZnJh
bWUncyBkb2N1bWVudAorICoKKyAqIFJldHVybiB2YWx1ZTogdGhlIG5hbWUgb2YgQGZyYW1lCisg
Ki8KK2dib29sZWFuIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyKiBldmVudF90eXBlKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBGQUxTRSk7CisKKyAgICAvL1dlYktpdFdlYkZy
YW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCisJcmV0dXJuIGFkZF93aW5k
b3dfZXZlbnRfbGlzdGVuZXIoZnJhbWUsIGNvcmVGcmFtZSwgZXZlbnRfdHlwZSk7Cit9CisKKy8q
KgogICogd2Via2l0X3dlYl9mcmFtZV9nZXRfbmFtZToKICAqIEBmcmFtZTogYSAjV2ViS2l0V2Vi
RnJhbWUKICAqCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgJKHJldmlz
aW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2Vu
bmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBKU19ET01fRVZF
TlRfTElTVEVORVJfTk9ERV9ICisjZGVmaW5lIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9OT0RFX0gK
KworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgor
CisKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisKKy8qIFRPRE86IHJldHVybiB0
aGUgYWN0dWFsIGV2ZW50IGxpc3RlbmVyIGNyZWF0ZWQsIHdoaWNoIHJlcXVpcmVzCisgKiBhIGds
aWIgd3JhcHBlciBvYmplY3QgdG8gYmUgY3JlYXRlZC4KKyAqIFRPRE86IHByb3ZpZGUgYSAncmVt
b3ZlX2V2ZW50X2xpc3RlbmVyJyB3aGljaCB0YWtlcyB0aGF0IGdsaWIKKyAqIG9iamVjdCBhcyBh
biBhcmd1bWVudCAqLworZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJCitnYm9vbGVhbiBhZGRfZXZl
bnRfbGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSk7Cit9CisKKyNl
bmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5FUl9OT0RFX0ggKi8KSW5kZXg6IFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViZnJhbWUuaAkocmV2aXNpb24gMzYxMjkpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJmcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0
IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMjYsNiArMjcsOSBAQAogCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRl
ZmluZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbURvY3VtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01XaW5k
b3cuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0Lmg+CiAKIEdfQkVHSU5f
REVDTFMKIApAQCAtNjEsNiArNjUsMTUgQEAKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUgKgog
d2Via2l0X3dlYl9mcmFtZV9uZXcgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgR2RvbVhNTEh0dHBSZXF1ZXN0ICoKK3dlYmtpdF93
ZWJfZnJhbWVfZ2V0X3htbF9odHRwX3JlcXVlc3QgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAg
ICpmcmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbURPTVdpbmRvdyAqCit3ZWJraXRfd2ViX2ZyYW1l
X2dldF9kb21fd2luZG93ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCitX
RUJLSVRfQVBJIEdkb21Eb2N1bWVudCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1l
bnQgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKIFdFQktJVF9BUEkgV2Vi
S2l0V2ViVmlldyAqCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAgICAgICAoV2ViS2l0
V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIApAQCAtOTMsNiArMTA2LDEwIEBACiBXRUJLSVRfQVBJ
IEpTR2xvYmFsQ29udGV4dFJlZgogd2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dl
YmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAg
ICAqbmFtZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpJbmRleDogV2ViS2l0L2d0ay93ZWJr
aXQvRXZlbnRMaXN0ZW5lcldpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0
L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0
L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisKKyNpZm5kZWYgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1dJTkRPV19ICisjZGVm
aW5lIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1dfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgor
I2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKworZXh0ZXJuICJDIiB7CisvKiBU
T0RPOiBtYWtlIGEgR2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MsIHRvIGJlIHJldHVybmVkIGhlcmUg
Ki8KK30KKworI2VuZGlmIC8qSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1dJTkRPV19IICovCkluZGV4
OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAko
cmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRwUmVx
dWVzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKworI2lm
bmRlZiBKU19ET01fRVZFTlRfTElTVEVORVJfWE1MX0hUVFBfUkVRVUVTVF9ICisjZGVmaW5lIEpT
X0RPTV9FVkVOVF9MSVNURU5FUl9YTUxfSFRUUF9SRVFVRVNUX0gKKworI2luY2x1ZGUgPGdsaWIu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKKyNpbmNsdWRlICJHZG9t
WE1MSHR0cFJlcXVlc3QuaCIKKworLyogVE9ETzogcmV0dXJuIHRoZSBhY3R1YWwgZXZlbnQgbGlz
dGVuZXIgY3JlYXRlZCwgd2hpY2ggcmVxdWlyZXMKKyAqIGEgZ2xpYiB3cmFwcGVyIG9iamVjdCB0
byBiZSBjcmVhdGVkLgorICogVE9ETzogcHJvdmlkZSBhICdyZW1vdmVfZXZlbnRfbGlzdGVuZXIn
IHdoaWNoIHRha2VzIHRoYXQgZ2xpYgorICogb2JqZWN0IGFzIGFuIGFyZ3VtZW50ICovCitleHRl
cm4gIkMiIHsKK1dFQktJVF9BUEkKK2dib29sZWFuIGFkZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50
X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCAqd2YsCisgICAgICAgICAgICAgICBjb25zdCBj
aGFyICpuYW1lKTsKK30KKworI2VuZGlmIC8qSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1hNTF9IVFRQ
X1JFUVVFU1RfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXZlbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGV2ZW50LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0
ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1
ZGUgIlN0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRN
TERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUg
Ik5vZGUuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRXZl
bnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJOb2RlLmgiCisjaW5j
bHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5j
bHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJHZG9t
RXZlbnQuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21E
T01PYmplY3QuaCIKKyNpbmNsdWRlICJ3ZWJraXRldmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIgorCisKKyNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgorCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBkb2MpOworICAgIGdwb2ludGVyIHRv
R0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShYTUxIdHRw
UmVxdWVzdCogbm9kZSk7Cit9CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKFdlYktp
dEV2ZW50LCB3ZWJraXRfZXZlbnQsIEdfVFlQRV9PQkpFQ1QpOworCitzdHJ1Y3QgX1dlYktpdEV2
ZW50UHJpdmF0ZSB7CisgICAgRXZlbnQqIGV2ZW50OworfTsKKworI2RlZmluZSBXRUJLSVRfRVZF
TlRfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBX
RUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZlbnRQcml2YXRlKSkKKworc3RhdGljIHZvaWQgd2Vi
a2l0X2V2ZW50X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvL1dlYktpdEV2ZW50
KiByZXF1ZXN0ID0gV0VCS0lUX0VWRU5UKG9iamVjdCk7CisgICAgLy9XZWJLaXRFdmVudFByaXZh
dGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OworCisgICAgLy9nX2ZyZWUocHJpdi0+dXJpKTsKKwor
ICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9ldmVudF9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShv
YmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZXZlbnRfY2xhc3NfaW5pdChXZWJLaXRF
dmVudENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENs
YXNzKS0+ZmluYWxpemUgPSB3ZWJraXRfZXZlbnRfZmluYWxpemU7CisKKyAgICBnX3R5cGVfY2xh
c3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoV2ViS2l0RXZlbnRQcml2YXRlKSk7
Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9ldmVudF9pbml0KFdlYktpdEV2ZW50KiByZXF1ZXN0
KQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9FVkVOVF9HRVRfUFJJ
VkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsKK30KKworV2ViS2l0RXZl
bnQqIHdlYmtpdF9ldmVudF9uZXcodm9pZCkKK3sKKyAgICBXZWJLaXRFdmVudCogcmVxdWVzdCA9
IFdFQktJVF9FVkVOVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfRVZFTlQsIE5VTEwpKTsKKyAg
ICAvL3ByaXYtPmV2ZW50ID0gZXZlbnQ7CisKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKworLyoK
K3ZvaWQgd2Via2l0X2V2ZW50X3NldF91cmkoV2ViS2l0RXZlbnQqIHJlcXVlc3QsIGNvbnN0IGdj
aGFyKiB1cmkpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfRVZFTlQocmVxdWVz
dCkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKKworICAgIFdlYktpdEV2ZW50UHJpdmF0
ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAgICBnX2ZyZWUocHJpdi0+dXJpKTsKKyAgICBw
cml2LT51cmkgPSBnX3N0cmR1cCh1cmkpOworfQorKi8KK0dfQ09OU1RfUkVUVVJOIGdjaGFyKiB3
ZWJraXRfZXZlbnRfZ2V0X2V2ZW50X3R5cGUoV2ViS2l0RXZlbnQqIHJlcXVlc3QpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0VWRU5UKHJlcXVlc3QpLCBOVUxMKTsKKwor
ICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisgICAgcmV0dXJu
IGdfc3RyZHVwKHByaXYtPmV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cit9
CisKK3ZvaWQgd2Via2l0X2V2ZW50X2NhbmNlbF9idWJibGUgIChXZWJLaXRFdmVudCAqcmVxdWVz
dCwgZ2Jvb2xlYW4gY2FuY2VsKQoreworICAgIFdlYktpdEV2ZW50UHJpdmF0ZSogcHJpdiA9IHJl
cXVlc3QtPnByaXY7CisgICAgcHJpdi0+ZXZlbnQtPnNldENhbmNlbEJ1YmJsZShjYW5jZWwpOwor
fQorCit2b2lkIHdlYmtpdF9ldmVudF9wcmV2ZW50X2RlZmF1bHQgIChXZWJLaXRFdmVudCAqcmVx
dWVzdCkKK3sKKyAgICBXZWJLaXRFdmVudFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2Owor
ICAgIHByaXYtPmV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworfQorCit2b2lkIHdlYmtpdF9ldmVu
dF9zdG9wX3Byb3BhZ2F0aW9uICAoV2ViS2l0RXZlbnQgKnJlcXVlc3QpCit7CisgICAgV2ViS2l0
RXZlbnRQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKyAgICBwcml2LT5ldmVudC0+c3Rv
cFByb3BhZ2F0aW9uKCk7Cit9CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93aW5kb3dfZXZl
bnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNvbnN0IGNoYXIg
Km5hbWUpOworCit9IC8vIGV4dGVybiAiQyIKKworY2xhc3MgWE1MSHR0cFJlcXVlc3RFdmVudExp
c3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21YTUxIdHRwUmVx
dWVzdCogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IFhNTEh0dHBSZXF1ZXN0RXZlbnRM
aXN0ZW5lcih3ZikpOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9v
bCB1c2VDYXB0dXJlKTsKKworICAgIHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7
IG1fdHlwZSA9IGdfc3RyZHVwKGV2dHlwZSk7IH0KKyAgICBwcml2YXRlOgorICAgIGNoYXIgKm1f
dHlwZTsKKyAgICBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0
KiB3ZikKKyAgICAgICAgICAgOiBtX3dmKHdmKQorICAgICAgICAgICAsIG1fdHlwZShOVUxMKQor
ICAgIHt9CisgICAgflhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcigpCisgICAgeworICAgICAg
ICBpZiAobV90eXBlKQorICAgICAgICAgICAgZ19mcmVlKG1fdHlwZSk7CisgICAgfQorICAgIEdk
b21YTUxIdHRwUmVxdWVzdCogbV93ZjsKK307CisKK3ZvaWQgWE1MSHR0cFJlcXVlc3RFdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgdXNlQ2FwdHVyZSkKK3sKKyAg
ICBnYm9vbGVhbiByZXR2YWw7CisgICAgY2hhciAqZXZuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCJi
cm93c2VyLWV2ZW50OjolcyIsIG1fdHlwZSk7CisgICAgLyogVE9ETzogc2VlIEpTRXZlbnRMaXN0
ZW5lci5jcHAncyBoYW5kbGVFdmVudCAtIHNvbWUgd2VpcmQgc3R1ZmYuLi4gKi8KKyAgICAvL3By
aW50ZigiWE1MSHR0cFJlcXVlc3QgaGFuZGxlRXZlbnQgJXNcbiIsIGV2ZW50LT50eXBlKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdl
YkNvcmU6OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBl
dm5hbWUsIHdldiwgdXNlQ2FwdHVyZSwgJnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9
CisKK2NsYXNzIE5vZGVFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vZGVFdmVudExpc3RlbmVyPiBjcmVhdGUoR2Rv
bUV2ZW50VGFyZ2V0Tm9kZSogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5vZGVFdmVu
dExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBi
b29sIHVzZUNhcHR1cmUpOworCisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFyICpldnR5cGUp
IHsgbV90eXBlID0gZ19zdHJkdXAoZXZ0eXBlKTsgfQorcHJpdmF0ZToKKyAgICBjaGFyICptX3R5
cGU7CisgICAgTm9kZUV2ZW50TGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogd2YpCisgICAg
ICAgICAgICA6IG1fd2Yod2YpCisgICAgICAgICAgICAsIG1fdHlwZShOVUxMKQorICAgIHt9Cisg
ICAgfk5vZGVFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUpCisgICAg
ICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZSog
bV93ZjsKK307CisKK3ZvaWQgTm9kZUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBl
dmVudCwgYm9vbCB1c2VDYXB0dXJlKQoreworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBjaGFy
ICpldm5hbWUgPSBnX3N0cmR1cF9wcmludGYoImJyb3dzZXItZXZlbnQ6OiVzIiwgbV90eXBlKTsK
KyAgICAvL3ByaW50Zigibm9kZSBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2Vi
Q29yZTo6dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2
bmFtZSwgd2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30K
KworY2xhc3MgV2luZG93RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBjcmVhdGUo
V2ViS2l0V2ViRnJhbWUqIHdmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
aW5kb3dFdmVudExpc3RlbmVyKHdmKSk7IAorICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
RXZlbnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOworICAgIHZvaWQgc2V0X3R5cGUoY29u
c3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlwZSA9IGdfc3RyZHVwKGV2dHlwZSk7IH0KK3ByaXZhdGU6
CisgICAgY2hhciAqbV90eXBlOworICAgIFdpbmRvd0V2ZW50TGlzdGVuZXIoV2ViS2l0V2ViRnJh
bWUqIHdmKQorICAgICAgICAgICA6IG1fd2Yod2YpCisgICAgICAgICAgICwgbV90eXBlKE5VTEwp
CisgICAge30KKyAgICB+V2luZG93RXZlbnRMaXN0ZW5lcigpCisgICAgeworICAgICAgICBpZiAo
bV90eXBlKQorICAgICAgICAgICAgZ19mcmVlKG1fdHlwZSk7CisgICAgfQorICAgIFdlYktpdFdl
YkZyYW1lKiBtX3dmOworfTsKKwordm9pZCBXaW5kb3dFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVu
dChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKK3sKKyAgICBjaGFyICpldm5hbWUg
PSBnX3N0cmR1cF9wcmludGYoImJyb3dzZXItZXZlbnQ6OiVzIiwgbV90eXBlKTsKKyAgICBnYm9v
bGVhbiByZXR2YWw7CisgICAgLy9wcmludGYoIndpbmRvdyBoYW5kbGVFdmVudCAlcyAlc1xuIiwg
ZXZuYW1lLAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC0+dHlwZSgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVO
VChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93
ZiwgZXZuYW1lLCB3ZXYsIGlzV2luZG93RXZlbnQsICZyZXR2YWwpOworICAgIGdfZnJlZShldm5h
bWUpOworfQorCitnYm9vbGVhbiBhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9saXN0ZW5lcihH
ZG9tWE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKm5hbWUpCit7CisgICAgV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3QgKnJlcSA9IGdkb21f
eG1sX2h0dHBfcmVxdWVzdF9nZXRfcHJpdmF0ZSh3Zik7CisgICAgaWYgKCFuYW1lKQorICAgICAg
ICByZXR1cm4gRkFMU0U7CisgICAgaWYgKCFyZXEpCisgICAgICAgIHJldHVybiBGQUxTRTsKKwor
ICAgIGlmIChzdHJjbXAobmFtZSwgIm9ucmVhZHlzdGF0ZWNoYW5nZSIpID09IDApCisgICAgewor
ICAgICAgICBSZWZQdHI8WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyPiBsaXN0ZW5lcjsKKyAg
ICAgICAgbGlzdGVuZXIgPSBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7
CisgICAgICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICAgICAgcmVxLT5zZXRPblJl
YWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgIHJldHVybiBUUlVFOwor
ICAgIH0KKyAgICByZXR1cm4gRkFMU0U7Cit9IAorCitnYm9vbGVhbiBhZGRfZXZlbnRfbGlzdGVu
ZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBXZWJDb3JlOjpO
b2RlICpub2RlID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh3Zik7CisgICAg
aWYgKCFub2RlIHx8ICFub2RlLT5pc0V2ZW50VGFyZ2V0Tm9kZSgpKQorICAgICAgICByZXR1cm4g
RkFMU0U7CisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogZXRuID0gKHN0YXRpY19jYXN0
PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqPihub2RlKSktPnRvTm9kZSgpOworICAgIGlmICgh
ZXRuKQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBSZWZQdHI8Tm9kZUV2ZW50TGlzdGVu
ZXI+IGxpc3RlbmVyID0gTm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgbGlzdGVu
ZXItPnNldF90eXBlKG5hbWUpOworICAgIGV0bi0+YWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0
ZW5lciwgdXNlQ2FwdHVyZSk7CisKKyAgICByZXR1cm4gVFJVRTsKKworfSAKKworZ2Jvb2xlYW4g
YWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSAqd2YsIEZyYW1lICpmcmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkK
K3sKKyAgICBEb2N1bWVudCogZG9jID0gZnJhbWUtPmRvY3VtZW50KCk7CisKKyAgICBSZWZQdHI8
V2luZG93RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBXaW5kb3dFdmVudExpc3RlbmVyOjpjcmVh
dGUod2YpOworICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICBkb2MtPmFkZFdpbmRv
d0V2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHRydWUpOworCisgICAgcmV0dXJuIFRSVUU7
CisKK30gCisKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHJldmlzaW9uIDM2MTI5
KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MCw2ICs0MCw5IEBACiAKIEdfQkVHSU5fREVDTFMKIAordHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dEV2ZW50IFdlYktpdEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgV2Vi
S2l0RXZlbnRDbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0IFdl
YktpdE5ldHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0
Q2xhc3MgV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIApJbmRleDogV2ViS2l0L2d0ay93ZWJr
aXQvZ2RvbWRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVm
aW5lcy5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWRlZmluZXMuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdFQktJVF9HRE9N
X0RFRklORVNfSAorI2RlZmluZSBXRUJLSVRfR0RPTV9ERUZJTkVTX0gKKworI2luY2x1ZGUgPGds
aWIuaD4KKworI2lmZGVmIEdfT1NfV0lOMzIKKyAgICAjaWZkZWYgQlVJTERJTkdfV0VCS0lUX0dE
T00KKyAgICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQp
CisgICAgI2Vsc2UKKyAgICAgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkgX19kZWNsc3BlYyhk
bGxpbXBvcnQpCisgICAgI2VuZGlmCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9PQlNPTEVURV9B
UEkgV0VCS0lUX0dET01fQVBJCisjZWxzZQorICAgICNkZWZpbmUgV0VCS0lUX0dET01fQVBJIF9f
YXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisgICAgI2RlZmluZSBXRUJLSVRf
R0RPTV9PQlNPTEVURV9BUEkgV0VCS0lUX0dET01fQVBJIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0
ZWQpKQorI2VuZGlmCisKKyNpZm5kZWYgV0VCS0lUX0dET01fQVBJCisgICAgI2RlZmluZSBXRUJL
SVRfR0RPTV9BUEkKKyNlbmRpZgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRXZlbnRUYXJnZXROb2RlIEdkb21FdmVudFRhcmdldE5vZGU7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIEdkb21FdmVudFRhcmdldE5vZGVDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0IEdkb21ET01PYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbURPTU9iamVjdENsYXNzIEdkb21ET01PYmplY3RDbGFzczsKKwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21BdHRyIEdkb21BdHRyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21BdHRyQ2xhc3MgR2RvbUF0
dHJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQmFySW5mbyBHZG9tQmFySW5mbzsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tQmFySW5mb0NsYXNzIEdkb21CYXJJbmZvQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUNhbnZhc0dyYWRpZW50IEdkb21DYW52YXNHcmFkaWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ2FudmFzR3JhZGllbnRDbGFzcyBHZG9tQ2FudmFzR3JhZGllbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGF0dGVybiBHZG9tQ2FudmFzUGF0dGVybjsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tQ2FudmFzUGF0dGVybkNsYXNzIEdkb21DYW52YXNQYXR0ZXJuQ2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BpeGVsQXJyYXkgR2RvbUNhbnZhc1BpeGVsQXJy
YXk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1BpeGVsQXJyYXlDbGFzcyBHZG9tQ2FudmFz
UGl4ZWxBcnJheUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQgR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ2xhc3MgR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DREFUQVNlY3Rpb24gR2RvbUNEQVRBU2VjdGlv
bjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ0RBVEFTZWN0aW9uQ2xhc3MgR2RvbUNEQVRBU2VjdGlv
bkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DaGFyYWN0ZXJEYXRhIEdkb21DaGFyYWN0ZXJE
YXRhOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DaGFyYWN0ZXJEYXRhQ2xhc3MgR2RvbUNoYXJhY3Rl
ckRhdGFDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2xpcGJvYXJkIEdkb21DbGlwYm9hcmQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNsaXBib2FyZENsYXNzIEdkb21DbGlwYm9hcmRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tQ29tbWVudCBHZG9tQ29tbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tQ29tbWVudENsYXNzIEdkb21Db21tZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUNvbnNvbGUgR2RvbUNvbnNvbGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvbnNvbGVDbGFzcyBH
ZG9tQ29uc29sZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db3VudGVyIEdkb21Db3VudGVy
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db3VudGVyQ2xhc3MgR2RvbUNvdW50ZXJDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tQ1NTQ2hhcnNldFJ1bGUgR2RvbUNTU0NoYXJzZXRSdWxlOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21DU1NDaGFyc2V0UnVsZUNsYXNzIEdkb21DU1NDaGFyc2V0UnVsZUNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NGb250RmFjZVJ1bGUgR2RvbUNTU0ZvbnRGYWNl
UnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTRm9udEZhY2VSdWxlQ2xhc3MgR2RvbUNTU0Zv
bnRGYWNlUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NJbXBvcnRSdWxlIEdkb21D
U1NJbXBvcnRSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NJbXBvcnRSdWxlQ2xhc3MgR2Rv
bUNTU0ltcG9ydFJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTTWVkaWFSdWxlIEdk
b21DU1NNZWRpYVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU01lZGlhUnVsZUNsYXNzIEdk
b21DU1NNZWRpYVJ1bGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUGFnZVJ1bGUgR2Rv
bUNTU1BhZ2VSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NQYWdlUnVsZUNsYXNzIEdkb21D
U1NQYWdlUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NQcmltaXRpdmVWYWx1ZSBH
ZG9tQ1NTUHJpbWl0aXZlVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ByaW1pdGl2ZVZh
bHVlQ2xhc3MgR2RvbUNTU1ByaW1pdGl2ZVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUNTU1J1bGUgR2RvbUNTU1J1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1J1bGVDbGFzcyBH
ZG9tQ1NTUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NSdWxlTGlzdCBHZG9tQ1NT
UnVsZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1J1bGVMaXN0Q2xhc3MgR2RvbUNTU1J1
bGVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24gR2Rv
bUNTU1N0eWxlRGVjbGFyYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1N0eWxlRGVjbGFy
YXRpb25DbGFzcyBHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21DU1NTdHlsZVJ1bGUgR2RvbUNTU1N0eWxlUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
Q1NTU3R5bGVSdWxlQ2xhc3MgR2RvbUNTU1N0eWxlUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21DU1NTdHlsZVNoZWV0IEdkb21DU1NTdHlsZVNoZWV0OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21DU1NTdHlsZVNoZWV0Q2xhc3MgR2RvbUNTU1N0eWxlU2hlZXRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tQ1NTVmFsdWUgR2RvbUNTU1ZhbHVlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NW
YWx1ZUNsYXNzIEdkb21DU1NWYWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYWx1
ZUxpc3QgR2RvbUNTU1ZhbHVlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFsdWVMaXN0
Q2xhc3MgR2RvbUNTU1ZhbHVlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbiBHZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb247Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uQ2xhc3MgR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhcmlhYmxlc1J1bGUgR2Rv
bUNTU1ZhcmlhYmxlc1J1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ZhcmlhYmxlc1J1bGVD
bGFzcyBHZG9tQ1NTVmFyaWFibGVzUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21EYXRh
YmFzZSBHZG9tRGF0YWJhc2U7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURhdGFiYXNlQ2xhc3MgR2Rv
bURhdGFiYXNlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50RnJhZ21lbnQgR2Rv
bURvY3VtZW50RnJhZ21lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50RnJhZ21lbnRD
bGFzcyBHZG9tRG9jdW1lbnRGcmFnbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1
bWVudCBHZG9tRG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50Q2xhc3MgR2Rv
bURvY3VtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50VHlwZSBHZG9tRG9j
dW1lbnRUeXBlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Eb2N1bWVudFR5cGVDbGFzcyBHZG9tRG9j
dW1lbnRUeXBlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUg
R2RvbURPTUFwcGxpY2F0aW9uQ2FjaGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUFwcGxpY2F0
aW9uQ2FjaGVDbGFzcyBHZG9tRE9NQXBwbGljYXRpb25DYWNoZUNsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21ET01Db3JlRXhjZXB0aW9uIEdkb21ET01Db3JlRXhjZXB0aW9uOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21ET01Db3JlRXhjZXB0aW9uQ2xhc3MgR2RvbURPTUNvcmVFeGNlcHRpb25DbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NSW1wbGVtZW50YXRpb24gR2RvbURPTUltcGxlbWVu
dGF0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01JbXBsZW1lbnRhdGlvbkNsYXNzIEdkb21E
T01JbXBsZW1lbnRhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01QYXJzZXIgR2Rv
bURPTVBhcnNlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NUGFyc2VyQ2xhc3MgR2RvbURPTVBh
cnNlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01TZWxlY3Rpb24gR2RvbURPTVNlbGVj
dGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NU2VsZWN0aW9uQ2xhc3MgR2RvbURPTVNlbGVj
dGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01XaW5kb3cgR2RvbURPTVdpbmRvdzsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NV2luZG93Q2xhc3MgR2RvbURPTVdpbmRvd0NsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21FbGVtZW50IEdkb21FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21FbGVtZW50Q2xhc3MgR2RvbUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RW50aXR5IEdkb21FbnRpdHk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVudGl0eUNsYXNzIEdkb21F
bnRpdHlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRW50aXR5UmVmZXJlbmNlIEdkb21FbnRp
dHlSZWZlcmVuY2U7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVudGl0eVJlZmVyZW5jZUNsYXNzIEdk
b21FbnRpdHlSZWZlcmVuY2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRFeGNlcHRp
b24gR2RvbUV2ZW50RXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudEV4Y2VwdGlv
bkNsYXNzIEdkb21FdmVudEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVu
dCBHZG9tRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50Q2xhc3MgR2RvbUV2ZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUZpbGUgR2RvbUZpbGU7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUZpbGVDbGFzcyBHZG9tRmlsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21GaWxlTGlz
dCBHZG9tRmlsZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUZpbGVMaXN0Q2xhc3MgR2RvbUZp
bGVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhpc3RvcnkgR2RvbUhpc3Rvcnk7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhpc3RvcnlDbGFzcyBHZG9tSGlzdG9yeUNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MQW5jaG9yRWxlbWVudCBHZG9tSFRNTEFuY2hvckVsZW1lbnQ7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBbmNob3JFbGVtZW50Q2xhc3MgR2RvbUhUTUxBbmNob3JF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxBcHBsZXRFbGVtZW50IEdkb21I
VE1MQXBwbGV0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFwcGxldEVsZW1lbnRD
bGFzcyBHZG9tSFRNTEFwcGxldEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TEFyZWFFbGVtZW50IEdkb21IVE1MQXJlYUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxBcmVhRWxlbWVudENsYXNzIEdkb21IVE1MQXJlYUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEJhc2VFbGVtZW50IEdkb21IVE1MQmFzZUVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxCYXNlRWxlbWVudENsYXNzIEdkb21IVE1MQmFzZUVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJhc2VGb250RWxlbWVudCBHZG9tSFRNTEJhc2VGb250
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJhc2VGb250RWxlbWVudENsYXNzIEdk
b21IVE1MQmFzZUZvbnRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCbG9j
a3F1b3RlRWxlbWVudCBHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnRDbGFzcyBHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCb2R5RWxlbWVudCBHZG9tSFRNTEJvZHlF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQm9keUVsZW1lbnRDbGFzcyBHZG9tSFRN
TEJvZHlFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCUkVsZW1lbnQgR2Rv
bUhUTUxCUkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCUkVsZW1lbnRDbGFzcyBH
ZG9tSFRNTEJSRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQnV0dG9uRWxl
bWVudCBHZG9tSFRNTEJ1dHRvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCdXR0
b25FbGVtZW50Q2xhc3MgR2RvbUhUTUxCdXR0b25FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxDYW52YXNFbGVtZW50IEdkb21IVE1MQ2FudmFzRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTENhbnZhc0VsZW1lbnRDbGFzcyBHZG9tSFRNTENhbnZhc0VsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTENvbGxlY3Rpb24gR2RvbUhUTUxDb2xsZWN0
aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ29sbGVjdGlvbkNsYXNzIEdkb21IVE1MQ29s
bGVjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudCBH
ZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEaXJlY3Rv
cnlFbGVtZW50Q2xhc3MgR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxEaXZFbGVtZW50IEdkb21IVE1MRGl2RWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTERpdkVsZW1lbnRDbGFzcyBHZG9tSFRNTERpdkVsZW1lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTERMaXN0RWxlbWVudCBHZG9tSFRNTERMaXN0RWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERMaXN0RWxlbWVudENsYXNzIEdkb21IVE1MRExpc3RF
bGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEb2N1bWVudCBHZG9tSFRNTERv
Y3VtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRG9jdW1lbnRDbGFzcyBHZG9tSFRNTERv
Y3VtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxFbGVtZW50IEdkb21IVE1MRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEVsZW1lbnRDbGFzcyBHZG9tSFRNTEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEVtYmVkRWxlbWVudCBHZG9tSFRNTEVt
YmVkRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEVtYmVkRWxlbWVudENsYXNzIEdk
b21IVE1MRW1iZWRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGaWVsZFNl
dEVsZW1lbnQgR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhU
TUxGaWVsZFNldEVsZW1lbnRDbGFzcyBHZG9tSFRNTEZpZWxkU2V0RWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9udEVsZW1lbnQgR2RvbUhUTUxGb250RWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZvbnRFbGVtZW50Q2xhc3MgR2RvbUhUTUxGb250RWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9ybUVsZW1lbnQgR2RvbUhUTUxGb3Jt
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZvcm1FbGVtZW50Q2xhc3MgR2RvbUhU
TUxGb3JtRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRnJhbWVFbGVtZW50
IEdkb21IVE1MRnJhbWVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRnJhbWVFbGVt
ZW50Q2xhc3MgR2RvbUhUTUxGcmFtZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTEZyYW1lU2V0RWxlbWVudCBHZG9tSFRNTEZyYW1lU2V0RWxlbWVudDsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudENsYXNzIEdkb21IVE1MRnJhbWVTZXRFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIZWFkRWxlbWVudCBHZG9tSFRNTEhlYWRF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSGVhZEVsZW1lbnRDbGFzcyBHZG9tSFRN
TEhlYWRFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIZWFkaW5nRWxlbWVu
dCBHZG9tSFRNTEhlYWRpbmdFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSGVhZGlu
Z0VsZW1lbnRDbGFzcyBHZG9tSFRNTEhlYWRpbmdFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxIUkVsZW1lbnQgR2RvbUhUTUxIUkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxIUkVsZW1lbnRDbGFzcyBHZG9tSFRNTEhSRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MSHRtbEVsZW1lbnQgR2RvbUhUTUxIdG1sRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTEh0bWxFbGVtZW50Q2xhc3MgR2RvbUhUTUxIdG1sRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSUZyYW1lRWxlbWVudCBHZG9tSFRNTElGcmFtZUVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJRnJhbWVFbGVtZW50Q2xhc3MgR2RvbUhU
TUxJRnJhbWVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJbWFnZUVsZW1l
bnQgR2RvbUhUTUxJbWFnZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJbWFnZUVs
ZW1lbnRDbGFzcyBHZG9tSFRNTEltYWdlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MSW5wdXRFbGVtZW50IEdkb21IVE1MSW5wdXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MSW5wdXRFbGVtZW50Q2xhc3MgR2RvbUhUTUxJbnB1dEVsZW1lbnRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTElzSW5kZXhFbGVtZW50IEdkb21IVE1MSXNJbmRleEVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJc0luZGV4RWxlbWVudENsYXNzIEdkb21IVE1M
SXNJbmRleEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExhYmVsRWxlbWVu
dCBHZG9tSFRNTExhYmVsRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExhYmVsRWxl
bWVudENsYXNzIEdkb21IVE1MTGFiZWxFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxMZWdlbmRFbGVtZW50IEdkb21IVE1MTGVnZW5kRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTExlZ2VuZEVsZW1lbnRDbGFzcyBHZG9tSFRNTExlZ2VuZEVsZW1lbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExJRWxlbWVudCBHZG9tSFRNTExJRWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTExJRWxlbWVudENsYXNzIEdkb21IVE1MTElFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMaW5rRWxlbWVudCBHZG9tSFRNTExpbmtFbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGlua0VsZW1lbnRDbGFzcyBHZG9tSFRNTExp
bmtFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNYXBFbGVtZW50IEdkb21I
VE1MTWFwRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1hcEVsZW1lbnRDbGFzcyBH
ZG9tSFRNTE1hcEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1hcnF1ZWVF
bGVtZW50IEdkb21IVE1MTWFycXVlZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxN
YXJxdWVlRWxlbWVudENsYXNzIEdkb21IVE1MTWFycXVlZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTE1lbnVFbGVtZW50IEdkb21IVE1MTWVudUVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxNZW51RWxlbWVudENsYXNzIEdkb21IVE1MTWVudUVsZW1lbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1ldGFFbGVtZW50IEdkb21IVE1MTWV0YUVsZW1l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNZXRhRWxlbWVudENsYXNzIEdkb21IVE1MTWV0
YUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1vZEVsZW1lbnQgR2RvbUhU
TUxNb2RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTW9kRWxlbWVudENsYXNzIEdk
b21IVE1MTW9kRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT2JqZWN0RWxl
bWVudCBHZG9tSFRNTE9iamVjdEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPYmpl
Y3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxPYmplY3RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxPTGlzdEVsZW1lbnQgR2RvbUhUTUxPTGlzdEVsZW1lbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxPTGlzdEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9MaXN0RWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0R3JvdXBFbGVtZW50IEdkb21IVE1MT3B0R3Jv
dXBFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0R3JvdXBFbGVtZW50Q2xhc3Mg
R2RvbUhUTUxPcHRHcm91cEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9w
dGlvbkVsZW1lbnQgR2RvbUhUTUxPcHRpb25FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MT3B0aW9uRWxlbWVudENsYXNzIEdkb21IVE1MT3B0aW9uRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24gR2RvbUhUTUxPcHRpb25zQ29sbGVj
dGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ2xhc3MgR2Rv
bUhUTUxPcHRpb25zQ29sbGVjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUGFy
YWdyYXBoRWxlbWVudCBHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Q2xhc3MgR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQYXJhbUVsZW1lbnQgR2RvbUhUTUxQYXJhbUVs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQYXJhbUVsZW1lbnRDbGFzcyBHZG9tSFRN
TFBhcmFtRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MUHJlRWxlbWVudCBH
ZG9tSFRNTFByZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQcmVFbGVtZW50Q2xh
c3MgR2RvbUhUTUxQcmVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxRdW90
ZUVsZW1lbnQgR2RvbUhUTUxRdW90ZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxR
dW90ZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFF1b3RlRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MU2NyaXB0RWxlbWVudCBHZG9tSFRNTFNjcmlwdEVsZW1lbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxTY3JpcHRFbGVtZW50Q2xhc3MgR2RvbUhUTUxTY3JpcHRFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxTZWxlY3RFbGVtZW50IEdkb21IVE1MU2Vs
ZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNlbGVjdEVsZW1lbnRDbGFzcyBH
ZG9tSFRNTFNlbGVjdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFN0eWxl
RWxlbWVudCBHZG9tSFRNTFN0eWxlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFN0
eWxlRWxlbWVudENsYXNzIEdkb21IVE1MU3R5bGVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50IEdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRDbGFzcyBHZG9t
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRh
YmxlQ2VsbEVsZW1lbnQgR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21IVE1MVGFibGVDZWxsRWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVDZWxsRWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDb2xFbGVtZW50IEdkb21IVE1MVGFi
bGVDb2xFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDb2xFbGVtZW50Q2xh
c3MgR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TFRhYmxlRWxlbWVudCBHZG9tSFRNTFRhYmxlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTFRhYmxlRWxlbWVudENsYXNzIEdkb21IVE1MVGFibGVFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQgR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnRDbGFzcyBHZG9tSFRNTFRh
YmxlUm93RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVTZWN0aW9u
RWxlbWVudCBHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQgR2RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnRD
bGFzcyBHZG9tSFRNTFRleHRBcmVhRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MVGl0bGVFbGVtZW50IEdkb21IVE1MVGl0bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MVGl0bGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxUaXRsZUVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTFVMaXN0RWxlbWVudCBHZG9tSFRNTFVMaXN0RWxlbWVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tSFRNTFVMaXN0RWxlbWVudENsYXNzIEdkb21IVE1MVUxpc3RFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUltYWdlRGF0YSBHZG9tSW1hZ2VEYXRhOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21JbWFnZURhdGFDbGFzcyBHZG9tSW1hZ2VEYXRhQ2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUgR2RvbUphdmFTY3JpcHRDYWxs
RnJhbWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUphdmFTY3JpcHRDYWxsRnJhbWVDbGFzcyBHZG9t
SmF2YVNjcmlwdENhbGxGcmFtZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21LZXlib2FyZEV2
ZW50IEdkb21LZXlib2FyZEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21LZXlib2FyZEV2ZW50
Q2xhc3MgR2RvbUtleWJvYXJkRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTG9jYXRp
b24gR2RvbUxvY2F0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Mb2NhdGlvbkNsYXNzIEdkb21M
b2NhdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZWRpYUxpc3QgR2RvbU1lZGlhTGlz
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWVkaWFMaXN0Q2xhc3MgR2RvbU1lZGlhTGlzdENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZXNzYWdlRXZlbnQgR2RvbU1lc3NhZ2VFdmVudDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tTWVzc2FnZUV2ZW50Q2xhc3MgR2RvbU1lc3NhZ2VFdmVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NaW1lVHlwZUFycmF5IEdkb21NaW1lVHlwZUFycmF5Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21NaW1lVHlwZUFycmF5Q2xhc3MgR2RvbU1pbWVUeXBlQXJyYXlD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTWltZVR5cGUgR2RvbU1pbWVUeXBlOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21NaW1lVHlwZUNsYXNzIEdkb21NaW1lVHlwZUNsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21Nb3VzZUV2ZW50IEdkb21Nb3VzZUV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21Nb3VzZUV2ZW50Q2xhc3MgR2RvbU1vdXNlRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tTXV0YXRpb25FdmVudCBHZG9tTXV0YXRpb25FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
TXV0YXRpb25FdmVudENsYXNzIEdkb21NdXRhdGlvbkV2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbU5hbWVkTm9kZU1hcCBHZG9tTmFtZWROb2RlTWFwOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21OYW1lZE5vZGVNYXBDbGFzcyBHZG9tTmFtZWROb2RlTWFwQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbU5hdmlnYXRvciBHZG9tTmF2aWdhdG9yOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21OYXZp
Z2F0b3JDbGFzcyBHZG9tTmF2aWdhdG9yQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVG
aWx0ZXIgR2RvbU5vZGVGaWx0ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVGaWx0ZXJDbGFz
cyBHZG9tTm9kZUZpbHRlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlIEdkb21Ob2Rl
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob2RlQ2xhc3MgR2RvbU5vZGVDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tTm9kZUl0ZXJhdG9yIEdkb21Ob2RlSXRlcmF0b3I7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbU5vZGVJdGVyYXRvckNsYXNzIEdkb21Ob2RlSXRlcmF0b3JDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tTm9kZUxpc3QgR2RvbU5vZGVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21O
b2RlTGlzdENsYXNzIEdkb21Ob2RlTGlzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Ob3Rh
dGlvbiBHZG9tTm90YXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vdGF0aW9uQ2xhc3MgR2Rv
bU5vdGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU92ZXJmbG93RXZlbnQgR2RvbU92
ZXJmbG93RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU92ZXJmbG93RXZlbnRDbGFzcyBHZG9t
T3ZlcmZsb3dFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21QbHVnaW5BcnJheSBHZG9t
UGx1Z2luQXJyYXk7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbkFycmF5Q2xhc3MgR2RvbVBs
dWdpbkFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbiBHZG9tUGx1Z2luOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21QbHVnaW5DbGFzcyBHZG9tUGx1Z2luQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBHZG9tUHJvY2Vzc2luZ0luc3RydWN0
aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzcyBHZG9t
UHJvY2Vzc2luZ0luc3RydWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVByb2dyZXNz
RXZlbnQgR2RvbVByb2dyZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVByb2dyZXNzRXZl
bnRDbGFzcyBHZG9tUHJvZ3Jlc3NFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SYW5n
ZUV4Y2VwdGlvbiBHZG9tUmFuZ2VFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJhbmdl
RXhjZXB0aW9uQ2xhc3MgR2RvbVJhbmdlRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVJhbmdlIEdkb21SYW5nZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmFuZ2VDbGFzcyBHZG9t
UmFuZ2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmVjdCBHZG9tUmVjdDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tUmVjdENsYXNzIEdkb21SZWN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVNjcmVlbiBHZG9tU2NyZWVuOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TY3JlZW5DbGFzcyBHZG9t
U2NyZWVuQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTEVycm9yIEdkb21TUUxFcnJvcjsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMRXJyb3JDbGFzcyBHZG9tU1FMRXJyb3JDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0IEdkb21TUUxSZXN1bHRTZXQ7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVNRTFJlc3VsdFNldENsYXNzIEdkb21TUUxSZXN1bHRTZXRDbGFzczsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdCBHZG9tU1FMUmVzdWx0U2V0Um93
TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdENsYXNzIEdkb21T
UUxSZXN1bHRTZXRSb3dMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNRTFRyYW5zYWN0
aW9uIEdkb21TUUxUcmFuc2FjdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMVHJhbnNhY3Rp
b25DbGFzcyBHZG9tU1FMVHJhbnNhY3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3Rv
cmFnZUV2ZW50IEdkb21TdG9yYWdlRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0b3JhZ2VF
dmVudENsYXNzIEdkb21TdG9yYWdlRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3Rv
cmFnZSBHZG9tU3RvcmFnZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3RvcmFnZUNsYXNzIEdkb21T
dG9yYWdlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hlZXQgR2RvbVN0eWxlU2hl
ZXQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hlZXRDbGFzcyBHZG9tU3R5bGVTaGVldENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdHlsZVNoZWV0TGlzdCBHZG9tU3R5bGVTaGVldExp
c3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hlZXRMaXN0Q2xhc3MgR2RvbVN0eWxlU2hl
ZXRMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRleHRFdmVudCBHZG9tVGV4dEV2ZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UZXh0RXZlbnRDbGFzcyBHZG9tVGV4dEV2ZW50Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRleHQgR2RvbVRleHQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bVRleHRDbGFzcyBHZG9tVGV4dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UcmVlV2Fsa2Vy
IEdkb21UcmVlV2Fsa2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21UcmVlV2Fsa2VyQ2xhc3MgR2Rv
bVRyZWVXYWxrZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVUlFdmVudCBHZG9tVUlFdmVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVUlFdmVudENsYXNzIEdkb21VSUV2ZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50IEdkb21XZWJLaXRBbmltYXRp
b25FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnRDbGFzcyBH
ZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUgR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUNsYXNzIEdkb21XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRUcmFuc2l0aW9uRXZl
bnQgR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0
VHJhbnNpdGlvbkV2ZW50Q2xhc3MgR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21XaGVlbEV2ZW50IEdkb21XaGVlbEV2ZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21XaGVlbEV2ZW50Q2xhc3MgR2RvbVdoZWVsRXZlbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24gR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbkNsYXNzIEdk
b21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxI
dHRwUmVxdWVzdCBHZG9tWE1MSHR0cFJlcXVlc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0
dHBSZXF1ZXN0Q2xhc3MgR2RvbVhNTEh0dHBSZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCBHZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRD
bGFzcyBHZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkIEdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZDsKK3R5
cGVkZWYgc3RydWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWRDbGFzcyBHZG9tWE1MSHR0cFJl
cXVlc3RVcGxvYWRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MU2VyaWFsaXplciBHZG9t
WE1MU2VyaWFsaXplcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1MU2VyaWFsaXplckNsYXNzIEdk
b21YTUxTZXJpYWxpemVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoRXZhbHVhdG9y
IEdkb21YUGF0aEV2YWx1YXRvcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhFdmFsdWF0b3JD
bGFzcyBHZG9tWFBhdGhFdmFsdWF0b3JDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhF
eGNlcHRpb24gR2RvbVhQYXRoRXhjZXB0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV4
Y2VwdGlvbkNsYXNzIEdkb21YUGF0aEV4Y2VwdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21YUGF0aEV4cHJlc3Npb24gR2RvbVhQYXRoRXhwcmVzc2lvbjsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tWFBhdGhFeHByZXNzaW9uQ2xhc3MgR2RvbVhQYXRoRXhwcmVzc2lvbkNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21YUGF0aE5TUmVzb2x2ZXIgR2RvbVhQYXRoTlNSZXNvbHZlcjsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tWFBhdGhOU1Jlc29sdmVyQ2xhc3MgR2RvbVhQYXRoTlNSZXNvbHZlckNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aFJlc3VsdCBHZG9tWFBhdGhSZXN1bHQ7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoUmVzdWx0Q2xhc3MgR2RvbVhQYXRoUmVzdWx0Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhTTFRQcm9jZXNzb3IgR2RvbVhTTFRQcm9jZXNzb3I7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVhTTFRQcm9jZXNzb3JDbGFzcyBHZG9tWFNMVFByb2Nlc3NvckNs
YXNzOworCisKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9PQkpFQ1QgICAgICAgICAgICAoZ2RvbV9k
b21fb2JqZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9E
RSAgICAgICAgICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9BVFRSICAgICAgICAgICAgKGdkb21fYXR0cl9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQkFSX0lORk8gICAgICAgICAgICAoZ2RvbV9iYXJfaW5mb19nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfQ0FOVkFTX0dSQURJRU5UICAgICAgICAgICAgKGdkb21fY2Fu
dmFzX2dyYWRpZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DQU5WQVNfUEFUVEVS
TiAgICAgICAgICAgIChnZG9tX2NhbnZhc19wYXR0ZXJuX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9DQU5WQVNfUElYRUxfQVJSQVkgICAgICAgICAgICAoZ2RvbV9jYW52YXNfcGl4ZWxf
YXJyYXlfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19SRU5ERVJJTkdfQ09O
VEVYVDJEICAgICAgICAgICAgKGdkb21fY2FudmFzX3JlbmRlcmluZ19jb250ZXh0MmRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NEQVRBX1NFQ1RJT04gICAgICAgICAgICAoZ2RvbV9j
ZGF0YV9zZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DSEFSQUNURVJfREFU
QSAgICAgICAgICAgIChnZG9tX2NoYXJhY3Rlcl9kYXRhX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9DTElQQk9BUkQgICAgICAgICAgICAoZ2RvbV9jbGlwYm9hcmRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0NPTU1FTlQgICAgICAgICAgICAoZ2RvbV9jb21tZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DT05TT0xFICAgICAgICAgICAgKGdkb21fY29uc29s
ZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ09VTlRFUiAgICAgICAgICAgIChnZG9t
X2NvdW50ZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19DSEFSU0VUX1JVTEUg
ICAgICAgICAgICAoZ2RvbV9jc3NfY2hhcnNldF9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9DU1NfRk9OVF9GQUNFX1JVTEUgICAgICAgICAgICAoZ2RvbV9jc3NfZm9udF9mYWNl
X3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19JTVBPUlRfUlVMRSAgICAg
ICAgICAgIChnZG9tX2Nzc19pbXBvcnRfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfQ1NTX01FRElBX1JVTEUgICAgICAgICAgICAoZ2RvbV9jc3NfbWVkaWFfcnVsZV9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1BBR0VfUlVMRSAgICAgICAgICAgIChnZG9tX2Nz
c19wYWdlX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19QUklNSVRJVkVf
VkFMVUUgICAgICAgICAgICAoZ2RvbV9jc3NfcHJpbWl0aXZlX3ZhbHVlX2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9DU1NfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19ydWxlX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfUlVMRV9MSVNUICAgICAgICAgICAgKGdkb21f
Y3NzX3J1bGVfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1NUWUxFX0RF
Q0xBUkFUSU9OICAgICAgICAgICAgKGdkb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfU1RZTEVfUlVMRSAgICAgICAgICAgIChnZG9tX2Nz
c19zdHlsZV9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfU1RZTEVfU0hF
RVQgICAgICAgICAgICAoZ2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0NTU19WQUxVRSAgICAgICAgICAgIChnZG9tX2Nzc192YWx1ZV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZBTFVFX0xJU1QgICAgICAgICAgICAoZ2RvbV9jc3Nf
dmFsdWVfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZBUklBQkxFU19E
RUNMQVJBVElPTiAgICAgICAgICAgIChnZG9tX2Nzc192YXJpYWJsZXNfZGVjbGFyYXRpb25fZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19WQVJJQUJMRVNfUlVMRSAgICAgICAgICAg
IChnZG9tX2Nzc192YXJpYWJsZXNfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
REFUQUJBU0UgICAgICAgICAgICAoZ2RvbV9kYXRhYmFzZV9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfRE9DVU1FTlRfRlJBR01FTlQgICAgICAgICAgICAoZ2RvbV9kb2N1bWVudF9mcmFn
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9DVU1FTlQgICAgICAgICAgICAo
Z2RvbV9kb2N1bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9DVU1FTlRfVFlQ
RSAgICAgICAgICAgIChnZG9tX2RvY3VtZW50X3R5cGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0RPTV9BUFBMSUNBVElPTl9DQUNIRSAgICAgICAgICAgIChnZG9tX2RvbV9hcHBsaWNh
dGlvbl9jYWNoZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9NX0NPUkVfRVhDRVBU
SU9OICAgICAgICAgICAgKGdkb21fZG9tX2NvcmVfZXhjZXB0aW9uX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9ET01fSU1QTEVNRU5UQVRJT04gICAgICAgICAgICAoZ2RvbV9kb21faW1w
bGVtZW50YXRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9QQVJTRVIgICAg
ICAgICAgICAoZ2RvbV9kb21fcGFyc2VyX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9E
T01fU0VMRUNUSU9OICAgICAgICAgICAgKGdkb21fZG9tX3NlbGVjdGlvbl9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfRE9NX1dJTkRPVyAgICAgICAgICAgIChnZG9tX2RvbV93aW5kb3df
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9FTlRJVFkgICAgICAgICAgICAo
Z2RvbV9lbnRpdHlfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VOVElUWV9SRUZFUkVO
Q0UgICAgICAgICAgICAoZ2RvbV9lbnRpdHlfcmVmZXJlbmNlX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9FVkVOVF9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV9ldmVudF9leGNlcHRp
b25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UICAgICAgICAgICAgKGdkb21f
ZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0ZJTEUgICAgICAgICAgICAoZ2Rv
bV9maWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9GSUxFX0xJU1QgICAgICAgICAg
ICAoZ2RvbV9maWxlX2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hJU1RPUlkg
ICAgICAgICAgICAoZ2RvbV9oaXN0b3J5X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9I
VE1MX0FOQ0hPUl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9hbmNob3JfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9BUFBMRVRfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxfQVJFQV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9hcmVhX2VsZW1lbnRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQkFTRV9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF9iYXNlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfQkFTRV9GT05UX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2Jhc2VfZm9udF9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0JMT0NLUVVPVEVfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYmxvY2txdW90ZV9lbGVtZW50X2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0JPRFlfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxfYm9keV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MQlJfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxicl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX0JVVFRPTl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9idXR0
b25fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9DQU5WQVNfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfQ09MTEVDVElPTiAgICAgICAgICAgIChnZG9tX2h0bWxfY29s
bGVjdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9ESVJFQ1RPUllfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRElWX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X2Rpdl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MRF9MSVNUX0VM
RU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sZF9saXN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfRE9DVU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2RvY3Vt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0VMRU1FTlQgICAgICAgICAg
ICAoZ2RvbV9odG1sX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxf
RU1CRURfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GSUVMRF9TRVRfRUxFTUVOVCAgICAgICAgICAg
IChnZG9tX2h0bWxfZmllbGRfc2V0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxfRk9OVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9mb250X2VsZW1lbnRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRk9STV9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfRlJBTUVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GUkFNRV9TRVRfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfZnJhbWVfc2V0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfSEVBRF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9oZWFkX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSEVBRElOR19FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9oZWFkaW5nX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxIUl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGhyX2VsZW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSFRNTF9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9odG1sX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxJX0ZSQU1FX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1saV9mcmFtZV9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0lNQUdFX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0hUTUxfSU5QVVRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9JU19JTkRFWF9FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9pc19pbmRleF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9IVE1MX0xBQkVMX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2xh
YmVsX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTEVHRU5EX0VM
RU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9IVE1MTElfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxsaV9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0xJTktfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX01BUF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9tYXBfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9NQVJRVUVFX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9NRU5VX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX21lbnVfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9NRVRBX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9NT0RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbW9kX2VsZW1lbnRf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfT0JKRUNUX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9IVE1MT19MSVNUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sb19saXN0X2VsZW1l
bnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfT1BUX0dST1VQX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX29wdF9ncm91cF9lbGVtZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9IVE1MX09QVElPTl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9v
cHRpb25fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PUFRJT05T
X0NPTExFQ1RJT04gICAgICAgICAgICAoZ2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9QQVJBR1JBUEhfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0hUTUxfUEFSQU1fRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfcGFyYW1fZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9QUkVfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfcHJlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX0hUTUxfUVVPVEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfcXVvdGVfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9TQ1JJUFRfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0hUTUxfU0VMRUNUX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3NlbGVjdF9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1NUWUxFX0VMRU1FTlQg
ICAgICAgICAgICAoZ2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfVEFCTEVfQ0FQVElPTl9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF90YWJsZV9jYXB0aW9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hU
TUxfVEFCTEVfQ0VMTF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90YWJsZV9jZWxsX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfQ09MX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X3RhYmxlX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVf
Uk9XX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1RBQkxFX1NFQ1RJT05fRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9IVE1MX1RFWFRfQVJFQV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRt
bF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9U
SVRMRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF90aXRsZV9lbGVtZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MVV9MSVNUX0VMRU1FTlQgICAgICAgICAgICAoZ2Rv
bV9odG1sdV9saXN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0lNQUdF
X0RBVEEgICAgICAgICAgICAoZ2RvbV9pbWFnZV9kYXRhX2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9KQVZBX1NDUklQVF9DQUxMX0ZSQU1FICAgICAgICAgICAgKGdkb21famF2YV9zY3Jp
cHRfY2FsbF9mcmFtZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfS0VZQk9BUkRfRVZF
TlQgICAgICAgICAgICAoZ2RvbV9rZXlib2FyZF9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfTE9DQVRJT04gICAgICAgICAgICAoZ2RvbV9sb2NhdGlvbl9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfTUVESUFfTElTVCAgICAgICAgICAgIChnZG9tX21lZGlhX2xpc3Rf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01FU1NBR0VfRVZFTlQgICAgICAgICAgICAo
Z2RvbV9tZXNzYWdlX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NSU1FX1RZ
UEVfQVJSQVkgICAgICAgICAgICAoZ2RvbV9taW1lX3R5cGVfYXJyYXlfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX01JTUVfVFlQRSAgICAgICAgICAgIChnZG9tX21pbWVfdHlwZV9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTU9VU0VfRVZFTlQgICAgICAgICAgICAoZ2RvbV9t
b3VzZV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTVVUQVRJT05fRVZFTlQg
ICAgICAgICAgICAoZ2RvbV9tdXRhdGlvbl9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfTkFNRURfTk9ERV9NQVAgICAgICAgICAgICAoZ2RvbV9uYW1lZF9ub2RlX21hcF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTkFWSUdBVE9SICAgICAgICAgICAgKGdkb21fbmF2
aWdhdG9yX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT0RFX0ZJTFRFUiAgICAgICAg
ICAgIChnZG9tX25vZGVfZmlsdGVyX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT0RF
ICAgICAgICAgICAgKGdkb21fbm9kZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTk9E
RV9JVEVSQVRPUiAgICAgICAgICAgIChnZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX05PREVfTElTVCAgICAgICAgICAgIChnZG9tX25vZGVfbGlzdF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTk9UQVRJT04gICAgICAgICAgICAoZ2RvbV9ub3Rh
dGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfT1ZFUkZMT1dfRVZFTlQgICAgICAg
ICAgICAoZ2RvbV9vdmVyZmxvd19ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
UExVR0lOX0FSUkFZICAgICAgICAgICAgKGdkb21fcGx1Z2luX2FycmF5X2dldF90eXBlKCkpCisj
ZGVmaW5lIEdET01fVFlQRV9QTFVHSU4gICAgICAgICAgICAoZ2RvbV9wbHVnaW5fZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gICAgICAgICAgICAo
Z2RvbV9wcm9jZXNzaW5nX2luc3RydWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9QUk9HUkVTU19FVkVOVCAgICAgICAgICAgIChnZG9tX3Byb2dyZXNzX2V2ZW50X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9SQU5HRV9FWENFUFRJT04gICAgICAgICAgICAoZ2RvbV9y
YW5nZV9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1JBTkdFICAgICAg
ICAgICAgKGdkb21fcmFuZ2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1JFQ1QgICAg
ICAgICAgICAoZ2RvbV9yZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TQ1JFRU4g
ICAgICAgICAgICAoZ2RvbV9zY3JlZW5fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NR
TF9FUlJPUiAgICAgICAgICAgIChnZG9tX3NxbF9lcnJvcl9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfU1FMX1JFU1VMVF9TRVQgICAgICAgICAgICAoZ2RvbV9zcWxfcmVzdWx0X3NldF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1FMX1JFU1VMVF9TRVRfUk9XX0xJU1QgICAg
ICAgICAgICAoZ2RvbV9zcWxfcmVzdWx0X3NldF9yb3dfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfU1FMX1RSQU5TQUNUSU9OICAgICAgICAgICAgKGdkb21fc3FsX3RyYW5zYWN0
aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TVE9SQUdFX0VWRU5UICAgICAgICAg
ICAgKGdkb21fc3RvcmFnZV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfU1RP
UkFHRSAgICAgICAgICAgIChnZG9tX3N0b3JhZ2VfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX1NUWUxFX1NIRUVUICAgICAgICAgICAgKGdkb21fc3R5bGVfc2hlZXRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX1NUWUxFX1NIRUVUX0xJU1QgICAgICAgICAgICAoZ2RvbV9zdHls
ZV9zaGVldF9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9URVhUX0VWRU5UICAg
ICAgICAgICAgKGdkb21fdGV4dF9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
VEVYVCAgICAgICAgICAgIChnZG9tX3RleHRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X1RSRUVfV0FMS0VSICAgICAgICAgICAgKGdkb21fdHJlZV93YWxrZXJfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX1VJX0VWRU5UICAgICAgICAgICAgKGdkb21fdWlfZXZlbnRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1dFQl9LSVRfQU5JTUFUSU9OX0VWRU5UICAgICAgICAg
ICAgKGdkb21fd2ViX2tpdF9hbmltYXRpb25fZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX1dFQl9LSVRfQ1NTX1RSQU5TRk9STV9WQUxVRSAgICAgICAgICAgIChnZG9tX3dlYl9r
aXRfY3NzX3RyYW5zZm9ybV92YWx1ZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfV0VC
X0tJVF9UUkFOU0lUSU9OX0VWRU5UICAgICAgICAgICAgKGdkb21fd2ViX2tpdF90cmFuc2l0aW9u
X2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9XSEVFTF9FVkVOVCAgICAgICAg
ICAgIChnZG9tX3doZWVsX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YTUxf
SFRUUF9SRVFVRVNUX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9tX3htbF9odHRwX3JlcXVlc3Rf
ZXhjZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YTUxfSFRUUF9SRVFVRVNU
ICAgICAgICAgICAgKGdkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfWE1MX0hUVFBfUkVRVUVTVF9QUk9HUkVTU19FVkVOVCAgICAgICAgICAgIChnZG9t
X3htbF9odHRwX3JlcXVlc3RfcHJvZ3Jlc3NfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX1hNTF9IVFRQX1JFUVVFU1RfVVBMT0FEICAgICAgICAgICAgKGdkb21feG1sX2h0dHBf
cmVxdWVzdF91cGxvYWRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hNTF9TRVJJQUxJ
WkVSICAgICAgICAgICAgKGdkb21feG1sX3NlcmlhbGl6ZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX1hfUEFUSF9FVkFMVUFUT1IgICAgICAgICAgICAoZ2RvbV94X3BhdGhfZXZhbHVh
dG9yX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YX1BBVEhfRVhDRVBUSU9OICAgICAg
ICAgICAgKGdkb21feF9wYXRoX2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfWF9QQVRIX0VYUFJFU1NJT04gICAgICAgICAgICAoZ2RvbV94X3BhdGhfZXhwcmVzc2lvbl9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWF9QQVRIX05TX1JFU09MVkVSICAgICAgICAg
ICAgKGdkb21feF9wYXRoX25zX3Jlc29sdmVyX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9YX1BBVEhfUkVTVUxUICAgICAgICAgICAgKGdkb21feF9wYXRoX3Jlc3VsdF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfWFNMVF9QUk9DRVNTT1IgICAgICAgICAgICAoZ2RvbV94c2x0
X3Byb2Nlc3Nvcl9nZXRfdHlwZSgpKQorR19FTkRfREVDTFMKKworI2VuZGlmCkluZGV4OiBXZWJL
aXQvZ3RrL3dlYmtpdC9nZG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvZ2Rv
bS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvZ2RvbS5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE2MCBAQAorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRXZlbnRUYXJnZXROb2Rl
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01PYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUF0dHIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUJhckluZm8uaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUNhbnZhc0dyYWRpZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DYW52YXNQ
YXR0ZXJuLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DYW52YXNQaXhlbEFycmF5Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUNEQVRBU2VjdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2hhcmFjdGVy
RGF0YS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ2xpcGJvYXJkLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21Db21tZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Db25zb2xlLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21Db3VudGVyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NDaGFy
c2V0UnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTRm9udEZhY2VSdWxlLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21DU1NJbXBvcnRSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21D
U1NNZWRpYVJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1BhZ2VSdWxlLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21DU1NQcmltaXRpdmVWYWx1ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tQ1NTUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTUnVsZUxpc3QuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUNTU1N0eWxlUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTU3R5bGVTaGVldC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTVmFsdWUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUNTU1ZhbHVlTGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTVmFyaWFibGVzRGVjbGFy
YXRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbURhdGFiYXNlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1bWVu
dEZyYWdtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1bWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tRG9jdW1lbnRUeXBlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01BcHBs
aWNhdGlvbkNhY2hlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01Db3JlRXhjZXB0aW9uLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01JbXBsZW1lbnRhdGlvbi5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tRE9NUGFyc2VyLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21ET01TZWxlY3Rpb24u
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTVdpbmRvdy5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRW50aXR5Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21FbnRpdHlSZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUV2ZW50
RXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21FdmVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tRmlsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRmlsZUxpc3QuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhpc3RvcnkuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxBbmNo
b3JFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQXBwbGV0RWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEFyZWFFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21IVE1MQmFzZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCYXNlRm9u
dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJvZHlFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Vi
a2l0L0dkb21IVE1MQlJFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQnV0dG9u
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxDb2xsZWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21IVE1MRGlyZWN0b3J5RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTERpdkVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxETGlzdEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxEb2N1bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRN
TEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxFbWJlZEVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxGb250RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZvcm1F
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRnJhbWVFbGVtZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21IVE1MSGVhZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxIZWFkaW5n
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEhSRWxlbWVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tSFRNTEh0bWxFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MSUZyYW1lRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEltYWdlRWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTElucHV0RWxlbWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tSFRNTElzSW5kZXhFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MTGFiZWxFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTGVnZW5kRWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTExJRWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTExpbmtFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTWFw
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTWVudUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUhUTUxNZXRhRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE1vZEVsZW1l
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPYmplY3RFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21IVE1MT0xpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MT3B0R3JvdXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MT3B0aW9uRWxl
bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTFBhcmFtRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFBy
ZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxRdW90ZUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxTY3JpcHRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21IVE1MU2VsZWN0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFN0eWxl
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21IVE1MVGFibGVDb2xFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21IVE1MVGFibGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVSb3dF
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tSFRNTFRpdGxlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRN
TFVMaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSW1hZ2VEYXRhLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21LZXlib2FyZEV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Mb2NhdGlvbi5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tTWVkaWFMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21N
ZXNzYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1pbWVUeXBlQXJyYXkuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbU1pbWVUeXBlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Nb3Vz
ZUV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21NdXRhdGlvbkV2ZW50Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21OYW1lZE5vZGVNYXAuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5hdmln
YXRvci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTm9kZUZpbHRlci5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tTm9kZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTm9kZUl0ZXJhdG9yLmg+Cisj
aW5jbHVkZSA8d2Via2l0L0dkb21Ob2RlTGlzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTm90
YXRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU92ZXJmbG93RXZlbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbVBsdWdpbkFycmF5Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21QbHVnaW4u
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tUHJvZ3Jlc3NFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUmFu
Z2VFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVJhbmdlLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21SZWN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TY3JlZW4uaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbVNRTEVycm9yLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21TUUxSZXN1
bHRTZXQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbVNRTFRyYW5zYWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dk
b21TdG9yYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVN0b3JhZ2UuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbVN0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVN0eWxl
U2hlZXRMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21UZXh0RXZlbnQuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbVRleHQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVRyZWVXYWxrZXIuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbVVJRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVdl
YktpdEFuaW1hdGlvbkV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21XaGVlbEV2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWE1M
SHR0cFJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhNTFNlcmlhbGl6ZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbVhQYXRoRXZhbHVhdG9yLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YUGF0aEV4Y2VwdGlv
bi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFBhdGhFeHByZXNzaW9uLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21YUGF0aE5TUmVzb2x2ZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRo
UmVzdWx0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YU0xUUHJvY2Vzc29yLmg+CkluZGV4OiBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRldmVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGV2ZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRldmVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgV0VCS0lUX0VW
RU5UX0gKKyNkZWZpbmUgV0VCS0lUX0VWRU5UX0gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+
CisKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisK
KyNkZWZpbmUgV0VCS0lUX1RZUEVfRVZFTlQgICAgICAgICAgICAod2Via2l0X2V2ZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIFdFQktJVF9FVkVOVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVD
S19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9FVkVOVCwgV2ViS2l0RXZlbnQpKQor
I2RlZmluZSBXRUJLSVRfRVZFTlRfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
Q0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktpdEV2ZW50Q2xhc3MpKQorI2Rl
ZmluZSBXRUJLSVRfSVNfRVZFTlQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
VFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfRVZFTlQpKQorI2RlZmluZSBXRUJLSVRfSVNfRVZFTlRf
Q0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZ
UEVfRVZFTlQpKQorI2RlZmluZSBXRUJLSVRfRVZFTlRfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVf
SU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRVZFTlQsIFdlYktpdEV2ZW50
Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnRQcml2YXRlIFdlYktpdEV2ZW50
UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRFdmVudCB7CisgICAgR09iamVjdCBwYXJlbnRfaW5z
dGFuY2U7CisKKyAgICBXZWJLaXRFdmVudFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dl
YktpdEV2ZW50Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitX
RUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfZXZlbnRfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRf
QVBJIFdlYktpdEV2ZW50ICoKK3dlYmtpdF9ldmVudF9uZXcgICAgICAodm9pZCk7CisKKy8qV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfZXZlbnRfc2V0X3VyaSAgKFdlYktpdEV2ZW50ICpyZXF1ZXN0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqICAgICAgICAg
IHVyaSk7Ki8KKworR19FTkRfREVDTFMKKworI2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMzYzNDkp
CisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBA
CisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQ
cm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik6CisgICAgICAgICogd2Via2l0L0V2
ZW50TGlzdGVuZXJOb2RlLmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC9FdmVudExpc3RlbmVy
V2luZG93Lmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJl
cXVlc3QuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L2dkb20uaDogQWRkZWQuICBUaGlzIGZp
bGUgcHVsbHMgaW4gYWxsIG9mIHRoZSBnZG9tIGdsaWIgaGVhZGVycy4gIGl0J3MgdGhlcmUgZm9y
IHBlb3BsZSB3aG8gd2FudCB0byBiZSBsYXp5IGFuZCBub3QgaGF2ZSB0byAjaW5jbHVkZSAzMDAg
ZmlsZXMuCisgICAgICAgICogd2Via2l0L2dkb21kZWZpbmVzLmg6IEFkZGVkLiBUaGUgc3R5bGUg
b2YgdGhpcyBmaWxlIGlzIGNvcGllZCBmcm9tIHdlYmtpdGRlZmluZXMuaCBhbmQgaXMgdW5saWtl
bHkgdG8gc3Vydml2ZSBmb3IgbG9uZy4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZGVmaW5lcy5o
OgorICAgICAgICAqIHdlYmtpdC93ZWJraXRldmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoX1dl
YktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X2ZpbmFsaXplKToKKyAgICAgICAgKF9XZWJL
aXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9jbGFzc19pbml0KToKKyAgICAgICAgKF9XZWJL
aXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9pbml0KToKKyAgICAgICAgKF9XZWJLaXRFdmVu
dFByaXZhdGU6OndlYmtpdF9ldmVudF9uZXcpOgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0
ZTo6d2Via2l0X2V2ZW50X2dldF9ldmVudF90eXBlKToKKyAgICAgICAgKF9XZWJLaXRFdmVudFBy
aXZhdGU6OndlYmtpdF9ldmVudF9jYW5jZWxfYnViYmxlKToKKyAgICAgICAgKF9XZWJLaXRFdmVu
dFByaXZhdGU6OndlYmtpdF9ldmVudF9wcmV2ZW50X2RlZmF1bHQpOgorICAgICAgICAoX1dlYktp
dEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X3N0b3BfcHJvcGFnYXRpb24pOgorICAgICAgICAo
WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpjcmVhdGUpOgorICAgICAgICAoWE1MSHR0cFJl
cXVlc3RFdmVudExpc3RlbmVyOjpzZXRfdHlwZSk6CisgICAgICAgIChYTUxIdHRwUmVxdWVzdEV2
ZW50TGlzdGVuZXI6OlhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChYTUxI
dHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6On5YTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIpOgor
ICAgICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAg
ICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKE5vZGVFdmVudExpc3Rl
bmVyOjpzZXRfdHlwZSk6CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6Tm9kZUV2ZW50TGlz
dGVuZXIpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6On5Ob2RlRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoV2lu
ZG93RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6
OnNldF90eXBlKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6OldpbmRvd0V2ZW50TGlz
dGVuZXIpOgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6fldpbmRvd0V2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAg
ICAoYWRkX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIpOgorICAgICAgICAoYWRkX2V2
ZW50X2xpc3RlbmVyKToKKyAgICAgICAgKGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIpOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXRldmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwOiBhZGRlZCBicm93c2VyLWV2ZW50LCBzdXBwb3J0IGZvciBYTUxIdHRw
UmVxdWVzdCwgZ2V0dGluZyBET00gV2luZG93LCBET00gRG9jdW1lbnQsIGFuZCBXaW5kb3cgZXZl
bnQgbGlzdGVuZXIuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6CisKIDIwMDgt
MDktMTAgIEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE1hcmsgUm93ZS4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMzYxMjkpCisrKyBXZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogV2ViQ29yZSA6PSAkKHNy
Y2RpcikvV2ViQ29yZQogCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9K
QVZBU0NSSVBUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQog
U1ZHX0ZFQVRVUkVTIDo9CiBIVE1MX0ZFQVRVUkVTIDo9CiAKQEAgLTksNiArMTAsNyBAQAogV0VC
Q09SRV9DU1NfVkFMVUVfS0VZV09SRFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwK
IAktSSQoc3JjZGlyKS9XZWJDb3JlIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pz
IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZSBcCkBAIC0yNyw2ICsyOSw3IEBACiAJLUkk
KHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20gXAogCS1JJChzcmNkaXIp
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL2dpZiBcCkBAIC01Niw3ICs1OSw3IEBACiAJV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UubHV0LmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNF
dmVudFRhcmdldEJhc2UubHV0LmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5s
dXQuaCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFibGUu
Y3BwCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFibGUuY3Bw
IAogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0NTU0dyYW1t
YXIuY3BwIFwKQEAgLTM2NSw3ICszNjgsNTkxIEBACiAJRGVyaXZlZFNvdXJjZXMvVXNlckFnZW50
U3R5bGVTaGVldHMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvVXNlckFnZW50U3R5bGVTaGVldHNEYXRh
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9Y
TUxOYW1lcy5oCisJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUF0dHIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQXR0ci5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQmFySW5mby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21CYXJJbmZvLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DREFUQVNlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ0RBVEFTZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NDaGFyc2V0UnVsZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NDaGFyc2V0UnVsZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ1NTRm9udEZhY2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0Zv
bnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1wb3J0UnVsZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NJbXBvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21DU1NNZWRpYVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTTWVkaWFSdWxlLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUNTU1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVs
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQ1NTUnVsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlRGVj
bGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1N0eWxlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVl
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVNoZWV0LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1ZhbHVlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVz
RGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzRGVjbGFy
YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc1J1bGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ2FudmFzR3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzR3JhZGll
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRlcm4uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFz
UGl4ZWxBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQaXhlbEFycmF5Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DaGFyYWN0ZXJEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNoYXJh
Y3RlckRhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNsaXBib2FyZC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29tbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db25zb2xlLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21Db3VudGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvdW50ZXIu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRE9NQ29yZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9N
SW1wbGVtZW50YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NSW1wbGVtZW50YXRp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVBhcnNlci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21ET01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVNlbGVjdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01TZWxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbURPTVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01XaW5kb3cuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bURvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbURvY3VtZW50RnJhZ21lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbURvY3VtZW50VHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudFR5
cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUVudGl0eS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5UmVm
ZXJlbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eVJlZmVyZW5jZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZp
bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVMaXN0LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MQW5jaG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFwcGxldEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEJhc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxC
YXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
Qm9keUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJvZHlFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQnV0dG9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MQnV0dG9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TENhbnZhc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTENhbnZhc0VsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
RExpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxETGlzdEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRGl2RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGl2RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERvY3VtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxFbWJlZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9ybUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNl
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MSFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSHRt
bEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0bWxFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSUZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElt
YWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW1hZ2VFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJ
c0luZGV4RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSXNJbmRleEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTExJRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExh
YmVsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGFiZWxFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGVnZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTGVnZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TExpbmtFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMaW5rRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXJx
dWVlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFycXVlZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxN
ZXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWV0YUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNb2RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPTGlzdEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPYmplY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0
R3JvdXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRHcm91cEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25FbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxPcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9w
dGlvbnNDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYWdyYXBoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MUGFyYW1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUHJl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MUXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2NyaXB0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxT
dHlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFN0eWxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVD
b2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRhYmxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFRhYmxlUm93RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVSb3dF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUaXRsZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxVTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSGlz
dG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IaXN0b3J5LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21JbWFnZURhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSW1hZ2VEYXRhLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUtleWJvYXJkRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tS2V5Ym9hcmRFdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTG9jYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhTGlzdC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lc3Nh
Z2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNzYWdlRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVU
eXBlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1vdXNl
RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTW91c2VFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tTXV0YXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NdXRh
dGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21OYW1lZE5vZGVNYXAuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21O
YXZpZ2F0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmF2aWdhdG9yLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21Ob2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Tm9kZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTm9kZUxpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbU5vdGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vdGF0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21PdmVyZmxvd0V2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU92ZXJmbG93RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVBsdWdpbkFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbkFycmF5LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Qcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2dyZXNzRXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVJhbmdlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZUV4Y2VwdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21SYW5nZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
UmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21SZWN0LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TY3JlZW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU2NyZWVuLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxl
U2hlZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXRMaXN0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21U
ZXh0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVRleHRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0RXZlbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVRleHRNZXRyaWNzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVRleHRNZXRyaWNzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21UcmVlV2Fsa2VyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJ
RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVUlFdmVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
V2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1Ry
YW5zZm9ybVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdENTU1RyYW5zZm9y
bVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdoZWVs
RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Y
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBs
b2FkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21YTUxTZXJpYWxpemVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhNTFNlcmlhbGl6ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQcm9jZXNzb3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nlc3Nvci5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUF0dHIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUF0
dHIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21CYXJJbmZvLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tQ0RBVEFTZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DREFUQVNl
Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NDaGFyc2V0UnVsZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNTU0ltcG9ydFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0lt
cG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NNZWRpYVJ1bGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU01lZGlhUnVsZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1By
aW1pdGl2ZVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQcmltaXRp
dmVWYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1J1bGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21DU1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NT
UnVsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVSdWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21DU1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21DU1NTdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFsdWVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NW
YXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NT
VmFyaWFibGVzRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NW
YXJpYWJsZXNSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYXJpYWJs
ZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzR3JhZGllbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc0dyYWRpZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzUGF0dGVybi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUNhbnZhc1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZh
c1BpeGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNoYXJhY3RlckRh
dGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNoYXJhY3RlckRhdGEuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DbGlwYm9hcmQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNv
bW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvbW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21Db25zb2xlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ291bnRlci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbURPTUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9N
SW1wbGVtZW50YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01QYXJzZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbURPTVNlbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9N
V2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01XaW5kb3cuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1
bWVudEZyYWdtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudEZy
YWdtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnRUeXBlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Eb2N1bWVudFR5cGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRW50aXR5LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUVudGl0eVJlZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUV2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUV2ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21FdmVudEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUZpbGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUZpbGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21GaWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
RmlsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQW5jaG9yRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFuY2hvckVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQXBwbGV0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFwcGxldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MQXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxCUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCUkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTEJvZHlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJ1
dHRvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxCdXR0b25F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENhbnZhc0VsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxDYW52YXNFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTERMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTERMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxE
aXJlY3RvcnlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRGly
ZWN0b3J5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEaXZFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRGl2RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxEb2N1bWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVtYmVkRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZv
cm1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MSFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTEhlYWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVh
ZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVhZGluZ0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEh0bWxFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTElGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTEltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TEltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJbnB1dEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJbnB1dEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSXNJbmRleEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMSUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
TGFiZWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExlZ2VuZEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMZWdlbmRFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExpbmtFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MTWFycXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxN
YXJxdWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZW51RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1lbnVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MTW9kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
T0xpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT0xpc3RF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9iamVjdEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MT3B0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TFBhcmFtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFBhcmFt
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxQcmVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
U2VsZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFNlbGVj
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhUTUxUYWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21I
VE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
VGFibGVSb3dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFRleHRBcmVh
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUaXRsZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSGlzdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSGlz
dG9yeS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUltYWdlRGF0YS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSW1hZ2VEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUtleWJvYXJkRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUtleWJvYXJk
RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Mb2NhdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21NZWRpYUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lZGlh
TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lc3NhZ2VFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVzc2FnZUV2ZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bU1pbWVUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWltZVR5cGVBcnJheS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NdXRh
dGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NdXRhdGlvbkV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTmFtZWROb2RlTWFwLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21OYXZpZ2F0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5h
dmlnYXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21Ob2RlRmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlRmlsdGVy
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21Ob2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9k
ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob3RhdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm90YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21PdmVyZmxvd0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21P
dmVyZmxvd0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1Z2luLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21QbHVnaW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
UGx1Z2luQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2Nlc3NpbmdJbnN0
cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2dyZXNzRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVByb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tUmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SYW5nZUV4Y2VwdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21SZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU2NyZWVuLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21TdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHls
ZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3R5bGVTaGVldExpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tVGV4dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRleHRFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tVGV4dE1ldHJpY3MuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVRleHRNZXRyaWNzLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVHJlZVdhbGtlci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVHJlZVdhbGtlci5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRBbmltYXRp
b25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRUcmFuc2l0aW9uRXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdlYktpdFRyYW5zaXRpb25FdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdoZWVsRXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
WE1MSHR0cFJlcXVlc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTEh0
dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxIdHRw
UmVxdWVzdFVwbG9hZC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTFNlcmlhbGl6
ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTFNlcmlhbGl6ZXIuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21YU0xUUHJvY2Vzc29yLmggIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAKIAogSURMX0JJTkRJTkdTICs9
ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgXApAQCAtNzExLDYgKzEyOTgsMTYgQEAKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJpbmdT
b3VyY2VQcm92aWRlci5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3Bw
IFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2Rv
bURPTU9iamVjdC5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmpl
Y3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaCBc
CisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwIFwKKwlXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCBcCiAJV2ViQ29yZS9icmlkZ2Uv
TlBfanNvYmplY3QuY3BwIFwKIAlXZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5oIFwKIAlXZWJD
b3JlL2JyaWRnZS9jL2NfY2xhc3MuY3BwIFwKQEAgLTIwNDYsOSArMjY0MywxMiBAQAogIyAtLS0t
CiBpZiBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TCiBGRUFUVVJFX0RFRklORVNfSkFW
QVNDUklQVCArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKK0ZFQVRVUkVfREVG
SU5FU19HRE9NICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQogCiB3ZWJjb3Jl
X2J1aWx0X3NvdXJjZXMgKz0gXAotCURlcml2ZWRTb3VyY2VzL0pTRE9NQXBwbGljYXRpb25DYWNo
ZS5jcHAKKwlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tRE9NQXBwbGljYXRpb25DYWNoZS5jcHAKIAogSURMX0JJTkRJTkdTICs9IFwK
IAlXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbApAQCAtMjA5
MCw2ICsyNjkwLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX0RBVEFCQVNFCiBGRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfREFUQUJBU0U9MQorRkVBVFVSRV9ERUZJTkVTX0dET00g
Kz0gRU5BQkxFX0RBVEFCQVNFPTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJp
dmVkU291cmNlcy9KU0RhdGFiYXNlLmNwcCBcCkBAIC0yMTAxLDcgKzI3MDIsMjcgQEAKIAlEZXJp
dmVkU291cmNlcy9KU1NRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9K
U1NRTFJlc3VsdFNldFJvd0xpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFuc2FjdGlv
bi5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaAorCURlcml2ZWRTb3Vy
Y2VzL0pTU1FMVHJhbnNhY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFiYXNlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFiYXNlLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TUUxFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxFcnJvci5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNR
TFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
UUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURhdGFiYXNlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVNRTEVycm9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFJlc3VsdFNldC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21TUUxUcmFuc2FjdGlvbi5oCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9y
YWdlL0RhdGFiYXNlLmlkbCBcCkBAIC0yMTc1LDEyICsyNzk2LDIxIEBACiAjIC0tLS0KIGlmIEVO
QUJMRV9ET01fU1RPUkFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RP
TV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9ET01fU1RPUkFHRT0x
CiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdl
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmggXAogCURlcml2ZWRTb3VyY2VzL0pT
U3RvcmFnZUV2ZW50LmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlRXZlbnQuaAorCURl
cml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9y
YWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVN0b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdG9yYWdl
RXZlbnQuaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmlk
bCBcCkBAIC0yMjQwLDYgKzI4NzAsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfVklERU8KIEZFQVRV
UkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9WSURFTz0xCitGRUFUVVJFX0RFRklORVNf
R0RPTSArPSBFTkFCTEVfVklERU89MQogCiBIVE1MX0ZFQVRVUkVTICs9IEVOQUJMRV9WSURFTz0x
CiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1ZJREVPPTEKQEAgLTIyNjIsNyArMjg5Mywz
NSBAQAogCURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L0pTVGltZVJhbmdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5jcHAgXAot
CURlcml2ZWRTb3VyY2VzL0pTVm9pZENhbGxiYWNrLmgKKwlEZXJpdmVkU291cmNlcy9KU1ZvaWRD
YWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEF1ZGlvRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQXVkaW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZWRp
YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTb3VyY2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxW
aWRlb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGlt
ZVJhbmdlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21UaW1lUmFuZ2VzLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVm9p
ZENhbGxiYWNrLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEF1ZGlvRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZWRpYUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTFNvdXJjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
VmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVkaWFFcnJvci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTWVkaWFFcnJvci5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbVRpbWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Wb2lkQ2Fs
bGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVZvaWRDYWxsYmFjay5oCiAK
IElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRsIFwK
QEAgLTIzMDYsNiArMjk2NSw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9YUEFUSAogRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hQQVRIPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9N
ICs9IEVOQUJMRV9YUEFUSD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFBBVEg9
MQogCkBAIC0yMzIxLDcgKzI5ODEsMjcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVzdWx0
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0aFJlc3VsdC5oIFwKIAlEZXJpdmVkU291cmNl
cy9YUGF0aEdyYW1tYXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaAorCURl
cml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhF
dmFsdWF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4cHJlc3Np
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WFBhdGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3VsdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aFJlc3VsdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXhj
ZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV4Y2VwdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXhwcmVzc2lvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFeHByZXNzaW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Y
UGF0aFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhSZXN1bHQu
aAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbCBc
CkBAIC0yMzg2LDYgKzMwNjYsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfWFNMVAogRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hTTFQ9MQorRkVBVFVSRV9ERUZJTkVTX0dET00g
Kz0gRU5BQkxFX1hTTFQ9MQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1hTTFQ9MQog
CkBAIC0yNDA5LDYgKzMwOTAsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfU1ZHCiBGRUFUVVJFX0RF
RklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSAr
PSBFTkFCTEVfU1ZHPTEgLSBiaWcgVE9ETyEgOikKIAogV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFN
RVMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbiAKIFdFQkNPUkVfQ1NT
X1ZBTFVFX0tFWVdPUkRTICs9ICQoV2ViQ29yZSkvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4K
QEAgLTI2ODYsNiArMzM2OCwyNzMgQEAKIAlEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwCiAKK25vdC15ZXQ6CisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbHRHbHlwaEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmdsZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdBbmltYXRlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkQW5nbGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5p
bWF0ZWRCb29sZWFuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkQm9vbGVh
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEVudW1lcmF0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdBbmltYXRlZEludGVnZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZExl
bmd0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZExlbmd0aC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHQW5pbWF0ZWROdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRO
dW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTnVtYmVyTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdBbmltYXRlZFJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkU3RyaW5n
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkU3RyaW5nLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1h
dGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NpcmNsZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ2lyY2xlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0NsaXBQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29sb3IuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0N1
cnNvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZmluaXRpb25TcmNFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0RlZmluaXRpb25TcmNFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEZWZzRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdEZWZzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVzY0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVzY0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0RvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0RvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Vs
ZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50SW5zdGFu
Y2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0VsbGlwc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Vs
bGlwc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFeGNlcHRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGRUJsZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUJsZW5k
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRkVDb21wb3NpdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRURp
c3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaXNw
bGFjZW1lbnRNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRURpc3RhbnRM
aWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaXN0YW50TGlnaHRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZsb29kRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHRkVGdW5jQUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVG
dW5jQUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0JFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY0JFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGRUZ1bmNHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jUkVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGdW5jUkVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFSW1h
Z2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU1lcmdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVPZmZz
ZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRVBvaW50TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
RVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFVGlsZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVUaWxlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdGaWx0ZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZpbHRlckVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0ZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdG
b250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZU5hbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250
RmFjZVNyY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlVXJpRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdHRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
R3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dyYWRpZW50RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0xlbmd0aC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWFy
a2VyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXJrZXJFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdNYXNrRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWF0cml4
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHTWV0YWRhdGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01l
dGFkYXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWlzc2luZ0dseXBoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNaXNzaW5nR2x5cGhFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXJMaXN0LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR051bWJlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhaW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhaW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZy5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdB
cmNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdBcmNSZWwuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0FyY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRo
U2VnQ2xvc2VQYXRoLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1
YmljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNB
YnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhB
YnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21v
b3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvQWJz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9BYnMuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdQYXRoU2VnTGluZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2Vn
TGluZXRvVmVydGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRv
VmVydGljYWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1Zl
cnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRo
U2VnTW92ZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTW92ZXRvUmVs
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1BhdHRlcm5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhdHRlcm5FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUG9pbnRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvaW50TGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWdvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHUG9seWdvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2x5bGluZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZWN0LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdSZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVuZGVyaW5nSW50ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JlbmRlcmluZ0ludGVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdTVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTY3JpcHRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1NldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU2V0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RvcEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RvcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR1N0cmluZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3RyaW5nTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1N0eWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3dp
dGNoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTd2l0Y2hFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTeW1ib2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR1N5bWJvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RS
ZWZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RSZWZFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHVFNwYW5FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0Q29u
dGVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdUZXh0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
VGV4dFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRQYXRoRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU1ZHVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUcmFuc2Zv
cm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVHJhbnNmb3JtLmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VuaXRUeXBlcy5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdVbml0VHlwZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1VzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVXNlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVmlld0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1pv
b21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdab29tRXZlbnQuaCAKKwogSURM
X0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsIFwKIAlX
ZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5pZGwgXApAQCAtMzI2NSwzNiArNDIxNCw0MiBAQAogIyBT
VkcgRmVhdHVyZXMKIGlmIEVOQUJMRV9TVkdfVVNFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCArPSBFTkFCTEVfU1ZHX1VTRT0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NW
R19VU0U9MSAjIGJpZyBUT0RPIQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfVVNFPTEKIHdl
YmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX1VTRT0xCiBlbmRpZgogCiBpZiBFTkFCTEVf
U1ZHX0ZPUkVJR05fT0JKRUNUCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
U1ZHX0ZPUkVJR05fT0JKRUNUPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZH
X0ZPUkVJR05fT0JKRUNUPTEgCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT1JFSUdOX09C
SkVDVD0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0x
CiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZPTlRTCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVf
U1ZHX0ZPTlRTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKIHdlYmNvcmVf
Y3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZPTlRTPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdf
RklMVEVSUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GSUxURVJT
PTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogU1ZHX0ZF
QVRVUkVTICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX1NWR19GSUxURVJTPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQVNfSU1BR0UKIEZFQVRV
UkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQorI0ZFQVRVUkVf
REVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQogU1ZHX0ZFQVRVUkVTICs9IEVO
QUJMRV9TVkdfQVNfSU1BR0U9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfQVNf
SU1BR0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19BTklNQVRJT04KIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKKyNGRUFUVVJFX0RFRklORVNf
R0RPTSArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NW
R19BTklNQVRJT049MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfQU5JTUFUSU9O
PTEKIGVuZGlmCkBAIC0zMzAyLDYgKzQyNTcsNyBAQAogIyBTVkcgdGFnIGFuZCBhdHRyaWJ1dGUg
bmFtZXMgKG5lZWQgdG8gcGFzcyBhbiBleHRyYSBmbGFnIGlmIHN2ZyBleHBlcmltZW50YWwgZmVh
dHVyZXMgYXJlIGVuYWJsZWQpCiBEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHA6IERlcml2ZWRT
b3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDsKIERlcml2ZWRTb3VyY2VzL0pTU1ZHRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3Bw
CitEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZl
ZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwogRGVyaXZlZFNv
dXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBs
ICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KQEAg
LTM0MjMsNiArNDM3OSwxNSBAQAogICAgICQoV2ViQ29yZSkveG1sIFwKICAgICAkKFdlYkNvcmUp
L3BsdWdpbnMKIAorRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb20lLmg6IERlcml2ZWRTb3VyY2Vz
L0dkb20lLmg7CisKK0Rlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tJS5jcHA6IERlcml2ZWRTb3Vy
Y2VzL0dkb20lLmNwcDsKKworRGVyaXZlZFNvdXJjZXMvR2RvbSUuaDogRGVyaXZlZFNvdXJjZXMv
R2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9HZG9tJS5jcHA6ICUuaWRsICQoU0NSSVBUU19C
SU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0
LnBtCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2Jp
bmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1pbmNsdWRlICQoV2ViQ29yZSkv
ZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUpL2h0bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkvY3NzIC0t
aW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2UgLS1pbmNsdWRlICQoV2ViQ29yZSkveG1sIC0taW5jbHVk
ZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgLS1kZWZpbmVzICIk
KEZFQVRVUkVfREVGSU5FU19HRE9NKSIgLS1nZW5lcmF0b3IgR09iamVjdCAkPAorCiBEZXJpdmVk
U291cmNlcy9KUyUuaDogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDsKIAogRGVyaXZlZFNvdXJjZXMv
SlMlLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zNDM4LDYgKzQ0MDMsNyBAQAogCVdlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzUGFyc2VyLnBtIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0gXAorCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yR09iamVjdC5wbSBcCiAJV2ViQ29yZS9jc3MvaHRtbDQuY3NzIFwKIAlXZWJDb3JlL2Nzcy9x
dWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nzcy92aWV3LXNvdXJjZS5jc3MgXApAQCAtMzQ3NSwzICs0
NDQxLDUgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQuaCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1dC5oCiAKKworCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRh
cmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAi
R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNs
dWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9w
dGlvbmFsICovCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgIkdkb21FdmVu
dC5oIgorZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKwor
c3RhdGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCisKK1dl
YkNvcmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZl
bnRUYXJnZXROb2RlICpyZXF1ZXN0KQoreworICAgIEdET01FdmVudFRhcmdldE5vZGUgKnJlczsK
KyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NRXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9kb21fb2Jq
ZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihyZXMtPmltcGwoKSk7Cit9CisKKworZXh0
ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSwgZ2RvbV9ldmVu
dF90YXJnZXRfbm9kZSwgR0RPTV9UWVBFX05PREUpOworCisvKgorc3RydWN0IF9HZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICpp
dGVtOworfTsgIAorKi8KKworI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklW
QVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0VW
RU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkpCisKKy8qCit2b2lk
CitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUg
KnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0pCit7CisgICAgR2RvbUV2
ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9Q
UklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPml0ZW0gPSBpdGVtOworfQorKi8KKworc3RhdGlj
IHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7
CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0ID0gR0RPTV9FVkVOVF9UQVJHRVRf
Tk9ERShvYmplY3QpOworICAgIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0gcmVx
dWVzdC0+cHJpdjsqLworICAgIAorICAgIEdfT0JKRUNUX0NMQVNTKGdkb21fZXZlbnRfdGFyZ2V0
X25vZGVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQg
Z2RvbV9ldmVudF90YXJnZXRfbm9kZV9jbGFzc19pbml0KEdkb21FdmVudFRhcmdldE5vZGVDbGFz
cyogcmVxdWVzdENsYXNzKQoreworICAgIGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBn
X3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhy
ZXF1ZXN0Q2xhc3MpLAorICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf
U0lHTkFMX0RFVEFJTEVEICAgICksCisgICAgICAgIDAsCisgICAgICAgIE5VTEwsCisgICAgICAg
IE5VTEwsCisgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAg
ICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9P
TEVBTik7CisKKyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdk
b21fZXZlbnRfdGFyZ2V0X25vZGVfZmluYWxpemU7CisKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRf
cHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkp
OyovCit9CisKK3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdChHZG9tRXZl
bnRUYXJnZXROb2RlKiByZXF1ZXN0KQoreworICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZh
dGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOwor
ICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OyovCit9ICAgCisKK30gLyogZXh0ZXJuICJDIiAqLwor
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRh
cmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRl
R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xA
bGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNv
bT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9f
R0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fUFJJVl8KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXRO
b2RlX0hfX19QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUdkb21Ob2RlLmgiCitjbGFzcyBXZWJDb3JlOjpOb2RlOworCit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOworCitXRUJLSVRfQVBJIFdlYkNv
cmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZlbnRU
YXJnZXROb2RlICpyZXF1ZXN0KTsKKworI2VuZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9r
ZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5j
bHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAi
QXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAi
R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworY2xhc3MgR1N0cmluZ0NvbnZlcnQg
eworICAgIHB1YmxpYzoKKyAgICBjb25zdCBnY2hhciAqbV9zdHI7CisgICAgR1N0cmluZ0NvbnZl
cnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy51dGY4KCku
ZGF0YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25z
dCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorfTsK
KworZXh0ZXJuICJDIiB7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZl
cnQoc3RyKS5tX3N0cikKKwordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50
X3RhcmdldF9ub2RlIChHZG9tRXZlbnRUYXJnZXROb2RlICp0aGl6KQoreworICAgIGdfcmV0dXJu
X2lmX2ZhaWwgKHRoaXopOworICAgIC8qCisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICog
aXRlbSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgV2Vi
Q29yZTo6U3RyaW5nIF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnID0gV2ViQ29yZTo6U3Ry
aW5nKGV2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RXZlbnRUYXJn
ZXROb2RlKF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICAqLworfQorCit9IC8q
IGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9t
RE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0
ZUdkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiTm9kZS5o
IgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKworZXh0ZXJuICJDIiB7CisKK0dfREVG
SU5FX1RZUEUoR2RvbURPTU9iamVjdCwgZ2RvbV9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKTsK
Kworc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSB7CisgICAgIEdET01PYmplY3QgKm1fbm9k
ZTsKK307ICAKKworI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUob2JqKSAoR19U
WVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2Rv
bURPTU9iamVjdFByaXZhdGUpKQorCit2b2lkCitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUo
R2RvbURPTU9iamVjdCAqcmVxdWVzdCwgR0RPTU9iamVjdCAqIGl0ZW0pCit7CisgICAgR2RvbURP
TU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVz
dCk7CisgICAgcHJpdi0+bV9ub2RlID0gaXRlbTsKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgp
LT5yZWYoKTsqLworfQorCitHRE9NT2JqZWN0ICoKK2dkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0
ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0KQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBw
cml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJldHVybiBw
cml2LT5tX25vZGU7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9maW5hbGl6ZShH
T2JqZWN0KiBvYmplY3QpCit7CisgICAgR2RvbURPTU9iamVjdCogcmVxdWVzdCA9IEdET01fRE9N
X09CSkVDVChvYmplY3QpOworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gcmVxdWVz
dC0+cHJpdjsKKyAgICAKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5kZXJlZigpOyovCisg
ICAgZGVsZXRlIHByaXYtPm1fbm9kZTsgLyogY2FsbHMgbV9pbXBsLT5kZXJlZigpICovCisKKyAg
ICBHX09CSkVDVF9DTEFTUyhnZG9tX2RvbV9vYmplY3RfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUo
b2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQoR2Rv
bURPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVx
dWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2RvbV9vYmplY3RfZmluYWxpemU7CisgICAgCisg
ICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21ET01P
YmplY3RQcml2YXRlKSk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9pbml0KEdk
b21ET01PYmplY3QqIHJlcXVlc3QpCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYg
PSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJp
diA9IHByaXY7Cit9ICAgCisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisg
Ki8KKworI2lmbmRlZiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fCisjZGVmaW5lIF9fR2RvbUV2
ZW50VGFyZ2V0Tm9kZV9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOworCisj
ZGVmaW5lIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSAgICAgICAgICAgIChnZG9tX2V2ZW50
X3RhcmdldF9ub2RlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREUo
b2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9U
WVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlKSkKKyNkZWZpbmUgR0RP
TV9FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19D
QVNUKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdl
dE5vZGVDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05PREUob2JqKSAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RB
UkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9ERV9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRVZFTlRfVEFS
R0VUX05PREUpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9DTEFTUyhvYmop
ICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9FVkVOVF9UQVJH
RVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21FdmVudFRhcmdldE5vZGVQcml2YXRlIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlOworCisj
aW5jbHVkZSAiR2RvbU5vZGUuaCIKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAg
ICBHZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJp
dmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAg
ICBHZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dk
b21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQK
K2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50
VGFyZ2V0Tm9kZSAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfX0dkb21FdmVu
dFRhcmdldE5vZGVfSF9fICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9N
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9i
amVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9i
amVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiR2Rv
bURPTU9iamVjdC5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisKK2V4dGVybiAiQyIgewor
Cit2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5pdF9kb21fb2JqZWN0IChHZG9tRE9NT2JqZWN0ICp0
aGl6KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworCS8qCisgICAgV2ViQ29yZTo6
RE9NT2JqZWN0ICogaXRlbSA9IGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZSh0aGl6KTsKKyAg
ICBXZWJDb3JlOjpTdHJpbmcgX2dfZG9tX29iamVjdF90eXBlX2FyZyA9IFdlYkNvcmU6OlN0cmlu
Zyhkb21fb2JqZWN0X3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RE9NT2JqZWN0KF9nX2RvbV9v
YmplY3RfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RPTURPTU9iamVjdF9IX19fUFJJVl8KKyNk
ZWZpbmUgX19HRE9NRE9NT2JqZWN0X0hfX19QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0Lmgi
CisjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorR19CRUdJTl9ERUNMUworCitjbGFzcyBHRE9N
T2JqZWN0OworV0VCS0lUX0FQSSBHRE9NT2JqZWN0KgorZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2
YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9t
X29iamVjdF9zZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0KiBp
dGVtKTsKKworR19FTkRfREVDTFMKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlz
aW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4MiBAQAorLyoKKyAqIFRISVMgRklM
RSBJUyBERVJJVkVEIEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFURUQgRklMRS4KKyAqICBr
ZWVwaW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcK
KyAqICBhIG1ha2VfbmFtZXMucGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUK
KyAqICBnZW5lcmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmgg
YXMgaW5wdXQuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24g
TGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJHZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdET01I
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxBbmNob3JFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQmxv
Y2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJvZHlFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJ1dHRvbkVsZW1l
bnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlQ29sRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRGl2RWxlbWVudC5oIgor
I2luY2x1ZGUgIkdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxFbWJl
ZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEZvcm1FbGVtZW50
LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRN
TEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxIUkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSXNJ
bmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTElFbGVtZW50
LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1M
TWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJHZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxNZXRhRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFBh
cmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFBhcmFtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MUXVvdGVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5o
IgorI2luY2x1ZGUgIkdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhU
TUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgor
I2luY2x1ZGUgIkdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQXBw
bGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEFyZWFFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQlJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTW9kRWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRmllbGRTZXRF
bGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEhlYWRpbmdF
bGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSGVhZEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTElG
cmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJbWFnZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTExl
Z2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxMSUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE1lbnVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1M
T3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0aW9uRWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MU2NyaXB0RWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MVGFi
bGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRleHRBcmVhRWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRpdGxlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CisKKyNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcHBsZXRF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJh
c2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGlyZWN0b3J5RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERMaXN0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRmllbGRTZXRF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSFJFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxM
YWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9MaXN0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0
aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFBhcmFtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU3R5bGVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVUxp
c3RFbGVtZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK3R5cGVkZWYgR0RPTU5vZGUqICgqQ3Jl
YXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24pKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsK
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBbmNob3JXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFuY2hvckVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTEFuY2hvckVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQXBwbGV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxBcHBsZXRFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxBcHBsZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFyZWFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFyZWFFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVCYXNlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNlRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQmFzZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlQmFzZUZvbnRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VGb250RWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQmFzZUZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJsb2NrcXVvdGVFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxCbG9ja3F1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVCb2R5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCb2R5RWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MQm9keUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlQlJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQlJF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJ1
dHRvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MQnV0dG9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQnV0dG9uRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVDYW52
YXNXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTENhbnZhc0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVD
YXB0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAg
IHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxU
YWJsZUNhcHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNvbEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTFRhYmxlQ29sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVNb2RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1vZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TE1vZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlRGlyZWN0b3J5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAg
IAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXJlY3RvcnlFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxEaXJlY3RvcnlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZURpdldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRGl2RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGl2
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVE
TGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MRExpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxETGlzdEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRW1iZWRX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTEVtYmVkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZpZWxkU2V0V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxGaWVsZFNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZpZWxkU2V0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb250V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxGb250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9udEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRm9ybVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MRm9ybUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFt
ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGcmFtZVNldFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRnJhbWVT
ZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZVNldEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZGluZ1dyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVh
ZGluZ0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRpbmdFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhlYWRXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhlYWRF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSFJFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxIUkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlSHRtbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSHRtbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TEh0bWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZUlGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MSUZyYW1lRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSUZy
YW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVJbWFnZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MSW1hZ2VFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbWFnZUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSW5w
dXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTElucHV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlzSW5kZXhX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTElzSW5kZXhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJc0luZGV4RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMYWJlbFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MTGFiZWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGVnZW5kV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxMZWdlbmRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMZWdlbmRFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxJV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxMSUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExJRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMaW5rV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxMaW5rRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlTWFwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNYXBFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxNYXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcnF1ZWVFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxNYXJxdWVlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVNZW51V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNZW51RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
TWVudUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlTWV0YVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MTWV0YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9iamVj
dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MT2JqZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPTGlzdFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MT0xpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPTGlzdEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT3B0R3JvdXBXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTE9wdEdyb3VwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9wdGlvbldy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MT3B0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQYXJhZ3JhcGhX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFncmFwaEVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUGFy
YW1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTFBhcmFtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYW1FbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVByZVdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MUHJlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUHJlRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVRdW90ZVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
UXVvdGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxRdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2NyaXB0V3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxTY3Jp
cHRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTY3JpcHRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNlbGVjdFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU2VsZWN0
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTdHlsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU3R5bGVFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxTdHlsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MVGFibGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVTZWN0aW9u
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGV4dEFyZWFXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTFRleHRBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRpdGxlV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxUaXRsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRpdGxlRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVJvd1dyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MVGFibGVSb3dFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVJvd0VsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVUxpc3RXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTFVMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVUxpc3RFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgc3RhdGljIEhhc2hNYXA8V2ViQ29y
ZTo6QXRvbWljU3RyaW5nSW1wbCosIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uPiBt
YXA7CisgICAgaWYgKG1hcC5pc0VtcHR5KCkpIHsKKyAgICAgICBtYXAuc2V0KGFUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVBbmNob3JXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFwcGxl
dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFwcGxldFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoYXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFyZWFXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGJhc2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChiYXNlZm9udFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUJhc2VGb250V3JhcHBlcik7CisgICAgICAgbWFwLnNldChibG9ja3F1b3RlVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYm9k
eVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJvZHlXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGJyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQlJXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJ1dHRvbldyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoY2FudmFzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQ2Fu
dmFzV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYXB0aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
ZGVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChkaXJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGRpdlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpdldyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoZGxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVETGlz
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZW1iZWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVFbWJlZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZmllbGRzZXRUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVGaWVsZFNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZm9udFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGZvcm1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb3JtV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1lV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChmcmFtZXNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZy
YW1lU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChoMVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhlYWRUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVIZWFkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoclRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhSV3JhcHBlcik7CisgICAgICAgbWFwLnNldChodG1sVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSHRtbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aWZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSUZyYW1lV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChpbWdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoaW5wdXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbnB1
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUlzSW5kZXhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxhYmVsVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlTGFiZWxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxlZ2VuZFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxlZ2VuZFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQobGlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMSVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQobGlua1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxpbmtXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KG1hcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1hcFdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQobWFycXVlZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1h
cnF1ZWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1lbnVUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVNZW51V3JhcHBlcik7CisgICAgICAgbWFwLnNldChtZXRhVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlTWV0YVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob2JqZWN0VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT2JqZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChv
bFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9MaXN0V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChvcHRncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9wdEdyb3VwV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVP
cHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVQYXJhZ3JhcGhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBhcmFtVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlUGFyYW1XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHByZVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVF1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChzY3JpcHRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTY3JpcHRXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KHNlbGVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoc3R5bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVTdHlsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGFibGVUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVUYWJsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGJvZHlUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHRkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldCh0ZXh0YXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRleHRBcmVh
V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aXRsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVRpdGxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0clRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVRhYmxlUm93V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh1bFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVVMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xncm91
cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChoMlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGgzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoaDRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVI
ZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg2VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1hZ2VUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aW5zVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChrZXlnZW5UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGxpc3RpbmdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRmb290VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGhlYWRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHhtcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOwor
ICAgIH0KKyAgICAvL3ByaW50ZigiY3JlYXRlR0RPTUhUTUxXcmFwcGVyOiAlc1xuIiwgZWxlbWVu
dC0+bG9jYWxOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgQ3JlYXRlSFRNTEVs
ZW1lbnRXcmFwcGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0gbWFwLmdldChlbGVt
ZW50LT5sb2NhbE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24p
CisgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVudCk7CisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTEVsZW1lbnQoZWxlbWVudC5nZXQoKSk7Cit9CisKK30KKwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJn
ZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUlu
dEdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2lmbmRlZiBf
X0dET01FdmVudFRhcmdldE5vZGVfSF9fX0lOVF8KKyNkZWZpbmUgX19HRE9NRXZlbnRUYXJnZXRO
b2RlX0hfX19JTlRfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbU5vZGUuaCIKK0dfQkVHSU5fREVDTFMKKworY2xhc3MgR0RPTUV2ZW50VGFyZ2V0Tm9k
ZSA6IHB1YmxpYyBHRE9NTm9kZSB7CisKK3B1YmxpYzoKKyAgICBHRE9NRXZlbnRUYXJnZXROb2Rl
KFBhc3NSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gaW1wbCkgOiBHRE9NTm9kZShpbXBsKSB7fQorICAg
IGludCBnZXRfZ29ial90eXBlKCkgeyByZXR1cm4gR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RF
OyB9Cit9OworCisKK0dfRU5EX0RFQ0xTCisjZW5kaWYKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MDEgQEAKKy8qCisgKiAg
Q29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2Vpbmln
IDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENh
c3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKy8vIGdjYyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUgSGFzaE1hcCBwb2lu
dGVyIHNwZWNpYWxpemF0aW9uIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQgX19HTlVDX18gJiYg
IWRlZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNkZWZpbmUgSEFTSF9N
QVBfUFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUg
Ikdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIgorI2lu
Y2x1ZGUgIkdET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiR0RPTUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuaCIKKworI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJHZG9tQ1NT
U3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTU3R5bGVTaGVldC5oIgor
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgorI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkhU
TUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJHZG9t
Tm9kZS5oIgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21O
b2RlLmgiCisKKyNpbmNsdWRlICJBdHRyLmgiCisjaW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCisj
aW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDb21tZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRUeXBlLmgiCisjaW5jbHVkZSAiRW50aXR5LmgiCisjaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXRO
b2RlLmgiCisjaW5jbHVkZSAiR2RvbUF0dHIuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUF0
dHIuaCIKKyNpbmNsdWRlICJHZG9tQ2hhcmFjdGVyRGF0YS5oIgorI2luY2x1ZGUgIkdkb21UZXh0
LmgiCisjaW5jbHVkZSAiR2RvbUNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUgIkdkb21Db21tZW50
LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50RnJh
Z21lbnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiR2RvbUVu
dGl0eS5oIgorI2luY2x1ZGUgIkdkb21FbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhbHVl
TGlzdC5oIgorI2luY2x1ZGUgIkdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIkdk
b21FbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJHZG9tTm90YXRpb24uaCIKKyNpbmNsdWRl
ICJHZG9tSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJOb3RhdGlvbi5oIgorI2luY2x1ZGUg
IlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2luY2x1ZGUgIkdk
b21DU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJDU1NG
b250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiQ1NT
TWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NTdHls
ZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNT
U0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1
ZGUgIkdkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU01lZGlhUnVsZS5oIgor
I2luY2x1ZGUgIkdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NTdHlsZVJ1bGUu
aCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFyaWFibGVzUnVsZS5oIgorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FdmVudC5oIgorCisjaW5jbHVkZSAiQ2xpcGJv
YXJkLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tQ2xpcGJvYXJkLmgiCisj
aW5jbHVkZSAiR2RvbUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tTWVzc2FnZUV2ZW50
LmgiCisjaW5jbHVkZSAiR2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tTXV0YXRpb25F
dmVudC5oIgorI2luY2x1ZGUgIkdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVBy
b2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiR2Rv
bVVJRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNs
dWRlICJHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdoZWVsRXZl
bnQuaCIKKyNpbmNsdWRlICJHZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5j
bHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgorI2luY2x1
ZGUgIk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJNdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAi
T3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJU
ZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJVSUV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0
aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRl
ICJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmgi
CisKKyNpbmNsdWRlICJHZG9tSFRNTENvbGxlY3Rpb24uaCIKKworI2luY2x1ZGUgIkF0b21pY1N0
cmluZy5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmgiCisvLyBUT0RPICNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxBbGxD
b2xsZWN0aW9uLmgiCisvLyBUT0RPICNpbmNsdWRlICJHZG9tSFRNTEFsbENvbGxlY3Rpb24uaCIK
KyNpbmNsdWRlICJHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisvLyBlcnIuLi4gI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tTmFtZWROb2Rlc0NvbGxlY3Rpb24uaCIKKy8vIGVyci4uLiAjaW5j
bHVkZSAiR2RvbU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoRE9NX1NUT1JB
R0UpCisjaW5jbHVkZSAiR2RvbVN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VFdmVu
dC5oIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoU1ZHKQorI2lmIDAgLyogVE9ETyAqLworI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVNWR1pvb21F
dmVudC5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgorI2VuZGlmCisjZW5kaWYKKworI2lm
IEVOQUJMRShTVkcpCisjaWYgMCAvKiBYWFggVE9ETyAqLworI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiR2RvbVNWR0VsZW1lbnRX
cmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNlbmRpZgorI2VuZGlm
CisKKyNpZiAwCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJHZG9tU1ZHRXhjZXB0aW9uLmgi
CisjaW5jbHVkZSAiU1ZHRXhjZXB0aW9uLmgiCisjZW5kaWYKKyNlbmRpZgorCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21DbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1J1
bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FbGVtZW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21FbnRpdHlSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21IVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tVGV4dC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NT
SW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTTWVkaWFSdWxlLmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NWYXJpYWJs
ZXNSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21NZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU11dGF0aW9uRXZlbnQu
aCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbU92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbVByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVRl
eHRFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tVUlFdmVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
V2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21TdG9yYWdlRXZlbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tSFRNTENvbGxlY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdw
b2ludGVyPiBET01PYmplY3RNYXA7Cit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBH
ZG9tV3JhcHBlckNhY2hlOyAvKiBBUkchIFVORkFJUiEgSlNXcmFwcGVyQ2FjaGUgaXMgaW4gRG9j
dW1lbnQhISAqLworCisvLyBGb3IgZGVidWdnaW5nLCBrZWVwIGEgc2V0IG9mIHdyYXBwZXJzIGN1
cnJlbnRseSByZWdpc3RlcmVkLCBhbmQgY2hlY2sgdGhhdAorLy8gYWxsIGFyZSB1bnJlZ2lzdGVy
ZWQgYmVmb3JlIHRoZXkgYXJlIGRlc3Ryb3llZC4gVGhpcyBoYXMgaGVscGVkIHVzIGZpeCBhdAor
Ly8gbGVhc3Qgb25lIGJ1Zy4KKworI2lmIDAKK3N0YXRpYyB2b2lkIGFkZFdyYXBwZXIoR0RPTU9i
amVjdCogd3JhcHBlcik7CitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmplY3QqIHdy
YXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2RvbVdyYXBwZXJDYWNo
ZSYgd3JhcHBlcnMpOworCisjaWZkZWYgTkRFQlVHCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRX
cmFwcGVyKEdET01PYmplY3QqKQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVtb3ZlV3Jh
cHBlcihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZVdyYXBw
ZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUmKQoreworfQorCisjZWxzZQorCitzdGF0aWMgSGFz
aFNldDxHRE9NT2JqZWN0Kj4mIHdyYXBwZXJTZXQoKQoreworICAgIHN0YXRpYyBIYXNoU2V0PEdE
T01PYmplY3QqPiBzdGF0aWNXcmFwcGVyU2V0OworICAgIHJldHVybiBzdGF0aWNXcmFwcGVyU2V0
OworfQorCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqIHdyYXBwZXIpCit7Cisg
ICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFpbnMod3JhcHBlcikpOworICAgIHdyYXBwZXJT
ZXQoKS5hZGQod3JhcHBlcik7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXIoR0RPTU9i
amVjdCogd3JhcHBlcikKK3sKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVybjsKKyAg
ICBBU1NFUlQod3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAgICB3cmFwcGVyU2V0
KCkucmVtb3ZlKHdyYXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVycyhjb25z
dCBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVycykKK3sKKyAgICBmb3IgKEdkb21XcmFwcGVyQ2Fj
aGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gd3JhcHBlcnMuYmVnaW4oKTsgaXQgIT0gd3JhcHBlcnMu
ZW5kKCk7ICsraXQpCisgICAgICAgIHJlbW92ZVdyYXBwZXIoaXQtPnNlY29uZCk7Cit9CisKK0dE
T01PYmplY3Q6On5HRE9NT2JqZWN0KCkKK3sKKyAgICBBU1NFUlQoIXdyYXBwZXJTZXQoKS5jb250
YWlucyh0aGlzKSk7Cit9CisKKyNlbmRpZgorI2VuZGlmIC8qIGNvbW1lbnRlZCBvdXQgZm9yIG5v
dyAqLworCitzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlckNhY2hlKCkKK3sgCisgICAg
Ly8gVU5GQUlSISBpIHdhbnQgb25lIG9mIHRoZXNlIHBlciBEb2N1bWVudCwgdG9vIQorICAgIC8v
IERvbid0IHVzZSBtYWxsb2MgaGVyZS4gQ2FsbGluZyBtYWxsb2MgZnJvbSBhIG1hcmsgZnVuY3Rp
b24gY2FuIGRlYWRsb2NrLgorICAgIHN0YXRpYyBHZG9tV3JhcHBlckNhY2hlIHN0YXRpY0dkb21X
cmFwcGVyQ2FjaGU7CisgICAgcmV0dXJuIHN0YXRpY0dkb21XcmFwcGVyQ2FjaGU7Cit9CisKK3N0
YXRpYyBET01PYmplY3RNYXAmIGRvbU9iamVjdHMoKQoreyAKKyAgICAvLyBEb24ndCB1c2UgbWFs
bG9jIGhlcmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9uIGNhbiBkZWFkbG9j
ay4KKyAgICBzdGF0aWMgRE9NT2JqZWN0TWFwIHN0YXRpY0RPTU9iamVjdHM7CisgICAgcmV0dXJu
IHN0YXRpY0RPTU9iamVjdHM7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSkgCit7CisgICAgZ3BvaW50ZXIgcmV0ID0g
ZG9tT2JqZWN0cygpLmdldChvYmplY3RIYW5kbGUpOworICAgIC8vcHJpbnRmKCJnZXRET01PYmpl
Y3Q6ICVwICVwXG4iLCBvYmplY3RIYW5kbGUsIHJldCk7CisgICAgcmV0dXJuIHJldDsKK30KKwor
c3RhdGljIGdwb2ludGVyIGNyZWF0ZV9nZG9tX29iamVjdChHRE9NT2JqZWN0ICpkb2IpCit7Cisg
ICAgZ3BvaW50ZXIgcmVzID0gZ19vYmplY3RfbmV3KGRvYi0+Z2V0X2dvYmpfdHlwZSgpLCBOVUxM
KTsKKyAgICBnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcyks
IGRvYik7CisgICAgcmV0dXJuIHJlczsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBHRE9NT2JqZWN0KiB3cmFwcGVy
KSAKK3sKKyAgICAvLyBhZGRXcmFwcGVyKHdyYXBwZXIpOworICAgIGdwb2ludGVyIG9iaiA9IGNy
ZWF0ZV9nZG9tX29iamVjdCh3cmFwcGVyKTsKKyAgICAvL3ByaW50ZigicHV0RE9NT2JqZWN0OiAl
cCAlcCAlcFxuIiwgb2JqZWN0SGFuZGxlLCB3cmFwcGVyLCBvYmopOworICAgIGRvbU9iamVjdHMo
KS5zZXQob2JqZWN0SGFuZGxlLCBvYmopOworICAgIHJldHVybiBvYmo7Cit9CisKK3ZvaWQgR0RP
TVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKQor
eworICAgIGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSk7CisgICAgLy9yZW1vdmVXcmFw
cGVyKGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSkpOworfQorCitncG9pbnRlciBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1l
bnQsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGdwb2ludGVyID4oZG9tT2JqZWN0cygpLmdldChub2RlKSk7CisgICAgcmV0dXJu
IC8qIFhYWCBncnJyIGRvY3VtZW50LT4gKi93cmFwcGVyQ2FjaGUoKS5nZXQobm9kZSk7Cit9CisK
K3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICghZG9jdW1lbnQpIHsKKyAg
ICAgICAgZm9yZ2V0RE9NT2JqZWN0KG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IC8vcmVtb3ZlV3JhcHBlcigvKiBYWFggZ3JyIGRvY3VtZW50LT4qL3dyYXBwZXJDYWNoZSgpLnRh
a2Uobm9kZSkpOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5v
ZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUsIEdET01Ob2RlICp3
cmFwcGVyKQoreworICAgIC8vYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBpZiAoIWRvY3VtZW50
KSB7CisgICAgICAgIG5vZGUtPnJlZigpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVy
cHJldGVyOjpwdXRET01PYmplY3Qobm9kZSwgd3JhcHBlcikgOworICAgIH0KKyAgICBncG9pbnRl
ciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgLyogWFhYIGdycnIgZG9j
dW1lbnQtPiovd3JhcHBlckNhY2hlKCkuc2V0KG5vZGUsIG9iaik7CisgICAgcmV0dXJuIG9iajsK
K30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5vZGVzRm9yRG9j
dW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAg
Ly9yZW1vdmVXcmFwcGVycyhkb2N1bWVudC0+d3JhcHBlckNhY2hlKCkpOworfQorCisjaWYgMAor
dm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KERvY3Vt
ZW50KiBkb2MpCit7CisjaWYgMCAvKlhYWCBUT0RPKi8KKyAgICAvLyBJZiBhIG5vZGUncyBHZG9t
IHdyYXBwZXIgaG9sZHMgY3VzdG9tIHByb3BlcnRpZXMsIHRob3NlIHByb3BlcnRpZXMgbXVzdAor
ICAgIC8vIHBlcnNpc3QgZXZlcnkgdGltZSB0aGUgbm9kZSBpcyBmZXRjaGVkIGZyb20gdGhlIERP
TS4gU28sIHdlIGtlZXAgR2RvbQorICAgIC8vIHdyYXBwZXJzIGxpa2UgdGhhdCBmcm9tIGJlaW5n
IGdhcmJhZ2UgY29sbGVjdGVkLgorCisgICAgR2RvbVdyYXBwZXJDYWNoZSYgbm9kZURpY3QgPSAv
KmRvYy0+Ki93cmFwcGVyQ2FjaGUoKTsKKyAgICBHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBu
b2RlRW5kID0gbm9kZURpY3QuZW5kKCk7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hlOjppdGVy
YXRvciBub2RlSXQgPSBub2RlRGljdC5iZWdpbigpOyBub2RlSXQgIT0gbm9kZUVuZDsgKytub2Rl
SXQpIHsKKyAgICAgICAgZ3BvaW50ZXIgZ05vZGUgPSBub2RlSXQtPnNlY29uZDsKKyAgICAgICAg
Tm9kZSogbm9kZSA9IGdOb2RlLT5pbXBsKCk7CisKKyAgICAgICAgaWYgKGdOb2RlLT5tYXJrZWQo
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5vIG5lZWQgdG8gcHJlc2Vy
dmUgYSB3cmFwcGVyIHRoYXQgaGFzIG5vIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIGlzIG5vCisgICAg
ICAgIC8vIGxvbmdlciBmZXRjaGFibGUgdGhyb3VnaCB0aGUgRE9NLgorICAgICAgICBpZiAoIWdO
b2RlLT5oYXNDdXN0b21Qcm9wZXJ0aWVzKCkgfHwgIW5vZGUtPmluRG9jdW1lbnQoKSkKKyAgICAg
ICAgICAgIC8vLi4uIHVubGVzcyB0aGUgd3JhcHBlciB3cmFwcyBhIGxvYWRpbmcgaW1hZ2UsIHNp
bmNlIHRoZSAibmV3IEltYWdlIgorICAgICAgICAgICAgLy8gc3ludGF4IGFsbG93cyBhbiBvcnBo
YW4gaW1hZ2Ugd3JhcHBlciB0byBiZSB0aGUgbGFzdCByZWZlcmVuY2UKKyAgICAgICAgICAgIC8v
IHRvIGEgbG9hZGluZyBpbWFnZSwgd2hvc2UgbG9hZCBldmVudCBtaWdodCBoYXZlIGltcG9ydGFu
dCBzaWRlLWVmZmVjdHMuCisgICAgICAgICAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoaW1nVGFn
KSB8fCBzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4obm9kZSktPmhhdmVGaXJlZExvYWRF
dmVudCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGdOb2RlLT5tYXJr
KCk7CisgICAgfQorI2VuZGlmCit9CisKKy8qIFhYWCAtIHJlcXVpcmVzIGxvb2tpbmcgdXAgb2Jq
ZWN0IC0gY2FsbCB0byBHX09CSkVDVCgpIG1hY3JvIGluIGFyZworICogIndyYXBwZXIiIHRvIHB1
dERPTU5vZGVGb3JEb2N1bWVudD8qLworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjp1
cGRhdGVET01Ob2RlRG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvYywgRG9jdW1l
bnQqIG5ld0RvYykKK3sKKyAgICBBU1NFUlQob2xkRG9jICE9IG5ld0RvYyk7CisgICAgc3R5bGVT
aGVldC0+cmVmKCk7CisgICAgZ3BvaW50ZXIgd3JhcHBlciA9IGdldERPTU5vZGVGb3JEb2N1bWVu
dChvbGREb2MsIG5vZGUpOworICAgIGlmICh3cmFwcGVyKSB7CisgICAgICAgIC8vcmVtb3ZlV3Jh
cHBlcih3cmFwcGVyKTsKKyAgICAgICAgZ3BvaW50ZXIgb2JqID0gcHV0RE9NTm9kZUZvckRvY3Vt
ZW50KG5ld0RvYywgbm9kZSwgd3JhcHBlcik7CisgICAgICAgIGZvcmdldERPTU5vZGVGb3JEb2N1
bWVudChvbGREb2MsIG5vZGUpOworICAgICAgICAvL2FkZFdyYXBwZXIod3JhcHBlcik7CisgICAg
ICAgIHJldHVybiBvYmo7CisgICAgfQorICAgIHJldHVybiBOVUxMOyAvKiBlcnIuLi4gKi8KK30K
KyNlbmRpZgorCitncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBpZiAoIWRv
YykKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisKKyAgICBncG9pbnRl
ciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9jKTsKKyAgICBp
ZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisK
KyAgICBpZiAoZG9jLT5pc0hUTUxEb2N1bWVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUhU
TUxEb2N1bWVudChzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihkb2MpKTsKKyNpZiBFTkFCTEUo
U1ZHKQorICAgIGVsc2UgaWYgKGRvYy0+aXNTVkdEb2N1bWVudCgpKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RPICovCisjaWYgMAorICAgICAgICByZXQgPSBuZXcgR0RP
TVNWR0RvY3VtZW50KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4oZG9jKSk7CisjZW5kaWYKKyAg
ICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnQoZG9j
KTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6
cHV0RE9NT2JqZWN0KGRvYywgcmV0KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVdyYXBw
ZXIoTm9kZSogbm9kZSk7CisKK2dwb2ludGVyIHRvR0RPTU5ld2x5Q3JlYXRlZChOb2RlKiBub2Rl
KQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICov
CisgICAgCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisgICAgCitncG9pbnRl
ciB0b0dET00oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBO
VUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgRG9jdW1lbnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50
KCk7CisgICAgZ3BvaW50ZXIgcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2Rl
Rm9yRG9jdW1lbnQoZG9jLCBub2RlKTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0
OworCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisKK2dwb2ludGVyIHRvR0RP
TShDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIE5V
TEw7IC8qIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJw
cmV0ZXI6OmdldERPTU9iamVjdCh2YWx1ZSk7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0
dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBpZiAodmFsdWUtPmlzVmFs
dWVMaXN0KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWVMaXN0KHN0YXRpY19jYXN0
PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmICh2
YWx1ZS0+aXNTVkdQYWludCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8g
Ki8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1BhaW50KHN0YXRpY19jYXN0PFNWR1BhaW50
Kj4odmFsdWUpKTsKKyAgICB9CisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHQ29sb3IoKSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8vcmV0ID0gbmV3
IEdET01TVkdDb2xvcihzdGF0aWNfY2FzdDxTVkdDb2xvcio+KHZhbHVlKSk7CisgICAgfQorI2Vu
ZGlmCisgICAgZWxzZSBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0
ID0gbmV3IEdET01DU1NQcmltaXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1
ZSo+KHZhbHVlKSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhbHVlKHZh
bHVlKTsKKworICAgIHZhbHVlLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01PYmplY3QodmFsdWUsIHJldCk7Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5F
IGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7
CisgICAgQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KG5v
ZGUtPmRvY3VtZW50KCksIG5vZGUpKTsKKyAgICAKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+
ZG9jdW1lbnQoKTsKKyAgICBHRE9NTm9kZSAqcmV0ID0gTlVMTDsKKyAgICAKKyAgICAvL3ByaW50
ZigiY3JlYXRlV3JhcHBlciBub2RlVHlwZSAlZFxuIiwgbm9kZS0+bm9kZVR5cGUoKSk7CisKKyAg
ICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBOb2RlOjpFTEVNRU5U
X05PREU6CisgICAgICAgICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICAg
ICAgICAgIHJldCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxIVE1MRWxlbWVu
dCo+KG5vZGUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+
aXNTVkdFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisjaWYgMCAvKiBY
WFggVE9ETyAqLworICAgICAgICAgICAgICAgIHJldCA9IGNyZWF0ZUdET01TVkdXcmFwcGVyKHN0
YXRpY19jYXN0PFNWR0VsZW1lbnQqPihub2RlKSk7CisjZW5kaWYKKyNlbmRpZgorICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRWxlbWVudChzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9k
ZTo6QVRUUklCVVRFX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUF0dHIoc3RhdGlj
X2Nhc3Q8QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5v
ZGU6OlRFWFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NVGV4dChzdGF0aWNfY2Fz
dDxUZXh0Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6
Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DREFUQVNlY3Rp
b24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUVudGl0eShzdGF0aWNfY2FzdDxFbnRpdHkqPihub2RlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNv
bW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CisgICAgICAgICAgICAvLyB3ZSBkb24n
dCB3YW50IHRvIGNhY2hlIHRoZSBkb2N1bWVudCBpdHNlbGYgaW4gdGhlIHBlci1kb2N1bWVudCBk
aWN0aW9uYXJ5CisgICAgICAgICAgICByZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PERvY3VtZW50
Kj4obm9kZSkpOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnRUeXBlKHN0YXRpY19jYXN0PERvY3VtZW50VHlw
ZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6Ok5PVEFU
SU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vdGF0aW9uKHN0YXRpY19jYXN0
PE5vdGF0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRG9j
dW1lbnRGcmFnbWVudChzdGF0aWNfY2FzdDxEb2N1bWVudEZyYWdtZW50Kj4obm9kZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01FbnRpdHlSZWZlcmVuY2Uoc3RhdGljX2Nhc3Q8
RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vZGUobm9kZSk7CisgICAgfQorCisg
ICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01O
b2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlLCByZXQpOworfQorIAorZ3BvaW50ZXIgdG9HRE9NKEhU
TUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQoreworICAgIGlmICghY29sbGVjdGlvbikKKyAgICAg
ICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RP
TVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoY29sbGVjdGlvbik7CisKKyAgICBpZiAo
Z29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAg
c3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBIVE1MQ29sbGVjdGlv
bjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTE9wdGlvbnND
b2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24p
KTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIDAKKyAgICAgICAgY2FzZSBIVE1MQ29sbGVjdGlv
bjo6RG9jQWxsOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQWxsQ29sbGVjdGlvbihz
dGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJy
ZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RP
TUhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29sbGVjdGlvbikp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY29sbGVjdGlvbi0+cmVmKCk7Cisg
ICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGNvbGxlY3Rpb24s
IHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQpCit7CisgICAgaWYgKCFl
dmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICAvL3ByaW50
ZigidG9HRE9NIEV2ZW50IHR5cGUgJXNcbiIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpn
ZXRET01PYmplY3QoZXZlbnQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsK
KworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBpZiAoZXZlbnQtPmlzVUlFdmVudCgpKSB7Cisg
ICAgICAgIGlmIChldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUtleWJvYXJkRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7
CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1RleHRFdmVudCgpKQorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01UZXh0RXZlbnQoc3RhdGljX2Nhc3Q8VGV4dEV2ZW50Kj4oZXZlbnQpKTsKKyAg
ICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01Nb3VzZUV2ZW50KHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCkpOworICAg
ICAgICBlbHNlIGlmIChldmVudC0+aXNXaGVlbEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTVdoZWVsRXZlbnQoc3RhdGljX2Nhc3Q8V2hlZWxFdmVudCo+KGV2ZW50KSk7CisjaWYg
RU5BQkxFKFNWRykKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzU1ZHWm9vbUV2ZW50KCkpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgICAg
ICAvL3JldCA9IG5ldyBHRE9NU1ZHWm9vbUV2ZW50KHN0YXRpY19jYXN0PFNWR1pvb21FdmVudCo+
KGV2ZW50KSwgMCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBlbHNlCisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTVVJRXZlbnQoc3RhdGljX2Nhc3Q8VUlFdmVudCo+KGV2ZW50KSk7Cisg
ICAgfSBlbHNlIGlmIChldmVudC0+aXNNdXRhdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5l
dyBHRE9NTXV0YXRpb25FdmVudChzdGF0aWNfY2FzdDxNdXRhdGlvbkV2ZW50Kj4oZXZlbnQpKTsK
KyAgICBlbHNlIGlmIChldmVudC0+aXNPdmVyZmxvd0V2ZW50KCkpCisgICAgICAgIHJldCA9IG5l
dyBHRE9NT3ZlcmZsb3dFdmVudChzdGF0aWNfY2FzdDxPdmVyZmxvd0V2ZW50Kj4oZXZlbnQpKTsK
KyAgICBlbHNlIGlmIChldmVudC0+aXNNZXNzYWdlRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3
IEdET01NZXNzYWdlRXZlbnQoc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZlbnQpKTsKKyAg
ICBlbHNlIGlmIChldmVudC0+aXNQcm9ncmVzc0V2ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50
LT5pc1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8WE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01Qcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFByb2dyZXNzRXZlbnQqPihldmVu
dCkpOworICAgIH0KKyNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCisgICAgZWxzZSBpZiAoZXZlbnQt
PmlzU3RvcmFnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NU3RvcmFnZUV2ZW50KHN0
YXRpY19jYXN0PFN0b3JhZ2VFdmVudCo+KGV2ZW50KSk7CisjZW5kaWYKKyAgICBlbHNlIGlmIChl
dmVudC0+aXNXZWJLaXRBbmltYXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTVdl
YktpdEFuaW1hdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdEFuaW1hdGlvbkV2ZW50Kj4oZXZl
bnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRUcmFuc2l0aW9uRXZlbnQoKSkKKyAg
ICAgICAgcmV0ID0gbmV3IEdET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8V2Vi
S2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5l
dyBHRE9NRXZlbnQoZXZlbnQpOworCisgICAgZXZlbnQtPnJlZigpOworICAgIHJldHVybiBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChldmVudCwgcmV0KTsKK30KKworLyogVE9E
TyBYWFggaG1tbS4uLiBub3Qgc28gaGFwcHkgYWJvdXQgdGhpcyAtIHNob3VsZCBiZSAibmV3bHkg
Y3JlYXRlZCIgKi8KK2dwb2ludGVyIHRvR0RPTShUZXh0KiB0ZXh0KQoreworICAgIGlmICghdGV4
dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlw
dEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQodGV4dC0+ZG9jdW1lbnQoKSwgdGV4
dCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU5vZGUg
KnJldCA9IG5ldyBHRE9NVGV4dCh0ZXh0KTsKKyAgICB0ZXh0LT5kb2N1bWVudCgpLT5yZWYoKTsK
KyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQo
dGV4dC0+ZG9jdW1lbnQoKSwgdGV4dCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKENTU1J1
bGUqIHJ1bGUpCit7CisgICAgaWYgKCFydWxlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhY
IGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmdldERPTU9iamVjdChydWxlKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29i
ajsKKworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBzd2l0Y2ggKHJ1bGUtPnR5cGUoKSkgewor
ICAgICAgICBjYXNlIENTU1J1bGU6OlNUWUxFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUNTU1N0eWxlUnVsZShzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihydWxlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpNRURJQV9SVUxFOgorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01DU1NNZWRpYVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTTWVkaWFSdWxl
Kj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Rk9O
VF9GQUNFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0ZvbnRGYWNlUnVsZShz
dGF0aWNfY2FzdDxDU1NGb250RmFjZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBDU1NSdWxlOjpQQUdFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUNTU1BhZ2VSdWxlKHN0YXRpY19jYXN0PENTU1BhZ2VSdWxlKj4ocnVsZSkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JUX1JVTEU6CisgICAgICAg
ICAgICByZXQgPSBuZXcgR0RPTUNTU0ltcG9ydFJ1bGUoc3RhdGljX2Nhc3Q8Q1NTSW1wb3J0UnVs
ZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OkNI
QVJTRVRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTQ2hhcnNldFJ1bGUoc3Rh
dGljX2Nhc3Q8Q1NTQ2hhcnNldFJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDU1NSdWxlOjpWQVJJQUJMRVNfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NQ1NTVmFyaWFibGVzUnVsZShzdGF0aWNfY2FzdDxDU1NWYXJpYWJsZXNSdWxlKj4ocnVs
ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBy
ZXQgPSBuZXcgR0RPTUNTU1J1bGUocnVsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICBydWxlLT5yZWYoKTsKKyAgICBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVj
dChydWxlLCByZXQpOworICAgIHJldHVybiByZXQ7Cit9CisKKy8qIFRPRE86IHNob3VsZCBiZSB0
b0dET01OZXdseUNyZWF0ZWQgKi8KK2dwb2ludGVyIHRvR0RPTShFbGVtZW50KiBlbGVtZW50KQor
eworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBzaG91
bGRuJ3QgYmUgb25lPyBBU1NFUlQoIVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9j
dW1lbnQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgZWxlbWVudCkpOworICAgIGdwb2ludGVyIGdvYmog
PSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChlbGVtZW50LT5k
b2N1bWVudCgpLCBlbGVtZW50KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7
IC8vIGh1aD8gZXJyLi4uCisKKyAgICBHRE9NTm9kZSAqcmV0OworICAgIERvY3VtZW50KiBkb2Mg
PSBlbGVtZW50LT5kb2N1bWVudCgpOworCisgICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQo
KSkKKyAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0PEhUTUxF
bGVtZW50Kj4oZWxlbWVudCkpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZWxlbWVu
dC0+aXNTVkdFbGVtZW50KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAq
LworICAgICAgICAvL3JldCA9IGNyZWF0ZUdET01TVkdXcmFwcGVyKHN0YXRpY19jYXN0PFNWR0Vs
ZW1lbnQqPihlbGVtZW50KSk7CisgICAgfQorI2VuZGlmCisgICAgZWxzZQorICAgICAgICByZXQg
PSBuZXcgR0RPTUVsZW1lbnQoZWxlbWVudCk7CisKKyAgICBkb2MtPnJlZigpOworICAgIHJldHVy
biBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIGVsZW1l
bnQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQor
eworICAgIGlmICghc3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4uLiAq
LworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2Jq
ZWN0KHN0eWxlU2hlZXQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKwor
ICAgIEdET01PYmplY3QgKnJldDsKKyAgICBpZiAoc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0
KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5bGVTaGVldChzdGF0aWNfY2FzdDxDU1NT
dHlsZVNoZWV0Kj4oc3R5bGVTaGVldCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01TdHlsZVNoZWV0KHN0eWxlU2hlZXQpOworCisgICAgc3R5bGVTaGVldC0+cmVmKCk7CisgICAg
cmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHN0eWxlU2hlZXQsIHJl
dCk7Cit9CisKKy8qIGRlcml2ZWQgc291cmNlcyBhdXRvLWdlbmVyYXRlZCAqLworZ3BvaW50ZXIg
dG9HRE9NKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBvYmopOworCitncG9pbnRlciB0b0dET00oRXZl
bnRUYXJnZXQqIHRhcmdldCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5V
TEw7CisgICAgCisjaWYgMAorI2lmIEVOQUJMRShTVkcpCisgICAgLy8gU1ZHRWxlbWVudEluc3Rh
bmNlIHN1cHBvcnRzIGJvdGggdG9TVkdFbGVtZW50SW5zdGFuY2UgYW5kIHRvTm9kZSBzaW5jZSBz
byBtdWNoIG1vdXNlIGhhbmRsaW5nIGNvZGUgZGVwZW5kcyBvbiB0b05vZGUgcmV0dXJuaW5nIGEg
dmFsaWQgbm9kZS4KKyAgICBTVkdFbGVtZW50SW5zdGFuY2UqIGluc3RhbmNlID0gdGFyZ2V0LT50
b1NWR0VsZW1lbnRJbnN0YW5jZSgpOworICAgIGlmIChpbnN0YW5jZSkKKyAgICAgICAgcmV0dXJu
IHRvR0RPTShleGVjLCBpbnN0YW5jZSk7CisjZW5kaWYKKyNlbmRpZgorCisgICAgTm9kZSogbm9k
ZSA9IHRhcmdldC0+dG9Ob2RlKCk7CisgICAgaWYgKG5vZGUpCisgICAgICAgIHJldHVybiB0b0dE
T00obm9kZSk7CisgICAgCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0KiB4aHIgPSB0YXJnZXQtPnRv
WE1MSHR0cFJlcXVlc3QoKSkKKyAgICAgICAgLy8gWE1MSHR0cFJlcXVlc3QgaXMgYWx3YXlzIGNy
ZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkg
aGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0
KHhocik7CisKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+
dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgpKQorICAgICAgICByZXR1cm4gdG9HRE9NKHVwbG9hZCk7
CisgICAgCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICBpZiAoRE9N
QXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSB0YXJnZXQtPnRvRE9NQXBwbGljYXRpb25DYWNoZSgp
KQorICAgICAgICAvLyBET01BcHBsaWNhdGlvbkNhY2hlIGlzIGFsd2F5cyBjcmVhdGVkIHZpYSBH
RE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSBjYWNoZURPTU9iamVjdCgpIGhlcmUuCisgICAg
ICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChjYWNoZSk7Cisj
ZW5kaWYKKworICAgIC8vIFRoZXJlIGFyZSB0d28ga2luZHMgb2YgRXZlbnRUYXJnZXRzOiBFdmVu
dFRhcmdldE5vZGUgYW5kIFhNTEh0dHBSZXF1ZXN0LgorICAgIC8vIElmIFNWRyBzdXBwb3J0IGlz
IGVuYWJsZWQsIHRoZXJlIGlzIGFsc28gU1ZHRWxlbWVudEluc3RhbmNlLgorICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOVUxMOworfSAgIAorCitncG9pbnRlciB0b0dET00o
RXZlbnRUYXJnZXROb2RlKiB0YXJnZXQpCit7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJl
dHVybiBOVUxMOworICAgIAorICAgIE5vZGUqIG5vZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAg
IGlmIChub2RlKQorICAgICAgICByZXR1cm4gdG9HRE9NKG5vZGUpOworICAgIAorICAgIHJldHVy
biB0b0dET00oc3RhdGljX2Nhc3Q8RXZlbnRUYXJnZXQqPih0YXJnZXQpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0
LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2lmbmRlZiBfX0dkb21ET01PYmplY3RfSF9fCisjZGVm
aW5lIF9fR2RvbURPTU9iamVjdF9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOworCisjZGVmaW5lIEdET01fVFlQRV9E
T01fT0JKRUNUICAgICAgICAgICAgKGdkb21fZG9tX29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3QpKQorI2RlZmlu
ZSBHRE9NX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FT
VCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykpCisj
ZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNU
QU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01fSVNf
RE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyks
ICBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRE9N
X09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01P
YmplY3RQcml2YXRlIEdkb21ET01PYmplY3RQcml2YXRlOworCitzdHJ1Y3QgX0dkb21ET01PYmpl
Y3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAgR2RvbURPTU9iamVjdFBy
aXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21ET01PYmplY3RDbGFzcyB7CisgICAgR09i
amVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21fZG9t
X29iamVjdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fb2Jq
ZWN0X2luaXRfZG9tX29iamVjdCAoR2RvbURPTU9iamVjdCAqdGhpeik7CisKK0dfRU5EX0RFQ0xT
CisKKyNlbmRpZiAvKiBfX0dkb21ET01PYmplY3RfSF9fICovCisKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9HRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
RE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKKyNpZm5kZWYgX19ET01P
YmplY3RfaF9fCisjZGVmaW5lIF9fRE9NT2JqZWN0X2hfXworCisvLyBuYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEdET01PYmplY3QgeworcHVibGljOgorICAgIHZpcnR1YWwgfkdET01PYmpl
Y3QoKSB7fQorICAgIHZpcnR1YWwgaW50IGdldF9nb2JqX3R5cGUoKSA9IDA7Cit9OworCisvLyB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rv
cnkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIFRISVMgRklMRSBJUyBE
RVJJVkVEIEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFURUQgRklMRS4KKyAqIGtlZXBpbmcg
aXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBkb25lIGJ5IGFkZGluZworICogYSBt
YWtlX25hbWVzLnBsIGdlbmVyYXRvciwgb3IgYnkgd3JpdGluZyBhIHNlcGFyYXRlCisgKiBnZW5l
cmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggYXMgaW5wdXQu
CisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworCisjaWZuZGVmIEdET01IVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5X2gKKyNkZWZpbmUgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAorCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob2RlLmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBIVE1MRWxlbWVudDsKKworICAg
IEdET01Ob2RlKiBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4p
OworCit9CisgCisjZW5kaWYgLy8gR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaApJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MSBA
QAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBr
ZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNh
bXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBHZG9tRE9NQmluZGluZ19oCisjZGVmaW5lIEdkb21E
T01CaW5kaW5nX2gKKworI2luY2x1ZGUgPGtqcy9pbnRlcnByZXRlci5oPgorI2luY2x1ZGUgPGtq
cy9sb29rdXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworI2luY2x1ZGUgIkdk
b21Ob2RlLmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tTm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBBdG9taWNTdHJp
bmc7CisgICAgY2xhc3MgRG9jdW1lbnQ7CisgICAgY2xhc3MgRXZlbnQ7CisgICAgY2xhc3MgRnJh
bWU7CisgICAgY2xhc3MgS1VSTDsKKyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIFN0cmluZzsK
KworI2lmIEVOQUJMRShTVkcpCisgICAgY2xhc3MgU1ZHRWxlbWVudDsKKyNlbmRpZgorCisgICAg
Y2xhc3MgR0RPTVNjcmlwdEludGVycHJldGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRp
YyB2b2lkKiBnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsKKyAgICAgICAgc3RhdGlj
IHZvaWQqIHB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqKTsKKyAg
ICAgICAgc3RhdGljIHZvaWQgZm9yZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisK
KyAgICAgICAgc3RhdGljIHZvaWQqIGdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5v
ZGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQqIHB1dERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVu
dCosIE5vZGUqLCBHRE9NTm9kZSogbm9kZVdyYXBwZXIpOworICAgICAgICBzdGF0aWMgdm9pZCBm
b3JnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqLCBOb2RlKik7CisgICAgICAgIHN0YXRp
YyB2b2lkIGZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2lmIDAK
KyAgICAgICAgc3RhdGljIHZvaWQgdXBkYXRlRE9NTm9kZURvY3VtZW50KE5vZGUqLCBEb2N1bWVu
dCogb2xkRG9jLCBEb2N1bWVudCogbmV3RG9jKTsKKyAgICAgICAgc3RhdGljIHZvaWQgbWFya0RP
TU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2VuZGlmCisgICAgfTsKKworICAgIC8v
IFJldHJpZXZlIGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIgZm9yIGEgRE9N
IG9iamVjdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlu
bGluZSB2b2lkKiBjYWNoZURPTU9iamVjdChET01PYmoqIGRvbU9iaikKKyAgICB7CisgICAgICAg
IGlmICghZG9tT2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICov
CisgICAgICAgIGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9i
amVjdChkb21PYmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgR0RPTU9iamVj
dCogcmV0ID0gbmV3IEdkb21ET01PYmooZG9tT2JqKTsKKwkJZG9tT2JqLT5yZWYoKTsKKyAgICAg
ICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvbU9iaiwgcmV0
KTsKKyAgICB9CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFJldHJpZXZlIGZyb20gY2FjaGUs
IG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIgZm9yIGFuIFNWRyBET00gb2JqZWN0LgorICAgIHRl
bXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3MgR2RvbURPTU9iaj4gaW5saW5lIHZvaWQqIGNhY2hl
U1ZHRE9NT2JqZWN0KERPTU9iaiogZG9tT2JqLCBTVkdFbGVtZW50KiBjb250ZXh0KQorICAgIHsK
KyAgICAgICAgaWYgKCFkb21PYmopCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGht
bW0uLi4gKi8KKyAgICAgICAgaWYgKHZvaWQqIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NT2JqZWN0KGRvbU9iaikpCisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBH
RE9NT2JqZWN0KiByZXQgPSBuZXcgR2RvbURPTU9iaihkb21PYmosIGNvbnRleHQpOworCQlkb21P
YmotPnJlZigpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01P
YmplY3QoZG9tT2JqLCByZXQpOworICAgIH0KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBHZG9tRE9NQmluZGluZ19oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRo
IENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
bHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4KKyAqLworCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE2NzMgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisjIENvcHlyaWdodCAoQykg
MjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
IyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorIyBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyMgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV
U0EuCisKK3BhY2thZ2UgQ29kZUdlbmVyYXRvckdPYmplY3Q7CisKKyMgRGVmYXVsdCBMaWNlbmNl
IFRlbXBsYXRlcworbXkgJGxpY2VuY2VUZW1wbGF0ZSA9IDw8ICJFT0YiOworLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsXEBsa2NsLm5l
dD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscFxAYXRva2VyLmNvbT4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KK0VPRgorCitteSAlaW1wbEluY2x1
ZGVzID0gKCk7CitteSAlaGRySW5jbHVkZXMgPSAoKTsKK215ICVoZHJQcm9wSW5jbHVkZXMgPSAo
KTsKK215ICVpbXBsVHlwZWRlZnMgPSAoKTsKKworIyBEZWZhdWx0IGNvbnN0cnVjdG9yCitzdWIg
bmV3Cit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRyZWZlcmVuY2UgPSB7IH07
CisKKyAgICAkY29kZUdlbmVyYXRvciA9IHNoaWZ0OworICAgICRvdXRwdXREaXIgPSBzaGlmdDsK
KworICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOworICAgIHJldHVybiAkcmVmZXJlbmNl
OworfQorCitzdWIgZmluaXNoCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworfQorCisjIFBh
cmFtczogJ2RvbUNsYXNzJyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZUludGVyZmFjZQoreworICAgIG15
ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkZGVm
aW5lcyA9IHNoaWZ0OworCisgICAgbXkgJG5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CisKKyAgICBw
cmludCAiJG5hbWVcbiI7CisKKyAgICAkb2JqZWN0LT5HZW5lcmF0ZSgkZGF0YU5vZGUpOworCisg
ICAgIyBXcml0ZSBjaGFuZ2VzCisgICAgbXkgJGZuYW1lID0gIkdkb21fIiAuICRuYW1lOyAjZGVj
YW1lbGl6ZSgkbmFtZSk7CisgICAgJGZuYW1lID1+IHMvXy8vZzsKKyAgICAkb2JqZWN0LT5Xcml0
ZURhdGEoJGZuYW1lKTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVudCcgc3RydWN0CitzdWIg
R2VuZXJhdGVNb2R1bGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7CisKKyAgICAkbW9kdWxlID0gJGRhdGFOb2RlLT5tb2R1bGU7Cit9CisKK3N1
YiBDbHNUb0dPYmpUeXBlCit7CisgICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OworICAgIHJldHVy
biB1YyhkZWNhbWVsaXplKCRjbGFzc05hbWUpKQorfQorCitzdWIgR2V0UGFyZW50Q2xhc3NOYW1l
Cit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3Jl
dHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1
cm4gIkdkb21ET01PYmplY3QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJl
dHVybiAiR2RvbSIgLiAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJl
bnRzKDApKTsKK30KK3N1YiBHZXRQYXJlbnRHT2JqVHlwZQoreworICAgIG15ICRkYXRhTm9kZSA9
IHNoaWZ0OworCisgICAgIyA/PyBxdWU/PworICAgICNyZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgcmV0dXJuICJHRE9NX1RZUEVfRE9NX09CSkVD
VCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHRE9NX1RZUEVf
IiAuIENsc1RvR09ialR5cGUoJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+
cGFyZW50cygwKSkpOworfQorCisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1l
bENhc2UgMC4wMQorc3ViIGNhbWVsaXplCit7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICBqb2lu
KCcnLCBtYXB7IHVjZmlyc3QgJF8gfSBzcGxpdCgvKD88PVtBLVphLXpdKV8oPz1bQS1aYS16XSl8
XGIvLCAkcykpOworfQorCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2FtZWxDYXNl
IDAuMDEKK3N1YiBkZWNhbWVsaXplCit7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICAkcyA9fiBz
eyhbXmEtekEtWl0/KShbQS1aXSopKFtBLVpdKShbYS16XT8pfXsKKyAgICAgICAgbXkgJGZjID0g
cG9zKCRzKT09MDsKKyAgICAgICAgbXkgKCRwMCwkcDEsJHAyLCRwMykgPSAoJDEsbGMkMixsYyQz
LCQ0KTsKKyAgICAgICAgbXkgJHQgPSAkcDAgfHwgJGZjID8gJHAwIDogJ18nOworICAgICAgICAk
dCAuPSAkcDMgPyAkcDEgPyAiJHtwMX1fJHAyJHAzIiA6ICIkcDIkcDMiIDogIiRwMSRwMiI7Cisg
ICAgICAgICR0OworICAgIH1nZTsKKyAgICAkczsKK30KKworc3ViIEdldEhkck5hbWUKK3sKKyAg
ICAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisg
ICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitzdWIgR2V0Q2xhc3NOYW1lCit7CisgICAgICAg
IG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKKworICAgIHJl
dHVybiAiR2RvbSRuYW1lIjsKK30KKworc3ViIEdldEdJbmNsdWRlSGRyCit7CisgICAgbXkgJHR5
cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRIZHJOYW1lKCR0eXBlKTsKKyAgICAg
ICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAgICAgICAg
cmV0dXJuICIiIGlmICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUg
ZXEgImxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAg
ICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0
eXBlIGVxICJmbG9hdCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiZG91YmxlIjsK
KyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAi
OworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiOworICAgICAg
ICByZXR1cm4gIlJhbmdlLmgiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0
dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIGlmICR0eXBlIGVxICJET01PYmpl
Y3QiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGNoYXIiOworICAg
ICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBj
bGFzcyB3cmFwcGVyCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEg
IkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIiBpZiAk
dHlwZSBlcSAiRXZlbnRUYXJnZXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIg
aWYgJHR5cGUgZXEgImZsb2F0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJib29sZWFuIjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUuaCI7Cit9CisKKyMgcmV0dXJu
cyAxIGlmIHdlIG5lZWQgdG8gY3JlYXRlIGEgZ29iamVjdCB3cmFwcGVyIGFyb3VuZCB0aGUgcmV0
dXJuIHJlc3VsdAorc3ViIElzR0RPTUNsYXNzVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7
CisgICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJFdmVudExp
c3RlbmVyIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImJvb2xlYW4i
OworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAw
IGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInNob3J0
IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
ImludCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBl
cSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gMTsKK30KKworc3ViIEdl
dFByb3BHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRD
bGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0eXBlIGVxICJET01T
dHJpbmciOworICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0
dXJuICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1
cm4gImRvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJib29sZWFuIiBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hh
ciI7CisgICAgcmV0dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJp
bnQiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEg
InVjaGFyIjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAg
cmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAidWludCIgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBsb25nIjsKKyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNo
b3J0IjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBU
T0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2JqZWN0IjsKK30KKworc3Vi
IEdldEdUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBH
ZXRDbGFzc05hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFz
c05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUgKiIg
aWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKyAgICAgICAgcmV0dXJuICJjb25zdCBnY2hhciAq
IiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJnZmxvYXQgIiBpZiAk
dHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJl
SG93ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb3VibGUg
IiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICJnYm9vbGVhbiAiIGlmICR0
eXBlIGVxICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuICJnY2hhciAiIGlmICR0eXBlIGVxICJj
aGFyIjsKKyAgICAgICAgcmV0dXJuICJnbG9uZyAiIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAg
ICAgcmV0dXJuICJnc2hvcnQgIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4g
Imd1Y2hhciAiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAiZ3VpbnQgIiBp
ZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1cm4gImdpbnQgIiBpZiAkdHlwZSBl
cSAiaW50IjsKKyAgICAgICAgcmV0dXJuICJndWludCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBp
bnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IjsKKyAgICAgICAgcmV0dXJuICJndWludDY0ICIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcg
bG9uZyI7CisgICAgICAgIHJldHVybiAiZ3VzaG9ydCAiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBz
aG9ydCI7CisgICAgICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAj
IFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlm
ICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJ
bmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBH
ZXRHSW5jbHVkZUhkcigkdHlwZSk7CisgICAgaWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlm
ICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICByZXR1cm4gIkdkb21FdmVu
dFRhcmdldE5vZGUuaCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01P
YmplY3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpz
Z2VuZXJhdG9yLgorICAgICAgICAgICAgcmV0dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRy
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNI
ZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigk
dHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGhkclByb3BJbmNsdWRlc3sk
aGRyfSA9IDE7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAg
ICAgICAkaGRyUHJvcEluY2x1ZGVzeyJQcml2YXRlIi4kaGRyfSA9IDE7CisgICAgICAgICAgICAk
aGRyUHJvcEluY2x1ZGVzeyJQcml2YXRlSW50Ii4kaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9
CisKK30KKworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBt
eSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAg
ICAkaGRySW5jbHVkZXN7JGhkcn0gPSAxOworICAgIH0KKworfQorCitzdWIgYWRkSW5jQm9keQor
eworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBl
KTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0g
MTsKKyAgICB9Cit9CisKK3N1YiBHZXRQcml2Rm4KK3sKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9
IHNoaWZ0OworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSBzaGlmdDsKKyAgICBteSAkcmVzID0g
c2hpZnQ7CisgICAgbXkgJHBhcm0gPSBzaGlmdDsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6RXZlbnRUYXJnZXRO
b2RlICogJHJlcyA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoc2VsZikpOyI7CisgICAgfQorICAgIHJldHVy
biAiV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqICRyZXMgPSAoJHtsY2FzZV9pZmFjZW5hbWV9
X2dldF9wcml2YXRlKCRwYXJtKSk7IjsKK30KKworc3ViIHNraXBQcm9wVGVtcG9yYXJpbHkKK3sK
KyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRwcm9wX3R5cGUgPSBzaGlmdDsKKworICAg
ICMgc2tpcCBNZWRpYUxpc3QKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAic3R5bGVzaGVldHM6Ok1l
ZGlhTGlzdCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgI2lmICgkcHJvcF90
eXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAg
ICAjIHNraXAgQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAi
Q1NTVmFyaWFibGVzRGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlw
ZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9
CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9w
X3R5cGUgZXEgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJu
IDE7CisgICAgI30KKworICAgICMgc2tpcCBFdmVudExpc3RlbmVyCisgICAgI2lmICgkcHJvcF90
eXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKwor
ICAgICMgc2tpcCBET01XaW5kb3cKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVdpbmRvdyIp
IHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgQ29uc3RydWN0b3Jz
ICh3aGF0ZXZlciB0aGV5IGFyZSkgZm9yIG5vdy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29u
c3RydWN0b3IkLykgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIGNhbnZhczJk
Li4uLgorICAgIGlmICgkcHJvcF90eXBlIGVxICJjdXN0b20iKSB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgIGlmICgkcHJvcF90eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsK
KyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBUT0RPOiBTVkcKKyAgICBpZiAoJGNv
ZGVHZW5lcmF0b3ItPklzUG9kVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5p
bWF0ZWRUeXBlKCR0eXBlKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJu
IDA7Cit9CisKK3N1YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uCit7CisgICAgbXkgJHR5
cGUgPSBzaGlmdDsKKworICAgICMgc2tpcHBlZCBvdXQgQ2FudmFzUGl4ZWxBcnJheSAtIHNlZSBK
U0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwIGZvciB3aHkuCisgICAgcmV0dXJuIDEgaWYgJHR5
cGUgZXEgIk5vZGUiIG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xs
ZWN0aW9uIiBvciAkdHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3IgJHR5cGUgZXEgIlN0eWxlU2hlZXQi
IG9yICR0eXBlIGVxICJDU1NSdWxlIiBvciAkdHlwZSBlcSAiQ1NTVmFsdWUiIG9yICR0eXBlIGVx
ICJFdmVudCIgb3IgJHR5cGUgZXEgIkVsZW1lbnQiIG9yICR0eXBlIGVxICJUZXh0IjsKKyAgICBy
ZXR1cm4gMDsKK30KKworCisjIEdlbmVyYXRlIGhlYWRlciBhbmQgaW1wbAorc3ViIEdlbmVyYXRl
Cit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0Owor
CisgICAgbXkgJGhhc0xlZ2FjeVBhcmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkxlZ2FjeVBhcmVudCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUt
PnBhcmVudHN9ID4gMDsKKyAgICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAk
aGFzUmVhbFBhcmVudDsKKyAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NO
YW1lKCRkYXRhTm9kZSk7CisgICAgbXkgJHBhcmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5
cGUoJGRhdGFOb2RlKTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsK
KyAgICBteSAkY2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBt
eSAkaGRyTmFtZSA9IEdldEhkck5hbWUoJGludGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhl
IGRlZmF1bHQgaW1wbCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIs
ICRsaWNlbmNlVGVtcGxhdGUpOworICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGlt
cGxJbmNsdWRlc3siR0RPTUJpbmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIkaGRy
TmFtZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGUke2hkck5hbWV9LmgifSA9
IDE7CisKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01PYmplY3QiOworICAgIG15
ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15ICRwYXJlbnRIZHJOYW1l
ID0gIkdkb21ET01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NOYW1lIG5lICJHT2JqZWN0
IikKKyAgICB7CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRD
bGFzc05hbWUsIDQpOworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9i
amVjdCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigk
cGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRy
TmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAg
ICAgICB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAg
ICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmVudEhkck5hbWV9LmgifSA9IDE7
CisgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGUke3BhcmVudEhkck5hbWV9LmgifSA9IDE7
CisgICAgICAgICRoZHJJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAg
ICAjJGhkckluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAwOworICAgIH0K
KworICAgICMgVE9ETyAtIG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlr
ZXdpc2UgdGhlCisgICAgIyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9HRE9NLCB0b28KKyAgICAk
aW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRWxlbWVudC5o
In0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7CisgICAgJGltcGxJ
bmNsdWRlc3siQ1NTUnVsZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0
aW9uLmgifSA9IDE7CisgICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcuaCJ9ID0gMTsKKyAg
ICAkaW1wbEluY2x1ZGVzeyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3si
RXZlbnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhlbEFycmF5LmgifSA9
IDE7CisgICAgJGltcGxJbmNsdWRlc3siRE9NV2luZG93LmgifSA9IDE7CisgICAgJGltcGxJbmNs
dWRlc3siVGV4dC5oIn0gPSAxOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlvbmFs
IG9yIGluIGEgaGVhZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAkaGFj
a0RlY2xzID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NWYWx1ZSogbm9kZSk7Cisg
ICAgZ3BvaW50ZXIgdG9HRE9NKENTU1J1bGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShF
bGVtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIG5vZGUpOworICAg
IGdwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogbm9kZSk7IAorICAgIC8vZ3BvaW50ZXIg
dG9HRE9NKFNWR1BhdGhTZWcqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oU3R5bGVTaGVl
dCogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOyAK
KyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0
b0dET00oRXZlbnQqIG5vZGUpOyAKKyAgICBncG9pbnRlciB0b0dET00oQ2FudmFzUGl4ZWxBcnJh
eSogbm9kZSk7IAorICAgIGdwb2ludGVyIHRvR0RPTShET01XaW5kb3cqIG5vZGUpOyAKKyAgICBn
cG9pbnRlciB0b0dET00oVGV4dCogbm9kZSk7IAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitF
T0YKKworICAgIHB1c2goQGNCb2R5LCAkaGFja0RlY2xzKTsKKworICAgICMgWFhYIFRPRE86IG1h
a2UgdGhpcyBvcHRpb25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3
YXkuCisgICAgbXkgJHN0cmluZ0NvbnZlcnQgPSA8PCAiRU9GIjsKK2NsYXNzIEdTdHJpbmdDb252
ZXJ0IHsKKyAgICBwdWJsaWM6CisgICAgY29uc3QgZ2NoYXIgKm1fc3RyOworICAgIEdTdHJpbmdD
b252ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMudXRm
OCgpLmRhdGEoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpLVVJMIGNvbnN0JiBz
KSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdT
dHJpbmdDb252ZXJ0KGNvbnN0IEtKUzo6VVN0cmluZyAmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChz
LlVURjhTdHJpbmcoKS5jX3N0cigpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0
b21pY1N0cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsgfQorfTsKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJHN0cmluZ0NvbnZlcnQp
OworCisgICAgcHVzaChAY0JvZHksICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4iKTsKKworICAgICMg
R2V0IGNvcnJlY3QgcGFzcy9zdG9yZSB0eXBlcyByZXNwZWN0aW5nIFBPRFR5cGUgZmxhZworICAg
IG15ICRwb2RUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9
OworICAgIG15ICRwYXNzVHlwZSA9ICRwb2RUeXBlID8gIkpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBv
ZFR5cGU+KiIgOiAiJGludGVyZmFjZU5hbWUqIjsKKworICAgIGlmICgke2ludGVyZmFjZU5hbWV9
IGVxICJET01XaW5kb3ciIHx8ICghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0
aW9uKCRpbnRlcmZhY2VOYW1lKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAg
ICMgICAgcHVzaChAY0JvZHksICJLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqIGV4
ZWMsIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiBvYmosIFNWR0VsZW1lbnQqIGNvbnRl
eHQpXG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1l
dGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgICBwdXNoKEBjQm9keSwgIktKUzo6
SlNWYWx1ZSogdG9KUyhLSlM6OkV4ZWNTdGF0ZSogZXhlYywgJHBhc3NUeXBlIG9iaiwgU1ZHRWxl
bWVudCogY29udGV4dClcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNzVHlwZSBvYmopXG4iKTsKKyAg
ICAgICAgI30KKworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgICAgICAjaWYgKCRw
b2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZH
RE9NT2JqZWN0PEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+LCAkY2xhc3NOYW1lLCAke2Ns
YXNzTmFtZX1Qcm90b3R5cGU+KGV4ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30g
ZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkg
eworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBjYWNoZVNWR0RPTU9iamVj
dDwkaW1wbENsYXNzTmFtZSwgJGNsYXNzTmFtZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVj
LCBvYmosIGNvbnRleHQpO1xuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVz
aChAY0JvZHksICIgICAgcmV0dXJuIFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0PFdlYkNvcmU6OiRp
bnRlcmZhY2VOYW1lLCBHRE9NJGludGVyZmFjZU5hbWU+KG9iaik7XG4iKTsKKyAgICAgICAgI30K
KyAgICAgICAgcHVzaChAY0JvZHksICJ9XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwg
In0gLyogbmFtZXNwYWNlIFdlYkNvcmUgKi8gXG4iKTsKKyAgICBteSAkaW1wbENvbnRlbnQgPSAi
IjsKKworICAgICMgWFhYIFRPRE8gcHVzaChAY0JvZHksICJ1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTtcblxuIik7CisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xuXG4iKTsKKyAgICBw
dXNoKEBjQm9keSwgIiNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3Ry
KS5tX3N0cilcbiIpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCisg
ICAgQGhQcmVmaXggPSBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICAgICAgI3B1
c2goQGhQcmVmaXgsICJcbiIpOworCisgICAgIyBIZWFkZXIgZ3VhcmQKKyAgICAgICAgbXkgJGd1
YXJkID0gIl9fIiAuICRjbGFzc05hbWUgLiAiX0hfXyI7CisKKyAgICBteSAkY2xzQ2FwcyA9IHN1
YnN0cihDbHNUb0dPYmpUeXBlKCRjbGFzc05hbWUpLCA1KTsKKyAgICBteSAkbGNhc2VfaWZhY2Vu
YW1lID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpOworICAgICNteSAkcGFy
ZW50Q2xzQ2FwcyA9ICJHRE9NXyIgLiBDbHNUb0dPYmpUeXBlKCRwYXJlbnRJbnRlcmZhY2VOYW1l
KTsKKworICAgIEBoUHJlZml4R3VhcmQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJGd1YXJkCisjZGVm
aW5lICRndWFyZAorRU9GCisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5f
REVDTFMKKworRU9GCisKKyAgICBwdXNoKEBoQm9keVByZSwgJGltcGxDb250ZW50KTsKKworICAg
ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCisjZGVmaW5lIEdET01fVFlQRV8ke2Nsc0NhcHN9
ICAgICAgICAgICAgKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
XyR7Y2xzQ2Fwc30ob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgo
b2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfSkpCisjZGVmaW5lIEdET01f
JHtjbHNDYXBzfV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFz
cyksICBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJGNsYXNzTmFtZSlDbGFzcykKKyNkZWZpbmUgR0RP
TV9JU18ke2Nsc0NhcHN9KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUo
KG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9
X0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQ
RV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAk
e2NsYXNzTmFtZX1DbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRl
ICR7Y2xhc3NOYW1lfVByaXZhdGU7CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICAke3Bh
cmVudENsYXNzTmFtZX0gcGFyZW50X2luc3RhbmNlOworCisgICAgJHtjbGFzc05hbWV9UHJpdmF0
ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RD
bGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNl
bmFtZX1fZ2V0X3R5cGUgKHZvaWQpOworCitFT0YKKworICAgIHB1c2goQGhCb2R5LCAkaW1wbENv
bnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9
X1BST1BfCisjZGVmaW5lICR7Z3VhcmR9X1BST1BfCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJv
cFByZSwgJGltcGxDb250ZW50KTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVD
TFNcbiIpOworCisgICAgJGhkclByb3BJbmNsdWRleyJnbGliLW9iamVjdC5oIn0gPSAxOworICAg
ICRoZHJQcm9wSW5jbHVkZXsiUHJpdmF0ZUludCR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAg
ICAkaGRyUHJvcEluY2x1ZGV7IkdET01PYmplY3QuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1
ZGV7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJF
T0YiOworI2lmbmRlZiAke2d1YXJkfV9JTlRfCisjZGVmaW5lICR7Z3VhcmR9X0lOVF8KKyNpbmNs
dWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9
LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0u
aCIKK0VPRgorCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAg
ICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3Ig
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNl
c01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgJGlt
cGxDb250ZW50ID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIg
dG9HRE9NKCR7aW50ZXJmYWNlTmFtZX0qIG5vZGUpOworfSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAq
LyAKK0VPRgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVudCk7CisgICAgfQor
ICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJHX0JFR0lOX0RFQ0xTXG4iKTsKKworICAgICNDbGFz
cyBkZWNsYXJhdGlvbgorICAgICNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsK
KyAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUg
e1xuIik7CisgICAgI30gZWxzZSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFz
cyBHRE9NJGludGVyZmFjZU5hbWUgOiBwdWJsaWMgJHBhcmVudEdJZmFjZU5hbWUge1xuIik7Cisg
ICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdHlwZWRlZiAkcGFyZW50R0lmYWNlTmFt
ZSBCYXNlO1xuIik7CisgICAgI30KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHVibGljOlxu
Iik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRfZ29ial90eXBlKCkg
eyByZXR1cm4gR0RPTV9UWVBFXyR7Y2xzQ2Fwc307IH1cbiIpOworCisgICAgbXkgJG5lZWRzU1ZH
Q29udGV4dCA9IDA7CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICIgICAgR0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5h
bWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6
ICIiKSAuICIpO1xuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVy
bmFsLCAiICAgIHZpcnR1YWwgfkdET00kaW50ZXJmYWNlTmFtZSgpO1xuIikgaWYgKCEkaGFzUGFy
ZW50IG9yICRpbnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpIG9yICRpbnRlcmZhY2VOYW1lIGVx
ICJET01XaW5kb3ciOworCisgICAgaWYgKCEkaGFzUGFyZW50IHx8ICgkaW50ZXJmYWNlTmFtZSBl
cSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAjICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4q
IGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cbiIpOworICAgICAgICAjICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxlbWVudCogY29udGV4dCgpIGNvbnN0IHsg
cmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJu
YWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dDtcbiIpOworICAgICAgICAjICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBv
ZFR5cGU+ID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5n
Q29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4g
bV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
ICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7
IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4i
KTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVt
ZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
ICAgIFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNl
IHsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVy
ZmFjZU5hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cblxuIik7Cisg
ICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5h
bWU+IG1faW1wbDtcbiIpOworICAgICAgICAjfQorICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29udmVydGVyIn0pIHsKKyAgICAgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSogaW1wbCgp
IGNvbnN0XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB7XG4iKTsKKyAg
ICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdl
YkNvcmU6OiRpbnRlcmZhY2VOYW1lKj4oQmFzZTo6aW1wbCgpKTtcbiIpOworICAgICAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgIH1cbiIpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVy
bmFsLCAifTtcbiIpOworCisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGNCb2R5LCAiR0RP
TSR7aW50ZXJmYWNlTmFtZX06OkdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6
OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVu
dCogY29udGV4dCIgOiAiIikgLiAiKVxuIik7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDptX2ltcGwoaW1wbClcbiIp
OworICAgIH0gZWxzaWYgKCRoYXNQYXJlbnQpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAg
OiAkcGFyZW50R0lmYWNlTmFtZShpbXBsIiAuICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwg
Y29udGV4dCIgOiAiIikgLiAiKVxuIikgaWYgKCRpbnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ci
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRHSWZh
Y2VOYW1lKClcbiIpIDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBtX2NvbnRleHQoY29u
dGV4dClcbiIpIGlmICRuZWVkc1NWR0NvbnRleHQ7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
ICwgbV9pbXBsKGltcGwpXG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIntcbiIpOwor
ICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKworICAgICMgRGVzdHJ1Y3RvcgorICAgIGlmICgh
JGhhc1BhcmVudCBvciAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAg
IHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUo
KVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisKKyAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgbV9pbXBsLmdldCgpLT5kZXJlZigpO1xuIik7CisgICAgICAgIGlmICgkaW50ZXJm
YWNlTmFtZSBlcSAiTm9kZSIpIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNv
cmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG1faW1w
bC0+ZG9jdW1lbnQoKSwgbV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAgICAgIyAgICBteSAkYW5pbWF0ZWRU
eXBlID0gJGltcGxDbGFzc05hbWU7CisgICAgICAgICAgICAjICAgICRhbmltYXRlZFR5cGUgPX4g
cy9TVkcvU1ZHQW5pbWF0ZWQvOworCisgICAgICAgICAgICAjICAgICMgU3BlY2lhbCBjYXNlIGZv
ciBKU1NWR051bWJlcgorICAgICAgICAgICAgIyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZH
QW5pbWF0ZWRUeXBlKCRhbmltYXRlZFR5cGUpIGFuZCAkcG9kVHlwZSBuZSAiZmxvYXQiKSB7Cisg
ICAgICAgICAgICAjICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBKU1NWR0R5bmFtaWNQT0RUeXBl
V3JhcHBlckNhY2hlPCRwb2RUeXBlLCAkYW5pbWF0ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlcihtX2lt
cGwuZ2V0KCkpO1xuIik7CisgICAgICAgICAgICAjICAgIH0KKyAgICAgICAgICAgICN9CisgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmZvcmdldERPTU9iamVjdChtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0KKworICAgICAg
ICBwdXNoKEBjQm9keSwgIlxufVxuXG4iKTsKKyAgICB9CisKKyAgICAjIERvY3VtZW50IG5lZWRz
IGEgc3BlY2lhbCBkZXN0cnVjdG9yIGJlY2F1c2UgaXQncyBhIHNwZWNpYWwgY2FzZSBmb3IgY2Fj
aGluZy4gSXQgbmVlZHMKKyAgICAjIGl0cyBvd24gc3BlY2lhbCBoYW5kbGluZyByYXRoZXIgdGhh
biByZWx5aW5nIG9uIHRoZSBjYWNoaW5nIHRoYXQgTm9kZSBub3JtYWxseSBkb2VzLgorICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAi
R0RPTSR7aW50ZXJmYWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAg
IHB1c2goQGNCb2R5LCAie1xuICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9y
Z2V0RE9NT2JqZWN0KHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihpbXBs
KCkpKTtcbn1cblxuIik7CisgICAgfQorCisgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJO
YW1lfS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0g
MTsKKyAgICAkaW1wbEluY2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAkaW1wbFR5
cGVkZWZzeyIkY2xhc3NOYW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1l
fUNsYXNzIn0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Vi
a2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIiAvKiB5dWtrOiBUT0RPIC0gbWFr
ZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFr
ZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiIC8qIHl1a2s6IFRP
RE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiIC8q
IHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNHcmFk
aWVudC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAi
Q2FudmFzU3R5bGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2lu
Y2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0
aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIgLyogeXVr
azogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkdkb21FdmVudFRhcmdl
dE5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUg
IlByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMg
b3B0aW9uYWwgb24gRXZlbnRUYXJnZXQqLworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIK
KyNpbmNsdWRlICIke2hkck5hbWV9LmgiCisjaW5jbHVkZSAiUHJpdmF0ZSR7aGRyTmFtZX0uaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50JHtoZHJOYW1lfS5oIgorI2luY2x1ZGUgIiR7aGRyTmFtZX1w
cm9wcy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgInVzdHJpbmcuaCIKKyNpbmNs
dWRlICJLVVJMLmgiCisKKyNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5LmgiCisjaW5jbHVkZSAi
RXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNs
dWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJT
dHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJ3ZWJraXRtYXJz
aGFsLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisKKworRU9GCisKKyAgICBwdXNoKEBjQm9k
eVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKwor
JHtoYWNrRGVjbHN9CisKK0dfQkVHSU5fREVDTFMKKworJHtzdHJpbmdDb252ZXJ0fQorCitHX0RF
RklORV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAke3BhcmVudEdPYmpU
eXBlfSk7CisKKyNkZWZpbmUgX0dfR0VUX1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5t
X3N0cikKKworLyoKK3N0cnVjdCBfJHtjbGFzc05hbWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2Vi
Q29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqaXRlbTsKK307ICAKKworI2RlZmluZSBHRE9NXyR7Y2xz
Q2Fwc31fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmop
LCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9UHJpdmF0ZSkpCisqLworR19FTkRf
REVDTFMKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dl
dF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCkKK3sKK0VPRgorCisgICAgcHVzaChAY0Jv
ZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0Yi
OworICAgIEdET00ke2ludGVyZmFjZU5hbWV9ICpyZXM7CisgICAgcmVzID0gc3RhdGljX2Nhc3Q8
R0RPTSR7aW50ZXJmYWNlTmFtZX0qPihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9E
T01fT0JKRUNUKHJlcXVlc3QpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7
aW50ZXJmYWNlTmFtZX0qPihyZXMtPmltcGwoKSk7CitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYs
ICRpbXBsQ29udGVudCk7CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1l
UHJlZml4ID0gJGxjYXNlX2lmYWNlbmFtZTsgCisgICAgU0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0
dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wTmFt
ZSA9IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgbXkg
JHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5
cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRj
bGFzc05hbWUgKnRoaXoiOworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7
CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBp
ZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisKKyAgICAgICAgaWYgKHNraXBQcm9w
VGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQ
Uk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgYWRkUHJvcEluY0hkcigkcHJv
cF90eXBlKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSAkdHlwZVxu
JGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3BfZ2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rp
b25TaWcpO1xuXG4iKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSB2
b2lkXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJvcF9zZXRfIiAuICIkcHJvcE5hbWUgKCRm
dW5jdGlvblNpZywgJHR5cGUiIC4gInZhbHVlKTtcblxuIik7CisgICAgfQorCisgICAgIyBQcm9w
ZXJ0aWVzCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Cit9CisKK0dfQkVHSU5fREVDTFMK
KworZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKworc3Rh
dGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCitlbnVtIHsK
KyAgICBQUk9QXzAsCitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisK
KyAgICBteSBAdHh0X2luc3RhbGxfcHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X3NldF9wcm9wcyA9
ICgpOworICAgIG15IEB0eHRfZ2V0X3Byb3BzID0gKCk7CisKKyAgICBteSAkcHJpdl9mbiA9IEdl
dFByaXZGbigkaW50ZXJmYWNlTmFtZSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAiZ3NlbGYiLCAic2Vs
ZiIpOworCisgICAgbXkgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHts
Y2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAgIEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAg
ICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1lfSAqc2Vs
ZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChw
cm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsK
KworICAgIG15ICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2Vf
aWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3Bf
aWQsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNl
bGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAo
cHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7
CisKKyAgICBTS0lQRU5VTTogZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0
cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHByb3BfbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+bmFtZTsKKyAgICAgICAgbXkgJHNldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KCRwcm9wX25hbWUpOworICAgICAgICBteSAkZ2V0cHJvcF9uYW1lX2ZuID0gJGNv
ZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHByb3BfbmFtZSk7CisKKyAgICAgICAgbXkgJHByb3BO
YW1lID0gZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJHByb3BDYXBzID0gdWMo
JHByb3BOYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAg
ICAgbXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BDYXBzfSI7CisgICAgICAgIG15ICR7cHJv
cF9ndHlwZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5cGUpOworICAgICAgICBpZiAoJHByb3BfZ3R5
cGUgZXEgImV2ZW50X3RhcmdldCIpIHsKKyAgICAgICAgICAgICRwcm9wX2d0eXBlID0gImV2ZW50
X3RhcmdldF9ub2RlIjsKKyAgICAgICAgfQorICAgICAgICBteSAke3Byb3BHVHlwZX0gPSB1Yygk
cHJvcF9ndHlwZSk7CisgICAgICAgIG15ICRsY2FzZV9ndHlwZW5hbWUgPSAiZ2RvbV8iIC4gJHBy
b3BfZ3R5cGU7CisKKyAgICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAg
ICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
ICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5
cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3Jh
cmlseSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07Cisg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBwdXNoKEBjQm9keVByaXYsICIgICAgJHtw
cm9wRW51bX0sXG4iKTsKKworICAgICAgICBteSAkZ3R5cGUgPSBHZXRQcm9wR1R5cGUoJHByb3Bf
dHlwZSk7CisgICAgICAgIG15ICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBREFCTEUiOworICAg
ICAgICBteSAkd3JpdGVhYmxlID0gJGF0dHJpYnV0ZS0+dHlwZSAhfiAvXnJlYWRvbmx5LzsKKyAg
ICAgICAgbXkgJGNvbnN0ID0gInJlYWQtb25seSAiOworICAgICAgICBpZiAoJHdyaXRlYWJsZSAm
JiAkY3VzdG9tKSB7CisgICAgICAgICAgICAkY29uc3QgPSAicmVhZC1vbmx5IChkdWUgdG8gY3Vz
dG9tIGZ1bmN0aW9ucyBuZWVkZWQgaW4gZ2RvbXdlYmtpdCkiOworICAgICAgICAgICAgbmV4dCBT
S0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAhJGN1c3RvbSkg
eworICAgICAgICAgICAgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEV1JJVEUiOworICAgICAg
ICAgICAgJGNvbnN0ID0gInJlYWQtd3JpdGUgIjsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRf
Z3R5cGUgPSAkZ3R5cGU7CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAg
ICAgICAgICRfZ3R5cGUgPSAidWludCI7ICMgeXVrLgorICAgICAgICB9CisgICAgICAgIG15ICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eSAoZ19rbGFzcywgJHtwcm9wRW51bX0sIAorICAgICAgICAgICAgZ19wYXJhbV9zcGVj
XyR7X2d0eXBlfSAoIiR7cHJvcE5hbWV9IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICIk
e2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAg
ICAgICAgICAgICAgICAiJHtjb25zdH0gJHt0eXBlfSAke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5h
bWV9IiwgLyogbG9uZ2VyICovCitFT0YKKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMs
ICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSAiLyogVE9E
TyEgJGd0eXBlICovXG4iOworCisgICAgICAgIGlmICgkd3JpdGVhYmxlKSB7CisKKyAgICAgICAg
ICAgIG15ICRvayA9IDA7CisgICAgICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAg
ICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgICAgICRjb252ZXJ0
X2ZuID0gIldlYkNvcmU6OlN0cmluZyI7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBU
T0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0
CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAgICAgICAkb2sg
PSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RP
OiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0Cisg
ICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0g
MTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBz
a2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAg
ICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVy
ZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBz
dHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAk
b2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAidWludCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNp
ZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9r
ID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAg
ICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIyBYWFggVE9ETyAt
IHNraXAgTG9jYXRpb24KKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTG9jYXRp
b24iKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKCRvaykgeworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIg
ICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0
eHRfc2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIp
IGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVz
aChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgZ3NlbGYtPnNldCR7c2V0cHJvcF9uYW1lX2ZufSgk
e2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRndHlwZSAodmFsdWUpKSIpOworCisgICAgICAgICAg
ICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRl
ckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIpO1xu
Iik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBicmVh
aztcbiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1c2go
QHR4dF9nZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKworICAg
ICAgICBteSAkZXhjZXB0aW9uID0gIiI7CisgICAgICAgIGlmIChAeyRhdHRyaWJ1dGUtPmdldHRl
ckV4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAkZXhjZXB0aW9uID0gImVjIjsKKyAgICAgICAg
ICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOwor
ICAgICAgICBteSAkcG9zdF9jb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRkb25lID0gMDsK
KyAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJGNvbnZlcnRf
Zm4gPSAiX0dfR0VUX1VURjgoIjsKKyAgICAgICAgICAgICRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7
CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAg
ICAgICAgIyRjb252ZXJ0X2ZuID0gIldURjo6Z2V0UHRyKCR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRf
cHJpdmF0ZSgiOworICAgICAgICAgICAgIyRjb252ZXJ0X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZh
Y2VOYW1lLCAke2xjYXNlX2d0eXBlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisgICAgICAgICAg
ICAjJGNvbnZlcnRfZm4gPSAiJHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PigiOworICAgICAgICAgICAgIyRwb3N0X2NvbnZlcnRf
Zm4gPSAiKSI7CisgICAgICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBl
OworICAgICAgICAgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICBQYXNzUmVm
UHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4gcHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2Zu
fSgke2V4Y2VwdGlvbn0pOworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QgKHZhbHVlLCBXZWJD
b3JlOjp0b0dET00ocHRyLmdldCgpKSk7CitFT0YKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRf
cHJvcHMsICR0eHRfZ2V0X3Byb3ApOworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKCEkZG9uZSkgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9w
cywgIiAgICAgICAgZ192YWx1ZV9zZXRfJF9ndHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2Vs
Zi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xu
Iik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBi
cmVhaztcbiAgICB9XG4iKTsKKworICAgICAgICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nh
cnk/Pz8KKyAgICAgICAgIyBjYW4gaXQgYmUgZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVj
X2d0eXBlCisgICAgICAgICMgYW5kIGdldHRpbmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUg
bWluLW1heCBmb3IgZXhhbXBsZT8KKyAgICAgICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAg
ICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBH
X01JTklOVCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBt
YXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5z
dGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQg
Ki8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZM
T0FULCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4
ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFs
bF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAv
KiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAg
ICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgk
Z3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAg
ICAgIEdfTUFYVUlOVDY0LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
ZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7Cisg
ICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAg
IDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXgg
Ki8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWlu
ICovCisgICAgICAgICAgICAgICAgR19NQVhMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAg
ICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAidWludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7Cisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFY
VUlOVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8
ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAg
ICAgICAgICAgICAgIEdfTUFYSU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAg
ICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIi
KSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAg
ICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAv
KiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHRE9NX1RZ
UEVfJHtwcm9wR1R5cGV9LCAvKiBnb2JqZWN0IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAg
ICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgKEdQYXJhbUZs
YWdzKSR7Z3BhcmFtZmxhZ30pKTsgICAgICAgICAgICAgICAgICAgCisKK0VPRgorICAgICAgICBw
dXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworCisKKyAgICB9CisK
KyAgICBwdXNoKEBjQm9keVByaXYsICJ9O1xuXG4iKTsKKworCisgICAgJHR4dF9nZXRfcHJvcCA9
IDw8ICJFT0YiOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q
Uk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorfQorRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAg
ICAkdHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpF
Q1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAg
ICAgICBicmVhazsKKyAgICB9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0
X3NldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8ICJFT0YiOworICAg
IGNhc2UgUFJPUF9BR0U6CisgICAgICAgIHNlbGYtPmFnZSA9IGdfdmFsdWVfZ2V0X2ludCAodmFs
dWUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIGdfdmFs
dWVfc2V0X2ludCh2YWx1ZSwgc2VsZi0+YWdlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
KyAgIGdfdmFsdWVfaW5pdCgmcGFyYW1zWzBdLCBHX1RZUEVfRlJPTV9JTlNUQU5DRShvYmplY3Qp
KTsKKyAgICAgICAgKyAgIGdfdmFsdWVfc2V0X2luc3RhbmNlKCZwYXJhbXNbMF0sIChncG9pbnRl
cilvYmplY3QpOworCitFT0YKKworICAgICMgVE9ETzogd29yayBvdXQgaWYgaXQncyBhcHByb3By
aWF0ZSB0byBzcGxpdCB0aGlzIGludG8gbWFueSBkaWZmZXJlbnQKKyAgICAjIHNpZ25hbHMgZS5n
LiAiY2xpY2siIGV0Yy4KKyAgICBteSAkdHh0X2luc3RhbGxfc2lnbmFscyA9ICIiOworCisgICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIG9yCisgICAgICAgICRpbnRlcmZhY2VO
YW1lIGVxICJYTUxIdHRwUmVxdWVzdCIpIHsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3NpZ25hbHMg
PSA8PCAiRU9GIjsKKyAgICBldmVudF9zaWduYWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxf
bmV3KCJicm93c2VyLWV2ZW50IiwKKyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocmVxdWVzdENs
YXNzKSwKKyAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05B
TF9BQ1RJT04gfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf
U0lHTkFMX0RFVEFJTEVEICApLAorICAgICAgICAwLAorICAgICAgICBOVUxMLAorICAgICAgICBO
VUxMLAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAg
ICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgIEdET01fVFlQRV9FVkVOVCwgR19UWVBFX0JPT0xF
QU4pOworRU9GCisgICAgfQorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKK3N0YXRp
YyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7Cisg
ICAgLyoke2NsYXNzTmFtZX0qIHJlcXVlc3QgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsqLwor
ICAgIC8qJHtjbGFzc05hbWV9UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ki8KKyAgICAK
KyAgICAvKkdPYmplY3RDbGFzcyAqcGFyZW50X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWsgKGdf
dHlwZV9wZWVrX3BhcmVudCAoJHtwYXJlbnRHT2JqVHlwZX0pKTsqLworCisgICAgLyogRnJlZSBh
bnkgbWVtb3J5IG9yIGNsb3NlIGFueSBmaWxlcyAqLyAKKworICAgIC8qcGFyZW50X2NsYXNzLT4g
ZmluYWxpemUgKG9iamVjdCk7Ki8KKworICAgIEdfT0JKRUNUX0NMQVNTKCR7bGNhc2VfaWZhY2Vu
YW1lfV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitAdHh0X3NldF9wcm9w
cworCitAdHh0X2dldF9wcm9wcworCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fY2xh
c3NfaW5pdCgke2NsYXNzTmFtZX1DbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdPYmplY3RD
bGFzcyAqZ19rbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChyZXF1ZXN0Q2xhc3MpOworICAgIGdfa2xh
c3MtPmZpbmFsaXplID0gJHtsY2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplOworICAgIGdfa2xhc3Mt
PnNldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuOworICAg
IGdfa2xhc3MtPmdldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5
X2ZuOworICAgIAorQHR4dF9pbnN0YWxsX3Byb3BzCisKKyR0eHRfaW5zdGFsbF9zaWduYWxzCisK
KyAgICAvKmdfdHlwZV9jbGFzc19yZW1vdmVfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZigk
e2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5h
bWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0KQoreworICAgIC8qJHtjbGFzc05hbWV9UHJp
dmF0ZSogcHJpdiA9IEdET01fJHtjbHNDYXBzfV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBy
ZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfSAgIAorCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJp
diwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGVJbnRHZG9tJHtp
bnRlcmZhY2VOYW1lfS5oIn0gPSAxOworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCisj
aWZuZGVmICR7Z3VhcmR9X1BSSVZfCisjZGVmaW5lICR7Z3VhcmR9X1BSSVZfCisjaW5jbHVkZSAi
Z2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICIke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAi
R0RPTU9iamVjdC5oIgorLyojaW5jbHVkZSAiUHJpdmF0ZSR7cGFyZW50SGRyTmFtZX0uaCIqLwor
LypHX0JFR0lOX0RFQ0xTKi8KKy8qY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfTsqLwor
I2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJvZHlQcml2
LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0RPTSR7aW50ZXJmYWNlTmFtZX0gOiBwdWJsaWMgJHtw
YXJlbnRHSWZhY2VOYW1lfSB7CisKK3B1YmxpYzoKKyAgICBHRE9NJHtpbnRlcmZhY2VOYW1lfShX
ZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBpbXBsKSA6ICRwYXJlbnRHSWZhY2VOYW1lfShpbXBs
KQorICAgIHsgaW1wbC0+cmVmKCk7IH0KKyAgICB+R0RPTSR7aW50ZXJmYWNlTmFtZX0oKSB7IG1f
aW1wbC0+ZGVyZWYoKTsgfQorCisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCgp
IGNvbnN0IHsgcmV0dXJuIG1faW1wbDsgfQorCisKK3ByaXZhdGU6CisgICAgV2ViQ29yZTo6JHtp
bnRlcmZhY2VOYW1lfSAqbV9pbXBsOworfTsKKworRU9GCisKKyAgICAgICAgI3B1c2goQGhCb2R5
UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy99
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX0gJHtj
bGFzc05hbWV9OworCitXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2Vu
YW1lfV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJlcXVlc3QpOworCisvKkdfRU5EX0RFQ0xT
Ki8KKworI2VuZGlmIC8qICR7Z3VhcmR9X1BSSVZfICovCisKK0VPRgorCisgICAgI3JldHVybiBy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPigoV2ViQ29yZTo6Tm9k
ZSopKHJlcykpOworICAgICAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAg
ICAgICAgI2lmICgkcGFyYW1JRExUeXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAj
IFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAjICAg
ICRpbXBsSW5jbHVkZXN7IkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7CisgICAg
ICAgICN9IGVsc2UgeworICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7JGluY2x1ZGVIZHJ9ID0g
MTsKKyAgICAgICAgI30KKyAgICAgICAgJGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1lfS5o
In0gPSAxOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlR2RvbURPTU9iamVjdC5oIn0g
PSAxOworCisgICAgICAgIExPT1A6IGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+
ZnVuY3Rpb25zfSkgeworICAgICAgICAgICAgI215ICRmdW5jdGlvbk5hbWUgPSBkZWNhbWVsaXpl
KCRjbGFzc05hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFt
ZSk7CisgICAgICAgICAgICAgICAgbXkgJGZuX3NpZ19uYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPm5hbWU7CisgICAgICAgICAgICAgICAgbXkgJGZuX3NpZ190eXBlID0gJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPnR5cGU7CisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICJnZG9t
XyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZuX3Np
Z19uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkcmV0dXJuVHlwZSA9IEdldEdUeXBlKCRmbl9z
aWdfdHlwZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldF9pc19jbHNfdHlwZSA9IElzR0RPTUNs
YXNzVHlwZSgkZm5fc2lnX3R5cGUpOworCisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2ln
ID0gIiRjbGFzc05hbWUgKnRoaXoiOworCisgICAgICAgICAgICAgICAgbXkgJGNhbGxfaW1wbF9w
YXJhbXMgPSAiIjsKKyAgICAgICAgICAgICAgICBteSAkZ2RvbV9mbl9wcmVmaXggPSAiZ2RvbV8i
IC4gZGVjYW1lbGl6ZSgkZm5fc2lnX3R5cGUpOworCisgICAgICAgICAgICAgICAgaWYgKCRmdW5j
dGlvbk5hbWUgZXEgImdkb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3NldF9wcm9wZXJ0eSIpIHsK
KyAgICAgICAgICAgICAgICAgICAgIyByZXNlcnZlZCBuYW1lIGNsYXNoIGluIGdsaWIhCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRp
b25fc2V0X2Nzc19wcm9wZXJ0eSI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICMgWFhYIHNraXAgQ29tcGFyZUhvdyBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAg
IGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3JhbmdlX2NvbXBhcmVfYm91bmRhcnlfcG9pbnRz
IikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNr
aXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIENv
bXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAg
ICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
IyBYWFggc2tpcCBTVkdEb2N1bWVudCBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAg
IGlmICgkcmV0dXJuVHlwZSBlcSAiR2RvbVNWR0RvY3VtZW50ICoiKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQg
ZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9u
ICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09Q
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAgc29tZSBj
dXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBteSAkaXNfY3VzdG9tX2Zu
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsK
KyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9odG1sX2NvbGxlY3Rp
b25faXRlbSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9o
dG1sX2NvbGxlY3Rpb25fbmFtZWRfaXRlbSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X29wZW4iIHx8CisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9zZXRfcmVxdWVz
dF9oZWFkZXIiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21f
eG1sX2h0dHBfcmVxdWVzdF9zZW5kIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0X3Jlc3BvbnNlX2hlYWRlciIgfHwKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0
X292ZXJyaWRlX21pbWVfdHlwZSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2Rpc3BhdGNoX2V2ZW50IiB8fAorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZSIp
IHsKKyAgICAgICAgICAgICAgICAgICAgJGlzX2N1c3RvbV9mbiA9IDA7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAjJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0
cF9yZXF1ZXN0X2FkZF9ldmVudF9saXN0ZW5lciIgfHwKKyAgICAgICAgICAgICAgICAgICAgIyRm
dW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9yZW1vdmVfZXZlbnRfbGlzdGVu
ZXIiIHx8CisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYgCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUi
ICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBw
ZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2Rv
bV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5h
bWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9kZSIg
JiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxr
ZXJfZmlyc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5l
ICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmciICYmIAor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25l
eHRfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9ub2RlIiAmJiAKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX3ByZXZpb3Vz
X25vZGUiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9E
TzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtm
dW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7
JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1J
RExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNCb2R5KCRw
YXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlw
ZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1J
RExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUo
JHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25TaWcgLj0gIiwg
JHBhcmFtVHlwZSRwYXJhbU5hbWUiOworCisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9p
c19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCRwYXJhbUlETFR5cGUgbmUgIkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkcGFyYW1JRExUeXBlIG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7cGFyYW1JRExU
eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IlByaXZhdGVHZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7ICMgdGhpcyBp
c24ndCBzdHJpY3RseSBuZWNlc3NhcnkgYnV0IG9uZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQgZmls
ZXMgbmVlZGVkIGl0IHNvLi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUg
fHwgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAkcGFyYW1OYW1lID0gIl9nXyIgLiAkcGFyYW1OYW1lOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkY2FsbF9pbXBsX3BhcmFtcykgeworICAgICAg
ICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFk
ZEluY0hkcigkZm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190
eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9zaWdf
dHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCRy
ZXR1cm5UeXBlIG5lICJ2b2lkIikgeworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lz
X2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVx
ICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggPz8/PyB3
dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7
CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7Zm5fc2ln
X3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5j
bHVkZXN7IlByaXZhdGVHZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9
IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdwor
ICAgICAgICAgICAgICAgICMgYnV0IHNraXAgZnJvbSBoZXJlIHRvIGFsbG93IHNvbWUgaGVhZGVy
cyB0byBiZSBjcmVhdGVkCisgICAgICAgICAgICAgICAgIyBmb3IgYSBzdWNjZXNzZnVsIGNvbXBp
bGUuCisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3Jl
IiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVw
bGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2Rv
bV9ub2RlX2FwcGVuZF9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHks
ICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIp
OworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3Rv
bSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAg
IG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAkX3Jl
dHVyblR5cGUgPSAkcmV0dXJuVHlwZTsKKyAgICAgICAgICAgICAgICBteSAkZG9tb2JqVHlwZSA9
ICJHRE9NIi4kZm5fc2lnX3R5cGU7CisgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBl
cSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICdn
ZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAg
ICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAgICRfcmV0dXJuVHlwZSA9ICdHZG9t
Q2FudmFzUmVuZGVyaW5nQ29udGV4dCAqJzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9ialR5
cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICAk
Z2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQnOworICAgICAg
ICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cuICBz
a2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVj
dCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQorICAgICAgICAgICAgICAg
ICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBp
ZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgZXEgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsK
KyAgICAgICAgICAgICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgJF9y
ZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgKic7CisgICAgICAgICAg
ICAgICAgICAgICRkb21vYmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnOwor
ICAgICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVy
aW5nX2NvbnRleHQyZCc7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0
b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVz
dCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91
dCBob3cpCisgICAgICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3Jl
YXRlIGEgR0RPTURvbU9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIAorCisgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJXRUJLSVRfQVBJICRfcmV0dXJu
VHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9u
U2lnKVxue1xuIik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQi
KSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVs
dCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwgKHRoaXosIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAodGhp
eik7XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9ICgke2xjYXNlX2lmYWNl
bmFtZX1fZ2V0X3ByaXZhdGUodGhpeikpO1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1
cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1
cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtcbiIpOworICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0
dXJuX2lmX2ZhaWwgKGl0ZW0pO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAg
ICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7Cisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9y
LT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15
ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAg
ICAgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAg
ICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICMg
ICAgJGltcGxUeXBlZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoISRwYXJhbVR5cGVJc1ByaW1pdGl2
ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIg
ZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKyAgICAgICAg
ICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Cisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5u
YW1lKTsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dE
T01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICMgSEFDSyEK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBf
cmVxdWVzdF9vcGVuIiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbS0+bmFtZSBl
cSAidXJsIikgeworCisgICAgICAgICAgICAgICAgICAgICAgICAjJGltcGxJbmNsdWRlc3siS1VS
TC5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2Vi
Q29yZTo6S1VSTCBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpLVVJMKCRwYXJhbU5hbWUpO1xu
Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCRw
YXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OlN0cmluZyBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3Jl
OjpTdHJpbmcoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBteSAkcGFyYW1fZ2RvbV9mbiA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRwYXJhbUlE
TFR5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAgI3B1c2goQGNCb2R5LCAiICAgIFdURjo6
UGFzc1JlZlB0cjxXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0+ICogX2dfJHtwYXJhbU5hbWV9ID0g
V1RGOjpSZWZQdHI8JHtwYXJhbV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKT47XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJFdmVudFRh
cmdldCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2
YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIF9nXyR7cGFy
YW1OYW1lfSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZXZl
bnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7cGFyYW1JRExUeXBlfSAqIF9nXyR7cGFyYW1OYW1lfSA9
ICgke3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86
IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoX2dfJHtwYXJhbU5hbWV9
LCAwKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsIChfZ18k
e3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIl9n
XyIuJHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXR1cm4ifTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduID0gIiI7Cisg
ICAgICAgICAgICAgICAgbXkgJGFzc2lnbl9wcmUgPSAiIjsKKyAgICAgICAgICAgICAgICBteSAk
YXNzaWduX3Bvc3QgPSAiIjsKKyAgICAgICAgICAgICAgICAkZ19yZXMgPSAwOworICAgICAgICAg
ICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKwor
ICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgJGFzc2lnbiA9ICJQYXNzUmVmUHRyPFdlYkNvcmU6OiR7Zm5fc2lnX3R5cGV9
PiBnX3JlcyA9ICI7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduX3ByZSA9ICJXVEY6
OmdldFB0cigiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wb3N0ID0gIikiOwor
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGFz
c2lnbiA9ICIke19yZXR1cm5UeXBlfSByZXMgPSAiOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG15ICRleGNlcHRpb25zID0gIiI7Cisg
ICAgICAgICAgICAgICAgaWYgKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgeworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
IGVjID0gMDtcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHtjYWxsX2ltcGxfcGFyYW1z
fSBuZSAiIikgeworICAgICAgICAgICAgICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiLCBlYyI7
CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAk
ZXhjZXB0aW9ucyA9ICJlYyI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICAjIG5lZWQgdGhpcyBmb3IgaW5jbHVkaW5nIC4uLiBfc29t
ZXRoaW5nXyAtIGZvciB0aGUgY2xhc3MgYXJncworICAgICAgICAgICAgICAgICNpZiAoJHJldF9p
c19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3siZ2RvbSR7
Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgI30KKyAgICAgICAgICAgICAg
ICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIgfHwKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUi
IHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9yZXBs
YWNlX2NoaWxkIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9t
X25vZGVfcmVtb3ZlX2NoaWxkIikgeworICAgICAgICAgICAgICAgICAgICBteSAkY3VzdG9tX2dk
b21fbm9kZV9hcHBlbmRfY2hpbGQgPSA8PCAiRU9GIjsKKyAgICBib29sIG9rID0gaXRlbS0+JHtm
bl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pOworICAgIGlmIChv
aykKKyAgICB7CisgICAgICAgICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3Jl
dHVyblR5cGV9PihXZWJDb3JlOjp0b0dET00oJHJldHVyblBhcmFtTmFtZSkpOyAKKyAgICAgICAg
cmV0dXJuIHJlczsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7CitFT0YKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCk7CisgICAg
ICAgICAgICAgICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiICYmCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19j
YW52YXNfY29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
LyogWFhYIFRPRE8gLSBnZXQgY2FudmFzIG9iamVjdCAoaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtj
YWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTsqL1xuIiApOworICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTVN0cmlu
ZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259X0df
R0VUX1VURjgoaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0
aW9uc30pKTtcbiIgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBpZiAoJGdfcmVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZ19yZXMgPSAiJHth
c3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFt
c30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0pIiA7CisgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2ln
bn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7
ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSk7XG4iICk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2
b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgeworCisgICAgICAgICAgICAgICAgICAgIGlmICgkZm5f
c2lnX3R5cGUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
cmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgJHtfcmV0dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nhc3Q8JHtfcmV0dXJuVHlwZX0+
KFdlYkNvcmU6OnRvR0RPTShnX3Jlcy5nZXQoKSkpOyBcbiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgk
Zm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9ETzogcmV0dXJuIGNhbnZhcyBv
YmplY3QgKi9cbiIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIHJlcztcbiIpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiXG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKyAg
ICAgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xuXG4iKTsK
KyAgICBwdXNoKEBjQm9keVByaXYsICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xuXG4iKTsKKworICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiI2VuZGlmIC8qICR7Z3VhcmR9X0lOVF8qL1xuIik7CisKKyAgICBwdXNoKEBo
Qm9keSwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2goQGhCb2R5LCAiI2VuZGlmIC8qICRn
dWFyZCAqL1xuIik7CisKKyAgICBwdXNoKEBoQm9keVByb3AsICJHX0VORF9ERUNMU1xuXG4iKTsK
KyAgICBwdXNoKEBoQm9keVByb3AsICIjZW5kaWYgLyogJHtndWFyZH1fUFJPUF8qL1xuIik7Cit9
CisKKyMgSW50ZXJuYWwgaGVscGVyCitzdWIgV3JpdGVEYXRhCit7CisgICAgbXkgKCRvYmplY3Qs
ICRuYW1lKSA9IEBfOworCisKKyAgICAjIFdyaXRlIEludGVybmFsIGhlYWRlcgorICAgIG15ICRo
ZHJGTmFtZUludGVybmFsID0gIiRvdXRwdXREaXIvUHJpdmF0ZUludCIgLiAkbmFtZSAuICIuaCI7
CisgICAgb3BlbihJTlRIRUFERVIsICI+JGhkckZOYW1lSW50ZXJuYWwiKSBvciBkaWUgIkNvdWxk
bid0IG9wZW4gZmlsZSAkaGRyRk5hbWVJbnRlcm5hbCI7CisKKyAgICBwcmludCBJTlRIRUFERVIg
QGhQcmVmaXg7CisgICAgcHJpbnQgSU5USEVBREVSICJcbiI7CisgICAgcHJpbnQgSU5USEVBREVS
IEBoQm9keUludGVybmFsOworICAgIGNsb3NlKElOVEhFQURFUik7CisKKyAgICAjIFdyaXRlIFBy
aXZhdGUgaGVhZGVyCisgICAgbXkgJGhkckZOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL1ByaXZhdGUi
IC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4oUFJJVkhFQURFUiwgIj4kaGRyRk5hbWVQcml2Iikg
b3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lUHJpdiI7CisKKyAgICBwcmludCBQ
UklWSEVBREVSIEBoUHJlZml4OworICAgIHByaW50IFBSSVZIRUFERVIgIlxuIjsKKyAgICBwcmlu
dCBQUklWSEVBREVSIEBoQm9keVByaXY7CisgICAgY2xvc2UoUFJJVkhFQURFUik7CisKKyAgICAj
IFdyaXRlIFByaXZhdGUgSW1wbGVtZW50YXRpb24KKyAgICBteSAkaW1wbEZpbGVOYW1lUHJpdiA9
ICIkb3V0cHV0RGlyL1ByaXZhdGUiIC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihQUklWSU1Q
TCwgIj4kaW1wbEZpbGVOYW1lUHJpdiIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBs
RmlsZU5hbWVQcml2IjsKKworICAgIHByaW50IFBSSVZJTVBMIEBjUHJlZml4OworICAgIHByaW50
IFBSSVZJTVBMICJcbiI7CisgICAgcHJpbnQgUFJJVklNUEwgQGNCb2R5UHJpdjsKKworICAgIGNs
b3NlKFBSSVZJTVBMKTsKKworICAgICMgV3JpdGUgcHJvcGVydGllcyBoZWFkZXIgKGF2b2lkcyBy
ZWN1cnNpdmUgbmlnaHRtYXJlKQorICAgIG15ICRoZHJQcm9wRk5hbWUgPSAiJG91dHB1dERpci8i
IC4gJG5hbWUgLiAicHJvcHMuaCI7CisgICAgb3BlbihQUk9QSEVBREVSLCAiPiRoZHJQcm9wRk5h
bWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyUHJvcEZOYW1lIjsKKworICAgICRo
ZHJQcm9wSW5jbHVkZXN7ImdsaWItb2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBQUk9QSEVB
REVSIEBoUHJlZml4OworICAgIHByaW50IFBST1BIRUFERVIgIi8qIHJlY3Vyc2l2ZSBpbmNsdWRl
cyAvIGRlZmluZXMgaXNzdWUgZm9yY2VzIHNlcGFyYXRlIGhlYWRlciBmb3IgcHJvcGVydGllcy5c
bnBlcmhhcHMgLSBiZXR0ZXIgLSBhbGwgZ2RvbSBndGsgZnVuY3Rpb25zIHNob3VsZCBiZSBpbiBo
ZXJlISovXG4iOworICAgIHByaW50IFBST1BIRUFERVIgQGhCb2R5UHJvcFByZTsKKyAgICBwcmlu
dCBQUk9QSEVBREVSICIjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD5cbiI7CisgICAg
cHJpbnQgUFJPUEhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVo
ZHJQcm9wSW5jbHVkZXMpOworICAgIHByaW50IFBST1BIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJQ
cm9wSW5jbHVkZXMpOworICAgIHByaW50IFBST1BIRUFERVIgIlxuIjsKKyAgICBwcmludCBQUk9Q
SEVBREVSIEBoQm9keVByb3A7CisKKyAgICBjbG9zZShIRUFERVIpOworCisgICAgIyBXcml0ZSBw
dWJsaWMgaGVhZGVyLgorICAgIG15ICRoZHJGTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAu
ICIuaCI7CisgICAgb3BlbihIRUFERVIsICI+JGhkckZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBv
cGVuIGZpbGUgJGhkckZOYW1lIjsKKworICAgICRoZHJJbmNsdWRlc3siZ2xpYi1vYmplY3QuaCJ9
ID0gMTsKKworICAgIHByaW50IEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBIRUFERVIgQGhQ
cmVmaXhHdWFyZDsKKyAgICBwcmludCBIRUFERVIgIiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVm
aW5lcy5oPlxuIjsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9
IHNvcnQga2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMo
JWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIjsKKyAgICBwcmludCBIRUFERVIg
QGhCb2R5UHJlOworICAgIHByaW50IEhFQURFUiBtYXAgeyAidHlwZWRlZiBzdHJ1Y3QgXyRfICRf
O1xuIiB9IHNvcnQga2V5cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBp
ZiBrZXlzKCVpbXBsVHlwZWRlZnMpOworICAgIHByaW50IEhFQURFUiBAaEJvZHk7CisKKyAgICBj
bG9zZShIRUFERVIpOworCisgICAgIyBXcml0ZSB0aGUgaW1wbGVtZW50YXRpb24gc291cmNlcwor
ICAgIG15ICRpbXBsRmlsZU5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmNwcCI7Cisg
ICAgb3BlbihJTVBMLCAiPiRpbXBsRmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmls
ZSAkaW1wbEZpbGVOYW1lIjsKKworICAgIHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQg
SU1QTCAiI2luY2x1ZGUgXCJjb25maWcuaFwiXG5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJDU3RyaW5n
LmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcIlBsYXRmb3JtU3RyaW5nLmhcIlxu
IjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcIkF0b21pY1N0cmluZy5oXCJcbiI7CisgICAg
cHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJ1c3RyaW5nLmhcIlxuIjsKKyAgICBwcmludCBJTVBMICIj
aW5jbHVkZSBcIktVUkwuaFwiXG4iOworICAgIHByaW50IElNUEwgbWFwIHsgIiNpbmNsdWRlIFwi
JF9cIlxuIiB9IHNvcnQga2V5cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMICJcbiIg
aWYga2V5cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMIEBjQm9keTsKKworICAgIGNs
b3NlKElNUEwpOworCisgICAgJWltcGxJbmNsdWRlcyA9ICgpOworICAgICVpbXBsVHlwZWRlZnMg
PSAoKTsKKyAgICAlaGRySW5jbHVkZXMgPSAoKTsKKyAgICBAaFByZWZpeCA9ICgpOworICAgIEBo
Qm9keSA9ICgpOworICAgIEBoQm9keVByaXYgPSAoKTsKKyAgICBAaEJvZHlJbnRlcm5hbCA9ICgp
OworICAgIEBoQm9keVByb3AgPSAoKTsKKyAgICBAaEJvZHlQcm9wUHJlID0gKCk7CisKKyAgICBA
Y1ByZWZpeCA9ICgpOworICAgIEBjQm9keSA9ICgpOworICAgIEBjQm9keVByaXYgPSAoKTsKK30K
KworMTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkocmV2aXNpb24gMzYxMjkp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw3ICsyNyw3IEBACiAgICAgXSBIVE1MT3B0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRlZmF1bHRT
ZWxlY3RlZDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ICAgICAgICAgICB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAjZWxzZQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCShyZXZp
c2lvbiAzNjEyOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBzZWFyY2g7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4
dDsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgW0Rv
bnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
QXBwbGV0RWxlbWVudC5pZGwJKHJldmlzaW9uIDM2MTI5KQorKysgV2ViQ29yZS9odG1sL0hUTUxB
cHBsZXRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTQgKzM1LDE0IEBACiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBjb2RlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgY29kZUJhc2U7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBoZWlnaHQ7Ci0jaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVm
aW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaHNwYWNlOwogI2Vsc2UKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyBoc3BhY2U7CiAjZW5kaWYK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIG5hbWU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyBvYmplY3Q7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFH
RV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgdnNwYWNlOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyB2c3BhY2U7CkluZGV4OiBXZWJDb3JlL2h0bWwv
SFRNTEVtYmVkRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNjEyOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAgICAgICBJbXBs
ZW1lbnRhdGlvblVVSUQ9OTNlMDQwN2EtODM4MC00ZmYwLTk3OGQtZjc3M2YyZGVlNmEzCiAgICAg
XSBIVE1MRW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWxpZ247Ci0jaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0OwogI2Vsc2UKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyBoZWlnaHQ7
CkBAIC0zOCw3ICszOCw3IEBACiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc3JjOwogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB3aWR0aDsKICNl
bHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcg
d2lkdGg7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAzNjEyOSkKKysrIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDcgKzE1Niw3IEBACiAKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRp
dGxlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyOwotI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZG9tYWluOwogI2Vs
c2UKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21haW47CkBAIC0xODIs
NyArMTgyLDcgQEAKIAogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5TmFtZShpbiBET01T
dHJpbmcgZWxlbWVudE5hbWUpOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQor
I2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBMb2NhdGlvbiBsb2Nh
dGlvbjsKICNlbmRpZgogCkBAIC0xOTUsNyArMTk1LDcgQEAKICAgICAgICAgRWxlbWVudCAgICAg
ICAgICAgIGVsZW1lbnRGcm9tUG9pbnQoaW4gbG9uZyB4LCBpbiBsb25nIHkpOwogCiAgICAgICAg
IC8vIE1vemlsbGEgZXh0ZW5zaW9ucwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkK
KyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpKQogICAgICAgICBET01TZWxlY3Rpb24gICAgICAgZ2V0U2VsZWN0aW9uKCk7CiAjZW5k
aWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxd
IERPTVN0cmluZyBjaGFyYWN0ZXJTZXQ7CkBAIC0yMzYsNyArMjM2LDcgQEAKICAgICAgICAgTm9k
ZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBET01TdHJpbmcgdGFnbmFtZSk7CiAKICAg
ICAgICAgLy8gTm9kZVNlbGVjdG9yIC0gU2VsZWN0b3IgQVBJCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmlu
ZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgIFtDdXN0b21dIEVsZW1lbnQgcXVlcnlTZWxl
Y3RvcihpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNl
bGVjdG9ycywgaW4gTlNSZXNvbHZlciByZXNvbHZlcikKICAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICBbQ3VzdG9tXSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGlu
IFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3Jz
LCBpbiBOU1Jlc29sdmVyIHJlc29sdmVyKQpJbmRleDogV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRp
b24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAkocmV2
aXNpb24gMzYxMjkpCisrKyBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkK
ICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgogCkluZGV4
OiBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vRXZlbnRFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNjEyOSkKKysrIFdlYkNvcmUvZG9tL0V2
ZW50RXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemls
bGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJp
bmcoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwJKHJldmlzaW9uIDM2MTI5KQor
KysgV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcg
KzU5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGFsdEdy
YXBoS2V5KTsKIAogICAgICAgICAvLyBXZWJLaXQgRXh0ZW5zaW9ucwotI2lmICFkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKCghZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSkg
JiYgKCFkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKSkKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGxvbmcgICAgICAgICAgICAga2V5Q29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgICAgICAgICAgICAgY2hhckNvZGU7CiAgICAgICAgIApJbmRleDogV2ViQ29yZS9kb20v
RE9NQ29yZUV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRE9NQ29yZUV4
Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM2MTI5KQorKysgV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2Vw
dGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQo
TEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBh
dGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAj
ZW5kaWYKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiAzNjM0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTM4IEBACisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKyAgICAgICAgKGxrY2w6IGknbGwgYmUg
YWJzb2x1dGVseSBob25lc3Qgd2l0aCBwZW9wbGUsIGhlcmU6CisgICAgICAgICBpJ20gbm90IGdv
aW5nIHRvIGFkZCBvciBjaGFuZ2UgYW55LCBlaXRoZXIsIHVubGVzcworICAgICAgICAgdGhlcmUg
aXMgZnVuZGluZyBtYWRlIGF2YWlsYWJsZSB0byBkbyBpdCwgb3IgaSBmaW5kIGEKKyAgICAgICAg
IGdvb2QgcmVhc29uIHRvIHBheSBmb3IgdGhlIHRpbWUgYXQgbXkgb3duIGV4cGVuc2UuCisgICAg
ICAgICBzbyBmYXIsIHB5d2Via2l0Z3RrIGl0c2VsZiBoYXMgYmVlbiBhICJnb29kIGVub3VnaCB0
ZXN0IgorICAgICAgICAgZm9yIG15IHB1cnBvc2VzLCB3aGljaCBtYXNoZXMgdGhlIGVudGlyZSBy
YW5nZSBvZgorICAgICAgICAgZnVuY3Rpb25hbGl0eSBhbmQgcHJvdmlkZXMgZ29vZCBlbXBpcmlj
YWwgdGVzdGluZykuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogYWRkZWQgTEFOR1VBR0Vf
R09CSkVDVCwgZ2xpYiBET00gYmluZGluZ3MgZmlsZXMsIGluY2x1ZGluZyBtYXJraW5nIFNWRyBh
cyAiVE9ETyIKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjphZGRX
cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6cmVtb3ZlV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlclNldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHRE9NT2JqZWN0Ojp+R0RPTU9iamVjdCk6CisgICAgICAgIChXZWJD
b3JlOjp3cmFwcGVyQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6ZG9tT2JqZWN0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVfZ2RvbV9vYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6R0RP
TVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6R0RP
TVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6
R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9y
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3Jn
ZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJ
bnRlcnByZXRlcjo6bWFya0RPTU5vZGVzRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
R0RPTVNjcmlwdEludGVycHJldGVyOjp1cGRhdGVET01Ob2RlRG9jdW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6dG9HRE9NKToKKyAgICAgICAgKFdlYkNvcmU6OnRvR0RPTU5ld2x5Q3JlYXRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9n
ZG9tL0dET01CaW5kaW5nLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVET01PYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVTVkdET01PYmplY3QpOgorICAgICAgICAqIGJp
bmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBBZGRlZC4gIENv
cGllZCBmcm9tIHRoZSBhdXRvLWdlbmVyYXRlZCBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnku
Y3BwIAorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQW5jaG9yV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVBcHBsZXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFy
ZWFXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJhc2VXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUJhc2VGb250V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVCbG9ja3F1b3RlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCb2R5V3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCUldyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQnV0dG9uV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDYW52
YXNXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVDb2xXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZU1vZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRGlyZWN0
b3J5V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEaXZXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZURMaXN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVFbWJlZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRmllbGRTZXRXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUZvcm1XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZyYW1lV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcmFtZVNldFdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSGVhZGluZ1dyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlSGVhZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSFJXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUh0bWxXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUlGcmFtZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSW1hZ2VXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlucHV0V3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVJc0luZGV4V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVMYWJl
bFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTGVnZW5kV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVMSVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
TGlua1dyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFwV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVNYXJxdWVlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVNZW51V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZXRhV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPYmplY3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU9MaXN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHRHcm91
cFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3B0aW9uV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVQYXJhZ3JhcGhXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVBhcmFtV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQcmVXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVF1b3RlV3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVTY3JpcHRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNlbGVj
dFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3R5bGVXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVUYWJsZVNlY3Rpb25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxlQ2Vs
bFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGV4dEFyZWFXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRpdGxlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVUYWJsZVJvd1dyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVUxpc3RXcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdET01IVE1MV3JhcHBlcik6CisgICAgICAg
ICogYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oOiAgQWRkZWQu
ICBDb3BpZWQgZnJvbSB0aGUgYXV0by1nZW5lcmF0ZWQgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmgKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dET01PYmplY3QuaDogQWRkZWQuCisgICAg
ICAgIChHRE9NT2JqZWN0Ojp+R0RPTU9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9H
ZG9tRE9NT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HZG9tRE9N
T2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5jcHA6IEFkZGVkLgorICAgICAgICAoR1N0cmluZ0NvbnZlcnQ6OkdTdHJpbmdDb252ZXJ0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaDogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHA6IEFkZGVk
LgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2YXRlOjpnZG9tX2RvbV9vYmplY3Rfc2V0X3By
aXZhdGUpOgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2YXRlOjpnZG9tX2RvbV9vYmplY3Rf
Z2V0X3ByaXZhdGUpOgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2YXRlOjpnZG9tX2RvbV9v
YmplY3RfZmluYWxpemUpOgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2YXRlOjpnZG9tX2Rv
bV9vYmplY3RfY2xhc3NfaW5pdCk6CisgICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdk
b21fZG9tX29iamVjdF9pbml0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9t
RE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21F
dmVudFRhcmdldE5vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKGdkb21fZXZlbnRfdGFyZ2V0X25v
ZGVfZ2V0X3ByaXZhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVu
dFRhcmdldE5vZGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50
R2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVJ
bnRHZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgorICAgICAgICAoR0RPTUV2ZW50VGFyZ2V0
Tm9kZTo6R0RPTUV2ZW50VGFyZ2V0Tm9kZSk6CisgICAgICAgIChHRE9NRXZlbnRUYXJnZXROb2Rl
OjpnZXRfZ29ial90eXBlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JHT2JqZWN0LnBtOiBBZGRlZCBnb2JqZWN0IGJpbmRpbmdzIGF1dG8tZ2VuZXJhdG9yLgorICAg
ICAgICAqIGRvbS9ET01Db3JlRXhjZXB0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1z
cGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9H
T0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGRvbS9FdmVudEV4Y2VwdGlvbi5pZGw6IGFk
ZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogZG9tL0tleWJvYXJk
RXZlbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAq
IGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMg
SURMCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGw6IGFkZGVkIExBTkdVQUdF
X0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5p
ZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwK
KyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09C
SkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBwYWdlL0RPTVNlbGVjdGlvbi5pZGw6IGFkZGVk
IExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
aWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIHhtbC9Y
TUxIdHRwUmVxdWVzdC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisg
ICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0Vf
R09CSkVDVC1zcGVjaWZpYyBJREwgCisgICAgICAgICogeG1sL1hQYXRoRXhjZXB0aW9uLmlkbDog
YWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKwogMjAwOC0wOS0xMSAgVGltb3Ro
eSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgcmVuZGVyZWRJ
bWFnZSBtZXRob2QgdG8gRE9NTm9kZSB0byBnZXQgYW4gaW1hZ2UKSW5kZXg6IFdlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5pZGwJKHJldmlzaW9uIDM2MTI5KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw5ICs2MiwxMyBAQAogICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gdm9pZCBzZW5kKCk7Ci0gICAgICAgIC8vIHZv
aWQgc2VuZChpbiBET01TdHJpbmcgZGF0YSk7CisjaWYgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KQorICAgICAgICB2b2lkIHNlbmQoaW4gRE9NU3RyaW5nIGRhdGEpCisgICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyNlbHNlCiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2VuZChpbiBE
b2N1bWVudCBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYK
IAogICAgICAgICB2b2lkIGFib3J0KCk7CiAKSW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0
aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHJl
dmlzaW9uIDM2MTI5KQorKysgV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
CiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAg
ICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNjEyOSkKKysrIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MzYsNyArMzYsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAg
ICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNz
YWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAv
LyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRF
bnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJl
dmlzaW9uIDM2MTI5KQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTE1NSw3ICsxNTUsNyBAQAogICAgICAgICBbRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5
LCBDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4gRE9NU3RyaW5nIG1lc3NhZ2UsIGluIERPTVN0
cmluZyB0YXJnZXRPcmlnaW4pCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAot
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gR2xvYmFs
IGNvbnN0cnVjdG9ycwogICAgICAgICBhdHRyaWJ1dGUgU3R5bGVTaGVldENvbnN0cnVjdG9yIFN0
eWxlU2hlZXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBDU1NTdHlsZVNoZWV0Q29uc3RydWN0b3IgQ1NT
U3R5bGVTaGVldDsKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCShyZXZpc2lvbiAzNjEyOSkKKysr
IFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2
Miw3IEBACiAgICAgICAgIHZvaWQgcmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgIHZvaWQgYWRk
UmFuZ2UoaW4gUmFuZ2UgcmFuZ2UpOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9H
T0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlm
CiAgICAgfTsKSW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlz
aW9uIDM2MzQ5KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMDgtMDktMTIgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IGFkZCBHZG9tKi5o
IGdsaWIgRE9NIGJpbmRpbmdzIGhlYWRlciBmaWxlcywKKyAgICAgICAgCisgICAgICAgIEFsc28g
YWRkZWQgZ2RvbWVudW10eXBlcy5jcHAsaCB3aGljaCBwcmVzZW50bHkgZG8gbm90CisgICAgICAg
IGFjdHVhbGx5IGNvbnRhaW4gYW55dGhpbmcsIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGVudW1zCisg
ICAgICAgIGluIHRoZSBnbGliIGJpbmRpbmdzIC0geWV0LgorCiAyMDA4LTA5LTA0ICBNYXJjbyBC
YXJpc2lvbmUgIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDM2MTI5
KQorKysgV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTYsNiAr
Niw4IEBACiBQcm9ncmFtc19HdGtMYXVuY2hlcl9DUFBGTEFHUyA9IFwKIAktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGly
KS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJr
aXQgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykK
IApAQCAtMjgsNiArMzAsOCBAQAogCS1JJChzcmNkaXIpL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ayBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHRvcF9idWlsZGRpcikv
V2ViS2l0L2d0ayBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAorCS1JJCh0b3Bf
YnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKIAkkKGdsb2JhbF9jcHBmbGFncykgXAogCSQo
amF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpCiAKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2MzQ5KQorKysg
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MDgtMDktMTIgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IGFkZGVkIC1JIGluY2x1
ZGVzIHRvIGd0ayB3ZWJraXQgc3ViZGlyZWN0b3JpZXMKKworICAgICAgICBHZG9tIGdsaWIgRE9N
IGJpbmRpbmdzIGhhdmUgdGhlaXIgaGVhZGVyIGZpbGVzIGNvbnRhaW5pbmcKKyAgICAgICAgI2lu
Y2x1ZGUgImdkb20qIiB3aGVyZSAjaW5jbHVkZSA8d2Via2l0L2dkb20qPiBpcyBub3QKKyAgICAg
ICAgcG9zc2libGUsIGFzIHRoZSBnZG9tKiBzb3VyY2UgYW5kIGhlYWRlciBmaWxlcyBhcmUgYXV0
by1nZW5lcmF0ZWQKKyAgICAgICAgaW50byBEZXJpdmVkU291cmNlcy8gbm90IERlcml2ZWRTb3Vy
Y2VzL3dlYmtpdCwgZm9sbG93aW5nIHRoZQorICAgICAgICBleGFtcGxlIG9mIHRoZSBKUyBEZXJp
dmVkIFNvdXJjZXMuCisKIDIwMDgtMDktMDggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCg==
</data>
<flag name="review"
          id="10425"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23409</attachid>
            <date>2008-09-14 04:44:00 -0700</date>
            <delta_ts>2008-09-15 06:34:08 -0700</delta_ts>
            <desc>updated fixing review requests</desc>
            <filename>sd</filename>
            <type>text/plain</type>
            <size>279556</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNjQwMykKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyAr
MTAxLDkgQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBc
CiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9ranMgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRT
b3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20KIAogIyBU
aGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1ZGVkIGJlbG93IHNvIG5vIG5lZWQg
dG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5b3UgcmVhbGx5IGhhdmUgdG8KQEAg
LTIyMCw2ICsyMjIsNyBAQAogCiAjIFdlYktpdAogd2Via2l0Z3RrX2hfYXBpIDo9CitnZG9tZ3Rr
X2hfYXBpIDo9CiB3ZWJraXRndGtfc291cmNlcyA6PQogd2Via2l0Z3RrX2NwcGZsYWdzIDo9CiB3
ZWJraXRndGtfYnVpbHRfc291cmNlcyA6PQpAQCAtMjMyLDggKzIzNSwxMyBAQAogbGlid2Via2l0
XzFfMF9sYWRpciA9ICQocHJlZml4KS9pbmNsdWRlL3dlYmtpdC0xLjAvd2Via2l0CiBsaWJ3ZWJr
aXRfMV8wX2xhX0hFQURFUlMgPSBcCiAJJCh3ZWJraXRndGtfaF9hcGkpIFwKLQlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRlbnVtdHlwZXMuaAorCSQoZ2RvbWd0a19oX2FwaSkgXAorCVdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tLmgg
CiAKKyNXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgKKyNXZWJLaXQvZ3RrL3dlYmtp
dC9nZG9tZGVmaW5lcy5oCisKIGxpYndlYmtpdF8xXzBfbGFfU09VUkNFUyA9IFwKIAkkKHdlYmtp
dGd0a19zb3VyY2VzKQogCkBAIC0zMDUsNiArMzEzLDM1NCBAQAogd2ViY29yZV9saWJhZGQgKz0g
LWxnc3RpbnRlcmZhY2VzLTAuMTAgLWxnc3R2aWRlby0wLjEwCiBlbmRpZgogCitXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOiAkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJr
aXQvR2RvbURvY3VtZW50LmggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaCBcCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0
ay93ZWJraXQvR2RvbURPTU9iamVjdC5oIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRXZlbnRUYXJnZXRO
b2RlLmggXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0b3BfYnVpbGRk
aXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdC5oCisKKyQodG9wX2J1aWxk
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3QuaDogRGVyaXZlZFNvdXJj
ZXMvR2RvbVhNTEh0dHBSZXF1ZXN0LmgKKwljcCBEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJl
cXVlc3QuaCAkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbVhNTEh0dHBSZXF1
ZXN0LmgKKwljcCBEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3QuaCAkKHNyY2Rpcikv
V2ViS2l0L2d0ay93ZWJraXQvR2RvbVhNTEh0dHBSZXF1ZXN0LmgKKworJCh0b3BfYnVpbGRkaXIp
L1dlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5kb3cuaDogRGVyaXZlZFNvdXJjZXMvR2RvbURP
TVdpbmRvdy5oCisJY3AgRGVyaXZlZFNvdXJjZXMvR2RvbURPTVdpbmRvdy5oICQodG9wX2J1aWxk
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRE9NV2luZG93LmgKKwljcCBEZXJpdmVkU291cmNl
cy9HZG9tRE9NV2luZG93LmggJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21ET01XaW5k
b3cuaAorCiskKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbURvY3VtZW50Lmg6
ICQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnQuaAorCWNwIERlcml2
ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtp
dC9HZG9tRG9jdW1lbnQuaAorCWNwIERlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5oICQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRG9jdW1lbnQuaAorCiskKHRvcF9idWlsZGRpcikv
V2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTU9iamVjdC5oOiAkKHRvcF9idWlsZGRpcikvV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaAorCWNwICQoc3JjZGlyKS9XZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oICQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dl
YmtpdC9HZG9tRE9NT2JqZWN0LmgKKwljcCAkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dkb21ET01PYmplY3QuaCAkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbURPTU9iamVj
dC5oCisKK1dlYktpdC9ndGsvd2Via2l0L0dkb21FdmVudFRhcmdldE5vZGUuaDogJCh0b3BfYnVp
bGRkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgKKwljcCAk
KHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCAkKHRv
cF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisJY3Ag
JChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggJChz
cmNkaXIpL1dlYktpdC9ndGsvd2Via2l0L0dkb21FdmVudFRhcmdldE5vZGUuaAorCisKK2dkb21n
dGtfaF9hcGkgKz0gXAorCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRG9j
dW1lbnQuaFwKKwkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oXAorCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9HZG9tRE9NT2Jq
ZWN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUF0dHIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
QXR0cnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUJhckluZm8uaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tQmFySW5mb3Byb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRp
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRpZW50cHJvcHMuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ2FudmFzUGF0dGVybi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52
YXNQYXR0ZXJucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheS5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQaXhlbEFycmF5cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUNEQVRBU2VjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DREFUQVNlY3Rpb25wcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DaGFyYWN0ZXJEYXRhLmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNoYXJhY3RlckRhdGFwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmQu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2xpcGJvYXJkcHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ29tbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db21tZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ29uc29sZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db25zb2xl
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ291bnRlci5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21Db3VudGVycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGVwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21DU1NGb250RmFjZVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTRm9u
dEZhY2VSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1wb3J0UnVsZS5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21DU1NJbXBvcnRSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTTWVkaWFSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlhUnVsZXBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1BhZ2VSdWxlLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUNTU1BhZ2VSdWxlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUHJpbWl0
aXZlVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUHJpbWl0aXZlVmFsdWVwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U1J1bGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tQ1NTUnVsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNT
U1N0eWxlRGVjbGFyYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVEZWNsYXJh
dGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlUnVsZS5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21DU1NTdHlsZVJ1bGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NTdHlsZVNoZWV0LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlU2hlZXRwcm9wcy5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21D
U1NWYWx1ZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVMaXN0cHJvcHMuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxl
c1J1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFyaWFibGVzUnVsZXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbURhdGFiYXNlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURhdGFi
YXNlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRGcmFnbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tRG9jdW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudFR5cGUu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRUeXBlcHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01B
cHBsaWNhdGlvbkNhY2hlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NQ29yZUV4Y2Vw
dGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9ucHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tRE9NSW1wbGVtZW50YXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRE9NSW1wbGVtZW50YXRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJz
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NUGFyc2VycHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRE9NU2VsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVNlbGVjdGlv
bnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTVdpbmRvdy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21ET01XaW5kb3dwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21FbnRpdHkuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRW50aXR5cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tRW50aXR5UmVmZXJlbmNlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0
eVJlZmVyZW5jZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9uLmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50RXhjZXB0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRXZlbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21GaWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUZpbGVMaXN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tRmlsZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhpc3RvcnkuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSGlzdG9yeXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBbmNo
b3JFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBbmNob3JFbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEFwcGxldEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MQXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEFyZWFFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxCYXNlRm9udEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VGb250RWxl
bWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnRwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQm9keUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEJvZHlFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJSRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEJ1dHRvbkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ2FudmFzRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ2FudmFzRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDb2xsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxDb2xsZWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpcmVjdG9y
eUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGl2RWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MRGl2RWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxE
TGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERMaXN0RWxlbWVudHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEb2N1bWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRG9jdW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxFbWJlZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEVt
YmVkRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNldEVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb250RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MRm9udEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRm9ybUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1FbGVtZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MRnJhbWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1l
U2V0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxIZWFkaW5nRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSGVhZGluZ0VsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSFJFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MSHRtbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0bWxFbGVtZW50cHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MSW1hZ2VFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJbWFnZUVsZW1l
bnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbUhUTUxJbnB1dEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5k
ZXhFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGFiZWxFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TExlZ2VuZEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MTGlua0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExp
bmtFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MTWFycXVlZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1h
cnF1ZWVFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNZW51RWxlbWVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxNZXRhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TWV0YUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxPYmplY3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxP
YmplY3RFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9MaXN0RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50cHJvcHMuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MT3B0R3JvdXBFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9w
dGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbkVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFBhcmFncmFwaEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUGFyYW1F
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MUHJlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MUHJlRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFF1b3RlRWxlbWVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTY3JpcHRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUhUTUxTY3JpcHRFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNl
bGVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNlbGVjdEVsZW1lbnRwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU3R5bGVFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVD
YXB0aW9uRWxlbWVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNlbGxF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50cHJvcHMu
aFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFRhYmxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVFbGVt
ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVSb3dFbGVtZW50cHJvcHMuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21I
VE1MVGV4dEFyZWFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0QXJlYUVs
ZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGl0bGVFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUaXRsZUVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MVUxpc3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxVTGlz
dEVsZW1lbnRwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21JbWFnZURhdGEuaFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSW1hZ2VEYXRhcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2
YVNjcmlwdENhbGxGcmFtZS5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0Q2FsbEZy
YW1lcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tS2V5Ym9hcmRFdmVudC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21LZXlib2FyZEV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TG9jYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTG9jYXRpb25wcm9wcy5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVkaWFMaXN0
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVzc2FnZUV2ZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbU1lc3NhZ2VFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVU
eXBlQXJyYXkuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJheXByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVUeXBlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1pbWVU
eXBlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTW91c2VFdmVudC5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Nb3VzZUV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTXV0YXRp
b25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21NdXRhdGlvbkV2ZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2RlTWFwLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5h
bWVkTm9kZU1hcHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hdmlnYXRvci5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21OYXZpZ2F0b3Jwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21O
b2RlRmlsdGVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVGaWx0ZXJwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21Ob2RlLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRv
ci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0b3Jwcm9wcy5oXAorCURlcml2ZWRT
b3VyY2VzL0dkb21Ob2RlTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlTGlzdHByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Ob3RhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob3RhdGlvbnByb3BzLmhcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbU92ZXJmbG93RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tT3Zl
cmZsb3dFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbkFycmF5LmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbkFycmF5cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tUGx1Z2luLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVBsdWdpbnByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9n
cmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVByb2dyZXNzRXZlbnRwcm9wcy5oXAor
CURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZUV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL0dk
b21SYW5nZUV4Y2VwdGlvbnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVJhbmdlcHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmVj
dC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21SZWN0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU2NyZWVuLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbnByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNRTEVycm9yLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTEVycm9ycHJv
cHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0LmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNRTFJlc3VsdFNldHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3Vs
dFNldFJvd0xpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdHBy
b3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9uLmhcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNRTFRyYW5zYWN0aW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3Rv
cmFnZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2VFdmVudHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVN0b3JhZ2UuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFn
ZXByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVN0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU3R5bGVTaGVldExpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3R5bGVTaGVl
dExpc3Rwcm9wcy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHRN
ZXRyaWNzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRleHRFdmVudHByb3BzLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVRleHQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dHByb3BzLmhcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVRyZWVXYWxrZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVHJl
ZVdhbGtlcnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tVUlFdmVudHByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdEFu
aW1hdGlvbkV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVwcm9wcy5oXAorCURl
cml2ZWRTb3VyY2VzL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
V2hlZWxFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21XaGVlbEV2ZW50cHJvcHMuaFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25wcm9wcy5oXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21YTUxIdHRwUmVxdWVzdC5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0cFJlcXVlc3Rwcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oXAorCURlcml2
ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZHByb3BzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVhNTFNlcmlhbGl6ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MU2VyaWFsaXpl
cnByb3BzLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXZhbHVhdG9yLmhcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVhQYXRoRXZhbHVhdG9ycHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WFBhdGhFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeGNlcHRpb25wcm9w
cy5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4cHJlc3Npb24uaFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tWFBhdGhFeHByZXNzaW9ucHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBh
dGhOU1Jlc29sdmVyLmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoTlNSZXNvbHZlcnByb3Bz
LmhcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoUmVzdWx0LmhcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVhQYXRoUmVzdWx0cHJvcHMuaFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFNMVFByb2Nlc3Nv
ci5oXAorCURlcml2ZWRTb3VyY2VzL0dkb21YU0xUUHJvY2Vzc29ycHJvcHMuaAorCiB3ZWJraXRn
dGtfaF9hcGkgKz0gXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdC5oIFwKIAlXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRkZWZpbmVzLmggXApAQCAtMzE2LDEyICs2NzIsMTcgQEAKIAlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmgKIAorIyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZG9tZGVmaW5lcy5oCisK
IHdlYmtpdGd0a19idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXRlbnVt
dHlwZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXRtYXJzaGFsLmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlbnVt
dHlwZXMuaAogCisjCURlcml2ZWRTb3VyY2VzL2dkb21lbnVtdHlwZXMuY3BwIAorIwlXZWJLaXQv
Z3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgKKwogd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCiAJV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBcCkBAIC0zNDUsMTQgKzcwNiwxNiBA
QAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAJV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJzZXR0aW5ncy5jcHAgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
CisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgXAorCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmV2ZW50LmNwcCAgCiAKIHdlYmtpdGd0a19jcHBmbGFncyArPSBcCiAJLURC
VUlMRElOR19XRUJLSVQgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJChzcmNkaXIp
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Vi
a2l0IFwKLQktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdAorCS1JJCh0b3BfYnVp
bGRkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3Rr
CiAKIHdlYmtpdGd0a19jbGVhbmZpbGVzICs9IFwKIAkkKHRvcF9idWlsZGRpcikvUHJvZ3JhbXMv
R3RrTGF1bmNoZXIgXApAQCAtMzY3LDYgKzczMCw5IEBACiAJc3RhbXAtd2Via2l0ZW51bXR5cGVz
LmNwcCBcCiAJc3RhbXAtd2Via2l0ZW51bXR5cGVzLmgKIAorIwlzdGFtcC1nZG9tZW51bXR5cGVz
LmNwcCAKKyMJc3RhbXAtZ2RvbWVudW10eXBlcy5oIAorCiBXRUJLSVRfTUFSU0hBTCA9ICQoR0VO
U09VUkNFUykvd2Via2l0bWFyc2hhbAogV0VCS0lUX01BUlNIQUxfTElTVCA9ICQoV0VCS0lUX01B
UlNIQUwpLmxpc3QKIApAQCAtNDQzLDYgKzgwOSw1NCBAQAogCSYmIGNwIHhnZW4tZ3RjICRAIFwK
IAkmJiBybSAtZiB4Z2VuLWd0YwogCitXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmg6
IHN0YW1wLWdkb21lbnVtdHlwZXMuaAorCUB0cnVlCitzdGFtcC1nZG9tZW51bXR5cGVzLmg6ICQo
Z2RvbWd0a19oX2FwaSkgR05VbWFrZWZpbGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1r
ZW51bXMgXAorCQkJLS1maGVhZCAiI2lmbmRlZiBHRE9NX0VOVU1fVFlQRVNfSFxuIiBcCisJCQkt
LWZoZWFkICIjZGVmaW5lIEdET01fRU5VTV9UWVBFU19IXG5cbiIgXAorCQkJLS1maGVhZCAiI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG5cbiIgXAorCQkJLS1maGVhZCAiR19CRUdJTl9ERUNMU1xu
XG4iIFwKKwkJCS0tZnRhaWwgIkdfRU5EX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFpbCAiI2VuZGlm
XG4iIFwKKwkJCS0tZnByb2QgIiNpbmNsdWRlIDxAZmlsZW5hbWVAPlxuXG4iIFwKKwkJCS0tZXBy
b2QgIiNkZWZpbmUgR0RPTV9UWVBFX0BFTlVNU0hPUlRAIEBlbnVtX25hbWVAX2dldF90eXBlKClc
blxuIiBcCisJCQktLWVwcm9kICJXRUJLSVRfQVBJIEdUeXBlXG5AZW51bV9uYW1lQF9nZXRfdHlw
ZSh2b2lkKTtcblxuIiBcCisJCQkkKGdkb21ndGtfaF9hcGkpIHwgXAorCQkJc2VkICdzLFdlYktp
dC9ndGsvLCwnIHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxnZG9tLCcgfCBcCisJCXNlZCAncyxHRE9N
X1RZUEVfS0lULEdET01fVFlQRSwnIFwKKwkJKSA+IHhnZW4tY2d0aCBcCisJJiYgKGNtcCAtcyB4
Z2VuLWNndGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oIHx8IGNwIHhnZW4tY2d0
aCBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgpIFwKKwkmJiBybSAtZiB4Z2VuLWNn
dGggXAorCSYmIGVjaG8gdGltZXN0YW1wID4gJChARikKKworIyAgICAgICAgICAgICAgLS1maGVh
ZCAiI2luY2x1ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPlxuXG4iIAorCitEZXJpdmVkU291cmNl
cy9nZG9tZW51bXR5cGVzLmNwcDogJChnZG9tZ3RrX2hfYXBpKSBHTlVtYWtlZmlsZQorCShjZCAk
KHNyY2RpcikgXAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Y29u
ZmlnLmg+XG4iIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuIiBcCisJ
CQktLWZoZWFkICIjaW5jbHVkZSBcIiQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9n
ZG9tZW51bXR5cGVzLmhcIlxuXG4iIFwKKwkJCS0tZmhlYWQgImV4dGVybiBcIkNcIiB7XG5cbiIg
XAorCQkJLS1mcHJvZCAiXG4vKiBlbnVtZXJhdGlvbnMgZnJvbSBcIkBmaWxlbmFtZUBcIiAqLyIg
XAorCQkJLS12aGVhZCAic3RhdGljIGNvbnN0IEdAVHlwZUBWYWx1ZSBfQGVudW1fbmFtZUBfdmFs
dWVzW10gPSB7IiBcCisJCQktLXZwcm9kICIgICAgeyBAVkFMVUVOQU1FQCwgXCJAVkFMVUVOQU1F
QFwiLCBcIkB2YWx1ZW5pY2tAXCIgfSwiIFwKKwkJCS0tdnRhaWwgIiAgICB7IDAsIE5VTEwsIE5V
TEwgfVxufTtcblxuIiBcCisJCQktLXZ0YWlsICJHVHlwZSBAZW51bV9uYW1lQF9nZXRfdHlwZSh2
b2lkKVxue1xuIiBcCisJCQktLXZ0YWlsICIgICAgc3RhdGljIEdUeXBlIHR5cGUgPSAwO1xuXG4i
IFwKKwkJCS0tdnRhaWwgIiAgICBpZiAoIXR5cGUpXG4iIFwKKwkJCS0tdnRhaWwgIiAgICAgICAg
dHlwZSA9IGdfQHR5cGVAX3JlZ2lzdGVyX3N0YXRpYyhcIkBFbnVtTmFtZUBcIiwgX0BlbnVtX25h
bWVAX3ZhbHVlcyk7XG5cbiIgXAorCQkJLS12dGFpbCAiICAgIHJldHVybiB0eXBlO1xufVxuXG4i
IFwKKwkJCS0tZnRhaWwgIn1cbiIgXAorCQkkKGdkb21ndGtfaF9hcGkpIHwgXAorCQlzZWQgJ3Ms
d2ViX2tpdCxnZG9tLCcgXAorCQkpID4geGdlbi1jZ3RjIFwKKwkmJiBjcCB4Z2VuLWNndGMgJEAg
XAorCSYmIHJtIC1mIHhnZW4tY2d0YworCiAjIEVORCBXRUJLSVQgR1RLKwogIwogIyBGaWxlcyB0
aGF0IHdpbGwgYmUgZGlzdHJpYnV0ZWQKSW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCShyZXZpc2lvbiAzNjQwMykKKysrIFdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTYsNiArMjE2LDggQEAKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6cG9z
dFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKCkKIHsKKyAgICBpZiAoIW1fZnJh
bWUpIC8qIGJ1ZyMyMDQwMyAtIGhhY2shIHNob3VsZG4ndCBiZSBoZXJlISAgd2UndmUgYmVlbiBk
ZWxldGVkISAqLworICAgICAgICByZXR1cm47CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9
IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CiAgICAgUGFnZSogY29yZVBhZ2UgPSBjb3JlKHdl
YlZpZXcpOwogCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCShyZXZpc2lv
biAzNjQwMykKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMSArMSwxMyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNywgMjAw
OCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwNyBB
cHBsZSBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3Rp
YW5AaW1lbmRpby5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KICAq
IENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgogICoKKyAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwog
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCkBAIC00Miw2ICs0NCwyMCBAQAogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIK
ICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CisjaW5jbHVkZSAiR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0
LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tWE1M
SHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9t
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudExpc3Rl
bmVyV2luZG93LmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiVGV4dERv
Y3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01XaW5kb3cuaCIKIAog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KIApAQCAtNDksNiArNjUsMTIgQEAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAorbmFtZXNw
YWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRvR0RPTShET01XaW5kb3cqIGRvYyk7CisgICAg
Z3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBkb2MpOworICAgIGdwb2ludGVyIHRvR0RPTShYTUxI
dHRwUmVxdWVzdCogb2JqKTsKK30KKwogZXh0ZXJuICJDIiB7CiAKIGVudW0gewpAQCAtNTcsNiAr
NzksNyBAQAogICAgIExPQURfRE9ORSwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5H
X09WRVJfTElOSywKKyAgICBCUk9XU0VSX0VWRU5ULAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBA
IC0xNjIsNiArMTg1LDE3IEBACiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAgICAgICAg
ICAgIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcpOwogCisgICAgd2Via2l0X3dlYl9mcmFt
ZV9zaWduYWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwK
KyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAgICAgICAg
KEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04gfAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR19TSUdOQUxfREVUQUlMRUQpLAorICAgICAgICAgICAg
MCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgd2Vi
a2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisgICAgICAgICAgICBHX1RZUEVfTk9O
RSwgMiwKKyAgICAgICAgICAgIEdET01fVFlQRV9FVkVOVCwgR19UWVBFX0JPT0xFQU4pOworCiAg
ICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAgICAgICov
CkBAIC0yOTQsNiArMzI4LDkyIEBACiB9CiAKIC8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRf
eG1sX2h0dHBfcmVxdWVzdDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiBy
ZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhbiBYTUxIdHRwUmVxdWVzdAorICoKKyAqIFJl
dHVybiB2YWx1ZTogYSBHZG9tWE1MSHR0cFJlcXVlc3QKKyAqLworR2RvbVhNTEh0dHBSZXF1ZXN0
KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0KFdlYktpdFdlYkZyYW1lKiBm
cmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZy
YW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1l
LT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VS
VChjb3JlRnJhbWUpOworICAgIHJldHVybiBHRE9NX1hNTF9IVFRQX1JFUVVFU1QoV2ViQ29yZTo6
dG9HRE9NKFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoY29yZUZyYW1lLT5kb2N1bWVudCgpKS5nZXQo
KSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3c6CisgKiBA
ZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJucyBhIEdkb20gd3JhcHBlciBh
cm91bmQgYSBET01XaW5kb3cKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgR2RvbURPTVdpbmRvdwor
ICovCitHZG9tRE9NV2luZG93KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93KFdlYktp
dFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSog
cHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUp
OworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIFBhc3NSZWZQdHI8RE9NV2luZG93PiB3aW4g
PSBjb3JlRnJhbWUtPmRvbVdpbmRvdygpOworICAgIHJldHVybiBHRE9NX0RPTV9XSU5ET1coV2Vi
Q29yZTo6dG9HRE9NKHdpbi5nZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X2RvbV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiBy
ZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAorICoKKyAqIFJldHVybiB2
YWx1ZTogYSBHZG9tRG9jdW1lbnQKKyAqLworR2RvbURvY3VtZW50KiB3ZWJraXRfd2ViX2ZyYW1l
X2dldF9kb21fZG9jdW1lbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8v
V2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSog
Y29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisgICAgcmV0
dXJuIEdET01fRE9DVU1FTlQoV2ViQ29yZTo6dG9HRE9NKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkp
OworfQorCisvKiBYWFggVE9ETzogbWFrZSB0aGlzIG5vdCB0YWtlIGZyYW1lKiBhcyBhbiBhcmd1
bWVudCwKKyAqIGFuZCBtYWtlIGl0IHJldHVybiBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzICov
CitleHRlcm4gIkMiIHsKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93aW5kb3dfZXZlbnRfbGlz
dGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNvbnN0IGNoYXIgKm5hbWUp
OworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyOgorICog
QGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIGFkZHMgYW4gZXZlbnQgbGlzdGVuZXIg
dG8gdGhlIGZyYW1lJ3MgZG9jdW1lbnQKKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBuYW1lIG9m
IEBmcmFtZQorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5l
cihXZWJLaXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciogZXZlbnRfdHlwZSkKK3sKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgRkFMU0UpOworCisgICAgLy9X
ZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBj
b3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKworICAgIHJl
dHVybiBhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKGZyYW1lLCBjb3JlRnJhbWUsIGV2ZW50X3R5
cGUpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6
IGEgI1dlYktpdFdlYkZyYW1lCiAgKgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0
ZW5lck5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVy
Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5v
ZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5k
ZWYgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX05PREVfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElT
VEVORVJfTk9ERV9ICisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtp
dGRlZmluZXMuaD4KKworCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisvKiBU
T0RPOiByZXR1cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCByZXF1
aXJlcworICogYSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RPOiBw
cm92aWRlIGEgJ3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGliCisg
KiBvYmplY3QgYXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQorZ2Jv
b2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBj
aGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1
cmUpOworfQorCisjZW5kaWYgLypKU19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9IICovCkluZGV4
OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIK
ICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDkgQEAKIAogI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1
ZXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Eb2N1bWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tRE9NV2luZG93Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdC5o
PgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYxLDYgKzY1LDE1IEBACiBXRUJLSVRfQVBJIFdlYktp
dFdlYkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIEdkb21YTUxIdHRwUmVxdWVz
dCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0ICAgICAgIChXZWJLaXRX
ZWJGcmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21ET01XaW5kb3cgKgord2Vi
a2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAg
KmZyYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRG9jdW1lbnQgKgord2Via2l0X3dlYl9mcmFtZV9n
ZXRfZG9tX2RvY3VtZW50ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCiBX
RUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcg
ICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKQEAgLTkzLDYgKzEwNiwxMCBA
QAogV0VCS0lUX0FQSSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2ds
b2JhbF9jb250ZXh0IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCitXRUJLSVRfQVBJ
IGdib29sZWFuCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJG
cmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIgICAgICAgICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKSW5kZXg6IFdl
YktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCisrKyBXZWJL
aXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9X
SU5ET1dfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfV0lORE9XX0gKKworI2luY2x1
ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKK2V4dGVy
biAiQyIgeworLyogVE9ETzogbWFrZSBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0byBiZSBy
ZXR1cm5lZCBoZXJlICovCit9CisKKyNlbmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5E
T1dfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMg
UGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29u
IExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRl
ICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2lu
Y2x1ZGUgIlN0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
SFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVk
ZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1
ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAi
RXZlbnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJOb2RlLmgiCisj
aW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisj
aW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJH
ZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdk
b21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgor
I2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tWE1M
SHR0cFJlcXVlc3QuaCIKKworCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKworCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRv
R0RPTShFdmVudCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXROb2RlKiBu
b2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3QqIG5vZGUpOworfQorCisK
K2NsYXNzIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxYTUxIdHRwUmVxdWVzdEV2ZW50TGlz
dGVuZXI+IGNyZWF0ZShHZG9tWE1MSHR0cFJlcXVlc3QqIHdmKQorICAgIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIod2YpKTsgfQorICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgdXNlQ2FwdHVyZSk7CisKKyAgICB2b2lkIHNl
dF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0cmR1cChldnR5cGUpOyB9
CisgICAgcHJpdmF0ZToKKyAgICBjaGFyICptX3R5cGU7CisgICAgWE1MSHR0cFJlcXVlc3RFdmVu
dExpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCogd2YpCisgICAgICAgICAgIDogbV93Zih3ZikK
KyAgICAgICAgICAgLCBtX3R5cGUoTlVMTCkKKyAgICB7fQorICAgIH5YTUxIdHRwUmVxdWVzdEV2
ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAgICAgICAgICAgIGdf
ZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBHZG9tWE1MSHR0cFJlcXVlc3QqIG1fd2Y7Cit9Owor
Cit2b2lkIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2
ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGNoYXIg
KmV2bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5cGUpOwor
ICAgIC8qIFRPRE86IHNlZSBKU0V2ZW50TGlzdGVuZXIuY3BwJ3MgaGFuZGxlRXZlbnQgLSBzb21l
IHdlaXJkIHN0dWZmLi4uICovCisgICAgLy9wcmludGYoIlhNTEh0dHBSZXF1ZXN0IGhhbmRsZUV2
ZW50ICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIEdk
b21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAgICBn
X3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgZXZuYW1lLCB3ZXYsIHVzZUNhcHR1cmUsICZyZXR2
YWwpOworICAgIGdfZnJlZShldm5hbWUpOworfQorCitjbGFzcyBOb2RlRXZlbnRMaXN0ZW5lciA6
IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxO
b2RlRXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21FdmVudFRhcmdldE5vZGUqIHdmKQorICAgIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBOb2RlRXZlbnRMaXN0ZW5lcih3ZikpOyB9CisgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCB1c2VDYXB0dXJlKTsKKworICAgIHZvaWQg
c2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlwZSA9IGdfc3RyZHVwKGV2dHlwZSk7
IH0KK3ByaXZhdGU6CisgICAgY2hhciAqbV90eXBlOworICAgIE5vZGVFdmVudExpc3RlbmVyKEdk
b21FdmVudFRhcmdldE5vZGUqIHdmKQorICAgICAgICAgICAgOiBtX3dmKHdmKQorICAgICAgICAg
ICAgLCBtX3R5cGUoTlVMTCkKKyAgICB7fQorICAgIH5Ob2RlRXZlbnRMaXN0ZW5lcigpCisgICAg
eworICAgICAgICBpZiAobV90eXBlKQorICAgICAgICAgICAgZ19mcmVlKG1fdHlwZSk7CisgICAg
fQorICAgIEdkb21FdmVudFRhcmdldE5vZGUqIG1fd2Y7Cit9OworCit2b2lkIE5vZGVFdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgdXNlQ2FwdHVyZSkKK3sKKyAg
ICBnYm9vbGVhbiByZXR2YWw7CisgICAgY2hhciAqZXZuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCJi
cm93c2VyLWV2ZW50OjolcyIsIG1fdHlwZSk7CisgICAgLy9wcmludGYoIm5vZGUgaGFuZGxlRXZl
bnQgJXNcbiIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgR2Rv
bUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYkNvcmU6OnRvR0RPTShldmVudCkpOworICAgIGdf
c2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5hbWUsIHdldiwgdXNlQ2FwdHVyZSwgJnJldHZh
bCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9CisKK2NsYXNzIFdpbmRvd0V2ZW50TGlzdGVuZXIg
OiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
V2luZG93RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFdlYktpdFdlYkZyYW1lKiB3ZikKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2luZG93RXZlbnRMaXN0ZW5lcih3ZikpOyAKKyAg
ICB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCBpc1dpbmRvd0V2
ZW50KTsKKyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBn
X3N0cmR1cChldnR5cGUpOyB9Citwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsKKyAgICBXaW5k
b3dFdmVudExpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3ZikKKyAgICAgICAgICAgOiBtX3dmKHdm
KQorICAgICAgICAgICAsIG1fdHlwZShOVUxMKQorICAgIHt9CisgICAgfldpbmRvd0V2ZW50TGlz
dGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAgICAgICAgICAgIGdfZnJlZSht
X3R5cGUpOworICAgIH0KKyAgICBXZWJLaXRXZWJGcmFtZSogbV93ZjsKK307CisKK3ZvaWQgV2lu
ZG93RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93
RXZlbnQpCit7CisgICAgY2hhciAqZXZuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCJicm93c2VyLWV2
ZW50OjolcyIsIG1fdHlwZSk7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIC8vcHJpbnRmKCJ3
aW5kb3cgaGFuZGxlRXZlbnQgJXMgJXNcbiIsIGV2bmFtZSwKKyAgICAvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50KSk7Cisg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwgd2V2LCBpc1dpbmRvd0V2ZW50
LCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30KKworZXh0ZXJuICJDIiB7CisKK2di
b29sZWFuIGFkZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVx
dWVzdCAqd2YsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkK
K3sKKyAgICBXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdCAqcmVxID0gZ2RvbV94bWxfaHR0cF9yZXF1
ZXN0X2dldF9wcml2YXRlKHdmKTsKKyAgICBpZiAoIW5hbWUpCisgICAgICAgIHJldHVybiBGQUxT
RTsKKyAgICBpZiAoIXJlcSkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCisgICAgaWYgKHN0cmNt
cChuYW1lLCAib25yZWFkeXN0YXRlY2hhbmdlIikgPT0gMCkKKyAgICB7CisgICAgICAgIFJlZlB0
cjxYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyOworICAgICAgICBsaXN0ZW5l
ciA9IFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICAgICAgbGlz
dGVuZXItPnNldF90eXBlKG5hbWUpOworICAgICAgICByZXEtPnNldE9uUmVhZHlTdGF0ZUNoYW5n
ZUxpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfQorICAgIHJl
dHVybiBGQUxTRTsKK30gCisKK2dib29sZWFuIGFkZF9ldmVudF9saXN0ZW5lcihHZG9tRXZlbnRU
YXJnZXROb2RlICp3ZiwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnYm9vbGVhbiB1c2VDYXB0dXJlKQoreworICAgIFdlYkNvcmU6Ok5vZGUgKm5vZGUgPSBn
ZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKHdmKTsKKyAgICBpZiAoIW5vZGUgfHwg
IW5vZGUtPmlzRXZlbnRUYXJnZXROb2RlKCkpCisgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICBX
ZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBldG4gPSAoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZl
bnRUYXJnZXROb2RlICo+KG5vZGUpKS0+dG9Ob2RlKCk7CisgICAgaWYgKCFldG4pCisgICAgICAg
IHJldHVybiBGQUxTRTsKKworICAgIFJlZlB0cjxOb2RlRXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIg
PSBOb2RlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBsaXN0ZW5lci0+c2V0X3R5cGUo
bmFtZSk7CisgICAgZXRuLT5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB1c2VDYXB0
dXJlKTsKKworICAgIHJldHVybiBUUlVFOworCit9IAorCitnYm9vbGVhbiBhZGRfd2luZG93X2V2
ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lICp3ZiwgRnJhbWUgKmZyYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQoreworICAgIERvY3Vt
ZW50KiBkb2MgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKworICAgIFJlZlB0cjxXaW5kb3dFdmVudExp
c3RlbmVyPiBsaXN0ZW5lciA9IFdpbmRvd0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAg
bGlzdGVuZXItPnNldF90eXBlKG5hbWUpOworICAgIGRvYy0+YWRkV2luZG93RXZlbnRMaXN0ZW5l
cihuYW1lLCBsaXN0ZW5lciwgdHJ1ZSk7CisKKyAgICByZXR1cm4gVFJVRTsKKworfSAKKworfSAv
KiBleHRlcm4gQyAqLwoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZXZlbnQuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptZXJnZWluZm8KCkluZGV4OiBX
ZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAkocmV2
aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVz
dC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKworI2lmbmRl
ZiBKU19ET01fRVZFTlRfTElTVEVORVJfWE1MX0hUVFBfUkVRVUVTVF9ICisjZGVmaW5lIEpTX0RP
TV9FVkVOVF9MSVNURU5FUl9YTUxfSFRUUF9SRVFVRVNUX0gKKworI2luY2x1ZGUgPGdsaWIuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKKyNpbmNsdWRlICJHZG9tWE1M
SHR0cFJlcXVlc3QuaCIKKworLyogVE9ETzogcmV0dXJuIHRoZSBhY3R1YWwgZXZlbnQgbGlzdGVu
ZXIgY3JlYXRlZCwgd2hpY2ggcmVxdWlyZXMKKyAqIGEgZ2xpYiB3cmFwcGVyIG9iamVjdCB0byBi
ZSBjcmVhdGVkLgorICogVE9ETzogcHJvdmlkZSBhICdyZW1vdmVfZXZlbnRfbGlzdGVuZXInIHdo
aWNoIHRha2VzIHRoYXQgZ2xpYgorICogb2JqZWN0IGFzIGFuIGFyZ3VtZW50ICovCitleHRlcm4g
IkMiIHsKK1dFQktJVF9BUEkKK2dib29sZWFuIGFkZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xp
c3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCAqd2YsCisgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpuYW1lKTsKK30KKworI2VuZGlmIC8qSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1hNTF9IVFRQX1JF
UVVFU1RfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAkocmV2aXNpb24gMzY0
MDMpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQwLDYgKzQwLDkgQEAKIAogR19CRUdJTl9ERUNMUwogCit0eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0RXZlbnQgV2ViS2l0RXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnRDbGFzcyBX
ZWJLaXRFdmVudENsYXNzOworCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3Qg
V2ViS2l0TmV0d29ya1JlcXVlc3Q7CiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVl
c3RDbGFzcyBXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzOwogCkluZGV4OiBXZWJLaXQvZ3RrL3dl
YmtpdC9nZG9tZGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L2dkb21k
ZWZpbmVzLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJp
Z2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgV0VCS0lUX0dE
T01fREVGSU5FU19ICisjZGVmaW5lIFdFQktJVF9HRE9NX0RFRklORVNfSAorCisjaW5jbHVkZSA8
Z2xpYi5oPgorCisjaWZkZWYgR19PU19XSU4zMgorICAgICNpZmRlZiBCVUlMRElOR19XRUJLSVRf
R0RPTQorICAgICAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQSSBfX2RlY2xzcGVjKGRsbGV4cG9y
dCkKKyAgICAjZWxzZQorICAgICAgICAjZGVmaW5lIFdFQktJVF9HRE9NX0FQSSBfX2RlY2xzcGVj
KGRsbGltcG9ydCkKKyAgICAjZW5kaWYKKyAgICAjZGVmaW5lIFdFQktJVF9HRE9NX09CU09MRVRF
X0FQSSBXRUJLSVRfR0RPTV9BUEkKKyNlbHNlCisgICAgI2RlZmluZSBXRUJLSVRfR0RPTV9BUEkg
X19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKKyAgICAjZGVmaW5lIFdFQktJ
VF9HRE9NX09CU09MRVRFX0FQSSBXRUJLSVRfR0RPTV9BUEkgX19hdHRyaWJ1dGVfXygoZGVwcmVj
YXRlZCkpCisjZW5kaWYKKworI2lmbmRlZiBXRUJLSVRfR0RPTV9BUEkKKyAgICAjZGVmaW5lIFdF
QktJVF9HRE9NX0FQSQorI2VuZGlmCisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOworCit0eXBlZGVmIHN0cnVj
dCBfR2RvbUF0dHIgR2RvbUF0dHI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUF0dHJDbGFzcyBHZG9t
QXR0ckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21CYXJJbmZvIEdkb21CYXJJbmZvOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21CYXJJbmZvQ2xhc3MgR2RvbUJhckluZm9DbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tQ2FudmFzR3JhZGllbnQgR2RvbUNhbnZhc0dyYWRpZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21DYW52YXNHcmFkaWVudENsYXNzIEdkb21DYW52YXNHcmFkaWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQYXR0ZXJuIEdkb21DYW52YXNQYXR0ZXJuOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21DYW52YXNQYXR0ZXJuQ2xhc3MgR2RvbUNhbnZhc1BhdHRlcm5DbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGl4ZWxBcnJheSBHZG9tQ2FudmFzUGl4ZWxB
cnJheTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2FudmFzUGl4ZWxBcnJheUNsYXNzIEdkb21DYW52
YXNQaXhlbEFycmF5Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCBHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRDbGFzcyBHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNEQVRBU2VjdGlvbiBHZG9tQ0RBVEFTZWN0
aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DREFUQVNlY3Rpb25DbGFzcyBHZG9tQ0RBVEFTZWN0
aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNoYXJhY3RlckRhdGEgR2RvbUNoYXJhY3Rl
ckRhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNoYXJhY3RlckRhdGFDbGFzcyBHZG9tQ2hhcmFj
dGVyRGF0YUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DbGlwYm9hcmQgR2RvbUNsaXBib2Fy
ZDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ2xpcGJvYXJkQ2xhc3MgR2RvbUNsaXBib2FyZENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Db21tZW50IEdkb21Db21tZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21Db21tZW50Q2xhc3MgR2RvbUNvbW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tQ29uc29sZSBHZG9tQ29uc29sZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ29uc29sZUNsYXNz
IEdkb21Db25zb2xlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvdW50ZXIgR2RvbUNvdW50
ZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNvdW50ZXJDbGFzcyBHZG9tQ291bnRlckNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NDaGFyc2V0UnVsZSBHZG9tQ1NTQ2hhcnNldFJ1bGU7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0NoYXJzZXRSdWxlQ2xhc3MgR2RvbUNTU0NoYXJzZXRSdWxl
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ZvbnRGYWNlUnVsZSBHZG9tQ1NTRm9udEZh
Y2VSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NGb250RmFjZVJ1bGVDbGFzcyBHZG9tQ1NT
Rm9udEZhY2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ltcG9ydFJ1bGUgR2Rv
bUNTU0ltcG9ydFJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU0ltcG9ydFJ1bGVDbGFzcyBH
ZG9tQ1NTSW1wb3J0UnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NNZWRpYVJ1bGUg
R2RvbUNTU01lZGlhUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTTWVkaWFSdWxlQ2xhc3Mg
R2RvbUNTU01lZGlhUnVsZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NQYWdlUnVsZSBH
ZG9tQ1NTUGFnZVJ1bGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1BhZ2VSdWxlQ2xhc3MgR2Rv
bUNTU1BhZ2VSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1ByaW1pdGl2ZVZhbHVl
IEdkb21DU1NQcmltaXRpdmVWYWx1ZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUHJpbWl0aXZl
VmFsdWVDbGFzcyBHZG9tQ1NTUHJpbWl0aXZlVmFsdWVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tQ1NTUnVsZSBHZG9tQ1NTUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZUNsYXNz
IEdkb21DU1NSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1J1bGVMaXN0IEdkb21D
U1NSdWxlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTUnVsZUxpc3RDbGFzcyBHZG9tQ1NT
UnVsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbiBH
ZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTU3R5bGVEZWNs
YXJhdGlvbkNsYXNzIEdkb21DU1NTdHlsZURlY2xhcmF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUNTU1N0eWxlUnVsZSBHZG9tQ1NTU3R5bGVSdWxlOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21DU1NTdHlsZVJ1bGVDbGFzcyBHZG9tQ1NTU3R5bGVSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUNTU1N0eWxlU2hlZXQgR2RvbUNTU1N0eWxlU2hlZXQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUNTU1N0eWxlU2hlZXRDbGFzcyBHZG9tQ1NTU3R5bGVTaGVldENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21DU1NWYWx1ZSBHZG9tQ1NTVmFsdWU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNT
U1ZhbHVlQ2xhc3MgR2RvbUNTU1ZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1Zh
bHVlTGlzdCBHZG9tQ1NTVmFsdWVMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21DU1NWYWx1ZUxp
c3RDbGFzcyBHZG9tQ1NTVmFsdWVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUNTU1Zh
cmlhYmxlc0RlY2xhcmF0aW9uIEdkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbjsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb25DbGFzcyBHZG9tQ1NTVmFyaWFibGVz
RGVjbGFyYXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzUnVsZSBH
ZG9tQ1NTVmFyaWFibGVzUnVsZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tQ1NTVmFyaWFibGVzUnVs
ZUNsYXNzIEdkb21DU1NWYXJpYWJsZXNSdWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURh
dGFiYXNlIEdkb21EYXRhYmFzZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRGF0YWJhc2VDbGFzcyBH
ZG9tRGF0YWJhc2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRGcmFnbWVudCBH
ZG9tRG9jdW1lbnRGcmFnbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRGcmFnbWVu
dENsYXNzIEdkb21Eb2N1bWVudEZyYWdtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURv
Y3VtZW50IEdkb21Eb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRDbGFzcyBH
ZG9tRG9jdW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRG9jdW1lbnRUeXBlIEdkb21E
b2N1bWVudFR5cGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURvY3VtZW50VHlwZUNsYXNzIEdkb21E
b2N1bWVudFR5cGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NQXBwbGljYXRpb25DYWNo
ZSBHZG9tRE9NQXBwbGljYXRpb25DYWNoZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NQXBwbGlj
YXRpb25DYWNoZUNsYXNzIEdkb21ET01BcHBsaWNhdGlvbkNhY2hlQ2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbURPTUNvcmVFeGNlcHRpb24gR2RvbURPTUNvcmVFeGNlcHRpb247Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbURPTUNvcmVFeGNlcHRpb25DbGFzcyBHZG9tRE9NQ29yZUV4Y2VwdGlvbkNs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01JbXBsZW1lbnRhdGlvbiBHZG9tRE9NSW1wbGVt
ZW50YXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTUltcGxlbWVudGF0aW9uQ2xhc3MgR2Rv
bURPTUltcGxlbWVudGF0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVBhcnNlciBH
ZG9tRE9NUGFyc2VyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01QYXJzZXJDbGFzcyBHZG9tRE9N
UGFyc2VyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVNlbGVjdGlvbiBHZG9tRE9NU2Vs
ZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01TZWxlY3Rpb25DbGFzcyBHZG9tRE9NU2Vs
ZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTVdpbmRvdyBHZG9tRE9NV2luZG93
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01XaW5kb3dDbGFzcyBHZG9tRE9NV2luZG93Q2xhc3M7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUVsZW1lbnQgR2RvbUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUVsZW1lbnRDbGFzcyBHZG9tRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21FbnRpdHkgR2RvbUVudGl0eTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRW50aXR5Q2xhc3MgR2Rv
bUVudGl0eUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FbnRpdHlSZWZlcmVuY2UgR2RvbUVu
dGl0eVJlZmVyZW5jZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRW50aXR5UmVmZXJlbmNlQ2xhc3Mg
R2RvbUVudGl0eVJlZmVyZW5jZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudEV4Y2Vw
dGlvbiBHZG9tRXZlbnRFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50RXhjZXB0
aW9uQ2xhc3MgR2RvbUV2ZW50RXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2
ZW50IEdkb21FdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRDbGFzcyBHZG9tRXZlbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmlsZSBHZG9tRmlsZTsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRmlsZUNsYXNzIEdkb21GaWxlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUZpbGVM
aXN0IEdkb21GaWxlTGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRmlsZUxpc3RDbGFzcyBHZG9t
RmlsZUxpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSGlzdG9yeSBHZG9tSGlzdG9yeTsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSGlzdG9yeUNsYXNzIEdkb21IaXN0b3J5Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxBbmNob3JFbGVtZW50IEdkb21IVE1MQW5jaG9yRWxlbWVudDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFuY2hvckVsZW1lbnRDbGFzcyBHZG9tSFRNTEFuY2hv
ckVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEFwcGxldEVsZW1lbnQgR2Rv
bUhUTUxBcHBsZXRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQXBwbGV0RWxlbWVu
dENsYXNzIEdkb21IVE1MQXBwbGV0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MQXJlYUVsZW1lbnQgR2RvbUhUTUxBcmVhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTEFyZWFFbGVtZW50Q2xhc3MgR2RvbUhUTUxBcmVhRWxlbWVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MQmFzZUVsZW1lbnQgR2RvbUhUTUxCYXNlRWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTEJhc2VFbGVtZW50Q2xhc3MgR2RvbUhUTUxCYXNlRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUZvbnRFbGVtZW50IEdkb21IVE1MQmFzZUZv
bnRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQmFzZUZvbnRFbGVtZW50Q2xhc3Mg
R2RvbUhUTUxCYXNlRm9udEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJs
b2NrcXVvdGVFbGVtZW50IEdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudENsYXNzIEdkb21IVE1MQmxvY2txdW90ZUVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJvZHlFbGVtZW50IEdkb21IVE1MQm9k
eUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCb2R5RWxlbWVudENsYXNzIEdkb21I
VE1MQm9keUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJSRWxlbWVudCBH
ZG9tSFRNTEJSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJSRWxlbWVudENsYXNz
IEdkb21IVE1MQlJFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxCdXR0b25F
bGVtZW50IEdkb21IVE1MQnV0dG9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEJ1
dHRvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTEJ1dHRvbkVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTENhbnZhc0VsZW1lbnQgR2RvbUhUTUxDYW52YXNFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MQ2FudmFzRWxlbWVudENsYXNzIEdkb21IVE1MQ2FudmFzRWxlbWVu
dENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MQ29sbGVjdGlvbiBHZG9tSFRNTENvbGxl
Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxDb2xsZWN0aW9uQ2xhc3MgR2RvbUhUTUxD
b2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50
IEdkb21IVE1MRGlyZWN0b3J5RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERpcmVj
dG9yeUVsZW1lbnRDbGFzcyBHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRDbGFzczsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTERpdkVsZW1lbnQgR2RvbUhUTUxEaXZFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MRGl2RWxlbWVudENsYXNzIEdkb21IVE1MRGl2RWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRExpc3RFbGVtZW50IEdkb21IVE1MRExpc3RFbGVtZW50
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRExpc3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxETGlz
dEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTERvY3VtZW50IEdkb21IVE1M
RG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxEb2N1bWVudENsYXNzIEdkb21IVE1M
RG9jdW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEVsZW1lbnQgR2RvbUhUTUxF
bGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRWxlbWVudENsYXNzIEdkb21IVE1MRWxl
bWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRW1iZWRFbGVtZW50IEdkb21IVE1M
RW1iZWRFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRW1iZWRFbGVtZW50Q2xhc3Mg
R2RvbUhUTUxFbWJlZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEZpZWxk
U2V0RWxlbWVudCBHZG9tSFRNTEZpZWxkU2V0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9t
SFRNTEZpZWxkU2V0RWxlbWVudENsYXNzIEdkb21IVE1MRmllbGRTZXRFbGVtZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb250RWxlbWVudCBHZG9tSFRNTEZvbnRFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9udEVsZW1lbnRDbGFzcyBHZG9tSFRNTEZvbnRFbGVt
ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGb3JtRWxlbWVudCBHZG9tSFRNTEZv
cm1FbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MRm9ybUVsZW1lbnRDbGFzcyBHZG9t
SFRNTEZvcm1FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGcmFtZUVsZW1l
bnQgR2RvbUhUTUxGcmFtZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxGcmFtZUVs
ZW1lbnRDbGFzcyBHZG9tSFRNTEZyYW1lRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MRnJhbWVTZXRFbGVtZW50IEdkb21IVE1MRnJhbWVTZXRFbGVtZW50OwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Q2xhc3MgR2RvbUhUTUxGcmFtZVNldEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhlYWRFbGVtZW50IEdkb21IVE1MSGVh
ZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIZWFkRWxlbWVudENsYXNzIEdkb21I
VE1MSGVhZEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEhlYWRpbmdFbGVt
ZW50IEdkb21IVE1MSGVhZGluZ0VsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxIZWFk
aW5nRWxlbWVudENsYXNzIEdkb21IVE1MSGVhZGluZ0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTEhSRWxlbWVudCBHZG9tSFRNTEhSRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTEhSRWxlbWVudENsYXNzIEdkb21IVE1MSFJFbGVtZW50Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbUhUTUxIdG1sRWxlbWVudCBHZG9tSFRNTEh0bWxFbGVtZW50OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MSHRtbEVsZW1lbnRDbGFzcyBHZG9tSFRNTEh0bWxFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxJRnJhbWVFbGVtZW50IEdkb21IVE1MSUZyYW1l
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElGcmFtZUVsZW1lbnRDbGFzcyBHZG9t
SFRNTElGcmFtZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEltYWdlRWxl
bWVudCBHZG9tSFRNTEltYWdlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTEltYWdl
RWxlbWVudENsYXNzIEdkb21IVE1MSW1hZ2VFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxJbnB1dEVsZW1lbnQgR2RvbUhUTUxJbnB1dEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxJbnB1dEVsZW1lbnRDbGFzcyBHZG9tSFRNTElucHV0RWxlbWVudENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MSXNJbmRleEVsZW1lbnQgR2RvbUhUTUxJc0luZGV4RWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTElzSW5kZXhFbGVtZW50Q2xhc3MgR2RvbUhU
TUxJc0luZGV4RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGFiZWxFbGVt
ZW50IEdkb21IVE1MTGFiZWxFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTGFiZWxF
bGVtZW50Q2xhc3MgR2RvbUhUTUxMYWJlbEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTExlZ2VuZEVsZW1lbnQgR2RvbUhUTUxMZWdlbmRFbGVtZW50OwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21IVE1MTGVnZW5kRWxlbWVudENsYXNzIEdkb21IVE1MTGVnZW5kRWxlbWVudENsYXNz
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTElFbGVtZW50IEdkb21IVE1MTElFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTElFbGVtZW50Q2xhc3MgR2RvbUhUTUxMSUVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTExpbmtFbGVtZW50IEdkb21IVE1MTGlua0Vs
ZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxMaW5rRWxlbWVudENsYXNzIEdkb21IVE1M
TGlua0VsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1hcEVsZW1lbnQgR2Rv
bUhUTUxNYXBFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWFwRWxlbWVudENsYXNz
IEdkb21IVE1MTWFwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWFycXVl
ZUVsZW1lbnQgR2RvbUhUTUxNYXJxdWVlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TE1hcnF1ZWVFbGVtZW50Q2xhc3MgR2RvbUhUTUxNYXJxdWVlRWxlbWVudENsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21IVE1MTWVudUVsZW1lbnQgR2RvbUhUTUxNZW51RWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTE1lbnVFbGVtZW50Q2xhc3MgR2RvbUhUTUxNZW51RWxlbWVudENs
YXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTWV0YUVsZW1lbnQgR2RvbUhUTUxNZXRhRWxl
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE1ldGFFbGVtZW50Q2xhc3MgR2RvbUhUTUxN
ZXRhRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MTW9kRWxlbWVudCBHZG9t
SFRNTE1vZEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxNb2RFbGVtZW50Q2xhc3Mg
R2RvbUhUTUxNb2RFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPYmplY3RF
bGVtZW50IEdkb21IVE1MT2JqZWN0RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTE9i
amVjdEVsZW1lbnRDbGFzcyBHZG9tSFRNTE9iamVjdEVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTE9MaXN0RWxlbWVudCBHZG9tSFRNTE9MaXN0RWxlbWVudDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tSFRNTE9MaXN0RWxlbWVudENsYXNzIEdkb21IVE1MT0xpc3RFbGVtZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQgR2RvbUhUTUxPcHRH
cm91cEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRHcm91cEVsZW1lbnRDbGFz
cyBHZG9tSFRNTE9wdEdyb3VwRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
T3B0aW9uRWxlbWVudCBHZG9tSFRNTE9wdGlvbkVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxPcHRpb25FbGVtZW50Q2xhc3MgR2RvbUhUTUxPcHRpb25FbGVtZW50Q2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbiBHZG9tSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25DbGFzcyBH
ZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQ
YXJhZ3JhcGhFbGVtZW50IEdkb21IVE1MUGFyYWdyYXBoRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnRDbGFzcyBHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnRD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFtRWxlbWVudCBHZG9tSFRNTFBhcmFt
RWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFBhcmFtRWxlbWVudENsYXNzIEdkb21I
VE1MUGFyYW1FbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxQcmVFbGVtZW50
IEdkb21IVE1MUHJlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFByZUVsZW1lbnRD
bGFzcyBHZG9tSFRNTFByZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFF1
b3RlRWxlbWVudCBHZG9tSFRNTFF1b3RlRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRN
TFF1b3RlRWxlbWVudENsYXNzIEdkb21IVE1MUXVvdGVFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbUhUTUxTY3JpcHRFbGVtZW50IEdkb21IVE1MU2NyaXB0RWxlbWVudDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTFNjcmlwdEVsZW1lbnRDbGFzcyBHZG9tSFRNTFNjcmlwdEVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFNlbGVjdEVsZW1lbnQgR2RvbUhUTUxT
ZWxlY3RFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU2VsZWN0RWxlbWVudENsYXNz
IEdkb21IVE1MU2VsZWN0RWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MU3R5
bGVFbGVtZW50IEdkb21IVE1MU3R5bGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
U3R5bGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxTdHlsZUVsZW1lbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQgR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzIEdk
b21IVE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1M
VGFibGVDZWxsRWxlbWVudCBHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQgR2RvbUhUTUxU
YWJsZUNvbEVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRD
bGFzcyBHZG9tSFRNTFRhYmxlQ29sRWxlbWVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21I
VE1MVGFibGVFbGVtZW50IEdkb21IVE1MVGFibGVFbGVtZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21IVE1MVGFibGVFbGVtZW50Q2xhc3MgR2RvbUhUTUxUYWJsZUVsZW1lbnRDbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlUm93RWxlbWVudCBHZG9tSFRNTFRhYmxlUm93RWxlbWVu
dDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRhYmxlUm93RWxlbWVudENsYXNzIEdkb21IVE1M
VGFibGVSb3dFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50IEdkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRDbGFzcyBHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRleHRBcmVhRWxlbWVudCBHZG9tSFRN
TFRleHRBcmVhRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSFRNTFRleHRBcmVhRWxlbWVu
dENsYXNzIEdkb21IVE1MVGV4dEFyZWFFbGVtZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bUhUTUxUaXRsZUVsZW1lbnQgR2RvbUhUTUxUaXRsZUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbUhUTUxUaXRsZUVsZW1lbnRDbGFzcyBHZG9tSFRNTFRpdGxlRWxlbWVudENsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVUxpc3RFbGVtZW50IEdkb21IVE1MVUxpc3RFbGVtZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21IVE1MVUxpc3RFbGVtZW50Q2xhc3MgR2RvbUhUTUxVTGlzdEVs
ZW1lbnRDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSW1hZ2VEYXRhIEdkb21JbWFnZURhdGE7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUltYWdlRGF0YUNsYXNzIEdkb21JbWFnZURhdGFDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZSBHZG9tSmF2YVNjcmlwdENh
bGxGcmFtZTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZUNsYXNzIEdk
b21KYXZhU2NyaXB0Q2FsbEZyYW1lQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUtleWJvYXJk
RXZlbnQgR2RvbUtleWJvYXJkRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUtleWJvYXJkRXZl
bnRDbGFzcyBHZG9tS2V5Ym9hcmRFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21Mb2Nh
dGlvbiBHZG9tTG9jYXRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUxvY2F0aW9uQ2xhc3MgR2Rv
bUxvY2F0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lZGlhTGlzdCBHZG9tTWVkaWFM
aXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NZWRpYUxpc3RDbGFzcyBHZG9tTWVkaWFMaXN0Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1lc3NhZ2VFdmVudCBHZG9tTWVzc2FnZUV2ZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21NZXNzYWdlRXZlbnRDbGFzcyBHZG9tTWVzc2FnZUV2ZW50Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQXJyYXkgR2RvbU1pbWVUeXBlQXJyYXk7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQXJyYXlDbGFzcyBHZG9tTWltZVR5cGVBcnJh
eUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21NaW1lVHlwZSBHZG9tTWltZVR5cGU7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbU1pbWVUeXBlQ2xhc3MgR2RvbU1pbWVUeXBlQ2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbU1vdXNlRXZlbnQgR2RvbU1vdXNlRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbU1vdXNlRXZlbnRDbGFzcyBHZG9tTW91c2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21NdXRhdGlvbkV2ZW50IEdkb21NdXRhdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21NdXRhdGlvbkV2ZW50Q2xhc3MgR2RvbU11dGF0aW9uRXZlbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tTmFtZWROb2RlTWFwIEdkb21OYW1lZE5vZGVNYXA7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbU5hbWVkTm9kZU1hcENsYXNzIEdkb21OYW1lZE5vZGVNYXBDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tTmF2aWdhdG9yIEdkb21OYXZpZ2F0b3I7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5h
dmlnYXRvckNsYXNzIEdkb21OYXZpZ2F0b3JDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9k
ZUZpbHRlciBHZG9tTm9kZUZpbHRlcjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm9kZUZpbHRlckNs
YXNzIEdkb21Ob2RlRmlsdGVyQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGUgR2RvbU5v
ZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5vZGVDbGFzcyBHZG9tTm9kZUNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21Ob2RlSXRlcmF0b3IgR2RvbU5vZGVJdGVyYXRvcjsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tTm9kZUl0ZXJhdG9yQ2xhc3MgR2RvbU5vZGVJdGVyYXRvckNsYXNzOwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21Ob2RlTGlzdCBHZG9tTm9kZUxpc3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bU5vZGVMaXN0Q2xhc3MgR2RvbU5vZGVMaXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbU5v
dGF0aW9uIEdkb21Ob3RhdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tTm90YXRpb25DbGFzcyBH
ZG9tTm90YXRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tT3ZlcmZsb3dFdmVudCBHZG9t
T3ZlcmZsb3dFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tT3ZlcmZsb3dFdmVudENsYXNzIEdk
b21PdmVyZmxvd0V2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbkFycmF5IEdk
b21QbHVnaW5BcnJheTsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luQXJyYXlDbGFzcyBHZG9t
UGx1Z2luQXJyYXlDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUGx1Z2luIEdkb21QbHVnaW47
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVBsdWdpbkNsYXNzIEdkb21QbHVnaW5DbGFzczsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uIEdkb21Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbkNsYXNzIEdk
b21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvZ3Jl
c3NFdmVudCBHZG9tUHJvZ3Jlc3NFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUHJvZ3Jlc3NF
dmVudENsYXNzIEdkb21Qcm9ncmVzc0V2ZW50Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVJh
bmdlRXhjZXB0aW9uIEdkb21SYW5nZUV4Y2VwdGlvbjsKK3R5cGVkZWYgc3RydWN0IF9HZG9tUmFu
Z2VFeGNlcHRpb25DbGFzcyBHZG9tUmFuZ2VFeGNlcHRpb25DbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tUmFuZ2UgR2RvbVJhbmdlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SYW5nZUNsYXNzIEdk
b21SYW5nZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21SZWN0IEdkb21SZWN0OwordHlwZWRl
ZiBzdHJ1Y3QgX0dkb21SZWN0Q2xhc3MgR2RvbVJlY3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tU2NyZWVuIEdkb21TY3JlZW47Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVNjcmVlbkNsYXNzIEdk
b21TY3JlZW5DbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMRXJyb3IgR2RvbVNRTEVycm9y
OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxFcnJvckNsYXNzIEdkb21TUUxFcnJvckNsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXQgR2RvbVNRTFJlc3VsdFNldDsKK3R5cGVk
ZWYgc3RydWN0IF9HZG9tU1FMUmVzdWx0U2V0Q2xhc3MgR2RvbVNRTFJlc3VsdFNldENsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0IEdkb21TUUxSZXN1bHRTZXRS
b3dMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Q2xhc3MgR2Rv
bVNRTFJlc3VsdFNldFJvd0xpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU1FMVHJhbnNh
Y3Rpb24gR2RvbVNRTFRyYW5zYWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TUUxUcmFuc2Fj
dGlvbkNsYXNzIEdkb21TUUxUcmFuc2FjdGlvbkNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21T
dG9yYWdlRXZlbnQgR2RvbVN0b3JhZ2VFdmVudDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3RvcmFn
ZUV2ZW50Q2xhc3MgR2RvbVN0b3JhZ2VFdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21T
dG9yYWdlIEdkb21TdG9yYWdlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21TdG9yYWdlQ2xhc3MgR2Rv
bVN0b3JhZ2VDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldCBHZG9tU3R5bGVT
aGVldDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldENsYXNzIEdkb21TdHlsZVNoZWV0
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVN0eWxlU2hlZXRMaXN0IEdkb21TdHlsZVNoZWV0
TGlzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tU3R5bGVTaGVldExpc3RDbGFzcyBHZG9tU3R5bGVT
aGVldExpc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dEV2ZW50IEdkb21UZXh0RXZl
bnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRleHRFdmVudENsYXNzIEdkb21UZXh0RXZlbnRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tVGV4dCBHZG9tVGV4dDsKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tVGV4dENsYXNzIEdkb21UZXh0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRyZWVXYWxr
ZXIgR2RvbVRyZWVXYWxrZXI7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVRyZWVXYWxrZXJDbGFzcyBH
ZG9tVHJlZVdhbGtlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21VSUV2ZW50IEdkb21VSUV2
ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21VSUV2ZW50Q2xhc3MgR2RvbVVJRXZlbnRDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQgR2RvbVdlYktpdEFuaW1h
dGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJLaXRBbmltYXRpb25FdmVudENsYXNz
IEdkb21XZWJLaXRBbmltYXRpb25FdmVudENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZSBHZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWU7Cit0eXBlZGVm
IHN0cnVjdCBfR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlQ2xhc3MgR2RvbVdlYktpdENTU1Ry
YW5zZm9ybVZhbHVlQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVdlYktpdFRyYW5zaXRpb25F
dmVudCBHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX0dkb21XZWJL
aXRUcmFuc2l0aW9uRXZlbnRDbGFzcyBHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50Q2xhc3M7Cit0
eXBlZGVmIHN0cnVjdCBfR2RvbVdoZWVsRXZlbnQgR2RvbVdoZWVsRXZlbnQ7Cit0eXBlZGVmIHN0
cnVjdCBfR2RvbVdoZWVsRXZlbnRDbGFzcyBHZG9tV2hlZWxFdmVudENsYXNzOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiBHZG9tWE1MSHR0cFJlcXVlc3RFeGNl
cHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3Mg
R2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhN
TEh0dHBSZXF1ZXN0IEdkb21YTUxIdHRwUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWE1M
SHR0cFJlcXVlc3RDbGFzcyBHZG9tWE1MSHR0cFJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0
IF9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50IEdkb21YTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQ7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dENsYXNzIEdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRDbGFzczsKK3R5cGVkZWYgc3Ry
dWN0IF9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQgR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkOwor
dHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZENsYXNzIEdkb21YTUxIdHRw
UmVxdWVzdFVwbG9hZENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxTZXJpYWxpemVyIEdk
b21YTUxTZXJpYWxpemVyOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YTUxTZXJpYWxpemVyQ2xhc3Mg
R2RvbVhNTFNlcmlhbGl6ZXJDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhFdmFsdWF0
b3IgR2RvbVhQYXRoRXZhbHVhdG9yOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aEV2YWx1YXRv
ckNsYXNzIEdkb21YUGF0aEV2YWx1YXRvckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21YUGF0
aEV4Y2VwdGlvbiBHZG9tWFBhdGhFeGNlcHRpb247Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRo
RXhjZXB0aW9uQ2xhc3MgR2RvbVhQYXRoRXhjZXB0aW9uQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBf
R2RvbVhQYXRoRXhwcmVzc2lvbiBHZG9tWFBhdGhFeHByZXNzaW9uOwordHlwZWRlZiBzdHJ1Y3Qg
X0dkb21YUGF0aEV4cHJlc3Npb25DbGFzcyBHZG9tWFBhdGhFeHByZXNzaW9uQ2xhc3M7Cit0eXBl
ZGVmIHN0cnVjdCBfR2RvbVhQYXRoTlNSZXNvbHZlciBHZG9tWFBhdGhOU1Jlc29sdmVyOwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21YUGF0aE5TUmVzb2x2ZXJDbGFzcyBHZG9tWFBhdGhOU1Jlc29sdmVy
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbVhQYXRoUmVzdWx0IEdkb21YUGF0aFJlc3VsdDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tWFBhdGhSZXN1bHRDbGFzcyBHZG9tWFBhdGhSZXN1bHRDbGFz
czsKK3R5cGVkZWYgc3RydWN0IF9HZG9tWFNMVFByb2Nlc3NvciBHZG9tWFNMVFByb2Nlc3NvcjsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tWFNMVFByb2Nlc3NvckNsYXNzIEdkb21YU0xUUHJvY2Vzc29y
Q2xhc3M7CisKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAgICAgICAgICAgIChnZG9t
X2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9O
T0RFICAgICAgICAgICAgKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0FUVFIgICAgICAgICAgICAoZ2RvbV9hdHRyX2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9CQVJfSU5GTyAgICAgICAgICAgIChnZG9tX2Jhcl9pbmZvX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9DQU5WQVNfR1JBRElFTlQgICAgICAgICAgICAoZ2RvbV9j
YW52YXNfZ3JhZGllbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NBTlZBU19QQVRU
RVJOICAgICAgICAgICAgKGdkb21fY2FudmFzX3BhdHRlcm5fZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0NBTlZBU19QSVhFTF9BUlJBWSAgICAgICAgICAgIChnZG9tX2NhbnZhc19waXhl
bF9hcnJheV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0FOVkFTX1JFTkRFUklOR19D
T05URVhUMkQgICAgICAgICAgICAoZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ0RBVEFfU0VDVElPTiAgICAgICAgICAgIChnZG9t
X2NkYXRhX3NlY3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NIQVJBQ1RFUl9E
QVRBICAgICAgICAgICAgKGdkb21fY2hhcmFjdGVyX2RhdGFfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0NMSVBCT0FSRCAgICAgICAgICAgIChnZG9tX2NsaXBib2FyZF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfQ09NTUVOVCAgICAgICAgICAgIChnZG9tX2NvbW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NPTlNPTEUgICAgICAgICAgICAoZ2RvbV9jb25z
b2xlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DT1VOVEVSICAgICAgICAgICAgKGdk
b21fY291bnRlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX0NIQVJTRVRfUlVM
RSAgICAgICAgICAgIChnZG9tX2Nzc19jaGFyc2V0X3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0NTU19GT05UX0ZBQ0VfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19mb250X2Zh
Y2VfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX0lNUE9SVF9SVUxFICAg
ICAgICAgICAgKGdkb21fY3NzX2ltcG9ydF9ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9DU1NfTUVESUFfUlVMRSAgICAgICAgICAgIChnZG9tX2Nzc19tZWRpYV9ydWxlX2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfUEFHRV9SVUxFICAgICAgICAgICAgKGdkb21f
Y3NzX3BhZ2VfcnVsZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1BSSU1JVElW
RV9WQUxVRSAgICAgICAgICAgIChnZG9tX2Nzc19wcmltaXRpdmVfdmFsdWVfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0NTU19SVUxFICAgICAgICAgICAgKGdkb21fY3NzX3J1bGVfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19SVUxFX0xJU1QgICAgICAgICAgICAoZ2Rv
bV9jc3NfcnVsZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfU1RZTEVf
REVDTEFSQVRJT04gICAgICAgICAgICAoZ2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19TVFlMRV9SVUxFICAgICAgICAgICAgKGdkb21f
Y3NzX3N0eWxlX3J1bGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0NTU19TVFlMRV9T
SEVFVCAgICAgICAgICAgIChnZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfQ1NTX1ZBTFVFICAgICAgICAgICAgKGdkb21fY3NzX3ZhbHVlX2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFMVUVfTElTVCAgICAgICAgICAgIChnZG9tX2Nz
c192YWx1ZV9saXN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9DU1NfVkFSSUFCTEVT
X0RFQ0xBUkFUSU9OICAgICAgICAgICAgKGdkb21fY3NzX3ZhcmlhYmxlc19kZWNsYXJhdGlvbl9n
ZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfQ1NTX1ZBUklBQkxFU19SVUxFICAgICAgICAg
ICAgKGdkb21fY3NzX3ZhcmlhYmxlc19ydWxlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9EQVRBQkFTRSAgICAgICAgICAgIChnZG9tX2RhdGFiYXNlX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9ET0NVTUVOVF9GUkFHTUVOVCAgICAgICAgICAgIChnZG9tX2RvY3VtZW50X2Zy
YWdtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET0NVTUVOVCAgICAgICAgICAg
IChnZG9tX2RvY3VtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET0NVTUVOVF9U
WVBFICAgICAgICAgICAgKGdkb21fZG9jdW1lbnRfdHlwZV9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfRE9NX0FQUExJQ0FUSU9OX0NBQ0hFICAgICAgICAgICAgKGdkb21fZG9tX2FwcGxp
Y2F0aW9uX2NhY2hlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9ET01fQ09SRV9FWENF
UFRJT04gICAgICAgICAgICAoZ2RvbV9kb21fY29yZV9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0RPTV9JTVBMRU1FTlRBVElPTiAgICAgICAgICAgIChnZG9tX2RvbV9p
bXBsZW1lbnRhdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRE9NX1BBUlNFUiAg
ICAgICAgICAgIChnZG9tX2RvbV9wYXJzZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0RPTV9TRUxFQ1RJT04gICAgICAgICAgICAoZ2RvbV9kb21fc2VsZWN0aW9uX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9ET01fV0lORE9XICAgICAgICAgICAgKGdkb21fZG9tX3dpbmRv
d19nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9t
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0VOVElUWSAgICAgICAgICAg
IChnZG9tX2VudGl0eV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRU5USVRZX1JFRkVS
RU5DRSAgICAgICAgICAgIChnZG9tX2VudGl0eV9yZWZlcmVuY2VfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0VWRU5UX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9tX2V2ZW50X2V4Y2Vw
dGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRVZFTlQgICAgICAgICAgICAoZ2Rv
bV9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfRklMRSAgICAgICAgICAgIChn
ZG9tX2ZpbGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0ZJTEVfTElTVCAgICAgICAg
ICAgIChnZG9tX2ZpbGVfbGlzdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSElTVE9S
WSAgICAgICAgICAgIChnZG9tX2hpc3RvcnlfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBF
X0hUTUxfQU5DSE9SX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2FuY2hvcl9lbGVtZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0FQUExFVF9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9BUkVBX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2FyZWFfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9CQVNFX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX2Jhc2VfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9CQVNFX0ZPTlRfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfYmFzZV9mb250
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQkxPQ0tRVU9URV9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9ibG9ja3F1b3RlX2VsZW1lbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfQk9EWV9FTEVNRU5UICAgICAgICAgICAgKGdkb21f
aHRtbF9ib2R5X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxCUl9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGJyX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfQlVUVE9OX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2J1
dHRvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0NBTlZBU19F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9DT0xMRUNUSU9OICAgICAgICAgICAgKGdkb21faHRtbF9j
b2xsZWN0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0RJUkVDVE9SWV9F
TEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9kaXJlY3RvcnlfZWxlbWVudF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9ESVZfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxfZGl2X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxEX0xJU1Rf
RUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxkX2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfSFRNTF9ET0NVTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfZG9j
dW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfRUxFTUVOVCAgICAgICAg
ICAgIChnZG9tX2h0bWxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRN
TF9FTUJFRF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZJRUxEX1NFVF9FTEVNRU5UICAgICAgICAg
ICAgKGdkb21faHRtbF9maWVsZF9zZXRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9GT05UX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2ZvbnRfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9GT1JNX0VMRU1FTlQgICAgICAg
ICAgICAoZ2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfSFRNTF9GUkFNRV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9mcmFtZV9lbGVtZW50
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0ZSQU1FX1NFVF9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTF9IRUFEX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX2hlYWRf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9IRUFESU5HX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBHRE9NX1RZUEVfSFRNTEhSX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1saHJfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9IVE1MX0VMRU1FTlQgICAg
ICAgICAgICAoZ2RvbV9odG1sX2h0bWxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTElfRlJBTUVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxpX2ZyYW1lX2Vs
ZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfSU1BR0VfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9JTlBVVF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9pbnB1dF9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX0lTX0lOREVYX0VMRU1F
TlQgICAgICAgICAgICAoZ2RvbV9odG1sX2lzX2luZGV4X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfTEFCRUxfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxf
bGFiZWxfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9MRUdFTkRf
RUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbGVnZW5kX2VsZW1lbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxMSV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbGxp
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfTElOS19FTEVNRU5U
ICAgICAgICAgICAgKGdkb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0hUTUxfTUFQX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX21hcF9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01BUlFVRUVfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfbWFycXVlZV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9IVE1MX01FTlVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfbWVudV9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX01FVEFfRUxFTUVOVCAg
ICAgICAgICAgIChnZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9IVE1MX01PRF9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9tb2RfZWxlbWVu
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PQkpFQ1RfRUxFTUVOVCAgICAg
ICAgICAgIChnZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RP
TV9UWVBFX0hUTUxPX0xJU1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxvX2xpc3RfZWxl
bWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9PUFRfR1JPVVBfRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfT1BUSU9OX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X29wdGlvbl9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX09QVElP
TlNfQ09MTEVDVElPTiAgICAgICAgICAgIChnZG9tX2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1BBUkFHUkFQSF9FTEVNRU5UICAgICAg
ICAgICAgKGdkb21faHRtbF9wYXJhZ3JhcGhfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9QQVJBTV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9wYXJhbV9l
bGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1BSRV9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF9wcmVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfSFRNTF9RVU9URV9FTEVNRU5UICAgICAgICAgICAgKGdkb21faHRtbF9xdW90ZV9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1MX1NDUklQVF9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF9zY3JpcHRfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfSFRNTF9TRUxFQ1RfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfc2VsZWN0
X2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfU1RZTEVfRUxFTUVO
VCAgICAgICAgICAgIChnZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DQVBUSU9OX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9o
dG1sX3RhYmxlX2NhcHRpb25fZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
SFRNTF9UQUJMRV9DRUxMX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RhYmxlX2NlbGxf
ZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJMRV9DT0xfRUxF
TUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSFRNTF9UQUJM
RV9ST1dfRUxFTUVOVCAgICAgICAgICAgIChnZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfU0VDVElPTl9FTEVNRU5UICAg
ICAgICAgICAgKGdkb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X3R5cGUoKSkKKyNk
ZWZpbmUgR0RPTV9UWVBFX0hUTUxfVEVYVF9BUkVBX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9o
dG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9IVE1M
X1RJVExFX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1sX3RpdGxlX2VsZW1lbnRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX0hUTUxVX0xJU1RfRUxFTUVOVCAgICAgICAgICAgIChn
ZG9tX2h0bWx1X2xpc3RfZWxlbWVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfSU1B
R0VfREFUQSAgICAgICAgICAgIChnZG9tX2ltYWdlX2RhdGFfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
R0RPTV9UWVBFX0pBVkFfU0NSSVBUX0NBTExfRlJBTUUgICAgICAgICAgICAoZ2RvbV9qYXZhX3Nj
cmlwdF9jYWxsX2ZyYW1lX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9LRVlCT0FSRF9F
VkVOVCAgICAgICAgICAgIChnZG9tX2tleWJvYXJkX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9MT0NBVElPTiAgICAgICAgICAgIChnZG9tX2xvY2F0aW9uX2dldF90eXBlKCkp
CisjZGVmaW5lIEdET01fVFlQRV9NRURJQV9MSVNUICAgICAgICAgICAgKGdkb21fbWVkaWFfbGlz
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfTUVTU0FHRV9FVkVOVCAgICAgICAgICAg
IChnZG9tX21lc3NhZ2VfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX01JTUVf
VFlQRV9BUlJBWSAgICAgICAgICAgIChnZG9tX21pbWVfdHlwZV9hcnJheV9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfTUlNRV9UWVBFICAgICAgICAgICAgKGdkb21fbWltZV90eXBlX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NT1VTRV9FVkVOVCAgICAgICAgICAgIChnZG9t
X21vdXNlX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9NVVRBVElPTl9FVkVO
VCAgICAgICAgICAgIChnZG9tX211dGF0aW9uX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdE
T01fVFlQRV9OQU1FRF9OT0RFX01BUCAgICAgICAgICAgIChnZG9tX25hbWVkX25vZGVfbWFwX2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OQVZJR0FUT1IgICAgICAgICAgICAoZ2RvbV9u
YXZpZ2F0b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05PREVfRklMVEVSICAgICAg
ICAgICAgKGdkb21fbm9kZV9maWx0ZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX05P
REUgICAgICAgICAgICAoZ2RvbV9ub2RlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9O
T0RFX0lURVJBVE9SICAgICAgICAgICAgKGdkb21fbm9kZV9pdGVyYXRvcl9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfTk9ERV9MSVNUICAgICAgICAgICAgKGdkb21fbm9kZV9saXN0X2dl
dF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9OT1RBVElPTiAgICAgICAgICAgIChnZG9tX25v
dGF0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9PVkVSRkxPV19FVkVOVCAgICAg
ICAgICAgIChnZG9tX292ZXJmbG93X2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9QTFVHSU5fQVJSQVkgICAgICAgICAgICAoZ2RvbV9wbHVnaW5fYXJyYXlfZ2V0X3R5cGUoKSkK
KyNkZWZpbmUgR0RPTV9UWVBFX1BMVUdJTiAgICAgICAgICAgIChnZG9tX3BsdWdpbl9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUFJPQ0VTU0lOR19JTlNUUlVDVElPTiAgICAgICAgICAg
IChnZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX1BST0dSRVNTX0VWRU5UICAgICAgICAgICAgKGdkb21fcHJvZ3Jlc3NfZXZlbnRfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1JBTkdFX0VYQ0VQVElPTiAgICAgICAgICAgIChnZG9t
X3JhbmdlX2V4Y2VwdGlvbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUkFOR0UgICAg
ICAgICAgICAoZ2RvbV9yYW5nZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfUkVDVCAg
ICAgICAgICAgIChnZG9tX3JlY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NDUkVF
TiAgICAgICAgICAgIChnZG9tX3NjcmVlbl9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVf
U1FMX0VSUk9SICAgICAgICAgICAgKGdkb21fc3FsX2Vycm9yX2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9TUUxfUkVTVUxUX1NFVCAgICAgICAgICAgIChnZG9tX3NxbF9yZXN1bHRfc2V0
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9TUUxfUkVTVUxUX1NFVF9ST1dfTElTVCAg
ICAgICAgICAgIChnZG9tX3NxbF9yZXN1bHRfc2V0X3Jvd19saXN0X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fVFlQRV9TUUxfVFJBTlNBQ1RJT04gICAgICAgICAgICAoZ2RvbV9zcWxfdHJhbnNh
Y3Rpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1NUT1JBR0VfRVZFTlQgICAgICAg
ICAgICAoZ2RvbV9zdG9yYWdlX2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9T
VE9SQUdFICAgICAgICAgICAgKGdkb21fc3RvcmFnZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9N
X1RZUEVfU1RZTEVfU0hFRVQgICAgICAgICAgICAoZ2RvbV9zdHlsZV9zaGVldF9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX1RZUEVfU1RZTEVfU0hFRVRfTElTVCAgICAgICAgICAgIChnZG9tX3N0
eWxlX3NoZWV0X2xpc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1RFWFRfRVZFTlQg
ICAgICAgICAgICAoZ2RvbV90ZXh0X2V2ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQ
RV9URVhUICAgICAgICAgICAgKGdkb21fdGV4dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZ
UEVfVFJFRV9XQUxLRVIgICAgICAgICAgICAoZ2RvbV90cmVlX3dhbGtlcl9nZXRfdHlwZSgpKQor
I2RlZmluZSBHRE9NX1RZUEVfVUlfRVZFTlQgICAgICAgICAgICAoZ2RvbV91aV9ldmVudF9nZXRf
dHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfV0VCX0tJVF9BTklNQVRJT05fRVZFTlQgICAgICAg
ICAgICAoZ2RvbV93ZWJfa2l0X2FuaW1hdGlvbl9ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfV0VCX0tJVF9DU1NfVFJBTlNGT1JNX1ZBTFVFICAgICAgICAgICAgKGdkb21fd2Vi
X2tpdF9jc3NfdHJhbnNmb3JtX3ZhbHVlX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9X
RUJfS0lUX1RSQU5TSVRJT05fRVZFTlQgICAgICAgICAgICAoZ2RvbV93ZWJfa2l0X3RyYW5zaXRp
b25fZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1dIRUVMX0VWRU5UICAgICAg
ICAgICAgKGdkb21fd2hlZWxfZXZlbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hN
TF9IVFRQX1JFUVVFU1RfRVhDRVBUSU9OICAgICAgICAgICAgKGdkb21feG1sX2h0dHBfcmVxdWVz
dF9leGNlcHRpb25fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hNTF9IVFRQX1JFUVVF
U1QgICAgICAgICAgICAoZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5l
IEdET01fVFlQRV9YTUxfSFRUUF9SRVFVRVNUX1BST0dSRVNTX0VWRU5UICAgICAgICAgICAgKGdk
b21feG1sX2h0dHBfcmVxdWVzdF9wcm9ncmVzc19ldmVudF9nZXRfdHlwZSgpKQorI2RlZmluZSBH
RE9NX1RZUEVfWE1MX0hUVFBfUkVRVUVTVF9VUExPQUQgICAgICAgICAgICAoZ2RvbV94bWxfaHR0
cF9yZXF1ZXN0X3VwbG9hZF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX1RZUEVfWE1MX1NFUklB
TElaRVIgICAgICAgICAgICAoZ2RvbV94bWxfc2VyaWFsaXplcl9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX1RZUEVfWF9QQVRIX0VWQUxVQVRPUiAgICAgICAgICAgIChnZG9tX3hfcGF0aF9ldmFs
dWF0b3JfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9UWVBFX1hfUEFUSF9FWENFUFRJT04gICAg
ICAgICAgICAoZ2RvbV94X3BhdGhfZXhjZXB0aW9uX2dldF90eXBlKCkpCisjZGVmaW5lIEdET01f
VFlQRV9YX1BBVEhfRVhQUkVTU0lPTiAgICAgICAgICAgIChnZG9tX3hfcGF0aF9leHByZXNzaW9u
X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fVFlQRV9YX1BBVEhfTlNfUkVTT0xWRVIgICAgICAg
ICAgICAoZ2RvbV94X3BhdGhfbnNfcmVzb2x2ZXJfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9U
WVBFX1hfUEFUSF9SRVNVTFQgICAgICAgICAgICAoZ2RvbV94X3BhdGhfcmVzdWx0X2dldF90eXBl
KCkpCisjZGVmaW5lIEdET01fVFlQRV9YU0xUX1BST0NFU1NPUiAgICAgICAgICAgIChnZG9tX3hz
bHRfcHJvY2Vzc29yX2dldF90eXBlKCkpCitHX0VORF9ERUNMUworCisjZW5kaWYKSW5kZXg6IFdl
YktpdC9ndGsvd2Via2l0L2dkb20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9n
ZG9tLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tLmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTYwIEBACisjaW5jbHVkZSA8d2Via2l0L0dkb21FdmVudFRhcmdldE5v
ZGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTU9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tQXR0ci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQmFySW5mby5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tQ2FudmFzR3JhZGllbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNhbnZh
c1BhdHRlcm4uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNhbnZhc1BpeGVsQXJyYXkuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oPgorI2luY2x1ZGUg
PHdlYmtpdC9HZG9tQ0RBVEFTZWN0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DaGFyYWN0
ZXJEYXRhLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DbGlwYm9hcmQuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUNvbW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNvbnNvbGUuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUNvdW50ZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUNTU0No
YXJzZXRSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NGb250RmFjZVJ1bGUuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUNTU0ltcG9ydFJ1bGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUNTU01lZGlhUnVsZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTUGFnZVJ1bGUuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21DU1NSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NSdWxlTGlzdC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tQ1NTU3R5bGVSdWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NTdHlsZVNoZWV0
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NWYWx1ZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9H
ZG9tQ1NTVmFsdWVMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21DU1NWYXJpYWJsZXNEZWNs
YXJhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tRGF0YWJhc2UuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURvY3Vt
ZW50RnJhZ21lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURvY3VtZW50Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21Eb2N1bWVudFR5cGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTUFw
cGxpY2F0aW9uQ2FjaGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTUNvcmVFeGNlcHRpb24u
aD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTUltcGxlbWVudGF0aW9uLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21ET01QYXJzZXIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbURPTVNlbGVjdGlv
bi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRE9NV2luZG93Lmg+CisjaW5jbHVkZSA8d2Via2l0
L0dkb21FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21FbnRpdHkuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbUVudGl0eVJlZmVyZW5jZS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tRXZl
bnRFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUV2ZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21GaWxlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21GaWxlTGlzdC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tSGlzdG9yeS5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEFu
Y2hvckVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxBcHBsZXRFbGVtZW50Lmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQXJlYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxCYXNlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJhc2VG
b250RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQm9keUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvR2RvbUhUTUxCUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxCdXR0
b25FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MQ2FudmFzRWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTENvbGxlY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRGl2
RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTERMaXN0RWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tSFRNTERvY3VtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEVtYmVkRWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPHdl
YmtpdC9HZG9tSFRNTEZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MRm9y
bUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxGcmFtZUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxIZWFkRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTEhlYWRp
bmdFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSFJFbGVtZW50Lmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21IVE1MSHRtbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxJRnJhbWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSW1hZ2VFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MSW5wdXRFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxMYWJlbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxMZWdlbmRFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTElFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MTGlua0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxN
YXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTWFycXVlZUVsZW1lbnQuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxNZW51RWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tSFRNTE1ldGFFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MTW9kRWxl
bWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTE9iamVjdEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxPTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bUhUTUxPcHRHcm91cEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxPcHRpb25F
bGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21IVE1MUGFyYW1FbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1M
UHJlRWxlbWVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFF1b3RlRWxlbWVudC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUhUTUxTZWxlY3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MU3R5
bGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbUhUTUxUYWJsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZVJv
d0VsZW1lbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21IVE1MVGV4dEFyZWFFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8d2Via2l0L0dkb21IVE1MVGl0bGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21I
VE1MVUxpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21JbWFnZURhdGEuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbUtleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbUxvY2F0aW9uLmg+
CisjaW5jbHVkZSA8d2Via2l0L0dkb21NZWRpYUxpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2Rv
bU1lc3NhZ2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTWltZVR5cGVBcnJheS5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tTWltZVR5cGUuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU1v
dXNlRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbU11dGF0aW9uRXZlbnQuaD4KKyNpbmNs
dWRlIDx3ZWJraXQvR2RvbU5hbWVkTm9kZU1hcC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tTmF2
aWdhdG9yLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Ob2RlRmlsdGVyLmg+CisjaW5jbHVkZSA8
d2Via2l0L0dkb21Ob2RlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Ob2RlSXRlcmF0b3IuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvR2RvbU5vZGVMaXN0Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21O
b3RhdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tT3ZlcmZsb3dFdmVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tUGx1Z2luQXJyYXkuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVBsdWdp
bi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg+CisjaW5j
bHVkZSA8d2Via2l0L0dkb21Qcm9ncmVzc0V2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21S
YW5nZUV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tUmFuZ2UuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbVJlY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVNjcmVlbi5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tU1FMRXJyb3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVNRTFJl
c3VsdFNldC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9HZG9tU1FMVHJhbnNhY3Rpb24uaD4KKyNpbmNsdWRlIDx3ZWJraXQv
R2RvbVN0b3JhZ2VFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU3RvcmFnZS5oPgorI2lu
Y2x1ZGUgPHdlYmtpdC9HZG9tU3R5bGVTaGVldC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tU3R5
bGVTaGVldExpc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVRleHRFdmVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9HZG9tVGV4dC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tVHJlZVdhbGtlci5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tVUlFdmVudC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9t
V2ViS2l0QW5pbWF0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVdlYktpdENTU1Ry
YW5zZm9ybVZhbHVlLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21XZWJLaXRUcmFuc2l0aW9uRXZl
bnQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVdoZWVsRXZlbnQuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21Y
TUxIdHRwUmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50Lmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5o
PgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWE1MU2VyaWFsaXplci5oPgorI2luY2x1ZGUgPHdlYmtp
dC9HZG9tWFBhdGhFdmFsdWF0b3IuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhQYXRoRXhjZXB0
aW9uLmg+CisjaW5jbHVkZSA8d2Via2l0L0dkb21YUGF0aEV4cHJlc3Npb24uaD4KKyNpbmNsdWRl
IDx3ZWJraXQvR2RvbVhQYXRoTlNSZXNvbHZlci5oPgorI2luY2x1ZGUgPHdlYmtpdC9HZG9tWFBh
dGhSZXN1bHQuaD4KKyNpbmNsdWRlIDx3ZWJraXQvR2RvbVhTTFRQcm9jZXNzb3IuaD4KSW5kZXg6
IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNjQwMykKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC00LDYgKzQsNDkgQEAKIAogICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
IAorMjAwOC0wOS0xMiAgbGtjbCAgPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpwb3N0
UHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWROb3RpZmljYXRpb24pOgorICAgICAgICAqIHdlYmtpdC9F
dmVudExpc3RlbmVyTm9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvRXZlbnRMaXN0ZW5l
cldpbmRvdy5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvRXZlbnRMaXN0ZW5lclhNTEh0dHBS
ZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC9nZG9tLmg6IEFkZGVkLiAgVGhpcyBm
aWxlIHB1bGxzIGluIGFsbCBvZiB0aGUgZ2RvbSBnbGliIGhlYWRlcnMuICBpdCdzIHRoZXJlIGZv
ciBwZW9wbGUgd2hvIHdhbnQgdG8gYmUgbGF6eSBhbmQgbm90IGhhdmUgdG8gI2luY2x1ZGUgMzAw
IGZpbGVzLgorICAgICAgICAqIHdlYmtpdC9nZG9tZGVmaW5lcy5oOiBBZGRlZC4gVGhlIHN0eWxl
IG9mIHRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB3ZWJraXRkZWZpbmVzLmggYW5kIGlzIHVubGlr
ZWx5IHRvIHN1cnZpdmUgZm9yIGxvbmcuCisgICAgICAgICogd2Via2l0L3dlYmtpdGRlZmluZXMu
aDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9X
ZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9maW5hbGl6ZSk6CisgICAgICAgIChfV2Vi
S2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfY2xhc3NfaW5pdCk6CisgICAgICAgIChfV2Vi
S2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfaW5pdCk6CisgICAgICAgIChfV2ViS2l0RXZl
bnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfbmV3KToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZh
dGU6OndlYmtpdF9ldmVudF9nZXRfZXZlbnRfdHlwZSk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQ
cml2YXRlOjp3ZWJraXRfZXZlbnRfY2FuY2VsX2J1YmJsZSk6CisgICAgICAgIChfV2ViS2l0RXZl
bnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfcHJldmVudF9kZWZhdWx0KToKKyAgICAgICAgKF9XZWJL
aXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9zdG9wX3Byb3BhZ2F0aW9uKToKKyAgICAgICAg
KFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFhNTEh0dHBS
ZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6c2V0X3R5cGUpOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RF
dmVudExpc3RlbmVyOjpYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoWE1M
SHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjp+WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAg
ICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChOb2RlRXZlbnRMaXN0
ZW5lcjo6c2V0X3R5cGUpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6Ok5vZGVFdmVudExp
c3RlbmVyKToKKyAgICAgICAgKE5vZGVFdmVudExpc3RlbmVyOjp+Tm9kZUV2ZW50TGlzdGVuZXIp
OgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdp
bmRvd0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVy
OjpzZXRfdHlwZSk6CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVyOjpXaW5kb3dFdmVudExp
c3RlbmVyKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6On5XaW5kb3dFdmVudExpc3Rl
bmVyKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAg
ICAgKGFkZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAgKGFkZF9l
dmVudF9saXN0ZW5lcik6CisgICAgICAgIChhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKToKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0ZXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmZyYW1lLmNwcDogYWRkZWQgYnJvd3Nlci1ldmVudCwgc3VwcG9ydCBmb3IgWE1MSHR0
cFJlcXVlc3QsIGdldHRpbmcgRE9NIFdpbmRvdywgRE9NIERvY3VtZW50LCBhbmQgV2luZG93IGV2
ZW50IGxpc3RlbmVyLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgorCiAyMDA4
LTA5LTEwICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBNYXJrIFJvd2UuCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKIFdlYkNvcmUgOj0gJChz
cmNkaXIpL1dlYkNvcmUKIAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgOj0gTEFOR1VBR0Vf
SkFWQVNDUklQVD0xCitGRUFUVVJFX0RFRklORVNfR0RPTSA6PSBMQU5HVUFHRV9HT0JKRUNUPTEK
IFNWR19GRUFUVVJFUyA6PQogSFRNTF9GRUFUVVJFUyA6PQogCkBAIC05LDYgKzEwLDcgQEAKIFdF
QkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTIDo9ICQoV2ViQ29yZSkvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KIAogd2ViY29yZV9jcHBmbGFncyArPSBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBc
CiAJLUkkKHNyY2RpcikvV2ViQ29yZSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9q
cyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9icmlkZ2UgXApAQCAtMjcsNiArMjksNyBAQAogCS1J
JChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycyBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKIAktSSQoc3JjZGly
KS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYgXApAQCAtNTYsNyArNTksNyBAQAogCVdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRUYXJnZXRCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3Iu
bHV0LmggXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxl
LmNwcAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlLmNw
cCAKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9DU1NHcmFt
bWFyLmNwcCBcCkBAIC0zNjUsNyArMzY4LDU5MSBAQAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2Vu
dFN0eWxlU2hlZXRzLmggXAogCURlcml2ZWRTb3VyY2VzL1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0
YS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMv
WE1MTmFtZXMuaAorCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUF0dHIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQmFySW5mby5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ0RBVEFTZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NG
b250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU0ltcG9ydFJ1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU01lZGlhUnVsZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZh
bHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1
bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NTdHlsZURl
Y2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1N0eWxlU2hl
ZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tQ1NTVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ1NTVmFsdWUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxl
c0RlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc0RlY2xh
cmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DU1NWYXJpYWJsZXNSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc0dyYWRp
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZh
c1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUGl4ZWxBcnJheS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tQ2hhcmFjdGVyRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21DaGFy
YWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21DbGlwYm9hcmQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db21tZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUNvbW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tQ29uc29sZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tQ291bnRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Db3VudGVy
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURP
TUltcGxlbWVudGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbURPTUltcGxlbWVudGF0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01QYXJzZXIuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21ET01TZWxlY3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRE9NV2luZG93Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21Eb2N1bWVudEZyYWdtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21Eb2N1bWVudFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRG9jdW1lbnRU
eXBlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUVudGl0eVJl
ZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21FbnRpdHlSZWZlcmVuY2UuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21FdmVudEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tRmlsZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21G
aWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEFuY2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
SFRNTEFuY2hvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MQXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQlJFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
QmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxCb2R5RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxDYW52YXNFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TERMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRExpc3RFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTERpdkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxEb2N1bWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21IVE1MRW1iZWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGaWVsZFNldEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEZvcm1F
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21IVE1MRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MRnJhbWVT
ZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEh0
bWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxIdG1sRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxJ
bWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEltYWdlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElucHV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
SXNJbmRleEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxM
YWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExhYmVsRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTGlua0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWFy
cXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tSFRNTE1lbnVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
TWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE1ldGFFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTW9kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9MaXN0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT0xpc3RFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTE9w
dEdyb3VwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0R3JvdXBFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxP
cHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFBhcmFtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFBy
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNjcmlw
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
U3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxTdHlsZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxl
Q29sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVDb2xFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhU
TUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlUm93
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSFRN
TFRpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVGl0bGVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MVUxpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhp
c3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSGlzdG9yeS5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUltYWdlRGF0YS5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUtleWJvYXJkRXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUxvY2F0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUxpc3QuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZXNz
YWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWVzc2FnZUV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21NaW1l
VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTWltZVR5cGVBcnJheS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21Nb3Vz
ZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbU11dGF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTXV0
YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tTmFtZWROb2RlTWFwLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
TmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5hdmlnYXRvci5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlRmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVJdGVyYXRvci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbU5vZGVMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21Ob3RhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Ob3RhdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21PdmVyZmxvd0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW4u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21QbHVnaW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21QbHVnaW5BcnJheS5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21Qcm9ncmVzc0V2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tU2NyZWVuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNjcmVlbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHls
ZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
VGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21UZXh0LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGV4dEV2ZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21UZXh0TWV0cmljcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21UZXh0TWV0cmljcy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVHJlZVdhbGtlci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21UcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21V
SUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21XZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21XaGVl
bEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFVw
bG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21YU0xUUHJvY2Vzc29y
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhTTFRQcm9jZXNzb3IuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21B
dHRyLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQmFySW5mby5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ0RBVEFT
ZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1bGUuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU0NoYXJzZXRSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTRm9udEZhY2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NJ
bXBvcnRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTTWVkaWFSdWxlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NNZWRpYVJ1bGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQYWdlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTUHJpbWl0
aXZlVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ1NTUnVsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNT
U1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVEZWNsYXJh
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tQ1NTU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNTU1ZhbHVl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DU1NWYWx1ZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NT
VmFyaWFibGVzRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNT
U1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NT
VmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ1NTVmFyaWFi
bGVzUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc0dyYWRpZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUNhbnZhc1BhdHRlcm4uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52
YXNQaXhlbEFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DaGFyYWN0ZXJE
YXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21DaGFyYWN0ZXJEYXRhLmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21D
b21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Db21tZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tQ29uc29sZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvdW50ZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tRE9NSW1wbGVtZW50YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURP
TUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NUGFyc2Vy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01QYXJzZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21ET01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURP
TVdpbmRvdy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRE9NV2luZG93LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbURvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9j
dW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnRG
cmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbURvY3VtZW50VHlwZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUVudGl0eS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tRW50aXR5UmVmZXJlbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21FbnRpdHlSZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21FdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21GaWxl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21GaWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUZpbGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFuY2hvckVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBbmNob3JFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFwcGxldEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQlJF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEJhc2VFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MQm9keUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxC
dXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQnV0dG9u
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxDYW52YXNFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
RGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERp
cmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRGl2RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTERpdkVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxFbWJlZEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRmllbGRTZXRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MRm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxG
b3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGcmFtZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhl
YWRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTEhlYWRpbmdFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSGVhZGluZ0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSHRtbEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21IVE1MSUZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSW5wdXRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSW5wdXRFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTExhYmVsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMZWdlbmRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTGVnZW5kRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1M
TWFycXVlZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWVudUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZW51RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxNZXRhRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxNb2RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTE9MaXN0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPYmplY3RFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhU
TUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxQYXJh
bUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUHJlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21IVE1MUXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TFNlbGVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxTZWxl
Y3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFN0eWxlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFN0eWxlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21IVE1MVGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
SFRNTFRhYmxlUm93RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxUZXh0QXJl
YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGl0bGVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MVGl0bGVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRNTFVMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhp
c3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21JbWFnZURhdGEuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2
YXRlR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21LZXlib2Fy
ZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTG9jYXRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZWRp
YUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21NZXNzYWdlRXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1pbWVUeXBlQXJyYXku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTXV0
YXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTXV0YXRpb25FdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tTmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21O
YXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUZpbHRl
ci5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vZGVJdGVyYXRvci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5v
ZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tTm90YXRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU5vdGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
T3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVBsdWdpbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2Vz
L1ByaXZhdGVHZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVBsdWdpbkFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9ncmVzc0V2ZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVJhbmdlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmFuZ2VFeGNlcHRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNjcmVlbi5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU2NyZWVuLmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3R5
bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVN0eWxlU2hlZXRMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21UZXh0RXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbVRleHRNZXRyaWNzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdk
b21UZXh0TWV0cmljcy5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRyZWVXYWxrZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0
ZUdkb21VSUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0QW5pbWF0
aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdlYktpdEFuaW1hdGlv
bkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVdlYktpdENTU1RyYW5zZm9y
bVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XZWJLaXRUcmFuc2l0aW9uRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tWE1MSHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2Rv
bVhNTEh0dHBSZXF1ZXN0LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxI
dHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWE1MSHR0
cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxTZXJpYWxp
emVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YTUxTZXJpYWxpemVyLmggXAor
CURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1ByaXZhdGVHZG9tWFNMVFByb2Nlc3Nvci5oICBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggCiAKIElETF9CSU5ESU5HUyAr
PSAgXAogCVdlYkNvcmUvY3NzL0NvdW50ZXIuaWRsIFwKQEAgLTcxMSw2ICsxMjk4LDE2IEBACiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5n
U291cmNlUHJvdmlkZXIuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNw
cCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dk
b21ET01PYmplY3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2Jq
ZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0Lmgg
XAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmggXAogCVdlYkNvcmUvYnJpZGdl
L05QX2pzb2JqZWN0LmNwcCBcCiAJV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuaCBcCiAJV2Vi
Q29yZS9icmlkZ2UvYy9jX2NsYXNzLmNwcCBcCkBAIC0yMDQ3LDkgKzI2NDQsMTIgQEAKICMgLS0t
LQogaWYgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RF
RklORVNfR0RPTSArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAogd2ViY29y
ZV9idWlsdF9zb3VyY2VzICs9IFwKLQlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuY3BwCisJRGVyaXZlZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9Qcml2YXRlR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCiAKIElETF9CSU5ESU5HUyArPSBc
CiAJV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKQEAgLTIw
OTEsNiArMjY5MSw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9EQVRBQkFTRQogRkVBVFVSRV9ERUZJ
TkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RBVEFCQVNFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9N
ICs9IEVOQUJMRV9EQVRBQkFTRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvSlNEYXRhYmFzZS5jcHAgXApAQCAtMjEwMiw3ICsyNzAzLDI3IEBACiAJRGVy
aXZlZFNvdXJjZXMvSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
SlNTUUxSZXN1bHRTZXRSb3dMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rp
b24uY3BwIFwKLQlEZXJpdmVkU291cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmgKKwlEZXJpdmVkU291
cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21EYXRhYmFzZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMRXJyb3IuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
UUxSZXN1bHRTZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNRTFJlc3VsdFNldFJvd0xpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1FMVHJhbnNhY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21EYXRhYmFzZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNv
dXJjZXMvUHJpdmF0ZUdkb21TUUxFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21TUUxSZXN1bHRTZXQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJp
dmVkU291cmNlcy9Qcml2YXRlR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9Qcml2YXRlR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvUHJpdmF0ZUdkb21TUUxUcmFuc2FjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZh
dGVHZG9tU1FMVHJhbnNhY3Rpb24uaAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3Rv
cmFnZS9EYXRhYmFzZS5pZGwgXApAQCAtMjE3NiwxMiArMjc5NywyMSBAQAogIyAtLS0tCiBpZiBF
TkFCTEVfRE9NX1NUT1JBR0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9E
T01fU1RPUkFHRT0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfRE9NX1NUT1JBR0U9
MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFn
ZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZS5oIFwKIAlEZXJpdmVkU291cmNlcy9K
U1N0b3JhZ2VFdmVudC5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmgKKwlE
ZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3Rv
cmFnZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TdG9yYWdlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU3RvcmFnZUV2
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3RvcmFnZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRl
R2RvbVN0b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tU3RvcmFn
ZUV2ZW50LmgKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5p
ZGwgXApAQCAtMjI0MSw2ICsyODcxLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJTkVT
X0dET00gKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklERU89
MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMjYzLDcgKzI4OTQs
MzUgQEAKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9KU1RpbWVSYW5nZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suY3BwIFwK
LQlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMvSlNWb2lk
Q2FsbGJhY2suaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbUhUTUxBdWRpb0VsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9HZG9tSFRNTE1lZGlhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MTWVk
aWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU291cmNlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tSFRNTFZpZGVvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21IVE1M
VmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21NZWRpYUVycm9yLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVRp
bWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tVGltZVJhbmdlcy5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVZv
aWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBdWRpb0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbUhUTUxBdWRpb0VsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21IVE1MTWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1ByaXZhdGVHZG9tSFRNTFNvdXJjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Q
cml2YXRlR2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tSFRNTFZpZGVvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tSFRN
TFZpZGVvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lZGlhRXJyb3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvUHJpdmF0ZUdkb21UaW1lUmFuZ2VzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJp
dmF0ZUdkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tVm9pZENh
bGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21Wb2lkQ2FsbGJhY2suaAog
CiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbCBc
CkBAIC0yMzA3LDYgKzI5NjYsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfWFBBVEgKIEZFQVRVUkVf
REVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YUEFUSD0xCitGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfWFBBVEg9MQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1hQQVRI
PTEKIApAQCAtMjMyMiw3ICsyOTgyLDI3IEBACiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0aFJlc3Vs
dC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTWFBhdGhSZXN1bHQuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvWFBhdGhHcmFtbWFyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmgKKwlE
ZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRo
RXZhbHVhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXZhbHVhdG9yLmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhFeHByZXNz
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhSZXN1bHQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tWFBhdGhSZXN1bHQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
UHJpdmF0ZUdkb21YUGF0aEV2YWx1YXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVH
ZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV4
Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tWFBhdGhFeGNlcHRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvUHJpdmF0ZUdkb21YUGF0aEV4cHJlc3Npb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9Qcml2YXRlR2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1By
aXZhdGVHZG9tWFBhdGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9t
WFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbVhQYXRoUmVzdWx0
LmgKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwg
XApAQCAtMjM4Nyw2ICszMDY3LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1hTTFQKIEZFQVRVUkVf
REVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YU0xUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9N
ICs9IEVOQUJMRV9YU0xUPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YU0xUPTEK
IApAQCAtMjQxMCw2ICszMDkxLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1NWRwogRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWRz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00g
Kz0gRU5BQkxFX1NWRz0xIC0gYmlnIFRPRE8hIDopCiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05B
TUVTICs9ICQoV2ViQ29yZSkvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gCiBXRUJDT1JFX0NT
U19WQUxVRV9LRVlXT1JEUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmlu
CkBAIC0yNjg3LDYgKzMzNjksMjczIEBACiAJRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9YTGlua05hbWVzLmNwcAogCitub3QteWV0OgorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHQW5nbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5nbGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHQW5pbWF0ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0FuaW1hdGVkQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Fu
aW1hdGVkQm9vbGVhbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZEJvb2xl
YW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0FuaW1hdGVkSW50ZWdlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRM
ZW5ndGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdBbmltYXRlZExlbmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0FuaW1hdGVkTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0FuaW1hdGVk
TnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZE51bWJlckxpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHQW5pbWF0ZWRSZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFN0cmlu
Zy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdBbmlt
YXRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdDaXJjbGVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NpcmNsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0NsaXBQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdDbGlwUGF0aEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NvbG9yLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0NvbG9yLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHQ3Vyc29yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdD
dXJzb3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEZWZpbml0aW9uU3JjRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRGVmc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRGVmc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Rlc2NF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0Rlc2NFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdEb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdF
bGVtZW50SW5zdGFuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRWxlbWVudEluc3Rh
bmNlLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRJbnN0YW5jZUxpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdFbGxpcHNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdF
bGxpcHNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRXhjZXB0aW9uLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHRkVCbGVuZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVCbGVu
ZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZFQ29tcG9zaXRlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVE
aXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRGlz
cGxhY2VtZW50TWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVEaXN0YW50
TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRGlzdGFudExpZ2h0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0ZFRnVuY0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZF
RnVuY0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNCRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUZ1bmNCRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRkVGdW5jR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRkVGdW5jR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY1JFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGRUltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRUlt
YWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVNZXJnZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVNZXJnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvR2RvbVNWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFT2Zm
c2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRU9mZnNldEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
RkVTcG90TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGRVRpbGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHRmlsdGVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGaWx0ZXJFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZH
Rm9udEZhY2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdGb250RmFjZU5hbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdGb250RmFjZVNyY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9u
dEZhY2VTcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb250RmFjZVVyaUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHR0VsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL0dkb21TVkdHbHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R0dyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdHcmFkaWVudEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0ltYWdlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2Rv
bVNWR0xlbmd0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdMZW5ndGguaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR0xlbmd0aExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGluZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTGluZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01h
cmtlckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWFya2VyRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWFza0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9HZG9tU1ZHTWFza0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01hdHJp
eC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdNYXRyaXguaCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR01ldGFkYXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdN
ZXRhZGF0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR051bWJlci5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHTnVtYmVyTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdQYWludC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYWludC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUGF0aEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWcuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUGF0aFNlZ0FyY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2Vn
QXJjQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdBcmNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhdGhTZWdDbG9zZVBhdGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0
aFNlZ0Nsb3NlUGF0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
QWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmgg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
QWJzLmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Nt
b290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRy
YXRpY1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0Fi
cy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicy5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9H
ZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpbmV0
b1ZlcnRpY2FsUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BhdGhTZWdMaW5ldG9W
ZXJ0aWNhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0
aFNlZ01vdmV0b0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUGF0aFNlZ01vdmV0b1Jl
bC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmggXAorCURl
cml2ZWRTb3VyY2VzL0dkb21TVkdQYXR0ZXJuRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdQYXR0ZXJuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9pbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9pbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1BvaW50TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQb2ludExpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1BvbHlnb25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1BvbHlnb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdQb2x5bGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUG9seWxpbmVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
R2RvbVNWR1JlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHUmVjdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHUmVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1JlbmRlcmluZ0ludGVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvR2RvbVNWR1NWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9t
U1ZHU1ZHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU2NyaXB0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1Nl
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0b3BFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0b3BFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dk
b21TVkdTdHJpbmdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0cmluZ0xpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1N3
aXRjaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3dpdGNoRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL0dkb21TVkdTeW1ib2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdU
UmVmRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUUmVmRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVFNwYW5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1RTcGFuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRDb250ZW50RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9HZG9tU1ZHVGV4dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNW
R1RleHRQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdUZXh0UGF0aEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvR2RvbVNWR1RpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVHJhbnNm
b3JtLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1RyYW5zZm9ybS5oIFwKKwlEZXJpdmVk
U291cmNlcy9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL0dkb21T
VkdUcmFuc2Zvcm1MaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkdVbml0VHlwZXMuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2Vz
L0dkb21TVkdVc2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1VzZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvR2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvR2RvbVNWR1ZpZXdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL0dkb21TVkda
b29tRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9HZG9tU1ZHWm9vbUV2ZW50LmggCisKIElE
TF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJ
V2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTMyNjYsMzYgKzQyMTUsNDIgQEAKICMg
U1ZHIEZlYXR1cmVzCiBpZiBFTkFCTEVfU1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX1NWR19VU0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9T
VkdfVVNFPTEgIyBiaWcgVE9ETyEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3
ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxF
X1NWR19GT1JFSUdOX09CSkVDVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19GT1JFSUdOX09CSkVDVD0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NW
R19GT1JFSUdOX09CSkVDVD0xIAogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9P
QkpFQ1Q9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9
MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX1NWR19GT05UUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxF
X1NWR19GT05UUz0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3Jl
X2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZH
X0ZJTFRFUlMKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVS
Uz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19G
RUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVO
QUJMRV9TVkdfRklMVEVSUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFUVVJF
X0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBF
TkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FT
X0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJTkVT
X0dET00gKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9T
VkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1BVElP
Tj0xCiBlbmRpZgpAQCAtMzMwMyw2ICs0MjU4LDcgQEAKICMgU1ZHIHRhZyBhbmQgYXR0cmlidXRl
IG5hbWVzIChuZWVkIHRvIHBhc3MgYW4gZXh0cmEgZmxhZyBpZiBzdmcgZXhwZXJpbWVudGFsIGZl
YXR1cmVzIGFyZSBlbmFibGVkKQogRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwOiBEZXJpdmVk
U291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA7CiBEZXJpdmVkU291cmNlcy9KU1NWR0VsZW1l
bnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNw
cAorRGVyaXZlZFNvdXJjZXMvR2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2
ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcAogCiBpZiBTVkdfRkxBR1MKIERlcml2ZWRT
b3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3JlKS9kb20vbWFrZV9uYW1lcy5w
bCAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkvc3ZnL3N2Z2F0dHJzLmluCkBA
IC0zNDI0LDYgKzQzODAsMTUgQEAKICAgICAkKFdlYkNvcmUpL3htbCBcCiAgICAgJChXZWJDb3Jl
KS9wbHVnaW5zCiAKK0Rlcml2ZWRTb3VyY2VzL1ByaXZhdGVHZG9tJS5oOiBEZXJpdmVkU291cmNl
cy9HZG9tJS5oOworCitEZXJpdmVkU291cmNlcy9Qcml2YXRlR2RvbSUuY3BwOiBEZXJpdmVkU291
cmNlcy9HZG9tJS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL0dkb20lLmg6IERlcml2ZWRTb3VyY2Vz
L0dkb20lLmNwcDsKKworRGVyaXZlZFNvdXJjZXMvR2RvbSUuY3BwOiAlLmlkbCAkKFNDUklQVFNf
QklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVj
dC5wbQorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0taW5jbHVkZSAkKFdlYkNvcmUp
L2RvbSAtLWluY2x1ZGUgJChXZWJDb3JlKS9odG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL2NzcyAt
LWluY2x1ZGUgJChXZWJDb3JlKS9wYWdlIC0taW5jbHVkZSAkKFdlYkNvcmUpL3htbCAtLWluY2x1
ZGUgJChXZWJDb3JlKS9zdmcgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIC0tZGVmaW5lcyAi
JChGRUFUVVJFX0RFRklORVNfR0RPTSkiIC0tZ2VuZXJhdG9yIEdPYmplY3QgJDwKKwogRGVyaXZl
ZFNvdXJjZXMvSlMlLmg6IERlcml2ZWRTb3VyY2VzL0pTJS5jcHA7CiAKIERlcml2ZWRTb3VyY2Vz
L0pTJS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzQzOSw2ICs0NDA0LDcgQEAKIAlXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc1BhcnNlci5wbSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtIFwKKwlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG0gXAogCVdlYkNvcmUvY3NzL2h0bWw0LmNzcyBcCiAJV2ViQ29yZS9jc3Mv
cXVpcmtzLmNzcyBcCiAJV2ViQ29yZS9jc3Mvdmlldy1zb3VyY2UuY3NzIFwKQEAgLTM0NzYsMyAr
NDQ0Miw1IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UubHV0LmggXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5sdXQuaAogCisKKwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3Bw
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRU
YXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUg
Ikdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBv
cHRpb25hbCAqLworI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKKyNpbmNsdWRlICJHZG9tRXZl
bnQuaCIKK2VudW0geworICAgIEJST1dTRVJfRVZFTlQsCisgICAgTEFTVF9TSUdOQUwKK307CisK
K3N0YXRpYyBndWludCBldmVudF9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKKworCitX
ZWJDb3JlOjpOb2RlICoKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2
ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCkKK3sKKyAgICBHRE9NRXZlbnRUYXJnZXROb2RlICpyZXM7
CisgICAgcmVzID0gc3RhdGljX2Nhc3Q8R0RPTUV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZG9tX29i
amVjdF9nZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVxdWVzdCkpKTsKKyAgICByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4ocmVzLT5pbXBsKCkpOworfQorCisKK2V4
dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKEdkb21FdmVudFRhcmdldE5vZGUsIGdkb21fZXZl
bnRfdGFyZ2V0X25vZGUsIEdET01fVFlQRV9OT0RFKTsKKworLyoKK3N0cnVjdCBfR2RvbUV2ZW50
VGFyZ2V0Tm9kZVByaXZhdGUgeworICAgIGNsYXNzIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAq
aXRlbTsKK307ICAKKyovCisKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJ
VkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIEdET01fVFlQRV9F
VkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUpKQorCisvKgordm9p
ZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9zZXRfcHJpdmF0ZShHZG9tRXZlbnRUYXJnZXROb2Rl
ICpyZXF1ZXN0LCBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtKQoreworICAgIEdkb21F
dmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRf
UFJJVkFURShyZXF1ZXN0KTsKKyAgICBwcml2LT5pdGVtID0gaXRlbTsKK30KKyovCisKK3N0YXRp
YyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQor
eworICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZSogcmVxdWVzdCA9IEdET01fRVZFTlRfVEFSR0VU
X05PREUob2JqZWN0KTsKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IHJl
cXVlc3QtPnByaXY7Ki8KKyAgICAKKyAgICBHX09CSkVDVF9DTEFTUyhnZG9tX2V2ZW50X3Rhcmdl
dF9ub2RlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lk
IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfY2xhc3NfaW5pdChHZG9tRXZlbnRUYXJnZXROb2RlQ2xh
c3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBldmVudF9zaWduYWxzW0JST1dTRVJfRVZFTlRdID0g
Z19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwKKyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mo
cmVxdWVzdENsYXNzKSwKKyAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1Qg
fCBHX1NJR05BTF9BQ1RJT04gfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
X1NJR05BTF9ERVRBSUxFRCAgICApLAorICAgICAgICAwLAorICAgICAgICBOVUxMLAorICAgICAg
ICBOVUxMLAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAg
ICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgIEdET01fVFlQRV9FVkVOVCwgR19UWVBFX0JP
T0xFQU4pOworCisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSBn
ZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplOworCisgICAgLypnX3R5cGVfY2xhc3NfYWRk
X3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUp
KTsqLworfQorCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXQoR2RvbUV2
ZW50VGFyZ2V0Tm9kZSogcmVxdWVzdCkKK3sKKyAgICAvKkdkb21FdmVudFRhcmdldE5vZGVQcml2
YXRlKiBwcml2ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFURShyZXF1ZXN0KTsK
KyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfSAgIAorCit9IC8qIGV4dGVybiAiQyIgKi8K
KwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2Rl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRU
YXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0
ZUdkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2lmbmRlZiBf
X0dET01FdmVudFRhcmdldE5vZGVfSF9fX1BSSVZfCisjZGVmaW5lIF9fR0RPTUV2ZW50VGFyZ2V0
Tm9kZV9IX19fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZh
dGVHZG9tTm9kZS5oIgorY2xhc3MgV2ViQ29yZTo6Tm9kZTsKKwordHlwZWRlZiBzdHJ1Y3QgX0dk
b21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKKworV0VCS0lUX0FQSSBXZWJD
b3JlOjpOb2RlICoKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50
VGFyZ2V0Tm9kZSAqcmVxdWVzdCk7CisKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2lu
Y2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUg
IkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUg
Ikdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisKK2NsYXNzIEdTdHJpbmdDb252ZXJ0
IHsKKyAgICBwdWJsaWM6CisgICAgY29uc3QgZ2NoYXIgKm1fc3RyOworICAgIEdTdHJpbmdDb252
ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMudXRmOCgp
LmRhdGEoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpBdG9taWNTdHJpbmcgY29u
c3QmcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7IH0KK307
CisKK2V4dGVybiAiQyIgeworCisjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdTdHJpbmdDb252
ZXJ0KHN0cikubV9zdHIpCisKK3ZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVu
dF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeikKK3sKKyAgICBnX3JldHVy
bl9pZl9mYWlsICh0aGl6KTsKKyAgICAvKgorICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAq
IGl0ZW0gPSBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKHRoaXopOworICAgIFdl
YkNvcmU6OlN0cmluZyBfZ19ldmVudF90YXJnZXRfbm9kZV90eXBlX2FyZyA9IFdlYkNvcmU6OlN0
cmluZyhldmVudF90YXJnZXRfbm9kZV90eXBlX2FyZyk7CisgICAgaXRlbS0+aW5pdEV2ZW50VGFy
Z2V0Tm9kZShfZ19ldmVudF90YXJnZXRfbm9kZV90eXBlX2FyZyk7CisgICAgKi8KK30KKworfSAv
KiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2Rv
bURPTU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZh
dGVHZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUu
aCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgor
I2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0LmgiCisKK2V4dGVybiAiQyIgeworCitHX0RF
RklORV9UWVBFKEdkb21ET01PYmplY3QsIGdkb21fZG9tX29iamVjdCwgR19UWVBFX09CSkVDVCk7
CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdFByaXZhdGUgeworICAgICBHRE9NT2JqZWN0ICptX25v
ZGU7Cit9OyAgCisKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKG9iaikgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdk
b21ET01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRl
KEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QgKiBpdGVtKQoreworICAgIEdkb21E
T01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVl
c3QpOworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07CisgICAgLypwcml2LT5tX25vZGUtPmltcGwo
KS0+cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZh
dGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSog
cHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXR1cm4g
cHJpdi0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfZmluYWxpemUo
R09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01PYmplY3QqIHJlcXVlc3QgPSBHRE9NX0RP
TV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IHJlcXVl
c3QtPnByaXY7CisgICAgCisgICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+ZGVyZWYoKTsqLwor
ICAgIGRlbGV0ZSBwcml2LT5tX25vZGU7IC8qIGNhbGxzIG1faW1wbC0+ZGVyZWYoKSAqLworCisg
ICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9kb21fb2JqZWN0X3BhcmVudF9jbGFzcyktPmZpbmFsaXpl
KG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9jbGFzc19pbml0KEdk
b21ET01PYmplY3RDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKHJl
cXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9kb21fb2JqZWN0X2ZpbmFsaXplOworICAgIAor
ICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihHZG9tRE9N
T2JqZWN0UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfaW5pdChH
ZG9tRE9NT2JqZWN0KiByZXF1ZXN0KQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2
ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnBy
aXYgPSBwcml2OworfSAgIAorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fz
c29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBU
b2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgor
ICovCisKKyNpZm5kZWYgX19HZG9tRXZlbnRUYXJnZXROb2RlX0hfXworI2RlZmluZSBfX0dkb21F
dmVudFRhcmdldE5vZGVfSF9fCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3
ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0
IF9HZG9tRXZlbnRUYXJnZXROb2RlIEdkb21FdmVudFRhcmdldE5vZGU7Cit0eXBlZGVmIHN0cnVj
dCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIEdkb21FdmVudFRhcmdldE5vZGVDbGFzczsKKwor
I2RlZmluZSBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUgICAgICAgICAgICAoZ2RvbV9ldmVu
dF90YXJnZXRfbm9kZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RF
KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01f
VFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZSkpCisjZGVmaW5lIEdE
T01fRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
Q0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJn
ZXROb2RlQ2xhc3MpKQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9FVkVOVF9U
QVJHRVRfTk9ERSkpCisjZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RB
UkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfQ0xBU1Mob2Jq
KSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRVZFTlRfVEFS
R0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZTsKKwor
I2luY2x1ZGUgIkdkb21Ob2RlLmgiCisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSB7Cisg
ICAgR2RvbU5vZGUgcGFyZW50X2luc3RhbmNlOworCisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVBy
aXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyB7Cisg
ICAgR2RvbU5vZGVDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitn
ZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBlICh2b2lkKTsKKworV0VCS0lUX0FQSSB2b2lk
CitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVu
dFRhcmdldE5vZGUgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tRXZl
bnRUYXJnZXROb2RlX0hfXyAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURP
TU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01P
YmplY3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01P
YmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkdk
b21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorCitleHRlcm4gIkMiIHsK
Kwordm9pZAorZ2RvbV9kb21fb2JqZWN0X2luaXRfZG9tX29iamVjdCAoR2RvbURPTU9iamVjdCAq
dGhpeikKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTsKKwkvKgorICAgIFdlYkNvcmU6
OkRPTU9iamVjdCAqIGl0ZW0gPSBnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUodGhpeik7Cisg
ICAgV2ViQ29yZTo6U3RyaW5nIF9nX2RvbV9vYmplY3RfdHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJp
bmcoZG9tX29iamVjdF90eXBlX2FyZyk7CisgICAgaXRlbS0+aW5pdERPTU9iamVjdChfZ19kb21f
b2JqZWN0X3R5cGVfYXJnKTsKKwkqLworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QXBwbGUgSW5jLgorICovCisKKworI2lmbmRlZiBfX0dET01ET01PYmplY3RfSF9fX1BSSVZfCisj
ZGVmaW5lIF9fR0RPTURPTU9iamVjdF9IX19fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5o
IgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKK0dfQkVHSU5fREVDTFMKKworY2xhc3MgR0RP
TU9iamVjdDsKK1dFQktJVF9BUEkgR0RPTU9iamVjdCoKK2dkb21fZG9tX29iamVjdF9nZXRfcHJp
dmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0KTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2Rv
bV9vYmplY3Rfc2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCwgR0RPTU9iamVjdCog
aXRlbSk7CisKK0dfRU5EX0RFQ0xTCisjZW5kaWYKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1ODIgQEAKKy8qCisgKiBUSElTIEZJ
TEUgSVMgREVSSVZFRCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiAg
a2VlcGluZyBpdCB1cC10by1kYXRlIGNvdWxkIHBvdGVudGlhbGx5IGJlIGRvbmUgYnkgYWRkaW5n
CisgKiAgYSBtYWtlX25hbWVzLnBsIGdlbmVyYXRvciwgb3IgYnkgd3JpdGluZyBhIHNlcGFyYXRl
CisgKiAgZ2VuZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5o
IGFzIGlucHV0LgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29u
IExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiR2RvbU5vZGUuaCIKKyNpbmNsdWRlICJHRE9N
SFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIkdkb21IVE1MQW5jaG9yRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdk
b21IVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJhc2VFbGVtZW50LmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEJs
b2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxCb2R5RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxCdXR0b25FbGVt
ZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxUYWJsZUNvbEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTERpdkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRW1i
ZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJHZG9tSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxGb3JtRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkdkb21IVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhU
TUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTEhlYWRpbmdFbGVtZW50Lmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSFJF
bGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkdk
b21IVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MSW1hZ2VFbGVtZW50Lmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTElz
SW5kZXhFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJHZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTExJRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRN
TE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MTWV0YUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MT3B0R3JvdXBFbGVtZW50Lmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxQ
YXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFF1b3RlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdk
b21IVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21IVE1MU3R5bGVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJHZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21I
VE1MVGl0bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCIK
KyNpbmNsdWRlICJHZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21IVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEFw
cGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxBcmVhRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJSRWxlbWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
SFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE1vZEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
SFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEZpZWxkU2V0
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEZvbnRFbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhU
TUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxIZWFkaW5n
RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTEhlYWRFbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSFJFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21IVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxJ
RnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSW1hZ2VFbGVtZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUludEdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxM
ZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTElFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxNZW51RWxl
bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE1ldGFFbGVtZW50LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tSFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRN
TE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE9wdGlvbkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
SFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFNjcmlwdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTFRh
YmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxUZXh0QXJlYUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxUaXRsZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUhUTUxVTGlzdEVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgorCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXBwbGV0
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxC
YXNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNh
cHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxG
b3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRpbmdFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhSRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
TGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9w
dGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUHJlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFN0eWxlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFVM
aXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit0eXBlZGVmIEdET01Ob2RlKiAoKkNy
ZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uKShQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQW5jaG9yV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxBbmNob3JFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFwcGxldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXBwbGV0RWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MQXBwbGV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxBcmVhRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MQXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlQmFzZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEJhc2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUJhc2VGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNlRm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEJhc2VGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCbG9ja3F1b3RlRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MQmxvY2txdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlQm9keVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQm9keUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEJvZHlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZUJSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxCUkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJS
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVC
dXR0b25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTEJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQ2Fu
dmFzV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxDYW52YXNFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxl
Q2FwdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
VGFibGVDYXB0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVUYWJsZUNvbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVDb2xFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxUYWJsZUNvbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlTW9kV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNb2RFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxNb2RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZURpcmVjdG9yeVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sg
ICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRGlyZWN0b3J5RWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MRGlyZWN0b3J5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVEaXZXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpdkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERp
dkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
RExpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTERMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRExpc3RFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUVtYmVk
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxFbWJlZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGaWVsZFNldFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MRmllbGRTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGaWVsZFNldEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRm9udFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MRm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvbnRFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZvcm1XcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTEZvcm1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGcmFtZVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRnJh
bWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVTZXRXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZyYW1l
U2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVTZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhl
YWRpbmdFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkaW5nRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxIZWFk
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSFJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhSRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MSFJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZUh0bWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEh0bWxFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxIdG1sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVJRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAg
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElG
cmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlSW1hZ2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTEltYWdlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW1hZ2VF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlu
cHV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxJbnB1dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJc0luZGV4
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxJc0luZGV4RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGFiZWxX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTExhYmVsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGFiZWxFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxlZ2VuZFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MTGVnZW5kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGVnZW5kRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMSVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MTElFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMSUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGlua1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTGlua0VsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTExpbmtFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1hcFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFwRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MTWFwRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVNYXJxdWVlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxNYXJxdWVlRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MTWFycXVlZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlTWVudVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWVudUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TE1lbnVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZU1ldGFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1ldGFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNZXRhRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPYmpl
Y3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTE9iamVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT0xpc3RX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTE9MaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT0xpc3RFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9wdEdyb3VwV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxPcHRHcm91cEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPcHRpb25X
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTE9wdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUGFyYWdyYXBo
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVy
biBuZXcgR0RPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJhZ3JhcGhF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBh
cmFtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxQYXJhbUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQcmVXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTFByZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFByZUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUXVvdGVXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TFF1b3RlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNjcmlwdFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU2Ny
aXB0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTZWxlY3RXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNlbGVj
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU3R5bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFN0eWxlRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MU3R5bGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTFRhYmxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVDZWxsV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcgR0RPTUhU
TUxUYWJsZUNlbGxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNlbGxFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRleHRBcmVhV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUaXRsZVdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sgICAKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MVGl0bGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVSb3dXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7ICAgCisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTFRhYmxlUm93RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVSb3dFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVVMaXN0V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHJldHVybiBuZXcg
R0RPTUhUTUxVTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFVMaXN0RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworR0RPTU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreyAgIAorICAgIHN0YXRpYyBIYXNoTWFwPFdlYkNv
cmU6OkF0b21pY1N0cmluZ0ltcGwqLCBDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbj4g
bWFwOworICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7CisgICAgICAgbWFwLnNldChhVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlQW5jaG9yV3JhcHBlcik7CisgICAgICAgbWFwLnNldChhcHBs
ZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBcHBsZXRXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBcmVhV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChiYXNlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmFzZVdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoYmFzZWZvbnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVCYXNlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmxvY2txdW90ZVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJv
ZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCb2R5V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChiclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJSV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChidXR0b25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCdXR0b25XcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGNhbnZhc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUNh
bnZhc1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY2FwdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY29sVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGRlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoZGlyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGlyZWN0b3J5V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChkaXZUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXZXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGRsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRExp
c3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGVtYmVkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlRW1iZWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZpZWxkc2V0VGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlRmllbGRTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZvbnRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb250V3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChmb3JtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9ybVdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGcmFtZVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoZnJhbWVzZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVG
cmFtZVNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDFUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoZWFkVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlSGVhZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaHJUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIUldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaHRtbFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUh0bWxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGlmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlGcmFtZVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoaW1nVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGlucHV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW5w
dXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlzaW5kZXhUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVJc0luZGV4V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsYWJlbFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUxhYmVsV3JhcHBlcik7CisgICAgICAgbWFwLnNldChsZWdlbmRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMZWdlbmRXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGxpVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTElXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGxpbmtUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMaW5rV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChtYXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNYXBXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KG1hcnF1ZWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVN
YXJxdWVlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtZW51VGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlTWVudVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWV0YVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZU1ldGFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9iamVjdFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9iamVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
b2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPTGlzdFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQob3B0Z3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRHcm91cFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQob3B0aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
T3B0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlUGFyYWdyYXBoV3JhcHBlcik7CisgICAgICAgbWFwLnNldChwYXJhbVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFtV3JhcHBlcik7CisgICAgICAgbWFwLnNldChwcmVUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHFU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVRdW90ZVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoc2NyaXB0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2NyaXB0V3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChzZWxlY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHN0eWxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlU3R5bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRhYmxlVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlVGFibGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRib2R5VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dCh0ZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQodGV4dGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUZXh0QXJl
YVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGl0bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVUaXRsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodHJUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVUYWJsZVJvd1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQodWxUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVVTGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY29sZ3Jv
dXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoaDJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChoM1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
SGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDVUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNlRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGltYWdlVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGluc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoa2V5Z2VuVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChsaXN0aW5nVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJl
V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Zm9vdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGhUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoZWFk
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldCh4bXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsK
KyAgICB9CisgICAgLy9wcmludGYoImNyZWF0ZUdET01IVE1MV3JhcHBlcjogJXNcbiIsIGVsZW1l
bnQtPmxvY2FsTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIENyZWF0ZUhUTUxF
bGVtZW50V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbiA9IG1hcC5nZXQoZWxl
bWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICBpZiAoY3JlYXRlV3JhcHBlckZ1bmN0aW9u
KQorICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlckZ1bmN0aW9uKGVsZW1lbnQpOworICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxFbGVtZW50KGVsZW1lbnQuZ2V0KCkpOworfQorCit9CisKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVJ
bnRHZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtj
bEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIu
Y29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYg
X19HRE9NRXZlbnRUYXJnZXROb2RlX0hfX19JTlRfCisjZGVmaW5lIF9fR0RPTUV2ZW50VGFyZ2V0
Tm9kZV9IX19fSU5UXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21Ob2RlLmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01FdmVudFRhcmdldE5v
ZGUgOiBwdWJsaWMgR0RPTU5vZGUgeworCitwdWJsaWM6CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9k
ZShQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGltcGwpIDogR0RPTU5vZGUoaW1wbCkge30KKyAg
ICBpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9E
RTsgfQorfTsKKworCitHX0VORF9ERUNMUworI2VuZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAxIEBACisvKgorICog
IENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisg
KiAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5p
ZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisvLyBnY2MgMy54IGNhbid0IGhhbmRsZSBpbmNsdWRpbmcgdGhlIEhhc2hNYXAgcG9p
bnRlciBzcGVjaWFsaXphdGlvbiBpbiB0aGlzIGZpbGUKKyNpZiBkZWZpbmVkIF9fR05VQ19fICYm
ICFkZWZpbmVkIF9fR0xJQkNYWF9fIC8vIGxlc3MgdGhhbiBnY2MgMy40CisjZGVmaW5lIEhBU0hf
TUFQX1BUUl9TUEVDX1dPUktBUk9VTkQgMQorI2VuZGlmCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKyNp
bmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiR2RvbUNT
U1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1N0eWxlU2hlZXQuaCIK
KworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJI
VE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiR2Rv
bU5vZGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
Tm9kZS5oIgorCisjaW5jbHVkZSAiQXR0ci5oIgorI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgor
I2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ29tbWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50VHlwZS5oIgorI2luY2x1ZGUgIkVudGl0eS5oIgorI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5j
ZS5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oIgorI2luY2x1ZGUgIkdkb21BdHRyLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21B
dHRyLmgiCisjaW5jbHVkZSAiR2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJHZG9tVGV4
dC5oIgorI2luY2x1ZGUgIkdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVu
dC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudEZy
YWdtZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkdkb21F
bnRpdHkuaCIKKyNpbmNsdWRlICJHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1
ZUxpc3QuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJH
ZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR2RvbU5vdGF0aW9uLmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRl
ICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlICJH
ZG9tQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NT
Rm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkNT
U01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5
bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgIkdkb21D
U1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNs
dWRlICJHZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NNZWRpYVJ1bGUuaCIK
KyNpbmNsdWRlICJHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVSdWxl
LmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRXZlbnQuaCIKKworI2luY2x1ZGUgIkNsaXBi
b2FyZC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUNsaXBib2FyZC5oIgor
I2luY2x1ZGUgIkdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU1lc3NhZ2VFdmVu
dC5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU11dGF0aW9u
RXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Q
cm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVRleHRFdmVudC5oIgorI2luY2x1ZGUgIkdk
b21VSUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5j
bHVkZSAiR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdkb21XaGVlbEV2
ZW50LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2lu
Y2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNs
dWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUg
Ik92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAi
VGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1h
dGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVk
ZSAiV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5o
IgorCisjaW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJBdG9taWNT
dHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkhUTUxPcHRp
b25zQ29sbGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MQWxs
Q29sbGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiR2RvbUhUTUxBbGxDb2xsZWN0aW9uLmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorLy8gZXJyLi4uICNpbmNs
dWRlICJQcml2YXRlSW50R2RvbU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisvLyBlcnIuLi4gI2lu
Y2x1ZGUgIkdkb21OYW1lZE5vZGVzQ29sbGVjdGlvbi5oIgorCisjaWYgRU5BQkxFKERPTV9TVE9S
QUdFKQorI2luY2x1ZGUgIkdkb21TdG9yYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJTdG9yYWdlRXZl
bnQuaCIKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNpZiAwIC8qIFRPRE8gKi8KKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIkdkb21TVkdab29t
RXZlbnQuaCIKKyNpbmNsdWRlICJTVkdab29tRXZlbnQuaCIKKyNlbmRpZgorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoU1ZHKQorI2lmIDAgLyogWFhYIFRPRE8gKi8KKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50
V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRp
ZgorCisjaWYgMAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiR2RvbVNWR0V4Y2VwdGlvbi5o
IgorI2luY2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NS
dWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUNvbW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbUVudGl0eS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRWxlbWVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21DU1NQcmltaXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRW50aXR5UmVm
ZXJlbmNlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVRleHQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNT
U0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU01lZGlhUnVsZS5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRl
SW50R2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTVmFyaWFi
bGVzUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tS2V5Ym9hcmRFdmVudC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnRHZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21NdXRhdGlvbkV2ZW50
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAi
UHJpdmF0ZUludEdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21U
ZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tU3RvcmFnZUV2ZW50LmgiCisj
aW5jbHVkZSAiUHJpdmF0ZUludEdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBn
cG9pbnRlcj4gRE9NT2JqZWN0TWFwOwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4g
R2RvbVdyYXBwZXJDYWNoZTsgLyogQVJHISBVTkZBSVIhIEpTV3JhcHBlckNhY2hlIGlzIGluIERv
Y3VtZW50ISEgKi8KKworLy8gRm9yIGRlYnVnZ2luZywga2VlcCBhIHNldCBvZiB3cmFwcGVycyBj
dXJyZW50bHkgcmVnaXN0ZXJlZCwgYW5kIGNoZWNrIHRoYXQKKy8vIGFsbCBhcmUgdW5yZWdpc3Rl
cmVkIGJlZm9yZSB0aGV5IGFyZSBkZXN0cm95ZWQuIFRoaXMgaGFzIGhlbHBlZCB1cyBmaXggYXQK
Ky8vIGxlYXN0IG9uZSBidWcuCisKKyNpZiAwCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01P
YmplY3QqIHdyYXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3
cmFwcGVyKTsKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2Fj
aGUmIHdyYXBwZXJzKTsKKworI2lmZGVmIE5ERUJVRworCitzdGF0aWMgaW5saW5lIHZvaWQgYWRk
V3JhcHBlcihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZVdy
YXBwZXIoR0RPTU9iamVjdCopCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFw
cGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJikKK3sKK30KKworI2Vsc2UKKworc3RhdGljIEhh
c2hTZXQ8R0RPTU9iamVjdCo+JiB3cmFwcGVyU2V0KCkKK3sKKyAgICBzdGF0aWMgSGFzaFNldDxH
RE9NT2JqZWN0Kj4gc3RhdGljV3JhcHBlclNldDsKKyAgICByZXR1cm4gc3RhdGljV3JhcHBlclNl
dDsKK30KKworc3RhdGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKQorewor
ICAgIEFTU0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAgICB3cmFwcGVy
U2V0KCkuYWRkKHdyYXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdET01P
YmplY3QqIHdyYXBwZXIpCit7CisgICAgaWYgKCF3cmFwcGVyKQorICAgICAgICByZXR1cm47Cisg
ICAgQVNTRVJUKHdyYXBwZXJTZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNl
dCgpLnJlbW92ZSh3cmFwcGVyKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29u
c3QgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCit7CisgICAgZm9yIChHZG9tV3JhcHBlckNh
Y2hlOjpjb25zdF9pdGVyYXRvciBpdCA9IHdyYXBwZXJzLmJlZ2luKCk7IGl0ICE9IHdyYXBwZXJz
LmVuZCgpOyArK2l0KQorICAgICAgICByZW1vdmVXcmFwcGVyKGl0LT5zZWNvbmQpOworfQorCitH
RE9NT2JqZWN0Ojp+R0RPTU9iamVjdCgpCit7CisgICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29u
dGFpbnModGhpcykpOworfQorCisjZW5kaWYKKyNlbmRpZiAvKiBjb21tZW50ZWQgb3V0IGZvciBu
b3cgKi8KKworc3RhdGljIEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJDYWNoZSgpCit7IAorICAg
IC8vIFVORkFJUiEgaSB3YW50IG9uZSBvZiB0aGVzZSBwZXIgRG9jdW1lbnQsIHRvbyEKKyAgICAv
LyBEb24ndCB1c2UgbWFsbG9jIGhlcmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0
aW9uIGNhbiBkZWFkbG9jay4KKyAgICBzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSBzdGF0aWNHZG9t
V3JhcHBlckNhY2hlOworICAgIHJldHVybiBzdGF0aWNHZG9tV3JhcHBlckNhY2hlOworfQorCitz
dGF0aWMgRE9NT2JqZWN0TWFwJiBkb21PYmplY3RzKCkKK3sgCisgICAgLy8gRG9uJ3QgdXNlIG1h
bGxvYyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxv
Y2suCisgICAgc3RhdGljIERPTU9iamVjdE1hcCBzdGF0aWNET01PYmplY3RzOworICAgIHJldHVy
biBzdGF0aWNET01PYmplY3RzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpIAoreworICAgIGdwb2ludGVyIHJldCA9
IGRvbU9iamVjdHMoKS5nZXQob2JqZWN0SGFuZGxlKTsKKyAgICAvL3ByaW50ZigiZ2V0RE9NT2Jq
ZWN0OiAlcCAlcFxuIiwgb2JqZWN0SGFuZGxlLCByZXQpOworICAgIHJldHVybiByZXQ7Cit9CisK
K3N0YXRpYyBncG9pbnRlciBjcmVhdGVfZ2RvbV9vYmplY3QoR0RPTU9iamVjdCAqZG9iKQorewor
ICAgIGdwb2ludGVyIHJlcyA9IGdfb2JqZWN0X25ldyhkb2ItPmdldF9nb2JqX3R5cGUoKSwgTlVM
TCk7CisgICAgZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXMp
LCBkb2IpOworICAgIHJldHVybiByZXM7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6cHV0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVjdCogd3JhcHBl
cikgCit7CisgICAgLy8gYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBncG9pbnRlciBvYmogPSBj
cmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgLy9wcmludGYoInB1dERPTU9iamVjdDog
JXAgJXAgJXBcbiIsIG9iamVjdEhhbmRsZSwgd3JhcHBlciwgb2JqKTsKKyAgICBkb21PYmplY3Rz
KCkuc2V0KG9iamVjdEhhbmRsZSwgb2JqKTsKKyAgICByZXR1cm4gb2JqOworfQorCit2b2lkIEdE
T01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSkK
K3sKKyAgICBkb21PYmplY3RzKCkudGFrZShvYmplY3RIYW5kbGUpOworICAgIC8vcmVtb3ZlV3Jh
cHBlcihkb21PYmplY3RzKCkudGFrZShvYmplY3RIYW5kbGUpKTsKK30KKworZ3BvaW50ZXIgR0RP
TVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxncG9pbnRlciA+KGRvbU9iamVjdHMoKS5nZXQobm9kZSkpOworICAgIHJldHVy
biAvKiBYWFggZ3JyciBkb2N1bWVudC0+ICovd3JhcHBlckNhY2hlKCkuZ2V0KG5vZGUpOworfQor
Cit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KERv
Y3VtZW50KiBkb2N1bWVudCwgTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50KSB7Cisg
ICAgICAgIGZvcmdldERPTU9iamVjdChub2RlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAvL3JlbW92ZVdyYXBwZXIoLyogWFhYIGdyciBkb2N1bWVudC0+Ki93cmFwcGVyQ2FjaGUoKS50
YWtlKG5vZGUpKTsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01O
b2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlLCBHRE9NTm9kZSAq
d3JhcHBlcikKK3sKKyAgICAvL2FkZFdyYXBwZXIod3JhcHBlcik7CisgICAgaWYgKCFkb2N1bWVu
dCkgeworICAgICAgICBub2RlLT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6cHV0RE9NT2JqZWN0KG5vZGUsIHdyYXBwZXIpIDsKKyAgICB9CisgICAgZ3BvaW50
ZXIgb2JqID0gY3JlYXRlX2dkb21fb2JqZWN0KHdyYXBwZXIpOworICAgIC8qIFhYWCBncnJyIGRv
Y3VtZW50LT4qL3dyYXBwZXJDYWNoZSgpLnNldChub2RlLCBvYmopOworICAgIHJldHVybiBvYmo7
Cit9CisKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRBbGxET01Ob2Rlc0ZvckRv
Y3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAg
IC8vcmVtb3ZlV3JhcHBlcnMoZG9jdW1lbnQtPndyYXBwZXJDYWNoZSgpKTsKK30KKworI2lmIDAK
K3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjptYXJrRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1
bWVudCogZG9jKQoreworI2lmIDAgLypYWFggVE9ETyovCisgICAgLy8gSWYgYSBub2RlJ3MgR2Rv
bSB3cmFwcGVyIGhvbGRzIGN1c3RvbSBwcm9wZXJ0aWVzLCB0aG9zZSBwcm9wZXJ0aWVzIG11c3QK
KyAgICAvLyBwZXJzaXN0IGV2ZXJ5IHRpbWUgdGhlIG5vZGUgaXMgZmV0Y2hlZCBmcm9tIHRoZSBE
T00uIFNvLCB3ZSBrZWVwIEdkb20KKyAgICAvLyB3cmFwcGVycyBsaWtlIHRoYXQgZnJvbSBiZWlu
ZyBnYXJiYWdlIGNvbGxlY3RlZC4KKworICAgIEdkb21XcmFwcGVyQ2FjaGUmIG5vZGVEaWN0ID0g
Lypkb2MtPiovd3JhcHBlckNhY2hlKCk7CisgICAgR2RvbVdyYXBwZXJDYWNoZTo6aXRlcmF0b3Ig
bm9kZUVuZCA9IG5vZGVEaWN0LmVuZCgpOworICAgIGZvciAoR2RvbVdyYXBwZXJDYWNoZTo6aXRl
cmF0b3Igbm9kZUl0ID0gbm9kZURpY3QuYmVnaW4oKTsgbm9kZUl0ICE9IG5vZGVFbmQ7ICsrbm9k
ZUl0KSB7CisgICAgICAgIGdwb2ludGVyIGdOb2RlID0gbm9kZUl0LT5zZWNvbmQ7CisgICAgICAg
IE5vZGUqIG5vZGUgPSBnTm9kZS0+aW1wbCgpOworCisgICAgICAgIGlmIChnTm9kZS0+bWFya2Vk
KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBObyBuZWVkIHRvIHByZXNl
cnZlIGEgd3JhcHBlciB0aGF0IGhhcyBubyBjdXN0b20gcHJvcGVydGllcyBvciBpcyBubworICAg
ICAgICAvLyBsb25nZXIgZmV0Y2hhYmxlIHRocm91Z2ggdGhlIERPTS4KKyAgICAgICAgaWYgKCFn
Tm9kZS0+aGFzQ3VzdG9tUHJvcGVydGllcygpIHx8ICFub2RlLT5pbkRvY3VtZW50KCkpCisgICAg
ICAgICAgICAvLy4uLiB1bmxlc3MgdGhlIHdyYXBwZXIgd3JhcHMgYSBsb2FkaW5nIGltYWdlLCBz
aW5jZSB0aGUgIm5ldyBJbWFnZSIKKyAgICAgICAgICAgIC8vIHN5bnRheCBhbGxvd3MgYW4gb3Jw
aGFuIGltYWdlIHdyYXBwZXIgdG8gYmUgdGhlIGxhc3QgcmVmZXJlbmNlCisgICAgICAgICAgICAv
LyB0byBhIGxvYWRpbmcgaW1hZ2UsIHdob3NlIGxvYWQgZXZlbnQgbWlnaHQgaGF2ZSBpbXBvcnRh
bnQgc2lkZS1lZmZlY3RzLgorICAgICAgICAgICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKGltZ1Rh
ZykgfHwgc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5oYXZlRmlyZWRMb2Fk
RXZlbnQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBnTm9kZS0+bWFy
aygpOworICAgIH0KKyNlbmRpZgorfQorCisvKiBYWFggLSByZXF1aXJlcyBsb29raW5nIHVwIG9i
amVjdCAtIGNhbGwgdG8gR19PQkpFQ1QoKSBtYWNybyBpbiBhcmcKKyAqICJ3cmFwcGVyIiB0byBw
dXRET01Ob2RlRm9yRG9jdW1lbnQ/Ki8KK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6
dXBkYXRlRE9NTm9kZURvY3VtZW50KE5vZGUqIG5vZGUsIERvY3VtZW50KiBvbGREb2MsIERvY3Vt
ZW50KiBuZXdEb2MpCit7CisgICAgQVNTRVJUKG9sZERvYyAhPSBuZXdEb2MpOworICAgIHN0eWxl
U2hlZXQtPnJlZigpOworICAgIGdwb2ludGVyIHdyYXBwZXIgPSBnZXRET01Ob2RlRm9yRG9jdW1l
bnQob2xkRG9jLCBub2RlKTsKKyAgICBpZiAod3JhcHBlcikgeworICAgICAgICAvL3JlbW92ZVdy
YXBwZXIod3JhcHBlcik7CisgICAgICAgIGdwb2ludGVyIG9iaiA9IHB1dERPTU5vZGVGb3JEb2N1
bWVudChuZXdEb2MsIG5vZGUsIHdyYXBwZXIpOworICAgICAgICBmb3JnZXRET01Ob2RlRm9yRG9j
dW1lbnQob2xkRG9jLCBub2RlKTsKKyAgICAgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIpOworICAg
ICAgICByZXR1cm4gb2JqOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsgLyogZXJyLi4uICovCit9
CisjZW5kaWYKKworZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBkb2MpCit7CisgICAgaWYgKCFk
b2MpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLworCisgICAgZ3BvaW50
ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvYyk7CisgICAg
aWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0Owor
CisgICAgaWYgKGRvYy0+aXNIVE1MRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01I
VE1MRG9jdW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oZG9jKSk7CisjaWYgRU5BQkxF
KFNWRykKKyAgICBlbHNlIGlmIChkb2MtPmlzU1ZHRG9jdW1lbnQoKSkKKyAgICB7CisgICAgICAg
IHJldHVybiBOVUxMOyAvKiBYWFggVE9ETyAqLworI2lmIDAKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01TVkdEb2N1bWVudChzdGF0aWNfY2FzdDxTVkdEb2N1bWVudCo+KGRvYykpOworI2VuZGlmCisg
ICAgfQorI2VuZGlmCisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTURvY3VtZW50KGRv
Yyk7CisKKyAgICBkb2MtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OnB1dERPTU9iamVjdChkb2MsIHJldCk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVXcmFw
cGVyKE5vZGUqIG5vZGUpOworCitncG9pbnRlciB0b0dET01OZXdseUNyZWF0ZWQoTm9kZSogbm9k
ZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAq
LworICAgIAorICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOworfQorICAgIAorZ3BvaW50
ZXIgdG9HRE9NKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4g
TlVMTDsgLyogaG1tbS4uLi4gKi8KKworICAgIERvY3VtZW50KiBkb2MgPSBub2RlLT5kb2N1bWVu
dCgpOworICAgIGdwb2ludGVyIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9k
ZUZvckRvY3VtZW50KGRvYywgbm9kZSk7CisgICAgaWYgKHJldCkKKyAgICAgICAgcmV0dXJuIHJl
dDsKKworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOworfQorCitncG9pbnRlciB0b0dE
T00oQ1NTVmFsdWUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiBO
VUxMOyAvKiBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVy
cHJldGVyOjpnZXRET01PYmplY3QodmFsdWUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJl
dHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworCisgICAgaWYgKHZhbHVlLT5pc1Zh
bHVlTGlzdCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhbHVlTGlzdChzdGF0aWNfY2Fz
dDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAo
dmFsdWUtPmlzU1ZHUGFpbnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RP
ICovCisgICAgICAgIC8vcmV0ID0gbmV3IEdET01TVkdQYWludChzdGF0aWNfY2FzdDxTVkdQYWlu
dCo+KHZhbHVlKSk7CisgICAgfQorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR0NvbG9yKCkpCisg
ICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAgICAgICAvL3JldCA9IG5l
dyBHRE9NU1ZHQ29sb3Ioc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSkpOworICAgIH0KKyNl
bmRpZgorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgIHJl
dCA9IG5ldyBHRE9NQ1NTUHJpbWl0aXZlVmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPih2YWx1ZSkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZSh2
YWx1ZSk7CisKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6cHV0RE9NT2JqZWN0KHZhbHVlLCByZXQpOworfQorCitzdGF0aWMgQUxXQVlTX0lOTElO
RSBncG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUp
OworICAgIEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChu
b2RlLT5kb2N1bWVudCgpLCBub2RlKSk7CisgICAgCisgICAgRG9jdW1lbnQqIGRvYyA9IG5vZGUt
PmRvY3VtZW50KCk7CisgICAgR0RPTU5vZGUgKnJldCA9IE5VTEw7CisgICAgCisgICAgLy9wcmlu
dGYoImNyZWF0ZVdyYXBwZXIgbm9kZVR5cGUgJWRcbiIsIG5vZGUtPm5vZGVUeXBlKCkpOworCisg
ICAgc3dpdGNoIChub2RlLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVO
VF9OT0RFOgorICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAg
ICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1l
bnQqPihub2RlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUt
PmlzU1ZHRWxlbWVudCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2lmIDAgLyog
WFhYIFRPRE8gKi8KKyAgICAgICAgICAgICAgICByZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBlcihz
dGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4obm9kZSkpOworI2VuZGlmCisjZW5kaWYKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUVsZW1lbnQoc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5v
ZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01BdHRyKHN0YXRp
Y19jYXN0PEF0dHIqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBO
b2RlOjpURVhUX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVRleHQoc3RhdGljX2Nh
c3Q8VGV4dCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OkNEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ0RBVEFTZWN0
aW9uKHN0YXRpY19jYXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01FbnRpdHkoc3RhdGljX2Nhc3Q8RW50aXR5Kj4obm9kZSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oc3RhdGljX2Nhc3Q8
UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01D
b21tZW50KHN0YXRpY19jYXN0PENvbW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgLy8gd2UgZG9u
J3Qgd2FudCB0byBjYWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQg
ZGljdGlvbmFyeQorICAgICAgICAgICAgcmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxEb2N1bWVu
dCo+KG5vZGUpKTsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTURvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVudFR5
cGUqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpOT1RB
VElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob3RhdGlvbihzdGF0aWNfY2Fz
dDxOb3RhdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTURv
Y3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRGcmFnbWVudCo+KG5vZGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9E
RToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0
PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob2RlKG5vZGUpOworICAgIH0KKwor
ICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9N
Tm9kZUZvckRvY3VtZW50KGRvYywgbm9kZSwgcmV0KTsKK30KKyAKK2dwb2ludGVyIHRvR0RPTShI
VE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKK3sKKyAgICBpZiAoIWNvbGxlY3Rpb24pCisgICAg
ICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdE
T01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNvbGxlY3Rpb24pOworCisgICAgaWYg
KGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAg
IHN3aXRjaCAoY29sbGVjdGlvbi0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rp
b246OlNlbGVjdE9wdGlvbnM6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxPcHRpb25z
Q29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihjb2xsZWN0aW9u
KSk7CisgICAgICAgICAgICBicmVhazsKKyNpZiAwCisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rp
b246OkRvY0FsbDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTEFsbENvbGxlY3Rpb24o
c3RhdGljX2Nhc3Q8SFRNTENvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBi
cmVhazsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdE
T01IVE1MQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24p
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNvbGxlY3Rpb24tPnJlZigpOwor
ICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChjb2xsZWN0aW9u
LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oRXZlbnQqIGV2ZW50KQoreworICAgIGlmICgh
ZXZlbnQpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgLy9wcmlu
dGYoInRvR0RPTSBFdmVudCB0eXBlICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NT2JqZWN0KGV2ZW50KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7
CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgaWYgKGV2ZW50LT5pc1VJRXZlbnQoKSkgewor
ICAgICAgICBpZiAoZXZlbnQtPmlzS2V5Ym9hcmRFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01LZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCkp
OworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNUZXh0RXZlbnQoKSkKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NVGV4dEV2ZW50KHN0YXRpY19jYXN0PFRleHRFdmVudCo+KGV2ZW50KSk7Cisg
ICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NTW91c2VFdmVudChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpKTsKKyAg
ICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2hlZWxFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01XaGVlbEV2ZW50KHN0YXRpY19jYXN0PFdoZWVsRXZlbnQqPihldmVudCkpOworI2lm
IEVOQUJMRShTVkcpCisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVudCgpKQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAgICAgICAg
ICAgLy9yZXQgPSBuZXcgR0RPTVNWR1pvb21FdmVudChzdGF0aWNfY2FzdDxTVkdab29tRXZlbnQq
PihldmVudCksIDApOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgcmV0ID0gbmV3IEdET01VSUV2ZW50KHN0YXRpY19jYXN0PFVJRXZlbnQqPihldmVudCkpOwor
ICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlzTXV0YXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBu
ZXcgR0RPTU11dGF0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8TXV0YXRpb25FdmVudCo+KGV2ZW50KSk7
CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzT3ZlcmZsb3dFdmVudCgpKQorICAgICAgICByZXQgPSBu
ZXcgR0RPTU92ZXJmbG93RXZlbnQoc3RhdGljX2Nhc3Q8T3ZlcmZsb3dFdmVudCo+KGV2ZW50KSk7
CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzTWVzc2FnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5l
dyBHRE9NTWVzc2FnZUV2ZW50KHN0YXRpY19jYXN0PE1lc3NhZ2VFdmVudCo+KGV2ZW50KSk7Cisg
ICAgZWxzZSBpZiAoZXZlbnQtPmlzUHJvZ3Jlc3NFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVu
dC0+aXNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NUHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxQcm9ncmVzc0V2ZW50Kj4oZXZl
bnQpKTsKKyAgICB9CisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorICAgIGVsc2UgaWYgKGV2ZW50
LT5pc1N0b3JhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTVN0b3JhZ2VFdmVudChz
dGF0aWNfY2FzdDxTdG9yYWdlRXZlbnQqPihldmVudCkpOworI2VuZGlmCisgICAgZWxzZSBpZiAo
ZXZlbnQtPmlzV2ViS2l0QW5pbWF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01X
ZWJLaXRBbmltYXRpb25FdmVudChzdGF0aWNfY2FzdDxXZWJLaXRBbmltYXRpb25FdmVudCo+KGV2
ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkpCisg
ICAgICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdl
YktpdFRyYW5zaXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBu
ZXcgR0RPTUV2ZW50KGV2ZW50KTsKKworICAgIGV2ZW50LT5yZWYoKTsKKyAgICByZXR1cm4gR0RP
TVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZXZlbnQsIHJldCk7Cit9CisKKy8qIFRP
RE8gWFhYIGhtbW0uLi4gbm90IHNvIGhhcHB5IGFib3V0IHRoaXMgLSBzaG91bGQgYmUgIm5ld2x5
IGNyZWF0ZWQiICovCitncG9pbnRlciB0b0dET00oVGV4dCogdGV4dCkKK3sKKyAgICBpZiAoIXRl
eHQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KHRleHQtPmRvY3VtZW50KCksIHRl
eHQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01Ob2Rl
ICpyZXQgPSBuZXcgR0RPTVRleHQodGV4dCk7CisgICAgdGV4dC0+ZG9jdW1lbnQoKS0+cmVmKCk7
CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50
KHRleHQtPmRvY3VtZW50KCksIHRleHQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShDU1NS
dWxlKiBydWxlKQoreworICAgIGlmICghcnVsZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhY
WCBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVy
OjpnZXRET01PYmplY3QocnVsZSk7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdv
Ymo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgc3dpdGNoIChydWxlLT50eXBlKCkpIHsK
KyAgICAgICAgY2FzZSBDU1NSdWxlOjpTVFlMRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01DU1NTdHlsZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6TUVESUFfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTTWVkaWFSdWxlKHN0YXRpY19jYXN0PENTU01lZGlhUnVs
ZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OkZP
TlRfRkFDRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NGb250RmFjZVJ1bGUo
c3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6UEFHRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01DU1NQYWdlUnVsZShzdGF0aWNfY2FzdDxDU1NQYWdlUnVsZSo+KHJ1bGUpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OklNUE9SVF9SVUxFOgorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01DU1NJbXBvcnRSdWxlKHN0YXRpY19jYXN0PENTU0ltcG9ydFJ1
bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpD
SEFSU0VUX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0NoYXJzZXRSdWxlKHN0
YXRpY19jYXN0PENTU0NoYXJzZXRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQ1NTUnVsZTo6VkFSSUFCTEVTX1JVTEU6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUNTU1ZhcmlhYmxlc1J1bGUoc3RhdGljX2Nhc3Q8Q1NTVmFyaWFibGVzUnVsZSo+KHJ1
bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01DU1NSdWxlKHJ1bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgcnVsZS0+cmVmKCk7CisgICAgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmpl
Y3QocnVsZSwgcmV0KTsKKyAgICByZXR1cm4gcmV0OworfQorCisvKiBUT0RPOiBzaG91bGQgYmUg
dG9HRE9NTmV3bHlDcmVhdGVkICovCitncG9pbnRlciB0b0dET00oRWxlbWVudCogZWxlbWVudCkK
K3sKKyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8gc2hv
dWxkbid0IGJlIG9uZT8gQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRv
Y3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpKTsKKyAgICBncG9pbnRlciBnb2Jq
ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZWxlbWVudC0+
ZG9jdW1lbnQoKSwgZWxlbWVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2Jq
OyAvLyBodWg/IGVyci4uLgorCisgICAgR0RPTU5vZGUgKnJldDsKKyAgICBEb2N1bWVudCogZG9j
ID0gZWxlbWVudC0+ZG9jdW1lbnQoKTsKKworICAgIGlmIChlbGVtZW50LT5pc0hUTUxFbGVtZW50
KCkpCisgICAgICAgIHJldCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxIVE1M
RWxlbWVudCo+KGVsZW1lbnQpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKGVsZW1l
bnQtPmlzU1ZHRWxlbWVudCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8g
Ki8KKyAgICAgICAgLy9yZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxTVkdF
bGVtZW50Kj4oZWxlbWVudCkpOworICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAgcmV0
ID0gbmV3IEdET01FbGVtZW50KGVsZW1lbnQpOworCisgICAgZG9jLT5yZWYoKTsKKyAgICByZXR1
cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBlbGVt
ZW50LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oU3R5bGVTaGVldCogc3R5bGVTaGVldCkK
K3sKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBlcnIuLi4g
Ki8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9i
amVjdChzdHlsZVNoZWV0KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisK
KyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgaWYgKHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVl
dCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1N0eWxlU2hlZXQoc3RhdGljX2Nhc3Q8Q1NT
U3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBH
RE9NU3R5bGVTaGVldChzdHlsZVNoZWV0KTsKKworICAgIHN0eWxlU2hlZXQtPnJlZigpOworICAg
IHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChzdHlsZVNoZWV0LCBy
ZXQpOworfQorCisvKiBkZXJpdmVkIHNvdXJjZXMgYXV0by1nZW5lcmF0ZWQgKi8KK2dwb2ludGVy
IHRvR0RPTShYTUxIdHRwUmVxdWVzdFVwbG9hZCogb2JqKTsKKworZ3BvaW50ZXIgdG9HRE9NKEV2
ZW50VGFyZ2V0KiB0YXJnZXQpCit7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBO
VUxMOworICAgIAorI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFNWR0VsZW1lbnRJbnN0
YW5jZSBzdXBwb3J0cyBib3RoIHRvU1ZHRWxlbWVudEluc3RhbmNlIGFuZCB0b05vZGUgc2luY2Ug
c28gbXVjaCBtb3VzZSBoYW5kbGluZyBjb2RlIGRlcGVuZHMgb24gdG9Ob2RlIHJldHVybmluZyBh
IHZhbGlkIG5vZGUuCisgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSA9IHRhcmdldC0+
dG9TVkdFbGVtZW50SW5zdGFuY2UoKTsKKyAgICBpZiAoaW5zdGFuY2UpCisgICAgICAgIHJldHVy
biB0b0dET00oZXhlYywgaW5zdGFuY2UpOworI2VuZGlmCisjZW5kaWYKKworICAgIE5vZGUqIG5v
ZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICByZXR1cm4gdG9H
RE9NKG5vZGUpOworICAgIAorICAgIGlmIChYTUxIdHRwUmVxdWVzdCogeGhyID0gdGFyZ2V0LT50
b1hNTEh0dHBSZXF1ZXN0KCkpCisgICAgICAgIC8vIFhNTEh0dHBSZXF1ZXN0IGlzIGFsd2F5cyBj
cmVhdGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSBjYWNoZURPTU9iamVjdCgp
IGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVj
dCh4aHIpOworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxvYWQgPSB0YXJnZXQt
PnRvWE1MSHR0cFJlcXVlc3RVcGxvYWQoKSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTSh1cGxvYWQp
OworICAgIAorI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgaWYgKERP
TUFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gdGFyZ2V0LT50b0RPTUFwcGxpY2F0aW9uQ2FjaGUo
KSkKKyAgICAgICAgLy8gRE9NQXBwbGljYXRpb25DYWNoZSBpcyBhbHdheXMgY3JlYXRlZCB2aWEg
R0RPTSwgc28gd2UgZG9uJ3QgbmVlZCB0byB1c2UgY2FjaGVET01PYmplY3QoKSBoZXJlLgorICAg
ICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoY2FjaGUpOwor
I2VuZGlmCisKKyAgICAvLyBUaGVyZSBhcmUgdHdvIGtpbmRzIG9mIEV2ZW50VGFyZ2V0czogRXZl
bnRUYXJnZXROb2RlIGFuZCBYTUxIdHRwUmVxdWVzdC4KKyAgICAvLyBJZiBTVkcgc3VwcG9ydCBp
cyBlbmFibGVkLCB0aGVyZSBpcyBhbHNvIFNWR0VsZW1lbnRJbnN0YW5jZS4KKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlVMTDsKK30gICAKKworZ3BvaW50ZXIgdG9HRE9N
KEV2ZW50VGFyZ2V0Tm9kZSogdGFyZ2V0KQoreworICAgIGlmICghdGFyZ2V0KQorICAgICAgICBy
ZXR1cm4gTlVMTDsKKyAgICAKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0LT50b05vZGUoKTsKKyAg
ICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsKKyAgICAKKyAgICByZXR1
cm4gdG9HRE9NKHN0YXRpY19jYXN0PEV2ZW50VGFyZ2V0Kj4odGFyZ2V0KSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01P
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVj
dC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3Qu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpZm5kZWYgX19HZG9tRE9NT2JqZWN0X0hfXworI2Rl
ZmluZSBfX0dkb21ET01PYmplY3RfSF9fCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRE9NT2JqZWN0IEdkb21ET01PYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2Rv
bURPTU9iamVjdENsYXNzIEdkb21ET01PYmplY3RDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVf
RE9NX09CSkVDVCAgICAgICAgICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgR0RPTV9ET01fT0JKRUNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNF
X0NBU1QoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0KSkKKyNkZWZp
bmUgR0RPTV9ET01fT0JKRUNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQor
I2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0lT
X0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3Mp
LCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX0NM
QVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0RP
TV9PQkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9N
T2JqZWN0UHJpdmF0ZSBHZG9tRE9NT2JqZWN0UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRE9NT2Jq
ZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21ET01PYmplY3RQ
cml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgeworICAgIEdP
YmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9tX2Rv
bV9vYmplY3RfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX29i
amVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRoaXopOworCitHX0VORF9ERUNM
UworCisjZW5kaWYgLyogX19HZG9tRE9NT2JqZWN0X0hfXyAqLworCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
R0RPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACisjaWZuZGVmIF9fRE9N
T2JqZWN0X2hfXworI2RlZmluZSBfX0RPTU9iamVjdF9oX18KKworLy8gbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBHRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5HRE9NT2Jq
ZWN0KCkge30KKyAgICB2aXJ0dWFsIGludCBnZXRfZ29ial90eXBlKCkgPSAwOworfTsKKworLy8g
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBUSElTIEZJTEUgSVMg
REVSSVZFRCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBrZWVwaW5n
IGl0IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqIGEg
bWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogZ2Vu
ZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0
LgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2lmbmRlZiBHRE9NSFRNTEVsZW1lbnRXcmFw
cGVyRmFjdG9yeV9oCisjZGVmaW5lIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKKwor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTm9kZS5oIgorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7CisKKyAg
ICBHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
KTsKKworfQorIAorI2VuZGlmIC8vIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTEg
QEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5A
a2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBT
YW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgR2RvbURPTUJpbmRpbmdfaAorI2RlZmluZSBHZG9t
RE9NQmluZGluZ19oCisKKyNpbmNsdWRlIDxranMvaW50ZXJwcmV0ZXIuaD4KKyNpbmNsdWRlIDxr
anMvbG9va3VwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRlICJH
ZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbU5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgQXRvbWljU3Ry
aW5nOworICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNzIEV2ZW50OworICAgIGNsYXNzIEZy
YW1lOworICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgTm9kZTsKKyAgICBjbGFzcyBTdHJpbmc7
CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGNsYXNzIFNWR0VsZW1lbnQ7CisjZW5kaWYKKworICAg
IGNsYXNzIEdET01TY3JpcHRJbnRlcnByZXRlciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0
aWMgdm9pZCogZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisgICAgICAgIHN0YXRp
YyB2b2lkKiBwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBHRE9NT2JqZWN0Kik7Cisg
ICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpOwor
CisgICAgICAgIHN0YXRpYyB2b2lkKiBnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqLCBO
b2RlKik7CisgICAgICAgIHN0YXRpYyB2b2lkKiBwdXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1l
bnQqLCBOb2RlKiwgR0RPTU5vZGUqIG5vZGVXcmFwcGVyKTsKKyAgICAgICAgc3RhdGljIHZvaWQg
Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiwgTm9kZSopOworICAgICAgICBzdGF0
aWMgdm9pZCBmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50Kik7CisJCSNpZiAw
CisgICAgICAgIHN0YXRpYyB2b2lkIHVwZGF0ZURPTU5vZGVEb2N1bWVudChOb2RlKiwgRG9jdW1l
bnQqIG9sZERvYywgRG9jdW1lbnQqIG5ld0RvYyk7CisgICAgICAgIHN0YXRpYyB2b2lkIG1hcmtE
T01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50Kik7CisJCSNlbmRpZgorICAgIH07CisKKyAgICAv
LyBSZXRyaWV2ZSBmcm9tIGNhY2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBhIERP
TSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2JqPiBp
bmxpbmUgdm9pZCogY2FjaGVET01PYmplY3QoRE9NT2JqKiBkb21PYmopCisgICAgeworICAgICAg
ICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAq
LworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01P
YmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIEdET01PYmpl
Y3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaik7CisJCWRvbU9iai0+cmVmKCk7CisgICAg
ICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChkb21PYmosIHJl
dCk7CisgICAgfQorCisjaWYgRU5BQkxFKFNWRykKKyAgICAvLyBSZXRyaWV2ZSBmcm9tIGNhY2hl
LCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBhbiBTVkcgRE9NIG9iamVjdC4KKyAgICB0
ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlubGluZSB2b2lkKiBjYWNo
ZVNWR0RPTU9iamVjdChET01PYmoqIGRvbU9iaiwgU1ZHRWxlbWVudCogY29udGV4dCkKKyAgICB7
CisgICAgICAgIGlmICghZG9tT2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBo
bW1tLi4uICovCisgICAgICAgIGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmdldERPTU9iamVjdChkb21PYmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAg
R0RPTU9iamVjdCogcmV0ID0gbmV3IEdkb21ET01PYmooZG9tT2JqLCBjb250ZXh0KTsKKwkJZG9t
T2JqLT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9N
T2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gR2RvbURPTUJpbmRpbmdfaApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0
aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJ
bmMuCisgKi8KKworI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNjcyIEBACisjCisjIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorIyBDb3B5cmlnaHQgKEMp
IDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyMgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg
VVNBLgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JHT2JqZWN0OworCisjIERlZmF1bHQgTGljZW5j
ZSBUZW1wbGF0ZXMKK215ICRsaWNlbmNlVGVtcGxhdGUgPSA8PCAiRU9GIjsKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbFxAbGtjbC5u
ZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBcQGF0b2tlci5jb20+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCitFT0YKKworbXkgJWltcGxJbmNs
dWRlcyA9ICgpOworbXkgJWhkckluY2x1ZGVzID0gKCk7CitteSAlaGRyUHJvcEluY2x1ZGVzID0g
KCk7CitteSAlaW1wbFR5cGVkZWZzID0gKCk7CisKKyMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgorc3Vi
IG5ldworeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkcmVmZXJlbmNlID0geyB9
OworCisgICAgJGNvZGVHZW5lcmF0b3IgPSBzaGlmdDsKKyAgICAkb3V0cHV0RGlyID0gc2hpZnQ7
CisKKyAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKKyAgICByZXR1cm4gJHJlZmVyZW5j
ZTsKK30KKworc3ViIGZpbmlzaAoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKK30KKworIyBQ
YXJhbXM6ICdkb21DbGFzcycgc3RydWN0CitzdWIgR2VuZXJhdGVJbnRlcmZhY2UKK3sKKyAgICBt
eSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJGRl
ZmluZXMgPSBzaGlmdDsKKworICAgIG15ICRuYW1lID0gJGRhdGFOb2RlLT5uYW1lOworCisgICAg
cHJpbnQgIiRuYW1lXG4iOworCisgICAgJG9iamVjdC0+R2VuZXJhdGUoJGRhdGFOb2RlKTsKKwor
ICAgICMgV3JpdGUgY2hhbmdlcworICAgIG15ICRmbmFtZSA9ICJHZG9tXyIgLiAkbmFtZTsgI2Rl
Y2FtZWxpemUoJG5hbWUpOworICAgICRmbmFtZSA9fiBzL18vL2c7CisgICAgJG9iamVjdC0+V3Jp
dGVEYXRhKCRmbmFtZSk7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3Vi
IEdlbmVyYXRlTW9kdWxlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRh
Tm9kZSA9IHNoaWZ0OworCisgICAgJG1vZHVsZSA9ICRkYXRhTm9kZS0+bW9kdWxlOworfQorCitz
dWIgQ2xzVG9HT2JqVHlwZQoreworICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICByZXR1
cm4gdWMoZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSkKK30KKworc3ViIEdldFBhcmVudENsYXNzTmFt
ZQoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgIyA/PyBxdWU/PworICAgICNy
ZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgcmV0
dXJuICJHZG9tRE9NT2JqZWN0IiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICBy
ZXR1cm4gIkdkb20iIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+cGFy
ZW50cygwKSk7Cit9CitzdWIgR2V0UGFyZW50R09ialR5cGUKK3sKKyAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR0RPTV9UWVBFX0RPTV9PQkpF
Q1QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiR0RPTV9UWVBF
XyIgLiBDbHNUb0dPYmpUeXBlKCRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUt
PnBhcmVudHMoMCkpKTsKK30KKworCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2Ft
ZWxDYXNlIDAuMDEKK3N1YiBjYW1lbGl6ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAgam9p
bignJywgbWFweyB1Y2ZpcnN0ICRfIH0gc3BsaXQoLyg/PD1bQS1aYS16XSlfKD89W0EtWmEtel0p
fFxiLywgJHMpKTsKK30KKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2Fz
ZSAwLjAxCitzdWIgZGVjYW1lbGl6ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAgJHMgPX4g
c3soW15hLXpBLVpdPykoW0EtWl0qKShbQS1aXSkoW2Etel0/KX17CisgICAgICAgIG15ICRmYyA9
IHBvcygkcyk9PTA7CisgICAgICAgIG15ICgkcDAsJHAxLCRwMiwkcDMpID0gKCQxLGxjJDIsbGMk
MywkNCk7CisgICAgICAgIG15ICR0ID0gJHAwIHx8ICRmYyA/ICRwMCA6ICdfJzsKKyAgICAgICAg
JHQgLj0gJHAzID8gJHAxID8gIiR7cDF9XyRwMiRwMyIgOiAiJHAyJHAzIiA6ICIkcDEkcDIiOwor
ICAgICAgICAkdDsKKyAgICB9Z2U7CisgICAgJHM7Cit9CisKK3N1YiBHZXRIZHJOYW1lCit7Cisg
ICAgICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKKwor
ICAgIHJldHVybiAiR2RvbSRuYW1lIjsKK30KKworc3ViIEdldENsYXNzTmFtZQoreworICAgICAg
ICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICBy
ZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRHSW5jbHVkZUhkcgoreworICAgIG15ICR0
eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0SGRyTmFtZSgkdHlwZSk7CisgICAg
ICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFtZSgkdHlwZSkpOworCisgICAgICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImRvdWJsZSI7
CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1w
IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsKKyAgICAg
ICAgcmV0dXJuICJSYW5nZS5oIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJl
dHVybiAiR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiBpZiAkdHlwZSBlcSAiRE9NT2Jq
ZWN0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsKKyAg
ICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00g
Y2xhc3Mgd3JhcHBlcgorICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBlIGVx
ICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCIgaWYg
JHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0Lmgi
IGlmICR0eXBlIGVxICJmbG9hdCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBp
ZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lLmgiOworfQorCisjIHJldHVy
bnMgMSBpZiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGdvYmplY3Qgd3JhcHBlciBhcm91bmQgdGhlIHJl
dHVybiByZXN1bHQKK3N1YiBJc0dET01DbGFzc1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICAgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRXZlbnRM
aXN0ZW5lciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAg
ICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJib29sZWFu
IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJzaG9y
dCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJpbnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAg
ICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUg
ZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9CisKK3N1YiBH
ZXRQcm9wR1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRuYW1lID0gR2V0
Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5nIiBpZiAkdHlwZSBlcSAiRE9N
U3RyaW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgIHJl
dHVybiAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgcmV0
dXJuICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAiYm9vbGVhbiIg
aWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hhciIgaWYgJHR5cGUgZXEgImNo
YXIiOworICAgIHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAi
aW50IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAidWNoYXIiIGlmICR0eXBlIGVx
ICJ1Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAg
IHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWludDY0IiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAidW5z
aWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBz
aG9ydCI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFgg
VE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gIm9iamVjdCI7Cit9CisKK3N1
YiBHZXRHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0g
R2V0Q2xhc3NOYW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0Q2xh
c3NOYW1lKCR0eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2RlICoi
IGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisgICAgICAgIHJldHVybiAiY29uc3QgZ2NoYXIg
KiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiZ2Zsb2F0IiBpZiAk
dHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJl
SG93ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb3VibGUi
IGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gImdib29sZWFuIiBpZiAkdHlw
ZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJldHVybiAiZ2NoYXIiIGlmICR0eXBlIGVxICJjaGFy
IjsKKyAgICAgICAgcmV0dXJuICJnbG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICBy
ZXR1cm4gImdzaG9ydCIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0dXJuICJndWNo
YXIiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAiZ3VpbnQiIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAiZ2ludCIgaWYgJHR5cGUgZXEgImludCI7
CisgICAgICAgIHJldHVybiAiZ3VpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAg
ICAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAg
ICByZXR1cm4gImd1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAg
ICAgICByZXR1cm4gImd1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAg
ICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0g
RE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2
b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJbmNIZHIKK3sKKyAg
ICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBHZXRHSW5jbHVkZUhk
cigkdHlwZSk7CisgICAgaWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAi
RXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUu
aCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7Cisg
ICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgor
ICAgICAgICAgICAgcmV0dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRyOworICAgICAgICB9
CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNIZHIKK3sKKyAgICBt
eSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAg
aWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9IDE7Cisg
ICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAkaGRyUHJv
cEluY2x1ZGVzeyJQcml2YXRlIi4kaGRyfSA9IDE7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1
ZGVzeyJQcml2YXRlSW50Ii4kaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9CisKK30KKworc3Vi
IGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0
SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICAkaGRySW5jbHVk
ZXN7JGhkcn0gPSAxOworICAgIH0KKworfQorCitzdWIgYWRkSW5jQm9keQoreworICAgIG15ICR0
eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAo
JGhkciBuZSAiIikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICB9Cit9
CisKK3N1YiBHZXRQcml2Rm4KK3sKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OworICAg
IG15ICRsY2FzZV9pZmFjZW5hbWUgPSBzaGlmdDsKKyAgICBteSAkcmVzID0gc2hpZnQ7CisgICAg
bXkgJHBhcm0gPSBzaGlmdDsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRXZlbnRUYXJn
ZXQiKSB7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogJHJlcyA9
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0
X25vZGVfZ2V0X3ByaXZhdGUoc2VsZikpOyI7CisgICAgfQorICAgIHJldHVybiAiV2ViQ29yZTo6
JHtpbnRlcmZhY2VOYW1lfSAqICRyZXMgPSAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRl
KCRwYXJtKSk7IjsKK30KKworc3ViIHNraXBQcm9wVGVtcG9yYXJpbHkKK3sKKyAgICBteSAkdHlw
ZSA9IHNoaWZ0OworICAgIG15ICRwcm9wX3R5cGUgPSBzaGlmdDsKKworICAgICMgc2tpcCBNZWRp
YUxpc3QKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAic3R5bGVzaGVldHM6Ok1lZGlhTGlzdCIpIHsK
KyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJFdmVu
dFRhcmdldCIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgQ1NT
VmFyaWFibGVzRGVjbGFyYXRpb24KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQ1NTVmFyaWFibGVz
RGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTU3R5
bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNr
aXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkNT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30K
KworICAgICMgc2tpcCBFdmVudExpc3RlbmVyCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJFdmVu
dExpc3RlbmVyIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBE
T01XaW5kb3cKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAjICAg
IHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgQ29uc3RydWN0b3JzICh3aGF0ZXZlciB0
aGV5IGFyZSkgZm9yIG5vdy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29uc3RydWN0b3IkLykg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIGNhbnZhczJkLi4uLgorICAgIGlm
ICgkcHJvcF90eXBlIGVxICJjdXN0b20iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgIGlmICgkcHJvcF90eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAg
fQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgfQorCisgICAgIyBUT0RPOiBTVkcKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PklzUG9kVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0
eXBlKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1
YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsK
KworICAgICMgc2tpcHBlZCBvdXQgQ2FudmFzUGl4ZWxBcnJheSAtIHNlZSBKU0NhbnZhc1BpeGVs
QXJyYXlDdXN0b20uY3BwIGZvciB3aHkuCisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIk5vZGUi
IG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAk
dHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3IgJHR5cGUgZXEgIlN0eWxlU2hlZXQiIG9yICR0eXBlIGVx
ICJDU1NSdWxlIiBvciAkdHlwZSBlcSAiQ1NTVmFsdWUiIG9yICR0eXBlIGVxICJFdmVudCIgb3Ig
JHR5cGUgZXEgIkVsZW1lbnQiIG9yICR0eXBlIGVxICJUZXh0IjsKKyAgICByZXR1cm4gMDsKK30K
KworCisjIEdlbmVyYXRlIGhlYWRlciBhbmQgaW1wbAorc3ViIEdlbmVyYXRlCit7CisgICAgbXkg
JG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgbXkgJGhh
c0xlZ2FjeVBhcmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBh
cmVudCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUtPnBhcmVudHN9ID4g
MDsKKyAgICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVu
dDsKKyAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRkYXRhTm9k
ZSk7CisgICAgbXkgJHBhcmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUoJGRhdGFOb2Rl
KTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkY2xh
c3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkaGRyTmFtZSA9
IEdldEhkck5hbWUoJGludGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1w
bCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVt
cGxhdGUpOworICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNsdWRlc3si
R0RPTUJpbmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIkaGRyTmFtZS5oIn0gPSAx
OworICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGUke2hkck5hbWV9LmgifSA9IDE7CisKKyAgICBt
eSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01PYmplY3QiOworICAgIG15ICRwYXJlbnRHSWZh
Y2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15ICRwYXJlbnRIZHJOYW1lID0gIkdkb21ET01P
YmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NOYW1lIG5lICJHT2JqZWN0IikKKyAgICB7Cisg
ICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQp
OworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9iamVjdCIpIHsKKyAg
ICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigkcGFyZW50Q2xhc3NO
YW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRyTmFtZSgkcGFyZW50
SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAg
ICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICAgICAgfQorICAg
ICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICRp
bXBsSW5jbHVkZXN7IlByaXZhdGUke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICRo
ZHJJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1
ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAwOworICAgIH0KKworICAgICMgVE9E
TyAtIG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisg
ICAgIyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9HRE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVz
eyJOb2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRWxlbWVudC5oIn0gPSAxOworICAg
ICRpbXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NT
UnVsZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7
CisgICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1
ZGVzeyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0g
MTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhlbEFycmF5LmgifSA9IDE7CisgICAgJGlt
cGxJbmNsdWRlc3siRE9NV2luZG93LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siVGV4dC5o
In0gPSAxOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVh
ZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAkaGFja0RlY2xzID0gPDwg
IkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5v
ZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NWYWx1ZSogbm9kZSk7CisgICAgZ3BvaW50ZXIg
dG9HRE9NKENTU1J1bGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShFbGVtZW50KiBub2Rl
KTsKKyAgICBncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIG5vZGUpOworICAgIGdwb2ludGVyIHRv
R0RPTShIVE1MQ29sbGVjdGlvbiogbm9kZSk7CisgICAgLy9ncG9pbnRlciB0b0dET00oU1ZHUGF0
aFNlZyogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFN0eWxlU2hlZXQqIG5vZGUpOworICAg
IGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRv
R0RPTShFdmVudFRhcmdldCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBub2Rl
KTsKKyAgICBncG9pbnRlciB0b0dET00oQ2FudmFzUGl4ZWxBcnJheSogbm9kZSk7CisgICAgZ3Bv
aW50ZXIgdG9HRE9NKERPTVdpbmRvdyogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFRleHQq
IG5vZGUpOworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitFT0YKKworICAgIHB1c2goQGNCb2R5
LCAkaGFja0RlY2xzKTsKKworICAgICMgWFhYIFRPRE86IG1ha2UgdGhpcyBvcHRpb25hbCBvciBp
biBhIGhlYWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3YXkuCisgICAgbXkgJHN0cmluZ0Nv
bnZlcnQgPSA8PCAiRU9GIjsKK2NsYXNzIEdTdHJpbmdDb252ZXJ0IHsKKyAgICBwdWJsaWM6Cisg
ICAgY29uc3QgZ2NoYXIgKm1fc3RyOworICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OlN0cmlu
ZyBjb25zdCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMudXRmOCgpLmRhdGEoKSk7IH0KKyAgICBH
U3RyaW5nQ29udmVydChXZWJDb3JlOjpLVVJMIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAo
cy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KGNvbnN0IEpT
Qzo6VVN0cmluZyAmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLlVURjhTdHJpbmcoKS5jX3N0cigp
KTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7
IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorfTsKKworRU9G
CisKKyAgICBwdXNoKEBjQm9keSwgJHN0cmluZ0NvbnZlcnQpOworCisgICAgcHVzaChAY0JvZHks
ICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4iKTsKKworICAgICMgR2V0IGNvcnJlY3QgcGFzcy9zdG9y
ZSB0eXBlcyByZXNwZWN0aW5nIFBPRFR5cGUgZmxhZworICAgIG15ICRwb2RUeXBlID0gJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9OworICAgIG15ICRwYXNzVHlwZSA9
ICRwb2RUeXBlID8gIkpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiIgOiAiJGludGVyZmFj
ZU5hbWUqIjsKKworICAgIGlmICgke2ludGVyZmFjZU5hbWV9IGVxICJET01XaW5kb3ciIHx8ICgh
JGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRv
SlMifSkgYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VOYW1lKSkg
eworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICJK
U0M6OkpTVmFsdWUqIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTU1ZHUE9EVHlwZVdyYXBw
ZXI8JHBvZFR5cGU+KiBvYmosIFNWR0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAgICAgI30g
ZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkg
eworICAgICAgICAjICAgICBwdXNoKEBjQm9keSwgIkpTQzo6SlNWYWx1ZSogdG9KUyhKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgJHBhc3NUeXBlIG9iaiwgU1ZHRWxlbWVudCogY29udGV4dClcbiIpOwor
ICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiZ3BvaW50ZXIgdG9H
RE9NKFdlYkNvcmU6OiRwYXNzVHlwZSBvYmopXG4iKTsKKyAgICAgICAgI30KKworICAgICAgICBw
dXNoKEBjQm9keSwgIntcbiIpOworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMg
ICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2JqZWN0PEpTU1ZHUE9EVHlw
ZVdyYXBwZXI8JHBvZFR5cGU+LCAkY2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGV4
ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRp
bmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgIHB1c2go
QGNCb2R5LCAiICAgIHJldHVybiBjYWNoZVNWR0RPTU9iamVjdDwkaW1wbENsYXNzTmFtZSwgJGNs
YXNzTmFtZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQpO1xuIik7
CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJu
IFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lLCBHRE9NJGlu
dGVyZmFjZU5hbWU+KG9iaik7XG4iKTsKKyAgICAgICAgI30KKyAgICAgICAgcHVzaChAY0JvZHks
ICJ9XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogbmFtZXNwYWNlIFdlYkNv
cmUgKi9cbiIpOworICAgIG15ICRpbXBsQ29udGVudCA9ICIiOworCisgICAgIyBYWFggVE9ETyBw
dXNoKEBjQm9keSwgInVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlO1xuXG4iKTsKKyAgICBwdXNoKEBj
Qm9keSwgImV4dGVybiBcIkNcIiB7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiI2RlZmluZSBf
R19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVydChzdHIpLm1fc3RyKVxuIik7CisKKyAgICAj
IEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAaFByZWZpeCA9IHNwbGl0KCJc
ciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgICAgICAjcHVzaChAaFByZWZpeCwgIlxuIik7CisK
KyAgICAjIEhlYWRlciBndWFyZAorICAgICAgICBteSAkZ3VhcmQgPSAiX18iIC4gJGNsYXNzTmFt
ZSAuICJfSF9fIjsKKworICAgIG15ICRjbHNDYXBzID0gc3Vic3RyKENsc1RvR09ialR5cGUoJGNs
YXNzTmFtZSksIDUpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1l
bGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgI215ICRwYXJlbnRDbHNDYXBzID0gIkdET01fIiAu
IENsc1RvR09ialR5cGUoJHBhcmVudEludGVyZmFjZU5hbWUpOworCisgICAgQGhQcmVmaXhHdWFy
ZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUgJGd1YXJkCitFT0YKKworICAg
ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworR19CRUdJTl9ERUNMUworCitFT0YKKworICAgIHB1
c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVP
RiI7CisKKyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAgICAoJHtsY2FzZV9p
ZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfShvYmopICAgICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfJHtjbHND
YXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0NMQVNTKGtsYXNz
KSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0Nh
cHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc30ob2JqKSAg
ICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xz
Q2Fwc30pKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmlu
ZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfUNsYXNzKSkKKwor
dHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtjbGFzc05hbWV9UHJpdmF0ZTsK
Kworc3RydWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFyZW50Q2xhc3NOYW1lfSBwYXJlbnRf
aW5zdGFuY2U7CisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBf
JHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9Owor
CitXRUJLSVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOwor
CitFT0YKKworICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7Z3VhcmR9
X1BST1BfCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxDb250ZW50KTsKKwor
ICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgJGhkclByb3BJ
bmNsdWRleyJnbGliLW9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiUHJpdmF0
ZUludCR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7IkdET01P
YmplY3QuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9
ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2lmbmRlZiAke2d1YXJkfV9J
TlRfCisjZGVmaW5lICR7Z3VhcmR9X0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2lu
Y2x1ZGUgIlByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVj
dC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBl
cSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlv
bigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Citu
YW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKCR7aW50ZXJmYWNlTmFtZX0q
IG5vZGUpOworfSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAqLyAKK0VPRgorICAgIHB1c2goQGhCb2R5
SW50ZXJuYWwsICRpbXBsQ29udGVudCk7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICJHX0JFR0lOX0RFQ0xTXG4iKTsKKworICAgICNDbGFzcyBkZWNsYXJhdGlvbgorICAgICNpZiAo
JGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAjICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUge1xuIik7CisgICAgI30gZWxzZSB7Cisg
ICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUgOiBw
dWJsaWMgJHBhcmVudEdJZmFjZU5hbWUge1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJu
YWwsICIgICAgdHlwZWRlZiAkcGFyZW50R0lmYWNlTmFtZSBCYXNlO1xuIik7CisgICAgI30KKyAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAicHVibGljOlxuIik7CisKKyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIGludCBnZXRfZ29ial90eXBlKCkgeyByZXR1cm4gR0RPTV9UWVBFXyR7Y2xz
Q2Fwc307IH1cbiIpOworCisgICAgbXkgJG5lZWRzU1ZHQ29udGV4dCA9IDA7CisgICAgIyBDb25z
dHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgR0RPTSRpbnRlcmZhY2VOYW1l
KFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+IGltcGwiIC4gKCRuZWVkc1NWR0Nv
bnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6ICIiKSAuICIpO1xuIik7CisKKyAgICAj
IERlc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHZpcnR1YWwgfkdET00k
aW50ZXJmYWNlTmFtZSgpO1xuIikgaWYgKCEkaGFzUGFyZW50IG9yICRpbnRlcmZhY2VOYW1lIGVx
ICJEb2N1bWVudCIpIG9yICRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciOworCisgICAgaWYg
KCEkaGFzUGFyZW50IHx8ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAg
ICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIg
ICAgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIGltcGwoKSBjb25zdCB7IHJldHVybiBt
X2ltcGwuZ2V0KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIg
ICAgU1ZHRWxlbWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsg
fVxuXG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIp
OworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1l
bnQ+IG1fY29udGV4dDtcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIg
ICAgUmVmUHRyPEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+ID4gbV9pbXBsO1xuIik7Cisg
ICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENs
YXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgICRpbXBs
Q2xhc3NOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAg
ICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAg
ICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjwkaW1wbENsYXNzTmFt
ZSA+IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGhC
b2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdCB7
IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwg
IiAgICBSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+IG1faW1wbDtcbiIpOworICAgICAg
ICAjfQorICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVy
YXRlTmF0aXZlQ29udmVydGVyIn0pIHsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAg
ICBXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSogaW1wbCgpIGNvbnN0XG4iKTsKKyAgICAgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICB7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKj4o
QmFzZTo6aW1wbCgpKTtcbiIpOworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIH1c
biIpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAifTtcbiIpOworCisgICAgIyBD
b25zdHJ1Y3RvcgorICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06OkdET00k
aW50ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAu
ICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKVxu
Iik7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIDptX2ltcGwoaW1wbClcbiIpOworICAgIH0gZWxzaWYgKCRoYXNQYXJl
bnQpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZShpbXBs
IiAuICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIikg
aWYgKCRpbnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ciKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRHSWZhY2VOYW1lKClcbiIpIDsKKyAgICAgICAg
cHVzaChAY0JvZHksICIgICAgLCBtX2NvbnRleHQoY29udGV4dClcbiIpIGlmICRuZWVkc1NWR0Nv
bnRleHQ7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9pbXBsKGltcGwpXG4iKTsKKyAg
ICB9CisKKyAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgIHB1c2goQGNCb2R5LCAifVxuXG4i
KTsKKworICAgICMgRGVzdHJ1Y3RvcgorICAgIGlmICghJGhhc1BhcmVudCBvciAoJGludGVyZmFj
ZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50
ZXJmYWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1c2goQGNC
b2R5LCAie1xuIik7CisKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgbV9pbXBsLmdldCgpLT5k
ZXJlZigpO1xuIik7CisgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZSIpIHsKKyAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRl
cjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG1faW1wbC0+ZG9jdW1lbnQoKSwgbV9pbXBsLmdl
dCgpKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgI2lmICgkcG9kVHlwZSkg
eworICAgICAgICAgICAgIyAgICBteSAkYW5pbWF0ZWRUeXBlID0gJGltcGxDbGFzc05hbWU7Cisg
ICAgICAgICAgICAjICAgICRhbmltYXRlZFR5cGUgPX4gcy9TVkcvU1ZHQW5pbWF0ZWQvOworCisg
ICAgICAgICAgICAjICAgICMgU3BlY2lhbCBjYXNlIGZvciBKU1NWR051bWJlcgorICAgICAgICAg
ICAgIyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRhbmltYXRlZFR5
cGUpIGFuZCAkcG9kVHlwZSBuZSAiZmxvYXQiKSB7CisgICAgICAgICAgICAjICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICBKU1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRwb2RUeXBlLCAk
YW5pbWF0ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlcihtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAg
ICAgICAjICAgIH0KKyAgICAgICAgICAgICN9CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChtX2ltcGwu
Z2V0KCkpO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEBjQm9keSwgIlxufVxuXG4i
KTsKKyAgICB9CisKKyAgICAjIERvY3VtZW50IG5lZWRzIGEgc3BlY2lhbCBkZXN0cnVjdG9yIGJl
Y2F1c2UgaXQncyBhIHNwZWNpYWwgY2FzZSBmb3IgY2FjaGluZy4gSXQgbmVlZHMKKyAgICAjIGl0
cyBvd24gc3BlY2lhbCBoYW5kbGluZyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBjYWNoaW5n
IHRoYXQgTm9kZSBub3JtYWxseSBkb2VzLgorICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRG9j
dW1lbnQiKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5H
RE9NJGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuICAgIFdl
YkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHN0YXRpY19jYXN0
PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihpbXBsKCkpKTtcbn1cblxuIik7CisgICAgfQor
CisgICAgJGltcGxJbmNsdWRlc3siJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRpbXBs
SW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJH
RE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NOYW1lIn0gPSAx
OworICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOworCisgICAgJGlt
cGxDb250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xp
Yi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5j
bHVkZSAiTm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5j
bHVkZSAiTmFtZWROb2RlTWFwLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwg
Ki8KKyNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMg
b3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5oIiAvKiB5dWtrOiBUT0RPIC0g
bWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIgLyogeXVrazog
VE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVk
ZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRp
b25hbCAqLworI2luY2x1ZGUgIkdkb21FdmVudFRhcmdldE5vZGUuaCIgLyogeXVrazogVE9ETyAt
IG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIlByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgb24gRXZlbnRUYXJnZXQq
LworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKKyNpbmNsdWRlICIke2hkck5hbWV9Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZSR7aGRyTmFtZX0uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50JHto
ZHJOYW1lfS5oIgorI2luY2x1ZGUgIiR7aGRyTmFtZX1wcm9wcy5oIgorI2luY2x1ZGUgIkNTdHJp
bmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmlu
Zy5oIgorI2luY2x1ZGUgInVzdHJpbmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisKKyNpbmNsdWRl
ICJDYW52YXNQaXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0
LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVk
ZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSAiR2RvbUV2
ZW50LmgiCisKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworJHtoYWNrRGVjbHN9CisKK0dfQkVHSU5f
REVDTFMKKworJHtzdHJpbmdDb252ZXJ0fQorCitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1lfSwg
JHtsY2FzZV9pZmFjZW5hbWV9LCAke3BhcmVudEdPYmpUeXBlfSk7CisKKyNkZWZpbmUgX0dfR0VU
X1VURjgoc3RyKSAoR1N0cmluZ0NvbnZlcnQoc3RyKS5tX3N0cikKKworLyoKK3N0cnVjdCBfJHtj
bGFzc05hbWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAq
aXRlbTsKK307CisKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9QUklWQVRFKG9iaikgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7
Y2xhc3NOYW1lfVByaXZhdGUpKQorKi8KK0dfRU5EX0RFQ0xTCitXZWJDb3JlOjoke2ludGVyZmFj
ZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJl
cXVlc3QpCit7CitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKwor
ICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyAgICBHRE9NJHtpbnRlcmZhY2VOYW1l
fSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19jYXN0PEdET00ke2ludGVyZmFjZU5hbWV9Kj4oZ2Rv
bV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4ocmVzLT5pbXBs
KCkpOworRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgIyBQ
cm9wZXJ0aWVzCisgICAgbXkgJGZ1bmN0aW9uTmFtZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5hbWU7
IAorICAgIFNLSVBQUk9QOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRy
aWJ1dGVzfSkgeworICAgICAgICBteSAkcHJvcE5hbWUgPSBkZWNhbWVsaXplKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7
CisgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKyAgICAgICAg
bXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJP
UDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFy
YXRpb24iOworCisgICAgICAgIGlmIChza2lwUHJvcFRlbXBvcmFyaWx5KCR0eXBlLCAkcHJvcF90
eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgIGFkZFByb3BJbmNIZHIoJHByb3BfdHlwZSk7CisKKyAgICAgICAgI3B1c2go
QGhCb2R5UHJvcCwgIldFQktJVF9BUEkgJHR5cGVcbiRmdW5jdGlvbk5hbWVQcmVmaXgiIC4gIl9w
cm9wX2dldF8iIC4gIiRwcm9wTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAg
I3B1c2goQGhCb2R5UHJvcCwgIldFQktJVF9BUEkgdm9pZFxuJGZ1bmN0aW9uTmFtZVByZWZpeCIg
LiAiX3Byb3Bfc2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcsICR0eXBlIiAuICJ2YWx1
ZSk7XG5cbiIpOworICAgIH0KKworICAgICMgUHJvcGVydGllcworICAgICRpbXBsQ29udGVudCA9
IDw8ICJFT0YiOworfQorCitHX0JFR0lOX0RFQ0xTCisKK2VudW0geworICAgIEJST1dTRVJfRVZF
TlQsCisgICAgTEFTVF9TSUdOQUwKK307CisKK3N0YXRpYyBndWludCBldmVudF9zaWduYWxzW0xB
U1RfU0lHTkFMXSA9IHsgMCwgfTsKKworZW51bSB7CisgICAgUFJPUF8wLAorRU9GCisgICAgcHVz
aChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgbXkgQHR4dF9pbnN0YWxsX3Byb3Bz
ID0gKCk7CisgICAgbXkgQHR4dF9zZXRfcHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X2dldF9wcm9w
cyA9ICgpOworCisgICAgbXkgJHByaXZfZm4gPSBHZXRQcml2Rm4oJGludGVyZmFjZU5hbWUsICR7
bGNhc2VfaWZhY2VuYW1lfSwgImdzZWxmIiwgInNlbGYiKTsKKworICAgIG15ICR0eHRfZ2V0X3By
b3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3Bl
cnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAg
ICAgICBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBw
c3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0
KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChA
dHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICBteSAkdHh0X3NldF9wcm9wID0g
PDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9m
bihHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgR1ZhbHVlICogdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICog
cHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9ICpzZWxmID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVj
dCk7CisgICAgJHByaXZfZm4KKyAgICBzd2l0Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2go
QHR4dF9zZXRfcHJvcHMsICR0eHRfc2V0X3Byb3ApOworCisgICAgU0tJUEVOVU06IGZvcmVhY2gg
bXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRw
cm9wX25hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgIG15ICRzZXRw
cm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkcHJvcF9uYW1lKTsKKyAg
ICAgICAgbXkgJGdldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRw
cm9wX25hbWUpOworCisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJHByb3BfbmFt
ZSk7CisgICAgICAgIG15ICRwcm9wQ2FwcyA9IHVjKCRwcm9wTmFtZSk7CisgICAgICAgIG15ICRw
cm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0eXBl
ID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICR7cHJvcEVudW19ID0gIlBST1Bf
JHtwcm9wQ2Fwc30iOworICAgICAgICBteSAke3Byb3BfZ3R5cGV9ID0gZGVjYW1lbGl6ZSgkcHJv
cF90eXBlKTsKKyAgICAgICAgaWYgKCRwcm9wX2d0eXBlIGVxICJldmVudF90YXJnZXQiKSB7Cisg
ICAgICAgICAgICAkcHJvcF9ndHlwZSA9ICJldmVudF90YXJnZXRfbm9kZSI7CisgICAgICAgIH0K
KyAgICAgICAgbXkgJHtwcm9wR1R5cGV9ID0gdWMoJHByb3BfZ3R5cGUpOworICAgICAgICBteSAk
bGNhc2VfZ3R5cGVuYW1lID0gImdkb21fIiAuICRwcm9wX2d0eXBlOworCisgICAgICAgIG15ICRj
dXN0b20gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0
b20ifTsKKworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0pIHsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07Cisg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9u
IjsKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7
CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgcHVzaChAY0JvZHlQcml2LCAiICAgICR7cHJvcEVudW19LFxuIik7CisKKyAgICAgICAg
bXkgJGd0eXBlID0gR2V0UHJvcEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAkZ3BhcmFt
ZmxhZyA9ICJHX1BBUkFNX1JFQURBQkxFIjsKKyAgICAgICAgbXkgJHdyaXRlYWJsZSA9ICRhdHRy
aWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS87CisgICAgICAgIG15ICRjb25zdCA9ICJyZWFkLW9u
bHkgIjsKKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgJGN1c3RvbSkgeworICAgICAgICAgICAg
JGNvbnN0ID0gInJlYWQtb25seSAoZHVlIHRvIGN1c3RvbSBmdW5jdGlvbnMgbmVlZGVkIGluIGdk
b213ZWJraXQpIjsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKCR3cml0ZWFibGUgJiYgISRjdXN0b20pIHsKKyAgICAgICAgICAgICRncGFyYW1mbGFn
ID0gIkdfUEFSQU1fUkVBRFdSSVRFIjsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLXdyaXRl
ICI7CisgICAgICAgIH0KKworICAgICAgICBteSAkX2d0eXBlID0gJGd0eXBlOworICAgICAgICBp
ZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAkX2d0eXBlID0gInVpbnQiOyAj
IHl1ay4KKyAgICAgICAgfQorICAgICAgICBteSAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0Yi
OworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdfa2xhc3MsICR7cHJvcEVu
dW19LAorICAgICAgICAgICAgZ19wYXJhbV9zcGVjXyR7X2d0eXBlfSAoIiR7cHJvcE5hbWV9Iiwg
LyogbmFtZSAqLworICAgICAgICAgICAgICAgICIke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9
IiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAiJHtjb25zdH0gJHt0
eXBlfSAke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IiwgLyogbG9uZ2VyICovCitFT0YKKyAg
ICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSAiLyogVE9ETyEgJGd0eXBlICovXG4iOworCisgICAgICAg
IGlmICgkd3JpdGVhYmxlKSB7CisKKyAgICAgICAgICAgIG15ICRvayA9IDA7CisgICAgICAgICAg
ICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5n
IikgeworICAgICAgICAgICAgICAgICRjb252ZXJ0X2ZuID0gIldlYkNvcmU6OlN0cmluZyI7Cisg
ICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2lm
ICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNl
TmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZm
IC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9
IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJm
bG9hdCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAo
JGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFt
ZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0g
bm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50
NjQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0g
bmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8g
aWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikg
eworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7
ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFi
b3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAgICAgICAgICAg
ICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7Cisg
ICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
dWNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgIyBYWFggVE9ETyAtIHNraXAgTG9jYXRpb24KKyAgICAgICAgICAg
IGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTG9jYXRpb24iKSB7CisgICAgICAgICAgICAgICAgJG9r
ID0gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCRvaykgeworICAgICAgICAg
ICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7
XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhj
ZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAg
Z3NlbGYtPnNldCR7c2V0cHJvcF9uYW1lX2ZufSgke2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRn
dHlwZSAodmFsdWUpKSIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywg
IiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAg
ICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIpO1xuIik7CisKKyAgICAgICAgICAgICAgICBwdXNo
KEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICBjYXNlICR7
cHJvcEVudW19OlxuICAgIHtcbiIpOworCisgICAgICAgIG15ICRleGNlcHRpb24gPSAiIjsKKyAg
ICAgICAgaWYgKEB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAg
ICRleGNlcHRpb24gPSAiZWMiOworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAg
ICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgfQorCisg
ICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRwb3N0X2NvbnZlcnRfZm4g
PSAiIjsKKyAgICAgICAgbXkgJGRvbmUgPSAwOworICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJp
bmciKSB7CisgICAgICAgICAgICAkY29udmVydF9mbiA9ICJfR19HRVRfVVRGOCgiOworICAgICAg
ICAgICAgJHBvc3RfY29udmVydF9mbiA9ICIpIjsKKyAgICAgICAgfQorICAgICAgICBlbHNpZiAo
JGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAiV1RGOjpn
ZXRQdHIoJHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKCI7CisgICAgICAgICAgICAjJGNv
bnZlcnRfZm4gPSBHZXRQcml2Rm4oJGludGVyZmFjZU5hbWUsICR7bGNhc2VfZ3R5cGVuYW1lfSwg
ImdzZWxmIiwgInNlbGYiKTsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9ICIke2xjYXNlX2d0
eXBlbmFtZX1fZ2V0X3ByaXZhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+KCI7
CisgICAgICAgICAgICAjJHBvc3RfY29udmVydF9mbiA9ICIpIjsKKyAgICAgICAgICAgIG15ICRk
b21vYmpUeXBlID0gIkdET00iLiRwcm9wX3R5cGU7CisgICAgICAgICAgICAkdHh0X2dldF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PiBw
dHIgPSBnc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSk7CisgICAgICAgIGdf
dmFsdWVfc2V0X29iamVjdCAodmFsdWUsIFdlYkNvcmU6OnRvR0RPTShwdHIuZ2V0KCkpKTsKK0VP
RgorICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisgICAg
ICAgICAgICAkZG9uZSA9IDE7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRkb25lKSB7Cisg
ICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF8kX2d0
eXBlICh2YWx1ZSwgJHtjb252ZXJ0X2ZufWdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNl
cHRpb259KSR7cG9zdF9jb252ZXJ0X2ZufSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1
c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworCisgICAgICAg
ICMgaXMgdGhpcyBfZW50aXJlbHlfIG5lY2Vzc2FyeT8/PworICAgICAgICAjIGNhbiBpdCBiZSBk
b25lIHdpdGggZ2VuZXJpYyBnX3BhcmFtX3NwZWNfZ3R5cGUKKyAgICAgICAgIyBhbmQgZ2V0dGlu
ZyBhIGZldyB0aGluZ3MsIGlnbm9yaW5nIHRoZSBtaW4tbWF4IGZvciBleGFtcGxlPworICAgICAg
ICBpZiAoJGd0eXBlIGVxICJpbnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9
IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOSU5ULCAgICAgICAgLyogbWluICovCisg
ICAgICAgICAgICAgICAgR19NQVhJTlQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAg
ICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJib29s
ZWFuIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAg
ICAgICAgICAgICBGQUxTRSwgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAiZmxvYXQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJF
T0YiOworICAgICAgICAgICAgICAgIEdfTUlORkxPQVQsICAgICAgICAvKiBtaW4gKi8KKyAgICAg
ICAgICAgICAgICBHX01BWEZMT0FULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAg
ICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91Ymxl
IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAg
ICAgICAgICBHX01JTkRPVUJMRSwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdf
TUFYRE9VQkxFLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAg
ICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5UNjQsIC8qIG1heCAqLwor
ICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAg
ICAgICAgICAgIEdfTUFYVUxPTkcsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAg
ICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikg
eworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAg
ICAgICBHX01JTkxPTkcsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWExP
TkcsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
bWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAg
ICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlw
ZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9G
IjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAg
R19NQVhVSU5UMTYsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZh
dWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19N
SU5JTlQ4LCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhJTlQ4LCAvKiBt
YXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFs
bF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLwor
ICAgICAgICAgICAgICAgIEdfTUFYVUlOVDgsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAs
ICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJz
dHJpbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAg
ICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJF
T0YiOworICAgICAgICAgICAgICAgIEdET01fVFlQRV8ke3Byb3BHVHlwZX0sIC8qIGdvYmplY3Qg
dHlwZSAqLworRU9GCisgICAgICAgIH0KKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMs
ICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9G
IjsKKyAgICAgICAgICAgICAgICAoR1BhcmFtRmxhZ3MpJHtncGFyYW1mbGFnfSkpOworCitFT0YK
KyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKwor
CisgICAgfQorCisgICAgcHVzaChAY0JvZHlQcml2LCAifTtcblxuIik7CisKKworICAgICR0eHRf
Z2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5f
SU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorfQorRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJv
cCk7CisKKyAgICAkdHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CisgICBkZWZhdWx0OgorICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3Bl
Yyk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJv
cHMsICR0eHRfc2V0X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRfZ2V0X3Byb3BzID0gPDwgIkVP
RiI7CisgICAgY2FzZSBQUk9QX0FHRToKKyAgICAgICAgc2VsZi0+YWdlID0gZ192YWx1ZV9nZXRf
aW50ICh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQUk9QX0FHRToKKyAgICAg
ICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCBzZWxmLT5hZ2UpOworICAgICAgICBicmVhazsKKwor
ICAgICAgICArICAgZ192YWx1ZV9pbml0KCZwYXJhbXNbMF0sIEdfVFlQRV9GUk9NX0lOU1RBTkNF
KG9iamVjdCkpOworICAgICAgICArICAgZ192YWx1ZV9zZXRfaW5zdGFuY2UoJnBhcmFtc1swXSwg
KGdwb2ludGVyKW9iamVjdCk7CisKK0VPRgorCisgICAgIyBUT0RPOiB3b3JrIG91dCBpZiBpdCdz
IGFwcHJvcHJpYXRlIHRvIHNwbGl0IHRoaXMgaW50byBtYW55IGRpZmZlcmVudAorICAgICMgc2ln
bmFscyBlLmcuICJjbGljayIgZXRjLgorICAgIG15ICR0eHRfaW5zdGFsbF9zaWduYWxzID0gIiI7
CisKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgb3IKKyAgICAgICAgJGlu
dGVyZmFjZU5hbWUgZXEgIlhNTEh0dHBSZXF1ZXN0IikgeworICAgICAgICAkdHh0X2luc3RhbGxf
c2lnbmFscyA9IDw8ICJFT0YiOworICAgIGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBn
X3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhy
ZXF1ZXN0Q2xhc3MpLAorICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR19TSUdOQUxfREVUQUlMRUQgICksCisgICAgICAgIDAsCisgICAgICAgIE5VTEwsCisg
ICAgICAgIE5VTEwsCisgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFO
LAorICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZ
UEVfQk9PTEVBTik7CitFT0YKKyAgICB9CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsK
Kworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplKEdPYmplY3QqIG9iamVj
dCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfSogcmVxdWVzdCA9IEdET01fJHtjbHNDYXBzfShvYmpl
Y3QpOyovCisgICAgLyoke2NsYXNzTmFtZX1Qcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsq
LworCisgICAgLypHT2JqZWN0Q2xhc3MgKnBhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVr
IChnX3R5cGVfcGVla19wYXJlbnQgKCR7cGFyZW50R09ialR5cGV9KSk7Ki8KKworICAgIC8qIEZy
ZWUgYW55IG1lbW9yeSBvciBjbG9zZSBhbnkgZmlsZXMgKi8KKworICAgIC8qcGFyZW50X2NsYXNz
LT4gZmluYWxpemUgKG9iamVjdCk7Ki8KKworICAgIEdfT0JKRUNUX0NMQVNTKCR7bGNhc2VfaWZh
Y2VuYW1lfV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitAdHh0X3NldF9w
cm9wcworCitAdHh0X2dldF9wcm9wcworCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1f
Y2xhc3NfaW5pdCgke2NsYXNzTmFtZX1DbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdPYmpl
Y3RDbGFzcyAqZ19rbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChyZXF1ZXN0Q2xhc3MpOworICAgIGdf
a2xhc3MtPmZpbmFsaXplID0gJHtsY2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplOworICAgIGdfa2xh
c3MtPnNldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuOwor
ICAgIGdfa2xhc3MtPmdldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3Bl
cnR5X2ZuOworCitAdHh0X2luc3RhbGxfcHJvcHMKKworJHR4dF9pbnN0YWxsX3NpZ25hbHMKKwor
ICAgIC8qZ190eXBlX2NsYXNzX3JlbW92ZV9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKCR7
Y2xhc3NOYW1lfVByaXZhdGUpKTsqLworfQorCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFt
ZX1faW5pdCgke2NsYXNzTmFtZX0qIHJlcXVlc3QpCit7CisgICAgLyoke2NsYXNzTmFtZX1Qcml2
YXRlKiBwcml2ID0gR0RPTV8ke2Nsc0NhcHN9X0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJl
cXVlc3QtPnByaXYgPSBwcml2OyovCit9CisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAk
aW1wbENvbnRlbnQpOworCisgICAgJGltcGxJbmNsdWRlc3siUHJpdmF0ZUludEdkb20ke2ludGVy
ZmFjZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNpZm5k
ZWYgJHtndWFyZH1fUFJJVl8KKyNkZWZpbmUgJHtndWFyZH1fUFJJVl8KKyNpbmNsdWRlICJnbGli
LW9iamVjdC5oIgorI2luY2x1ZGUgIiR7cGFyZW50SGRyTmFtZX0uaCIKKyNpbmNsdWRlICJHRE9N
T2JqZWN0LmgiCisvKiNpbmNsdWRlICJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIiovCisvKkdf
QkVHSU5fREVDTFMqLworLypjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9OyovCisjaW5j
bHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgorRU9GCisKKyAgICBwdXNoKEBoQm9keVByaXYsICRp
bXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBHRE9NJHtpbnRlcmZhY2VOYW1lfSA6IHB1YmxpYyAke3BhcmVu
dEdJZmFjZU5hbWV9IHsKKworcHVibGljOgorICAgIEdET00ke2ludGVyZmFjZU5hbWV9KFdlYkNv
cmU6OiR7aW50ZXJmYWNlTmFtZX0qIGltcGwpIDogJHBhcmVudEdJZmFjZU5hbWV9KGltcGwpCisg
ICAgeyBpbXBsLT5yZWYoKTsgfQorICAgIH5HRE9NJHtpbnRlcmZhY2VOYW1lfSgpIHsgbV9pbXBs
LT5kZXJlZigpOyB9CisKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBpbXBsKCkgY29u
c3QgeyByZXR1cm4gbV9pbXBsOyB9CisKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjoke2ludGVy
ZmFjZU5hbWV9ICptX2ltcGw7Cit9OworCitFT0YKKworICAgICAgICAjcHVzaChAaEJvZHlQcml2
LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSAke2NsYXNz
TmFtZX07CisKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9
X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCk7CisKKy8qR19FTkRfREVDTFMqLwor
CisjZW5kaWYgLyogJHtndWFyZH1fUFJJVl8gKi8KKworRU9GCisKKyAgICAjcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KChXZWJDb3JlOjpOb2RlKiko
cmVzKSk7CisgICAgICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICAg
ICAjaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICMgWFhY
ID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICMgICAgJGlt
cGxJbmNsdWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAg
I30gZWxzZSB7CisgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3skaW5jbHVkZUhkcn0gPSAxOwor
ICAgICAgICAjfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9
IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IlByaXZhdGVHZG9tRE9NT2JqZWN0LmgifSA9IDE7
CisKKyAgICAgICAgTE9PUDogZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5j
dGlvbnN9KSB7CisgICAgICAgICAgICAjbXkgJGZ1bmN0aW9uTmFtZSA9IGRlY2FtZWxpemUoJGNs
YXNzTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsK
KyAgICAgICAgICAgICAgICBteSAkZm5fc2lnX25hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZTsKKyAgICAgICAgICAgICAgICBteSAkZm5fc2lnX3R5cGUgPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+dHlwZTsKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gImdkb21fIiAu
IGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25h
bWUpOworICAgICAgICAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190
eXBlKTsKKyAgICAgICAgICAgICAgICBteSAkcmV0X2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NU
eXBlKCRmbl9zaWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSAi
JGNsYXNzTmFtZSAqdGhpeiI7CisKKyAgICAgICAgICAgICAgICBteSAkY2FsbF9pbXBsX3BhcmFt
cyA9ICIiOworICAgICAgICAgICAgICAgIG15ICRnZG9tX2ZuX3ByZWZpeCA9ICJnZG9tXyIgLiBk
ZWNhbWVsaXplKCRmbl9zaWdfdHlwZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9u
TmFtZSBlcSAiZ2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X3Byb3BlcnR5IikgeworICAg
ICAgICAgICAgICAgICAgICAjIHJlc2VydmVkIG5hbWUgY2xhc2ggaW4gZ2xpYiEKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9z
ZXRfY3NzX3Byb3BlcnR5IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIyBY
WFggc2tpcCBDb21wYXJlSG93IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYg
KCRmdW5jdGlvbk5hbWUgZXEgImdkb21fcmFuZ2VfY29tcGFyZV9ib3VuZGFyeV9wb2ludHMiKSB7
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBp
bmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFy
ZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAg
ICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhY
WCBza2lwIFNWR0RvY3VtZW50IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYg
KCRyZXR1cm5UeXBlIGVxICJHZG9tU1ZHRG9jdW1lbnQgKiIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5j
dGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtm
dW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBzb21lIGN1c3Rv
bSBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgIG15ICRpc19jdXN0b21fZm4gPSAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAg
ICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9p
dGVtIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxf
Y29sbGVjdGlvbl9uYW1lZF9pdGVtIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfb3BlbiIgfHwKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3NldF9yZXF1ZXN0X2hl
YWRlciIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxf
aHR0cF9yZXF1ZXN0X3NlbmQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
ZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRfcmVzcG9uc2VfaGVhZGVyIiB8fAorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfb3Zl
cnJpZGVfbWltZV90eXBlIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVx
ICJnZG9tX3htbF9odHRwX3JlcXVlc3RfZGlzcGF0Y2hfZXZlbnQiIHx8CisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fZWxlbWVudF9zZXRfYXR0cmlidXRlIikgewor
ICAgICAgICAgICAgICAgICAgICAkaXNfY3VzdG9tX2ZuID0gMDsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICMkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3Jl
cXVlc3RfYWRkX2V2ZW50X2xpc3RlbmVyIiB8fAorICAgICAgICAgICAgICAgICAgICAjJGZ1bmN0
aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3JlbW92ZV9ldmVudF9saXN0ZW5lciIg
fHwKKyAgICAgICAgICAgICAgICBpZiAoJGlzX2N1c3RvbV9mbiAmJiAKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX25leHRfbm9kZSIgJiYg
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9hcHBlbmRf
Y2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25v
ZGVfcmVtb3ZlX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgorICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3BhcmVudF9ub2RlIiAmJiAK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9m
aXJzdF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fdHJlZV93YWxrZXJfbGFzdF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfc2libGluZyIgJiYgCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9z
aWJsaW5nIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90
cmVlX3dhbGtlcl9wcmV2aW91c19ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3JfcHJldmlvdXNfbm9k
ZSIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBj
dXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0
aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVu
Y3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5
cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAgICAgIGFkZEluY0JvZHkoJHBhcmFt
SURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZSA9IEdldEdUeXBlKCRwYXJhbUlETFR5
cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFy
YW0tPm5hbWUpOworCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvblNpZyAuPSAiLCAkcGFy
YW1UeXBlICRwYXJhbU5hbWUiOworCisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19j
bHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRwYXJhbUlETFR5cGUgbmUgIkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkcGFyYW1JRExUeXBlIG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7cGFyYW1JRExUeXBl
fS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlBy
aXZhdGVHZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7ICMgdGhpcyBpc24n
dCBzdHJpY3RseSBuZWNlc3NhcnkgYnV0IG9uZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQgZmlsZXMg
bmVlZGVkIGl0IHNvLi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUgfHwg
KCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAkcGFyYW1OYW1lID0gIl9nXyIgLiAkcGFyYW1OYW1lOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIGlmICgkY2FsbF9pbXBsX3BhcmFtcykgeworICAgICAgICAg
ICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFkZElu
Y0hkcigkZm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBl
KSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9zaWdfdHlw
ZX0ifSA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1
cm5UeXBlIG5lICJ2b2lkIikgeworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Ns
c190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJE
T01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/
PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkaW1wbEluY2x1ZGVzeyJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRlSW50R2RvbSR7Zm5fc2lnX3R5
cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IlByaXZhdGVHZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworICAg
ICAgICAgICAgICAgICMgYnV0IHNraXAgZnJvbSBoZXJlIHRvIGFsbG93IHNvbWUgaGVhZGVycyB0
byBiZSBjcmVhdGVkCisgICAgICAgICAgICAgICAgIyBmb3IgYSBzdWNjZXNzZnVsIGNvbXBpbGUu
CisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAg
ICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAm
JgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFj
ZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9u
b2RlX2FwcGVuZF9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJc
bi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBm
dW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5l
eHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAkX3JldHVy
blR5cGUgPSAkcmV0dXJuVHlwZTsKKyAgICAgICAgICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJH
RE9NIi4kZm5fc2lnX3R5cGU7CisgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAn
RE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICdnZG9t
X2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAg
ICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAgICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dCAqJzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9ialR5cGUg
PSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICAkZ2Rv
bV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQnOworICAgICAgICAg
ICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lw
IGl0LgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAo
VE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQorICAgICAgICAgICAgICAgICAg
ICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAo
JGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgZXEgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKyAg
ICAgICAgICAgICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgJF9yZXR1
cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgKic7CisgICAgICAgICAgICAg
ICAgICAgICRkb21vYmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnOworICAg
ICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5n
X2NvbnRleHQyZCc7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0b28g
aW52b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVzdCBj
b252ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91dCBo
b3cpCisgICAgICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3JlYXRl
IGEgR0RPTURvbU9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
IAorCisgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJXRUJLSVRfQVBJICRfcmV0dXJuVHlw
ZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2ln
KVxue1xuIik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7
CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCBy
ZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKHRoaXosIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9ICgke2xjYXNlX2lmYWNlbmFt
ZX1fZ2V0X3ByaXZhdGUodGhpeikpO1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4g
cHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtcbiIpOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJu
X2lmX2ZhaWwgKGl0ZW0pO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
b3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAg
ICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAg
ICAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5J
c1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRw
YXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICMgICAg
JGltcGxUeXBlZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoISRwYXJhbVR5cGVJc1ByaW1pdGl2ZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVm
YXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKyAgICAgICAgICAg
ICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAg
ICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAg
ICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1l
KTsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01D
bGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICMgSEFDSyEKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVx
dWVzdF9vcGVuIiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbS0+bmFtZSBlcSAi
dXJsIikgeworCisgICAgICAgICAgICAgICAgICAgICAgICAjJGltcGxJbmNsdWRlc3siS1VSTC5o
In0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29y
ZTo6S1VSTCBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpLVVJMKCRwYXJhbU5hbWUpO1xuIik7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCRwYXJh
bUlETFR5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgIFdlYkNvcmU6OlN0cmluZyBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpT
dHJpbmcoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBteSAkcGFyYW1fZ2RvbV9mbiA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRwYXJhbUlETFR5
cGUpOworICAgICAgICAgICAgICAgICAgICAgICAgI3B1c2goQGNCb2R5LCAiICAgIFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0+ICogX2dfJHtwYXJhbU5hbWV9ID0gV1RG
OjpSZWZQdHI8JHtwYXJhbV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKT47XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJFdmVudFRhcmdl
dCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJQcml2YXRl
R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIF9nXyR7cGFyYW1O
YW1lfSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZXZlbnRf
dGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgIFdlYkNvcmU6OiR7cGFyYW1JRExUeXBlfSAqIF9nXyR7cGFyYW1OYW1lfSA9ICgk
e3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBl
IG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJl
dHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoX2dfJHtwYXJhbU5hbWV9LCAw
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsIChfZ18ke3Bh
cmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIl9nXyIu
JHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXR1cm4ifTsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduID0gIiI7CisgICAg
ICAgICAgICAgICAgbXkgJGFzc2lnbl9wcmUgPSAiIjsKKyAgICAgICAgICAgICAgICBteSAkYXNz
aWduX3Bvc3QgPSAiIjsKKyAgICAgICAgICAgICAgICAkZ19yZXMgPSAwOworICAgICAgICAgICAg
ICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKworICAg
ICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgJGFzc2lnbiA9ICJQYXNzUmVmUHRyPFdlYkNvcmU6OiR7Zm5fc2lnX3R5cGV9PiBn
X3JlcyA9ICI7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduX3ByZSA9ICJXVEY6Omdl
dFB0cigiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wb3N0ID0gIikiOworICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2ln
biA9ICIke19yZXR1cm5UeXBlfSByZXMgPSAiOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG15ICRleGNlcHRpb25zID0gIiI7CisgICAg
ICAgICAgICAgICAgaWYgKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgeworICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
ID0gMDtcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHtjYWxsX2ltcGxfcGFyYW1zfSBu
ZSAiIikgeworICAgICAgICAgICAgICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiLCBlYyI7Cisg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhj
ZXB0aW9ucyA9ICJlYyI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICAjIG5lZWQgdGhpcyBmb3IgaW5jbHVkaW5nIC4uLiBfc29tZXRo
aW5nXyAtIGZvciB0aGUgY2xhc3MgYXJncworICAgICAgICAgICAgICAgICNpZiAoJHJldF9pc19j
bHNfdHlwZSkgeworICAgICAgICAgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3siZ2RvbSR7Zm5f
c2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgI30KKyAgICAgICAgICAgICAgICBp
ZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIgfHwKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUiIHx8
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9yZXBsYWNl
X2NoaWxkIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25v
ZGVfcmVtb3ZlX2NoaWxkIikgeworICAgICAgICAgICAgICAgICAgICBteSAkY3VzdG9tX2dkb21f
bm9kZV9hcHBlbmRfY2hpbGQgPSA8PCAiRU9GIjsKKyAgICBib29sIG9rID0gaXRlbS0+JHtmbl9z
aWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pOworICAgIGlmIChvaykK
KyAgICB7CisgICAgICAgICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVy
blR5cGV9PihXZWJDb3JlOjp0b0dET00oJHJldHVyblBhcmFtTmFtZSkpOworICAgICAgICByZXR1
cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK0VPRgorICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIgJiYKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAnZ2RvbV9kb2N1bWVudF9nZXRfY3NzX2NhbnZh
c19jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAvKiBY
WFggVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0IChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxf
aW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpOyovXG4iICk7CisgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NU3RyaW5nIikg
eworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn1fR19HRVRf
VVRGOChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25z
fSkpO1xuIiApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICgkZ19yZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRnX3JlcyA9ICIke2Fzc2ln
bn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7
ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSkiIDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufSR7
YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNl
cHRpb25zfSR7YXNzaWduX3Bvc3R9KTtcbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQi
ICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdf
dHlwZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRf
aXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1cm5UeXBlfT4oV2Vi
Q29yZTo6dG9HRE9NKGdfcmVzLmdldCgpKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3Np
Z190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBjYW52YXMgb2JqZWN0
ICovXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7XG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IlxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisgICAgICAg
IH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisgICAg
cHVzaChAY0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisKKyAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlJbnRl
cm5hbCwgIiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9cbiIpOworCisgICAgcHVzaChAaEJvZHks
ICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAvKiAkZ3VhcmQg
Ki9cbiIpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19FTkRfREVDTFNcblxuIik7CisgICAg
cHVzaChAaEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3VhcmR9X1BST1BfKi9cbiIpOworfQorCisj
IEludGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2JqZWN0LCAkbmFt
ZSkgPSBAXzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBteSAkaGRyRk5h
bWVJbnRlcm5hbCA9ICIkb3V0cHV0RGlyL1ByaXZhdGVJbnQiIC4gJG5hbWUgLiAiLmgiOworICAg
IG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFsIikgb3IgZGllICJDb3VsZG4ndCBv
cGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAgcHJpbnQgSU5USEVBREVSIEBoUHJl
Zml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAgIHByaW50IElOVEhFQURFUiBAaEJv
ZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOworCisgICAgIyBXcml0ZSBQcml2YXRl
IGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1dERpci9Qcml2YXRlIiAuICRu
YW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJpdiIpIG9yIGRp
ZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworCisgICAgcHJpbnQgUFJJVkhF
QURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJJ
VkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisgICAgIyBXcml0
ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgbXkgJGltcGxGaWxlTmFtZVByaXYgPSAiJG91
dHB1dERpci9Qcml2YXRlIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oUFJJVklNUEwsICI+
JGltcGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVO
YW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBQUklW
SU1QTCAiXG4iOworICAgIHByaW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAgICBjbG9zZShQ
UklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9pZHMgcmVjdXJz
aXZlIG5pZ2h0bWFyZSkKKyAgICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRu
YW1lIC4gInByb3BzLmgiOworICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJvcEZOYW1lIikg
b3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAgICAkaGRyUHJv
cEluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJPUEhFQURFUiBA
aFByZWZpeDsKKyAgICBwcmludCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5jbHVkZXMgLyBk
ZWZpbmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRpZXMuXG5wZXJo
YXBzIC0gYmV0dGVyIC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW4gaGVyZSEq
L1xuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAgcHJpbnQgUFJP
UEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50
IFBST1BIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRyUHJv
cEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cyglaGRyUHJvcElu
Y2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJPUEhFQURF
UiBAaEJvZHlQcm9wOworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgcHVibGlj
IGhlYWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgi
OworICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBm
aWxlICRoZHJGTmFtZSI7CisKKyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0LmgifSA9IDE7
CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4
R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMu
aD5cbiI7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0
IGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJJ
bmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiI7CisgICAgcHJpbnQgSEVBREVSIEBoQm9k
eVByZTsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgInR5cGVkZWYgc3RydWN0IF8kXyAkXztcbiIg
fSBzb3J0IGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5
cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5OworCisgICAgY2xvc2Uo
SEVBREVSKTsKKworICAgICMgV3JpdGUgdGhlIGltcGxlbWVudGF0aW9uIHNvdXJjZXMKKyAgICBt
eSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9w
ZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGlt
cGxGaWxlTmFtZSI7CisKKyAgICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHByaW50IElNUEwg
IiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiQ1N0cmluZy5oXCJc
biI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJQbGF0Zm9ybVN0cmluZy5oXCJcbiI7Cisg
ICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJBdG9taWNTdHJpbmcuaFwiXG4iOworICAgIHByaW50
IElNUEwgIiNpbmNsdWRlIFwidXN0cmluZy5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1
ZGUgXCJLVVJMLmhcIlxuIjsKKyAgICBwcmludCBJTVBMIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJc
biIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCAiXG4iIGlmIGtl
eXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAgICBjbG9zZShJ
TVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAgICAlaW1wbFR5cGVkZWZzID0gKCk7
CisgICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBAaEJvZHkg
PSAoKTsKKyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAgQGhCb2R5SW50ZXJuYWwgPSAoKTsKKyAg
ICBAaEJvZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJvcFByZSA9ICgpOworCisgICAgQGNQcmVm
aXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7Cit9CisKKzE7
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDM2NDAzKQorKysg
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NyArMjcsNyBAQAogICAgIF0gSFRNTE9wdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkZWZhdWx0U2VsZWN0
ZWQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAg
ICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRp
b24pOwogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkocmV2aXNpb24g
MzY0MDMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgc2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQ7CiAK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51
bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9odG1sL0hU
TUxBcHBsZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFwcGxl
dEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0
RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE0ICszNSwxNCBAQAogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29k
ZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGNvZGVCYXNlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0OwotI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQo
TEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhzcGFjZTsKICNlbHNlCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaHNwYWNlOwogI2VuZGlmCiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgb2JqZWN0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkK
KyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHZzcGFjZTsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydEZyb21TdHJpbmddIGxvbmcgdnNwYWNlOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVt
ZW50LmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAgSW1wbGVtZW50
YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZmMC05NzhkLWY3NzNmMmRlZTZhMwogICAgIF0gSFRN
TEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFsaWduOwotI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8
IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKICNlbHNlCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaGVpZ2h0OwpAQCAt
MzgsNyArMzgsNyBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7Ci0jaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgd2lkdGg7CiAjZWxzZQog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHdpZHRo
OwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQAogCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0aXRsZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWZlcnJlcjsKLSNpZiBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGRvbWFpbjsKICNlbHNlCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZG9tYWluOwpAQCAtMTgyLDcgKzE4
Miw3IEBACiAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeU5hbWUoaW4gRE9NU3RyaW5n
IGVsZW1lbnROYW1lKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAo
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
KQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9jYXRpb247
CiAjZW5kaWYKIApAQCAtMTk1LDcgKzE5NSw3IEBACiAgICAgICAgIEVsZW1lbnQgICAgICAgICAg
ICBlbGVtZW50RnJvbVBvaW50KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKIAogICAgICAgICAvLyBN
b3ppbGxhIGV4dGVuc2lvbnMKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYg
KGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KSkKICAgICAgICAgRE9NU2VsZWN0aW9uICAgICAgIGdldFNlbGVjdGlvbigpOwogI2VuZGlmCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01T
dHJpbmcgY2hhcmFjdGVyU2V0OwpAQCAtMjM2LDcgKzIzNiw3IEBACiAgICAgICAgIE5vZGVMaXN0
IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gRE9NU3RyaW5nIHRhZ25hbWUpOwogCiAgICAgICAg
IC8vIE5vZGVTZWxlY3RvciAtIFNlbGVjdG9yIEFQSQotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExB
TkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICBbQ3VzdG9tXSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3Io
aW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3Rv
cnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgW0N1c3RvbV0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChpbiBbQ29u
dmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9ycywgaW4g
TlNSZXNvbHZlciByZXNvbHZlcikKSW5kZXg6IFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJKHJldmlzaW9u
IDM2NDAzKQorKysgV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAg
IG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAg
ICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2Vi
Q29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2
ZW50RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3JlL2RvbS9FdmVudEV4
Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmlu
ZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNv
bXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7
CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiAzNjQwMykKKysrIFdl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3
IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBhbHRHcmFwaEtl
eSk7CiAKICAgICAgICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKLSNpZiAhZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmICgoIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkpICYmICgh
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkpCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
ICAgICAgICAgICAgIGNoYXJDb2RlOwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUvZG9tL0RPTUNv
cmVFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRp
b24uaWRsCShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24u
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdV
QUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxl
IGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlm
CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMzYzNzkpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsMTQxIEBACiAgICAgICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0VGVy
bVRleHQpOgogICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0
KToKIAorMjAwOC0wOS0xMiAgbGtjbCAgPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBB
RERFRCBPUiBDSEFOR0VECisgICAgICAgIChsa2NsOiBpJ2xsIGJlIGFic29sdXRlbHkgaG9uZXN0
IHdpdGggcGVvcGxlLCBoZXJlOgorICAgICAgICAgaSdtIG5vdCBnb2luZyB0byBhZGQgb3IgY2hh
bmdlIGFueSwgZWl0aGVyLCB1bmxlc3MKKyAgICAgICAgIHRoZXJlIGlzIGZ1bmRpbmcgbWFkZSBh
dmFpbGFibGUgdG8gZG8gaXQsIG9yIGkgZmluZCBhCisgICAgICAgICBnb29kIHJlYXNvbiB0byBw
YXkgZm9yIHRoZSB0aW1lIGF0IG15IG93biBleHBlbnNlLgorICAgICAgICAgc28gZmFyLCBweXdl
YmtpdGd0ayBpdHNlbGYgaGFzIGJlZW4gYSAiZ29vZCBlbm91Z2ggdGVzdCIKKyAgICAgICAgIGZv
ciBteSBwdXJwb3Nlcywgd2hpY2ggbWFzaGVzIHRoZSBlbnRpcmUgcmFuZ2Ugb2YKKyAgICAgICAg
IGZ1bmN0aW9uYWxpdHkgYW5kIHByb3ZpZGVzIGdvb2QgZW1waXJpY2FsIHRlc3RpbmcpLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1QsIGdsaWIgRE9N
IGJpbmRpbmdzIGZpbGVzLCBpbmNsdWRpbmcgbWFya2luZyBTVkcgYXMgIlRPRE8iCisgICAgICAg
ICogYmluZGluZ3MvZ2RvbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NQmlu
ZGluZy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6YWRkV3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpyZW1vdmVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVdyYXBw
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJTZXQpOgorICAgICAgICAoV2ViQ29yZTo6
R0RPTU9iamVjdDo6fkdET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlckNhY2hl
KToKKyAgICAgICAgKFdlYkNvcmU6OmRvbU9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6R0RP
TVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlX2dkb21fb2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRl
cjo6cHV0RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRl
cjo6Zm9yZ2V0RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3Jp
cHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0QWxsRE9NTm9kZXNGb3JE
b2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtE
T01Ob2Rlc0ZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6dXBkYXRlRE9NTm9kZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvR0RPTSk6
CisgICAgICAgIChXZWJDb3JlOjp0b0dET01OZXdseUNyZWF0ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmNhY2hlU1ZHRE9NT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dET01I
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogQWRkZWQuICBDb3BpZWQgZnJvbSB0aGUgYXV0
by1nZW5lcmF0ZWQgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUFuY2hvcldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXBw
bGV0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBcmVhV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVCYXNlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVCYXNlRm9udFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQmxvY2txdW90ZVdy
YXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQm9keVdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQlJXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1dHRv
bldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ2FudmFzV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZVRhYmxlQ29sV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNb2RX
cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlRGl2V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVETGlzdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRW1iZWRXcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZpZWxkU2V0V3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVGb250V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcmFtZVdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRnJhbWVTZXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUhlYWRpbmdXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhlYWRXcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhSV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVIdG1sV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJRnJhbWVXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUltYWdlV3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVJbnB1dFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSXNJbmRl
eFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTGFiZWxXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUxlZ2VuZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlTElXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxpbmtXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1hcFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlTWFycXVlZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVudVdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWV0YVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlT2JqZWN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPTGlzdFdy
YXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3B0R3JvdXBXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZU9wdGlvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlUGFyYWdyYXBoV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXJhbVdyYXBw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUHJlV3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVRdW90ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2NyaXB0
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTZWxlY3RXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVN0eWxlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVUYWJsZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVTZWN0aW9uV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVRleHRBcmVhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVUaXRsZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVSb3dXcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVVMaXN0V3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVHRE9NSFRNTFdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20v
R0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaDogIEFkZGVkLiAgQ29waWVkIGZyb20gdGhl
IGF1dG8tZ2VuZXJhdGVkIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCisgICAgICAgICog
YmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAoR0RPTU9iamVjdDo6
fkdET01PYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHA6
IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oOiBBZGRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKEdTdHJpbmdDb252ZXJ0OjpHU3RyaW5nQ29udmVydCk6CisgICAgICAgICogYmlu
ZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRp
bmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9HZG9t
RE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKToKKyAgICAgICAg
KF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKToKKyAg
ICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2ZpbmFsaXplKToK
KyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2NsYXNzX2lu
aXQpOgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2YXRlOjpnZG9tX2RvbV9vYmplY3RfaW5p
dCk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNw
cDogQWRkZWQuCisgICAgICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oOiBBZGRlZC4KKyAgICAgICAgKEdET01FdmVudFRhcmdldE5vZGU6OkdET01FdmVudFRh
cmdldE5vZGUpOgorICAgICAgICAoR0RPTUV2ZW50VGFyZ2V0Tm9kZTo6Z2V0X2dvYmpfdHlwZSk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbTogQWRk
ZWQgZ29iamVjdCBiaW5kaW5ncyBhdXRvLWdlbmVyYXRvci4KKyAgICAgICAgKiBkb20vRE9NQ29y
ZUV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJ
REwKKyAgICAgICAgKiBkb20vRXZlbnRFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JK
RUNULXNwZWNpZmljIElETAorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50LmlkbDogYWRkZWQg
TEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vUmFuZ2VFeGNlcHRp
b24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGh0
bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmlj
IElETAorICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFH
RV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5p
ZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURM
CisgICAgICAgICogcGFnZS9ET01TZWxlY3Rpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNU
LXNwZWNpZmljIElETAorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogYWRkZWQgTEFOR1VB
R0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRs
OiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIHhtbC9YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMg
SURMIAorICAgICAgICAqIHhtbC9YUGF0aEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dP
QkpFQ1Qtc3BlY2lmaWMgSURMCisKIDIwMDgtMDktMTIgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSB0aGUgbWVtYmVyIHZhcmlhYmxlcyBvZiBQbGF0Zm9ybVNj
cm9sbGJhciB1cCBpbnRvIFNjcm9sbGJhci4gIE1vdmUgYXV0b3Njcm9sbCB0aW1lciBoYW5kbGlu
ZwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTYyLDkgKzYyLDEzIEBA
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyB2b2lkIHNl
bmQoKTsKLSAgICAgICAgLy8gdm9pZCBzZW5kKGluIERPTVN0cmluZyBkYXRhKTsKKyNpZiBkZWZp
bmVkKExBTkdVQUdFX0dPQkpFQ1QpCisgICAgICAgIHZvaWQgc2VuZChpbiBET01TdHJpbmcgZGF0
YSkKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworI2Vsc2UKICAgICAgICAgW0N1
c3RvbV0gdm9pZCBzZW5kKGluIERvY3VtZW50IGRhdGEpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyNlbmRpZgogCiAgICAgICAgIHZvaWQgYWJvcnQoKTsKIApJbmRleDogV2Vi
Q29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQ
YXRoRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3JlL3htbC9YUGF0aEV4
Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VB
R0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmlu
ZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNv
bXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7
CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHJl
dmlzaW9uIDM2NDAzKQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZv
cm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBACiAgICAgICAgIFtEb05v
dENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9pZCBwb3N0TWVzc2FnZShpbiBET01TdHJp
bmcgbWVzc2FnZSwgaW4gRE9NU3RyaW5nIHRhcmdldE9yaWdpbikKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KQogICAgICAgICAvLyBHbG9iYWwgY29uc3RydWN0b3JzCiAgICAgICAgIGF0dHJpYnV0ZSBTdHls
ZVNoZWV0Q29uc3RydWN0b3IgU3R5bGVTaGVldDsKICAgICAgICAgYXR0cmlidXRlIENTU1N0eWxl
U2hlZXRDb25zdHJ1Y3RvciBDU1NTdHlsZVNoZWV0OwpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVNl
bGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJ
KHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAKICAgICAgICAgdm9pZCByZW1vdmVBbGxSYW5nZXMo
KTsKICAgICAgICAgdm9pZCBhZGRSYW5nZShpbiBSYW5nZSByYW5nZSk7CiAKLSNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8
fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5n
IHRvU3RyaW5nKCk7CiAjZW5kaWYKICAgICB9OwpJbmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIENoYW5nZUxvZwkocmV2aXNpb24gMzY0MDMpCisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOC0wOS0xMiAgbGtjbCAgPGxrY2xAbGtjbC5uZXQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbTogYWRkIEdkb20qLmggZ2xpYiBET00gYmluZGluZ3MgaGVhZGVyIGZpbGVzLAorICAg
ICAgICAKKyAgICAgICAgQWxzbyBhZGRlZCBnZG9tZW51bXR5cGVzLmNwcCxoIHdoaWNoIHByZXNl
bnRseSBkbyBub3QKKyAgICAgICAgYWN0dWFsbHkgY29udGFpbiBhbnl0aGluZywgYmVjYXVzZSB0
aGVyZSBhcmUgbm8gZW51bXMKKyAgICAgICAgaW4gdGhlIGdsaWIgYmluZGluZ3MgLSB5ZXQuCisK
IDIwMDgtMDktMDQgIE1hcmNvIEJhcmlzaW9uZSAgPG1hcmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEu
Y28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJLaXRU
b29scy9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9HTlVtYWtlZmls
ZS5hbQkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQkod29y
a2luZyBjb3B5KQpAQCAtNiw2ICs2LDggQEAKIFByb2dyYW1zX0d0a0xhdW5jaGVyX0NQUEZMQUdT
ID0gXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktp
dC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKKwktSSQodG9wX2J1aWxk
ZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKIAkkKGphdmFz
Y3JpcHRjb3JlX2NwcGZsYWdzKQogCkBAIC0yOCw2ICszMCw4IEBACiAJLUkkKHNyY2RpcikvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwK
IAktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3Rr
L3dlYmtpdCBcCisJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQgXAogCSQoZ2xv
YmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykKIApJbmRleDogV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gMzY0MDMpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTYsNiArNiwxOCBAQAogICAgICAgICAod2FpdFVudGlsRG9uZVdhdGNoZG9nRmlyZWQpOgog
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9PYmpDUGx1Z2luLm06CiAKKzIwMDgtMDktMTIg
IGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IGFkZGVkIC1JIGluY2x1ZGVzIHRvIGd0
ayB3ZWJraXQgc3ViZGlyZWN0b3JpZXMKKworICAgICAgICBHZG9tIGdsaWIgRE9NIGJpbmRpbmdz
IGhhdmUgdGhlaXIgaGVhZGVyIGZpbGVzIGNvbnRhaW5pbmcKKyAgICAgICAgI2luY2x1ZGUgImdk
b20qIiB3aGVyZSAjaW5jbHVkZSA8d2Via2l0L2dkb20qPiBpcyBub3QKKyAgICAgICAgcG9zc2li
bGUsIGFzIHRoZSBnZG9tKiBzb3VyY2UgYW5kIGhlYWRlciBmaWxlcyBhcmUgYXV0by1nZW5lcmF0
ZWQKKyAgICAgICAgaW50byBEZXJpdmVkU291cmNlcy8gbm90IERlcml2ZWRTb3VyY2VzL3dlYmtp
dCwgZm9sbG93aW5nIHRoZQorICAgICAgICBleGFtcGxlIG9mIHRoZSBKUyBEZXJpdmVkIFNvdXJj
ZXMuCisKIDIwMDgtMDktMDggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23436</attachid>
            <date>2008-09-15 06:34:08 -0700</date>
            <delta_ts>2008-09-15 07:36:23 -0700</delta_ts>
            <desc>more review fixing</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>246338</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNjQwMykKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtODUsNyArODYsOCBAQAogIyBDb252ZW5pZW5jZSBsaWJyYXJpZXMKIG5vaW5zdF9MVExJQlJB
UklFUyA9IFwKIAlsaWJKYXZhU2NyaXB0Q29yZS5sYSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYldl
YkNvcmUubGEgXAorCWxpYmdkb20ubGEKIAogIwogIyBKYXZhU2NyaXB0Q29yZQpAQCAtMTAxLDcg
KzEwMyw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMg
XAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3d0ZiBcCiAJLUkkKHNyY2RpcikvSmF2YVNj
cmlwdENvcmUva2pzIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCS1JJCh0
b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3Jl
L2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1
ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5
b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTIxOCw2ICsyMjEsNTMgQEAKIAkkKEpQRUdfTElCUykgXAog
CS1scHRocmVhZAogCisjIGxpYmdkb20KK2xpYmdkb21fYnVpbHRfc291cmNlcyA6PQorbGliZ2Rv
bV9zb3VyY2VzIDo9CitsaWJnZG9tX2hfYXBpIDo9CitsaWJnZG9tX2NwcGZsYWdzIDo9CitsaWJn
ZG9tX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0LTEuMC9nZG9tCitsaWJnZG9tX2xh
X0hFQURFUlMgPSBcCisgICAgICAgICQobGliZ2RvbV9oX2FwaSkgXAorCQkkKHNyY2RpcikvV2Vi
S2l0L2d0ay9nZG9tL2dkb20uaCAKKworbGliZ2RvbV9jcHBmbGFncyArPSBcCisJJChnbG9iYWxf
Y3BwZmxhZ3MpIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQodG9wX2J1aWxkZGly
KS9XZWJLaXQvZ3RrIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ2RvbSBcCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMKKworbGliZ2RvbV9sYV9TT1VSQ0VTID0gXAorCSQo
bGliZ2RvbV9zb3VyY2VzKSAKKworbm9kaXN0X2xpYmdkb21fbGFfU09VUkNFUyA9IFwKKwkkKGxp
Ymdkb21fYnVpbHRfc291cmNlcykgCisKK2xpYmdkb21fbGFfQ1BQRkxBR1MgPSBcCisJJChnbG9i
YWxfY3BwZmxhZ3MpIFwKKwkkKHdlYmNvcmVfY3BwZmxhZ3MpIFwKKwkkKEdMT0JBTERFUFNfQ0ZM
QUdTKSBcCisJJChXRUJLSVRERVBTX0NGTEFHUykgXAorCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxh
Z3MpIFwKKwkkKGxpYmdkb21fY3BwZmxhZ3MpIAorCitsaWJnZG9tX2xhX0xJQkFERCA9IFwKKwls
aWJXZWJDb3JlLmxhIFwKKwkkKEdMT0JBTERFUFNfTElCUykgXAorCSQoV0VCS0lUREVQU19MSUJT
KSBcCisJJChYVF9MSUJTKSBcCisJJChMSUJDVVJMX0xJQlMpIFwKKwkkKExJQlNPVVBfTElCUykg
XAorCSQoRlJFRVRZUEVfTElCUykgXAorCSQoVU5JQ09ERV9MSUJTKSBcCisJJChTUUxJVEUzX0xJ
QlMpIFwKKwkkKEdTVFJFQU1FUl9MSUJTKSBcCisJJChMSUJYU0xUX0xJQlMpIFwKKwkkKEhJTERP
Tl9MSUJTKSBcCisJJChKUEVHX0xJQlMpIFwKKwktbHB0aHJlYWQKKwogIyBXZWJLaXQKIHdlYmtp
dGd0a19oX2FwaSA6PQogd2Via2l0Z3RrX3NvdXJjZXMgOj0KQEAgLTIzMiw4ICsyODIsMTUgQEAK
IGxpYndlYmtpdF8xXzBfbGFkaXIgPSAkKHByZWZpeCkvaW5jbHVkZS93ZWJraXQtMS4wL3dlYmtp
dAogbGlid2Via2l0XzFfMF9sYV9IRUFERVJTID0gXAogCSQod2Via2l0Z3RrX2hfYXBpKSBcCisJ
JChsaWJnZG9tX2hfYXBpKSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmgK
IAorIyBjb21tZW50IHRoZXNlIG91dCBmb3Igbm93LCBzZWUgd2hhdCBoYXBwZW5zCisjCSQobGli
Z2RvbV9oX2FwaSkgCisjCVdlYktpdC9ndGsvd2Via2l0L2dkb20uaCAKKyNXZWJLaXQvZ3RrL3dl
YmtpdC9nZG9tZW51bXR5cGVzLmgKKyNXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5oCisK
IGxpYndlYmtpdF8xXzBfbGFfU09VUkNFUyA9IFwKIAkkKHdlYmtpdGd0a19zb3VyY2VzKQogCkBA
IC0yNTQsNyArMzExLDcgQEAKIAkkKG5vX3VuZGVmaW5lZCkKIAogbGlid2Via2l0XzFfMF9sYV9M
SUJBREQgPSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYmdkb20ubGEgCiAKICMKICMgRXh0cmEgY2hl
Y2tzIGFuZCBmbGFncwpAQCAtMzA1LDYgKzM2MiwxNzcgQEAKIHdlYmNvcmVfbGliYWRkICs9IC1s
Z3N0aW50ZXJmYWNlcy0wLjEwIC1sZ3N0dmlkZW8tMC4xMAogZW5kaWYKIAorCitXZWJLaXQvZ3Rr
L2dkb20vZ2RvbS5oOgorIyBUT0RPOiBhdXRvLWdlbmVyYXRlIHRoaXMgZmlsZQorCisjJChzcmNk
aXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHA6
IFwKKyMJCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21FdmVu
dFRhcmdldE5vZGUuaAorCisKK2xpYmdkb21faF9hcGkgKz0gXAorCSQoc3JjZGlyKS9XZWJLaXQv
Z3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oXAorCSQoc3JjZGlyKS9XZWJLaXQvZ3RrL2dk
b20vR2RvbURPTU9iamVjdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQXR0ci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUJhckluZm8uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNHcmFkaWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1BhdHRlcm4uaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DYW52YXNQaXhlbEFycmF5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q0RBVEFTZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2hhcmFjdGVyRGF0YS5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNsaXBib2FyZC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNvbW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db25zb2xlLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ291bnRlci5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNTU0NoYXJzZXRSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTRm9u
dEZhY2VSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU01lZGlhUnVsZS5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNTU1BhZ2VSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUHJp
bWl0aXZlVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxlLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NT
U3R5bGVSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVTaGVldC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ1NTVmFsdWVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFi
bGVzRGVjbGFyYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNS
dWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRGF0YWJhc2UuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21Eb2N1bWVudEZyYWdtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRG9jdW1lbnRUeXBlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NQXBwbGljYXRp
b25DYWNoZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUNvcmVFeGNlcHRpb24uaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01JbXBsZW1lbnRhdGlvbi5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbURPTVBhcnNlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURP
TVNlbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVdpbmRvdy5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21FbnRpdHkuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZS5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSGlzdG9yeS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBbmNob3JFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MQmFzZUZvbnRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJsb2Nr
cXVvdGVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJSRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
Q29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MRExpc3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTERvY3VtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxGb250RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxGb3JtRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFt
ZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxI
dG1sRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MTGFiZWxFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExlZ2VuZEVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
TWFycXVlZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVudUVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MTW9kRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxPYmplY3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TE9MaXN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRHcm91cEVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxQcmVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTY3JpcHRFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MVGFibGVDZWxsRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJs
ZUNvbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MVUxpc3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRhLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUtleWJvYXJkRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21Mb2NhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhTGlzdC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU1pbWVUeXBlQXJyYXkuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1l
VHlwZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1vdXNlRXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21NdXRhdGlvbkV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTmFtZWROb2RlTWFwLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTmF2aWdhdG9yLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUZpbHRlci5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5vZGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlSXRlcmF0b3Iu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlTGlzdC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5vdGF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tT3ZlcmZsb3dF
dmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbkFycmF5LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tUGx1Z2luLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJvZ3Jlc3NF
dmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmFuZ2UuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21S
ZWN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU2NyZWVuLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1FMRXJyb3IuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1
bHRTZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
dG9yYWdlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXRMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tVGV4dEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dE1ldHJpY3Mu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tVHJlZVdhbGtlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVVJRXZlbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tV2hlZWxFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVl
c3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTFNlcmlhbGl6ZXIuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQ
YXRoRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFeHByZXNzaW9u
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhOU1Jlc29sdmVyLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhSZXN1bHQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21YU0xUUHJvY2Vzc29yLmgKKwogd2Via2l0Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXQuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKQEAg
LTMxNiwxMiArNTQ0LDE3IEBACiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
aCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCiAKKyMgV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtfYnVpbHRfc291cmNlcyArPSBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
d2Via2l0bWFyc2hhbC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuaCBcCiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmgKIAorIwlEZXJpdmVkU291cmNlcy9n
ZG9tZW51bXR5cGVzLmNwcCAKKyMJV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisK
IHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmggXApAQCAtMzQ1LDE0ICs1NzgsMTcgQEAKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNw
cCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwIFwKLQlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJldmVudC5jcHAgIAogCiB3
ZWJraXRndGtfY3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJTkdfV0VCS0lUIFwKIAktSSQoc3JjZGly
KS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0IFwK
IAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCi0JLUkkKHRvcF9idWlsZGRpcikvV2Vi
S2l0L2d0ay93ZWJraXQKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJ
LUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0a1wKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVk
U291cmNlcwogCiB3ZWJraXRndGtfY2xlYW5maWxlcyArPSBcCiAJJCh0b3BfYnVpbGRkaXIpL1By
b2dyYW1zL0d0a0xhdW5jaGVyIFwKQEAgLTM2Nyw2ICs2MDMsOSBAQAogCXN0YW1wLXdlYmtpdGVu
dW10eXBlcy5jcHAgXAogCXN0YW1wLXdlYmtpdGVudW10eXBlcy5oCiAKKyMJc3RhbXAtZ2RvbWVu
dW10eXBlcy5jcHAgCisjCXN0YW1wLWdkb21lbnVtdHlwZXMuaCAKKwogV0VCS0lUX01BUlNIQUwg
PSAkKEdFTlNPVVJDRVMpL3dlYmtpdG1hcnNoYWwKIFdFQktJVF9NQVJTSEFMX0xJU1QgPSAkKFdF
QktJVF9NQVJTSEFMKS5saXN0CiAKQEAgLTQ0Myw2ICs2ODIsNTQgQEAKIAkmJiBjcCB4Z2VuLWd0
YyAkQCBcCiAJJiYgcm0gLWYgeGdlbi1ndGMKIAorV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10
eXBlcy5oOiBzdGFtcC1nZG9tZW51bXR5cGVzLmgKKwlAdHJ1ZQorc3RhbXAtZ2RvbWVudW10eXBl
cy5oOiAkKGxpYmdkb21faF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYg
Z2xpYi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpZm5kZWYgR0RPTV9FTlVNX1RZUEVTX0hcbiIg
XAorCQkJLS1maGVhZCAiI2RlZmluZSBHRE9NX0VOVU1fVFlQRVNfSFxuXG4iIFwKKwkJCS0tZmhl
YWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuXG4iIFwKKwkJCS0tZmhlYWQgIkdfQkVHSU5f
REVDTFNcblxuIiBcCisJCQktLWZ0YWlsICJHX0VORF9ERUNMU1xuXG4iIFwKKwkJCS0tZnRhaWwg
IiNlbmRpZlxuIiBcCisJCQktLWZwcm9kICIjaW5jbHVkZSA8QGZpbGVuYW1lQD5cblxuIiBcCisJ
CQktLWVwcm9kICIjZGVmaW5lIEdET01fVFlQRV9ARU5VTVNIT1JUQCBAZW51bV9uYW1lQF9nZXRf
dHlwZSgpXG5cbiIgXAorCQkJLS1lcHJvZCAiV0VCS0lUX0FQSSBHVHlwZVxuQGVudW1fbmFtZUBf
Z2V0X3R5cGUodm9pZCk7XG5cbiIgXAorCQkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJCXNlZCAn
cyxXZWJLaXQvZ3RrLywsJyB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIHwgXAorCQlzZWQg
J3MsR0RPTV9UWVBFX0tJVCxHRE9NX1RZUEUsJyBcCisJCSkgPiB4Z2VuLWNndGggXAorCSYmIChj
bXAgLXMgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCB8fCBjcCB4
Z2VuLWNndGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oKSBcCisJJiYgcm0gLWYg
eGdlbi1jZ3RoIFwKKwkmJiBlY2hvIHRpbWVzdGFtcCA+ICQoQEYpCisKKyMgICAgICAgICAgICAg
IC0tZmhlYWQgIiNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD5cblxuIiAKKworRGVyaXZl
ZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5jcHA6ICQobGliZ2RvbV9oX2FwaSkgR05VbWFrZWZpbGUK
KwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVhZCAiI2luY2x1
ZGUgPGNvbmZpZy5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5c
biIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgXCIkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93
ZWJraXQvZ2RvbWVudW10eXBlcy5oXCJcblxuIiBcCisJCQktLWZoZWFkICJleHRlcm4gXCJDXCIg
e1xuXG4iIFwKKwkJCS0tZnByb2QgIlxuLyogZW51bWVyYXRpb25zIGZyb20gXCJAZmlsZW5hbWVA
XCIgKi8iIFwKKwkJCS0tdmhlYWQgInN0YXRpYyBjb25zdCBHQFR5cGVAVmFsdWUgX0BlbnVtX25h
bWVAX3ZhbHVlc1tdID0geyIgXAorCQkJLS12cHJvZCAiICAgIHsgQFZBTFVFTkFNRUAsIFwiQFZB
TFVFTkFNRUBcIiwgXCJAdmFsdWVuaWNrQFwiIH0sIiBcCisJCQktLXZ0YWlsICIgICAgeyAwLCBO
VUxMLCBOVUxMIH1cbn07XG5cbiIgXAorCQkJLS12dGFpbCAiR1R5cGUgQGVudW1fbmFtZUBfZ2V0
X3R5cGUodm9pZClcbntcbiIgXAorCQkJLS12dGFpbCAiICAgIHN0YXRpYyBHVHlwZSB0eXBlID0g
MDtcblxuIiBcCisJCQktLXZ0YWlsICIgICAgaWYgKCF0eXBlKVxuIiBcCisJCQktLXZ0YWlsICIg
ICAgICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMoXCJARW51bU5hbWVAXCIsIF9A
ZW51bV9uYW1lQF92YWx1ZXMpO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAgICByZXR1cm4gdHlwZTtc
bn1cblxuIiBcCisJCQktLWZ0YWlsICJ9XG4iIFwKKwkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJ
c2VkICdzLHdlYl9raXQsZ2RvbSwnIFwKKwkJKSA+IHhnZW4tY2d0YyBcCisJJiYgY3AgeGdlbi1j
Z3RjICRAIFwKKwkmJiBybSAtZiB4Z2VuLWNndGMKKwogIyBFTkQgV0VCS0lUIEdUSysKICMKICMg
RmlsZXMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkCkBAIC00NjUsNiArNzUyLDggQEAKIEJVSUxU
X1NPVVJDRVMgPSBcCiAJJChqYXZhc2NyaXB0Y29yZV9idWlsdF9zb3VyY2VzKSBcCiAJJChqYXZh
c2NyaXB0Y29yZV9idWlsdF9ub3NvdXJjZXMpIFwKKwkkKGxpYmdkb21fYnVpbHRfc291cmNlcykg
XAorCSQobGliZ2RvbV9idWlsdF9ub3NvdXJjZXMpIFwKIAkkKHdlYmNvcmVfYnVpbHRfc291cmNl
cykgXAogCSQod2ViY29yZV9idWlsdF9ub3NvdXJjZXMpIFwKIAkkKHdlYmtpdGd0a19idWlsdF9z
b3VyY2VzKSBcCkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE2
LDYgKzIxNiw4IEBACiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0VzdGlt
YXRlQ2hhbmdlZE5vdGlmaWNhdGlvbigpCiB7CisgICAgaWYgKCFtX2ZyYW1lKSAvKiBidWcjMjA0
MDMgLSBoYWNrISBzaG91bGRuJ3QgYmUgaGVyZSEgIHdlJ3ZlIGJlZW4gZGVsZXRlZCEgKi8KKyAg
ICAgICAgcmV0dXJuOwogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZy
YW1lKG1fZnJhbWUpOwogICAgIFBhZ2UqIGNvcmVQYWdlID0gY29yZSh3ZWJWaWV3KTsKIApJbmRl
eDogV2ViS2l0L2d0ay9HRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9HRE9N
T2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL0dET01PYmplY3QuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfX0dET01PYmplY3RfaF9fCisjZGVmaW5l
IF9fR0RPTU9iamVjdF9oX18KKworLy8gbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHRE9N
T2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5HRE9NT2JqZWN0KCkge30KKyAgICB2aXJ0
dWFsIGludCBnZXRfZ29ial90eXBlKCkgPSAwOworfTsKKworLy8gfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJl
dmlzaW9uIDM2NDAzKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDEzIEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqIENvcHlyaWdo
dCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAy
MDA3IEFwcGxlIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNo
cmlzdGlhbkBpbWVuZGlvLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKgorICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCiAgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKQEAgLTQyLDYgKzQ0LDIwIEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4
dC5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bVhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgImdk
b20vUHJpdmF0ZUludEdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0
ZUdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21Eb2N1
bWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgorI2lu
Y2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHREb2N1bWVudC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbURPTVdpbmRvdy5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21E
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVHZG9tRE9NV2luZG93LmgiCiAKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAKQEAgLTQ5LDYgKzY1LDEyIEBACiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oRE9NV2luZG93KiBkb2MpOworICAgIGdw
b2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oWE1MSHR0
cFJlcXVlc3QqIG9iaik7Cit9CisKIGV4dGVybiAiQyIgewogCiBlbnVtIHsKQEAgLTU3LDYgKzc5
LDcgQEAKICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAgICBIT1ZFUklOR19P
VkVSX0xJTkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAt
MTYyLDYgKzE4NSwxNyBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAgICAg
ICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtpdF93ZWJfZnJhbWVf
c2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisg
ICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChH
U2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVEKSwKKyAgICAgICAgICAgIDAs
CisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtp
dF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICAgICAgR19UWVBFX05PTkUs
IDIsCisgICAgICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKwogICAg
IC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAqLwpA
QCAtMjk0LDYgKzMyOCw5MiBAQAogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ht
bF9odHRwX3JlcXVlc3Q6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0
dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYW4gWE1MSHR0cFJlcXVlc3QKKyAqCisgKiBSZXR1
cm4gdmFsdWU6IGEgR2RvbVhNTEh0dHBSZXF1ZXN0CisgKi8KK0dkb21YTUxIdHRwUmVxdWVzdCog
d2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdChXZWJLaXRXZWJGcmFtZSogZnJh
bWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFt
ZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+
cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQo
Y29yZUZyYW1lKTsKKyAgICByZXR1cm4gR0RPTV9YTUxfSFRUUF9SRVFVRVNUKFdlYkNvcmU6OnRv
R0RPTShYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkuZ2V0KCkp
KTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93OgorICogQGZy
YW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJv
dW5kIGEgRE9NV2luZG93CisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21ET01XaW5kb3cKKyAq
LworR2RvbURPTVdpbmRvdyogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyhXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHBy
aXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsK
KyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luID0g
Y29yZUZyYW1lLT5kb21XaW5kb3coKTsKKyAgICByZXR1cm4gR0RPTV9ET01fV0lORE9XKFdlYkNv
cmU6OnRvR0RPTSh3aW4uZ2V0KCkpKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9kb21fZG9jdW1lbnQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0
dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYSBEb2N1bWVudCAKKyAqCisgKiBSZXR1cm4gdmFs
dWU6IGEgR2RvbURvY3VtZW50CisgKi8KK0dkb21Eb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9n
ZXRfZG9tX2RvY3VtZW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dl
YktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNv
cmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIHJldHVy
biBHRE9NX0RPQ1VNRU5UKFdlYkNvcmU6OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50KCkpKTsK
K30KKworLyogWFhYIFRPRE86IG1ha2UgdGhpcyBub3QgdGFrZSBmcmFtZSogYXMgYW4gYXJndW1l
bnQsCisgKiBhbmQgbWFrZSBpdCByZXR1cm4gYSBHZG9tRXZlbnRMaXN0ZW5lciBjbGFzcyAqLwor
ZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJIGdib29sZWFuCithZGRfd2luZG93X2V2ZW50X2xpc3Rl
bmVyKFdlYktpdFdlYkZyYW1lKiB3ZiwgRnJhbWUgKmZyYW1lLCBjb25zdCBjaGFyICpuYW1lKTsK
K30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoKKyAqIEBm
cmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRv
IHRoZSBmcmFtZSdzIGRvY3VtZW50CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBvZiBA
ZnJhbWUKKyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGV2ZW50X3R5cGUpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEZBTFNFKTsKKworICAgIC8vV2Vi
S2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisKKyAgICByZXR1
cm4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihmcmFtZSwgY29yZUZyYW1lLCBldmVudF90eXBl
KTsKK30KKworLyoqCiAgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lOgogICogQGZyYW1lOiBh
ICNXZWJLaXRXZWJGcmFtZQogICoKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVu
ZXJOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5v
ZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2Rl
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVm
IEpTX0RPTV9FVkVOVF9MSVNURU5FUl9OT0RFX0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5UX0xJU1RF
TkVSX05PREVfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRk
ZWZpbmVzLmg+CisKKworI2luY2x1ZGUgImdkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisv
KiBUT0RPOiByZXR1cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCBy
ZXF1aXJlcworICogYSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RP
OiBwcm92aWRlIGEgJ3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGli
CisgKiBvYmplY3QgYXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQor
Z2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBjb25z
dCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNh
cHR1cmUpOworfQorCisjZW5kaWYgLypKU19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9IICovCklu
ZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDM2NDAzKQorKysgV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRo
ZXIKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDkgQEAKIAogI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmty
ZXF1ZXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxIdHRwUmVxdWVzdC5oPgog
CiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYxLDYgKzY1LDE1IEBACiBXRUJLSVRfQVBJIFdlYktpdFdl
YkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIEdkb21YTUxIdHRwUmVxdWVzdCAq
Cit3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJG
cmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21ET01XaW5kb3cgKgord2Via2l0
X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZy
YW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRG9jdW1lbnQgKgord2Via2l0X3dlYl9mcmFtZV9nZXRf
ZG9tX2RvY3VtZW50ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCiBXRUJL
SVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcgICAg
ICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKQEAgLTkzLDYgKzEwNiwxMCBAQAog
V0VCS0lUX0FQSSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2dsb2Jh
bF9jb250ZXh0IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFt
ZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIgICAgICAgICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKSW5kZXg6IFdlYktp
dC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQv
Z3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5E
T1dfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfV0lORE9XX0gKKworI2luY2x1ZGUg
PGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKK2V4dGVybiAi
QyIgeworLyogVE9ETzogbWFrZSBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0byBiZSByZXR1
cm5lZCBoZXJlICovCit9CisKKyNlbmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1df
SCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0
ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1
ZGUgIlN0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRN
TERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUg
Ik5vZGUuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRXZl
bnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJOb2RlLmgiCisjaW5j
bHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5j
bHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21FdmVudC5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL1By
aXZhdGVHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVk
ZSAiZ2RvbS9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisKKworI2luY2x1ZGUgPGdsaWIt
b2JqZWN0Lmg+CisKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnQqIGRvYyk7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKEV2ZW50VGFyZ2V0Tm9kZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBS
ZXF1ZXN0KiBub2RlKTsKK30KKworCitjbGFzcyBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIg
OiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyPiBjcmVhdGUoR2RvbVhNTEh0dHBSZXF1ZXN0KiB3
ZikKKyAgICB7IHJldHVybiBhZG9wdFJlZihuZXcgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVy
KHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIHVzZUNh
cHR1cmUpOworCisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFyICpldnR5cGUpIHsgbV90eXBl
ID0gZ19zdHJkdXAoZXZ0eXBlKTsgfQorICAgIHByaXZhdGU6CisgICAgY2hhciAqbV90eXBlOwor
ICAgIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVlc3QqIHdmKQor
ICAgICAgICAgICA6IG1fd2Yod2YpCisgICAgICAgICAgICwgbV90eXBlKE5VTEwpCisgICAge30K
KyAgICB+WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlmICht
X3R5cGUpCisgICAgICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgR2RvbVhNTEh0
dHBSZXF1ZXN0KiBtX3dmOworfTsKKwordm9pZCBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6
OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCB1c2VDYXB0dXJlKQoreworICAgIGdib29s
ZWFuIHJldHZhbDsKKyAgICBjaGFyICpldm5hbWUgPSBnX3N0cmR1cF9wcmludGYoImJyb3dzZXIt
ZXZlbnQ6OiVzIiwgbV90eXBlKTsKKyAgICAvKiBUT0RPOiBzZWUgSlNFdmVudExpc3RlbmVyLmNw
cCdzIGhhbmRsZUV2ZW50IC0gc29tZSB3ZWlyZCBzdHVmZi4uLiAqLworICAgIC8vcHJpbnRmKCJY
TUxIdHRwUmVxdWVzdCBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6
dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwg
d2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30KKworY2xh
c3MgTm9kZUV2ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Tm9kZUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9tRXZlbnRU
YXJnZXROb2RlKiB3ZikKKyAgICB7IHJldHVybiBhZG9wdFJlZihuZXcgTm9kZUV2ZW50TGlzdGVu
ZXIod2YpKTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgdXNl
Q2FwdHVyZSk7CisKKyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5
cGUgPSBnX3N0cmR1cChldnR5cGUpOyB9Citwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsKKyAg
ICBOb2RlRXZlbnRMaXN0ZW5lcihHZG9tRXZlbnRUYXJnZXROb2RlKiB3ZikKKyAgICAgICAgICAg
IDogbV93Zih3ZikKKyAgICAgICAgICAgICwgbV90eXBlKE5VTEwpCisgICAge30KKyAgICB+Tm9k
ZUV2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAgICAgICAgICAg
IGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlKiBtX3dmOwor
fTsKKwordm9pZCBOb2RlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBi
b29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGNoYXIgKmV2bmFt
ZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5cGUpOworICAgIC8v
cHJpbnRmKCJub2RlIGhhbmRsZUV2ZW50ICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0
b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgZXZuYW1lLCB3
ZXYsIHVzZUNhcHR1cmUsICZyZXR2YWwpOworICAgIGdfZnJlZShldm5hbWUpOworfQorCitjbGFz
cyBXaW5kb3dFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVuZXI+IGNyZWF0ZShXZWJLaXRX
ZWJGcmFtZSogd2YpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdpbmRvd0V2
ZW50TGlzdGVuZXIod2YpKTsgCisgICAgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChF
dmVudCosIGJvb2wgaXNXaW5kb3dFdmVudCk7CisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFy
ICpldnR5cGUpIHsgbV90eXBlID0gZ19zdHJkdXAoZXZ0eXBlKTsgfQorcHJpdmF0ZToKKyAgICBj
aGFyICptX3R5cGU7CisgICAgV2luZG93RXZlbnRMaXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2Yp
CisgICAgICAgICAgIDogbV93Zih3ZikKKyAgICAgICAgICAgLCBtX3R5cGUoTlVMTCkKKyAgICB7
fQorICAgIH5XaW5kb3dFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUp
CisgICAgICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgV2ViS2l0V2ViRnJhbWUq
IG1fd2Y7Cit9OworCit2b2lkIFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50
KiBldmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQoreworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3Ry
ZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5cGUpOworICAgIGdib29sZWFuIHJl
dHZhbDsKKyAgICAvL3ByaW50Zigid2luZG93IGhhbmRsZUV2ZW50ICVzICVzXG4iLCBldm5hbWUs
CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LT50eXBlKCkuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYkNv
cmU6OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5h
bWUsIHdldiwgaXNXaW5kb3dFdmVudCwgJnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9
CisKK2V4dGVybiAiQyIgeworCitnYm9vbGVhbiBhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9s
aXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3QgKnJl
cSA9IGdkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRfcHJpdmF0ZSh3Zik7CisgICAgaWYgKCFuYW1l
KQorICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgaWYgKCFyZXEpCisgICAgICAgIHJldHVybiBG
QUxTRTsKKworICAgIGlmIChzdHJjbXAobmFtZSwgIm9ucmVhZHlzdGF0ZWNoYW5nZSIpID09IDAp
CisgICAgeworICAgICAgICBSZWZQdHI8WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyPiBsaXN0
ZW5lcjsKKyAgICAgICAgbGlzdGVuZXIgPSBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OmNy
ZWF0ZSh3Zik7CisgICAgICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICAgICAgcmVx
LT5zZXRPblJlYWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgIHJldHVy
biBUUlVFOworICAgIH0KKyAgICByZXR1cm4gRkFMU0U7Cit9IAorCitnYm9vbGVhbiBhZGRfZXZl
bnRfbGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBX
ZWJDb3JlOjpOb2RlICpub2RlID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh3
Zik7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc0V2ZW50VGFyZ2V0Tm9kZSgpKQorICAgICAg
ICByZXR1cm4gRkFMU0U7CisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogZXRuID0gKHN0
YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqPihub2RlKSktPnRvTm9kZSgpOwor
ICAgIGlmICghZXRuKQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBSZWZQdHI8Tm9kZUV2
ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gTm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7Cisg
ICAgbGlzdGVuZXItPnNldF90eXBlKG5hbWUpOworICAgIGV0bi0+YWRkRXZlbnRMaXN0ZW5lcihu
YW1lLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7CisKKyAgICByZXR1cm4gVFJVRTsKKworfSAKKwor
Z2Jvb2xlYW4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSAqd2YsIEZy
YW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciAqbmFtZSkKK3sKKyAgICBEb2N1bWVudCogZG9jID0gZnJhbWUtPmRvY3VtZW50KCk7CisKKyAg
ICBSZWZQdHI8V2luZG93RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBXaW5kb3dFdmVudExpc3Rl
bmVyOjpjcmVhdGUod2YpOworICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICBkb2Mt
PmFkZFdpbmRvd0V2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHRydWUpOworCisgICAgcmV0
dXJuIFRSVUU7CisKK30gCisKK30gLyogZXh0ZXJuIEMgKi8KClByb3BlcnR5IGNoYW5nZXMgb246
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46bWVyZ2VpbmZvCgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lclhNTEh0
dHBSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5l
clhNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVu
dExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisKKyNpZm5kZWYgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1hNTF9IVFRQX1JF
UVVFU1RfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfWE1MX0hUVFBfUkVRVUVTVF9I
CisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4K
KworCisjaW5jbHVkZSAiZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuaCIKKworLyogVE9ETzogcmV0
dXJuIHRoZSBhY3R1YWwgZXZlbnQgbGlzdGVuZXIgY3JlYXRlZCwgd2hpY2ggcmVxdWlyZXMKKyAq
IGEgZ2xpYiB3cmFwcGVyIG9iamVjdCB0byBiZSBjcmVhdGVkLgorICogVE9ETzogcHJvdmlkZSBh
ICdyZW1vdmVfZXZlbnRfbGlzdGVuZXInIHdoaWNoIHRha2VzIHRoYXQgZ2xpYgorICogb2JqZWN0
IGFzIGFuIGFyZ3VtZW50ICovCitleHRlcm4gIkMiIHsKK1dFQktJVF9BUEkKK2dib29sZWFuIGFk
ZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCAqd2Ys
CisgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKK30KKworI2VuZGlmIC8qSlNfRE9N
X0VWRU5UX0xJU1RFTkVSX1hNTF9IVFRQX1JFUVVFU1RfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGRlZmluZXMuaAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRkZWZpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDkgQEAKIAogR19CRUdJTl9E
RUNMUwogCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnQgV2ViS2l0RXZlbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0RXZlbnRDbGFzcyBXZWJLaXRFdmVudENsYXNzOworCiB0eXBlZGVmIHN0
cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3QgV2ViS2l0TmV0d29ya1JlcXVlc3Q7CiB0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzcyBXZWJLaXROZXR3b3JrUmVxdWVzdENs
YXNzOwogCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21FdmVudFRh
cmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlSW50R2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RP
TUV2ZW50VGFyZ2V0Tm9kZV9IX19fSU5UXworI2RlZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVf
SF9fX0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0
ZUludEdkb21Ob2RlLmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01FdmVudFRhcmdldE5v
ZGUgOiBwdWJsaWMgR0RPTU5vZGUgeworCitwdWJsaWM6CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9k
ZShQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGltcGwpIDogR0RPTU5vZGUoaW1wbCkge30KKyAg
ICBpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9E
RTsgfQorfTsKKworCitHX0VORF9ERUNMUworI2VuZGlmCisKClByb3BlcnR5IGNoYW5nZXMgb246
IFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjptZXJnZWluZm8KCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0
aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJ
bmMuCisgKi8KKworI2lmbmRlZiBfX0dkb21ET01PYmplY3RfSF9fCisjZGVmaW5lIF9fR2RvbURP
TU9iamVjdF9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21E
T01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xh
c3MgR2RvbURPTU9iamVjdENsYXNzOworCisjZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAg
ICAgICAgICAgKGdkb21fZG9tX29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0RPTV9P
QkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3QpKQorI2RlZmluZSBHRE9NX0RPTV9P
QkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykpCisjZGVmaW5lIEdET01f
SVNfRE9NX09CSkVDVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChv
YmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVF9D
TEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVf
RE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2Rv
bURPTU9iamVjdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRl
IEdkb21ET01PYmplY3RQcml2YXRlOworCitzdHJ1Y3QgX0dkb21ET01PYmplY3QgeworICAgIEdP
YmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAgR2RvbURPTU9iamVjdFByaXZhdGUgKnByaXY7
Cit9OworCitzdHJ1Y3QgX0dkb21ET01PYmplY3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBh
cmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21fZG9tX29iamVjdF9nZXRf
dHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X2luaXRfZG9t
X29iamVjdCAoR2RvbURPTU9iamVjdCAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAv
KiBfX0dkb21ET01PYmplY3RfSF9fICovCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9n
dGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1lcmdlaW5mbwoK
SW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0
ay9nZG9tL0dTdHJpbmdDb252ZXJ0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKy8q
CisgKiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqLworCisKKyNpZm5kZWYgX19HU3RyaW5nQ29udmVydF9IXworI2Rl
ZmluZSBfX0dTdHJpbmdDb252ZXJ0X0hfCisKKy8qIGNvbnZlbmllbmNlIGMrKyBjbGFzcyBmb3Ig
Y29udmVydGluZyB2YXJpb3VzIGRpZmZlcmVudCB3ZWJraXQKKyAqIHN0cmluZyB0eXBlcyBpbnRv
IGEgdXRmOCBnbGliIHN0cmluZy4KKyAqLworCitleHRlcm4gIkMiIHsKK2NsYXNzIEdTdHJpbmdD
b252ZXJ0IHsKK3B1YmxpYzoKKyAgICBnY2hhciAqbV9zdHI7CisgICAgR1N0cmluZ0NvbnZlcnQo
V2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IG1fc3RyID0gZ19zdHJkdXAocy51dGY4KCkuZGF0
YSgpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OktVUkwgY29uc3QmIHMpIHsgbV9z
dHIgPSBnX3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9CisgICAgR1N0cmluZ0Nv
bnZlcnQoY29uc3QgSlNDOjpVU3RyaW5nICYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMuVVRGOFN0
cmluZygpLmNfc3RyKCkpOyB9CisgICAgR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3Ry
aW5nIGNvbnN0JnMpIHsgbV9zdHIgPSBnX3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OyB9Cit9OworCisjZGVmaW5lIF9HX0dFVF9VVEY4KHN0cikgKEdTdHJpbmdDb252ZXJ0KHN0ciku
bV9zdHIpCit9IC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qIF9fR1N0cmluZ0NvbnZlcnRf
SF8qLwpJbmRleDogV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2Rl
LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdl
dE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2lmbmRlZiBfX0dET01FdmVudFRhcmdl
dE5vZGVfSF9fX1BSSVZfCisjZGVmaW5lIF9fR0RPTUV2ZW50VGFyZ2V0Tm9kZV9IX19fUFJJVl8K
KyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUdkb21Ob2Rl
LmgiCitjbGFzcyBXZWJDb3JlOjpOb2RlOworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFy
Z2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOworCitXRUJLSVRfQVBJIFdlYkNvcmU6Ok5vZGUg
KgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZlbnRUYXJnZXROb2Rl
ICpyZXF1ZXN0KTsKKworI2VuZGlmCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9ndGsv
Z2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpt
ZXJnZWluZm8KCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3Qu
aAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlSW50R2RvbURPTU9iamVj
dC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3Qu
aApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkFkZGVkOiBzdm46bWVyZ2VpbmZvCgpJbmRleDogV2ViS2l0L2d0ay9nZG9t
L0dkb21FdmVudFRhcmdldE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL2dkb20vR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL0dkb21F
dmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wu
bmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpZm5kZWYgX19HZG9tRXZl
bnRUYXJnZXROb2RlX0hfXworI2RlZmluZSBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fCisjaW5j
bHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgor
CitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIEdk
b21FdmVudFRhcmdldE5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNs
YXNzIEdkb21FdmVudFRhcmdldE5vZGVDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRVZFTlRf
VEFSR0VUX05PREUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSgp
KQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwg
R2RvbUV2ZW50VGFyZ2V0Tm9kZSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfQ0xB
U1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBF
X0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorI2RlZmluZSBH
RE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RB
TkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkpCisjZGVmaW5lIEdE
T01fSVNfRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
VFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RP
TV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRf
Q0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdl
dE5vZGVDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0
ZSBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZTsKKworI2luY2x1ZGUgImdkb20vR2RvbU5vZGUu
aCIKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJlbnRf
aW5zdGFuY2U7CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307CisK
K3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNzIHBh
cmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21fZXZlbnRfdGFyZ2V0X25v
ZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0
X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeik7
CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBfX0dkb21FdmVudFRhcmdldE5vZGVfSF9fICov
CisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXRO
b2RlLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1lcmdlaW5mbwoKSW5kZXg6IFdlYktpdC9ndGsv
Z2RvbS9nZG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL2dkb20uaAkocmV2aXNp
b24gMCkKKysrIFdlYktpdC9ndGsvZ2RvbS9nZG9tLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTYwIEBACisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tRE9NT2JqZWN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQXR0ci5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUJhckluZm8uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DYW52YXNHcmFkaWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNhbnZhc1BhdHRlcm4uaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21DYW52YXNQaXhlbEFycmF5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ0RBVEFTZWN0aW9uLmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tQ2hhcmFjdGVyRGF0YS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNsaXBi
b2FyZC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNvbW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21Db25zb2xlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ291bnRlci5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUNTU0NoYXJzZXRSdWxlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTRm9udEZhY2VS
dWxlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUNTU01lZGlhUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1BhZ2VSdWxlLmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21DU1NSdWxlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTUnVsZUxpc3QuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
Q1NTU3R5bGVSdWxlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTU3R5bGVTaGVldC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUNTU1ZhbHVlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTVmFsdWVM
aXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21DU1NWYXJpYWJsZXNSdWxlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
RGF0YWJhc2UuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Eb2N1bWVudEZyYWdtZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Eb2N1bWVudFR5
cGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tRE9NQ29yZUV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTUlt
cGxlbWVudGF0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9NUGFyc2VyLmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tRE9NU2VsZWN0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9NV2luZG93
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUVu
dGl0eS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUVudGl0eVJlZmVyZW5jZS5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUV2ZW50RXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21GaWxlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRmlsZUxpc3Qu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IaXN0b3J5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRN
TEFuY2hvckVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQXBwbGV0RWxlbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxCYXNlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxCYXNlRm9udEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MQm9keUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21I
VE1MQlJFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxDb2xsZWN0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTERpcmVjdG9yeUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxETGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRG9j
dW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxFbWJlZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRmllbGRT
ZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRN
TEZyYW1lRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSFJFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSW1h
Z2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTElucHV0RWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUhUTUxMYWJlbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxMSUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MTGlua0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTWFwRWxlbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxNZW51RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxNZXRh
RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxNb2RFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTE9iamVjdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
T0xpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFBh
cmFncmFwaEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MUGFyYW1FbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFByZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21IVE1MUXVvdGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1l
bnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MU2VsZWN0RWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxTdHlsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUhUTUxUYWJsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
VGFibGVSb3dFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxVTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21JbWFnZURhdGEuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
S2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUxvY2F0aW9uLmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tTWVkaWFMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTWVzc2FnZUV2ZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTWltZVR5cGVBcnJheS5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbU1pbWVUeXBlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTW91c2VFdmVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbU11dGF0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21OYW1lZE5v
ZGVNYXAuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21OYXZpZ2F0b3IuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21Ob2RlRmlsdGVyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZS5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbU5vZGVJdGVyYXRvci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vZGVMaXN0Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm90YXRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21PdmVy
Zmxvd0V2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUGx1Z2luQXJyYXkuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21QbHVnaW4uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Qcm9ncmVzc0V2ZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tUmFuZ2VFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21SYW5nZS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbVJlY3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TY3JlZW4uaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21TUUxFcnJvci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVNRTFJl
c3VsdFNldC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21TUUxUcmFuc2FjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVN0
b3JhZ2VFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVN0b3JhZ2UuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21TdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU3R5bGVTaGVldExpc3Qu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21UZXh0RXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21U
ZXh0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVHJlZVdhbGtlci5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbVVJRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
V2hlZWxFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9u
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Y
TUxIdHRwUmVxdWVzdFVwbG9hZC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTFNlcmlhbGl6ZXIu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbVhQYXRoRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhFeHByZXNzaW9u
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhOU1Jlc29sdmVyLmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tWFBhdGhSZXN1bHQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YU0xUUHJvY2Vzc29yLmg+
CkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDIzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxw
IFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMu
CisgKi8KKworCisjaWZuZGVmIF9fR0RPTURPTU9iamVjdF9IX19fUFJJVl8KKyNkZWZpbmUgX19H
RE9NRE9NT2JqZWN0X0hfX19QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01PYmpl
Y3Q7CitXRUJLSVRfQVBJIEdET01PYmplY3QqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUo
R2RvbURPTU9iamVjdCAqcmVxdWVzdCk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fb2Jq
ZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QqIGl0ZW0p
OworCitHX0VORF9ERUNMUworI2VuZGlmCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9n
dGsvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptZXJn
ZWluZm8KCkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtNCw2ICs0LDQ4IEBACiAKICAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6CiAKKzIwMDgtMDktMTIgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKiB3ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0
L0V2ZW50TGlzdGVuZXJXaW5kb3cuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L0V2ZW50TGlz
dGVuZXJYTUxIdHRwUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvZ2RvbS5oOiBB
ZGRlZC4gIFRoaXMgZmlsZSBwdWxscyBpbiBhbGwgb2YgdGhlIGdkb20gZ2xpYiBoZWFkZXJzLiAg
aXQncyB0aGVyZSBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGJlIGxhenkgYW5kIG5vdCBoYXZlIHRv
ICNpbmNsdWRlIDMwMCBmaWxlcy4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZGVmaW5lcy5oOgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXRldmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoX1dlYktp
dEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X2ZpbmFsaXplKToKKyAgICAgICAgKF9XZWJLaXRF
dmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9jbGFzc19pbml0KToKKyAgICAgICAgKF9XZWJLaXRF
dmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9pbml0KToKKyAgICAgICAgKF9XZWJLaXRFdmVudFBy
aXZhdGU6OndlYmtpdF9ldmVudF9uZXcpOgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6
d2Via2l0X2V2ZW50X2dldF9ldmVudF90eXBlKToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZh
dGU6OndlYmtpdF9ldmVudF9jYW5jZWxfYnViYmxlKToKKyAgICAgICAgKF9XZWJLaXRFdmVudFBy
aXZhdGU6OndlYmtpdF9ldmVudF9wcmV2ZW50X2RlZmF1bHQpOgorICAgICAgICAoX1dlYktpdEV2
ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X3N0b3BfcHJvcGFnYXRpb24pOgorICAgICAgICAoWE1M
SHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpjcmVhdGUpOgorICAgICAgICAoWE1MSHR0cFJlcXVl
c3RFdmVudExpc3RlbmVyOjpzZXRfdHlwZSk6CisgICAgICAgIChYTUxIdHRwUmVxdWVzdEV2ZW50
TGlzdGVuZXI6OlhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChYTUxIdHRw
UmVxdWVzdEV2ZW50TGlzdGVuZXI6On5YTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIpOgorICAg
ICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAg
IChOb2RlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKE5vZGVFdmVudExpc3RlbmVy
OjpzZXRfdHlwZSk6CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6Tm9kZUV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6On5Ob2RlRXZlbnRMaXN0ZW5lcik6Cisg
ICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoV2luZG93
RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6OnNl
dF90eXBlKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6OldpbmRvd0V2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6fldpbmRvd0V2ZW50TGlzdGVuZXIp
OgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAo
YWRkX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIpOgorICAgICAgICAoYWRkX2V2ZW50
X2xpc3RlbmVyKToKKyAgICAgICAgKGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIpOgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXRldmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViZnJhbWUuY3BwOiBhZGRlZCBicm93c2VyLWV2ZW50LCBzdXBwb3J0IGZvciBYTUxIdHRwUmVx
dWVzdCwgZ2V0dGluZyBET00gV2luZG93LCBET00gRG9jdW1lbnQsIGFuZCBXaW5kb3cgZXZlbnQg
bGlzdGVuZXIuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6CisKIDIwMDgtMDkt
MTAgIEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1h
cmsgUm93ZS4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yLDEzICsyLDE5IEBACiBXZWJDb3JlIDo9ICQoc3Jj
ZGlyKS9XZWJDb3JlCiAKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUIDo9IExBTkdVQUdFX0pB
VkFTQ1JJUFQ9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gOj0gTEFOR1VBR0VfR09CSkVDVD0xCiBT
VkdfRkVBVFVSRVMgOj0KIEhUTUxfRkVBVFVSRVMgOj0KIAogV0VCQ09SRV9DU1NfUFJPUEVSVFlf
TkFNRVMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgogV0VCQ09SRV9DU1Nf
VkFMVUVfS0VZV09SRFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCits
aWJnZG9tX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20g
XAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisKIHdlYmNvcmVfY3BwZmxhZ3Mg
Kz0gXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUgXAog
CS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvanMgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUv
YnJpZGdlIFwKQEAgLTI3LDYgKzMzLDcgQEAKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3Jt
IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzIFwKIAktSSQoc3JjZGly
KS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMgXAorCS1JJChzcmNkaXIpL1dlYkNv
cmUvYmluZGluZ3MvZ2RvbSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9i
bXAgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmIFwK
QEAgLTU2LDcgKzYzLDcgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5s
dXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0QmFzZS5sdXQuaCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1dC5oIFwKLQlXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAKKwlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAgCiAKIHdlYmNvcmVfYnVpbHRfc291cmNl
cyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvQ1NTR3JhbW1hci5jcHAgXApAQCAtMzY3LDYgKzM3NCw1
OTIgQEAKIAlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1hN
TE5hbWVzLmgKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQXR0ci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DREFUQVNlY3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTQ2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NG
b250RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NGb250RmFjZVJ1
bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NT
TWVkaWFSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1BhZ2VSdWxlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21DU1NQcmltaXRpdmVWYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NS
dWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DU1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlRGVj
bGFyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZURlY2xhcmF0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21DU1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NT
U3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYWx1ZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1Zh
bHVlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNEZWNsYXJh
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ2FudmFzR3JhZGllbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFz
UGF0dGVybi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1BhdHRlcm4uaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1BpeGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DaGFy
YWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNsaXBib2FyZC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ29tbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db3VudGVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tRE9NQ29yZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01J
bXBsZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUltcGxlbWVu
dGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVBhcnNlci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21ET01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxl
Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NV2luZG93LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbURvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50RnJhZ21lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9j
dW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUVudGl0eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZp
bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUZpbGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmls
ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFuY2hvckVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxB
cmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQlJFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJSRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TEJhc2VGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNl
Rm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MQnV0dG9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENhbnZh
c0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENvbGxlY3Rpb24uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MRExpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTERMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxE
aXJlY3RvcnlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXZFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvbnRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGb3JtRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
RnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1l
U2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSFJFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TEhlYWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRp
bmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIdG1sRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
SW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbnB1dEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSW5wdXRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJc0luZGV4RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTExJRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGFiZWxFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxMaW5rRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWFwRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXBFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MTWVudUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1ldGFF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNb2RFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxPTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9iamVjdEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUGFy
YWdyYXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhZ3Jh
cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUGFyYW1FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTFF1b3RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxRdW90
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU2VsZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxTdHlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MU3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNh
cHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxVTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhpc3Rv
cnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IaXN0b3J5LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21KYXZhU2NyaXB0Q2FsbEZy
YW1lLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tS2V5Ym9hcmRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZXNz
YWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZXNzYWdlRXZlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21NaW1lVHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlw
ZUFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGVBcnJheS5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tTW91c2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NdXRh
dGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTXV0YXRpb25FdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYW1lZE5vZGVNYXAuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21OYW1lZE5vZGVNYXAuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTmF2aWdhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTmF2aWdhdG9yLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0ZXIuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU5vZGVJdGVyYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bU5vZGVJdGVyYXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5vdGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm90YXRp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbU92ZXJmbG93RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tUGx1Z2luLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUGx1Z2luLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbkFycmF5LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tUGx1Z2luQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2dyZXNz
RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Qcm9ncmVzc0V2ZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tUmFuZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmFuZ2VFeGNlcHRpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZUV4Y2VwdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21SZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
UmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TY3JlZW4uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TY3JlZW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5
bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldExpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21UZXh0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21UZXh0RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dE1ldHJpY3MuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0TWV0cmljcy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21UcmVlV2Fsa2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
VHJlZVdhbGtlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21VSUV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVUlFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
WE1MSHR0cFJlcXVlc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVl
c3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVz
dEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVz
dFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0VXBs
b2FkLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTFNlcmlhbGl6ZXIuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVhTTFRQcm9jZXNzb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
U0xUUHJvY2Vzc29yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21BdHRyLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUF0dHIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L1ByaXZhdGVHZG9tQmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
Q0RBVEFTZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNEQVRB
U2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1
bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1bGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU0ltcG9ydFJ1bGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUNTU01lZGlhUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1By
aW1pdGl2ZVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1By
aW1pdGl2ZVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NSdWxl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1J1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRl
R2RvbUNTU1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
Q1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTVmFs
dWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTVmFsdWUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNSdWxlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNhbnZhc0dyYWRpZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUNhbnZhc1BpeGVsQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tQ2hhcmFjdGVyRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21DbGlwYm9hcmQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ2xp
cGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Db21tZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNvbW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L1ByaXZhdGVHZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
Q291bnRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Db3VudGVyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbURPTUltcGxlbWVudGF0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21ET01QYXJzZXIuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21ET01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21E
T01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRE9NV2luZG93
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Eb2N1bWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21Eb2N1bWVudEZyYWdtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21Eb2N1bWVudFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUVudGl0eS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21FbnRpdHlSZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21FdmVudEV4Y2VwdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21FdmVudEV4Y2VwdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRmlsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21GaWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21GaWxlTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEFuY2hvckVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEFuY2hvckVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxBcHBsZXRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxBcHBsZXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MQXJlYUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUhUTUxDYW52YXNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tSFRNTERMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21IVE1MRExpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21I
VE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
SFRNTERpdkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxE
b2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MRG9jdW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MRW1iZWRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tSFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L1ByaXZhdGVHZG9tSFRNTEZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21IVE1MRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
SFRNTEhlYWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhU
TUxIZWFkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEhl
YWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxI
ZWFkaW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEh0
bWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxIdG1s
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTElGcmFtZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTElGcmFtZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxJbWFnZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEltYWdlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTElucHV0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSW5wdXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSXNJbmRleEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTElzSW5kZXhFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MTElFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTExlZ2VuZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21IVE1MTWFycXVlZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tSFRNTE1lbnVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21I
VE1MTWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRN
TE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MTW9k
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MTW9kRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE9MaXN0RWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MT0xpc3RFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MT2JqZWN0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MT2JqZWN0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MT3B0R3JvdXBFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MT3B0aW9uRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MT3B0aW9uRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxPcHRpb25zQ29sbGVj
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFBhcmFncmFwaEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFBhcmFncmFw
aEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxQYXJhbUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFBhcmFtRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFByZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFByZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxRdW90ZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGFibGVDZWxsRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGFibGVDb2xFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGFibGVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFRleHRB
cmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFRpdGxl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGl0bGVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxVTGlzdEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhpc3RvcnkuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSGlzdG9yeS5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
SmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUtl
eWJvYXJkRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUxvY2F0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUxvY2F0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21NZWRpYUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tTWVzc2FnZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21N
aW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21NaW1lVHlwZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tTWltZVR5cGVBcnJheS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbU11dGF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
TmFtZWROb2RlTWFwLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5hbWVk
Tm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tTmF2aWdhdG9yLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5hdmlnYXRvci5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21O
b2RlRmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5vZGVGaWx0
ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5vZGVJdGVyYXRvci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21Ob3RhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21O
b3RhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tT3ZlcmZsb3dFdmVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21PdmVyZmxvd0V2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21QbHVnaW4uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21QbHVnaW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Q
cm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21SYW5nZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21SYW5nZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tUmFuZ2VFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tUmVjdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tU2NyZWVuLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tU3R5bGVTaGVldC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21TdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21TdHlsZVNoZWV0TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tVGV4
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21UZXh0LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21UZXh0RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tVGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21UZXh0TWV0cmljcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21UZXh0TWV0cmljcy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tVHJlZVdh
bGtlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21UcmVlV2Fsa2VyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21VSUV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YU0xUUHJvY2Vzc29yLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbVhTTFRQcm9jZXNzb3IuaCAgXAorCVdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAorCVdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIAorCiBJRExfQklORElOR1Mg
Kz0gIFwKIAlXZWJDb3JlL2Nzcy9Db3VudGVyLmlkbCBcCiAJV2ViQ29yZS9jc3MvQ1NTQ2hhcnNl
dFJ1bGUuaWRsIFwKQEAgLTUxNyw2ICsxMTEwLDE4IEBACiAJV2ViQ29yZS94bWwvWE1MU2VyaWFs
aXplci5pZGwgXAogCVdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAKK2xpYmdkb21fc291
cmNlcyArPSBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcCBc
CisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmggXAorCVdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgKKwogd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2tqcy9BY3RpdmF0aW9uLmggXAogCVdlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMva2pzL0FyZ0xpc3QuaCBcCkBAIC0yMDQ3LDEwICsyNjUyLDE1IEBACiAj
IC0tLS0KIGlmIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQorRkVBVFVS
RV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCiAKIHdl
YmNvcmVfYnVpbHRfc291cmNlcyArPSBcCi0JRGVyaXZlZFNvdXJjZXMvSlNET01BcHBsaWNhdGlv
bkNhY2hlLmNwcAorCURlcml2ZWRTb3VyY2VzL0pTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgCiAK
K2xpYmdkb21fYnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9N
QXBwbGljYXRpb25DYWNoZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21E
T01BcHBsaWNhdGlvbkNhY2hlLmNwcAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsCiAKQEAgLTIwOTEsNiArMjcwMSw3
IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9EQVRBQkFTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX0RBVEFCQVNFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9E
QVRBQkFTRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
SlNEYXRhYmFzZS5jcHAgXApAQCAtMjEwNCw2ICsyNzE1LDI4IEBACiAJRGVyaXZlZFNvdXJjZXMv
SlNTUUxUcmFuc2FjdGlvbi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24u
aAogCitsaWJnZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bURhdGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRGF0YWJhc2UuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRT
ZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
UUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRGF0YWJh
c2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRGF0YWJhc2UuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNRTEVycm9yLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNRTEVycm9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tU1FMUmVzdWx0U2V0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21T
UUxSZXN1bHRTZXRSb3dMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bVNRTFJlc3VsdFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNR
TFRyYW5zYWN0aW9uLmgKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvRGF0
YWJhc2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaWRsIFwKQEAgLTIxNzYsNiAr
MjgwOSw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9ET01fU1RPUkFHRQogRkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9N
ICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJ
RGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmNwcCBcCkBAIC0yMTgzLDYgKzI4MTcsMTYgQEAKIAlE
ZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTU3Rv
cmFnZUV2ZW50LmgKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFn
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbVN0b3JhZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tU3RvcmFnZUV2
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVN0b3JhZ2VFdmVudC5o
CisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKIAlX
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbApAQCAtMjI0MSw2ICsyODg1LDcgQEAKICMg
LS0tLQogaWYgRU5BQkxFX1ZJREVPCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFC
TEVfVklERU89MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRN
TF9GRUFUVVJFUyArPSBFTkFCTEVfVklERU89MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJM
RV9WSURFTz0xCkBAIC0yMjYzLDggKzI5MDgsMzggQEAKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVS
YW5nZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvSlNWb2lkQ2FsbGJhY2suY3BwIFwKLQlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFj
ay5oCisJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suaCAKIAorbGliZ2RvbV9idWlsdF9z
b3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXVkaW9FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTE1lZGlhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxT
b3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxWaWRlb0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVmlkZW9FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21NZWRpYUVycm9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRpbWVS
YW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UaW1lUmFuZ2VzLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVZvaWRDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVZvaWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tSFRNTEF1ZGlvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21IVE1MQXVkaW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21I
VE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhU
TUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxT
b3VyY2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxT
b3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVmlk
ZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxWaWRl
b0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU1lZGlhRXJyb3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tTWVkaWFFcnJvci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tVGltZVJhbmdlcy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tVm9pZENhbGxiYWNrLmgKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2h0
bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGwgXAogCVdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmlkbCBcCkBAIC0yMzA3LDYgKzI5ODIsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfWFBBVEgKIEZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YUEFUSD0xCitGRUFUVVJFX0RFRklO
RVNfR0RPTSArPSBFTkFCTEVfWFBBVEg9MQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X1hQQVRIPTEKIApAQCAtMjMyMiw4ICsyOTk4LDMwIEBACiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0
aFJlc3VsdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTWFBhdGhSZXN1bHQuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFy
LmgKKwlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaCAKIAorbGliZ2RvbV9idWlsdF9zb3Vy
Y2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXZhbHVhdG9yLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tWFBhdGhFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFeHBy
ZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFeHByZXNzaW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21YUGF0aFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRo
UmVzdWx0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YUGF0aEV2YWx1YXRv
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YUGF0aEV2YWx1YXRvci5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tWFBhdGhFeGNlcHRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tWFBhdGhFeGNlcHRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVhQYXRoRXhwcmVzc2lvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YUGF0aEV4cHJlc3Npb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVhQYXRoTlNSZXNvbHZlci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vUHJpdmF0ZUdkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbVhQYXRoUmVzdWx0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbVhQYXRoUmVzdWx0LmgKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3ht
bC9YUGF0aEV2YWx1YXRvci5pZGwgXAogCVdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbCBc
CkBAIC0yMzg3LDYgKzMwODUsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfWFNMVAogRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hTTFQ9MQorRkVBVFVSRV9ERUZJTkVTX0dET00g
Kz0gRU5BQkxFX1hTTFQ9MQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1hTTFQ9MQog
CkBAIC0yNDEwLDYgKzMxMDksNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfU1ZHCiBGRUFUVVJFX0RF
RklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSAr
PSBFTkFCTEVfU1ZHPTEgLSBiaWcgVE9ETyEgOikKIAogV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFN
RVMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbiAKIFdFQkNPUkVfQ1NT
X1ZBTFVFX0tFWVdPUkRTICs9ICQoV2ViQ29yZSkvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4K
QEAgLTI2ODcsNiArMzM4NywyNzMgQEAKIAlEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1hMaW5rTmFtZXMuY3BwCiAKK25vdC15ZXQ6CisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdBRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbHRHbHlwaEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbHRHbHlwaEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5nbGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmlt
YXRlQ29sb3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0
ZUNvbG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRCb29sZWFuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQW5pbWF0ZWRCb29sZWFuLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0FuaW1hdGVkRW51bWVyYXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdB
bmltYXRlZEVudW1lcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1h
dGVkSW50ZWdlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkSW50
ZWdlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZExlbmd0aC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTGVuZ3RoLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmltYXRlZE51bWJlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0FuaW1hdGVkTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Fu
aW1hdGVkTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1h
dGVkTnVtYmVyTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFBy
ZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmlt
YXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
QW5pbWF0ZWRSZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRS
ZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkU3RyaW5nLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRTdHJpbmcuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmltYXRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0NpcmNsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdD
aXJjbGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NsaXBQYXRoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NsaXBQYXRoRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdDb2xvci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0NvbG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHQ3Vyc29yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0N1cnNvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
RGVmaW5pdGlvblNyY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdE
ZWZpbml0aW9uU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZWZz
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZnNFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Rlc2NFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVzY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEb2N1
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdFbGVtZW50SW5zdGFuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdFbGVtZW50SW5zdGFuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVu
dEluc3RhbmNlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRJ
bnN0YW5jZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxsaXBzZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGxpcHNlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHRkVCbGVuZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUJs
ZW5kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbG9yTWF0cml4
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb21wb3Np
dGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb21wb3NpdGVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlmZnVzZUxpZ2h0aW5n
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaXN0YW50
TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaXN0YW50
TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRmxvb2RFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jQUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRUZ1bmNCRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFRnVuY0JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
RnVuY0dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jR0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jUkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNSRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRUltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdGRU1lcmdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
TWVyZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFTWVyZ2VOb2Rl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRU9mZnNldEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRU9mZnNldEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVTcG90TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVTcG90TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFVGlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdGRVRpbGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
VHVyYnVsZW5jZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRVR1
cmJ1bGVuY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZpbHRlckVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGaWx0ZXJFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHRm9udEZhY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRG
YWNlRm9ybWF0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRG
YWNlRm9ybWF0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFj
ZU5hbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VO
YW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVNyY0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVNyY0VsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdHbHlw
aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdHbHlwaEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHR3JhZGllbnRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0ltYWdlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdM
ZW5ndGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMZW5ndGguaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTGVuZ3RoTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0xlbmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
TGluZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMaW5lRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWFya2VyRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hcmtlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHTWFza0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdNYXNrRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNYXRyaXgu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNYXRyaXguaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHTWV0YWRhdGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHTWV0YWRhdGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdNaXNzaW5nR2x5cGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR051
bWJlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR051bWJlci5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdOdW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHTnVtYmVyTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YWludC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhaW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
UGF0aFNlZy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWcuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0FyY0Ficy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdBcmNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUGF0aFNlZ0FyY1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1BhdGhTZWdBcmNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0Ns
b3NlUGF0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDbG9zZVBh
dGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Fi
cy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNB
YnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Jl
bC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNS
ZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Nt
b290aEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNTbW9vdGhBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9v
dGhBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNTbW9vdGhSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXRoU2VnTGluZXRvQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0xpbmV0b0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1BhdGhTZWdMaW5ldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXRoU2VnTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTW92ZXRvQWJzLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1BhdHRlcm5FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUGF0dGVybkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUG9p
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2ludC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdQb2ludExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdQb2ludExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUG9seWdv
bkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2x5Z29uRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2x5bGluZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2x5bGluZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1JlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZWN0
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1JlY3RFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUmVuZGVyaW5nSW50ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUmVuZGVyaW5nSW50ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NW
R0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTVkdFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1NldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N0b3BFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RvcEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RyaW5nTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1N0cmluZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
U3R5bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3R5bGVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N3aXRjaEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTd2l0Y2hFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1N5bWJvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdTeW1ib2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1RSZWZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFJlZkVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFNwYW5FbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFNwYW5FbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1RleHRDb250ZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdUZXh0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Rl
eHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRQYXRoRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRQYXRoRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdUaXRsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHVHJhbnNmb3JtLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVHJh
bnNmb3JtLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RyYW5zZm9ybUxpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zvcm1MaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1VuaXRUeXBlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR1VuaXRUeXBlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdVc2VF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVXNlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdWaWV3RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1ZpZXdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1pvb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1pvb21F
dmVudC5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3ZnL0VsZW1lbnRUaW1lQ29u
dHJvbC5pZGwgXAogCVdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmlkbCBcCkBAIC0zMjY2LDM2ICs0
MjMzLDQyIEBACiAjIFNWRyBGZWF0dXJlcwogaWYgRU5BQkxFX1NWR19VU0UKIEZFQVRVUkVfREVG
SU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfVVNFPTEKKyNGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfU1ZHX1VTRT0xICMgYmlnIFRPRE8hCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxF
X1NWR19VU0U9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfVVNFPTEKIGVuZGlm
CiAKIGlmIEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9N
ICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MSAKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVf
U1ZHX0ZPUkVJR05fT0JKRUNUPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZP
UkVJR05fT0JKRUNUPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfRk9OVFMKIEZFQVRVUkVfREVG
SU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRk9OVFM9MQorI0ZFQVRVUkVfREVGSU5FU19H
RE9NICs9IEVOQUJMRV9TVkdfRk9OVFM9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9O
VFM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9OVFM9MQogZW5kaWYKIAog
aWYgRU5BQkxFX1NWR19GSUxURVJTCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFC
TEVfU1ZHX0ZJTFRFUlM9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfRklM
VEVSUz0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIHdlYmNvcmVfY3Bw
ZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19B
U19JTUFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19BU19JTUFH
RT0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BU19JTUFHRT0xCiBTVkdf
RkVBVFVSRVMgKz0gRU5BQkxFX1NWR19BU19JTUFHRT0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1E
RU5BQkxFX1NWR19BU19JTUFHRT0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FOSU1BVElPTgog
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQorI0ZF
QVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIFNWR19GRUFUVVJF
UyArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X1NWR19BTklNQVRJT049MQogZW5kaWYKQEAgLTMzMDMsNiArNDI3Niw3IEBACiAjIFNWRyB0YWcg
YW5kIGF0dHJpYnV0ZSBuYW1lcyAobmVlZCB0byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4
cGVyaW1lbnRhbCBmZWF0dXJlcyBhcmUgZW5hYmxlZCkKIERlcml2ZWRTb3VyY2VzL1NWR05hbWVz
LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOwogRGVyaXZlZFNvdXJj
ZXMvSlNTVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVt
ZW50RmFjdG9yeS5jcHAKK0Rlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRXcmFwcGVy
RmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcAogCiBpZiBT
VkdfRkxBR1MKIERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDogJChXZWJDb3Jl
KS9kb20vbWFrZV9uYW1lcy5wbCAkKFdlYkNvcmUpL3N2Zy9zdmd0YWdzLmluICQoV2ViQ29yZSkv
c3ZnL3N2Z2F0dHJzLmluCkBAIC0zNDI0LDYgKzQzOTgsMTUgQEAKICAgICAkKFdlYkNvcmUpL3ht
bCBcCiAgICAgJChXZWJDb3JlKS9wbHVnaW5zCiAKK0Rlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dkb20vR2RvbSUuY3BwOworCitEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tJS5jcHA6IERlcml2ZWRTb3VyY2VzL2dkb20vR2RvbSUuY3BwOwor
CitEZXJpdmVkU291cmNlcy9nZG9tL0dkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dkb20vR2RvbSUu
Y3BwOworCitEZXJpdmVkU291cmNlcy9nZG9tL0dkb20lLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJ
TkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG0KKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9k
b20gLS1pbmNsdWRlICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9jc3MgLS1p
bmNsdWRlICQoV2ViQ29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJDb3JlKS94bWwgLS1pbmNsdWRl
ICQoV2ViQ29yZSkvc3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNHRE9NKSIgLS1kZWZpbmVz
ICIkKEZFQVRVUkVfREVGSU5FU19HRE9NKSIgLS1nZW5lcmF0b3IgR09iamVjdCAkPAorCiBEZXJp
dmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDsKIAogRGVyaXZlZFNvdXJj
ZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zNDM5LDYgKzQ0MjIsNyBAQAogCVdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzUGFyc2VyLnBtIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gXAorCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbSBcCiAJV2ViQ29yZS9jc3MvaHRtbDQuY3NzIFwKIAlXZWJDb3JlL2Nz
cy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nzcy92aWV3LXNvdXJjZS5jc3MgXApAQCAtMzQ3Niwz
ICs0NDYwLDYgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQuaCBc
CiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1dC5oCiAKKworCisKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRN
TEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTgyIEBA
CisvKgorICogVEhJUyBGSUxFIElTIERFUklWRUQgRlJPTSBBTiBBVVRPTUFUSUNBTExZIEdFTkVS
QVRFRCBGSUxFLgorICogIGtlZXBpbmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBi
ZSBkb25lIGJ5IGFkZGluZworICogIGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdy
aXRpbmcgYSBzZXBhcmF0ZQorICogIGdlbmVyYXRlciB3aGljaCB0YWtlcyBKU0hUTUxFbGVtZW50
V3JhcHBlckZhY3RvcnkuaCBhcyBpbnB1dC4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKgorICogQ29w
eXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiZ2RvbS9HZG9tTm9k
ZS5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
QXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQmxvY2txdW90
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJ1
dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxN
b2RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGb3Jt
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhlYWRFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxJRnJhbWVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSXNJ
bmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWVudUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPTGlz
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQYXJhbUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU2Ny
aXB0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVSb3dF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5j
bHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9Qcml2YXRlSW50R2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Q
cml2YXRlSW50R2RvbUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUlu
dEdkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRN
TEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MQmxv
Y2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEJvZHlF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxCUkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
UHJpdmF0ZUludEdkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUlu
dEdkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdk
b21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MRExp
c3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxFbWJlZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9Qcml2YXRlSW50R2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZh
dGVJbnRHZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUlu
dEdkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9t
SFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxIUkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEh0bWxFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL1ByaXZhdGVJbnRHZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJp
dmF0ZUludEdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJ
bnRHZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21I
VE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MTElF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxMaW5rRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MTWFwRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL1ByaXZhdGVJbnRHZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbUhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdk
b21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1M
T0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxPcHRHcm91
cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTE9wdGlvbkVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFBhcmFtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vUHJpdmF0ZUludEdkb21IVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbUhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50
R2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhU
TUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFRhYmxl
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVGFibGVTZWN0aW9u
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVGFibGVDZWxsRWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVGV4dEFyZWFFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxUaXRsZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKKworI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTEFwcGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUZvbnRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJvZHlF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCdXR0
b25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXJlY3RvcnlF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRExp
c3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkaW5nRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIUkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSUZy
YW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTExJRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcnF1ZWVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1ldGFF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
T0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFByZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNjcmlw
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
VGl0bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxVTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBHRE9N
Tm9kZSogKCpDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4pOworCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFuY2hvcldyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQW5j
aG9yRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcHBsZXRXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFwcGxldEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFwcGxldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXJlYUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZUJhc2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJhc2VFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxCYXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVCYXNlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxC
YXNlRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmxvY2txdW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEJsb2NrcXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZUJvZHlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJvZHlFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxC
b2R5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVCUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MQlJFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCUkVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQnV0dG9uV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhU
TUxCdXR0b25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCdXR0b25FbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUNhbnZhc1dyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQ2Fu
dmFzRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVDb2xXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTFRhYmxlQ29sRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDb2xFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1vZFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MTW9kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTW9kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpcmVj
dG9yeUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERpcmVjdG9yeUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRGl2V3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXZFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxEaXZFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxETGlzdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTERMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdE
T01Ob2RlKiBjcmVhdGVFbWJlZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRW1iZWRFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxFbWJlZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlRmllbGRTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZpZWxkU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
RmllbGRTZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUZvbnRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb250RWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb3Jt
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxGb3JtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEZyYW1lRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZyYW1lU2V0V3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFt
ZVNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkaW5nV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxIZWFk
aW5nRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZGluZ0VsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSGVhZFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVhZEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxIUkVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEhSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVIdG1sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiBuZXcgR0RPTUhUTUxIdG1sRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSHRtbEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSUZyYW1l
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxJRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUltYWdlV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RP
TUhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJbnB1dFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSW5w
dXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSXNJbmRleFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSXNJbmRleEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElzSW5kZXhFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxhYmVsV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxMYWJlbEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVMZWdlbmRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExlZ2VuZEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTExlZ2VuZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlTElXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExJRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTElF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxp
bmtXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTExpbmtFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNYXBXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TE1hcEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1hcEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWFycXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFycXVlZUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1hcnF1ZWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1lbnVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1lbnVFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxNZW51RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVNZXRhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxNZXRhRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MTWV0YUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlT2JqZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxPYmplY3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPYmpl
Y3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZU9MaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxPTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9MaXN0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPcHRHcm91
cFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MT3B0R3JvdXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT3B0aW9u
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxPcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBhcmFncmFwaFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MUGFyYWdyYXBoRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYWdyYXBoRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQYXJhbVdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MUGFyYW1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJhbUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUHJlV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxQ
cmVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQcmVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVF1b3RlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxRdW90ZUVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVTY3JpcHRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNjcmlwdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFNjcmlwdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlU2VsZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxTZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxTZWxlY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZVN0eWxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiBuZXcgR0RPTUhUTUxTdHlsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFN0
eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVUYWJsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MVGFibGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVT
ZWN0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVDZWxsRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MVGFibGVDZWxsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVUZXh0QXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGV4dEFyZWFFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlVGl0bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRpdGxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
VGl0bGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZVRhYmxlUm93V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRh
YmxlUm93RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVVTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MVUxpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxVTGlzdEVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK0dET01Ob2RlKiBjcmVhdGVHRE9NSFRNTFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBzdGF0aWMgSGFz
aE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVy
RnVuY3Rpb24+IG1hcDsKKyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAgIG1hcC5zZXQo
YVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoYXBwbGV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXJlYVdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUJhc2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlQmFzZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJsb2NrcXVvdGVU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCUldyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQnV0
dG9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVDYW52YXNXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25UYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGNvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChkZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpcmVjdG9y
eVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlRGl2V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZURMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmaWVsZHNldFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoZm9ybVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1XcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJh
bWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlRnJhbWVTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaGVhZFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGhyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGh0bWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJhbWVXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlt
YWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUlucHV0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGFiZWxU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQobGVnZW5kVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChsaVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGlua1dy
YXBwZXIpOworICAgICAgIG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
TWFwV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlTWFycXVlZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1ldGFUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChv
YmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KG9sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0
R3JvdXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZU9wdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocGFyYW1U
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQocHJlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KHNjcmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNjcmlwdFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVN0eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJsZVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Ym9k
eVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQodGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlVGV4dEFyZWFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRyVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHVs
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGNvbGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGlu
Z1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDZUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChpbWFnZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChpbnNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVj
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFw
LnNldCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJl
V3JhcHBlcik7CisgICAgfQorICAgIC8vcHJpbnRmKCJjcmVhdGVHRE9NSFRNTFdyYXBwZXI6ICVz
XG4iLCBlbGVtZW50LT5sb2NhbE5hbWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBD
cmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24gPSBt
YXAuZ2V0KGVsZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwoKSk7CisgICAgaWYgKGNyZWF0ZVdyYXBw
ZXJGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbihlbGVtZW50
KTsKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRWxlbWVudChlbGVtZW50LmdldCgpKTsKK30KKwor
fQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5v
ZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2
ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
UHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0
b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBA
YXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAi
Z2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0
ZUludEdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVHZG9tRE9N
T2JqZWN0LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRl
ICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRXZlbnQuaCIKK2VudW0gewor
ICAgIEJST1dTRVJfRVZFTlQsCisgICAgTEFTVF9TSUdOQUwKK307CisKK3N0YXRpYyBndWludCBl
dmVudF9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKKworCitXZWJDb3JlOjpOb2RlICoK
K2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAq
cmVxdWVzdCkKK3sKKyAgICBHRE9NRXZlbnRUYXJnZXROb2RlICpyZXM7CisgICAgcmVzID0gc3Rh
dGljX2Nhc3Q8R0RPTUV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0
ZShHRE9NX0RPTV9PQkpFQ1QocmVxdWVzdCkpKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxXZWJDb3JlOjpOb2RlKj4ocmVzLT5pbXBsKCkpOworfQorCisKK2V4dGVybiAiQyIgeworCitH
X0RFRklORV9UWVBFKEdkb21FdmVudFRhcmdldE5vZGUsIGdkb21fZXZlbnRfdGFyZ2V0X25vZGUs
IEdET01fVFlQRV9OT0RFKTsKKworLyoKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZh
dGUgeworICAgIGNsYXNzIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqaXRlbTsKK307CisqLwor
CisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBF
X0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUs
IEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKSkKKworLyoKK3ZvaWQKK2dkb21fZXZlbnRfdGFy
Z2V0X25vZGVfc2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCwgV2ViQ29y
ZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSkKK3sKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJp
dmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUocmVxdWVzdCk7
CisgICAgcHJpdi0+aXRlbSA9IGl0ZW07Cit9CisqLworCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50
X3RhcmdldF9ub2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvKkdkb21FdmVu
dFRhcmdldE5vZGUqIHJlcXVlc3QgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iamVjdCk7Cisg
ICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OyovCisK
KyAgICBHX09CSkVDVF9DTEFTUyhnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3BhcmVudF9jbGFzcykt
PmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25v
ZGVfY2xhc3NfaW5pdChHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MqIHJlcXVlc3RDbGFzcykKK3sK
KyAgICBldmVudF9zaWduYWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2Vy
LWV2ZW50IiwKKyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocmVxdWVzdENsYXNzKSwKKyAgICAg
ICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04gfAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1NJR05BTF9ERVRBSUxFRCAgICAp
LAorICAgICAgICAwLAorICAgICAgICBOVUxMLAorICAgICAgICBOVUxMLAorICAgICAgICB3ZWJr
aXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgR19UWVBFX05PTkUsIDIs
CisgICAgICAgIEdET01fVFlQRV9FVkVOVCwgR19UWVBFX0JPT0xFQU4pOworCisgICAgR19PQkpF
Q1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2V2ZW50X3RhcmdldF9ub2Rl
X2ZpbmFsaXplOworCisgICAgLypnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNz
LCBzaXplb2YoR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUpKTsqLworfQorCitzdGF0aWMgdm9p
ZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXQoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogcmVxdWVz
dCkKK3sKKyAgICAvKkdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0gR0RPTV9FVkVO
VF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0g
cHJpdjsqLworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01CaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MDEgQEAKKy8qCisgKiAg
Q29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2Vpbmln
IDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENh
c3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
ICovCisKKy8vIGdjYyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUgSGFzaE1hcCBwb2lu
dGVyIHNwZWNpYWxpemF0aW9uIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQgX19HTlVDX18gJiYg
IWRlZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNkZWZpbmUgSEFTSF9N
QVBfUFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUdkb21ET01PYmpl
Y3QuaCIKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVu
dFdyYXBwZXJGYWN0b3J5LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdk
b21DU1NTdHlsZVNoZWV0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2
ZW50RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgorI2luY2x1ZGUgImdkb20vR2RvbU5vZGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21Ob2RlLmgiCisKKyNpbmNsdWRlICJBdHRyLmgi
CisjaW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNs
dWRlICJDb21tZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiRW50aXR5
LmgiCisjaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21BdHRyLmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUF0dHIuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21DaGFyYWN0ZXJEYXRhLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tVGV4dC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUNvbW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbURvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21Eb2N1bWVudFR5
cGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21FbnRpdHkuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21F
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21FbnRpdHlS
ZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbVByb2Nlc3NpbmdJbnN0
cnVjdGlvbi5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJOb3RhdGlvbi5oIgorI2lu
Y2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2luY2x1
ZGUgImdkb20vR2RvbUNTU1J1bGUuaCIKKyNpbmNsdWRlICJDU1NDaGFyc2V0UnVsZS5oIgorI2lu
Y2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKKyNp
bmNsdWRlICJDU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NQYWdlUnVsZS5oIgorI2luY2x1
ZGUgIkNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1ZhcmlhYmxlc1J1bGUuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUNTU0Zv
bnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21DU1NQYWdl
UnVsZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21FdmVudC5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgi
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21DbGlwYm9hcmQuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tTWVz
c2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tTW91c2VFdmVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbU11dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21PdmVyZmxvd0V2
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbVRleHRFdmVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbVVJRXZlbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbVdoZWVsRXZlbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKKyNp
bmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRl
ICJPdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUg
IlRleHRFdmVudC5oIgorI2luY2x1ZGUgIlVJRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmlt
YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1
ZGUgIldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQu
aCIKKworI2luY2x1ZGUgImdkb20vR2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJB
dG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkhU
TUxPcHRpb25zQ29sbGVjdGlvbi5oIgorLy8gVE9ETyAjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50
R2RvbUhUTUxBbGxDb2xsZWN0aW9uLmgiCisvLyBUT0RPICNpbmNsdWRlICJnZG9tL0dkb21IVE1M
QWxsQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlv
bi5oIgorLy8gZXJyLi4uICNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tTmFtZWROb2Rlc0Nv
bGxlY3Rpb24uaCIKKy8vIGVyci4uLiAjaW5jbHVkZSAiZ2RvbS9HZG9tTmFtZWROb2Rlc0NvbGxl
Y3Rpb24uaCIKKworI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyNpbmNsdWRlICJnZG9tL0dkb21T
dG9yYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKKyNlbmRpZgorCisjaWYg
RU5BQkxFKFNWRykKKyNpZiAwIC8qIFRPRE8gKi8KKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRH
ZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50LmgiCisj
aW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNW
RykKKyNpZiAwIC8qIFhYWCBUT0RPICovCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbVNW
R0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgImdkb20vR2RvbVNWR0VsZW1lbnRX
cmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKKyNlbmRpZgorI2VuZGlm
CisKKyNpZiAwCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJnZG9tL0dkb21TVkdFeGNlcHRp
b24uaCIKKyNpbmNsdWRlICJTVkdFeGNlcHRpb24uaCIKKyNlbmRpZgorI2VuZGlmCisKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbUNTU1J1bGUuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tQ0RBVEFT
ZWN0aW9uLmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUNvbW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZh
dGVJbnRHZG9tRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdk
b21Eb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tRW50aXR5Lmgi
CisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L1ByaXZhdGVJbnRHZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50
R2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUVu
dGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21Ob3RhdGlvbi5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tL1ByaXZhdGVJbnRHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAi
Z2RvbS9Qcml2YXRlSW50R2RvbVRleHQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9t
Q1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tQ1NTRm9udEZh
Y2VSdWxlLmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUNTU0ltcG9ydFJ1bGUuaCIK
KyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAi
Z2RvbS9Qcml2YXRlSW50R2RvbUNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRl
SW50R2RvbUNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21DU1NW
YXJpYWJsZXNSdWxlLmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUtleWJvYXJkRXZl
bnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tTWVzc2FnZUV2ZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL1By
aXZhdGVJbnRHZG9tTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdk
b21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbVByb2dyZXNz
RXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tVGV4dEV2ZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZh
dGVJbnRHZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJ
bnRHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50
R2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbVN0b3Jh
Z2VFdmVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MT3B0aW9uc0NvbGxl
Y3Rpb24uaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTENvbGxlY3Rpb24uaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit0
eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBET01PYmplY3RNYXA7Cit0eXBlZGVmIEhh
c2hNYXA8dm9pZCosIGdwb2ludGVyPiBHZG9tV3JhcHBlckNhY2hlOyAvKiBBUkchIFVORkFJUiEg
SlNXcmFwcGVyQ2FjaGUgaXMgaW4gRG9jdW1lbnQhISAqLworCisvLyBGb3IgZGVidWdnaW5nLCBr
ZWVwIGEgc2V0IG9mIHdyYXBwZXJzIGN1cnJlbnRseSByZWdpc3RlcmVkLCBhbmQgY2hlY2sgdGhh
dAorLy8gYWxsIGFyZSB1bnJlZ2lzdGVyZWQgYmVmb3JlIHRoZXkgYXJlIGRlc3Ryb3llZC4gVGhp
cyBoYXMgaGVscGVkIHVzIGZpeCBhdAorLy8gbGVhc3Qgb25lIGJ1Zy4KKworI2lmIDAKK3N0YXRp
YyB2b2lkIGFkZFdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcik7CitzdGF0aWMgdm9pZCByZW1v
dmVXcmFwcGVyKEdET01PYmplY3QqIHdyYXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBl
cnMoY29uc3QgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpOworCisjaWZkZWYgTkRFQlVHCisK
K3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqKQoreworfQorCitzdGF0
aWMgaW5saW5lIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGlj
IGlubGluZSB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUmKQorewor
fQorCisjZWxzZQorCitzdGF0aWMgSGFzaFNldDxHRE9NT2JqZWN0Kj4mIHdyYXBwZXJTZXQoKQor
eworICAgIHN0YXRpYyBIYXNoU2V0PEdET01PYmplY3QqPiBzdGF0aWNXcmFwcGVyU2V0OworICAg
IHJldHVybiBzdGF0aWNXcmFwcGVyU2V0OworfQorCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdE
T01PYmplY3QqIHdyYXBwZXIpCit7CisgICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFpbnMo
d3JhcHBlcikpOworICAgIHdyYXBwZXJTZXQoKS5hZGQod3JhcHBlcik7Cit9CisKK3N0YXRpYyB2
b2lkIHJlbW92ZVdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcikKK3sKKyAgICBpZiAoIXdyYXBw
ZXIpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQod3JhcHBlclNldCgpLmNvbnRhaW5zKHdy
YXBwZXIpKTsKKyAgICB3cmFwcGVyU2V0KCkucmVtb3ZlKHdyYXBwZXIpOworfQorCitzdGF0aWMg
dm9pZCByZW1vdmVXcmFwcGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVycykKK3sK
KyAgICBmb3IgKEdkb21XcmFwcGVyQ2FjaGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gd3JhcHBlcnMu
YmVnaW4oKTsgaXQgIT0gd3JhcHBlcnMuZW5kKCk7ICsraXQpCisgICAgICAgIHJlbW92ZVdyYXBw
ZXIoaXQtPnNlY29uZCk7Cit9CisKK0dET01PYmplY3Q6On5HRE9NT2JqZWN0KCkKK3sKKyAgICBB
U1NFUlQoIXdyYXBwZXJTZXQoKS5jb250YWlucyh0aGlzKSk7Cit9CisKKyNlbmRpZgorI2VuZGlm
IC8qIGNvbW1lbnRlZCBvdXQgZm9yIG5vdyAqLworCitzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSYg
d3JhcHBlckNhY2hlKCkKK3sKKyAgICAvLyBVTkZBSVIhIGkgd2FudCBvbmUgb2YgdGhlc2UgcGVy
IERvY3VtZW50LCB0b28hCisgICAgLy8gRG9uJ3QgdXNlIG1hbGxvYyBoZXJlLiBDYWxsaW5nIG1h
bGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4gZGVhZGxvY2suCisgICAgc3RhdGljIEdkb21X
cmFwcGVyQ2FjaGUgc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsKKyAgICByZXR1cm4gc3RhdGljR2Rv
bVdyYXBwZXJDYWNoZTsKK30KKworc3RhdGljIERPTU9iamVjdE1hcCYgZG9tT2JqZWN0cygpCit7
CisgICAgLy8gRG9uJ3QgdXNlIG1hbGxvYyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFy
ayBmdW5jdGlvbiBjYW4gZGVhZGxvY2suCisgICAgc3RhdGljIERPTU9iamVjdE1hcCBzdGF0aWNE
T01PYmplY3RzOworICAgIHJldHVybiBzdGF0aWNET01PYmplY3RzOworfQorCitncG9pbnRlciBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpCit7
CisgICAgZ3BvaW50ZXIgcmV0ID0gZG9tT2JqZWN0cygpLmdldChvYmplY3RIYW5kbGUpOworICAg
IC8vcHJpbnRmKCJnZXRET01PYmplY3Q6ICVwICVwXG4iLCBvYmplY3RIYW5kbGUsIHJldCk7Cisg
ICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZV9nZG9tX29iamVjdChH
RE9NT2JqZWN0ICpkb2IpCit7CisgICAgZ3BvaW50ZXIgcmVzID0gZ19vYmplY3RfbmV3KGRvYi0+
Z2V0X2dvYmpfdHlwZSgpLCBOVUxMKTsKKyAgICBnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUo
R0RPTV9ET01fT0JKRUNUKHJlcyksIGRvYik7CisgICAgcmV0dXJuIHJlczsKK30KKworZ3BvaW50
ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxl
LCBHRE9NT2JqZWN0KiB3cmFwcGVyKQoreworICAgIC8vIGFkZFdyYXBwZXIod3JhcHBlcik7Cisg
ICAgZ3BvaW50ZXIgb2JqID0gY3JlYXRlX2dkb21fb2JqZWN0KHdyYXBwZXIpOworICAgIC8vcHJp
bnRmKCJwdXRET01PYmplY3Q6ICVwICVwICVwXG4iLCBvYmplY3RIYW5kbGUsIHdyYXBwZXIsIG9i
aik7CisgICAgZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIG9iaik7CisgICAgcmV0dXJu
IG9iajsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCh2
b2lkKiBvYmplY3RIYW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxl
KTsKKyAgICAvL3JlbW92ZVdyYXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7
Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3Vt
ZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50
KQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Z3BvaW50ZXIgPihkb21PYmplY3RzKCkuZ2V0
KG5vZGUpKTsKKyAgICByZXR1cm4gLyogWFhYIGdycnIgZG9jdW1lbnQtPiAqL3dyYXBwZXJDYWNo
ZSgpLmdldChub2RlKTsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERP
TU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUpCit7CisgICAg
aWYgKCFkb2N1bWVudCkgeworICAgICAgICBmb3JnZXRET01PYmplY3Qobm9kZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgLy9yZW1vdmVXcmFwcGVyKC8qIFhYWCBncnIgZG9jdW1lbnQt
Piovd3JhcHBlckNhY2hlKCkudGFrZShub2RlKSk7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9k
ZSogbm9kZSwgR0RPTU5vZGUgKndyYXBwZXIpCit7CisgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIp
OworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAgbm9kZS0+cmVmKCk7CisgICAgICAgIHJl
dHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChub2RlLCB3cmFwcGVyKSA7
CisgICAgfQorICAgIGdwb2ludGVyIG9iaiA9IGNyZWF0ZV9nZG9tX29iamVjdCh3cmFwcGVyKTsK
KyAgICAvKiBYWFggZ3JyciBkb2N1bWVudC0+Ki93cmFwcGVyQ2FjaGUoKS5zZXQobm9kZSwgb2Jq
KTsKKyAgICByZXR1cm4gb2JqOworfQorCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9y
Z2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgQVNT
RVJUKGRvY3VtZW50KTsKKyAgICAvL3JlbW92ZVdyYXBwZXJzKGRvY3VtZW50LT53cmFwcGVyQ2Fj
aGUoKSk7Cit9CisKKyNpZiAwCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6bWFya0RPTU5v
ZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvYykKK3sKKyNpZiAwIC8qWFhYIFRPRE8qLworICAg
IC8vIElmIGEgbm9kZSdzIEdkb20gd3JhcHBlciBob2xkcyBjdXN0b20gcHJvcGVydGllcywgdGhv
c2UgcHJvcGVydGllcyBtdXN0CisgICAgLy8gcGVyc2lzdCBldmVyeSB0aW1lIHRoZSBub2RlIGlz
IGZldGNoZWQgZnJvbSB0aGUgRE9NLiBTbywgd2Uga2VlcCBHZG9tCisgICAgLy8gd3JhcHBlcnMg
bGlrZSB0aGF0IGZyb20gYmVpbmcgZ2FyYmFnZSBjb2xsZWN0ZWQuCisKKyAgICBHZG9tV3JhcHBl
ckNhY2hlJiBub2RlRGljdCA9IC8qZG9jLT4qL3dyYXBwZXJDYWNoZSgpOworICAgIEdkb21XcmFw
cGVyQ2FjaGU6Oml0ZXJhdG9yIG5vZGVFbmQgPSBub2RlRGljdC5lbmQoKTsKKyAgICBmb3IgKEdk
b21XcmFwcGVyQ2FjaGU6Oml0ZXJhdG9yIG5vZGVJdCA9IG5vZGVEaWN0LmJlZ2luKCk7IG5vZGVJ
dCAhPSBub2RlRW5kOyArK25vZGVJdCkgeworICAgICAgICBncG9pbnRlciBnTm9kZSA9IG5vZGVJ
dC0+c2Vjb25kOworICAgICAgICBOb2RlKiBub2RlID0gZ05vZGUtPmltcGwoKTsKKworICAgICAg
ICBpZiAoZ05vZGUtPm1hcmtlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
Ly8gTm8gbmVlZCB0byBwcmVzZXJ2ZSBhIHdyYXBwZXIgdGhhdCBoYXMgbm8gY3VzdG9tIHByb3Bl
cnRpZXMgb3IgaXMgbm8KKyAgICAgICAgLy8gbG9uZ2VyIGZldGNoYWJsZSB0aHJvdWdoIHRoZSBE
T00uCisgICAgICAgIGlmICghZ05vZGUtPmhhc0N1c3RvbVByb3BlcnRpZXMoKSB8fCAhbm9kZS0+
aW5Eb2N1bWVudCgpKQorICAgICAgICAgICAgLy8uLi4gdW5sZXNzIHRoZSB3cmFwcGVyIHdyYXBz
IGEgbG9hZGluZyBpbWFnZSwgc2luY2UgdGhlICJuZXcgSW1hZ2UiCisgICAgICAgICAgICAvLyBz
eW50YXggYWxsb3dzIGFuIG9ycGhhbiBpbWFnZSB3cmFwcGVyIHRvIGJlIHRoZSBsYXN0IHJlZmVy
ZW5jZQorICAgICAgICAgICAgLy8gdG8gYSBsb2FkaW5nIGltYWdlLCB3aG9zZSBsb2FkIGV2ZW50
IG1pZ2h0IGhhdmUgaW1wb3J0YW50IHNpZGUtZWZmZWN0cy4KKyAgICAgICAgICAgIGlmICghbm9k
ZS0+aGFzVGFnTmFtZShpbWdUYWcpIHx8IHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihu
b2RlKS0+aGF2ZUZpcmVkTG9hZEV2ZW50KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgZ05vZGUtPm1hcmsoKTsKKyAgICB9CisjZW5kaWYKK30KKworLyogWFhYIC0gcmVx
dWlyZXMgbG9va2luZyB1cCBvYmplY3QgLSBjYWxsIHRvIEdfT0JKRUNUKCkgbWFjcm8gaW4gYXJn
CisgKiAid3JhcHBlciIgdG8gcHV0RE9NTm9kZUZvckRvY3VtZW50PyovCitncG9pbnRlciBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OnVwZGF0ZURPTU5vZGVEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1
bWVudCogb2xkRG9jLCBEb2N1bWVudCogbmV3RG9jKQoreworICAgIEFTU0VSVChvbGREb2MgIT0g
bmV3RG9jKTsKKyAgICBzdHlsZVNoZWV0LT5yZWYoKTsKKyAgICBncG9pbnRlciB3cmFwcGVyID0g
Z2V0RE9NTm9kZUZvckRvY3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgaWYgKHdyYXBwZXIpIHsK
KyAgICAgICAgLy9yZW1vdmVXcmFwcGVyKHdyYXBwZXIpOworICAgICAgICBncG9pbnRlciBvYmog
PSBwdXRET01Ob2RlRm9yRG9jdW1lbnQobmV3RG9jLCBub2RlLCB3cmFwcGVyKTsKKyAgICAgICAg
Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgICAgIC8vYWRkV3Jh
cHBlcih3cmFwcGVyKTsKKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisgICAgcmV0dXJuIE5V
TEw7IC8qIGVyci4uLiAqLworfQorI2VuZGlmCisKK2dwb2ludGVyIHRvR0RPTShEb2N1bWVudCog
ZG9jKQoreworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0u
Li4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU9iamVjdChkb2MpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAg
IEdET01PYmplY3QgKnJldDsKKworICAgIGlmIChkb2MtPmlzSFRNTERvY3VtZW50KCkpCisgICAg
ICAgIHJldCA9IG5ldyBHRE9NSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+
KGRvYykpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5pc1NWR0RvY3VtZW50
KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gKi8KKyNpZiAwCisg
ICAgICAgIHJldCA9IG5ldyBHRE9NU1ZHRG9jdW1lbnQoc3RhdGljX2Nhc3Q8U1ZHRG9jdW1lbnQq
Pihkb2MpKTsKKyNlbmRpZgorICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAgcmV0ID0g
bmV3IEdET01Eb2N1bWVudChkb2MpOworCisgICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RP
TVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlV3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3
bHlDcmVhdGVkKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4g
TlVMTDsgLyogaG1tbS4uLi4gKi8KKworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOwor
fQorCitncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgRG9jdW1lbnQqIGRvYyA9IG5v
ZGUtPmRvY3VtZW50KCk7CisgICAgZ3BvaW50ZXIgcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVy
OjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlKTsKKyAgICBpZiAocmV0KQorICAgICAg
ICByZXR1cm4gcmV0OworCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisKK2dw
b2ludGVyIHRvR0RPTShDU1NWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAg
ICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh2YWx1ZSk7CisKKyAgICBpZiAoZ29iaikK
KyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBpZiAo
dmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFsdWVMaXN0
KHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAg
ICBlbHNlIGlmICh2YWx1ZS0+aXNTVkdQYWludCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5V
TEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1BhaW50KHN0YXRpY19j
YXN0PFNWR1BhaW50Kj4odmFsdWUpKTsKKyAgICB9CisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZH
Q29sb3IoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAg
IC8vcmV0ID0gbmV3IEdET01TVkdDb2xvcihzdGF0aWNfY2FzdDxTVkdDb2xvcio+KHZhbHVlKSk7
CisgICAgfQorI2VuZGlmCisgICAgZWxzZSBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkK
KyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NQcmltaXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KHZhbHVlKSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RP
TUNTU1ZhbHVlKHZhbHVlKTsKKworICAgIHZhbHVlLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNj
cmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QodmFsdWUsIHJldCk7Cit9CisKK3N0YXRpYyBB
TFdBWVNfSU5MSU5FIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSkKK3sKKyAgICBB
U1NFUlQobm9kZSk7CisgICAgQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZv
ckRvY3VtZW50KG5vZGUtPmRvY3VtZW50KCksIG5vZGUpKTsKKworICAgIERvY3VtZW50KiBkb2Mg
PSBub2RlLT5kb2N1bWVudCgpOworICAgIEdET01Ob2RlICpyZXQgPSBOVUxMOworCisgICAgLy9w
cmludGYoImNyZWF0ZVdyYXBwZXIgbm9kZVR5cGUgJWRcbiIsIG5vZGUtPm5vZGVUeXBlKCkpOwor
CisgICAgc3dpdGNoIChub2RlLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxF
TUVOVF9OT0RFOgorICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAg
ICAgICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVs
ZW1lbnQqPihub2RlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKG5v
ZGUtPmlzU1ZHRWxlbWVudCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2lmIDAg
LyogWFhYIFRPRE8gKi8KKyAgICAgICAgICAgICAgICByZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBl
cihzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4obm9kZSkpOworI2VuZGlmCisjZW5kaWYKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8RWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE5vZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01BdHRyKHN0
YXRpY19jYXN0PEF0dHIqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpURVhUX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVRleHQoc3RhdGlj
X2Nhc3Q8VGV4dCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5v
ZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ0RBVEFT
ZWN0aW9uKHN0YXRpY19jYXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01FbnRpdHkoc3RhdGljX2Nhc3Q8RW50aXR5Kj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oc3RhdGljX2Nh
c3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdE
T01Db21tZW50KHN0YXRpY19jYXN0PENvbW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgLy8gd2Ug
ZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1l
bnQgZGljdGlvbmFyeQorICAgICAgICAgICAgcmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxEb2N1
bWVudCo+KG5vZGUpKTsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6Cisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTURvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVu
dFR5cGUqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpO
T1RBVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob3RhdGlvbihzdGF0aWNf
Y2FzdDxOb3RhdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RP
TURvY3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRGcmFnbWVudCo+KG5vZGUpKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5UmVmZXJlbmNlKHN0YXRpY19j
YXN0PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Ob2RlKG5vZGUpOworICAgIH0K
KworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0
RE9NTm9kZUZvckRvY3VtZW50KGRvYywgbm9kZSwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9N
KEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQoreworICAgIGlmICghY29sbGVjdGlvbikKKyAg
ICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0g
R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoY29sbGVjdGlvbik7CisKKyAgICBp
ZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7Cisg
ICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBIVE1MQ29sbGVj
dGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlvbio+KGNvbGxlY3Rp
b24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIDAKKyAgICAgICAgY2FzZSBIVE1MQ29sbGVj
dGlvbjo6RG9jQWxsOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQWxsQ29sbGVjdGlv
bihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAg
IGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29sbGVjdGlv
bikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY29sbGVjdGlvbi0+cmVmKCk7
CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGNvbGxlY3Rp
b24sIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQpCit7CisgICAgaWYg
KCFldmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICAvL3By
aW50ZigidG9HRE9NIEV2ZW50IHR5cGUgJXNcbiIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVy
OjpnZXRET01PYmplY3QoZXZlbnQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29i
ajsKKworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBpZiAoZXZlbnQtPmlzVUlFdmVudCgpKSB7
CisgICAgICAgIGlmIChldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpCisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTUtleWJvYXJkRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50
KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1RleHRFdmVudCgpKQorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01UZXh0RXZlbnQoc3RhdGljX2Nhc3Q8VGV4dEV2ZW50Kj4oZXZlbnQpKTsK
KyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01Nb3VzZUV2ZW50KHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCkpOwor
ICAgICAgICBlbHNlIGlmIChldmVudC0+aXNXaGVlbEV2ZW50KCkpCisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTVdoZWVsRXZlbnQoc3RhdGljX2Nhc3Q8V2hlZWxFdmVudCo+KGV2ZW50KSk7Cisj
aWYgRU5BQkxFKFNWRykKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzU1ZHWm9vbUV2ZW50KCkp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAg
ICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHWm9vbUV2ZW50KHN0YXRpY19jYXN0PFNWR1pvb21FdmVu
dCo+KGV2ZW50KSwgMCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBlbHNlCisgICAgICAg
ICAgICByZXQgPSBuZXcgR0RPTVVJRXZlbnQoc3RhdGljX2Nhc3Q8VUlFdmVudCo+KGV2ZW50KSk7
CisgICAgfSBlbHNlIGlmIChldmVudC0+aXNNdXRhdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9
IG5ldyBHRE9NTXV0YXRpb25FdmVudChzdGF0aWNfY2FzdDxNdXRhdGlvbkV2ZW50Kj4oZXZlbnQp
KTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNPdmVyZmxvd0V2ZW50KCkpCisgICAgICAgIHJldCA9
IG5ldyBHRE9NT3ZlcmZsb3dFdmVudChzdGF0aWNfY2FzdDxPdmVyZmxvd0V2ZW50Kj4oZXZlbnQp
KTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNNZXNzYWdlRXZlbnQoKSkKKyAgICAgICAgcmV0ID0g
bmV3IEdET01NZXNzYWdlRXZlbnQoc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZlbnQpKTsK
KyAgICBlbHNlIGlmIChldmVudC0+aXNQcm9ncmVzc0V2ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2
ZW50LT5pc1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0g
bmV3IEdET01YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8WE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01Qcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFByb2dyZXNzRXZlbnQqPihl
dmVudCkpOworICAgIH0KKyNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCisgICAgZWxzZSBpZiAoZXZl
bnQtPmlzU3RvcmFnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NU3RvcmFnZUV2ZW50
KHN0YXRpY19jYXN0PFN0b3JhZ2VFdmVudCo+KGV2ZW50KSk7CisjZW5kaWYKKyAgICBlbHNlIGlm
IChldmVudC0+aXNXZWJLaXRBbmltYXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RP
TVdlYktpdEFuaW1hdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdEFuaW1hdGlvbkV2ZW50Kj4o
ZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRUcmFuc2l0aW9uRXZlbnQoKSkK
KyAgICAgICAgcmV0ID0gbmV3IEdET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8
V2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9
IG5ldyBHRE9NRXZlbnQoZXZlbnQpOworCisgICAgZXZlbnQtPnJlZigpOworICAgIHJldHVybiBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChldmVudCwgcmV0KTsKK30KKworLyog
VE9ETyBYWFggaG1tbS4uLiBub3Qgc28gaGFwcHkgYWJvdXQgdGhpcyAtIHNob3VsZCBiZSAibmV3
bHkgY3JlYXRlZCIgKi8KK2dwb2ludGVyIHRvR0RPTShUZXh0KiB0ZXh0KQoreworICAgIGlmICgh
dGV4dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNj
cmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQodGV4dC0+ZG9jdW1lbnQoKSwg
dGV4dCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU5v
ZGUgKnJldCA9IG5ldyBHRE9NVGV4dCh0ZXh0KTsKKyAgICB0ZXh0LT5kb2N1bWVudCgpLT5yZWYo
KTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1l
bnQodGV4dC0+ZG9jdW1lbnQoKSwgdGV4dCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKENT
U1J1bGUqIHJ1bGUpCit7CisgICAgaWYgKCFydWxlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyog
WFhYIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OmdldERPTU9iamVjdChydWxlKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4g
Z29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBzd2l0Y2ggKHJ1bGUtPnR5cGUoKSkg
eworICAgICAgICBjYXNlIENTU1J1bGU6OlNUWUxFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUNTU1N0eWxlUnVsZShzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihydWxlKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpNRURJQV9SVUxFOgorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NNZWRpYVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTTWVkaWFS
dWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6
Rk9OVF9GQUNFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0ZvbnRGYWNlUnVs
ZShzdGF0aWNfY2FzdDxDU1NGb250RmFjZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpQQUdFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUNTU1BhZ2VSdWxlKHN0YXRpY19jYXN0PENTU1BhZ2VSdWxlKj4ocnVsZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JUX1JVTEU6CisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0ltcG9ydFJ1bGUoc3RhdGljX2Nhc3Q8Q1NTSW1wb3J0
UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6
OkNIQVJTRVRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTQ2hhcnNldFJ1bGUo
c3RhdGljX2Nhc3Q8Q1NTQ2hhcnNldFJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBDU1NSdWxlOjpWQVJJQUJMRVNfUlVMRToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NQ1NTVmFyaWFibGVzUnVsZShzdGF0aWNfY2FzdDxDU1NWYXJpYWJsZXNSdWxlKj4o
cnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTUNTU1J1bGUocnVsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBydWxlLT5yZWYoKTsKKyAgICBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9i
amVjdChydWxlLCByZXQpOworICAgIHJldHVybiByZXQ7Cit9CisKKy8qIFRPRE86IHNob3VsZCBi
ZSB0b0dET01OZXdseUNyZWF0ZWQgKi8KK2dwb2ludGVyIHRvR0RPTShFbGVtZW50KiBlbGVtZW50
KQoreworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBz
aG91bGRuJ3QgYmUgb25lPyBBU1NFUlQoIVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9y
RG9jdW1lbnQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgZWxlbWVudCkpOworICAgIGdwb2ludGVyIGdv
YmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChlbGVtZW50
LT5kb2N1bWVudCgpLCBlbGVtZW50KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdv
Ymo7IC8vIGh1aD8gZXJyLi4uCisKKyAgICBHRE9NTm9kZSAqcmV0OworICAgIERvY3VtZW50KiBk
b2MgPSBlbGVtZW50LT5kb2N1bWVudCgpOworCisgICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVsZW1l
bnQoKSkKKyAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0PEhU
TUxFbGVtZW50Kj4oZWxlbWVudCkpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZWxl
bWVudC0+aXNTVkdFbGVtZW50KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9E
TyAqLworICAgICAgICAvL3JldCA9IGNyZWF0ZUdET01TVkdXcmFwcGVyKHN0YXRpY19jYXN0PFNW
R0VsZW1lbnQqPihlbGVtZW50KSk7CisgICAgfQorI2VuZGlmCisgICAgZWxzZQorICAgICAgICBy
ZXQgPSBuZXcgR0RPTUVsZW1lbnQoZWxlbWVudCk7CisKKyAgICBkb2MtPnJlZigpOworICAgIHJl
dHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIGVs
ZW1lbnQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBzdHlsZVNoZWV0
KQoreworICAgIGlmICghc3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4u
LiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9N
T2JqZWN0KHN0eWxlU2hlZXQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsK
KworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBpZiAoc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNo
ZWV0KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5bGVTaGVldChzdGF0aWNfY2FzdDxD
U1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3
IEdET01TdHlsZVNoZWV0KHN0eWxlU2hlZXQpOworCisgICAgc3R5bGVTaGVldC0+cmVmKCk7Cisg
ICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHN0eWxlU2hlZXQs
IHJldCk7Cit9CisKKy8qIGRlcml2ZWQgc291cmNlcyBhdXRvLWdlbmVyYXRlZCAqLworZ3BvaW50
ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBvYmopOworCitncG9pbnRlciB0b0dET00o
RXZlbnRUYXJnZXQqIHRhcmdldCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJu
IE5VTEw7CisKKyNpZiAwCisjaWYgRU5BQkxFKFNWRykKKyAgICAvLyBTVkdFbGVtZW50SW5zdGFu
Y2Ugc3VwcG9ydHMgYm90aCB0b1NWR0VsZW1lbnRJbnN0YW5jZSBhbmQgdG9Ob2RlIHNpbmNlIHNv
IG11Y2ggbW91c2UgaGFuZGxpbmcgY29kZSBkZXBlbmRzIG9uIHRvTm9kZSByZXR1cm5pbmcgYSB2
YWxpZCBub2RlLgorICAgIFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2UgPSB0YXJnZXQtPnRv
U1ZHRWxlbWVudEluc3RhbmNlKCk7CisgICAgaWYgKGluc3RhbmNlKQorICAgICAgICByZXR1cm4g
dG9HRE9NKGV4ZWMsIGluc3RhbmNlKTsKKyNlbmRpZgorI2VuZGlmCisKKyAgICBOb2RlKiBub2Rl
ID0gdGFyZ2V0LT50b05vZGUoKTsKKyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRvR0RP
TShub2RlKTsKKworICAgIGlmIChYTUxIdHRwUmVxdWVzdCogeGhyID0gdGFyZ2V0LT50b1hNTEh0
dHBSZXF1ZXN0KCkpCisgICAgICAgIC8vIFhNTEh0dHBSZXF1ZXN0IGlzIGFsd2F5cyBjcmVhdGVk
IHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHVzZSBjYWNoZURPTU9iamVjdCgpIGhlcmUu
CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh4aHIp
OworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxvYWQgPSB0YXJnZXQtPnRvWE1M
SHR0cFJlcXVlc3RVcGxvYWQoKSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTSh1cGxvYWQpOworCisj
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICBpZiAoRE9NQXBwbGljYXRp
b25DYWNoZSogY2FjaGUgPSB0YXJnZXQtPnRvRE9NQXBwbGljYXRpb25DYWNoZSgpKQorICAgICAg
ICAvLyBET01BcHBsaWNhdGlvbkNhY2hlIGlzIGFsd2F5cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3
ZSBkb24ndCBuZWVkIHRvIHVzZSBjYWNoZURPTU9iamVjdCgpIGhlcmUuCisgICAgICAgIHJldHVy
biBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChjYWNoZSk7CisjZW5kaWYKKwor
ICAgIC8vIFRoZXJlIGFyZSB0d28ga2luZHMgb2YgRXZlbnRUYXJnZXRzOiBFdmVudFRhcmdldE5v
ZGUgYW5kIFhNTEh0dHBSZXF1ZXN0LgorICAgIC8vIElmIFNWRyBzdXBwb3J0IGlzIGVuYWJsZWQs
IHRoZXJlIGlzIGFsc28gU1ZHRWxlbWVudEluc3RhbmNlLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBOVUxMOworfQorCitncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXRO
b2RlKiB0YXJnZXQpCit7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBOVUxMOwor
CisgICAgTm9kZSogbm9kZSA9IHRhcmdldC0+dG9Ob2RlKCk7CisgICAgaWYgKG5vZGUpCisgICAg
ICAgIHJldHVybiB0b0dET00obm9kZSk7CisKKyAgICByZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0
PEV2ZW50VGFyZ2V0Kj4odGFyZ2V0KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RP
TUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OCBA
QAorLyoKKyAqIFRISVMgRklMRSBJUyBERVJJVkVEIEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5F
UkFURUQgRklMRS4KKyAqIGtlZXBpbmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBi
ZSBkb25lIGJ5IGFkZGluZworICogYSBtYWtlX25hbWVzLnBsIGdlbmVyYXRvciwgb3IgYnkgd3Jp
dGluZyBhIHNlcGFyYXRlCisgKiBnZW5lcmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5LmggYXMgaW5wdXQuCisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5k
ZWYgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAorI2RlZmluZSBHRE9NSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeV9oCisKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tTm9kZS5o
IgorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisg
ICAgY2xhc3MgSFRNTEVsZW1lbnQ7CisKKyAgICBHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsKKworfQorCisjZW5kaWYgLy8gR0RPTUhUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnlfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21F
dmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
ZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9u
IDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3Ry
aW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJp
bmcuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21F
dmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworZXh0ZXJuICJDIiB7CisKK3ZvaWQK
K2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50
VGFyZ2V0Tm9kZSAqdGhpeikKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTsKKyAgICAv
KgorICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0gPSBnZG9tX2V2ZW50X3Rhcmdl
dF9ub2RlX2dldF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19ldmVudF90
YXJnZXRfbm9kZV90eXBlX2FyZyA9IFdlYkNvcmU6OlN0cmluZyhldmVudF90YXJnZXRfbm9kZV90
eXBlX2FyZyk7CisgICAgaXRlbS0+aW5pdEV2ZW50VGFyZ2V0Tm9kZShfZ19ldmVudF90YXJnZXRf
bm9kZV90eXBlX2FyZyk7CisgICAgKi8KK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTEgQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2Rl
Lm9yZykKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11
ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpZm5kZWYgR2RvbURPTUJpbmRpbmdfaAorI2RlZmluZSBHZG9tRE9N
QmluZGluZ19oCisKKyNpbmNsdWRlIDxranMvaW50ZXJwcmV0ZXIuaD4KKyNpbmNsdWRlIDxranMv
bG9va3VwLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRlICJnZG9t
L0dkb21Ob2RlLmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vUHJp
dmF0ZUludEdkb21Ob2RlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEF0
b21pY1N0cmluZzsKKyAgICBjbGFzcyBEb2N1bWVudDsKKyAgICBjbGFzcyBFdmVudDsKKyAgICBj
bGFzcyBGcmFtZTsKKyAgICBjbGFzcyBLVVJMOworICAgIGNsYXNzIE5vZGU7CisgICAgY2xhc3Mg
U3RyaW5nOworCisjaWYgRU5BQkxFKFNWRykKKyAgICBjbGFzcyBTVkdFbGVtZW50OworI2VuZGlm
CisKKyAgICBjbGFzcyBHRE9NU2NyaXB0SW50ZXJwcmV0ZXIgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgc3RhdGljIHZvaWQqIGdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpOworICAgICAg
ICBzdGF0aWMgdm9pZCogcHV0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVj
dCopOworICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFu
ZGxlKTsKKworICAgICAgICBzdGF0aWMgdm9pZCogZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3Vt
ZW50KiwgTm9kZSopOworICAgICAgICBzdGF0aWMgdm9pZCogcHV0RE9NTm9kZUZvckRvY3VtZW50
KERvY3VtZW50KiwgTm9kZSosIEdET01Ob2RlKiBub2RlV3JhcHBlcik7CisgICAgICAgIHN0YXRp
YyB2b2lkIGZvcmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAgICAg
ICAgc3RhdGljIHZvaWQgZm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOwor
CQkjaWYgMAorICAgICAgICBzdGF0aWMgdm9pZCB1cGRhdGVET01Ob2RlRG9jdW1lbnQoTm9kZSos
IERvY3VtZW50KiBvbGREb2MsIERvY3VtZW50KiBuZXdEb2MpOworICAgICAgICBzdGF0aWMgdm9p
ZCBtYXJrRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCopOworCQkjZW5kaWYKKyAgICB9Owor
CisgICAgLy8gUmV0cmlldmUgZnJvbSBjYWNoZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBm
b3IgYSBET00gb2JqZWN0LgorICAgIHRlbXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3MgR2RvbURP
TU9iaj4gaW5saW5lIHZvaWQqIGNhY2hlRE9NT2JqZWN0KERPTU9iaiogZG9tT2JqKQorICAgIHsK
KyAgICAgICAgaWYgKCFkb21PYmopCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGht
bW0uLi4gKi8KKyAgICAgICAgaWYgKHZvaWQqIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NT2JqZWN0KGRvbU9iaikpCisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBH
RE9NT2JqZWN0KiByZXQgPSBuZXcgR2RvbURPTU9iaihkb21PYmopOworCQlkb21PYmotPnJlZigp
OworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZG9t
T2JqLCByZXQpOworICAgIH0KKworI2lmIEVOQUJMRShTVkcpCisgICAgLy8gUmV0cmlldmUgZnJv
bSBjYWNoZSwgb3IgY3JlYXRlLCBhIEdkb20gd3JhcHBlciBmb3IgYW4gU1ZHIERPTSBvYmplY3Qu
CisgICAgdGVtcGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2JqPiBpbmxpbmUgdm9p
ZCogY2FjaGVTVkdET01PYmplY3QoRE9NT2JqKiBkb21PYmosIFNWR0VsZW1lbnQqIGNvbnRleHQp
CisgICAgeworICAgICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAv
KiBYWFggaG1tbS4uLiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlwdEludGVy
cHJldGVyOjpnZXRET01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7Cisg
ICAgICAgIEdET01PYmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaiwgY29udGV4dCk7
CisJCWRvbU9iai0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OnB1dERPTU9iamVjdChkb21PYmosIHJldCk7CisgICAgfQorI2VuZGlmCisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdkb21ET01CaW5kaW5nX2gKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21ET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlR2RvbURP
TU9iamVjdC5oIgorCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRE9NT2JqZWN0
LCBnZG9tX2RvbV9vYmplY3QsIEdfVFlQRV9PQkpFQ1QpOworCitzdHJ1Y3QgX0dkb21ET01PYmpl
Y3RQcml2YXRlIHsKKyAgICAgR0RPTU9iamVjdCAqbV9ub2RlOworfTsKKworI2RlZmluZSBHRE9N
X0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRF
KChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdFByaXZhdGUpKQorCit2
b2lkCitnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCwg
R0RPTU9iamVjdCAqIGl0ZW0pCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBH
RE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcHJpdi0+bV9ub2RlID0g
aXRlbTsKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5yZWYoKTsqLworfQorCitHRE9NT2Jq
ZWN0ICoKK2dkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0
KQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dF
VF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJldHVybiBwcml2LT5tX25vZGU7Cit9CisKK3N0YXRp
YyB2b2lkIGdkb21fZG9tX29iamVjdF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAg
R2RvbURPTU9iamVjdCogcmVxdWVzdCA9IEdET01fRE9NX09CSkVDVChvYmplY3QpOworICAgIEdk
b21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKKworICAgIC8qcHJpdi0+
bV9ub2RlLT5pbXBsKCktPmRlcmVmKCk7Ki8KKyAgICBkZWxldGUgcHJpdi0+bV9ub2RlOyAvKiBj
YWxscyBtX2ltcGwtPmRlcmVmKCkgKi8KKworICAgIEdfT0JKRUNUX0NMQVNTKGdkb21fZG9tX29i
amVjdF9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCBn
ZG9tX2RvbV9vYmplY3RfY2xhc3NfaW5pdChHZG9tRE9NT2JqZWN0Q2xhc3MqIHJlcXVlc3RDbGFz
cykKK3sKKyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdkb21f
ZG9tX29iamVjdF9maW5hbGl6ZTsKKworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1
ZXN0Q2xhc3MsIHNpemVvZihHZG9tRE9NT2JqZWN0UHJpdmF0ZSkpOworfQorCitzdGF0aWMgdm9p
ZCBnZG9tX2RvbV9vYmplY3RfaW5pdChHZG9tRE9NT2JqZWN0KiByZXF1ZXN0KQoreworICAgIEdk
b21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJl
cXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OworfQorCit9IC8qIGV4dGVybiAiQyIg
Ki8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtl
bm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBw
bGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
KyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21ET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorCitleHRlcm4gIkMiIHsKKwordm9pZAorZ2Rv
bV9kb21fb2JqZWN0X2luaXRfZG9tX29iamVjdCAoR2RvbURPTU9iamVjdCAqdGhpeikKK3sKKyAg
ICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTsKKwkvKgorICAgIFdlYkNvcmU6OkRPTU9iamVjdCAq
IGl0ZW0gPSBnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgV2ViQ29yZTo6
U3RyaW5nIF9nX2RvbV9vYmplY3RfdHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJpbmcoZG9tX29iamVj
dF90eXBlX2FyZyk7CisgICAgaXRlbS0+aW5pdERPTU9iamVjdChfZ19kb21fb2JqZWN0X3R5cGVf
YXJnKTsKKwkqLworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNjY4IEBACisjCisjIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorIyBDb3B5cmlnaHQgKEMp
IDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyMgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg
VVNBLgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JHT2JqZWN0OworCisjIERlZmF1bHQgTGljZW5j
ZSBUZW1wbGF0ZXMKK215ICRsaWNlbmNlVGVtcGxhdGUgPSA8PCAiRU9GIjsKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbFxAbGtjbC5u
ZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBcQGF0b2tlci5jb20+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCitFT0YKKworbXkgJWltcGxJbmNs
dWRlcyA9ICgpOworbXkgJWhkckluY2x1ZGVzID0gKCk7CitteSAlaGRyUHJvcEluY2x1ZGVzID0g
KCk7CitteSAlaW1wbFR5cGVkZWZzID0gKCk7CisKKyMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgorc3Vi
IG5ldworeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkcmVmZXJlbmNlID0geyB9
OworCisgICAgJGNvZGVHZW5lcmF0b3IgPSBzaGlmdDsKKyAgICAkb3V0cHV0RGlyID0gc2hpZnQ7
CisKKyAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKKyAgICByZXR1cm4gJHJlZmVyZW5j
ZTsKK30KKworc3ViIGZpbmlzaAoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKK30KKworIyBQ
YXJhbXM6ICdkb21DbGFzcycgc3RydWN0CitzdWIgR2VuZXJhdGVJbnRlcmZhY2UKK3sKKyAgICBt
eSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJGRl
ZmluZXMgPSBzaGlmdDsKKworICAgIG15ICRuYW1lID0gJGRhdGFOb2RlLT5uYW1lOworCisgICAg
cHJpbnQgIiRuYW1lXG4iOworCisgICAgJG9iamVjdC0+R2VuZXJhdGUoJGRhdGFOb2RlKTsKKwor
ICAgICMgV3JpdGUgY2hhbmdlcworICAgIG15ICRmbmFtZSA9ICJHZG9tXyIgLiAkbmFtZTsgI2Rl
Y2FtZWxpemUoJG5hbWUpOworICAgICRmbmFtZSA9fiBzL18vL2c7CisgICAgJG9iamVjdC0+V3Jp
dGVEYXRhKCRmbmFtZSk7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3Vi
IEdlbmVyYXRlTW9kdWxlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRh
Tm9kZSA9IHNoaWZ0OworCisgICAgJG1vZHVsZSA9ICRkYXRhTm9kZS0+bW9kdWxlOworfQorCitz
dWIgQ2xzVG9HT2JqVHlwZQoreworICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICByZXR1
cm4gdWMoZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSkKK30KKworc3ViIEdldFBhcmVudENsYXNzTmFt
ZQoreworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgIyA/PyBxdWU/PworICAgICNy
ZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgcmV0
dXJuICJHZG9tRE9NT2JqZWN0IiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICBy
ZXR1cm4gIkdkb20iIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+cGFy
ZW50cygwKSk7Cit9CitzdWIgR2V0UGFyZW50R09ialR5cGUKK3sKKyAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR0RPTV9UWVBFX0RPTV9PQkpF
Q1QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiR0RPTV9UWVBF
XyIgLiBDbHNUb0dPYmpUeXBlKCRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUt
PnBhcmVudHMoMCkpKTsKK30KKworCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2Ft
ZWxDYXNlIDAuMDEKK3N1YiBjYW1lbGl6ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAgam9p
bignJywgbWFweyB1Y2ZpcnN0ICRfIH0gc3BsaXQoLyg/PD1bQS1aYS16XSlfKD89W0EtWmEtel0p
fFxiLywgJHMpKTsKK30KKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2Fz
ZSAwLjAxCitzdWIgZGVjYW1lbGl6ZQoreworICAgIG15ICRzID0gc2hpZnQ7CisgICAgJHMgPX4g
c3soW15hLXpBLVpdPykoW0EtWl0qKShbQS1aXSkoW2Etel0/KX17CisgICAgICAgIG15ICRmYyA9
IHBvcygkcyk9PTA7CisgICAgICAgIG15ICgkcDAsJHAxLCRwMiwkcDMpID0gKCQxLGxjJDIsbGMk
MywkNCk7CisgICAgICAgIG15ICR0ID0gJHAwIHx8ICRmYyA/ICRwMCA6ICdfJzsKKyAgICAgICAg
JHQgLj0gJHAzID8gJHAxID8gIiR7cDF9XyRwMiRwMyIgOiAiJHAyJHAzIiA6ICIkcDEkcDIiOwor
ICAgICAgICAkdDsKKyAgICB9Z2U7CisgICAgJHM7Cit9CisKK3N1YiBHZXRIZHJOYW1lCit7Cisg
ICAgICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKKwor
ICAgIHJldHVybiAiR2RvbSRuYW1lIjsKK30KKworc3ViIEdldENsYXNzTmFtZQoreworICAgICAg
ICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICBy
ZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRHSW5jbHVkZUhkcgoreworICAgIG15ICR0
eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0SGRyTmFtZSgkdHlwZSk7CisgICAg
ICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFtZSgkdHlwZSkpOworCisgICAgICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImRvdWJsZSI7
CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1w
IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsKKyAgICAg
ICAgcmV0dXJuICJSYW5nZS5oIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJl
dHVybiAiZ2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIGlmICR0eXBlIGVxICJE
T01PYmplY3QiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGNoYXIi
OworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAt
IERPTSBjbGFzcyB3cmFwcGVyCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5
cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IiBpZiAkdHlwZSBlcSAiRXZlbnRUYXJnZXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmpl
Y3QuaCIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0
LmgiIGlmICR0eXBlIGVxICJib29sZWFuIjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0
LmgiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUuaCI7Cit9CisKKyMg
cmV0dXJucyAxIGlmIHdlIG5lZWQgdG8gY3JlYXRlIGEgZ29iamVjdCB3cmFwcGVyIGFyb3VuZCB0
aGUgcmV0dXJuIHJlc3VsdAorc3ViIElzR0RPTUNsYXNzVHlwZQoreworICAgIG15ICR0eXBlID0g
c2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJF
dmVudExpc3RlbmVyIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ci
OworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImJv
b2xlYW4iOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJl
dHVybiAwIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
InNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQi
OworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAg
IHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gMTsKK30KKwor
c3ViIEdldFByb3BHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUg
PSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0eXBlIGVx
ICJET01TdHJpbmciOworICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7Cisg
ICAgcmV0dXJuICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAg
ICByZXR1cm4gImRvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJib29s
ZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAkdHlwZSBl
cSAiY2hhciI7CisgICAgcmV0dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0
dXJuICJpbnQiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5
cGUgZXEgInVjaGFyIjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7
CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAidWludCIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCBsb25nIjsKKyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIHNob3J0IjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAj
IFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2JqZWN0IjsKK30K
Kworc3ViIEdldEdUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5h
bWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShH
ZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5v
ZGUgKiIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKyAgICAgICAgcmV0dXJuICJnY2hhciAq
IiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJnZmxvYXQiIGlmICR0
eXBlIGVxICJmbG9hdCI7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVI
b3cgIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJldHVybiAiZ2RvdWJsZSIg
aWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAiZ2Jvb2xlYW4iIGlmICR0eXBl
IGVxICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuICJnY2hhciIgaWYgJHR5cGUgZXEgImNoYXIi
OworICAgICAgICByZXR1cm4gImdsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJl
dHVybiAiZ3Nob3J0IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gImd1Y2hh
ciIgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJuICJndWludCIgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJnaW50IiBpZiAkdHlwZSBlcSAiaW50IjsK
KyAgICAgICAgcmV0dXJuICJndWludCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAg
ICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAg
IHJldHVybiAiZ3VpbnQ2NCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAg
ICAgIHJldHVybiAiZ3VzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAg
ICAgcmV0dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBE
T00gY2xhc3Mgd3JhcHBlcgorCisgICAgICAgIHJldHVybiAidm9pZCIgaWYgJHR5cGUgZXEgInZv
aWQiOworCisgICAgcmV0dXJuICIkbmFtZSAqIjsKK30KKworc3ViIGdldEluY0hkcgoreworICAg
IG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaW5jbHVkZUhkciA9IEdldEdJbmNsdWRlSGRy
KCR0eXBlKTsKKyAgICBpZiAoJGluY2x1ZGVIZHIpIHsKKyAgICAgICAgaWYgKCR0eXBlIGVxICJF
dmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IjsKKyAgICAgICAgfQorICAgICAgICBlbHNpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAg
ICAgICAgICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisg
ICAgICAgICAgICByZXR1cm4gIkdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCI7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gJGluY2x1ZGVIZHI7CisgICAgICAgIH0K
KyAgICB9CisgICAgcmV0dXJuICIiOworfQorCitzdWIgYWRkUHJvcEluY0hkcgoreworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBp
ZiAoJGhkciBuZSAiIikgeworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgewor
ICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3siZ2RvbS8iLiRoZHJ9ID0gMTsKKyAgICAgICAg
ICAgICRoZHJQcm9wSW5jbHVkZXN7Imdkb20vUHJpdmF0ZSIuJGhkcn0gPSAxOworICAgICAgICAg
ICAgJGhkclByb3BJbmNsdWRlc3siZ2RvbS9Qcml2YXRlSW50Ii4kaGRyfSA9IDE7CisgICAgICAg
IH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyRoZHJ9ID0g
MTsKKyAgICAgICAgfQorICAgIH0KKworfQorCitzdWIgYWRkSW5jSGRyCit7CisgICAgbXkgJHR5
cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgk
aGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAg
ICAgICAgICAkaGRySW5jbHVkZXN7Imdkb20vJGhkciJ9ID0gMTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICRoZHJJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9CisK
K30KKworc3ViIGFkZEluY0JvZHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkg
JGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAg
aWYgKElzR0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
Imdkb20vJGhkciJ9ID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRpbXBsSW5j
bHVkZXN7JGhkcn0gPSAxOworICAgICAgICB9CisgICAgfQorfQorCitzdWIgR2V0UHJpdkZuCit7
CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1l
ID0gc2hpZnQ7CisgICAgbXkgJHJlcyA9IHNoaWZ0OworICAgIG15ICRwYXJtID0gc2hpZnQ7CisK
KyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICByZXR1
cm4gIldlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqICRyZXMgPSBzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpFdmVudFRhcmdldE5vZGUqPihnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKHNl
bGYpKTsiOworICAgIH0KKyAgICByZXR1cm4gIldlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiAk
cmVzID0gKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgkcGFybSkpOyI7Cit9CisKK3N1
YiBza2lwUHJvcFRlbXBvcmFyaWx5Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAk
cHJvcF90eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXAgTWVkaWFMaXN0CisgICAgaWYgKCRwcm9w
X3R5cGUgZXEgInN0eWxlc2hlZXRzOjpNZWRpYUxpc3QiKSB7CisgICAgICAgIHJldHVybiAxOwor
ICAgIH0KKworICAgICNpZiAoJHByb3BfdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgIyAg
ICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIENTU1ZhcmlhYmxlc0RlY2xhcmF0aW9u
CisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIikgeworICAg
ICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24KKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7Cisg
ICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgRXZlbnRM
aXN0ZW5lcgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIpIHsKKyAgICAj
ICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgRE9NV2luZG93CisgICAgI2lmICgk
cHJvcF90eXBlIGVxICJET01XaW5kb3ciKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQor
CisgICAgIyBza2lwIENvbnN0cnVjdG9ycyAod2hhdGV2ZXIgdGhleSBhcmUpIGZvciBub3cuCisg
ICAgaWYgKCRwcm9wX3R5cGUgPX4gL0NvbnN0cnVjdG9yJC8pIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgIyBjYW52YXMyZC4uLi4KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiY3Vz
dG9tIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBl
cSAiQXJyYXkiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmICgkcHJvcF90
eXBlIGVxICJET01UaW1lU3RhbXAiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
ICMgVE9ETzogU1ZHCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJHR5cGUpIHx8
ICRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdWIgVXNlc01hbnVhbFRvSlNJbXBs
ZW1lbnRhdGlvbgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXBwZWQgb3V0
IENhbnZhc1BpeGVsQXJyYXkgLSBzZWUgSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBmb3Ig
d2h5LgorICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJOb2RlIiBvciAkdHlwZSBlcSAiRG9jdW1l
bnQiIG9yICR0eXBlIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IgJHR5cGUgZXEgIlNWR1BhdGhTZWci
IG9yICR0eXBlIGVxICJTdHlsZVNoZWV0IiBvciAkdHlwZSBlcSAiQ1NTUnVsZSIgb3IgJHR5cGUg
ZXEgIkNTU1ZhbHVlIiBvciAkdHlwZSBlcSAiRXZlbnQiIG9yICR0eXBlIGVxICJFbGVtZW50IiBv
ciAkdHlwZSBlcSAiVGV4dCI7CisgICAgcmV0dXJuIDA7Cit9CisKKworIyBHZW5lcmF0ZSBoZWFk
ZXIgYW5kIGltcGwKK3N1YiBHZW5lcmF0ZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAg
ICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgIG15ICRoYXNMZWdhY3lQYXJlbnQgPSAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICBteSAkaGFz
UmVhbFBhcmVudCA9IEB7JGRhdGFOb2RlLT5wYXJlbnRzfSA+IDA7CisgICAgbXkgJGhhc1BhcmVu
dCA9ICRoYXNMZWdhY3lQYXJlbnQgfHwgJGhhc1JlYWxQYXJlbnQ7CisgICAgbXkgJHBhcmVudENs
YXNzTmFtZSA9IEdldFBhcmVudENsYXNzTmFtZSgkZGF0YU5vZGUpOworICAgIG15ICRwYXJlbnRH
T2JqVHlwZSA9IEdldFBhcmVudEdPYmpUeXBlKCRkYXRhTm9kZSk7CisgICAgbXkgJGludGVyZmFj
ZU5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFt
ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgbXkgJGhkck5hbWUgPSBHZXRIZHJOYW1lKCRpbnRlcmZh
Y2VOYW1lKTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGltcGwgaGVhZGVyIHRlbXBsYXRlCisg
ICAgQGNQcmVmaXggPSBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICBwdXNoKEBj
UHJlZml4LCAiXG4iKTsKKworICAgICRpbXBsSW5jbHVkZXN7IkdET01CaW5kaW5nLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8kaGRyTmFtZS5oIn0gPSAxOworICAgICRpbXBsSW5j
bHVkZXN7Imdkb20vUHJpdmF0ZSR7aGRyTmFtZX0uaCJ9ID0gMTsKKworICAgIG15ICRwYXJlbnRJ
bnRlcmZhY2VOYW1lID0gIkRPTU9iamVjdCI7CisgICAgbXkgJHBhcmVudEdJZmFjZU5hbWUgPSAi
R0RPTU9iamVjdCI7CisgICAgbXkgJHBhcmVudEhkck5hbWUgPSAiR2RvbURPTU9iamVjdCI7Cisg
ICAgaWYgKCRwYXJlbnRDbGFzc05hbWUgbmUgIkdPYmplY3QiKQorICAgIHsKKyAgICAgICAgJHBh
cmVudEludGVyZmFjZU5hbWUgPSBzdWJzdHIoJHBhcmVudENsYXNzTmFtZSwgNCk7CisgICAgICAg
IGlmICgkcGFyZW50SW50ZXJmYWNlTmFtZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAg
JHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTSIuc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOwor
ICAgICAgICAgICAgJHBhcmVudEhkck5hbWUgPSBHZXRIZHJOYW1lKCRwYXJlbnRJbnRlcmZhY2VO
YW1lKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgICRw
YXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgICAgICB9CisgICAgICAgICRpbXBs
SW5jbHVkZXN7Imdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJnZG9tL1ByaXZhdGUke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICRo
ZHJJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICMkaGRy
SW5jbHVkZXN7IlByaXZhdGUke3BhcmVudEhkck5hbWV9LmgifSA9IDA7CisgICAgfQorCisgICAg
IyBUT0RPIC0gbWFrZSB0aGVzZSBvbmx5IGluY2x1ZGUgd2hlcmUgbmVlZGVkLCBsaWtld2lzZSB0
aGUKKyAgICAjIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0b0dET00sIHRvbworICAgICRpbXBsSW5j
bHVkZXN7Ik5vZGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFbGVtZW50LmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siQ1NTVmFsdWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVz
eyJDU1NSdWxlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siSFRNTENvbGxlY3Rpb24uaCJ9
ID0gMTsKKyAgICAjJGltcGxJbmNsdWRlc3siU1ZHUGF0aFNlZy5oIn0gPSAxOworICAgICRpbXBs
SW5jbHVkZXN7IlN0eWxlU2hlZXQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFdmVudC5o
In0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNhbnZhc1BpeGVsQXJyYXkuaCJ9ID0gMTsKKyAg
ICAkaW1wbEluY2x1ZGVzeyJET01XaW5kb3cuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJU
ZXh0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HU3RyaW5nQ29udmVydC5oIn0g
PSAxOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVhZGVy
IGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAkaGFja0RlY2xzID0gPDwgIkVP
RiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUp
OworICAgIGdwb2ludGVyIHRvR0RPTShDU1NWYWx1ZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKENTU1J1bGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShFbGVtZW50KiBub2RlKTsK
KyAgICBncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RP
TShIVE1MQ29sbGVjdGlvbiogbm9kZSk7CisgICAgLy9ncG9pbnRlciB0b0dET00oU1ZHUGF0aFNl
Zyogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFN0eWxlU2hlZXQqIG5vZGUpOworICAgIGdw
b2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RP
TShFdmVudFRhcmdldCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBub2RlKTsK
KyAgICBncG9pbnRlciB0b0dET00oQ2FudmFzUGl4ZWxBcnJheSogbm9kZSk7CisgICAgZ3BvaW50
ZXIgdG9HRE9NKERPTVdpbmRvdyogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFRleHQqIG5v
ZGUpOworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitFT0YKKworICAgIHB1c2goQGNCb2R5LCAk
aGFja0RlY2xzKTsKKworICAgIHB1c2goQGNCb2R5LCAibmFtZXNwYWNlIFdlYkNvcmUge1xuIik7
CisKKyAgICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQT0RUeXBl
IGZsYWcKKyAgICBteSAkcG9kVHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlBPRFR5cGUifTsKKyAgICBteSAkcGFzc1R5cGUgPSAkcG9kVHlwZSA/ICJKU1NWR1BPRFR5cGVX
cmFwcGVyPCRwb2RUeXBlPioiIDogIiRpbnRlcmZhY2VOYW1lKiI7CisKKyAgICBpZiAoJHtpbnRl
cmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01hbnVhbFRvSlNJ
bXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkg
eworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiSlNDOjpKU1ZhbHVlKiB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogb2JqLCBTVkdFbGVt
ZW50KiBjb250ZXh0KVxuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29u
dGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICAgcHVzaChAY0Jv
ZHksICJKU0M6OkpTVmFsdWUqIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsICRwYXNzVHlwZSBv
YmosIFNWR0VsZW1lbnQqIGNvbnRleHQpXG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgImdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjokcGFzc1R5cGUgb2Jq
KVxuIik7CisgICAgICAgICN9CisKKyAgICAgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKyAgICAg
ICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVy
biBjYWNoZVNWR0RPTU9iamVjdDxKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiwgJGNsYXNz
TmFtZSwgJHtjbGFzc05hbWV9UHJvdG90eXBlPihleGVjLCBvYmosIGNvbnRleHQpO1xuIik7Cisg
ICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENs
YXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gY2FjaGVT
VkdET01PYmplY3Q8JGltcGxDbGFzc05hbWUsICRjbGFzc05hbWUsICR7Y2xhc3NOYW1lfVByb3Rv
dHlwZT4oZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAgICAjfSBlbHNlIHsKKyAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBXZWJDb3JlOjpjYWNoZURPTU9iamVjdDxX
ZWJDb3JlOjokaW50ZXJmYWNlTmFtZSwgR0RPTSRpbnRlcmZhY2VOYW1lPihvYmopO1xuIik7Cisg
ICAgICAgICN9CisgICAgICAgIHB1c2goQGNCb2R5LCAifVxuIik7CisgICAgfQorCisgICAgcHVz
aChAY0JvZHksICJ9IC8qIG5hbWVzcGFjZSBXZWJDb3JlICovXG4iKTsKKyAgICBteSAkaW1wbENv
bnRlbnQgPSAiIjsKKworICAgICMgWFhYIFRPRE8gcHVzaChAY0JvZHksICJ1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTtcblxuIik7CisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xuXG4i
KTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQorICAgIEBoUHJlZml4
ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgICAgICNwdXNoKEBoUHJlZml4
LCAiXG4iKTsKKworICAgICMgSGVhZGVyIGd1YXJkCisgICAgICAgIG15ICRndWFyZCA9ICJfXyIg
LiAkY2xhc3NOYW1lIC4gIl9IX18iOworCisgICAgbXkgJGNsc0NhcHMgPSBzdWJzdHIoQ2xzVG9H
T2JqVHlwZSgkY2xhc3NOYW1lKSwgNSk7CisgICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9ICJnZG9t
XyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKTsKKyAgICAjbXkgJHBhcmVudENsc0NhcHMg
PSAiR0RPTV8iIC4gQ2xzVG9HT2JqVHlwZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisKKyAgICBA
aFByZWZpeEd1YXJkID0gPDwgIkVPRiI7CisjaWZuZGVmICRndWFyZAorI2RlZmluZSAkZ3VhcmQK
K0VPRgorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitHX0JFR0lOX0RFQ0xTCisKK0VP
RgorCisgICAgcHVzaChAaEJvZHlQcmUsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRl
bnQgPSA8PCAiRU9GIjsKKworI2RlZmluZSBHRE9NX1RZUEVfJHtjbHNDYXBzfSAgICAgICAgICAg
ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9
KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01f
VFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX0pKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31f
Q0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9U
WVBFXyR7Y2xzQ2Fwc30sICRjbGFzc05hbWUpQ2xhc3MpCisjZGVmaW5lIEdET01fSVNfJHtjbHND
YXBzfShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9N
X1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdET01fSVNfJHtjbHNDYXBzfV9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfJHtjbHNDYXBz
fSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9
Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9UHJpdmF0ZSAke2NsYXNzTmFt
ZX1Qcml2YXRlOworCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSB7CisgICAgJHtwYXJlbnRDbGFzc05h
bWV9IHBhcmVudF9pbnN0YW5jZTsKKyAgICAke2NsYXNzTmFtZX1Qcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF8ke2NsYXNzTmFtZX1DbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9j
bGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlw
ZSAodm9pZCk7CisKK0VPRgorCisgICAgcHVzaChAaEJvZHksICRpbXBsQ29udGVudCk7CisKKyAg
ICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJHtndWFyZH1fUFJPUF8KKyNkZWZp
bmUgJHtndWFyZH1fUFJPUF8KK0VPRgorCisgICAgcHVzaChAaEJvZHlQcm9wUHJlLCAkaW1wbENv
bnRlbnQpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19CRUdJTl9ERUNMU1xuIik7CisKKyAg
ICAkaGRyUHJvcEluY2x1ZGV7ImdsaWItb2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJbmNs
dWRleyJnZG9tL1ByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgJGhkclBy
b3BJbmNsdWRleyJHRE9NT2JqZWN0LmgifSA9IDE7CisgICAgJGhkclByb3BJbmNsdWRleyIke2lu
dGVyZmFjZU5hbWV9LmgifSA9IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNp
Zm5kZWYgJHtndWFyZH1fSU5UXworI2RlZmluZSAke2d1YXJkfV9JTlRfCisjaW5jbHVkZSAiZ2xp
Yi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9Lmgi
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIK
K0VPRgorCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAgICBp
ZiAoJHtpbnRlcmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01h
bnVhbFRvSlNJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgJGltcGxD
b250ZW50ID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKCR7aW50ZXJmYWNlTmFtZX0qIG5vZGUpOworfSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAqLyAK
K0VPRgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVudCk7CisgICAgfQorICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICJHX0JFR0lOX0RFQ0xTXG4iKTsKKworICAgICNDbGFzcyBk
ZWNsYXJhdGlvbgorICAgICNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAg
ICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUge1xu
Iik7CisgICAgI30gZWxzZSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBH
RE9NJGludGVyZmFjZU5hbWUgOiBwdWJsaWMgJHBhcmVudEdJZmFjZU5hbWUge1xuIik7CisgICAg
ICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdHlwZWRlZiAkcGFyZW50R0lmYWNlTmFtZSBC
YXNlO1xuIik7CisgICAgI30KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHVibGljOlxuIik7
CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRfZ29ial90eXBlKCkgeyBy
ZXR1cm4gR0RPTV9UWVBFXyR7Y2xzQ2Fwc307IH1cbiIpOworCisgICAgbXkgJG5lZWRzU1ZHQ29u
dGV4dCA9IDA7CisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIg
ICAgR0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+
IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6ICIi
KSAuICIpO1xuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVybmFs
LCAiICAgIHZpcnR1YWwgfkdET00kaW50ZXJmYWNlTmFtZSgpO1xuIikgaWYgKCEkaGFzUGFyZW50
IG9yICRpbnRlcmZhY2VOYW1lIGVxICJEb2N1bWVudCIpIG9yICRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciOworCisgICAgaWYgKCEkaGFzUGFyZW50IHx8ICgkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NV2luZG93IikpIHsKKyAgICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAjICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIGlt
cGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxlbWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4dDtcbiIpOworICAgICAgICAjICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5
cGU+ID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2lmIChJc1NWR1R5cGVOZWVkaW5nQ29u
dGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9p
bXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAg
IFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1c
blxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsK
KyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50
PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAg
IFJlZlB0cjwkaW1wbENsYXNzTmFtZSA+IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNlIHsK
KyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFj
ZU5hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH1cblxuIik7CisgICAg
ICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+
IG1faW1wbDtcbiIpOworICAgICAgICAjfQorICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlTmF0aXZlQ29udmVydGVyIn0pIHsKKyAgICAgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSogaW1wbCgpIGNv
bnN0XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB7XG4iKTsKKyAgICAg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNv
cmU6OiRpbnRlcmZhY2VOYW1lKj4oQmFzZTo6aW1wbCgpKTtcbiIpOworICAgICAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIH1cbiIpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFs
LCAifTtcbiIpOworCisgICAgIyBDb25zdHJ1Y3RvcgorICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7
aW50ZXJmYWNlTmFtZX06OkdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRp
bnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCog
Y29udGV4dCIgOiAiIikgLiAiKVxuIik7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01X
aW5kb3ciKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDptX2ltcGwoaW1wbClcbiIpOwor
ICAgIH0gZWxzaWYgKCRoYXNQYXJlbnQpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAk
cGFyZW50R0lmYWNlTmFtZShpbXBsIiAuICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29u
dGV4dCIgOiAiIikgLiAiKVxuIikgaWYgKCRpbnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ciKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRHSWZhY2VO
YW1lKClcbiIpIDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBtX2NvbnRleHQoY29udGV4
dClcbiIpIGlmICRuZWVkc1NWR0NvbnRleHQ7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwg
bV9pbXBsKGltcGwpXG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAg
IHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKworICAgICMgRGVzdHJ1Y3RvcgorICAgIGlmICghJGhh
c1BhcmVudCBvciAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAgIHB1
c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxu
Iik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisKKyAgICAgICAgcHVzaChAY0JvZHks
ICIgICAgbV9pbXBsLmdldCgpLT5kZXJlZigpO1xuIik7CisgICAgICAgIGlmICgkaW50ZXJmYWNl
TmFtZSBlcSAiTm9kZSIpIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6
OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG1faW1wbC0+
ZG9jdW1lbnQoKSwgbV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgI2lmICgkcG9kVHlwZSkgeworICAgICAgICAgICAgIyAgICBteSAkYW5pbWF0ZWRUeXBl
ID0gJGltcGxDbGFzc05hbWU7CisgICAgICAgICAgICAjICAgICRhbmltYXRlZFR5cGUgPX4gcy9T
VkcvU1ZHQW5pbWF0ZWQvOworCisgICAgICAgICAgICAjICAgICMgU3BlY2lhbCBjYXNlIGZvciBK
U1NWR051bWJlcgorICAgICAgICAgICAgIyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5p
bWF0ZWRUeXBlKCRhbmltYXRlZFR5cGUpIGFuZCAkcG9kVHlwZSBuZSAiZmxvYXQiKSB7CisgICAg
ICAgICAgICAjICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBKU1NWR0R5bmFtaWNQT0RUeXBlV3Jh
cHBlckNhY2hlPCRwb2RUeXBlLCAkYW5pbWF0ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlcihtX2ltcGwu
Z2V0KCkpO1xuIik7CisgICAgICAgICAgICAjICAgIH0KKyAgICAgICAgICAgICN9CisgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZv
cmdldERPTU9iamVjdChtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBw
dXNoKEBjQm9keSwgIlxufVxuXG4iKTsKKyAgICB9CisKKyAgICAjIERvY3VtZW50IG5lZWRzIGEg
c3BlY2lhbCBkZXN0cnVjdG9yIGJlY2F1c2UgaXQncyBhIHNwZWNpYWwgY2FzZSBmb3IgY2FjaGlu
Zy4gSXQgbmVlZHMKKyAgICAjIGl0cyBvd24gc3BlY2lhbCBoYW5kbGluZyByYXRoZXIgdGhhbiBy
ZWx5aW5nIG9uIHRoZSBjYWNoaW5nIHRoYXQgTm9kZSBub3JtYWxseSBkb2VzLgorICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RP
TSR7aW50ZXJmYWNlTmFtZX06On5HRE9NJGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1
c2goQGNCb2R5LCAie1xuICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0
RE9NT2JqZWN0KHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihpbXBsKCkp
KTtcbn1cblxuIik7CisgICAgfQorCisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhk
ck5hbWV9LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1lfS5oIn0g
PSAxOworICAgICRpbXBsSW5jbHVkZXN7IkdET01PYmplY3QuaCJ9ID0gMTsKKworICAgICRpbXBs
VHlwZWRlZnN7IiRjbGFzc05hbWUifSA9IDE7CisgICAgJGltcGxUeXBlZGVmc3siJHtjbGFzc05h
bWV9Q2xhc3MifSA9IDE7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHByaXZhdGUuaD4gCisjaW5j
bHVkZSAiRE9NV2luZG93LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8K
KyNpbmNsdWRlICJOb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8K
KyNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRp
b25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1BhdHRlcm4uaCIgLyogeXVrazogVE9ETyAtIG1ha2Ug
dGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc0dyYWRpZW50LmgiIC8qIHl1a2s6IFRP
RE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNTdHlsZS5oIiAvKiB5
dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNp
bmNsdWRlIDxnZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0Lmg+IC8qIHl1a2s6IFRPRE8gLSBtYWtl
IHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlIDxnZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaD4g
LyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgPGdkb20vUHJp
dmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaD4gLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRp
b25hbCBvbiBFdmVudFRhcmdldCovCisjaW5jbHVkZSAiZ2RvbS9HU3RyaW5nQ29udmVydC5oIgor
I2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKKyNpbmNsdWRlIDxnZG9tLyR7aGRyTmFtZX0u
aD4KKyNpbmNsdWRlIDxnZG9tL1ByaXZhdGUke2hkck5hbWV9Lmg+CisjaW5jbHVkZSA8Z2RvbS9Q
cml2YXRlSW50JHtoZHJOYW1lfS5oPgorI2luY2x1ZGUgPGdkb20vJHtoZHJOYW1lfXByb3BzLmg+
CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5j
bHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAidXN0cmluZy5oIgorI2luY2x1ZGUgIktV
UkwuaCIKKworI2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKKyNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNT
U1J1bGUuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIlN0eWxlU2hl
ZXQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIK
KyNpbmNsdWRlIDxnZG9tL0dkb21FdmVudC5oPgorCisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQ
cml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyR7
aGFja0RlY2xzfQorCitHX0JFR0lOX0RFQ0xTCisKK0dfREVGSU5FX1RZUEUoJHtjbGFzc05hbWV9
LCAke2xjYXNlX2lmYWNlbmFtZX0sICR7cGFyZW50R09ialR5cGV9KTsKKworLyoKK3N0cnVjdCBf
JHtjbGFzc05hbWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1l
fSAqaXRlbTsKK307CisKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9QUklWQVRFKG9iaikg
KEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30s
ICR7Y2xhc3NOYW1lfVByaXZhdGUpKQorKi8KK0dfRU5EX0RFQ0xTCitXZWJDb3JlOjoke2ludGVy
ZmFjZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0g
KnJlcXVlc3QpCit7CitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsK
KworICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyAgICBHRE9NJHtpbnRlcmZhY2VO
YW1lfSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19jYXN0PEdET00ke2ludGVyZmFjZU5hbWV9Kj4o
Z2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4ocmVzLT5p
bXBsKCkpOworRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
IyBQcm9wZXJ0aWVzCisgICAgbXkgJGZ1bmN0aW9uTmFtZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5h
bWU7IAorICAgIFNLSVBQUk9QOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5h
dHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJvcE5hbWUgPSBkZWNhbWVsaXplKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlw
ZSk7CisgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKyAgICAg
ICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQ
UFJPUDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVj
bGFyYXRpb24iOworCisgICAgICAgIGlmIChza2lwUHJvcFRlbXBvcmFyaWx5KCR0eXBlLCAkcHJv
cF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAgICAgfQorICAgICAg
ICAgICAgCisgICAgICAgIGFkZFByb3BJbmNIZHIoJHByb3BfdHlwZSk7CisKKyAgICAgICAgI3B1
c2goQGhCb2R5UHJvcCwgIldFQktJVF9BUEkgJHR5cGVcbiRmdW5jdGlvbk5hbWVQcmVmaXgiIC4g
Il9wcm9wX2dldF8iIC4gIiRwcm9wTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAg
ICAgI3B1c2goQGhCb2R5UHJvcCwgIldFQktJVF9BUEkgdm9pZFxuJGZ1bmN0aW9uTmFtZVByZWZp
eCIgLiAiX3Byb3Bfc2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcsICR0eXBlIiAuICJ2
YWx1ZSk7XG5cbiIpOworICAgIH0KKworICAgICMgUHJvcGVydGllcworICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworfQorCitHX0JFR0lOX0RFQ0xTCisKK2VudW0geworICAgIEJST1dTRVJf
RVZFTlQsCisgICAgTEFTVF9TSUdOQUwKK307CisKK3N0YXRpYyBndWludCBldmVudF9zaWduYWxz
W0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKKworZW51bSB7CisgICAgUFJPUF8wLAorRU9GCisgICAg
cHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgbXkgQHR4dF9pbnN0YWxsX3By
b3BzID0gKCk7CisgICAgbXkgQHR4dF9zZXRfcHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X2dldF9w
cm9wcyA9ICgpOworCisgICAgbXkgJHByaXZfZm4gPSBHZXRQcml2Rm4oJGludGVyZmFjZU5hbWUs
ICR7bGNhc2VfaWZhY2VuYW1lfSwgImdzZWxmIiwgInNlbGYiKTsKKworICAgIG15ICR0eHRfZ2V0
X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3By
b3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAg
ICAgICAgICBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMg
KiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2Jq
ZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVz
aChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICBteSAkdHh0X3NldF9wcm9w
ID0gPDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0
eV9mbihHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgR1ZhbHVlICogdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBHUGFyYW1TcGVj
ICogcHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9ICpzZWxmID0gR0RPTV8ke2Nsc0NhcHN9KG9i
amVjdCk7CisgICAgJHByaXZfZm4KKyAgICBzd2l0Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1
c2goQHR4dF9zZXRfcHJvcHMsICR0eHRfc2V0X3Byb3ApOworCisgICAgU0tJUEVOVU06IGZvcmVh
Y2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15
ICRwcm9wX25hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgIG15ICRz
ZXRwcm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkcHJvcF9uYW1lKTsK
KyAgICAgICAgbXkgJGdldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0
KCRwcm9wX25hbWUpOworCisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJHByb3Bf
bmFtZSk7CisgICAgICAgIG15ICRwcm9wQ2FwcyA9IHVjKCRwcm9wTmFtZSk7CisgICAgICAgIG15
ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0
eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICR7cHJvcEVudW19ID0gIlBS
T1BfJHtwcm9wQ2Fwc30iOworICAgICAgICBteSAke3Byb3BfZ3R5cGV9ID0gZGVjYW1lbGl6ZSgk
cHJvcF90eXBlKTsKKyAgICAgICAgaWYgKCRwcm9wX2d0eXBlIGVxICJldmVudF90YXJnZXQiKSB7
CisgICAgICAgICAgICAkcHJvcF9ndHlwZSA9ICJldmVudF90YXJnZXRfbm9kZSI7CisgICAgICAg
IH0KKyAgICAgICAgbXkgJHtwcm9wR1R5cGV9ID0gdWMoJHByb3BfZ3R5cGUpOworICAgICAgICBt
eSAkbGNhc2VfZ3R5cGVuYW1lID0gImdkb21fIiAuICRwcm9wX2d0eXBlOworCisgICAgICAgIG15
ICRjdXN0b20gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b20ifTsKKworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0pIHsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07
CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0
aW9uIjsKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUp
KSB7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgICAgICAK
KyAgICAgICAgcHVzaChAY0JvZHlQcml2LCAiICAgICR7cHJvcEVudW19LFxuIik7CisKKyAgICAg
ICAgbXkgJGd0eXBlID0gR2V0UHJvcEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAkZ3Bh
cmFtZmxhZyA9ICJHX1BBUkFNX1JFQURBQkxFIjsKKyAgICAgICAgbXkgJHdyaXRlYWJsZSA9ICRh
dHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS87CisgICAgICAgIG15ICRjb25zdCA9ICJyZWFk
LW9ubHkgIjsKKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgJGN1c3RvbSkgeworICAgICAgICAg
ICAgJGNvbnN0ID0gInJlYWQtb25seSAoZHVlIHRvIGN1c3RvbSBmdW5jdGlvbnMgbmVlZGVkIGlu
IGdkb213ZWJraXQpIjsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCR3cml0ZWFibGUgJiYgISRjdXN0b20pIHsKKyAgICAgICAgICAgICRncGFyYW1m
bGFnID0gIkdfUEFSQU1fUkVBRFdSSVRFIjsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLXdy
aXRlICI7CisgICAgICAgIH0KKworICAgICAgICBteSAkX2d0eXBlID0gJGd0eXBlOworICAgICAg
ICBpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAkX2d0eXBlID0gInVpbnQi
OyAjIHl1ay4KKyAgICAgICAgfQorICAgICAgICAkbmljayA9IGRlY2FtZWxpemUoIiR7aW50ZXJm
YWNlTmFtZX1fJHtwcm9wTmFtZX0iKTsKKyAgICAgICAgJGxvbmcgPSAiJHtjb25zdH0gJHt0eXBl
fSAke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IjsKKyAgICAgICAgbXkgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChn
X2tsYXNzLCAke3Byb3BFbnVtfSwKKyAgICAgICAgICAgIGdfcGFyYW1fc3BlY18ke19ndHlwZX0g
KCIke3Byb3BOYW1lfSIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAgICAiJG5pY2siLCAvKiBz
aG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICIkbG9uZyIsIC8qIGxvbmdlciAt
IGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworRU9GCisgICAgICAg
IHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gIi8qIFRPRE8hICRndHlwZSAqL1xuIjsKKworICAgICAgICBpZiAo
JHdyaXRlYWJsZSkgeworCisgICAgICAgICAgICBteSAkb2sgPSAwOworICAgICAgICAgICAgbXkg
JGNvbnZlcnRfZm4gPSAiIjsKKyAgICAgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsK
KyAgICAgICAgICAgICAgICAkY29udmVydF9mbiA9ICJXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4
IjsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
ZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRl
cmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIg
c3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAg
JG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgImZsb2F0IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZh
Y2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1
ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9r
ID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEg
InVpbnQ2NCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNp
ZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VO
YW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYg
LSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0g
MTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxv
bmciKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRv
dyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0
J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAg
ICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIp
IHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBl
IGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJjaGFyIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICAjIFhYWCBUT0RPIC0gc2tpcCBMb2NhdGlvbgorICAgICAg
ICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJMb2NhdGlvbiIpIHsKKyAgICAgICAgICAgICAg
ICAkb2sgPSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoJG9rKSB7CisgICAg
ICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICBjYXNlICR7cHJvcEVudW19Olxu
ICAgIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0
ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAg
ICAgICBnc2VsZi0+c2V0JHtzZXRwcm9wX25hbWVfZm59KCR7Y29udmVydF9mbn0oZ192YWx1ZV9n
ZXRfJGd0eXBlICh2YWx1ZSkpIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3By
b3BzLCAiLCBlYyIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAg
ICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIik7XG4iKTsKKworICAgICAgICAgICAgICAg
IHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgIGNh
c2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisKKyAgICAgICAgbXkgJGV4Y2VwdGlvbiA9ICIi
OworICAgICAgICBpZiAoQHskYXR0cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfSkgeworICAgICAg
ICAgICAgJGV4Y2VwdGlvbiA9ICJlYyI7CisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3Bz
LCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICB9
CisKKyAgICAgICAgbXkgJGNvbnZlcnRfZm4gPSAiIjsKKyAgICAgICAgbXkgJHBvc3RfY29udmVy
dF9mbiA9ICIiOworICAgICAgICBteSAkZG9uZSA9IDA7CisgICAgICAgIGlmICgkZ3R5cGUgZXEg
InN0cmluZyIpIHsKKyAgICAgICAgICAgICRjb252ZXJ0X2ZuID0gIl9HX0dFVF9VVEY4KCI7Cisg
ICAgICAgICAgICAkcG9zdF9jb252ZXJ0X2ZuID0gIikiOworICAgICAgICB9CisgICAgICAgIGVs
c2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9ICJX
VEY6OmdldFB0cigke2xjYXNlX2d0eXBlbmFtZX1fZ2V0X3ByaXZhdGUoIjsKKyAgICAgICAgICAg
ICMkY29udmVydF9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNlTmFtZSwgJHtsY2FzZV9ndHlwZW5h
bWV9LCAiZ3NlbGYiLCAic2VsZiIpOworICAgICAgICAgICAgIyRjb252ZXJ0X2ZuID0gIiR7bGNh
c2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZShQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cHJvcF90eXBl
fT4oIjsKKyAgICAgICAgICAgICMkcG9zdF9jb252ZXJ0X2ZuID0gIikiOworICAgICAgICAgICAg
bXkgJGRvbW9ialR5cGUgPSAiR0RPTSIuJHByb3BfdHlwZTsKKyAgICAgICAgICAgICR0eHRfZ2V0
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlw
ZX0+IHB0ciA9IGdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KTsKKyAgICAg
ICAgZ192YWx1ZV9zZXRfb2JqZWN0ICh2YWx1ZSwgV2ViQ29yZTo6dG9HRE9NKHB0ci5nZXQoKSkp
OworRU9GCisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsK
KyAgICAgICAgICAgICRkb25lID0gMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghJGRvbmUp
IHsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIGdfdmFsdWVfc2V0
XyRfZ3R5cGUgKHZhbHVlLCAke2NvbnZlcnRfZm59Z3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgk
e2V4Y2VwdGlvbn0pJHtwb3N0X2NvbnZlcnRfZm59KTtcbiIpOworICAgICAgICB9CisKKyAgICAg
ICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgYnJlYWs7XG4gICAgfVxuIik7CisKKyAg
ICAgICAgIyBpcyB0aGlzIF9lbnRpcmVseV8gbmVjZXNzYXJ5Pz8/CisgICAgICAgICMgY2FuIGl0
IGJlIGRvbmUgd2l0aCBnZW5lcmljIGdfcGFyYW1fc3BlY19ndHlwZQorICAgICAgICAjIGFuZCBn
ZXR0aW5nIGEgZmV3IHRoaW5ncywgaWdub3JpbmcgdGhlIG1pbi1tYXggZm9yIGV4YW1wbGU/Cisg
ICAgICAgIGlmICgkZ3R5cGUgZXEgImludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5JTlQsICAgICAgICAvKiBtaW4g
Ki8KKyAgICAgICAgICAgICAgICBHX01BWElOVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAg
MCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEg
ImJvb2xlYW4iKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOwor
ICAgICAgICAgICAgICAgIEZBTFNFLCAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNp
ZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0g
PDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5GTE9BVCwgICAgICAgIC8qIG1pbiAqLwor
ICAgICAgICAgICAgICAgIEdfTUFYRkxPQVQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAs
ICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJk
b3VibGUiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAg
ICAgICAgICAgICAgIEdfTUlORE9VQkxFLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAg
ICAgR19NQVhET1VCTEUsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBk
ZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7Cisg
ICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAg
IDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ2NCwgLyogbWF4
ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgInVsb25nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisg
ICAgICAgICAgICAgICAgR19NQVhVTE9ORywgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwg
ICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxv
bmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAg
ICAgICAgICAgIEdfTUlOTE9ORywgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdf
TUFYTE9ORywgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQg
Ki8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAg
ICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAg
ICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQsIC8qIG1heCAqLworICAgICAg
ICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAo
JGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8
ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAg
ICAgICBHX01BWFVJTlQxNiwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8q
IGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVjaGFyIikgewor
ICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAg
ICBHX01JTklOVDgsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWElOVDgs
IC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YK
KyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJjaGFyIikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWlu
ICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAg
ICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7
CisgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lm
ICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0g
PDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR0RPTV9UWVBFXyR7cHJvcEdUeXBlfSwgLyogZ29i
amVjdCB0eXBlICovCitFT0YKKyAgICAgICAgfQorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9w
cm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8
ICJFT0YiOworICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykke2dwYXJhbWZsYWd9KSk7CisK
K0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3Ap
OworCisKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keVByaXYsICJ9O1xuXG4iKTsKKworCisgICAg
JHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1Rf
V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAg
ICBicmVhazsKKyAgICB9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dl
dF9wcm9wKTsKKworICAgICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAgIGRlZmF1bHQ6Cisg
ICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQs
IHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisgICAgcHVzaChAdHh0X3Nl
dF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisKKyAgICBteSAkdHh0X3NldF9nZXRfcHJvcHMgPSA8
PCAiRU9GIjsKKyAgICBjYXNlIFBST1BfQUdFOgorICAgICAgICBzZWxmLT5hZ2UgPSBnX3ZhbHVl
X2dldF9pbnQgKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBST1BfQUdFOgor
ICAgICAgICBnX3ZhbHVlX3NldF9pbnQodmFsdWUsIHNlbGYtPmFnZSk7CisgICAgICAgIGJyZWFr
OworCisgICAgICAgICsgICBnX3ZhbHVlX2luaXQoJnBhcmFtc1swXSwgR19UWVBFX0ZST01fSU5T
VEFOQ0Uob2JqZWN0KSk7CisgICAgICAgICsgICBnX3ZhbHVlX3NldF9pbnN0YW5jZSgmcGFyYW1z
WzBdLCAoZ3BvaW50ZXIpb2JqZWN0KTsKKworRU9GCisKKyAgICAjIFRPRE86IHdvcmsgb3V0IGlm
IGl0J3MgYXBwcm9wcmlhdGUgdG8gc3BsaXQgdGhpcyBpbnRvIG1hbnkgZGlmZmVyZW50CisgICAg
IyBzaWduYWxzIGUuZy4gImNsaWNrIiBldGMuCisgICAgbXkgJHR4dF9pbnN0YWxsX3NpZ25hbHMg
PSAiIjsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiBvcgorICAgICAg
ICAkaW50ZXJmYWNlTmFtZSBlcSAiWE1MSHR0cFJlcXVlc3QiKSB7CisgICAgICAgICR0eHRfaW5z
dGFsbF9zaWduYWxzID0gPDwgIkVPRiI7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9XU0VSX0VWRU5U
XSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQRV9GUk9NX0NM
QVNTKHJlcXVlc3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9M
QVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHX1NJR05BTF9ERVRBSUxFRCAgKSwKKyAgICAgICAgMCwKKyAgICAgICAgTlVM
TCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JP
T0xFQU4sCisgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9NX1RZUEVfRVZFTlQs
IEdfVFlQRV9CT09MRUFOKTsKK0VPRgorICAgIH0KKworICAgICRpbXBsQ29udGVudCA9IDw8ICJF
T0YiOworCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemUoR09iamVjdCog
b2JqZWN0KQoreworICAgIC8qJHtjbGFzc05hbWV9KiByZXF1ZXN0ID0gR0RPTV8ke2Nsc0NhcHN9
KG9iamVjdCk7Ki8KKyAgICAvKiR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5w
cml2OyovCisKKyAgICAvKkdPYmplY3RDbGFzcyAqcGFyZW50X2NsYXNzID0gZ190eXBlX2NsYXNz
X3BlZWsgKGdfdHlwZV9wZWVrX3BhcmVudCAoJHtwYXJlbnRHT2JqVHlwZX0pKTsqLworCisgICAg
LyogRnJlZSBhbnkgbWVtb3J5IG9yIGNsb3NlIGFueSBmaWxlcyAqLworCisgICAgLypwYXJlbnRf
Y2xhc3MtPiBmaW5hbGl6ZSAob2JqZWN0KTsqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoJHtsY2Fz
ZV9pZmFjZW5hbWV9X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK0B0eHRf
c2V0X3Byb3BzCisKK0B0eHRfZ2V0X3Byb3BzCisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2Vu
YW1lfV9jbGFzc19pbml0KCR7Y2xhc3NOYW1lfUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAg
R09iamVjdENsYXNzICpnX2tsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKHJlcXVlc3RDbGFzcyk7Cisg
ICAgZ19rbGFzcy0+ZmluYWxpemUgPSAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemU7CisgICAg
Z19rbGFzcy0+c2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlf
Zm47CisgICAgZ19rbGFzcy0+Z2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRf
cHJvcGVydHlfZm47CisKK0B0eHRfaW5zdGFsbF9wcm9wcworCiskdHh0X2luc3RhbGxfc2lnbmFs
cworCisgICAgLypnX3R5cGVfY2xhc3NfcmVtb3ZlX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXpl
b2YoJHtjbGFzc05hbWV9UHJpdmF0ZSkpOyovCit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZh
Y2VuYW1lfV9pbml0KCR7Y2xhc3NOYW1lfSogcmVxdWVzdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1l
fVByaXZhdGUqIHByaXYgPSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUocmVxdWVzdCk7Cisg
ICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30KKworRU9GCisKKyAgICBwdXNoKEBjQm9keVBy
aXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZhdGVJbnRH
ZG9tJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0Yi
OworCisjaWZuZGVmICR7Z3VhcmR9X1BSSVZfCisjZGVmaW5lICR7Z3VhcmR9X1BSSVZfCisjaW5j
bHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCIK
KyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisvKiNpbmNsdWRlICJnZG9tL1ByaXZhdGUke3BhcmVu
dEhkck5hbWV9LmgiKi8KKy8qR19CRUdJTl9ERUNMUyovCisvKmNsYXNzIFdlYkNvcmU6OiR7aW50
ZXJmYWNlTmFtZX07Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKworICAg
IHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8
ICJFT0YiOworLy9uYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdET00ke2ludGVyZmFjZU5h
bWV9IDogcHVibGljICR7cGFyZW50R0lmYWNlTmFtZX0geworCitwdWJsaWM6CisgICAgR0RPTSR7
aW50ZXJmYWNlTmFtZX0oV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCkgOiAkcGFyZW50
R0lmYWNlTmFtZX0oaW1wbCkKKyAgICB7IGltcGwtPnJlZigpOyB9CisgICAgfkdET00ke2ludGVy
ZmFjZU5hbWV9KCkgeyBtX2ltcGwtPmRlcmVmKCk7IH0KKworICAgIFdlYkNvcmU6OiR7aW50ZXJm
YWNlTmFtZX0qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGw7IH0KKworCitwcml2YXRlOgor
ICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKm1faW1wbDsKK307CisKK0VPRgorCisgICAg
ICAgICNwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQg
PSA8PCAiRU9GIjsKKy8vfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCit0eXBlZGVmIHN0cnVjdCBf
JHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsKKworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAq
Ciske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsK
KworLypHX0VORF9ERUNMUyovCisKKyNlbmRpZiAvKiAke2d1YXJkfV9QUklWXyAqLworCitFT0YK
KworICAgICNyZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9
Kj4oKFdlYkNvcmU6Ok5vZGUqKShyZXMpKTsKKyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAkaW1w
bENvbnRlbnQpOworCisgICAgICAgICNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NT2JqZWN0Iikg
eworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRv
ci4KKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oIn0gPSAxOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVz
eyRpbmNsdWRlSGRyfSA9IDE7CisgICAgICAgICN9CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7
aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2
YXRlR2RvbURPTU9iamVjdC5oIn0gPSAxOworCisgICAgICAgIExPT1A6IGZvcmVhY2ggbXkgJGZ1
bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICAgICAgI215ICRmdW5j
dGlvbk5hbWUgPSBkZWNhbWVsaXplKCRjbGFzc05hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJGZuX3NpZ19uYW1l
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgICAgICAgICAgbXkgJGZuX3Np
Z190eXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgICAgICAgICAgbXkg
JGZ1bmN0aW9uTmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSAuICJf
IiAuIGRlY2FtZWxpemUoJGZuX3NpZ19uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkcmV0dXJu
VHlwZSA9IEdldEdUeXBlKCRmbl9zaWdfdHlwZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldF9p
c19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkZm5fc2lnX3R5cGUpOworCisgICAgICAgICAg
ICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworCisgICAgICAgICAg
ICAgICAgbXkgJGNhbGxfaW1wbF9wYXJhbXMgPSAiIjsKKyAgICAgICAgICAgICAgICBteSAkZ2Rv
bV9mbl9wcmVmaXggPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX3R5cGUpOworCisgICAg
ICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fY3NzX3N0eWxlX2RlY2xhcmF0
aW9uX3NldF9wcm9wZXJ0eSIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyByZXNlcnZlZCBuYW1l
IGNsYXNoIGluIGdsaWIhCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiZ2Rv
bV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X2Nzc19wcm9wZXJ0eSI7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICMgWFhYIHNraXAgQ29tcGFyZUhvdyBmdW5jdGlvbnMgZm9y
IG5vdworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3JhbmdlX2Nv
bXBhcmVfYm91bmRhcnlfcG9pbnRzIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9k
eSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlv
bk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyog
WFhYIFRPRE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICov
XG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBTVkdEb2N1bWVudCBmdW5jdGlvbnMgZm9y
IG5vdworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBlcSAiR2RvbVNWR0RvY3VtZW50
ICoiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzog
c2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5n
IFNWR0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgICMgWFhYIHNraXAgc29tZSBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAg
ICAgICBteSAkaXNfY3VzdG9tX2ZuID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b20ifTsKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBl
cSAiZ2RvbV9odG1sX2NvbGxlY3Rpb25faXRlbSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBlcSAiZ2RvbV9odG1sX2NvbGxlY3Rpb25fbmFtZWRfaXRlbSIgfHwKKyAgICAg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X29w
ZW4iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0
dHBfcmVxdWVzdF9zZXRfcmVxdWVzdF9oZWFkZXIiIHx8CisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9zZW5kIiB8fAorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0X3Jl
c3BvbnNlX2hlYWRlciIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV94bWxfaHR0cF9yZXF1ZXN0X292ZXJyaWRlX21pbWVfdHlwZSIgfHwKKyAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2Rpc3BhdGNo
X2V2ZW50IiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2Vs
ZW1lbnRfc2V0X2F0dHJpYnV0ZSIpIHsKKyAgICAgICAgICAgICAgICAgICAgJGlzX2N1c3RvbV9m
biA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAjJGZ1bmN0aW9u
TmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2FkZF9ldmVudF9saXN0ZW5lciIgfHwKKyAg
ICAgICAgICAgICAgICAgICAgIyRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVz
dF9yZW1vdmVfZXZlbnRfbGlzdGVuZXIiIHx8CisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0
b21fZm4gJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9k
ZV9pdGVyYXRvcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAg
JGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9j
aGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVl
X3dhbGtlcl9wYXJlbnRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5h
bWUgbmUgImdkb21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAor
ICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3By
ZXZpb3VzX3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5l
ICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYgCisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4
dF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9u
b2RlX2l0ZXJhdG9yX3ByZXZpb3VzX25vZGUiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAq
L1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RP
OiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAg
ICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
Zm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAg
ICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAg
ICAgICAgICBhZGRJbmNCb2R5KCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBh
ZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5
cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBh
cmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25TaWcgLj0gIiwgJHBhcmFtVHlwZSAkcGFyYW1OYW1lIjsKKworICAgICAgICAg
ICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFt
SURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIG5lICJET01PYmplY3Qi
ICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtSURMVHlwZSBuZSAiRXZlbnRU
YXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2Rv
bS9Qcml2YXRlSW50R2RvbSR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vUHJpdmF0ZUdkb20ke3BhcmFtSURMVHlw
ZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIk
e3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsgIyB0aGlzIGlzbid0IHN0cmljdGx5IG5lY2Vzc2FyeSBi
dXQgb25lIG9mIHRoZSBhdXRvLWdlbmVyYXRlZCBmaWxlcyBuZWVkZWQgaXQgc28uLi4uCisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9N
U3RyaW5nIikpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbU5hbWUgPSAiX2dfIiAu
ICRwYXJhbU5hbWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
aWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkY2FsbF9p
bXBsX3BhcmFtcyAuPSAiLCAkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRjYWxsX2lt
cGxfcGFyYW1zID0gIiRwYXJhbU5hbWUiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRmbl9zaWdfdHlwZSk7Cisg
ICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAj
ICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke2ZuX3NpZ190eXBlfSJ9ID0gMTsKKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2Vu
ZXJhdG9yLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20v
R2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0gPSAxOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190
eXBlIG5lICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2YXRlSW50R2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vUHJp
dmF0ZUdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkaW1wbEluY2x1ZGVzeyIke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgIyBYWFggc2tpcCBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAg
ICAgICAgICAgICAjIGJ1dCBza2lwIGZyb20gaGVyZSB0byBhbGxvdyBzb21lIGhlYWRlcnMgdG8g
YmUgY3JlYXRlZAorICAgICAgICAgICAgICAgICMgZm9yIGEgc3VjY2Vzc2Z1bCBjb21waWxlLgor
ICAgICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxhY2Vf
Y2hpbGQiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9k
ZV9hcHBlbmRfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4v
KiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVu
Y3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0
IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJF9yZXR1cm5U
eXBlID0gJHJldHVyblR5cGU7CisgICAgICAgICAgICAgICAgbXkgJGRvbW9ialR5cGUgPSAiR0RP
TSIuJGZuX3NpZ190eXBlOworICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgJ0RP
TU9iamVjdCcgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAnZ2RvbV9o
dG1sX2NhbnZhc19lbGVtZW50X2dldF9jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICAj
IFhYWCBIQUNLIQorICAgICAgICAgICAgICAgICAgICAkX3JldHVyblR5cGUgPSAnR2RvbUNhbnZh
c1JlbmRlcmluZ0NvbnRleHQgKic7CisgICAgICAgICAgICAgICAgICAgICRkb21vYmpUeXBlID0g
J0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0JzsKKyAgICAgICAgICAgICAgICAgICAgJGdkb21f
Zm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250ZXh0JzsKKyAgICAgICAgICAg
ICAgICAgICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93LiAgc2tpcCBp
dC4KKyAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01PYmplY3QgKFRP
RE86IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAgICAgICAgICAgICAgICAgICAg
IyBiZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKCRm
bl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25OYW1lIGVxICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQnKSB7CisgICAg
ICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAgICRfcmV0dXJu
VHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIConOworICAgICAgICAgICAgICAg
ICAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEJzsKKyAgICAg
ICAgICAgICAgICAgICAgJGdkb21fZm5fcHJlZml4ID0gJ2dkb21fY2FudmFzX3JlbmRlcmluZ19j
b250ZXh0MmQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGlu
dm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgY29u
dmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93
KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBh
IEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAK
KworICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiV0VCS0lUX0FQSSAkX3JldHVyblR5cGVc
biRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICIkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZylc
bntcbiIpOworCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgewor
ICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVz
dWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsICh0aGl6LCAwKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopO1xu
Iik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIg
ICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGl0ZW0gPSAoJHtsY2FzZV9pZmFjZW5hbWV9
X2dldF9wcml2YXRlKHRoaXopKTtcbiIpOworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlw
ZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHBy
b3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCAoaXRlbSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9p
Zl9mYWlsIChpdGVtKTtcbiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9y
ZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAg
ICAgICAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworICAgICAg
ICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAg
ICAgICAgICAgICBteSAkcGFyYW1UeXBlSXNQcmltaXRpdmUgPSAkY29kZUdlbmVyYXRvci0+SXNQ
cmltaXRpdmVUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFy
YW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAg
ICAgICAgICAgICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAjICAgICRp
bXBsVHlwZWRlZnN7Ikdkb20ke3BhcmFtSURMVHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCEkcGFyYW1UeXBlSXNQcmltaXRpdmUpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1
bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwgKCRwYXJhbU5hbWUsIDApO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIiI7CisgICAgICAgICAgICAg
ICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAg
ICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAg
ICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7
CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xh
c3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICAjIEhBQ0shCisgICAg
ICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVl
c3Rfb3BlbiIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW0tPm5hbWUgZXEgInVy
bCIpIHsKKworICAgICAgICAgICAgICAgICAgICAgICAgIyRpbXBsSW5jbHVkZXN7IktVUkwuaCJ9
ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6
OktVUkwgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6S1VSTCgkcGFyYW1OYW1lKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2lmICgkcGFyYW1J
RExUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6U3Ry
aW5nOjpmcm9tVVRGOCgkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG15ICRwYXJhbV9nZG9tX2ZuID0gImdkb21fIiAuIGRlY2FtZWxpemUoJHBh
cmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAjcHVzaChAY0JvZHksICIgICAg
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cGFyYW1JRExUeXBlfT4gKiBfZ18ke3BhcmFtTmFt
ZX0gPSBXVEY6OlJlZlB0cjwke3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJhbU5hbWUp
PjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2
ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
Imdkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCJ9ID0gMTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUg
KiBfZ18ke3BhcmFtTmFtZX0gPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUq
PihnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBfZ18ke3Bh
cmFtTmFtZX0gPSAoJHtwYXJhbV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
IFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKF9nXyR7
cGFyYW1OYW1lfSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZf
ZmFpbCAoX2dfJHtwYXJhbU5hbWV9KTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgJHJldHVyblBhcmFt
TmFtZSA9ICJfZ18iLiRwYXJhbU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
UmV0dXJuIn07CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbXkgJGFzc2ln
biA9ICIiOworICAgICAgICAgICAgICAgIG15ICRhc3NpZ25fcHJlID0gIiI7CisgICAgICAgICAg
ICAgICAgbXkgJGFzc2lnbl9wb3N0ID0gIiI7CisgICAgICAgICAgICAgICAgJGdfcmVzID0gMDsK
KyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9t
X2ZuKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ24gPSAiUGFzc1JlZlB0cjxXZWJDb3JlOjoke2Zu
X3NpZ190eXBlfT4gZ19yZXMgPSAiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9w
cmUgPSAiV1RGOjpnZXRQdHIoIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcG9z
dCA9ICIpIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRhc3NpZ24gPSAiJHtfcmV0dXJuVHlwZX0gcmVzID0gIjsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBteSAkZXhjZXB0aW9u
cyA9ICIiOworICAgICAgICAgICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9u
c30pIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR7Y2FsbF9p
bXBsX3BhcmFtc30gbmUgIiIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRleGNlcHRpb25z
ID0gIiwgZWMiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiZWMiOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBuZWVkIHRoaXMgZm9yIGluY2x1ZGlu
ZyAuLi4gX3NvbWV0aGluZ18gLSBmb3IgdGhlIGNsYXNzIGFyZ3MKKyAgICAgICAgICAgICAgICAj
aWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBsSW5jbHVk
ZXN7Imdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICN9CisgICAg
ICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQi
IHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9pbnNl
cnRfYmVmb3JlIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9t
X25vZGVfcmVwbGFjZV9jaGlsZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBlcSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgbXkg
JGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9vbCBvayA9
IGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KTsK
KyAgICBpZiAob2spCisgICAgeworICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNf
Y2FzdDwke19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKCRyZXR1cm5QYXJhbU5hbWUpKTsK
KyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7CitFT0YKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGls
ZCk7CisgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3Qi
ICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgJ2dkb21fZG9jdW1lbnRf
Z2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgLyogWFhYIFRPRE8gLSBnZXQgY2FudmFzIG9iamVjdCAoaXRlbS0+JHtmbl9zaWdf
bmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTsqL1xuIiApOworICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEg
IkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHth
c3NpZ259X0dfR0VUX1VURjgoaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1z
fSR7ZXhjZXB0aW9uc30pKTtcbiIgKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoJGdfcmVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZ19y
ZXMgPSAiJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9p
bXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0pIiA7CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICAke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxf
cGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSk7XG4iICk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgeworCisgICAgICAgICAgICAgICAgICAg
IGlmICgkZm5fc2lnX3R5cGUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICIgICAgJHtfcmV0dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nhc3Q8JHtfcmV0
dXJuVHlwZX0+KFdlYkNvcmU6OnRvR0RPTShnX3Jlcy5nZXQoKSkpO1xuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBUT0RPOiByZXR1cm4g
Y2FudmFzIG9iamVjdCAqL1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gcmVzO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICJcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJ9XG5c
biIpOworICAgICAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogZXh0ZXJuIFwiQ1wiICov
XG5cbiIpOworICAgIHB1c2goQGNCb2R5UHJpdiwgIn0gLyogZXh0ZXJuIFwiQ1wiICovXG5cbiIp
OworCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIjZW5kaWYgLyogJHtndWFyZH1fSU5UXyovXG4iKTsKKworICAg
IHB1c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5k
aWYgLyogJGd1YXJkICovXG4iKTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfRU5EX0RFQ0xT
XG5cbiIpOworICAgIHB1c2goQGhCb2R5UHJvcCwgIiNlbmRpZiAvKiAke2d1YXJkfV9QUk9QXyov
XG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIKK3N1YiBXcml0ZURhdGEKK3sKKyAgICBteSAo
JG9iamVjdCwgJG5hbWUpID0gQF87CisKKworICAgICMgV3JpdGUgSW50ZXJuYWwgaGVhZGVyCisg
ICAgbXkgJGhkckZOYW1lSW50ZXJuYWwgPSAiJG91dHB1dERpci9Qcml2YXRlSW50IiAuICRuYW1l
IC4gIi5oIjsKKyAgICBvcGVuKElOVEhFQURFUiwgIj4kaGRyRk5hbWVJbnRlcm5hbCIpIG9yIGRp
ZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZUludGVybmFsIjsKKworICAgIHByaW50IElO
VEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBJTlRIRUFERVIgIlxuIjsKKyAgICBwcmludCBJ
TlRIRUFERVIgQGhCb2R5SW50ZXJuYWw7CisgICAgY2xvc2UoSU5USEVBREVSKTsKKworICAgICMg
V3JpdGUgUHJpdmF0ZSBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVQcml2ID0gIiRvdXRwdXREaXIv
UHJpdmF0ZSIgLiAkbmFtZSAuICIuaCI7CisgICAgb3BlbihQUklWSEVBREVSLCAiPiRoZHJGTmFt
ZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWVQcml2IjsKKworICAg
IHByaW50IFBSSVZIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgUFJJVkhFQURFUiAiXG4iOwor
ICAgIHByaW50IFBSSVZIRUFERVIgQGhCb2R5UHJpdjsKKyAgICBjbG9zZShQUklWSEVBREVSKTsK
KworICAgICMgV3JpdGUgUHJpdmF0ZSBJbXBsZW1lbnRhdGlvbgorICAgIG15ICRpbXBsRmlsZU5h
bWVQcml2ID0gIiRvdXRwdXREaXIvUHJpdmF0ZSIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVu
KFBSSVZJTVBMLCAiPiRpbXBsRmlsZU5hbWVQcml2Iikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZp
bGUgJGltcGxGaWxlTmFtZVByaXYiOworCisgICAgcHJpbnQgUFJJVklNUEwgQGNQcmVmaXg7Cisg
ICAgcHJpbnQgUFJJVklNUEwgIlxuIjsKKyAgICBwcmludCBQUklWSU1QTCBAY0JvZHlQcml2Owor
CisgICAgY2xvc2UoUFJJVklNUEwpOworCisgICAgIyBXcml0ZSBwcm9wZXJ0aWVzIGhlYWRlciAo
YXZvaWRzIHJlY3Vyc2l2ZSBuaWdodG1hcmUpCisgICAgbXkgJGhkclByb3BGTmFtZSA9ICIkb3V0
cHV0RGlyLyIgLiAkbmFtZSAuICJwcm9wcy5oIjsKKyAgICBvcGVuKFBST1BIRUFERVIsICI+JGhk
clByb3BGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJQcm9wRk5hbWUiOwor
CisgICAgJGhkclByb3BJbmNsdWRlc3siZ2xpYi1vYmplY3QuaCJ9ID0gMTsKKworICAgIHByaW50
IFBST1BIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiLyogcmVjdXJzaXZl
IGluY2x1ZGVzIC8gZGVmaW5lcyBpc3N1ZSBmb3JjZXMgc2VwYXJhdGUgaGVhZGVyIGZvciBwcm9w
ZXJ0aWVzLlxucGVyaGFwcyAtIGJldHRlciAtIGFsbCBnZG9tIGd0ayBmdW5jdGlvbnMgc2hvdWxk
IGJlIGluIGhlcmUhKi9cbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBAaEJvZHlQcm9wUHJlOwor
ICAgIHByaW50IFBST1BIRUFERVIgIiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPlxu
IjsKKyAgICBwcmludCBQUk9QSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0
IGtleXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiXG4iIGlmIGtl
eXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiXG4iOworICAgIHBy
aW50IFBST1BIRUFERVIgQGhCb2R5UHJvcDsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAj
IFdyaXRlIHB1YmxpYyBoZWFkZXIuCisgICAgbXkgJGhkckZOYW1lID0gIiRvdXRwdXREaXIvIiAu
ICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKEhFQURFUiwgIj4kaGRyRk5hbWUiKSBvciBkaWUgIkNv
dWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWUiOworCisgICAgJGhkckluY2x1ZGVzeyJnbGliLW9i
amVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4OworICAgIHByaW50IEhF
QURFUiBAaFByZWZpeEd1YXJkOworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50IEhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIk
X1wiXG4iIH0gc29ydCBrZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIg
aWYga2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iOworICAgIHByaW50
IEhFQURFUiBAaEJvZHlQcmU7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICJ0eXBlZGVmIHN0cnVj
dCBfJF8gJF87XG4iIH0gc29ydCBrZXlzKCVpbXBsVHlwZWRlZnMpOworICAgIHByaW50IEhFQURF
UiAiXG4iIGlmIGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keTsK
KworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdyaXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBz
b3VyY2VzCisgICAgbXkgJGltcGxGaWxlTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIu
Y3BwIjsKKyAgICBvcGVuKElNUEwsICI+JGltcGxGaWxlTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qg
b3BlbiBmaWxlICRpbXBsRmlsZU5hbWUiOworCisgICAgcHJpbnQgSU1QTCBAY1ByZWZpeDsKKyAg
ICBwcmludCBJTVBMICIjaW5jbHVkZSBcImNvbmZpZy5oXCJcblxuIjsKKyAgICBwcmludCBJTVBM
ICIjaW5jbHVkZSA8d3RmL0dldFB0ci5oPlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBc
IkNTdHJpbmcuaFwiXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiUGxhdGZvcm1TdHJp
bmcuaFwiXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiQXRvbWljU3RyaW5nLmhcIlxu
IjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcInVzdHJpbmcuaFwiXG4iOworICAgIHByaW50
IElNUEwgIiNpbmNsdWRlIFwiS1VSTC5oXCJcbiI7CisgICAgcHJpbnQgSU1QTCBtYXAgeyAiI2lu
Y2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVpbXBsSW5jbHVkZXMpOworICAgIHByaW50IElN
UEwgIlxuIiBpZiBrZXlzKCVpbXBsSW5jbHVkZXMpOworICAgIHByaW50IElNUEwgQGNCb2R5Owor
CisgICAgY2xvc2UoSU1QTCk7CisKKyAgICAlaW1wbEluY2x1ZGVzID0gKCk7CisgICAgJWltcGxU
eXBlZGVmcyA9ICgpOworICAgICVoZHJJbmNsdWRlcyA9ICgpOworICAgIEBoUHJlZml4ID0gKCk7
CisgICAgQGhCb2R5ID0gKCk7CisgICAgQGhCb2R5UHJpdiA9ICgpOworICAgIEBoQm9keUludGVy
bmFsID0gKCk7CisgICAgQGhCb2R5UHJvcCA9ICgpOworICAgIEBoQm9keVByb3BQcmUgPSAoKTsK
KworICAgIEBjUHJlZml4ID0gKCk7CisgICAgQGNCb2R5ID0gKCk7CisgICAgQGNCb2R5UHJpdiA9
ICgpOworfQorCisxOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCShyZXZpc2lv
biAzNjQwMykKKysrIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBdIEhUTUxPcHRpb25FbGVtZW50IDogSFRNTEVs
ZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCAgICAg
IGZvcm07CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAg
ZGVmYXVsdFNlbGVjdGVkOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyAgICAgICAgICAgIHRleHQKICAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICNlbHNlCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHNlYXJjaDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyB0ZXh0OwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAg
ICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCiAKSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxNCArMzUsMTQg
QEAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGNvZGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBjb2RlQmFzZTsKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKLSNpZiBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBoc3BhY2U7CiAjZWxzZQogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhzcGFjZTsK
ICNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG9iamVjdDsKLSNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVk
KExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2c3BhY2U7CiAjZWxzZQogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHZzcGFjZTsKSW5kZXg6IFdlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
SFRNTEVtYmVkRWxlbWVudC5pZGwJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29yZS9odG1sL0hU
TUxFbWJlZEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAgICAg
ICAgIEltcGxlbWVudGF0aW9uVVVJRD05M2UwNDA3YS04MzgwLTRmZjAtOTc4ZC1mNzczZjJkZWU2
YTMKICAgICBdIEhUTUxFbWJlZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhbGlnbjsK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBoZWlnaHQ7CiAj
ZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25n
IGhlaWdodDsKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzcmM7CiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyB0eXBlOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHdp
ZHRoOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmlu
Z10gbG9uZyB3aWR0aDsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAKIAog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgdGl0bGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJy
ZXI7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBkb21h
aW47CiAjZWxzZQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRvbWFpbjsK
QEAgLTE4Miw3ICsxODIsNyBAQAogCiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlOYW1l
KGluIERPTVN0cmluZyBlbGVtZW50TmFtZSk7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5H
VUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIExvY2F0
aW9uIGxvY2F0aW9uOwogI2VuZGlmCiAKQEAgLTE5NSw3ICsxOTUsNyBAQAogICAgICAgICBFbGVt
ZW50ICAgICAgICAgICAgZWxlbWVudEZyb21Qb2ludChpbiBsb25nIHgsIGluIGxvbmcgeSk7CiAK
ICAgICAgICAgLy8gTW96aWxsYSBleHRlbnNpb25zCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkpCiAgICAgICAgIERPTVNlbGVjdGlvbiAgICAgICBnZXRTZWxlY3Rpb24o
KTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5n
VG89TnVsbF0gRE9NU3RyaW5nIGNoYXJhY3RlclNldDsKQEAgLTIzNiw3ICsyMzYsNyBAQAogICAg
ICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGluIERPTVN0cmluZyB0YWduYW1l
KTsKIAogICAgICAgICAvLyBOb2RlU2VsZWN0b3IgLSBTZWxlY3RvciBBUEkKLSNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkg
fHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgW0N1c3RvbV0gRWxlbWVudCBx
dWVyeVNlbGVjdG9yKGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgc2VsZWN0b3JzLCBpbiBOU1Jlc29sdmVyIHJlc29sdmVyKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtDdXN0b21dIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0
b3JBbGwoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBz
ZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCkluZGV4OiBXZWJDb3JlL2RvbS9SYW5n
ZUV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24u
aWRsCShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9H
T0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlm
CiAKSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29y
ZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBA
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGlu
IGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmlu
ZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2aXNpb24g
MzY0MDMpCisrKyBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtNTksNyArNTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xl
YW4gYWx0R3JhcGhLZXkpOwogCiAgICAgICAgIC8vIFdlYktpdCBFeHRlbnNpb25zCi0jaWYgIWRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoKCFkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpKSAmJiAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpKQogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKICAgICAgICAgCkluZGV4OiBXZWJD
b3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9E
T01Db3JlRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3JlL2RvbS9ET01D
b3JlRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemls
bGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJp
bmcoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2Mzc5KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDE0MSBAQAogICAgICAgICAoV2ViQ29yZTo6QVhEZWZp
bml0aW9uTGlzdFRlcm1UZXh0KToKICAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCk6CiAKKzIwMDgtMDktMTIgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5JTkc6IE5P
IFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorICAgICAgICAobGtjbDogaSdsbCBiZSBhYnNv
bHV0ZWx5IGhvbmVzdCB3aXRoIHBlb3BsZSwgaGVyZToKKyAgICAgICAgIGknbSBub3QgZ29pbmcg
dG8gYWRkIG9yIGNoYW5nZSBhbnksIGVpdGhlciwgdW5sZXNzCisgICAgICAgICB0aGVyZSBpcyBm
dW5kaW5nIG1hZGUgYXZhaWxhYmxlIHRvIGRvIGl0LCBvciBpIGZpbmQgYQorICAgICAgICAgZ29v
ZCByZWFzb24gdG8gcGF5IGZvciB0aGUgdGltZSBhdCBteSBvd24gZXhwZW5zZS4KKyAgICAgICAg
IHNvIGZhciwgcHl3ZWJraXRndGsgaXRzZWxmIGhhcyBiZWVuIGEgImdvb2QgZW5vdWdoIHRlc3Qi
CisgICAgICAgICBmb3IgbXkgcHVycG9zZXMsIHdoaWNoIG1hc2hlcyB0aGUgZW50aXJlIHJhbmdl
IG9mCisgICAgICAgICBmdW5jdGlvbmFsaXR5IGFuZCBwcm92aWRlcyBnb29kIGVtcGlyaWNhbCB0
ZXN0aW5nKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGRlZCBMQU5HVUFHRV9HT0JK
RUNULCBnbGliIERPTSBiaW5kaW5ncyBmaWxlcywgaW5jbHVkaW5nIG1hcmtpbmcgU1ZHIGFzICJU
T0RPIgorICAgICAgICAqIGJpbmRpbmdzL2dkb206IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L2dkb20vR0RPTUJpbmRpbmcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFdyYXBw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpyZW1vdmVXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyU2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdET01PYmplY3Q6On5HRE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OndyYXBwZXJDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpkb21PYmplY3RzKToKKyAgICAgICAg
KFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZV9nZG9tX29iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFs
bERPTU5vZGVzRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVy
cHJldGVyOjptYXJrRE9NTm9kZXNGb3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OnVwZGF0ZURPTU5vZGVEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjp0b0dET00pOgorICAgICAgICAoV2ViQ29yZTo6dG9HRE9NTmV3bHlDcmVhdGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20v
R0RPTUJpbmRpbmcuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWNoZURPTU9iamVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpjYWNoZVNWR0RPTU9iamVjdCk6CisgICAgICAgICogYmluZGlu
Z3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IEFkZGVkLiAgQ29waWVk
IGZyb20gdGhlIGF1dG8tZ2VuZXJhdGVkIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAg
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBbmNob3JXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUFwcGxldFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXJlYVdy
YXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQmFzZVdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlQmFzZUZvbnRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUJsb2NrcXVvdGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJvZHlXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJSV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVCdXR0b25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNhbnZhc1dy
YXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlTW9kV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEaXJlY3RvcnlX
cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURpdldyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRExpc3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUVt
YmVkV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGaWVsZFNldFdyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRm9udFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlRm9ybVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhbWVXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZyYW1lU2V0V3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVIZWFkaW5nV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVI
ZWFkV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVIUldyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSHRtbFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
SUZyYW1lV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJbWFnZVdyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSW5wdXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUlzSW5kZXhXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxhYmVsV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVMZWdlbmRXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUxJV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVMaW5r
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNYXBXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU1hcnF1ZWVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZU1lbnVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1ldGFXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9iamVjdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlT0xpc3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9wdEdyb3VwV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHRpb25XcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVBhcmFncmFwaFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlUGFyYW1XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVByZVdyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUXVvdGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVNjcmlwdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2VsZWN0V3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTdHlsZVdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlVGFibGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRh
YmxlU2VjdGlvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVDZWxsV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUZXh0QXJlYVdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlVGl0bGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVRhYmxlUm93V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVVTGlzdFdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR0RPTUhUTUxXcmFwcGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmg6ICBBZGRlZC4gIENv
cGllZCBmcm9tIHRoZSBhdXRvLWdlbmVyYXRlZCBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnku
aAorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAg
KEdET01PYmplY3Q6On5HRE9NT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21E
T01PYmplY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2Rl
LmNwcDogQWRkZWQuCisgICAgICAgIChHU3RyaW5nQ29udmVydDo6R1N0cmluZ0NvbnZlcnQpOgor
ICAgICAgICAqIGJpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcDogQWRkZWQuCisg
ICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0
ZSk6CisgICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9nZXRf
cHJpdmF0ZSk6CisgICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVj
dF9maW5hbGl6ZSk6CisgICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29i
amVjdF9jbGFzc19pbml0KToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9k
b21fb2JqZWN0X2luaXQpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01P
YmplY3QuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50
VGFyZ2V0Tm9kZS5jcHA6IEFkZGVkLgorICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9n
ZXRfcHJpdmF0ZSk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9t
RE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdk
b21FdmVudFRhcmdldE5vZGUuaDogQWRkZWQuCisgICAgICAgIChHRE9NRXZlbnRUYXJnZXROb2Rl
OjpHRE9NRXZlbnRUYXJnZXROb2RlKToKKyAgICAgICAgKEdET01FdmVudFRhcmdldE5vZGU6Omdl
dF9nb2JqX3R5cGUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdP
YmplY3QucG06IEFkZGVkIGdvYmplY3QgYmluZGluZ3MgYXV0by1nZW5lcmF0b3IuCisgICAgICAg
ICogZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNp
ZmljIElETAorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpF
Q1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogZG9tL0V2ZW50RXhjZXB0aW9uLmlkbDogYWRkZWQg
TEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVu
dC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogZG9t
L1JhbmdlRXhjZXB0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwK
KyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09C
SkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbDog
YWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBodG1sL0hUTUxF
bWJlZEVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAg
ICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNU
LXNwZWNpZmljIElETAorICAgICAgICAqIHBhZ2UvRE9NU2VsZWN0aW9uLmlkbDogYWRkZWQgTEFO
R1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6
IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogeG1sL1hNTEh0
dHBSZXF1ZXN0LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAg
ICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JK
RUNULXNwZWNpZmljIElETCAKKyAgICAgICAgKiB4bWwvWFBhdGhFeGNlcHRpb24uaWRsOiBhZGRl
ZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorCiAyMDA4LTA5LTEyICBEYXZlIEh5YXR0
ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgdGhlIG1lbWJlciB2YXJpYWJsZXMg
b2YgUGxhdGZvcm1TY3JvbGxiYXIgdXAgaW50byBTY3JvbGxiYXIuICBNb3ZlIGF1dG9zY3JvbGwg
dGltZXIgaGFuZGxpbmcKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHJldmlzaW9uIDM2NDAz
KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02
Miw5ICs2MiwxMyBAQAogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAg
ICAgLy8gdm9pZCBzZW5kKCk7Ci0gICAgICAgIC8vIHZvaWQgc2VuZChpbiBET01TdHJpbmcgZGF0
YSk7CisjaWYgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQorICAgICAgICB2b2lkIHNlbmQoaW4g
RE9NU3RyaW5nIGRhdGEpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbHNl
CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2VuZChpbiBEb2N1bWVudCBkYXRhKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYKIAogICAgICAgICB2b2lkIGFib3J0KCk7
CiAKSW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29y
ZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBA
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGlu
IGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmlu
ZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNl
cHRpb24uaWRsCShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVm
aW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEg
Y29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmco
KTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNyBAQAog
ICAgICAgICBbRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5LCBDdXN0b21dIHZvaWQgcG9zdE1lc3Nh
Z2UoaW4gRE9NU3RyaW5nIG1lc3NhZ2UsIGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gR2xvYmFsIGNvbnN0cnVjdG9ycwogICAgICAgICBh
dHRyaWJ1dGUgU3R5bGVTaGVldENvbnN0cnVjdG9yIFN0eWxlU2hlZXQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBDU1NTdHlsZVNoZWV0Q29uc3RydWN0b3IgQ1NTU3R5bGVTaGVldDsKSW5kZXg6IFdlYkNv
cmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01T
ZWxlY3Rpb24uaWRsCShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rp
b24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAgIHZvaWQgcmVt
b3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAgIHZvaWQgYWRkUmFuZ2UoaW4gUmFuZ2UgcmFuZ2UpOwog
Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVu
dW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCiAgICAgfTsKSW5kZXg6IENoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM2NDAzKQorKysgQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDgtMDktMTIgIGxrY2wgIDxsa2Ns
QGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06IGFkZCBHZG9tKi5oIGdsaWIgRE9NIGJpbmRpbmdzIGhlYWRl
ciBmaWxlcywKKyAgICAgICAgCisgICAgICAgIEFsc28gYWRkZWQgZ2RvbWVudW10eXBlcy5jcHAs
aCB3aGljaCBwcmVzZW50bHkgZG8gbm90CisgICAgICAgIGFjdHVhbGx5IGNvbnRhaW4gYW55dGhp
bmcsIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGVudW1zCisgICAgICAgIGluIHRoZSBnbGliIGJpbmRp
bmdzIC0geWV0LgorCiAyMDA4LTA5LTA0ICBNYXJjbyBCYXJpc2lvbmUgIDxtYXJjby5iYXJpc2lv
bmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJ
bmRleDogV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9v
bHMvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDM2NDAzKQorKysgV2ViS2l0VG9vbHMvR05VbWFr
ZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTYsNiArNiw4IEBACiBQcm9ncmFtc19HdGtMYXVu
Y2hlcl9DUFBGTEFHUyA9IFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQodG9wX2J1
aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJ
LUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQgXAogCSQoZ2xvYmFsX2NwcGZsYWdz
KSBcCiAJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykKIApAQCAtMjgsNiArMzAsOCBAQAogCS1J
JChzcmNkaXIpL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ayBcCiAJLUkkKHNyY2Rpcikv
V2ViS2l0L2d0ayBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2Rp
cikvV2ViS2l0L2d0ay93ZWJraXQgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Vi
a2l0IFwKIAkkKGdsb2JhbF9jcHBmbGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3Mp
CiAKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC02LDYgKzYsMTggQEAKICAgICAgICAgKHdhaXRVbnRpbERvbmVXYXRj
aGRvZ0ZpcmVkKToKICAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ1BsdWdpbi5tOgog
CisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGRlZCAtSSBp
bmNsdWRlcyB0byBndGsgd2Via2l0IHN1YmRpcmVjdG9yaWVzCisKKyAgICAgICAgR2RvbSBnbGli
IERPTSBiaW5kaW5ncyBoYXZlIHRoZWlyIGhlYWRlciBmaWxlcyBjb250YWluaW5nCisgICAgICAg
ICNpbmNsdWRlICJnZG9tKiIgd2hlcmUgI2luY2x1ZGUgPHdlYmtpdC9nZG9tKj4gaXMgbm90Cisg
ICAgICAgIHBvc3NpYmxlLCBhcyB0aGUgZ2RvbSogc291cmNlIGFuZCBoZWFkZXIgZmlsZXMgYXJl
IGF1dG8tZ2VuZXJhdGVkCisgICAgICAgIGludG8gRGVyaXZlZFNvdXJjZXMvIG5vdCBEZXJpdmVk
U291cmNlcy93ZWJraXQsIGZvbGxvd2luZyB0aGUKKyAgICAgICAgZXhhbXBsZSBvZiB0aGUgSlMg
RGVyaXZlZCBTb3VyY2VzLgorCiAyMDA4LTA5LTA4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23440</attachid>
            <date>2008-09-15 07:35:41 -0700</date>
            <delta_ts>2008-09-16 14:19:53 -0700</delta_ts>
            <desc>merged PrivateGdom*.cpp into Gdom*.cpp</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>236790</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNjQwMykKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtODUsNyArODYsOCBAQAogIyBDb252ZW5pZW5jZSBsaWJyYXJpZXMKIG5vaW5zdF9MVExJQlJB
UklFUyA9IFwKIAlsaWJKYXZhU2NyaXB0Q29yZS5sYSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYldl
YkNvcmUubGEgXAorCWxpYmdkb20ubGEKIAogIwogIyBKYXZhU2NyaXB0Q29yZQpAQCAtMTAxLDcg
KzEwMyw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMg
XAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3d0ZiBcCiAJLUkkKHNyY2RpcikvSmF2YVNj
cmlwdENvcmUva2pzIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCS1JJCh0
b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3Jl
L2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1
ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5
b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTIxOCw2ICsyMjEsNTMgQEAKIAkkKEpQRUdfTElCUykgXAog
CS1scHRocmVhZAogCisjIGxpYmdkb20KK2xpYmdkb21fYnVpbHRfc291cmNlcyA6PQorbGliZ2Rv
bV9zb3VyY2VzIDo9CitsaWJnZG9tX2hfYXBpIDo9CitsaWJnZG9tX2NwcGZsYWdzIDo9CitsaWJn
ZG9tX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0LTEuMC9nZG9tCitsaWJnZG9tX2xh
X0hFQURFUlMgPSBcCisgICAgICAgICQobGliZ2RvbV9oX2FwaSkgXAorCQkkKHNyY2RpcikvV2Vi
S2l0L2d0ay9nZG9tL2dkb20uaCAKKworbGliZ2RvbV9jcHBmbGFncyArPSBcCisJJChnbG9iYWxf
Y3BwZmxhZ3MpIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQodG9wX2J1aWxkZGly
KS9XZWJLaXQvZ3RrIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ2RvbSBcCisJLUkkKHRv
cF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMKKworbGliZ2RvbV9sYV9TT1VSQ0VTID0gXAorCSQo
bGliZ2RvbV9zb3VyY2VzKSAKKworbm9kaXN0X2xpYmdkb21fbGFfU09VUkNFUyA9IFwKKwkkKGxp
Ymdkb21fYnVpbHRfc291cmNlcykgCisKK2xpYmdkb21fbGFfQ1BQRkxBR1MgPSBcCisJJChnbG9i
YWxfY3BwZmxhZ3MpIFwKKwkkKHdlYmNvcmVfY3BwZmxhZ3MpIFwKKwkkKEdMT0JBTERFUFNfQ0ZM
QUdTKSBcCisJJChXRUJLSVRERVBTX0NGTEFHUykgXAorCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxh
Z3MpIFwKKwkkKGxpYmdkb21fY3BwZmxhZ3MpIAorCitsaWJnZG9tX2xhX0xJQkFERCA9IFwKKwls
aWJXZWJDb3JlLmxhIFwKKwkkKEdMT0JBTERFUFNfTElCUykgXAorCSQoV0VCS0lUREVQU19MSUJT
KSBcCisJJChYVF9MSUJTKSBcCisJJChMSUJDVVJMX0xJQlMpIFwKKwkkKExJQlNPVVBfTElCUykg
XAorCSQoRlJFRVRZUEVfTElCUykgXAorCSQoVU5JQ09ERV9MSUJTKSBcCisJJChTUUxJVEUzX0xJ
QlMpIFwKKwkkKEdTVFJFQU1FUl9MSUJTKSBcCisJJChMSUJYU0xUX0xJQlMpIFwKKwkkKEhJTERP
Tl9MSUJTKSBcCisJJChKUEVHX0xJQlMpIFwKKwktbHB0aHJlYWQKKwogIyBXZWJLaXQKIHdlYmtp
dGd0a19oX2FwaSA6PQogd2Via2l0Z3RrX3NvdXJjZXMgOj0KQEAgLTIzMiw4ICsyODIsMTUgQEAK
IGxpYndlYmtpdF8xXzBfbGFkaXIgPSAkKHByZWZpeCkvaW5jbHVkZS93ZWJraXQtMS4wL3dlYmtp
dAogbGlid2Via2l0XzFfMF9sYV9IRUFERVJTID0gXAogCSQod2Via2l0Z3RrX2hfYXBpKSBcCisJ
JChsaWJnZG9tX2hfYXBpKSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmgK
IAorIyBjb21tZW50IHRoZXNlIG91dCBmb3Igbm93LCBzZWUgd2hhdCBoYXBwZW5zCisjCSQobGli
Z2RvbV9oX2FwaSkgCisjCVdlYktpdC9ndGsvd2Via2l0L2dkb20uaCAKKyNXZWJLaXQvZ3RrL3dl
YmtpdC9nZG9tZW51bXR5cGVzLmgKKyNXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5oCisK
IGxpYndlYmtpdF8xXzBfbGFfU09VUkNFUyA9IFwKIAkkKHdlYmtpdGd0a19zb3VyY2VzKQogCkBA
IC0yNTQsNyArMzExLDcgQEAKIAkkKG5vX3VuZGVmaW5lZCkKIAogbGlid2Via2l0XzFfMF9sYV9M
SUJBREQgPSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYmdkb20ubGEgCiAKICMKICMgRXh0cmEgY2hl
Y2tzIGFuZCBmbGFncwpAQCAtMzA1LDYgKzM2MiwxNzcgQEAKIHdlYmNvcmVfbGliYWRkICs9IC1s
Z3N0aW50ZXJmYWNlcy0wLjEwIC1sZ3N0dmlkZW8tMC4xMAogZW5kaWYKIAorCitXZWJLaXQvZ3Rr
L2dkb20vZ2RvbS5oOgorIyBUT0RPOiBhdXRvLWdlbmVyYXRlIHRoaXMgZmlsZQorCisjJChzcmNk
aXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHA6
IFwKKyMJCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21FdmVu
dFRhcmdldE5vZGUuaAorCisKK2xpYmdkb21faF9hcGkgKz0gXAorCSQoc3JjZGlyKS9XZWJLaXQv
Z3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oXAorCSQoc3JjZGlyKS9XZWJLaXQvZ3RrL2dk
b20vR2RvbURPTU9iamVjdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQXR0ci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUJhckluZm8uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNHcmFkaWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1BhdHRlcm4uaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DYW52YXNQaXhlbEFycmF5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q0RBVEFTZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2hhcmFjdGVyRGF0YS5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNsaXBib2FyZC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNvbW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db25zb2xlLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ291bnRlci5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNTU0NoYXJzZXRSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTRm9u
dEZhY2VSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU01lZGlhUnVsZS5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNTU1BhZ2VSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUHJp
bWl0aXZlVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxlLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NT
U3R5bGVSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVTaGVldC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ1NTVmFsdWVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFi
bGVzRGVjbGFyYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNS
dWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRGF0YWJhc2UuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21Eb2N1bWVudEZyYWdtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRG9jdW1lbnRUeXBlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NQXBwbGljYXRp
b25DYWNoZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUNvcmVFeGNlcHRpb24uaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01JbXBsZW1lbnRhdGlvbi5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbURPTVBhcnNlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURP
TVNlbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVdpbmRvdy5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21FbnRpdHkuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZS5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSGlzdG9yeS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBbmNob3JFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MQmFzZUZvbnRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJsb2Nr
cXVvdGVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJSRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
Q29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MRExpc3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTERvY3VtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxGb250RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxGb3JtRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFt
ZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxI
dG1sRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MTGFiZWxFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExlZ2VuZEVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
TWFycXVlZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVudUVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MTW9kRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxPYmplY3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TE9MaXN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRHcm91cEVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxQcmVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTY3JpcHRFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MVGFibGVDZWxsRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJs
ZUNvbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MVUxpc3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRhLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUtleWJvYXJkRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21Mb2NhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhTGlzdC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU1pbWVUeXBlQXJyYXkuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1l
VHlwZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1vdXNlRXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21NdXRhdGlvbkV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTmFtZWROb2RlTWFwLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTmF2aWdhdG9yLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUZpbHRlci5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5vZGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlSXRlcmF0b3Iu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlTGlzdC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5vdGF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tT3ZlcmZsb3dF
dmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbkFycmF5LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tUGx1Z2luLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJvZ3Jlc3NF
dmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmFuZ2UuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21S
ZWN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU2NyZWVuLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1FMRXJyb3IuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1
bHRTZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
dG9yYWdlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXRMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tVGV4dEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dE1ldHJpY3Mu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tVHJlZVdhbGtlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVVJRXZlbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tV2hlZWxFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVl
c3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTFNlcmlhbGl6ZXIuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQ
YXRoRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFeHByZXNzaW9u
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhOU1Jlc29sdmVyLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhSZXN1bHQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21YU0xUUHJvY2Vzc29yLmgKKwogd2Via2l0Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXQuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKQEAg
LTMxNiwxMiArNTQ0LDE3IEBACiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
aCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCiAKKyMgV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAorCiB3ZWJraXRndGtfYnVpbHRfc291cmNlcyArPSBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
d2Via2l0bWFyc2hhbC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuaCBcCiAJ
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmgKIAorIwlEZXJpdmVkU291cmNlcy9n
ZG9tZW51bXR5cGVzLmNwcCAKKyMJV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisK
IHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmggXApAQCAtMzQ1LDE0ICs1NzgsMTcgQEAKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNw
cCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwIFwKLQlXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJldmVudC5jcHAgIAogCiB3
ZWJraXRndGtfY3BwZmxhZ3MgKz0gXAogCS1EQlVJTERJTkdfV0VCS0lUIFwKIAktSSQoc3JjZGly
KS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0IFwK
IAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCi0JLUkkKHRvcF9idWlsZGRpcikvV2Vi
S2l0L2d0ay93ZWJraXQKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJ
LUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0a1wKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVk
U291cmNlcwogCiB3ZWJraXRndGtfY2xlYW5maWxlcyArPSBcCiAJJCh0b3BfYnVpbGRkaXIpL1By
b2dyYW1zL0d0a0xhdW5jaGVyIFwKQEAgLTM2Nyw2ICs2MDMsOSBAQAogCXN0YW1wLXdlYmtpdGVu
dW10eXBlcy5jcHAgXAogCXN0YW1wLXdlYmtpdGVudW10eXBlcy5oCiAKKyMJc3RhbXAtZ2RvbWVu
dW10eXBlcy5jcHAgCisjCXN0YW1wLWdkb21lbnVtdHlwZXMuaCAKKwogV0VCS0lUX01BUlNIQUwg
PSAkKEdFTlNPVVJDRVMpL3dlYmtpdG1hcnNoYWwKIFdFQktJVF9NQVJTSEFMX0xJU1QgPSAkKFdF
QktJVF9NQVJTSEFMKS5saXN0CiAKQEAgLTQ0Myw2ICs2ODIsNTQgQEAKIAkmJiBjcCB4Z2VuLWd0
YyAkQCBcCiAJJiYgcm0gLWYgeGdlbi1ndGMKIAorV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10
eXBlcy5oOiBzdGFtcC1nZG9tZW51bXR5cGVzLmgKKwlAdHJ1ZQorc3RhbXAtZ2RvbWVudW10eXBl
cy5oOiAkKGxpYmdkb21faF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYg
Z2xpYi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpZm5kZWYgR0RPTV9FTlVNX1RZUEVTX0hcbiIg
XAorCQkJLS1maGVhZCAiI2RlZmluZSBHRE9NX0VOVU1fVFlQRVNfSFxuXG4iIFwKKwkJCS0tZmhl
YWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuXG4iIFwKKwkJCS0tZmhlYWQgIkdfQkVHSU5f
REVDTFNcblxuIiBcCisJCQktLWZ0YWlsICJHX0VORF9ERUNMU1xuXG4iIFwKKwkJCS0tZnRhaWwg
IiNlbmRpZlxuIiBcCisJCQktLWZwcm9kICIjaW5jbHVkZSA8QGZpbGVuYW1lQD5cblxuIiBcCisJ
CQktLWVwcm9kICIjZGVmaW5lIEdET01fVFlQRV9ARU5VTVNIT1JUQCBAZW51bV9uYW1lQF9nZXRf
dHlwZSgpXG5cbiIgXAorCQkJLS1lcHJvZCAiV0VCS0lUX0FQSSBHVHlwZVxuQGVudW1fbmFtZUBf
Z2V0X3R5cGUodm9pZCk7XG5cbiIgXAorCQkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJCXNlZCAn
cyxXZWJLaXQvZ3RrLywsJyB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIHwgXAorCQlzZWQg
J3MsR0RPTV9UWVBFX0tJVCxHRE9NX1RZUEUsJyBcCisJCSkgPiB4Z2VuLWNndGggXAorCSYmIChj
bXAgLXMgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCB8fCBjcCB4
Z2VuLWNndGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oKSBcCisJJiYgcm0gLWYg
eGdlbi1jZ3RoIFwKKwkmJiBlY2hvIHRpbWVzdGFtcCA+ICQoQEYpCisKKyMgICAgICAgICAgICAg
IC0tZmhlYWQgIiNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD5cblxuIiAKKworRGVyaXZl
ZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5jcHA6ICQobGliZ2RvbV9oX2FwaSkgR05VbWFrZWZpbGUK
KwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVhZCAiI2luY2x1
ZGUgPGNvbmZpZy5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5c
biIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgXCIkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93
ZWJraXQvZ2RvbWVudW10eXBlcy5oXCJcblxuIiBcCisJCQktLWZoZWFkICJleHRlcm4gXCJDXCIg
e1xuXG4iIFwKKwkJCS0tZnByb2QgIlxuLyogZW51bWVyYXRpb25zIGZyb20gXCJAZmlsZW5hbWVA
XCIgKi8iIFwKKwkJCS0tdmhlYWQgInN0YXRpYyBjb25zdCBHQFR5cGVAVmFsdWUgX0BlbnVtX25h
bWVAX3ZhbHVlc1tdID0geyIgXAorCQkJLS12cHJvZCAiICAgIHsgQFZBTFVFTkFNRUAsIFwiQFZB
TFVFTkFNRUBcIiwgXCJAdmFsdWVuaWNrQFwiIH0sIiBcCisJCQktLXZ0YWlsICIgICAgeyAwLCBO
VUxMLCBOVUxMIH1cbn07XG5cbiIgXAorCQkJLS12dGFpbCAiR1R5cGUgQGVudW1fbmFtZUBfZ2V0
X3R5cGUodm9pZClcbntcbiIgXAorCQkJLS12dGFpbCAiICAgIHN0YXRpYyBHVHlwZSB0eXBlID0g
MDtcblxuIiBcCisJCQktLXZ0YWlsICIgICAgaWYgKCF0eXBlKVxuIiBcCisJCQktLXZ0YWlsICIg
ICAgICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMoXCJARW51bU5hbWVAXCIsIF9A
ZW51bV9uYW1lQF92YWx1ZXMpO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAgICByZXR1cm4gdHlwZTtc
bn1cblxuIiBcCisJCQktLWZ0YWlsICJ9XG4iIFwKKwkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJ
c2VkICdzLHdlYl9raXQsZ2RvbSwnIFwKKwkJKSA+IHhnZW4tY2d0YyBcCisJJiYgY3AgeGdlbi1j
Z3RjICRAIFwKKwkmJiBybSAtZiB4Z2VuLWNndGMKKwogIyBFTkQgV0VCS0lUIEdUSysKICMKICMg
RmlsZXMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkCkBAIC00NjUsNiArNzUyLDggQEAKIEJVSUxU
X1NPVVJDRVMgPSBcCiAJJChqYXZhc2NyaXB0Y29yZV9idWlsdF9zb3VyY2VzKSBcCiAJJChqYXZh
c2NyaXB0Y29yZV9idWlsdF9ub3NvdXJjZXMpIFwKKwkkKGxpYmdkb21fYnVpbHRfc291cmNlcykg
XAorCSQobGliZ2RvbV9idWlsdF9ub3NvdXJjZXMpIFwKIAkkKHdlYmNvcmVfYnVpbHRfc291cmNl
cykgXAogCSQod2ViY29yZV9idWlsdF9ub3NvdXJjZXMpIFwKIAkkKHdlYmtpdGd0a19idWlsdF9z
b3VyY2VzKSBcCkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE2
LDYgKzIxNiw4IEBACiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0VzdGlt
YXRlQ2hhbmdlZE5vdGlmaWNhdGlvbigpCiB7CisgICAgaWYgKCFtX2ZyYW1lKSAvKiBidWcjMjA0
MDMgLSBoYWNrISBzaG91bGRuJ3QgYmUgaGVyZSEgIHdlJ3ZlIGJlZW4gZGVsZXRlZCEgKi8KKyAg
ICAgICAgcmV0dXJuOwogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZy
YW1lKG1fZnJhbWUpOwogICAgIFBhZ2UqIGNvcmVQYWdlID0gY29yZSh3ZWJWaWV3KTsKIApJbmRl
eDogV2ViS2l0L2d0ay9HRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9HRE9N
T2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL0dET01PYmplY3QuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfX0dET01PYmplY3RfaF9fCisjZGVmaW5l
IF9fR0RPTU9iamVjdF9oX18KKworLy8gbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHRE9N
T2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5HRE9NT2JqZWN0KCkge30KKyAgICB2aXJ0
dWFsIGludCBnZXRfZ29ial90eXBlKCkgPSAwOworfTsKKworLy8gfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJl
dmlzaW9uIDM2NDAzKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDExICsxLDEzIEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqIENvcHlyaWdo
dCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAy
MDA3IEFwcGxlIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNo
cmlzdGlhbkBpbWVuZGlvLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKgorICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCiAgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKQEAgLTQyLDYgKzQ0LDIwIEBACiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4
dC5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bVhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgImdk
b20vUHJpdmF0ZUludEdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0
ZUdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21Eb2N1
bWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgorI2lu
Y2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRleHREb2N1bWVudC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbURPTVdpbmRvdy5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21E
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVHZG9tRE9NV2luZG93LmgiCiAKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAKQEAgLTQ5LDYgKzY1LDEyIEBACiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oRE9NV2luZG93KiBkb2MpOworICAgIGdw
b2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oWE1MSHR0
cFJlcXVlc3QqIG9iaik7Cit9CisKIGV4dGVybiAiQyIgewogCiBlbnVtIHsKQEAgLTU3LDYgKzc5
LDcgQEAKICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAgICBIT1ZFUklOR19P
VkVSX0xJTkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAt
MTYyLDYgKzE4NSwxNyBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAgICAg
ICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtpdF93ZWJfZnJhbWVf
c2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisg
ICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChH
U2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVEKSwKKyAgICAgICAgICAgIDAs
CisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtp
dF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICAgICAgR19UWVBFX05PTkUs
IDIsCisgICAgICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKwogICAg
IC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAqLwpA
QCAtMjk0LDYgKzMyOCw5MiBAQAogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ht
bF9odHRwX3JlcXVlc3Q6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0
dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYW4gWE1MSHR0cFJlcXVlc3QKKyAqCisgKiBSZXR1
cm4gdmFsdWU6IGEgR2RvbVhNTEh0dHBSZXF1ZXN0CisgKi8KK0dkb21YTUxIdHRwUmVxdWVzdCog
d2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdChXZWJLaXRXZWJGcmFtZSogZnJh
bWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFt
ZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+
cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQo
Y29yZUZyYW1lKTsKKyAgICByZXR1cm4gR0RPTV9YTUxfSFRUUF9SRVFVRVNUKFdlYkNvcmU6OnRv
R0RPTShYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkuZ2V0KCkp
KTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93OgorICogQGZy
YW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJv
dW5kIGEgRE9NV2luZG93CisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21ET01XaW5kb3cKKyAq
LworR2RvbURPTVdpbmRvdyogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyhXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHBy
aXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsK
KyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luID0g
Y29yZUZyYW1lLT5kb21XaW5kb3coKTsKKyAgICByZXR1cm4gR0RPTV9ET01fV0lORE9XKFdlYkNv
cmU6OnRvR0RPTSh3aW4uZ2V0KCkpKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9kb21fZG9jdW1lbnQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0
dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYSBEb2N1bWVudCAKKyAqCisgKiBSZXR1cm4gdmFs
dWU6IGEgR2RvbURvY3VtZW50CisgKi8KK0dkb21Eb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9n
ZXRfZG9tX2RvY3VtZW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dl
YktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNv
cmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIHJldHVy
biBHRE9NX0RPQ1VNRU5UKFdlYkNvcmU6OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50KCkpKTsK
K30KKworLyogWFhYIFRPRE86IG1ha2UgdGhpcyBub3QgdGFrZSBmcmFtZSogYXMgYW4gYXJndW1l
bnQsCisgKiBhbmQgbWFrZSBpdCByZXR1cm4gYSBHZG9tRXZlbnRMaXN0ZW5lciBjbGFzcyAqLwor
ZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJIGdib29sZWFuCithZGRfd2luZG93X2V2ZW50X2xpc3Rl
bmVyKFdlYktpdFdlYkZyYW1lKiB3ZiwgRnJhbWUgKmZyYW1lLCBjb25zdCBjaGFyICpuYW1lKTsK
K30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoKKyAqIEBm
cmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRv
IHRoZSBmcmFtZSdzIGRvY3VtZW50CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBvZiBA
ZnJhbWUKKyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGV2ZW50X3R5cGUpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEZBTFNFKTsKKworICAgIC8vV2Vi
S2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisKKyAgICByZXR1
cm4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihmcmFtZSwgY29yZUZyYW1lLCBldmVudF90eXBl
KTsKK30KKworLyoqCiAgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lOgogICogQGZyYW1lOiBh
ICNXZWJLaXRXZWJGcmFtZQogICoKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVu
ZXJOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5v
ZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2Rl
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVm
IEpTX0RPTV9FVkVOVF9MSVNURU5FUl9OT0RFX0gKKyNkZWZpbmUgSlNfRE9NX0VWRU5UX0xJU1RF
TkVSX05PREVfSAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRk
ZWZpbmVzLmg+CisKKworI2luY2x1ZGUgImdkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisv
KiBUT0RPOiByZXR1cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCBy
ZXF1aXJlcworICogYSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RP
OiBwcm92aWRlIGEgJ3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGli
CisgKiBvYmplY3QgYXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQor
Z2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBjb25z
dCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNh
cHR1cmUpOworfQorCisjZW5kaWYgLypKU19ET01fRVZFTlRfTElTVEVORVJfTk9ERV9IICovCklu
ZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDM2NDAzKQorKysgV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRo
ZXIKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDkgQEAKIAogI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmty
ZXF1ZXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxIdHRwUmVxdWVzdC5oPgog
CiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYxLDYgKzY1LDE1IEBACiBXRUJLSVRfQVBJIFdlYktpdFdl
YkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIEdkb21YTUxIdHRwUmVxdWVzdCAq
Cit3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJG
cmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21ET01XaW5kb3cgKgord2Via2l0
X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZy
YW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRG9jdW1lbnQgKgord2Via2l0X3dlYl9mcmFtZV9nZXRf
ZG9tX2RvY3VtZW50ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCiBXRUJL
SVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcgICAg
ICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKQEAgLTkzLDYgKzEwNiwxMCBAQAog
V0VCS0lUX0FQSSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2dsb2Jh
bF9jb250ZXh0IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFt
ZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIgICAgICAgICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKSW5kZXg6IFdlYktp
dC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQv
Z3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5E
T1dfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfV0lORE9XX0gKKworI2luY2x1ZGUg
PGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKK2V4dGVybiAi
QyIgeworLyogVE9ETzogbWFrZSBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0byBiZSByZXR1
cm5lZCBoZXJlICovCit9CisKKyNlbmRpZiAvKkpTX0RPTV9FVkVOVF9MSVNURU5FUl9XSU5ET1df
SCAqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0
ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1
ZGUgIlN0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRN
TERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUg
Ik5vZGUuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRXZl
bnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJOb2RlLmgiCisjaW5j
bHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5j
bHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21FdmVudC5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL1By
aXZhdGVHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVk
ZSAiZ2RvbS9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisKKworI2luY2x1ZGUgPGdsaWIt
b2JqZWN0Lmg+CisKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnQqIGRvYyk7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKEV2ZW50VGFyZ2V0Tm9kZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBS
ZXF1ZXN0KiBub2RlKTsKK30KKworCitjbGFzcyBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIg
OiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyPiBjcmVhdGUoR2RvbVhNTEh0dHBSZXF1ZXN0KiB3
ZikKKyAgICB7IHJldHVybiBhZG9wdFJlZihuZXcgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVy
KHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIHVzZUNh
cHR1cmUpOworCisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFyICpldnR5cGUpIHsgbV90eXBl
ID0gZ19zdHJkdXAoZXZ0eXBlKTsgfQorICAgIHByaXZhdGU6CisgICAgY2hhciAqbV90eXBlOwor
ICAgIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVlc3QqIHdmKQor
ICAgICAgICAgICA6IG1fd2Yod2YpCisgICAgICAgICAgICwgbV90eXBlKE5VTEwpCisgICAge30K
KyAgICB+WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlmICht
X3R5cGUpCisgICAgICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgR2RvbVhNTEh0
dHBSZXF1ZXN0KiBtX3dmOworfTsKKwordm9pZCBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6
OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCB1c2VDYXB0dXJlKQoreworICAgIGdib29s
ZWFuIHJldHZhbDsKKyAgICBjaGFyICpldm5hbWUgPSBnX3N0cmR1cF9wcmludGYoImJyb3dzZXIt
ZXZlbnQ6OiVzIiwgbV90eXBlKTsKKyAgICAvKiBUT0RPOiBzZWUgSlNFdmVudExpc3RlbmVyLmNw
cCdzIGhhbmRsZUV2ZW50IC0gc29tZSB3ZWlyZCBzdHVmZi4uLiAqLworICAgIC8vcHJpbnRmKCJY
TUxIdHRwUmVxdWVzdCBoYW5kbGVFdmVudCAlc1xuIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6
dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwg
d2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30KKworY2xh
c3MgTm9kZUV2ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Tm9kZUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9tRXZlbnRU
YXJnZXROb2RlKiB3ZikKKyAgICB7IHJldHVybiBhZG9wdFJlZihuZXcgTm9kZUV2ZW50TGlzdGVu
ZXIod2YpKTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgdXNl
Q2FwdHVyZSk7CisKKyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5
cGUgPSBnX3N0cmR1cChldnR5cGUpOyB9Citwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsKKyAg
ICBOb2RlRXZlbnRMaXN0ZW5lcihHZG9tRXZlbnRUYXJnZXROb2RlKiB3ZikKKyAgICAgICAgICAg
IDogbV93Zih3ZikKKyAgICAgICAgICAgICwgbV90eXBlKE5VTEwpCisgICAge30KKyAgICB+Tm9k
ZUV2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAgICAgICAgICAg
IGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlKiBtX3dmOwor
fTsKKwordm9pZCBOb2RlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBi
b29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGNoYXIgKmV2bmFt
ZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5cGUpOworICAgIC8v
cHJpbnRmKCJub2RlIGhhbmRsZUV2ZW50ICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0
b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgZXZuYW1lLCB3
ZXYsIHVzZUNhcHR1cmUsICZyZXR2YWwpOworICAgIGdfZnJlZShldm5hbWUpOworfQorCitjbGFz
cyBXaW5kb3dFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVuZXI+IGNyZWF0ZShXZWJLaXRX
ZWJGcmFtZSogd2YpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdpbmRvd0V2
ZW50TGlzdGVuZXIod2YpKTsgCisgICAgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChF
dmVudCosIGJvb2wgaXNXaW5kb3dFdmVudCk7CisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFy
ICpldnR5cGUpIHsgbV90eXBlID0gZ19zdHJkdXAoZXZ0eXBlKTsgfQorcHJpdmF0ZToKKyAgICBj
aGFyICptX3R5cGU7CisgICAgV2luZG93RXZlbnRMaXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2Yp
CisgICAgICAgICAgIDogbV93Zih3ZikKKyAgICAgICAgICAgLCBtX3R5cGUoTlVMTCkKKyAgICB7
fQorICAgIH5XaW5kb3dFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUp
CisgICAgICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgV2ViS2l0V2ViRnJhbWUq
IG1fd2Y7Cit9OworCit2b2lkIFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50
KiBldmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQoreworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3Ry
ZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5cGUpOworICAgIGdib29sZWFuIHJl
dHZhbDsKKyAgICAvL3ByaW50Zigid2luZG93IGhhbmRsZUV2ZW50ICVzICVzXG4iLCBldm5hbWUs
CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LT50eXBlKCkuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYkNv
cmU6OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5h
bWUsIHdldiwgaXNXaW5kb3dFdmVudCwgJnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9
CisKK2V4dGVybiAiQyIgeworCitnYm9vbGVhbiBhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9s
aXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3QgKnJl
cSA9IGdkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRfcHJpdmF0ZSh3Zik7CisgICAgaWYgKCFuYW1l
KQorICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgaWYgKCFyZXEpCisgICAgICAgIHJldHVybiBG
QUxTRTsKKworICAgIGlmIChzdHJjbXAobmFtZSwgIm9ucmVhZHlzdGF0ZWNoYW5nZSIpID09IDAp
CisgICAgeworICAgICAgICBSZWZQdHI8WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyPiBsaXN0
ZW5lcjsKKyAgICAgICAgbGlzdGVuZXIgPSBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OmNy
ZWF0ZSh3Zik7CisgICAgICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICAgICAgcmVx
LT5zZXRPblJlYWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgIHJldHVy
biBUUlVFOworICAgIH0KKyAgICByZXR1cm4gRkFMU0U7Cit9IAorCitnYm9vbGVhbiBhZGRfZXZl
bnRfbGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBX
ZWJDb3JlOjpOb2RlICpub2RlID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh3
Zik7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc0V2ZW50VGFyZ2V0Tm9kZSgpKQorICAgICAg
ICByZXR1cm4gRkFMU0U7CisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogZXRuID0gKHN0
YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqPihub2RlKSktPnRvTm9kZSgpOwor
ICAgIGlmICghZXRuKQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBSZWZQdHI8Tm9kZUV2
ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gTm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7Cisg
ICAgbGlzdGVuZXItPnNldF90eXBlKG5hbWUpOworICAgIGV0bi0+YWRkRXZlbnRMaXN0ZW5lcihu
YW1lLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7CisKKyAgICByZXR1cm4gVFJVRTsKKworfSAKKwor
Z2Jvb2xlYW4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSAqd2YsIEZy
YW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciAqbmFtZSkKK3sKKyAgICBEb2N1bWVudCogZG9jID0gZnJhbWUtPmRvY3VtZW50KCk7CisKKyAg
ICBSZWZQdHI8V2luZG93RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBXaW5kb3dFdmVudExpc3Rl
bmVyOjpjcmVhdGUod2YpOworICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICBkb2Mt
PmFkZFdpbmRvd0V2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHRydWUpOworCisgICAgcmV0
dXJuIFRSVUU7CisKK30gCisKK30gLyogZXh0ZXJuIEMgKi8KClByb3BlcnR5IGNoYW5nZXMgb246
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46bWVyZ2VpbmZvCgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lclhNTEh0
dHBSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5l
clhNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVu
dExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisKKyNpZm5kZWYgSlNfRE9NX0VWRU5UX0xJU1RFTkVSX1hNTF9IVFRQX1JF
UVVFU1RfSAorI2RlZmluZSBKU19ET01fRVZFTlRfTElTVEVORVJfWE1MX0hUVFBfUkVRVUVTVF9I
CisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4K
KworCisjaW5jbHVkZSAiZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuaCIKKworLyogVE9ETzogcmV0
dXJuIHRoZSBhY3R1YWwgZXZlbnQgbGlzdGVuZXIgY3JlYXRlZCwgd2hpY2ggcmVxdWlyZXMKKyAq
IGEgZ2xpYiB3cmFwcGVyIG9iamVjdCB0byBiZSBjcmVhdGVkLgorICogVE9ETzogcHJvdmlkZSBh
ICdyZW1vdmVfZXZlbnRfbGlzdGVuZXInIHdoaWNoIHRha2VzIHRoYXQgZ2xpYgorICogb2JqZWN0
IGFzIGFuIGFyZ3VtZW50ICovCitleHRlcm4gIkMiIHsKK1dFQktJVF9BUEkKK2dib29sZWFuIGFk
ZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCAqd2Ys
CisgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKK30KKworI2VuZGlmIC8qSlNfRE9N
X0VWRU5UX0xJU1RFTkVSX1hNTF9IVFRQX1JFUVVFU1RfSCAqLwpJbmRleDogV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGRlZmluZXMuaAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRkZWZpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDkgQEAKIAogR19CRUdJTl9E
RUNMUwogCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RXZlbnQgV2ViS2l0RXZlbnQ7Cit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0RXZlbnRDbGFzcyBXZWJLaXRFdmVudENsYXNzOworCiB0eXBlZGVmIHN0
cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3QgV2ViS2l0TmV0d29ya1JlcXVlc3Q7CiB0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzcyBXZWJLaXROZXR3b3JrUmVxdWVzdENs
YXNzOwogCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21FdmVudFRh
cmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlSW50R2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIF9fR0RP
TUV2ZW50VGFyZ2V0Tm9kZV9IX19fSU5UXworI2RlZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVf
SF9fX0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0
ZUludEdkb21Ob2RlLmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01FdmVudFRhcmdldE5v
ZGUgOiBwdWJsaWMgR0RPTU5vZGUgeworCitwdWJsaWM6CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9k
ZShQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGltcGwpIDogR0RPTU5vZGUoaW1wbCkge30KKyAg
ICBpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9E
RTsgfQorfTsKKworCitHX0VORF9ERUNMUworI2VuZGlmCisKClByb3BlcnR5IGNoYW5nZXMgb246
IFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjptZXJnZWluZm8KCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0
aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJ
bmMuCisgKi8KKworI2lmbmRlZiBfX0dkb21ET01PYmplY3RfSF9fCisjZGVmaW5lIF9fR2RvbURP
TU9iamVjdF9IX18KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21E
T01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xh
c3MgR2RvbURPTU9iamVjdENsYXNzOworCisjZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAg
ICAgICAgICAgKGdkb21fZG9tX29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0RPTV9P
QkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3QpKQorI2RlZmluZSBHRE9NX0RPTV9P
QkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykpCisjZGVmaW5lIEdET01f
SVNfRE9NX09CSkVDVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChv
YmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVF9D
TEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVf
RE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2Rv
bURPTU9iamVjdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRl
IEdkb21ET01PYmplY3RQcml2YXRlOworCitzdHJ1Y3QgX0dkb21ET01PYmplY3QgeworICAgIEdP
YmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAgR2RvbURPTU9iamVjdFByaXZhdGUgKnByaXY7
Cit9OworCitzdHJ1Y3QgX0dkb21ET01PYmplY3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBh
cmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21fZG9tX29iamVjdF9nZXRf
dHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X2luaXRfZG9t
X29iamVjdCAoR2RvbURPTU9iamVjdCAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAv
KiBfX0dkb21ET01PYmplY3RfSF9fICovCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9n
dGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1lcmdlaW5mbwoK
SW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0
ay9nZG9tL0dTdHJpbmdDb252ZXJ0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8q
CisgKiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqLworCisKKyNpZm5kZWYgX19HU3RyaW5nQ29udmVydF9IXworI2Rl
ZmluZSBfX0dTdHJpbmdDb252ZXJ0X0hfCisKKy8qIGNvbnZlbmllbmNlIGMrKyBjbGFzcyBmb3Ig
Y29udmVydGluZyB2YXJpb3VzIGRpZmZlcmVudCB3ZWJraXQKKyAqIHN0cmluZyB0eXBlcyBpbnRv
IGEgdXRmOCBnbGliIHN0cmluZy4KKyAqLworCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVk
ZSAidXN0cmluZy5oIgorI2luY2x1ZGUgIktVUkwuaCIKKworZXh0ZXJuICJDIiB7CitjbGFzcyBH
U3RyaW5nQ29udmVydCB7CitwdWJsaWM6CisgICAgZ2NoYXIgKm1fc3RyOworICAgIEdTdHJpbmdD
b252ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYgcykgeyBtX3N0ciA9IGdfc3RyZHVwKHMudXRm
OCgpLmRhdGEoKSk7IH0KKyAgICBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpLVVJMIGNvbnN0JiBz
KSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorICAgIEdT
dHJpbmdDb252ZXJ0KGNvbnN0IEpTQzo6VVN0cmluZyAmIHMpIHsgbV9zdHIgPSBnX3N0cmR1cChz
LlVURjhTdHJpbmcoKS5jX3N0cigpKTsgfQorICAgIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0
b21pY1N0cmluZyBjb25zdCZzKSB7IG1fc3RyID0gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsgfQorfTsKKworI2RlZmluZSBfR19HRVRfVVRGOChzdHIpIChHU3RyaW5nQ29udmVy
dChzdHIpLm1fc3RyKQorfSAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiBfX0dTdHJpbmdD
b252ZXJ0X0hfKi8KSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVHZG9tRXZl
bnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5l
dD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgX19HRE9NRXZl
bnRUYXJnZXROb2RlX0hfX19QUklWXworI2RlZmluZSBfX0dET01FdmVudFRhcmdldE5vZGVfSF9f
X1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVH
ZG9tTm9kZS5oIgorY2xhc3MgV2ViQ29yZTo6Tm9kZTsKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21F
dmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKKworV0VCS0lUX0FQSSBXZWJDb3Jl
OjpOb2RlICoKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFy
Z2V0Tm9kZSAqcmVxdWVzdCk7CisKKyNlbmRpZgorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJL
aXQvZ3RrL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46bWVyZ2VpbmZvCgpJbmRleDogV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVJbnRHZG9tRE9N
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVJbnRHZG9tRE9N
T2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21E
T01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2luY2x1ZGUgIkdET01PYmplY3QuaCIK
KwoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVJbnRHZG9tRE9N
T2JqZWN0LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1lcmdlaW5mbwoKSW5kZXg6IFdlYktpdC9n
dGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9n
ZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvZ2Rv
bS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtj
bEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIu
Y29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaWZuZGVmIF9f
R2RvbUV2ZW50VGFyZ2V0Tm9kZV9IX18KKyNkZWZpbmUgX19HZG9tRXZlbnRUYXJnZXROb2RlX0hf
XworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmlu
ZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0
Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdl
dE5vZGVDbGFzcyBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3M7CisKKyNkZWZpbmUgR0RPTV9UWVBF
X0VWRU5UX1RBUkdFVF9OT0RFICAgICAgICAgICAgKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERShvYmopICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VU
X05PREUsIEdkb21FdmVudFRhcmdldE5vZGUpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9O
T0RFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdE
T01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKyNk
ZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9ERShvYmopICAgICAgICAgKEdfVFlQRV9DSEVD
S19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2Rl
ZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNL
X0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkpCisjZGVm
aW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFO
Q0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZl
bnRUYXJnZXROb2RlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9k
ZVByaXZhdGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGU7CisKKyNpbmNsdWRlICJnZG9tL0dk
b21Ob2RlLmgiCisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSB7CisgICAgR2RvbU5vZGUg
cGFyZW50X2luc3RhbmNlOworCisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgKnByaXY7
Cit9OworCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyB7CisgICAgR2RvbU5vZGVD
bGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9tX2V2ZW50X3Rh
cmdldF9ub2RlX2dldF90eXBlICh2b2lkKTsKKworV0VCS0lUX0FQSSB2b2lkCitnZG9tX2V2ZW50
X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5vZGUg
KnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogX19HZG9tRXZlbnRUYXJnZXROb2Rl
X0hfXyAqLworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50
VGFyZ2V0Tm9kZS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptZXJnZWluZm8KCkluZGV4OiBXZWJL
aXQvZ3RrL2dkb20vZ2RvbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9nZG9tLmgJ
KHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE2MCBAQAorI2luY2x1ZGUgPGdkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbURPTU9iamVjdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUF0dHIuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21CYXJJbmZvLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFz
R3JhZGllbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DYW52YXNQYXR0ZXJuLmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNEQVRBU2VjdGlvbi5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUNoYXJhY3RlckRhdGEuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21DbGlwYm9hcmQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Db21tZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tQ29uc29sZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNvdW50ZXIuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU0Zv
bnRGYWNlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU0ltcG9ydFJ1bGUuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21DU1NNZWRpYVJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NQYWdl
UnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tQ1NTUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1J1bGVMaXN0Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUNTU1N0eWxlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1N0eWxlU2hlZXQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NWYWx1ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNT
U1ZhbHVlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9u
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbURhdGFiYXNlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbURvY3VtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9j
dW1lbnRUeXBlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbURPTUNvcmVFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21ET01JbXBsZW1lbnRhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVBhcnNlci5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbURPTVNlbGVjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURP
TVdpbmRvdy5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21FbnRpdHkuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21FdmVudEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUV2
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRmlsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUZp
bGVMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSGlzdG9yeS5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxBbmNob3JFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEFwcGxldEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQXJlYUVsZW1lbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQmFz
ZUZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tSFRNTEJSRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxCdXR0b25FbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21IVE1MQ29sbGVjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxEaXJl
Y3RvcnlFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MRExpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTERvY3VtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRN
TEZpZWxkU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGb250RWxlbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGb3JtRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRnJhbWVTZXRF
bGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEhlYWRFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRN
TEhSRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIdG1sRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTEltYWdlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExlZ2Vu
ZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTElFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTExpbmtFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1h
cEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTWFycXVlZUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21I
VE1MTWV0YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTW9kRWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTE9MaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPcHRHcm91cEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFBhcmFtRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxQcmVFbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxTY3Jp
cHRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGFibGVD
ZWxsRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGFibGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MVUxpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSW1hZ2VEYXRhLmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUtleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Mb2NhdGlvbi5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbU1lZGlhTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1lc3Nh
Z2VFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1pbWVUeXBlQXJyYXkuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21NaW1lVHlwZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1vdXNlRXZlbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21NdXRhdGlvbkV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
TmFtZWROb2RlTWFwLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTmF2aWdhdG9yLmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tTm9kZUZpbHRlci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vZGUuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21Ob2RlSXRlcmF0b3IuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Ob2Rl
TGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vdGF0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tT3ZlcmZsb3dFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVBsdWdpbkFycmF5Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tUGx1Z2luLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUHJvZ3Jlc3NFdmVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUmFu
Z2UuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21SZWN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU2Ny
ZWVuLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMRXJyb3IuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21TUUxSZXN1bHRTZXQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21TdG9yYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TdG9yYWdlLmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tU3R5bGVTaGVldC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVN0eWxlU2hl
ZXRMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVGV4dEV2ZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tVGV4dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVRyZWVXYWxrZXIuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21VSUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbVdoZWVsRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxTZXJp
YWxpemVyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQYXRoRXhw
cmVzc2lvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQYXRoTlNSZXNvbHZlci5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbVhQYXRoUmVzdWx0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFNMVFByb2Nl
c3Nvci5oPgpJbmRleDogV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgJKHJldmlz
aW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtl
bm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBw
bGUgSW5jLgorICovCisKKworI2lmbmRlZiBfX0dET01ET01PYmplY3RfSF9fX1BSSVZfCisjZGVm
aW5lIF9fR0RPTURPTU9iamVjdF9IX19fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgor
I2luY2x1ZGUgImdkb20vR2RvbURPTU9iamVjdC5oIgorR19CRUdJTl9ERUNMUworCitjbGFzcyBH
RE9NT2JqZWN0OworV0VCS0lUX0FQSSBHRE9NT2JqZWN0KgorZ2RvbV9kb21fb2JqZWN0X2dldF9w
cml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21f
ZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHZG9tRE9NT2JqZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0
KiBpdGVtKTsKKworR19FTkRfREVDTFMKKyNlbmRpZgorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBX
ZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46bWVyZ2VpbmZvCgpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViS2l0L2d0ay9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw0OCBAQAogCiAgICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgogCisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik6
CisgICAgICAgICogd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmg6IEFkZGVkLgorICAgICAgICAq
IHdlYmtpdC9FdmVudExpc3RlbmVyV2luZG93Lmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC9F
dmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L2dk
b20uaDogQWRkZWQuICBUaGlzIGZpbGUgcHVsbHMgaW4gYWxsIG9mIHRoZSBnZG9tIGdsaWIgaGVh
ZGVycy4gIGl0J3MgdGhlcmUgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBiZSBsYXp5IGFuZCBub3Qg
aGF2ZSB0byAjaW5jbHVkZSAzMDAgZmlsZXMuCisgICAgICAgICogd2Via2l0L3dlYmtpdGRlZmlu
ZXMuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9maW5hbGl6ZSk6CisgICAgICAgIChf
V2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfY2xhc3NfaW5pdCk6CisgICAgICAgIChf
V2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfaW5pdCk6CisgICAgICAgIChfV2ViS2l0
RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfbmV3KToKKyAgICAgICAgKF9XZWJLaXRFdmVudFBy
aXZhdGU6OndlYmtpdF9ldmVudF9nZXRfZXZlbnRfdHlwZSk6CisgICAgICAgIChfV2ViS2l0RXZl
bnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfY2FuY2VsX2J1YmJsZSk6CisgICAgICAgIChfV2ViS2l0
RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfcHJldmVudF9kZWZhdWx0KToKKyAgICAgICAgKF9X
ZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9zdG9wX3Byb3BhZ2F0aW9uKToKKyAgICAg
ICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFhNTEh0
dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6c2V0X3R5cGUpOgorICAgICAgICAoWE1MSHR0cFJlcXVl
c3RFdmVudExpc3RlbmVyOjpYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAo
WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjp+WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVy
KToKKyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgor
ICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChOb2RlRXZlbnRM
aXN0ZW5lcjo6c2V0X3R5cGUpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6Ok5vZGVFdmVu
dExpc3RlbmVyKToKKyAgICAgICAgKE5vZGVFdmVudExpc3RlbmVyOjp+Tm9kZUV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAg
KFdpbmRvd0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXaW5kb3dFdmVudExpc3Rl
bmVyOjpzZXRfdHlwZSk6CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVyOjpXaW5kb3dFdmVu
dExpc3RlbmVyKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6On5XaW5kb3dFdmVudExp
c3RlbmVyKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAg
ICAgICAgKGFkZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAgKGFk
ZF9ldmVudF9saXN0ZW5lcik6CisgICAgICAgIChhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKToK
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmNwcDogYWRkZWQgYnJvd3Nlci1ldmVudCwgc3VwcG9ydCBmb3IgWE1M
SHR0cFJlcXVlc3QsIGdldHRpbmcgRE9NIFdpbmRvdywgRE9NIERvY3VtZW50LCBhbmQgV2luZG93
IGV2ZW50IGxpc3RlbmVyLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgorCiAy
MDA4LTA5LTEwICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNYXJrIFJvd2UuCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMiwxMyArMiwxOSBAQAogV2ViQ29yZSA6
PSAkKHNyY2RpcikvV2ViQ29yZQogCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5H
VUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpF
Q1Q9MQogU1ZHX0ZFQVRVUkVTIDo9CiBIVE1MX0ZFQVRVUkVTIDo9CiAKIFdFQkNPUkVfQ1NTX1BS
T1BFUlRZX05BTUVTIDo9ICQoV2ViQ29yZSkvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KIFdFQkNP
UkVfQ1NTX1ZBTFVFX0tFWVdPUkRTIDo9ICQoV2ViQ29yZSkvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4KIAorbGliZ2RvbV9jcHBmbGFncyArPSBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5n
cy9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCiB3ZWJjb3JlX2Nw
cGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJD
b3JlIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwKIAktSSQoc3JjZGlyKS9X
ZWJDb3JlL2JyaWRnZSBcCkBAIC0yNyw2ICszMyw3IEBACiAJLUkkKHNyY2RpcikvV2ViQ29yZS9w
bGF0Zm9ybSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcyBcCiAJLUkk
KHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKKwktSSQoc3JjZGly
KS9XZWJDb3JlL2JpbmRpbmdzL2dkb20gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvYm1wIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2dpZiBcCkBAIC0zNjcsNiArMzc0LDQ0NiBAQAogCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaAogCitsaWJnZG9tX2J1aWx0X3NvdXJjZXMg
Kz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUF0dHIuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21BdHRyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUJhckluZm8uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21CYXJJbmZvLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNE
QVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0NoYXJzZXRSdWxlLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21D
U1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTSW1wb3J0UnVs
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1bGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQYWdl
UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQcmltaXRpdmVWYWx1ZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGVMaXN0LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q1NTU3R5bGVSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVSdWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWVMaXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1Zhcmlh
Ymxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzR3JhZGllbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQ
aXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJh
eS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2hhcmFjdGVyRGF0YS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNoYXJhY3RlckRhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2xpcGJvYXJk
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvbW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21Db21tZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvbnNv
bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db25zb2xlLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21D
b3VudGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUNvcmVFeGNlcHRpb24uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbURPTUltcGxlbWVudGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tRE9NSW1wbGVtZW50YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NUGFyc2VyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVNlbGVjdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01XaW5kb3cuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVu
dEZyYWdtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudFR5cGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudFR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eVJlZmVy
ZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eVJlZmVyZW5jZS5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50RXhjZXB0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUZpbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxB
bmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcHBsZXRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxCUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
QlJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJvZHlF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxD
b2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxETGlzdEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRExpc3RFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MRGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRG9jdW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRG9jdW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRW1i
ZWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvcm1F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
SFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIZWFkRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TEh0bWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJRnJhbWVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTElucHV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElzSW5k
ZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMSUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MTGFiZWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMZWdl
bmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcnF1
ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1v
ZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTW9kRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT0xpc3RFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxP
cHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0R3Jv
dXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTFBhcmFtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFByZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTZWxlY3RF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFNlbGVjdEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFi
bGVDb2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TFRpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUaXRsZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSGlzdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRhLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUtleWJv
YXJkRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21LZXlib2FyZEV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlw
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1pbWVUeXBlLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbU1pbWVUeXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1vdXNlRXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Nb3VzZUV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbU11dGF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21NdXRhdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVk
Tm9kZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYXZpZ2F0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVG
aWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUxp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21P
dmVyZmxvd0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tT3ZlcmZsb3dFdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW4uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUGx1Z2lu
QXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW5BcnJheS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVByb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmFuZ2UuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21SYW5nZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJh
bmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJlY3QuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21SZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNjcmVlbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXRMaXN0LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21UZXh0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21UZXh0TWV0cmljcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRN
ZXRyaWNzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRyZWVXYWxrZXIuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21UcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21VSUV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdoZWVsRXZl
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
WE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTFNlcmlhbGl6
ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVhTTFRQcm9jZXNzb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUF0dHIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bUJhckluZm8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNEQVRBU2VjdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1bGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTTWVkaWFSdWxlLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1J1
bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xh
cmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NTdHlsZVJ1bGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1N0eWxlU2hlZXQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vUHJpdmF0ZUdkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21D
bGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNvbW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNvbnNvbGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21ET01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbURPTVNl
bGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRE9NV2luZG93Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUVudGl0eVJlZmVy
ZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRN
TEFuY2hvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxB
cHBsZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MQXJl
YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCUkVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCYXNlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEJhc2VGb250RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MQm9keUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MRGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
SFRNTEZpZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
SFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1M
Rm9ybUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxGcmFt
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxGcmFtZVNl
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxIUkVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxIZWFkRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEhlYWRpbmdFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSHRtbEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSW1hZ2VFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUhUTUxMYWJlbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRN
TE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MTW9k
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE9MaXN0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE9iamVjdEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxPcHRHcm91cEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxPcHRpb25FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxQYXJhZ3JhcGhFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MUGFyYW1FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MUHJlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGl0bGVFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IaXN0b3J5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21JbWFnZURhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bUphdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bUtleWJvYXJkRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUxvY2F0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21NZWRpYUxpc3QuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tTWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU11
dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5hbWVkTm9k
ZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tTmF2aWdhdG9yLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Ob3RhdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tUmFuZ2VFeGNl
cHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVJlY3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVRleHRFdmVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tVGV4dE1ldHJpY3MuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRl
R2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YU0xU
UHJvY2Vzc29yLmggIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3Jh
cHBlckZhY3RvcnkuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50
V3JhcHBlckZhY3RvcnkuaCAKKwogSURMX0JJTkRJTkdTICs9ICBcCiAJV2ViQ29yZS9jc3MvQ291
bnRlci5pZGwgXAogCVdlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCkBAIC01MTcsNiAr
OTY0LDE5IEBACiAJV2ViQ29yZS94bWwvWE1MU2VyaWFsaXplci5pZGwgXAogCVdlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3IuaWRsCiAKK2xpYmdkb21fc291cmNlcyArPSBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01C
aW5kaW5nLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcCBcCisJ
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Q
cml2YXRlR2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZl
bnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdl
dE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmgKKworCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvRm9yd2FyZGluZ0hlYWRl
cnMva2pzL0FjdGl2YXRpb24uaCBcCiAJV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ranMvQXJn
TGlzdC5oIFwKQEAgLTIwNDcsMTAgKzI1MDcsMTQgQEAKICMgLS0tLQogaWYgRU5BQkxFX09GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9
IFwKLQlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCisJRGVyaXZlZFNv
dXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAKIAorbGliZ2RvbV9idWlsdF9zb3VyY2Vz
ICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmNwcAor
CiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0
aW9uQ2FjaGUuaWRsCiAKQEAgLTIwOTEsNiArMjU1NSw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9E
QVRBQkFTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RBVEFCQVNFPTEK
K0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9EQVRBQkFTRT0xCiAKIHdlYmNvcmVfYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSlNEYXRhYmFzZS5jcHAgXApAQCAtMjEw
NCw2ICsyNTY5LDIzIEBACiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFuc2FjdGlvbi5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uaAogCitsaWJnZG9tX2J1aWx0X3NvdXJj
ZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURhdGFiYXNlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1FMRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxFcnJvci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TUUxSZXN1bHRTZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FM
UmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFJlc3Vs
dFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbVNRTEVycm9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21TUUxSZXN1bHRTZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNR
TFJlc3VsdFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNR
TFRyYW5zYWN0aW9uLmgKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvRGF0
YWJhc2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaWRsIFwKQEAgLTIxNzYsNiAr
MjY1OCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9ET01fU1RPUkFHRQogRkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9N
ICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJ
RGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmNwcCBcCkBAIC0yMTgzLDYgKzI2NjYsMTQgQEAKIAlE
ZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTU3Rv
cmFnZUV2ZW50LmgKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFn
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bVN0b3JhZ2VFdmVudC5oCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbApAQCAtMjI0MSw2
ICsyNzMyLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCiBGRUFUVVJFX0RFRklORVNfSkFW
QVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxF
X1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklERU89MQogd2ViY29yZV9jcHBm
bGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMjYzLDggKzI3NTUsMzEgQEAKIAlEZXJpdmVk
U291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suY3BwIFwKLQlEZXJpdmVkU291cmNl
cy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2suaCAKIAor
bGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
QXVkaW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEF1ZGlvRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1lZGlhRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVmlk
ZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhRXJyb3IuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZWRpYUVycm9yLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UaW1l
UmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVZvaWRDYWxsYmFjay5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVZvaWRDYWxsYmFjay5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tSFRNTE1lZGlhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L1ByaXZhdGVHZG9tSFRNTFNvdXJjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVRp
bWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVZvaWRDYWxsYmFj
ay5oCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQu
aWRsIFwKIAlXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwgXApAQCAtMjMwNyw2ICsy
ODIyLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1hQQVRICiBGRUFUVVJFX0RFRklORVNfSkFWQVND
UklQVCArPSBFTkFCTEVfWFBBVEg9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1hQ
QVRIPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YUEFUSD0xCiAKQEAgLTIzMjIs
OCArMjgzOCwyNSBAQAogCURlcml2ZWRTb3VyY2VzL0pTWFBhdGhSZXN1bHQuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9KU1hQYXRoUmVzdWx0LmggXAogCURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1h
ci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5oCisJRGVyaXZlZFNvdXJjZXMv
WFBhdGhHcmFtbWFyLmggCiAKK2xpYmdkb21fYnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV4
Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhjZXB0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVzc2lvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
UGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhSZXN1bHQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aFJlc3VsdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21YUGF0aEV4cHJlc3Npb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tWFBhdGhSZXN1bHQuaAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUveG1sL1hQ
YXRoRXZhbHVhdG9yLmlkbCBcCiAJV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsIFwKQEAg
LTIzODcsNiArMjkyMCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9YU0xUCiBGRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFNMVD0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBF
TkFCTEVfWFNMVD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFNMVD0xCiAKQEAg
LTI0MTAsNiArMjk0NCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9TVkcKIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVO
QUJMRV9TVkc9MSAtIGJpZyBUT0RPISA6KQogCiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUyAr
PSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluIAogV0VCQ09SRV9DU1NfVkFM
VUVfS0VZV09SRFMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAt
MjY4Nyw2ICszMjIyLDI3MyBAQAogCURlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHAKIAorbm90LXlldDoKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FuZ2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVD
b2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlQ29s
b3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdBbmltYXRlZEJvb2xlYW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1h
dGVkRW51bWVyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2Vy
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FuaW1hdGVkTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHQW5pbWF0ZWROdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0
ZWROdW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmlt
YXRlZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJlY3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHQ2lyY2xlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NpcmNs
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHQ3Vyc29yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZWZp
bml0aW9uU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZmlu
aXRpb25TcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZnNFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVmc0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdEZXNjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RvY3VtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0VsZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Vs
ZW1lbnRJbnN0YW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50SW5z
dGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudEluc3Rh
bmNlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGxpcHNlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0V4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdG
RUJsZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQmxlbmRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvbmVudFRyYW5z
ZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdo
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdo
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0ZFRnVuY0JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHRkVGdW5jQkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5j
R0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNHRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNSRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGRUltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0ZFTWVyZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJn
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHRkVUaWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRmlsdGVyRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdGb250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdG
b250RmFjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VG
b3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VG
b3JtYXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlTmFt
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZU5hbWVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0
aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMaW5l
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNYXJrZXJFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R01hc2tFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01p
c3NpbmdHbHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR051bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhaW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGFpbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRo
U2VnLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0FyY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0FyY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ2xvc2VQ
YXRoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
QWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFi
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdMaW5ldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
TGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5ldG9I
b3Jpem9udGFsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXRoU2VnTGluZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0xpbmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGlu
ZXRvVmVydGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
TGluZXRvVmVydGljYWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUGF0dGVybkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXR0ZXJuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2ludC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1BvaW50TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1BvaW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2x5Z29uRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlnb25FbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1JlY3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdSZW5kZXJpbmdJbnRlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU1ZHRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NWR0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Nl
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RvcEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdG9wRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdTdHJpbmdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHU3RyaW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHls
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N3aXRjaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1N5bWJvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFJl
ZkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUUmVmRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1RleHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1RpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdUcmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zv
cm0uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHVW5pdFR5cGVzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1VzZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdVc2VFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHWm9vbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50
LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9s
LmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTMyNjYsMzYgKzQwNjgs
NDIgQEAKICMgU1ZHIEZlYXR1cmVzCiBpZiBFTkFCTEVfU1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19VU0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9
IEVOQUJMRV9TVkdfVVNFPTEgIyBiaWcgVE9ETyEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZH
X1VTRT0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAog
aWYgRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0g
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xIAogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdf
Rk9SRUlHTl9PQkpFQ1Q9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlH
Tl9PQkpFQ1Q9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT05UUwogRkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT05UUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00g
Kz0gRU5BQkxFX1NWR19GT05UUz0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0x
CiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBF
TkFCTEVfU1ZHX0ZJTFRFUlMKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9T
VkdfRklMVEVSUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GSUxURVJT
PTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogd2ViY29yZV9jcHBmbGFn
cyArPSAtREVOQUJMRV9TVkdfRklMVEVSUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lN
QUdFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEK
KyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFU
VVJFUyArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFC
TEVfU1ZHX0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCisjRkVBVFVS
RV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogU1ZHX0ZFQVRVUkVTICs9
IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZH
X0FOSU1BVElPTj0xCiBlbmRpZgpAQCAtMzMwMyw2ICs0MTExLDcgQEAKICMgU1ZHIHRhZyBhbmQg
YXR0cmlidXRlIG5hbWVzIChuZWVkIHRvIHBhc3MgYW4gZXh0cmEgZmxhZyBpZiBzdmcgZXhwZXJp
bWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkKQogRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3Bw
OiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA7CiBEZXJpdmVkU291cmNlcy9K
U1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRG
YWN0b3J5LmNwcAorRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19G
TEFHUwogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2Rv
bS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcv
c3ZnYXR0cnMuaW4KQEAgLTM0MjQsNiArNDIzMywxMyBAQAogICAgICQoV2ViQ29yZSkveG1sIFwK
ICAgICAkKFdlYkNvcmUpL3BsdWdpbnMKIAorCisKK0Rlcml2ZWRTb3VyY2VzL2dkb20vR2RvbSUu
aDogRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbSUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2Jp
bmRpbmdzL3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRp
bmdzLnBsIC0taW5jbHVkZSAkKFdlYkNvcmUpL2RvbSAtLWluY2x1ZGUgJChXZWJDb3JlKS9odG1s
IC0taW5jbHVkZSAkKFdlYkNvcmUpL2NzcyAtLWluY2x1ZGUgJChXZWJDb3JlKS9wYWdlIC0taW5j
bHVkZSAkKFdlYkNvcmUpL3htbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9zdmcgLS1vdXRwdXREaXIg
IiQoR0VOU09VUkNFU0dET00pIiAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTX0dET00pIiAt
LWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKIERlcml2ZWRTb3VyY2VzL0pTJS5oOiBEZXJpdmVkU291
cmNlcy9KUyUuY3BwOwogCiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOiAlLmlkbCAkKFNDUklQVFNf
QklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
QEAgLTM0MzksNiArNDI1NSw3IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQ
YXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5w
bCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3Jl
L2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1aXJrcy5jc3MgXAogCVdlYkNvcmUvY3Nz
L3ZpZXctc291cmNlLmNzcyBcCkBAIC0zNDc2LDMgKzQyOTMsNyBAQAogCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdC
Q29sb3IubHV0LmgKIAorCisKKworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhU
TUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4MiBAQAorLyoKKyAqIFRISVMgRklMRSBJUyBERVJJ
VkVEIEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFURUQgRklMRS4KKyAqICBrZWVwaW5nIGl0
IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqICBhIG1h
a2VfbmFtZXMucGwgZ2VuZXJhdG9yLCBvciBieSB3cml0aW5nIGEgc2VwYXJhdGUKKyAqICBnZW5l
cmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggYXMgaW5wdXQu
CisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2luY2x1ZGUgImdkb20vR2RvbU5vZGUuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxBbmNob3JFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tL0dkb21IVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQmFz
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJSRWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNvbEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERp
dkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRExpc3RFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRm9udEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZyYW1lU2V0
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSHRtbEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSW5wdXRFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxMZWdl
bmRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExJRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxN
YXBFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTE1ldGFFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9iamVjdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPcHRp
b25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUXVvdGVFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxTdHls
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUZXh0
QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxVTGlzdEVsZW1lbnQuaCIKKworI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21I
VE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MQXBw
bGV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MQXJlYUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEJhc2VFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
UHJpdmF0ZUludEdkb21IVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50
R2RvbUhUTUxCdXR0b25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhU
TUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxUYWJs
ZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTE1vZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vUHJpdmF0ZUludEdkb21IVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJ
bnRHZG9tSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhU
TUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MRnJhbWVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxGcmFtZVNldEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEhlYWRpbmdFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MSFJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Q
cml2YXRlSW50R2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUlu
dEdkb21IVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21I
VE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxJbnB1
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxMYWJlbEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTExJRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
UHJpdmF0ZUludEdkb21IVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJ
bnRHZG9tSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRN
TE1hcnF1ZWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxNZW51
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MTWV0YUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vUHJpdmF0ZUludEdkb21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9Qcml2YXRlSW50R2RvbUhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRl
SW50R2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9t
SFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFF1b3Rl
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MU2NyaXB0RWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MU2VsZWN0RWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L1ByaXZhdGVJbnRHZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L1ByaXZhdGVJbnRHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1By
aXZhdGVJbnRHZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0
ZUludEdkb21IVE1MVGl0bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2Rv
bUhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRN
TFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisKKyNpbmNsdWRlICJI
VE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJhc2VFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCbG9ja3F1b3Rl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxC
UkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1vZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxE
aXZFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZVNldEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVh
ZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSFJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEh0
bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMYWJlbEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMSUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFwRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZW51
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxP
YmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFtRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFF1b3Rl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGV4
dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVUxpc3RFbGVtZW50LmgiCisj
aW5jbHVkZSAiQ1N0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CisKK3R5cGVkZWYgR0RPTU5vZGUqICgqQ3JlYXRlSFRNTEVsZW1lbnRX
cmFwcGVyRnVuY3Rpb24pKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsKKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVBbmNob3JXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEFuY2hvckVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TEFuY2hvckVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlQXBwbGV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxBcHBsZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBcHBs
ZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUFyZWFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTEFyZWFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBcmVhRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCYXNlV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RP
TUhUTUxCYXNlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmFzZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQmFzZUZvbnRXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJh
c2VGb250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmFzZUZvbnRFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEJsb2NrcXVvdGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCbG9ja3F1b3RlRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCb2R5V3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhU
TUxCb2R5RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQm9keUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQlJXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJSRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MQlJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZUJ1dHRvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQnV0dG9uRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVDYW52YXNXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTENhbnZhc0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TENhbnZhc0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNvbEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTFRhYmxlQ29sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVNb2RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1vZEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTE1vZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlRGlyZWN0b3J5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiBuZXcgR0RPTUhUTUxEaXJlY3RvcnlFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxEaXJlY3RvcnlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZURpdldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MRGl2RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGl2RWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVETGlz
dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MRExpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxETGlzdEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRW1iZWRXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTEVtYmVkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxG
aWVsZFNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZpZWxkU2V0RWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGb250V3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxGb250
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRm9ybVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRm9ybUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEZyYW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVGcmFtZVNldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRnJhbWVTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxGcmFtZVNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlSGVhZGluZ1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSGVhZGluZ0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TEhlYWRpbmdFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUhlYWRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhlYWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIUldy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MSFJFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIUkVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSHRtbFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSHRtbEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSUZyYW1lRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MSUZyYW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVJbWFnZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MSW1hZ2VFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxJbWFnZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlSW5wdXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElucHV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZUlzSW5kZXhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTElzSW5kZXhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJc0lu
ZGV4RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVMYWJlbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MTGFiZWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGVnZW5k
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxMZWdlbmRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMZWdlbmRFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxJV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhU
TUxMSUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExJRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMaW5rV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxMaW5rRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlTWFwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxNYXBFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxNYXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZU1hcnF1ZWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1hcnF1ZWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNYXJx
dWVlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVNZW51V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxNZW51RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWVudUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWV0YVdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MTWV0YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9iamVjdFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MT2Jq
ZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MT0xpc3RFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxPTGlzdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT3B0R3JvdXBXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9wdEdyb3VwRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9wdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MT3B0aW9uRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVQYXJhZ3JhcGhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFBhcmFncmFwaEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTFBhcmFncmFwaEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUGFyYW1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFBhcmFtRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MUGFyYW1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZVByZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MUHJlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
UHJlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVRdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MUXVvdGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxRdW90ZUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU2NyaXB0
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxTY3JpcHRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTY3JpcHRFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNlbGVjdFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MU2VsZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTdHlsZVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
U3R5bGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTdHlsZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVTZWN0
aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGV4dEFyZWFXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTFRleHRBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRpdGxlV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhU
TUxUaXRsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRpdGxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVJvd1dyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFi
bGVSb3dFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVJvd0VsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVUxpc3RXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFVMaXN0
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVUxpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgc3RhdGljIEhhc2hNYXA8V2ViQ29yZTo6QXRvbWljU3RyaW5n
SW1wbCosIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uPiBtYXA7CisgICAgaWYgKG1h
cC5pc0VtcHR5KCkpIHsKKyAgICAgICBtYXAuc2V0KGFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVBbmNob3JXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFwcGxldFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUFwcGxldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYXJlYVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFyZWFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJh
c2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChiYXNlZm9udFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VGb250V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChibG9ja3F1b3RlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlQmxvY2txdW90ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYm9keVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUJvZHlXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJyVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlQlJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJ1dHRvblRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJ1dHRvbldyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoY2FudmFzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQ2FudmFzV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChjYXB0aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVD
YXB0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGVsVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFwLnNldChkaXJUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGRpdlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpdldyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoZGxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVETGlzdFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoZW1iZWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVFbWJlZFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoZmllbGRzZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVGaWVsZFNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZm9udFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZvcm1UYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVGb3JtV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmcmFtZVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1lV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChmcmFtZXNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1lU2V0V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChoMVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhlYWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVIZWFkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoclRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUhSV3JhcHBlcik7CisgICAgICAgbWFwLnNldChodG1sVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlSHRtbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaWZyYW1lVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSUZyYW1lV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbWdU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoaW5wdXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbnB1dFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoaXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlzSW5kZXhX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxhYmVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlTGFiZWxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxlZ2VuZFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUxlZ2VuZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVMSVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlua1RhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxpbmtXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1h
cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1hcFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQobWFycXVlZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KG1lbnVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZW51V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChtZXRhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
TWV0YVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob2JqZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlT2JqZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChvbFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZU9MaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChvcHRncm91cFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRpb25XcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KHBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQYXJhZ3JhcGhX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBhcmFtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlUGFyYW1XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHByZVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocVRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVF1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChzY3JpcHRUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTY3JpcHRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHNl
bGVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoc3R5bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTdHlsZVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQodGFibGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJs
ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRkVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0ZXh0
YXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRleHRBcmVhV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldCh0aXRsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRpdGxlV3JhcHBl
cik7CisgICAgICAgbWFwLnNldCh0clRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxl
Um93V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh1bFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVVMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xncm91cFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoMlRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGgzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoaDRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChoNVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
SGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1hZ2VUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW5zVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFwLnNldChrZXlnZW5UYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGxpc3RpbmdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHRmb290VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9u
V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGhlYWRUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHhtcFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgIH0KKyAgICAvL3By
aW50ZigiY3JlYXRlR0RPTUhUTUxXcmFwcGVyOiAlc1xuIiwgZWxlbWVudC0+bG9jYWxOYW1lKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVu
Y3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0gbWFwLmdldChlbGVtZW50LT5sb2NhbE5hbWUo
KS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCisgICAgICAgIHJldHVy
biBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVudCk7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEVsZW1lbnQoZWxlbWVudC5nZXQoKSk7Cit9CisKK30KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2Rl
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdl
dE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmgi
CisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oIiAvKiB5dWtrOiBUT0RPIC0g
bWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUV2ZW50LmgiCitlbnVtIHsKKyAgICBCUk9XU0VSX0VWRU5ULAorICAgIExB
U1RfU0lHTkFMCit9OworCitzdGF0aWMgZ3VpbnQgZXZlbnRfc2lnbmFsc1tMQVNUX1NJR05BTF0g
PSB7IDAsIH07CisKKworV2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dl
dF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7CisgICAgR0RPTUV2ZW50
VGFyZ2V0Tm9kZSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19jYXN0PEdET01FdmVudFRhcmdldE5v
ZGUqPihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3Qp
KSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHJlcy0+aW1w
bCgpKTsKK30KKworCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRXZlbnRUYXJn
ZXROb2RlLCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlLCBHRE9NX1RZUEVfTk9ERSk7CisKKy8qCitz
dHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpF
dmVudFRhcmdldE5vZGUgKml0ZW07Cit9OworKi8KKworI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdF
VF9OT0RFX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2Jq
KSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0
ZSkpCisKKy8qCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdkb21F
dmVudFRhcmdldE5vZGUgKnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0p
Cit7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RB
UkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPml0ZW0gPSBpdGVtOwor
fQorKi8KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZShHT2Jq
ZWN0KiBvYmplY3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0ID0gR0RP
TV9FVkVOVF9UQVJHRVRfTk9ERShvYmplY3QpOworICAgIEdkb21FdmVudFRhcmdldE5vZGVQcml2
YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9l
dmVudF90YXJnZXRfbm9kZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitz
dGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQoR2RvbUV2ZW50VGFy
Z2V0Tm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9XU0VS
X0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQRV9G
Uk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFM
X1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR19TSUdOQUxfREVUQUlMRUQgICAgKSwKKyAgICAgICAgMCwKKyAgICAgICAgTlVM
TCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JP
T0xFQU4sCisgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9NX1RZUEVfRVZFTlQs
IEdfVFlQRV9CT09MRUFOKTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZp
bmFsaXplID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZTsKKworICAgIC8qZ190eXBl
X2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21FdmVudFRhcmdldE5v
ZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9p
bml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJn
ZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUo
cmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30KKworfSAvKiBleHRlcm4g
IkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsODAxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhh
cnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBD
b3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisvLyBnY2MgMy54IGNhbid0IGhh
bmRsZSBpbmNsdWRpbmcgdGhlIEhhc2hNYXAgcG9pbnRlciBzcGVjaWFsaXphdGlvbiBpbiB0aGlz
IGZpbGUKKyNpZiBkZWZpbmVkIF9fR05VQ19fICYmICFkZWZpbmVkIF9fR0xJQkNYWF9fIC8vIGxl
c3MgdGhhbiBnY2MgMy40CisjZGVmaW5lIEhBU0hfTUFQX1BUUl9TUEVDX1dPUktBUk9VTkQgMQor
I2VuZGlmCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgor
I2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21ET01PYmplY3QuaCIKKyNp
bmNsdWRlICJnZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTUJpbmRp
bmcuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorCisjaW5j
bHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUNTU1N0eWxlU2hlZXQu
aCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tQ1NTU3R5bGVTaGVldC5oIgorCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgorI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkhUTUxJbWFn
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21O
b2RlLmgiCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRH
ZG9tTm9kZS5oIgorCisjaW5jbHVkZSAiQXR0ci5oIgorI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5o
IgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ29tbWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkVudGl0eS5oIgorI2luY2x1ZGUgIkVudGl0eVJlZmVy
ZW5jZS5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRXZl
bnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tQXR0ci5oIgorI2luY2x1ZGUgImdk
b20vUHJpdmF0ZUludEdkb21BdHRyLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tQ2hhcmFjdGVyRGF0
YS5oIgorI2luY2x1ZGUgImdkb20vR2RvbVRleHQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21DREFU
QVNlY3Rpb24uaCIKKyNpbmNsdWRlICJnZG9tL0dkb21Db21tZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21Eb2N1bWVudEZyYWdtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
RW50aXR5LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVl
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tTm90YXRpb24uaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJOb2Rl
LmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlICJnZG9tL0dkb21DU1NSdWxlLmgiCisj
aW5jbHVkZSAiQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIK
KyNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCisj
aW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKKyNpbmNs
dWRlICJDU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tQ1NTQ2hhcnNldFJ1
bGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tQ1NTTWVkaWFSdWxl
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21DU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21DU1NWYXJpYWJsZXNSdWxlLmgi
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tRXZl
bnQuaCIKKworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tS2V5Ym9hcmRF
dmVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbU1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21NdXRhdGlvbkV2ZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bVByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21UZXh0RXZlbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21VSUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tV2ViS2l0QW5pbWF0
aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgor
I2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNpbmNs
dWRlICJNdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1
ZGUgIlByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJV
SUV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCisjaW5jbHVk
ZSAiWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCisKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MQ29sbGVjdGlvbi5oIgorCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAi
SFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKy8v
IFRPRE8gI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MQWxsQ29sbGVjdGlvbi5oIgor
Ly8gVE9ETyAjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFsbENvbGxlY3Rpb24uaCIKKyNpbmNsdWRl
ICJnZG9tL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKy8vIGVyci4uLiAjaW5jbHVkZSAi
Z2RvbS9Qcml2YXRlSW50R2RvbU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisvLyBlcnIuLi4gI2lu
Y2x1ZGUgImdkb20vR2RvbU5hbWVkTm9kZXNDb2xsZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoRE9N
X1NUT1JBR0UpCisjaW5jbHVkZSAiZ2RvbS9HZG9tU3RvcmFnZUV2ZW50LmgiCisjaW5jbHVkZSAi
U3RvcmFnZUV2ZW50LmgiCisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBUT0RP
ICovCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgor
I2VuZGlmCisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBYWFggVE9ETyAqLwor
I2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRl
ICJTVkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisjaWYgMAorI2lmIEVOQUJMRShTVkcp
CisjaW5jbHVkZSAiZ2RvbS9HZG9tU1ZHRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiU1ZHRXhjZXB0
aW9uLmgiCisjZW5kaWYKKyNlbmRpZgorCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUNs
aXBib2FyZC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21DU1NSdWxlLmgiCisjaW5j
bHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUgImdkb20v
UHJpdmF0ZUludEdkb21Db21tZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbURv
Y3VtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbURvY3VtZW50RnJhZ21lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVk
ZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUVudGl0eS5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUlu
dEdkb21FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUNTU1ZhbHVlTGlz
dC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIgor
I2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21FbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJnZG9tL1ByaXZhdGVJbnRHZG9tTm90YXRpb24uaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJ
bnRHZG9tSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbVByb2Nl
c3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21UZXh0Lmgi
CisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVk
ZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgImdkb20v
UHJpdmF0ZUludEdkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50
R2RvbUNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21DU1NQYWdl
UnVsZS5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21DU1NTdHlsZVJ1bGUuaCIKKyNp
bmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUg
Imdkb20vUHJpdmF0ZUludEdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbU1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21N
b3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbU11dGF0aW9uRXZlbnQu
aCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Q
cml2YXRlSW50R2RvbVRleHRFdmVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21V
SUV2ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbVdlYktpdEFuaW1hdGlvbkV2
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbVdlYktpdFRyYW5zaXRpb25FdmVu
dC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21XaGVlbEV2ZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbS9Qcml2YXRlSW50R2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2lu
Y2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21TdG9yYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJnZG9t
L1ByaXZhdGVJbnRHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiZ2RvbS9Q
cml2YXRlSW50R2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9p
bnRlcj4gRE9NT2JqZWN0TWFwOwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gR2Rv
bVdyYXBwZXJDYWNoZTsgLyogQVJHISBVTkZBSVIhIEpTV3JhcHBlckNhY2hlIGlzIGluIERvY3Vt
ZW50ISEgKi8KKworLy8gRm9yIGRlYnVnZ2luZywga2VlcCBhIHNldCBvZiB3cmFwcGVycyBjdXJy
ZW50bHkgcmVnaXN0ZXJlZCwgYW5kIGNoZWNrIHRoYXQKKy8vIGFsbCBhcmUgdW5yZWdpc3RlcmVk
IGJlZm9yZSB0aGV5IGFyZSBkZXN0cm95ZWQuIFRoaXMgaGFzIGhlbHBlZCB1cyBmaXggYXQKKy8v
IGxlYXN0IG9uZSBidWcuCisKKyNpZiAwCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmpl
Y3QqIHdyYXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFw
cGVyKTsKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUm
IHdyYXBwZXJzKTsKKworI2lmZGVmIE5ERUJVRworCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkV3Jh
cHBlcihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZVdyYXBw
ZXIoR0RPTU9iamVjdCopCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVy
cyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJikKK3sKK30KKworI2Vsc2UKKworc3RhdGljIEhhc2hT
ZXQ8R0RPTU9iamVjdCo+JiB3cmFwcGVyU2V0KCkKK3sKKyAgICBzdGF0aWMgSGFzaFNldDxHRE9N
T2JqZWN0Kj4gc3RhdGljV3JhcHBlclNldDsKKyAgICByZXR1cm4gc3RhdGljV3JhcHBlclNldDsK
K30KKworc3RhdGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0KiB3cmFwcGVyKQoreworICAg
IEFTU0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAgICB3cmFwcGVyU2V0
KCkuYWRkKHdyYXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdET01PYmpl
Y3QqIHdyYXBwZXIpCit7CisgICAgaWYgKCF3cmFwcGVyKQorICAgICAgICByZXR1cm47CisgICAg
QVNTRVJUKHdyYXBwZXJTZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgp
LnJlbW92ZSh3cmFwcGVyKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3Qg
R2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlcnMpCit7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hl
Ojpjb25zdF9pdGVyYXRvciBpdCA9IHdyYXBwZXJzLmJlZ2luKCk7IGl0ICE9IHdyYXBwZXJzLmVu
ZCgpOyArK2l0KQorICAgICAgICByZW1vdmVXcmFwcGVyKGl0LT5zZWNvbmQpOworfQorCitHRE9N
T2JqZWN0Ojp+R0RPTU9iamVjdCgpCit7CisgICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFp
bnModGhpcykpOworfQorCisjZW5kaWYKKyNlbmRpZiAvKiBjb21tZW50ZWQgb3V0IGZvciBub3cg
Ki8KKworc3RhdGljIEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJDYWNoZSgpCit7CisgICAgLy8g
VU5GQUlSISBpIHdhbnQgb25lIG9mIHRoZXNlIHBlciBEb2N1bWVudCwgdG9vIQorICAgIC8vIERv
bid0IHVzZSBtYWxsb2MgaGVyZS4gQ2FsbGluZyBtYWxsb2MgZnJvbSBhIG1hcmsgZnVuY3Rpb24g
Y2FuIGRlYWRsb2NrLgorICAgIHN0YXRpYyBHZG9tV3JhcHBlckNhY2hlIHN0YXRpY0dkb21XcmFw
cGVyQ2FjaGU7CisgICAgcmV0dXJuIHN0YXRpY0dkb21XcmFwcGVyQ2FjaGU7Cit9CisKK3N0YXRp
YyBET01PYmplY3RNYXAmIGRvbU9iamVjdHMoKQoreworICAgIC8vIERvbid0IHVzZSBtYWxsb2Mg
aGVyZS4gQ2FsbGluZyBtYWxsb2MgZnJvbSBhIG1hcmsgZnVuY3Rpb24gY2FuIGRlYWRsb2NrLgor
ICAgIHN0YXRpYyBET01PYmplY3RNYXAgc3RhdGljRE9NT2JqZWN0czsKKyAgICByZXR1cm4gc3Rh
dGljRE9NT2JqZWN0czsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRE
T01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKQoreworICAgIGdwb2ludGVyIHJldCA9IGRvbU9i
amVjdHMoKS5nZXQob2JqZWN0SGFuZGxlKTsKKyAgICAvL3ByaW50ZigiZ2V0RE9NT2JqZWN0OiAl
cCAlcFxuIiwgb2JqZWN0SGFuZGxlLCByZXQpOworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRp
YyBncG9pbnRlciBjcmVhdGVfZ2RvbV9vYmplY3QoR0RPTU9iamVjdCAqZG9iKQoreworICAgIGdw
b2ludGVyIHJlcyA9IGdfb2JqZWN0X25ldyhkb2ItPmdldF9nb2JqX3R5cGUoKSwgTlVMTCk7Cisg
ICAgZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXMpLCBkb2Ip
OworICAgIHJldHVybiByZXM7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6
cHV0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgR0RPTU9iamVjdCogd3JhcHBlcikKK3sK
KyAgICAvLyBhZGRXcmFwcGVyKHdyYXBwZXIpOworICAgIGdwb2ludGVyIG9iaiA9IGNyZWF0ZV9n
ZG9tX29iamVjdCh3cmFwcGVyKTsKKyAgICAvL3ByaW50ZigicHV0RE9NT2JqZWN0OiAlcCAlcCAl
cFxuIiwgb2JqZWN0SGFuZGxlLCB3cmFwcGVyLCBvYmopOworICAgIGRvbU9iamVjdHMoKS5zZXQo
b2JqZWN0SGFuZGxlLCBvYmopOworICAgIHJldHVybiBvYmo7Cit9CisKK3ZvaWQgR0RPTVNjcmlw
dEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKQoreworICAg
IGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSk7CisgICAgLy9yZW1vdmVXcmFwcGVyKGRv
bU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSkpOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5v
ZGUqIG5vZGUpCit7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGdwb2ludGVyID4oZG9tT2JqZWN0cygpLmdldChub2RlKSk7CisgICAgcmV0dXJuIC8qIFhY
WCBncnJyIGRvY3VtZW50LT4gKi93cmFwcGVyQ2FjaGUoKS5nZXQobm9kZSk7Cit9CisKK3ZvaWQg
R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAgICAg
Zm9yZ2V0RE9NT2JqZWN0KG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIC8vcmVt
b3ZlV3JhcHBlcigvKiBYWFggZ3JyIGRvY3VtZW50LT4qL3dyYXBwZXJDYWNoZSgpLnRha2Uobm9k
ZSkpOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JE
b2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUsIEdET01Ob2RlICp3cmFwcGVy
KQoreworICAgIC8vYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBpZiAoIWRvY3VtZW50KSB7Cisg
ICAgICAgIG5vZGUtPnJlZigpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVy
OjpwdXRET01PYmplY3Qobm9kZSwgd3JhcHBlcikgOworICAgIH0KKyAgICBncG9pbnRlciBvYmog
PSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgLyogWFhYIGdycnIgZG9jdW1lbnQt
Piovd3JhcHBlckNhY2hlKCkuc2V0KG5vZGUsIG9iaik7CisgICAgcmV0dXJuIG9iajsKK30KKwor
dm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQo
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgLy9yZW1v
dmVXcmFwcGVycyhkb2N1bWVudC0+d3JhcHBlckNhY2hlKCkpOworfQorCisjaWYgMAordm9pZCBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50KiBk
b2MpCit7CisjaWYgMCAvKlhYWCBUT0RPKi8KKyAgICAvLyBJZiBhIG5vZGUncyBHZG9tIHdyYXBw
ZXIgaG9sZHMgY3VzdG9tIHByb3BlcnRpZXMsIHRob3NlIHByb3BlcnRpZXMgbXVzdAorICAgIC8v
IHBlcnNpc3QgZXZlcnkgdGltZSB0aGUgbm9kZSBpcyBmZXRjaGVkIGZyb20gdGhlIERPTS4gU28s
IHdlIGtlZXAgR2RvbQorICAgIC8vIHdyYXBwZXJzIGxpa2UgdGhhdCBmcm9tIGJlaW5nIGdhcmJh
Z2UgY29sbGVjdGVkLgorCisgICAgR2RvbVdyYXBwZXJDYWNoZSYgbm9kZURpY3QgPSAvKmRvYy0+
Ki93cmFwcGVyQ2FjaGUoKTsKKyAgICBHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBub2RlRW5k
ID0gbm9kZURpY3QuZW5kKCk7CisgICAgZm9yIChHZG9tV3JhcHBlckNhY2hlOjppdGVyYXRvciBu
b2RlSXQgPSBub2RlRGljdC5iZWdpbigpOyBub2RlSXQgIT0gbm9kZUVuZDsgKytub2RlSXQpIHsK
KyAgICAgICAgZ3BvaW50ZXIgZ05vZGUgPSBub2RlSXQtPnNlY29uZDsKKyAgICAgICAgTm9kZSog
bm9kZSA9IGdOb2RlLT5pbXBsKCk7CisKKyAgICAgICAgaWYgKGdOb2RlLT5tYXJrZWQoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5vIG5lZWQgdG8gcHJlc2VydmUgYSB3
cmFwcGVyIHRoYXQgaGFzIG5vIGN1c3RvbSBwcm9wZXJ0aWVzIG9yIGlzIG5vCisgICAgICAgIC8v
IGxvbmdlciBmZXRjaGFibGUgdGhyb3VnaCB0aGUgRE9NLgorICAgICAgICBpZiAoIWdOb2RlLT5o
YXNDdXN0b21Qcm9wZXJ0aWVzKCkgfHwgIW5vZGUtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgICAg
IC8vLi4uIHVubGVzcyB0aGUgd3JhcHBlciB3cmFwcyBhIGxvYWRpbmcgaW1hZ2UsIHNpbmNlIHRo
ZSAibmV3IEltYWdlIgorICAgICAgICAgICAgLy8gc3ludGF4IGFsbG93cyBhbiBvcnBoYW4gaW1h
Z2Ugd3JhcHBlciB0byBiZSB0aGUgbGFzdCByZWZlcmVuY2UKKyAgICAgICAgICAgIC8vIHRvIGEg
bG9hZGluZyBpbWFnZSwgd2hvc2UgbG9hZCBldmVudCBtaWdodCBoYXZlIGltcG9ydGFudCBzaWRl
LWVmZmVjdHMuCisgICAgICAgICAgICBpZiAoIW5vZGUtPmhhc1RhZ05hbWUoaW1nVGFnKSB8fCBz
dGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4obm9kZSktPmhhdmVGaXJlZExvYWRFdmVudCgp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGdOb2RlLT5tYXJrKCk7Cisg
ICAgfQorI2VuZGlmCit9CisKKy8qIFhYWCAtIHJlcXVpcmVzIGxvb2tpbmcgdXAgb2JqZWN0IC0g
Y2FsbCB0byBHX09CSkVDVCgpIG1hY3JvIGluIGFyZworICogIndyYXBwZXIiIHRvIHB1dERPTU5v
ZGVGb3JEb2N1bWVudD8qLworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjp1cGRhdGVE
T01Ob2RlRG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvYywgRG9jdW1lbnQqIG5l
d0RvYykKK3sKKyAgICBBU1NFUlQob2xkRG9jICE9IG5ld0RvYyk7CisgICAgc3R5bGVTaGVldC0+
cmVmKCk7CisgICAgZ3BvaW50ZXIgd3JhcHBlciA9IGdldERPTU5vZGVGb3JEb2N1bWVudChvbGRE
b2MsIG5vZGUpOworICAgIGlmICh3cmFwcGVyKSB7CisgICAgICAgIC8vcmVtb3ZlV3JhcHBlcih3
cmFwcGVyKTsKKyAgICAgICAgZ3BvaW50ZXIgb2JqID0gcHV0RE9NTm9kZUZvckRvY3VtZW50KG5l
d0RvYywgbm9kZSwgd3JhcHBlcik7CisgICAgICAgIGZvcmdldERPTU5vZGVGb3JEb2N1bWVudChv
bGREb2MsIG5vZGUpOworICAgICAgICAvL2FkZFdyYXBwZXIod3JhcHBlcik7CisgICAgICAgIHJl
dHVybiBvYmo7CisgICAgfQorICAgIHJldHVybiBOVUxMOyAvKiBlcnIuLi4gKi8KK30KKyNlbmRp
ZgorCitncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBpZiAoIWRvYykKKyAg
ICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2Jq
ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9jKTsKKyAgICBpZiAoZ29i
aikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisKKyAgICBp
ZiAoZG9jLT5pc0hUTUxEb2N1bWVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxEb2N1
bWVudChzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihkb2MpKTsKKyNpZiBFTkFCTEUoU1ZHKQor
ICAgIGVsc2UgaWYgKGRvYy0+aXNTVkdEb2N1bWVudCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IE5VTEw7IC8qIFhYWCBUT0RPICovCisjaWYgMAorICAgICAgICByZXQgPSBuZXcgR0RPTVNWR0Rv
Y3VtZW50KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4oZG9jKSk7CisjZW5kaWYKKyAgICB9Cisj
ZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnQoZG9jKTsKKwor
ICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9N
T2JqZWN0KGRvYywgcmV0KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9k
ZSogbm9kZSk7CisKK2dwb2ludGVyIHRvR0RPTU5ld2x5Q3JlYXRlZChOb2RlKiBub2RlKQorewor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAg
ICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKE5vZGUq
IG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4u
Li4gKi8KKworICAgIERvY3VtZW50KiBkb2MgPSBub2RlLT5kb2N1bWVudCgpOworICAgIGdwb2lu
dGVyIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KGRv
Yywgbm9kZSk7CisgICAgaWYgKHJldCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldHVy
biBjcmVhdGVXcmFwcGVyKG5vZGUpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIHZh
bHVlKQoreworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4u
ICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01P
YmplY3QodmFsdWUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisg
ICAgR0RPTU9iamVjdCAqcmV0OworCisgICAgaWYgKHZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAg
ICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhbHVlTGlzdChzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3Qq
Pih2YWx1ZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHUGFp
bnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPICovCisgICAgICAgIC8v
cmV0ID0gbmV3IEdET01TVkdQYWludChzdGF0aWNfY2FzdDxTVkdQYWludCo+KHZhbHVlKSk7Cisg
ICAgfQorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR0NvbG9yKCkpCisgICAgeworICAgICAgICBy
ZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHQ29sb3Io
c3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSkpOworICAgIH0KKyNlbmRpZgorICAgIGVsc2Ug
aWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NT
UHJpbWl0aXZlVmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSkpOwor
ICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZSh2YWx1ZSk7CisKKyAgICB2
YWx1ZS0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KHZhbHVlLCByZXQpOworfQorCitzdGF0aWMgQUxXQVlTX0lOTElORSBncG9pbnRlciBjcmVh
dGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCgh
U2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChub2RlLT5kb2N1bWVudCgp
LCBub2RlKSk7CisKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9jdW1lbnQoKTsKKyAgICBH
RE9NTm9kZSAqcmV0ID0gTlVMTDsKKworICAgIC8vcHJpbnRmKCJjcmVhdGVXcmFwcGVyIG5vZGVU
eXBlICVkXG4iLCBub2RlLT5ub2RlVHlwZSgpKTsKKworICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5
cGUoKSkgeworICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlm
IChub2RlLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RP
TUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSkpOworI2lmIEVOQUJM
RShTVkcpCisgICAgICAgICAgICBlbHNlIGlmIChub2RlLT5pc1NWR0VsZW1lbnQoKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKKyNpZiAwIC8qIFhYWCBUT0RPICovCisgICAgICAgICAg
ICAgICAgcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+
KG5vZGUpKTsKKyNlbmRpZgorI2VuZGlmCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgcmV0ID0gbmV3IEdET01FbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKKyAg
ICAgICAgICAgIHJldCA9IG5ldyBHRE9NQXR0cihzdGF0aWNfY2FzdDxBdHRyKj4obm9kZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01UZXh0KHN0YXRpY19jYXN0PFRleHQqPihub2RlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6Cisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNEQVRBU2VjdGlvbihzdGF0aWNfY2FzdDxDREFUQVNl
Y3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpF
TlRJVFlfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5KHN0YXRpY19jYXN0
PEVudGl0eSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9N
UHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+
KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRf
Tk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ29tbWVudChzdGF0aWNfY2FzdDxDb21t
ZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RE9D
VU1FTlRfTk9ERToKKyAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUgdGhlIGRv
Y3VtZW50IGl0c2VsZiBpbiB0aGUgcGVyLWRvY3VtZW50IGRpY3Rpb25hcnkKKyAgICAgICAgICAg
IHJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7CisgICAgICAgIGNh
c2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01E
b2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRUeXBlKj4obm9kZSkpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Tk9UQVRJT05fTk9ERToKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NTm90YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihub2RlKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9O
T0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Eb2N1bWVudEZyYWdtZW50KHN0YXRpY19j
YXN0PERvY3VtZW50RnJhZ21lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTUVudGl0eVJlZmVyZW5jZShzdGF0aWNfY2FzdDxFbnRpdHlSZWZlcmVuY2UqPihub2Rl
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NTm9kZShub2RlKTsKKyAgICB9CisKKyAgICBkb2MtPnJlZigpOworICAgIHJl
dHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIG5v
ZGUsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlv
bikKK3sKKyAgICBpZiAoIWNvbGxlY3Rpb24pCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1t
Li4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0
RE9NT2JqZWN0KGNvbGxlY3Rpb24pOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBn
b2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAoY29sbGVjdGlvbi0+dHlw
ZSgpKSB7CisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OlNlbGVjdE9wdGlvbnM6CisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxI
VE1MT3B0aW9uc0NvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsK
KyNpZiAwCisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OkRvY0FsbDoKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NSFRNTEFsbENvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTENvbGxlY3Rp
b24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQ29sbGVjdGlvbihzdGF0aWNf
Y2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIGNvbGxlY3Rpb24tPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChjb2xsZWN0aW9uLCByZXQpOworfQorCitncG9pbnRlciB0
b0dET00oRXZlbnQqIGV2ZW50KQoreworICAgIGlmICghZXZlbnQpCisgICAgICAgIHJldHVybiBO
VUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgLy9wcmludGYoInRvR0RPTSBFdmVudCB0eXBlICVz
XG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgZ3BvaW50
ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGV2ZW50KTsKKyAg
ICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7
CisgICAgaWYgKGV2ZW50LT5pc1VJRXZlbnQoKSkgeworICAgICAgICBpZiAoZXZlbnQtPmlzS2V5
Ym9hcmRFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01LZXlib2FyZEV2ZW50KHN0
YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVu
dC0+aXNUZXh0RXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NVGV4dEV2ZW50KHN0
YXRpY19jYXN0PFRleHRFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5p
c01vdXNlRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NTW91c2VFdmVudChzdGF0
aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlz
V2hlZWxFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01XaGVlbEV2ZW50KHN0YXRp
Y19jYXN0PFdoZWVsRXZlbnQqPihldmVudCkpOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgIGVs
c2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVudCgpKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gTlVMTDsgLyogVE9ETyAqLworICAgICAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1pv
b21FdmVudChzdGF0aWNfY2FzdDxTVkdab29tRXZlbnQqPihldmVudCksIDApOworICAgICAgICB9
CisjZW5kaWYKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01VSUV2ZW50
KHN0YXRpY19jYXN0PFVJRXZlbnQqPihldmVudCkpOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlz
TXV0YXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTU11dGF0aW9uRXZlbnQoc3Rh
dGljX2Nhc3Q8TXV0YXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlz
T3ZlcmZsb3dFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTU92ZXJmbG93RXZlbnQoc3Rh
dGljX2Nhc3Q8T3ZlcmZsb3dFdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlz
TWVzc2FnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NTWVzc2FnZUV2ZW50KHN0YXRp
Y19jYXN0PE1lc3NhZ2VFdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzUHJv
Z3Jlc3NFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50KHN0YXRpY19jYXN0PFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCo+KGV2ZW50
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NUHJvZ3Jlc3NFdmVu
dChzdGF0aWNfY2FzdDxQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICB9CisjaWYgRU5BQkxF
KERPTV9TVE9SQUdFKQorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1N0b3JhZ2VFdmVudCgpKQorICAg
ICAgICByZXQgPSBuZXcgR0RPTVN0b3JhZ2VFdmVudChzdGF0aWNfY2FzdDxTdG9yYWdlRXZlbnQq
PihldmVudCkpOworI2VuZGlmCisgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0QW5pbWF0aW9u
RXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01XZWJLaXRBbmltYXRpb25FdmVudChzdGF0
aWNfY2FzdDxXZWJLaXRBbmltYXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZl
bnQtPmlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdFRyYW5zaXRpb25FdmVudCo+KGV2
ZW50KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTUV2ZW50KGV2ZW50KTsKKwor
ICAgIGV2ZW50LT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRE
T01PYmplY3QoZXZlbnQsIHJldCk7Cit9CisKKy8qIFRPRE8gWFhYIGhtbW0uLi4gbm90IHNvIGhh
cHB5IGFib3V0IHRoaXMgLSBzaG91bGQgYmUgIm5ld2x5IGNyZWF0ZWQiICovCitncG9pbnRlciB0
b0dET00oVGV4dCogdGV4dCkKK3sKKyAgICBpZiAoIXRleHQpCisgICAgICAgIHJldHVybiBOVUxM
OworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9k
ZUZvckRvY3VtZW50KHRleHQtPmRvY3VtZW50KCksIHRleHQpOworICAgIGlmIChnb2JqKQorICAg
ICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01Ob2RlICpyZXQgPSBuZXcgR0RPTVRleHQodGV4
dCk7CisgICAgdGV4dC0+ZG9jdW1lbnQoKS0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KHRleHQtPmRvY3VtZW50KCksIHRleHQs
IHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShDU1NSdWxlKiBydWxlKQoreworICAgIGlmICgh
cnVsZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisKKyAgICBncG9p
bnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QocnVsZSk7CisK
KyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpy
ZXQ7CisgICAgc3dpdGNoIChydWxlLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpT
VFlMRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NTdHlsZVJ1bGUoc3RhdGlj
X2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQ1NTUnVsZTo6TUVESUFfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NT
TWVkaWFSdWxlKHN0YXRpY19jYXN0PENTU01lZGlhUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OkZPTlRfRkFDRV9SVUxFOgorICAgICAgICAg
ICAgcmV0ID0gbmV3IEdET01DU1NGb250RmFjZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VS
dWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6
UEFHRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NQYWdlUnVsZShzdGF0aWNf
Y2FzdDxDU1NQYWdlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1J1bGU6OklNUE9SVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NJ
bXBvcnRSdWxlKHN0YXRpY19jYXN0PENTU0ltcG9ydFJ1bGUqPihydWxlKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpDSEFSU0VUX1JVTEU6CisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTUNTU0NoYXJzZXRSdWxlKHN0YXRpY19jYXN0PENTU0NoYXJzZXRSdWxl
Kj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6VkFS
SUFCTEVTX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhcmlhYmxlc1J1bGUo
c3RhdGljX2Nhc3Q8Q1NTVmFyaWFibGVzUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NSdWxlKHJ1
bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcnVsZS0+cmVmKCk7CisgICAg
R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QocnVsZSwgcmV0KTsKKyAgICByZXR1
cm4gcmV0OworfQorCisvKiBUT0RPOiBzaG91bGQgYmUgdG9HRE9NTmV3bHlDcmVhdGVkICovCitn
cG9pbnRlciB0b0dET00oRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWVsZW1lbnQpCisg
ICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8gc2hvdWxkbid0IGJlIG9uZT8gQVNTRVJUKCFT
Y3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50
KCksIGVsZW1lbnQpKTsKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVy
OjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZWxlbWVudC0+ZG9jdW1lbnQoKSwgZWxlbWVudCk7Cisg
ICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOyAvLyBodWg/IGVyci4uLgorCisgICAg
R0RPTU5vZGUgKnJldDsKKyAgICBEb2N1bWVudCogZG9jID0gZWxlbWVudC0+ZG9jdW1lbnQoKTsK
KworICAgIGlmIChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgIHJldCA9IGNyZWF0
ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KGVsZW1lbnQpKTsKKyNp
ZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKGVsZW1lbnQtPmlzU1ZHRWxlbWVudCgpKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gKi8KKyAgICAgICAgLy9yZXQgPSBjcmVh
dGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4oZWxlbWVudCkpOworICAg
IH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01FbGVtZW50KGVsZW1l
bnQpOworCisgICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVy
OjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBlbGVtZW50LCByZXQpOworfQorCitncG9pbnRl
ciB0b0dET00oU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBpZiAoIXN0eWxlU2hlZXQp
CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBlcnIuLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmog
PSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChzdHlsZVNoZWV0KTsKKyAgICBp
ZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7Cisg
ICAgaWYgKHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAgICAgICByZXQgPSBuZXcg
R0RPTUNTU1N0eWxlU2hlZXQoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQp
KTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NU3R5bGVTaGVldChzdHlsZVNoZWV0
KTsKKworICAgIHN0eWxlU2hlZXQtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJw
cmV0ZXI6OnB1dERPTU9iamVjdChzdHlsZVNoZWV0LCByZXQpOworfQorCisvKiBkZXJpdmVkIHNv
dXJjZXMgYXV0by1nZW5lcmF0ZWQgKi8KK2dwb2ludGVyIHRvR0RPTShYTUxIdHRwUmVxdWVzdFVw
bG9hZCogb2JqKTsKKworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0KiB0YXJnZXQpCit7Cisg
ICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBOVUxMOworCisjaWYgMAorI2lmIEVOQUJM
RShTVkcpCisgICAgLy8gU1ZHRWxlbWVudEluc3RhbmNlIHN1cHBvcnRzIGJvdGggdG9TVkdFbGVt
ZW50SW5zdGFuY2UgYW5kIHRvTm9kZSBzaW5jZSBzbyBtdWNoIG1vdXNlIGhhbmRsaW5nIGNvZGUg
ZGVwZW5kcyBvbiB0b05vZGUgcmV0dXJuaW5nIGEgdmFsaWQgbm9kZS4KKyAgICBTVkdFbGVtZW50
SW5zdGFuY2UqIGluc3RhbmNlID0gdGFyZ2V0LT50b1NWR0VsZW1lbnRJbnN0YW5jZSgpOworICAg
IGlmIChpbnN0YW5jZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShleGVjLCBpbnN0YW5jZSk7Cisj
ZW5kaWYKKyNlbmRpZgorCisgICAgTm9kZSogbm9kZSA9IHRhcmdldC0+dG9Ob2RlKCk7CisgICAg
aWYgKG5vZGUpCisgICAgICAgIHJldHVybiB0b0dET00obm9kZSk7CisKKyAgICBpZiAoWE1MSHR0
cFJlcXVlc3QqIHhociA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdCgpKQorICAgICAgICAvLyBY
TUxIdHRwUmVxdWVzdCBpcyBhbHdheXMgY3JlYXRlZCB2aWEgR0RPTSwgc28gd2UgZG9uJ3QgbmVl
ZCB0byB1c2UgY2FjaGVET01PYmplY3QoKSBoZXJlLgorICAgICAgICByZXR1cm4gR0RPTVNjcmlw
dEludGVycHJldGVyOjpnZXRET01PYmplY3QoeGhyKTsKKworICAgIGlmIChYTUxIdHRwUmVxdWVz
dFVwbG9hZCogdXBsb2FkID0gdGFyZ2V0LT50b1hNTEh0dHBSZXF1ZXN0VXBsb2FkKCkpCisgICAg
ICAgIHJldHVybiB0b0dET00odXBsb2FkKTsKKworI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCisgICAgaWYgKERPTUFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gdGFyZ2V0LT50
b0RPTUFwcGxpY2F0aW9uQ2FjaGUoKSkKKyAgICAgICAgLy8gRE9NQXBwbGljYXRpb25DYWNoZSBp
cyBhbHdheXMgY3JlYXRlZCB2aWEgR0RPTSwgc28gd2UgZG9uJ3QgbmVlZCB0byB1c2UgY2FjaGVE
T01PYmplY3QoKSBoZXJlLgorICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpn
ZXRET01PYmplY3QoY2FjaGUpOworI2VuZGlmCisKKyAgICAvLyBUaGVyZSBhcmUgdHdvIGtpbmRz
IG9mIEV2ZW50VGFyZ2V0czogRXZlbnRUYXJnZXROb2RlIGFuZCBYTUxIdHRwUmVxdWVzdC4KKyAg
ICAvLyBJZiBTVkcgc3VwcG9ydCBpcyBlbmFibGVkLCB0aGVyZSBpcyBhbHNvIFNWR0VsZW1lbnRJ
bnN0YW5jZS4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlVMTDsKK30K
KworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0Tm9kZSogdGFyZ2V0KQoreworICAgIGlmICgh
dGFyZ2V0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIE5vZGUqIG5vZGUgPSB0YXJnZXQt
PnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICByZXR1cm4gdG9HRE9NKG5vZGUpOwor
CisgICAgcmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxFdmVudFRhcmdldCo+KHRhcmdldCkpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBUSElTIEZJTEUgSVMgREVS
SVZFRCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBrZWVwaW5nIGl0
IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqIGEgbWFr
ZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogZ2VuZXJh
dGVyIHdoaWNoIHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0Lgor
ICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIEdET01IVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5X2gKKyNkZWZpbmUgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAorCisjaW5j
bHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbU5vZGUuaCIKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEhUTUxFbGVtZW50OworCisg
ICAgR0RPTU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
Pik7CisKK30KKworI2VuZGlmIC8vIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJn
ZXROb2RlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVk
ZSAiZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgImdsaWItb2Jq
ZWN0LmgiCisKK2V4dGVybiAiQyIgeworCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2lu
aXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXopCit7CisgICAg
Z19yZXR1cm5faWZfZmFpbCAodGhpeik7CisgICAgLyoKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdl
dE5vZGUgKiBpdGVtID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh0aGl6KTsK
KyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcgPSBXZWJD
b3JlOjpTdHJpbmcoZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRF
dmVudFRhcmdldE5vZGUoX2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcpOworICAgICovCit9
CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RP
TUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRp
bmcuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5
OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+
CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIEdk
b21ET01CaW5kaW5nX2gKKyNkZWZpbmUgR2RvbURPTUJpbmRpbmdfaAorCisjaW5jbHVkZSA8a2pz
L2ludGVycHJldGVyLmg+CisjaW5jbHVkZSA8a2pzL2xvb2t1cC5oPgorI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgorCisjaW5jbHVkZSAiZ2RvbS9HZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdE
T01PYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tTm9kZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBBdG9taWNTdHJpbmc7CisgICAgY2xhc3MgRG9j
dW1lbnQ7CisgICAgY2xhc3MgRXZlbnQ7CisgICAgY2xhc3MgRnJhbWU7CisgICAgY2xhc3MgS1VS
TDsKKyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIFN0cmluZzsKKworI2lmIEVOQUJMRShTVkcp
CisgICAgY2xhc3MgU1ZHRWxlbWVudDsKKyNlbmRpZgorCisgICAgY2xhc3MgR0RPTVNjcmlwdElu
dGVycHJldGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyB2b2lkKiBnZXRET01PYmpl
Y3Qodm9pZCogb2JqZWN0SGFuZGxlKTsKKyAgICAgICAgc3RhdGljIHZvaWQqIHB1dERPTU9iamVj
dCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqKTsKKyAgICAgICAgc3RhdGljIHZvaWQg
Zm9yZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisKKyAgICAgICAgc3RhdGljIHZv
aWQqIGdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAgICAgICAgc3Rh
dGljIHZvaWQqIHB1dERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqLCBHRE9NTm9k
ZSogbm9kZVdyYXBwZXIpOworICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRET01Ob2RlRm9yRG9j
dW1lbnQoRG9jdW1lbnQqLCBOb2RlKik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldEFsbERP
TU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2lmIDAKKyAgICAgICAgc3RhdGljIHZv
aWQgdXBkYXRlRE9NTm9kZURvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogb2xkRG9jLCBEb2N1bWVu
dCogbmV3RG9jKTsKKyAgICAgICAgc3RhdGljIHZvaWQgbWFya0RPTU5vZGVzRm9yRG9jdW1lbnQo
RG9jdW1lbnQqKTsKKwkJI2VuZGlmCisgICAgfTsKKworICAgIC8vIFJldHJpZXZlIGZyb20gY2Fj
aGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIgZm9yIGEgRE9NIG9iamVjdC4KKyAgICB0ZW1w
bGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlubGluZSB2b2lkKiBjYWNoZURP
TU9iamVjdChET01PYmoqIGRvbU9iaikKKyAgICB7CisgICAgICAgIGlmICghZG9tT2JqKQorICAg
ICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisgICAgICAgIGlmICh2b2lk
KiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb21PYmopKQorICAg
ICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgR0RPTU9iamVjdCogcmV0ID0gbmV3IEdkb21E
T01PYmooZG9tT2JqKTsKKwkJZG9tT2JqLT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisKKyNpZiBF
TkFCTEUoU1ZHKQorICAgIC8vIFJldHJpZXZlIGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9t
IHdyYXBwZXIgZm9yIGFuIFNWRyBET00gb2JqZWN0LgorICAgIHRlbXBsYXRlPGNsYXNzIERPTU9i
aiwgY2xhc3MgR2RvbURPTU9iaj4gaW5saW5lIHZvaWQqIGNhY2hlU1ZHRE9NT2JqZWN0KERPTU9i
aiogZG9tT2JqLCBTVkdFbGVtZW50KiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgaWYgKCFkb21P
YmopCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKyAgICAgICAg
aWYgKHZvaWQqIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvbU9i
aikpCisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBHRE9NT2JqZWN0KiByZXQgPSBu
ZXcgR2RvbURPTU9iaihkb21PYmosIGNvbnRleHQpOworCQlkb21PYmotPnJlZigpOworICAgICAg
ICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZG9tT2JqLCByZXQp
OworICAgIH0KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBH
ZG9tRE9NQmluZGluZ19oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21E
T01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRl
R2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
UHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2Vy
LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKworZXh0ZXJuICJDIiB7
CisKK0dfREVGSU5FX1RZUEUoR2RvbURPTU9iamVjdCwgZ2RvbV9kb21fb2JqZWN0LCBHX1RZUEVf
T0JKRUNUKTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSB7CisgICAgIEdET01PYmpl
Y3QgKm1fbm9kZTsKK307CisKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKG9i
aikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpF
Q1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9w
cml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QgKiBpdGVtKQoreworICAg
IEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRF
KHJlcXVlc3QpOworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07CisgICAgLypwcml2LT5tX25vZGUt
PmltcGwoKS0+cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitnZG9tX2RvbV9vYmplY3RfZ2V0
X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJp
dmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBy
ZXR1cm4gcHJpdi0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfZmlu
YWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01PYmplY3QqIHJlcXVlc3QgPSBH
RE9NX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9
IHJlcXVlc3QtPnByaXY7CisKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5kZXJlZigpOyov
CisgICAgZGVsZXRlIHByaXYtPm1fbm9kZTsgLyogY2FsbHMgbV9pbXBsLT5kZXJlZigpICovCisK
KyAgICBHX09CSkVDVF9DTEFTUyhnZG9tX2RvbV9vYmplY3RfcGFyZW50X2NsYXNzKS0+ZmluYWxp
emUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQo
R2RvbURPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1Mo
cmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2RvbV9vYmplY3RfZmluYWxpemU7CisKKyAg
ICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoR2RvbURPTU9i
amVjdFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2luaXQoR2Rv
bURPTU9iamVjdCogcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9
IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2
ID0gcHJpdjsKK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtj
bEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIu
Y29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3Qu
aCIKKworZXh0ZXJuICJDIiB7CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmpl
Y3QgKEdkb21ET01PYmplY3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
CisJLyoKKyAgICBXZWJDb3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2JqZWN0X2dl
dF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0X3R5cGVf
YXJnID0gV2ViQ29yZTo6U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0ZW0tPmlu
aXRET01PYmplY3QoX2dfZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAvKiBleHRl
cm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
R09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTY2MiBA
QAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisj
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFpbnQgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyMgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg
MzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFja2FnZSBDb2RlR2VuZXJh
dG9yR09iamVjdDsKKworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVzCitteSAkbGljZW5jZVRl
bXBsYXRlID0gPDwgIkVPRiI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0
aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xcQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxl
IEluYy4KKyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215ICVoZHJJbmNsdWRl
cyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkgJWltcGxUeXBlZGVmcyA9ICgp
OworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJhdG9yID0g
c2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxlc3MoJHJlZmVyZW5jZSwg
JG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBmaW5pc2gKK3sKKyAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0cnVjdAor
c3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15
ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAgICBteSAk
bmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxuIjsKKworICAgICRv
YmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdyaXRlIGNoYW5nZXMKKyAgICBt
eSAkZm5hbWUgPSAiR2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXplKCRuYW1lKTsKKyAgICAkZm5h
bWUgPX4gcy9fLy9nOworICAgICRvYmplY3QtPldyaXRlRGF0YSgkZm5hbWUpOworfQorCisjIFBh
cmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVsZQoreworICAgIG15
ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICRtb2R1
bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5cGUKK3sKKyAgICBt
eSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxpemUoJGNsYXNzTmFt
ZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBz
aGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURPTU9iamVjdCIgaWYgQHsk
ZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9tIiAuICRjb2RlR2VuZXJh
dG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOworfQorc3ViIEdldFBhcmVu
dEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/
CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJl
bnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsK
KyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50
c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2JqVHlwZSgkY29kZUdl
bmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Cit9CisKKworIyBB
bGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgY2FtZWxpemUK
K3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsgdWNmaXJzdCAkXyB9IHNw
bGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7Cit9CisKKyMgQWxnb3Jp
dGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGRlY2FtZWxpemUKK3sK
KyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8pKFtBLVpdKikoW0Et
Wl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAgICAgICBteSAo
JHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBteSAkdCA9ICRw
MCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/ICIke3AxfV8k
cDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAgfWdlOworICAg
ICRzOworfQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAkbmFtZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9
CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRv
ci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitz
dWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAk
bmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShH
ZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImlu
dCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEg
ImNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAg
cmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25l
ZCBpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOwor
ICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVybiAiUmFuZ2UuaCIgaWYgJHR5
cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb20vR2RvbUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5oIiBpZiAkdHlwZSBlcSAiRE9NT2JqZWN0IjsKKyAgICAgICAgcmV0dXJu
ICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0
eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorICAgICAg
ICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAg
ICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0
IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJmbG9hdCI7
CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7
CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAidm9pZCI7CisK
KyAgICByZXR1cm4gIiRuYW1lLmgiOworfQorCisjIHJldHVybnMgMSBpZiB3ZSBuZWVkIHRvIGNy
ZWF0ZSBhIGdvYmplY3Qgd3JhcHBlciBhcm91bmQgdGhlIHJldHVybiByZXN1bHQKK3N1YiBJc0dE
T01DbGFzc1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9
IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRP
TVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01TdHJpbmciOwor
ICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgICAgIHJl
dHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImRvdWJsZSI7Cisg
ICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAibG9uZyI7
CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgICAgIHJldHVybiAw
IGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5z
aWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVk
IHNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFgg
VE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
InZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9CisKK3N1YiBHZXRQcm9wR1R5cGUKK3sKKyAgICBt
eSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKwor
ICAgIHJldHVybiAic3RyaW5nIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4g
ImZsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgIHJldHVybiAibm90eWV0c3VwcG9ydGVk
IiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgcmV0dXJuICJkb3VibGUiIGlmICR0eXBl
IGVxICJkb3VibGUiOworICAgIHJldHVybiAiYm9vbGVhbiIgaWYgJHR5cGUgZXEgImJvb2xlYW4i
OworICAgIHJldHVybiAiY2hhciIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgIHJldHVybiAibG9u
ZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAic2hv
cnQiOworICAgIHJldHVybiAidWNoYXIiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0dXJu
ICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgIHJldHVybiAiaW50IiBpZiAkdHlw
ZSBlcSAiaW50IjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQi
OworICAgIHJldHVybiAidWludDY0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsK
KyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0
dXJuICJ1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgcmV0dXJuICJ1
bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFw
cGVyCisKKyAgICByZXR1cm4gIm9iamVjdCI7Cit9CisKK3N1YiBHZXRHVHlwZQoreworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsK
KyAgICAgICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAg
ICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2RlICoiIGlmICR0eXBlIGVxICJFdmVudFRh
cmdldCI7CisgICAgICAgIHJldHVybiAiZ2NoYXIgKiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7
CisgICAgICAgIHJldHVybiAiZ2Zsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICBy
ZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJlSG93ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVI
b3ciOworICAgICAgICByZXR1cm4gImdkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAg
ICAgICByZXR1cm4gImdib29sZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJl
dHVybiAiZ2NoYXIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuICJnbG9uZyIg
aWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4gImdzaG9ydCIgaWYgJHR5cGUgZXEg
InNob3J0IjsKKyAgICAgICAgcmV0dXJuICJndWNoYXIiIGlmICR0eXBlIGVxICJ1Y2hhciI7Cisg
ICAgICAgIHJldHVybiAiZ3VpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJl
dHVybiAiZ2ludCIgaWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiZ3VpbnQiIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4gImd1aW50NjQiIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gImd1c2hvcnQiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlw
ZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAg
ICByZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUg
KiI7Cit9CisKK3N1YiBnZXRJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAg
bXkgJGluY2x1ZGVIZHIgPSBHZXRHSW5jbHVkZUhkcigkdHlwZSk7CisgICAgaWYgKCRpbmNsdWRl
SGRyKSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAg
ICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCI7CisgICAgICAgIH0KKyAgICAgICAgZWxz
aWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/
IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgcmV0dXJuICJHZG9tQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmgiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
cmV0dXJuICRpbmNsdWRlSGRyOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAiIjsKK30K
Kworc3ViIGFkZFByb3BJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkg
JGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAg
aWYgKElzR0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRoZHJQcm9wSW5jbHVk
ZXN7Imdkb20vIi4kaGRyfSA9IDE7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJnZG9t
L1ByaXZhdGUiLiRoZHJ9ID0gMTsKKyAgICAgICAgICAgICRoZHJQcm9wSW5jbHVkZXN7Imdkb20v
UHJpdmF0ZUludCIuJGhkcn0gPSAxOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9CisKK30K
Kworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRy
ID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICBpZiAo
SXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgJGhkckluY2x1ZGVzeyJnZG9t
LyRoZHIifSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkaGRySW5jbHVkZXN7
JGhkcn0gPSAxOworICAgICAgICB9CisgICAgfQorCit9CisKK3N1YiBhZGRJbmNCb2R5Cit7Cisg
ICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOwor
ICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUp
KSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyRoZHIifSA9IDE7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICAgICAg
fQorICAgIH0KK30KKworc3ViIEdldFByaXZGbgoreworICAgIG15ICRpbnRlcmZhY2VOYW1lID0g
c2hpZnQ7CisgICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9IHNoaWZ0OworICAgIG15ICRyZXMgPSBz
aGlmdDsKKyAgICBteSAkcGFybSA9IHNoaWZ0OworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpFdmVudFRhcmdldE5v
ZGUgKiAkcmVzID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9l
dmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShzZWxmKSk7IjsKKyAgICB9CisgICAgcmV0dXJu
ICJXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogJHJlcyA9ICgke2xjYXNlX2lmYWNlbmFtZX1f
Z2V0X3ByaXZhdGUoJHBhcm0pKTsiOworfQorCitzdWIgc2tpcFByb3BUZW1wb3JhcmlseQorewor
ICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJHByb3BfdHlwZSA9IHNoaWZ0OworCisgICAg
IyBza2lwIE1lZGlhTGlzdAorICAgIGlmICgkcHJvcF90eXBlIGVxICJzdHlsZXNoZWV0czo6TWVk
aWFMaXN0IikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjaWYgKCRwcm9wX3R5
cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAg
ICMgc2tpcCBDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbgorICAgIGlmICgkcHJvcF90eXBlIGVxICJD
U1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisg
ICAgIyBza2lwIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCisgICAgI2lmICgkcHJvcF90eXBl
IGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30K
KworICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3Bf
dHlwZSBlcSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24iKSB7CisgICAgIyAgICByZXR1cm4g
MTsKKyAgICAjfQorCisgICAgIyBza2lwIEV2ZW50TGlzdGVuZXIKKyAgICAjaWYgKCRwcm9wX3R5
cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisg
ICAgIyBza2lwIERPTVdpbmRvdworICAgICNpZiAoJHByb3BfdHlwZSBlcSAiRE9NV2luZG93Iikg
eworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDb25zdHJ1Y3RvcnMg
KHdoYXRldmVyIHRoZXkgYXJlKSBmb3Igbm93LgorICAgIGlmICgkcHJvcF90eXBlID1+IC9Db25z
dHJ1Y3RvciQvKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgY2FudmFzMmQu
Li4uCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgImN1c3RvbSIpIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkFycmF5IikgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIFRPRE86IFNWRworICAgIGlmICgkY29k
ZUdlbmVyYXRvci0+SXNQb2RUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmlt
YXRlZFR5cGUoJHR5cGUpKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4g
MDsKK30KKworc3ViIFVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24KK3sKKyAgICBteSAkdHlw
ZSA9IHNoaWZ0OworCisgICAgIyBza2lwcGVkIG91dCBDYW52YXNQaXhlbEFycmF5IC0gc2VlIEpT
Q2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAgZm9yIHdoeS4KKyAgICByZXR1cm4gMSBpZiAkdHlw
ZSBlcSAiTm9kZSIgb3IgJHR5cGUgZXEgIkRvY3VtZW50IiBvciAkdHlwZSBlcSAiSFRNTENvbGxl
Y3Rpb24iIG9yICR0eXBlIGVxICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIg
b3IgJHR5cGUgZXEgIkNTU1J1bGUiIG9yICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IgJHR5cGUgZXEg
IkV2ZW50IiBvciAkdHlwZSBlcSAiRWxlbWVudCIgb3IgJHR5cGUgZXEgIlRleHQiOworICAgIHJl
dHVybiAwOworfQorCisKKyMgR2VuZXJhdGUgaGVhZGVyIGFuZCBpbXBsCitzdWIgR2VuZXJhdGUK
K3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisK
KyAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTGVnYWN5UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+
cGFyZW50c30gPiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRo
YXNSZWFsUGFyZW50OworICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05h
bWUoJGRhdGFOb2RlKTsKKyAgICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJlbnRHT2JqVHlw
ZSgkZGF0YU5vZGUpOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwor
ICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOworICAgIG15
ICRoZHJOYW1lID0gR2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisKKyAgICAjIEFkZCB0aGUg
ZGVmYXVsdCBpbXBsIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwg
JGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CisKKyAgICAkaW1w
bEluY2x1ZGVzeyJHRE9NQmluZGluZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7Imdkb20v
JGhkck5hbWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZhdGUke2hkck5h
bWV9LmgifSA9IDE7CisKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01PYmplY3Qi
OworICAgIG15ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15ICRwYXJl
bnRIZHJOYW1lID0gIkdkb21ET01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NOYW1lIG5l
ICJHT2JqZWN0IikKKyAgICB7CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gc3Vic3Ry
KCRwYXJlbnRDbGFzc05hbWUsIDQpOworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFjZU5hbWUg
bmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET00i
LnN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRIZHJOYW1l
ID0gR2V0SGRyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAg
ZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2Jq
ZWN0IjsKKyAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyR7cGFyZW50SGRy
TmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2YXRlJHtwYXJl
bnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAkaGRySW5jbHVkZXN7Imdkb20vJHtwYXJlbnRI
ZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRI
ZHJOYW1lfS5oIn0gPSAwOworICAgIH0KKworICAgICMgVE9ETyAtIG1ha2UgdGhlc2Ugb25seSBp
bmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAgIyBmdW5jdGlvbiBkZWNsYXJh
dGlvbnMgdG9HRE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CisgICAg
JGltcGxJbmNsdWRlc3siRWxlbWVudC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNTU1Zh
bHVlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVsZS5oIn0gPSAxOworICAgICRp
bXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7CisgICAgIyRpbXBsSW5jbHVkZXN7
IlNWR1BhdGhTZWcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJTdHlsZVNoZWV0LmgifSA9
IDE7CisgICAgJGltcGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVz
eyJDYW52YXNQaXhlbEFycmF5LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRE9NV2luZG93
LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siVGV4dC5oIn0gPSAxOworICAgICRpbXBsSW5j
bHVkZXN7Imdkb20vR1N0cmluZ0NvbnZlcnQuaCJ9ID0gMTsKKworICAgICMgWFhYIFRPRE86IG1h
a2UgdGhpcyBvcHRpb25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3
YXkuCisgICAgbXkgJGhhY2tEZWNscyA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIGdwb2ludGVyIHRvR0RPTShOb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oQ1NT
VmFsdWUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NSdWxlKiBub2RlKTsKKyAgICBn
cG9pbnRlciB0b0dET00oRWxlbWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKERvY3Vt
ZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oSFRNTENvbGxlY3Rpb24qIG5vZGUpOwor
ICAgIC8vZ3BvaW50ZXIgdG9HRE9NKFNWR1BhdGhTZWcqIG5vZGUpOworICAgIGdwb2ludGVyIHRv
R0RPTShTdHlsZVNoZWV0KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXRO
b2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIG5vZGUpOworICAg
IGdwb2ludGVyIHRvR0RPTShFdmVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKENhbnZh
c1BpeGVsQXJyYXkqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShET01XaW5kb3cqIG5vZGUp
OworICAgIGdwb2ludGVyIHRvR0RPTShUZXh0KiBub2RlKTsKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJGhhY2tEZWNscyk7CisKKyAgICBwdXNoKEBj
Qm9keSwgIm5hbWVzcGFjZSBXZWJDb3JlIHtcbiIpOworCisgICAgIyBHZXQgY29ycmVjdCBwYXNz
L3N0b3JlIHR5cGVzIHJlc3BlY3RpbmcgUE9EVHlwZSBmbGFnCisgICAgbXkgJHBvZFR5cGUgPSAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07CisgICAgbXkgJHBhc3NU
eXBlID0gJHBvZFR5cGUgPyAiSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIiA6ICIkaW50
ZXJmYWNlTmFtZSoiOworCisgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRPTVdpbmRvdyIg
fHwgKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVy
YXRlVG9KUyJ9KSBhbmQgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5h
bWUpKSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9k
eSwgIkpTQzo6SlNWYWx1ZSogdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNTVkdQT0RUeXBl
V3JhcHBlcjwkcG9kVHlwZT4qIG9iaiwgU1ZHRWxlbWVudCogY29udGV4dClcbiIpOworICAgICAg
ICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05h
bWUpKSB7CisgICAgICAgICMgICAgIHB1c2goQGNCb2R5LCAiSlNDOjpKU1ZhbHVlKiB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCAkcGFzc1R5cGUgb2JqLCBTVkdFbGVtZW50KiBjb250ZXh0KVxu
Iik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICJncG9pbnRl
ciB0b0dET00oV2ViQ29yZTo6JHBhc3NUeXBlIG9iailcbiIpOworICAgICAgICAjfQorCisgICAg
ICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAg
ICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gY2FjaGVTVkdET01PYmplY3Q8SlNTVkdQ
T0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4sICRjbGFzc05hbWUsICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZT4oZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBl
TmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgICAg
cHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2JqZWN0PCRpbXBsQ2xhc3NOYW1l
LCAkY2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGV4ZWMsIG9iaiwgY29udGV4dCk7
XG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBy
ZXR1cm4gV2ViQ29yZTo6Y2FjaGVET01PYmplY3Q8V2ViQ29yZTo6JGludGVyZmFjZU5hbWUsIEdE
T00kaW50ZXJmYWNlTmFtZT4ob2JqKTtcbiIpOworICAgICAgICAjfQorICAgICAgICBwdXNoKEBj
Qm9keSwgIn1cbiIpOworICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBuYW1lc3BhY2Ug
V2ViQ29yZSAqL1xuIik7CisgICAgbXkgJGltcGxDb250ZW50ID0gIiI7CisKKyAgICAjIFhYWCBU
T0RPIHB1c2goQGNCb2R5LCAidXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7XG5cbiIpOworICAgIHB1
c2goQGNCb2R5LCAiZXh0ZXJuIFwiQ1wiIHtcblxuIik7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVs
dCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAaFByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVt
cGxhdGUpOworICAgICAgICAjcHVzaChAaFByZWZpeCwgIlxuIik7CisKKyAgICAjIEhlYWRlciBn
dWFyZAorICAgICAgICBteSAkZ3VhcmQgPSAiX18iIC4gJGNsYXNzTmFtZSAuICJfSF9fIjsKKwor
ICAgIG15ICRjbHNDYXBzID0gc3Vic3RyKENsc1RvR09ialR5cGUoJGNsYXNzTmFtZSksIDUpOwor
ICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNl
TmFtZSk7CisgICAgI215ICRwYXJlbnRDbHNDYXBzID0gIkdET01fIiAuIENsc1RvR09ialR5cGUo
JHBhcmVudEludGVyZmFjZU5hbWUpOworCisgICAgQGhQcmVmaXhHdWFyZCA9IDw8ICJFT0YiOwor
I2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUgJGd1YXJkCitFT0YKKworICAgICRpbXBsQ29udGVudCA9
IDw8ICJFT0YiOworR19CRUdJTl9ERUNMUworCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJlLCAk
aW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNkZWZpbmUg
R0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAgICAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90
eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfShvYmopICAgICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05h
bWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NI
RUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAkY2xhc3NOYW1l
KUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc30ob2JqKSAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmlu
ZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQ
RSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fw
c31fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RP
TV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3Qg
XyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtjbGFzc05hbWV9UHJpdmF0ZTsKKworc3RydWN0IF8ke2Ns
YXNzTmFtZX0geworICAgICR7cGFyZW50Q2xhc3NOYW1lfSBwYXJlbnRfaW5zdGFuY2U7CisgICAg
JHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xh
c3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdU
eXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOworCitFT0YKKworICAgIHB1
c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
CisjaWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7Z3VhcmR9X1BST1BfCitFT0YKKwor
ICAgIHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxDb250ZW50KTsKKworICAgIHB1c2goQGhCb2R5
UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgJGhkclByb3BJbmNsdWRleyJnbGliLW9i
amVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiZ2RvbS9Qcml2YXRlSW50JHtwYXJl
bnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiR0RPTU9iamVjdC5oIn0g
PSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworCisg
ICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X0lOVF8KKyNkZWZp
bmUgJHtndWFyZH1fSU5UXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2Rv
bS9Qcml2YXRlSW50JHtwYXJlbnRIZHJOYW1lfS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIK
KyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICRpbXBsQ29udGVudCk7CisKKyAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRP
TVdpbmRvdyIgfHwgKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGlu
dGVyZmFjZU5hbWUpKSB7CisgICAgICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworbmFtZXNw
YWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRvR0RPTSgke2ludGVyZmFjZU5hbWV9KiBub2Rl
KTsKK30gLyogbmFtZXNwYWNlIFdlYkNvcmUgKi8gCitFT0YKKyAgICBwdXNoKEBoQm9keUludGVy
bmFsLCAkaW1wbENvbnRlbnQpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19C
RUdJTl9ERUNMU1xuIik7CisKKyAgICAjQ2xhc3MgZGVjbGFyYXRpb24KKyAgICAjaWYgKCRpbnRl
cmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFs
LCAiY2xhc3MgR0RPTSRpbnRlcmZhY2VOYW1lIHtcbiIpOworICAgICN9IGVsc2UgeworICAgICAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiY2xhc3MgR0RPTSRpbnRlcmZhY2VOYW1lIDogcHVibGlj
ICRwYXJlbnRHSWZhY2VOYW1lIHtcbiIpOworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
ICAgIHR5cGVkZWYgJHBhcmVudEdJZmFjZU5hbWUgQmFzZTtcbiIpOworICAgICN9CisgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgInB1YmxpYzpcbiIpOworCisgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICBpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV8ke2Nsc0NhcHN9
OyB9XG4iKTsKKworICAgIG15ICRuZWVkc1NWR0NvbnRleHQgPSAwOworICAgICMgQ29uc3RydWN0
b3IKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIEdET00kaW50ZXJmYWNlTmFtZShQYXNz
UmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0
ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKTtcbiIpOworCisgICAgIyBEZXN0
cnVjdG9yCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB2aXJ0dWFsIH5HRE9NJGludGVy
ZmFjZU5hbWUoKTtcbiIpIGlmICghJGhhc1BhcmVudCBvciAkaW50ZXJmYWNlTmFtZSBlcSAiRG9j
dW1lbnQiKSBvciAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IjsKKworICAgIGlmICghJGhh
c1BhcmVudCB8fCAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAgICNp
ZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIEpT
U1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBs
LmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFNW
R0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1cblxu
Iik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAg
ICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBt
X2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJl
ZlB0cjxKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiA+IG1faW1wbDtcbiIpOworICAgICAg
ICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05h
bWUpKSB7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICAkaW1wbENsYXNz
TmFtZSogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuIik7CisgICAgICAg
ICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9XG5cbiIpOworICAgICAgICAjICAgIHB1c2go
QGhCb2R5SW50ZXJuYWwsICJwcml2YXRlOlxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICBSZWZQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0O1xuIik7CisgICAgICAg
ICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8JGltcGxDbGFzc05hbWUgPiBt
X2ltcGw7XG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1
cm4gbV9pbXBsLmdldCgpOyB9XG5cbiIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
UmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBtX2ltcGw7XG4iKTsKKyAgICAgICAgI30K
KyAgICB9IGVsc2lmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZU5h
dGl2ZUNvbnZlcnRlciJ9KSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2Vi
Q29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdFxuIik7CisgICAgICAgIHB1c2goQGhC
b2R5SW50ZXJuYWwsICIgICAge1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSo+KEJhc2U6
OmltcGwoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB9XG4iKTsK
KyAgICB9CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIn07XG4iKTsKKworICAgICMgQ29uc3Ry
dWN0b3IKKyAgICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9OjpHRE9NJGludGVy
ZmFjZU5hbWUoUGFzc1JlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gaW1wbCIgLiAoJG5l
ZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOwor
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICA6bV9pbXBsKGltcGwpXG4iKTsKKyAgICB9IGVsc2lmICgkaGFzUGFyZW50KSB7
CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDogJHBhcmVudEdJZmFjZU5hbWUoaW1wbCIgLiAo
JHBhcmVudE5lZWRzU1ZHQ29udGV4dCA/ICIsIGNvbnRleHQiIDogIiIpIC4gIilcbiIpIGlmICgk
aW50ZXJmYWNlTmFtZSBuZSAiRE9NV2luZG93Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVz
aChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZSgpXG4iKSA7CisgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgICwgbV9jb250ZXh0KGNvbnRleHQpXG4iKSBpZiAkbmVlZHNTVkdDb250ZXh0
OworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAsIG1faW1wbChpbXBsKVxuIik7CisgICAgfQor
CisgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKyAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisK
KyAgICAjIERlc3RydWN0b3IKKyAgICBpZiAoISRoYXNQYXJlbnQgb3IgKCRpbnRlcmZhY2VOYW1l
IGVxICJET01XaW5kb3ciKSkgeworICAgICAgICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFj
ZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwg
IntcbiIpOworCisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIG1faW1wbC5nZXQoKS0+ZGVyZWYo
KTtcbiIpOworICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGUiKSB7CisgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZv
cmdldERPTU5vZGVGb3JEb2N1bWVudChtX2ltcGwtPmRvY3VtZW50KCksIG1faW1wbC5nZXQoKSk7
XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAg
ICAgICAgICAgICMgICAgbXkgJGFuaW1hdGVkVHlwZSA9ICRpbXBsQ2xhc3NOYW1lOworICAgICAg
ICAgICAgIyAgICAkYW5pbWF0ZWRUeXBlID1+IHMvU1ZHL1NWR0FuaW1hdGVkLzsKKworICAgICAg
ICAgICAgIyAgICAjIFNwZWNpYWwgY2FzZSBmb3IgSlNTVkdOdW1iZXIKKyAgICAgICAgICAgICMg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkYW5pbWF0ZWRUeXBlKSBh
bmQgJHBvZFR5cGUgbmUgImZsb2F0IikgeworICAgICAgICAgICAgIyAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgSlNTVkdEeW5hbWljUE9EVHlwZVdyYXBwZXJDYWNoZTwkcG9kVHlwZSwgJGFuaW1h
dGVkVHlwZT46OmZvcmdldFdyYXBwZXIobV9pbXBsLmdldCgpKTtcbiIpOworICAgICAgICAgICAg
IyAgICB9CisgICAgICAgICAgICAjfQorICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2Vi
Q29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3QobV9pbXBsLmdldCgp
KTtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcHVzaChAY0JvZHksICJcbn1cblxuIik7Cisg
ICAgfQorCisgICAgIyBEb2N1bWVudCBuZWVkcyBhIHNwZWNpYWwgZGVzdHJ1Y3RvciBiZWNhdXNl
IGl0J3MgYSBzcGVjaWFsIGNhc2UgZm9yIGNhY2hpbmcuIEl0IG5lZWRzCisgICAgIyBpdHMgb3du
IHNwZWNpYWwgaGFuZGxpbmcgcmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGUgY2FjaGluZyB0aGF0
IE5vZGUgbm9ybWFsbHkgZG9lcy4KKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50
IikgeworICAgICAgICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRp
bnRlcmZhY2VOYW1lKClcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiAgICBXZWJDb3Jl
OjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChzdGF0aWNfY2FzdDxXZWJD
b3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oaW1wbCgpKSk7XG59XG5cbiIpOworICAgIH0KKworICAg
ICRpbXBsSW5jbHVkZXN7Imdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRpbXBs
SW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJH
RE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NOYW1lIn0gPSAx
OworICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOworCisgICAgJGlt
cGxDb250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xp
Yi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRwcml2YXRlLmg+IAorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIiAvKiB5dWtr
OiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTm9kZS5oIiAvKiB5dWtr
OiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgi
IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNQ
YXR0ZXJuLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRl
ICJDYW52YXNHcmFkaWVudC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICov
CisjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRp
b25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiAvKiB5dWtrOiBU
T0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSA8Z2RvbS9Qcml2YXRlR2RvbURP
TU9iamVjdC5oPiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVk
ZSA8Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmg+IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMg
b3B0aW9uYWwgKi8KKyNpbmNsdWRlIDxnZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmg+
IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgb24gRXZlbnRUYXJnZXQqLworI2lu
Y2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKKyNpbmNsdWRlIDxnZG9tLyR7aGRyTmFtZX0uaD4K
KyNpbmNsdWRlIDxnZG9tL1ByaXZhdGUke2hkck5hbWV9Lmg+CisjaW5jbHVkZSA8Z2RvbS9Qcml2
YXRlSW50JHtoZHJOYW1lfS5oPgorI2luY2x1ZGUgPGdkb20vJHtoZHJOYW1lfXByb3BzLmg+CisK
KyNpbmNsdWRlICJnZG9tL0dTdHJpbmdDb252ZXJ0LmgiCisKKyNpbmNsdWRlICJDYW52YXNQaXhl
bEFycmF5LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVk
ZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiSFRNTENvbGxl
Y3Rpb24uaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnQuaD4K
KworCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRp
bXBsQ29udGVudCA9IDw8ICJFT0YiOworCiske2hhY2tEZWNsc30KKworR19CRUdJTl9ERUNMUwor
CitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAke3BhcmVu
dEdPYmpUeXBlfSk7CisKKy8qCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgeworICAgIGNs
YXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKml0ZW07Cit9OworCisjZGVmaW5lIEdET01f
JHtjbHNDYXBzfV9HRVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUo
KG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1Qcml2YXRlKSkKKyovCitH
X0VORF9ERUNMUworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lmYWNlbmFt
ZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KQoreworRU9GCisKKyAgICBwdXNo
KEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAgICAgJGltcGxDb250ZW50ID0gPDwg
IkVPRiI7CisgICAgR0RPTSR7aW50ZXJmYWNlTmFtZX0gKnJlczsKKyAgICByZXMgPSBzdGF0aWNf
Y2FzdDxHRE9NJHtpbnRlcmZhY2VOYW1lfSo+KGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZShH
RE9NX0RPTV9PQkpFQ1QocmVxdWVzdCkpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6JHtpbnRlcmZhY2VOYW1lfSo+KHJlcy0+aW1wbCgpKTsKK0VPRgorICAgIHB1c2goQGNCb2R5
UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICMgUHJvcGVydGllcworICAgIG15ICRmdW5jdGlv
bk5hbWVQcmVmaXggPSAkbGNhc2VfaWZhY2VuYW1lOyAKKyAgICBTS0lQUFJPUDogZm9yZWFjaCBt
eSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHBy
b3BOYW1lID0gZGVjYW1lbGl6ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpOworICAgICAg
ICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICBt
eSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAkZnVuY3Rpb25TaWcg
PSAiJGNsYXNzTmFtZSAqdGhpeiI7CisgICAgICAgIG15ICRjdXN0b20gPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsKKworICAgICAgICBpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVy
In0pIHsKKyAgICAgICAgICAgIG5leHQgU0tJUFBST1A7CisgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0g
PSAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKworICAgICAgICBpZiAoc2tp
cFByb3BUZW1wb3JhcmlseSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAgICAgICAgICAgIG5leHQg
U0tJUFBST1A7CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBhZGRQcm9wSW5jSGRy
KCRwcm9wX3R5cGUpOworCisgICAgICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfQVBJICR0
eXBlXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJvcF9nZXRfIiAuICIkcHJvcE5hbWUgKCRm
dW5jdGlvblNpZyk7XG5cbiIpOworCisgICAgICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRf
QVBJIHZvaWRcbiRmdW5jdGlvbk5hbWVQcmVmaXgiIC4gIl9wcm9wX3NldF8iIC4gIiRwcm9wTmFt
ZSAoJGZ1bmN0aW9uU2lnLCAkdHlwZSIgLiAidmFsdWUpO1xuXG4iKTsKKyAgICB9CisKKyAgICAj
IFByb3BlcnRpZXMKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK30KKworR19CRUdJTl9E
RUNMUworCitlbnVtIHsKKyAgICBCUk9XU0VSX0VWRU5ULAorICAgIExBU1RfU0lHTkFMCit9Owor
CitzdGF0aWMgZ3VpbnQgZXZlbnRfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CisKK2Vu
dW0geworICAgIFBST1BfMCwKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50
KTsKKworICAgIG15IEB0eHRfaW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfc2V0X3By
b3BzID0gKCk7CisgICAgbXkgQHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAgIG15ICRwcml2X2Zu
ID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNlX2lmYWNlbmFtZX0sICJnc2VsZiIs
ICJzZWxmIik7CisKKyAgICBteSAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CitzdGF0aWMgdm9p
ZCAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0eV9mbihHT2JqZWN0ICogb2JqZWN0LCBn
dWludCBwcm9wX2lkLAorICAgICAgICAgICAgICAgICAgICAgR1ZhbHVlICogdmFsdWUsCisgICAg
ICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICogcHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9
ICpzZWxmID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKyAgICBzd2l0
Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3By
b3ApOworCisgICAgbXkgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHts
Y2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1l
fSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dp
dGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9w
cm9wKTsKKworICAgIFNLSVBFTlVNOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2Rl
LT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJvcF9uYW1lID0gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5uYW1lOworICAgICAgICBteSAkc2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0
b3ItPldLX3VjZmlyc3QoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRnZXRwcm9wX25hbWVfZm4g
PSAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkcHJvcF9uYW1lKTsKKworICAgICAgICBteSAk
cHJvcE5hbWUgPSBkZWNhbWVsaXplKCRwcm9wX25hbWUpOworICAgICAgICBteSAkcHJvcENhcHMg
PSB1YygkcHJvcE5hbWUpOworICAgICAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT50eXBlOworICAgICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUpOwor
ICAgICAgICBteSAke3Byb3BFbnVtfSA9ICJQUk9QXyR7cHJvcENhcHN9IjsKKyAgICAgICAgbXkg
JHtwcm9wX2d0eXBlfSA9IGRlY2FtZWxpemUoJHByb3BfdHlwZSk7CisgICAgICAgIGlmICgkcHJv
cF9ndHlwZSBlcSAiZXZlbnRfdGFyZ2V0IikgeworICAgICAgICAgICAgJHByb3BfZ3R5cGUgPSAi
ZXZlbnRfdGFyZ2V0X25vZGUiOworICAgICAgICB9CisgICAgICAgIG15ICR7cHJvcEdUeXBlfSA9
IHVjKCRwcm9wX2d0eXBlKTsKKyAgICAgICAgbXkgJGxjYXNlX2d0eXBlbmFtZSA9ICJnZG9tXyIg
LiAkcHJvcF9ndHlwZTsKKworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7
CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBp
ZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisgICAgICAgIGlmIChza2lwUHJvcFRl
bXBvcmFyaWx5KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5V
TTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgIiAg
ICAke3Byb3BFbnVtfSxcbiIpOworCisgICAgICAgIG15ICRndHlwZSA9IEdldFByb3BHVHlwZSgk
cHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEQUJMRSI7
CisgICAgICAgIG15ICR3cml0ZWFibGUgPSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkv
OworICAgICAgICBteSAkY29uc3QgPSAicmVhZC1vbmx5ICI7CisgICAgICAgIGlmICgkd3JpdGVh
YmxlICYmICRjdXN0b20pIHsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLW9ubHkgKGR1ZSB0
byBjdXN0b20gZnVuY3Rpb25zIG5lZWRlZCBpbiBnZG9td2Via2l0KSI7CisgICAgICAgICAgICBu
ZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICEkY3Vz
dG9tKSB7CisgICAgICAgICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURXUklURSI7Cisg
ICAgICAgICAgICAkY29uc3QgPSAicmVhZC13cml0ZSAiOworICAgICAgICB9CisKKyAgICAgICAg
bXkgJF9ndHlwZSA9ICRndHlwZTsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAidXNob3J0Iikgewor
ICAgICAgICAgICAgJF9ndHlwZSA9ICJ1aW50IjsgIyB5dWsuCisgICAgICAgIH0KKyAgICAgICAg
JG5pY2sgPSBkZWNhbWVsaXplKCIke2ludGVyZmFjZU5hbWV9XyR7cHJvcE5hbWV9Iik7CisgICAg
ICAgICRsb25nID0gIiR7Y29uc3R9ICR7dHlwZX0gJHtpbnRlcmZhY2VOYW1lfS4ke3Byb3BOYW1l
fSI7CisgICAgICAgIG15ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ19rbGFzcywgJHtwcm9wRW51bX0sCisgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfJHtfZ3R5cGV9ICgiJHtwcm9wTmFtZX0iLCAvKiBuYW1lICovCisg
ICAgICAgICAgICAgICAgIiRuaWNrIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAg
ICAgICAgICAiJGxvbmciLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9j
IHN0dWZmIGhlcmUgKi8KK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4
dF9pbnN0YWxsX3Byb3ApOworICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9ICIvKiBUT0RPISAk
Z3R5cGUgKi9cbiI7CisKKyAgICAgICAgaWYgKCR3cml0ZWFibGUpIHsKKworICAgICAgICAgICAg
bXkgJG9rID0gMDsKKyAgICAgICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgICAg
ICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4g
PSAiV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCI7CisgICAgICAgICAgICAgICAgJG9rID0gMTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7
CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsg
I1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJv
dXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAgICAg
ICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hY
WCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQg
eWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAgICAg
JG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBU
T0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0
CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgICAgIGlmICgk
e2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGly
ZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAg
ICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAidWludCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAg
fSBlbHNpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsK
KyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAg
ICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAg
ICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIyBYWFgg
VE9ETyAtIHNraXAgTG9jYXRpb24KKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAi
TG9jYXRpb24iKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMDsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKCRvaykgeworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJv
cHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKyAgICAgICAgICAgICAgICBw
dXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAg
ICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgZ3NlbGYtPnNldCR7c2V0cHJvcF9uYW1l
X2ZufSgke2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRndHlwZSAodmFsdWUpKSIpOworCisgICAg
ICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUt
PnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMs
ICIpO1xuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAg
ICBicmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICBjYXNlICR7cHJvcEVudW19OlxuICAgIHtcbiIpOwor
CisgICAgICAgIG15ICRleGNlcHRpb24gPSAiIjsKKyAgICAgICAgaWYgKEB7JGF0dHJpYnV0ZS0+
Z2V0dGVyRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICRleGNlcHRpb24gPSAiZWMiOworICAg
ICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRjb252ZXJ0X2ZuID0g
IiI7CisgICAgICAgIG15ICRwb3N0X2NvbnZlcnRfZm4gPSAiIjsKKyAgICAgICAgbXkgJGRvbmUg
PSAwOworICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAkY29u
dmVydF9mbiA9ICJfR19HRVRfVVRGOCgiOworICAgICAgICAgICAgJHBvc3RfY29udmVydF9mbiA9
ICIpIjsKKyAgICAgICAgfQorICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7Cisg
ICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAiV1RGOjpnZXRQdHIoJHtsY2FzZV9ndHlwZW5hbWV9
X2dldF9wcml2YXRlKCI7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSBHZXRQcml2Rm4oJGlu
dGVyZmFjZU5hbWUsICR7bGNhc2VfZ3R5cGVuYW1lfSwgImdzZWxmIiwgInNlbGYiKTsKKyAgICAg
ICAgICAgICMkY29udmVydF9mbiA9ICIke2xjYXNlX2d0eXBlbmFtZX1fZ2V0X3ByaXZhdGUoUGFz
c1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+KCI7CisgICAgICAgICAgICAjJHBvc3RfY29u
dmVydF9mbiA9ICIpIjsKKyAgICAgICAgICAgIG15ICRkb21vYmpUeXBlID0gIkdET00iLiRwcm9w
X3R5cGU7CisgICAgICAgICAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgIFBh
c3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PiBwdHIgPSBnc2VsZi0+JHtnZXRwcm9wX25h
bWVfZm59KCR7ZXhjZXB0aW9ufSk7CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCAodmFsdWUs
IFdlYkNvcmU6OnRvR0RPTShwdHIuZ2V0KCkpKTsKK0VPRgorICAgICAgICAgICAgcHVzaChAdHh0
X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisgICAgICAgICAgICAkZG9uZSA9IDE7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoISRkb25lKSB7CisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0
X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF8kX2d0eXBlICh2YWx1ZSwgJHtjb252ZXJ0X2Zu
fWdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KSR7cG9zdF9jb252ZXJ0X2Zu
fSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAg
ICAgIGJyZWFrO1xuICAgIH1cbiIpOworCisgICAgICAgICMgaXMgdGhpcyBfZW50aXJlbHlfIG5l
Y2Vzc2FyeT8/PworICAgICAgICAjIGNhbiBpdCBiZSBkb25lIHdpdGggZ2VuZXJpYyBnX3BhcmFt
X3NwZWNfZ3R5cGUKKyAgICAgICAgIyBhbmQgZ2V0dGluZyBhIGZldyB0aGluZ3MsIGlnbm9yaW5n
IHRoZSBtaW4tbWF4IGZvciBleGFtcGxlPworICAgICAgICBpZiAoJGd0eXBlIGVxICJpbnQiKSB7
CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAg
ICAgIEdfTUlOSU5ULCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhJTlQs
IC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YK
KyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBGQUxTRSwgLyogZGVm
YXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAg
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdf
TUlORkxPQVQsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWEZMT0FULCAv
KiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkRPVUJMRSwgICAg
ICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYRE9VQkxFLCAvKiBtYXggKi8KKyAg
ICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxz
aWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3Ag
PSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAg
ICAgICAgICAgR19NQVhVSU5UNjQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAg
ICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIp
IHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUxPTkcsIC8q
IG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkxPTkcsICAgICAgICAv
KiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWExPTkcsIC8qIG1heCAqLworICAgICAgICAg
ICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9G
IjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAg
R19NQVhVSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAg
ICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5UMTYsIC8qIG1heCAqLwor
ICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5JTlQ4LCAgICAgICAgLyogbWluICov
CisgICAgICAgICAgICAgICAgR19NQVhJTlQ4LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAw
LCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
Y2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAg
ICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlO
VDgsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgICIiLCAvKiBkZWZh
dWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAg
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdE
T01fVFlQRV8ke3Byb3BHVHlwZX0sIC8qIGdvYmplY3QgdHlwZSAqLworRU9GCisgICAgICAgIH0K
KyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAoR1Bh
cmFtRmxhZ3MpJHtncGFyYW1mbGFnfSkpOworCitFT0YKKyAgICAgICAgcHVzaChAdHh0X2luc3Rh
bGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKworCisgICAgfQorCisgICAgcHVzaChAY0Jv
ZHlQcml2LCAifTtcblxuIik7CisKKworICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAg
IGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmpl
Y3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisgICAg
cHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICAkdHh0X3NldF9wcm9w
ID0gPDwgIkVPRiI7CisgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURf
UFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisgICAgICAgIGJyZWFrOworICAg
IH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0eHRfc2V0X3Byb3ApOworCisg
ICAgbXkgJHR4dF9zZXRfZ2V0X3Byb3BzID0gPDwgIkVPRiI7CisgICAgY2FzZSBQUk9QX0FHRToK
KyAgICAgICAgc2VsZi0+YWdlID0gZ192YWx1ZV9nZXRfaW50ICh2YWx1ZSk7CisgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBQUk9QX0FHRToKKyAgICAgICAgZ192YWx1ZV9zZXRfaW50KHZhbHVl
LCBzZWxmLT5hZ2UpOworICAgICAgICBicmVhazsKKworICAgICAgICArICAgZ192YWx1ZV9pbml0
KCZwYXJhbXNbMF0sIEdfVFlQRV9GUk9NX0lOU1RBTkNFKG9iamVjdCkpOworICAgICAgICArICAg
Z192YWx1ZV9zZXRfaW5zdGFuY2UoJnBhcmFtc1swXSwgKGdwb2ludGVyKW9iamVjdCk7CisKK0VP
RgorCisgICAgIyBUT0RPOiB3b3JrIG91dCBpZiBpdCdzIGFwcHJvcHJpYXRlIHRvIHNwbGl0IHRo
aXMgaW50byBtYW55IGRpZmZlcmVudAorICAgICMgc2lnbmFscyBlLmcuICJjbGljayIgZXRjLgor
ICAgIG15ICR0eHRfaW5zdGFsbF9zaWduYWxzID0gIiI7CisKKyAgICBpZiAoJGludGVyZmFjZU5h
bWUgZXEgIkRPTVdpbmRvdyIgb3IKKyAgICAgICAgJGludGVyZmFjZU5hbWUgZXEgIlhNTEh0dHBS
ZXF1ZXN0IikgeworICAgICAgICAkdHh0X2luc3RhbGxfc2lnbmFscyA9IDw8ICJFT0YiOworICAg
IGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZl
bnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhyZXF1ZXN0Q2xhc3MpLAorICAgICAgICAo
R1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiB8CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19TSUdOQUxfREVUQUlMRUQg
ICksCisgICAgICAgIDAsCisgICAgICAgIE5VTEwsCisgICAgICAgIE5VTEwsCisgICAgICAgIHdl
YmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICBHX1RZUEVfTk9ORSwg
MiwKKyAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CitFT0YKKyAgICB9
CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworc3RhdGljIHZvaWQgJHtsY2FzZV9p
ZmFjZW5hbWV9X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1l
fSogcmVxdWVzdCA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOyovCisgICAgLyoke2NsYXNzTmFt
ZX1Qcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworCisgICAgLypHT2JqZWN0Q2xhc3Mg
KnBhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrIChnX3R5cGVfcGVla19wYXJlbnQgKCR7
cGFyZW50R09ialR5cGV9KSk7Ki8KKworICAgIC8qIEZyZWUgYW55IG1lbW9yeSBvciBjbG9zZSBh
bnkgZmlsZXMgKi8KKworICAgIC8qcGFyZW50X2NsYXNzLT4gZmluYWxpemUgKG9iamVjdCk7Ki8K
KworICAgIEdfT0JKRUNUX0NMQVNTKCR7bGNhc2VfaWZhY2VuYW1lfV9wYXJlbnRfY2xhc3MpLT5m
aW5hbGl6ZShvYmplY3QpOworfQorCitAdHh0X3NldF9wcm9wcworCitAdHh0X2dldF9wcm9wcwor
CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fY2xhc3NfaW5pdCgke2NsYXNzTmFtZX1D
bGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdPYmplY3RDbGFzcyAqZ19rbGFzcyA9IEdfT0JK
RUNUX0NMQVNTIChyZXF1ZXN0Q2xhc3MpOworICAgIGdfa2xhc3MtPmZpbmFsaXplID0gJHtsY2Fz
ZV9pZmFjZW5hbWV9X2ZpbmFsaXplOworICAgIGdfa2xhc3MtPnNldF9wcm9wZXJ0eSA9ICR7bGNh
c2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuOworICAgIGdfa2xhc3MtPmdldF9wcm9wZXJ0
eSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuOworCitAdHh0X2luc3RhbGxf
cHJvcHMKKworJHR4dF9pbnN0YWxsX3NpZ25hbHMKKworICAgIC8qZ190eXBlX2NsYXNzX3JlbW92
ZV9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKCR7Y2xhc3NOYW1lfVByaXZhdGUpKTsqLwor
fQorCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1faW5pdCgke2NsYXNzTmFtZX0qIHJl
cXVlc3QpCit7CisgICAgLyoke2NsYXNzTmFtZX1Qcml2YXRlKiBwcml2ID0gR0RPTV8ke2Nsc0Nh
cHN9X0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OyovCit9
CisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGlt
cGxJbmNsdWRlc3siZ2RvbS9Qcml2YXRlSW50R2RvbSR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworI2lmbmRlZiAke2d1YXJkfV9QUklWXwor
I2RlZmluZSAke2d1YXJkfV9QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVk
ZSAiZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorLyoj
aW5jbHVkZSAiZ2RvbS9Qcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIiovCisvKkdfQkVHSU5fREVD
TFMqLworLypjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9OyovCisjaW5jbHVkZSAiJHtp
bnRlcmZhY2VOYW1lfS5oIgorRU9GCisKKyAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVu
dCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBHRE9NJHtpbnRlcmZhY2VOYW1lfSA6IHB1YmxpYyAke3BhcmVudEdJZmFjZU5h
bWV9IHsKKworcHVibGljOgorICAgIEdET00ke2ludGVyZmFjZU5hbWV9KFdlYkNvcmU6OiR7aW50
ZXJmYWNlTmFtZX0qIGltcGwpIDogJHBhcmVudEdJZmFjZU5hbWV9KGltcGwpCisgICAgeyBpbXBs
LT5yZWYoKTsgfQorICAgIH5HRE9NJHtpbnRlcmZhY2VOYW1lfSgpIHsgbV9pbXBsLT5kZXJlZigp
OyB9CisKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBpbXBsKCkgY29uc3QgeyByZXR1
cm4gbV9pbXBsOyB9CisKKworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9
ICptX2ltcGw7Cit9OworCitFT0YKKworICAgICAgICAjcHVzaChAaEJvZHlQcml2LCAkaW1wbENv
bnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSAke2NsYXNzTmFtZX07CisK
K1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2
YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCk7CisKKy8qR19FTkRfREVDTFMqLworCisjZW5kaWYg
LyogJHtndWFyZH1fUFJJVl8gKi8KKworRU9GCisKKyAgICAjcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KChXZWJDb3JlOjpOb2RlKikocmVzKSk7Cisg
ICAgICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICAgICAjaWYgKCRw
YXJhbUlETFR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICMgWFhYID8/Pz8gd3Rm
Pz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICMgICAgJGltcGxJbmNsdWRl
c3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgI30gZWxzZSB7
CisgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3skaW5jbHVkZUhkcn0gPSAxOworICAgICAgICAj
fQorICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAg
ICAgICRpbXBsSW5jbHVkZXN7Imdkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaCJ9ID0gMTsKKwor
ICAgICAgICBMT09QOiBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9u
c30pIHsKKyAgICAgICAgICAgICNteSAkZnVuY3Rpb25OYW1lID0gZGVjYW1lbGl6ZSgkY2xhc3NO
YW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpOworICAg
ICAgICAgICAgICAgIG15ICRmbl9zaWdfbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1l
OworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT50eXBlOworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV8iIC4gZGVj
YW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRmbl9zaWdfbmFtZSk7
CisgICAgICAgICAgICAgICAgbXkgJHJldHVyblR5cGUgPSBHZXRHVHlwZSgkZm5fc2lnX3R5cGUp
OworICAgICAgICAgICAgICAgIG15ICRyZXRfaXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUo
JGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIkY2xh
c3NOYW1lICp0aGl6IjsKKworICAgICAgICAgICAgICAgIG15ICRjYWxsX2ltcGxfcGFyYW1zID0g
IiI7CisgICAgICAgICAgICAgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gImdkb21fIiAuIGRlY2Ft
ZWxpemUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1l
IGVxICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkiKSB7CisgICAgICAg
ICAgICAgICAgICAgICMgcmVzZXJ2ZWQgbmFtZSBjbGFzaCBpbiBnbGliIQorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdkb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3NldF9j
c3NfcHJvcGVydHkiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAjIFhYWCBz
a2lwIENvbXBhcmVIb3cgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJGZ1
bmN0aW9uTmFtZSBlcSAiZ2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBD
b21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93
IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
bmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNr
aXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJHJl
dHVyblR5cGUgZXEgIkdkb21TVkdEb2N1bWVudCAqIikgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9u
ICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0
aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIHNvbWUgY3VzdG9tIGZ1
bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgbXkgJGlzX2N1c3RvbV9mbiA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisgICAgICAg
ICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xsZWN0aW9uX2l0ZW0i
IHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xs
ZWN0aW9uX25hbWVkX2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
ZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiB8fAorICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfc2V0X3JlcXVlc3RfaGVhZGVy
IiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRw
X3JlcXVlc3Rfc2VuZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dldF9yZXNwb25zZV9oZWFkZXIiIHx8CisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vdmVycmlk
ZV9taW1lX3R5cGUiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdk
b21feG1sX2h0dHBfcmVxdWVzdF9kaXNwYXRjaF9ldmVudCIgfHwKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1dGUiKSB7CisgICAg
ICAgICAgICAgICAgICAgICRpc19jdXN0b21fZm4gPSAwOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIyRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVz
dF9hZGRfZXZlbnRfbGlzdGVuZXIiIHx8CisgICAgICAgICAgICAgICAgICAgICMkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyIiB8fAor
ICAgICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmIAorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3JfbmV4dF9ub2RlIiAmJiAKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGls
ZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9y
ZW1vdmVfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiICYmCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcGFyZW50X25vZGUiICYmIAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2ZpcnN0
X2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90
cmVlX3dhbGtlcl9sYXN0X2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19zaWJsaW5nIiAmJiAKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9uZXh0X3NpYmxp
bmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVf
d2Fsa2VyX3ByZXZpb3VzX25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAg
ICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9wcmV2aW91c19ub2RlIikg
eworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3Rv
bSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25O
YW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlv
bi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtSURMVHlwZSA9
ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jQm9keSgkcGFyYW1JRExU
eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAg
ICAgICAgICAgICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURMVHlwZSk7
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+
bmFtZSk7CisKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsICRwYXJhbVR5
cGUgJHBhcmFtTmFtZSI7CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190
eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAg
ICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHBhcmFtSURMVHlwZSBuZSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICRwYXJhbUlETFR5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vUHJpdmF0ZUludEdkb20ke3BhcmFtSURMVHlw
ZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJn
ZG9tL1ByaXZhdGVHZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7ICMgdGhp
cyBpc24ndCBzdHJpY3RseSBuZWNlc3NhcnkgYnV0IG9uZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQg
ZmlsZXMgbmVlZGVkIGl0IHNvLi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5
cGUgfHwgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAkcGFyYW1OYW1lID0gIl9nXyIgLiAkcGFyYW1OYW1lOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkY2FsbF9pbXBsX3BhcmFtcykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGFkZEluY0hkcigkZm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Ns
c190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9z
aWdfdHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYg
KCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0
X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBl
IGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggPz8/
PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vUHJpdmF0ZUlu
dEdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZhdGVHZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0g
MTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9H
ZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtmbl9zaWdfdHlw
ZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAgY3Vz
dG9tIGZ1bmN0aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgIyBidXQgc2tpcCBmcm9tIGhl
cmUgdG8gYWxsb3cgc29tZSBoZWFkZXJzIHRvIGJlIGNyZWF0ZWQKKyAgICAgICAgICAgICAgICAj
IGZvciBhIHN1Y2Nlc3NmdWwgY29tcGlsZS4KKyAgICAgICAgICAgICAgICBpZiAoJGlzX2N1c3Rv
bV9mbiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVf
cmVtb3ZlX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAi
Z2RvbV9ub2RlX2luc2VydF9iZWZvcmUiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIikgeworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIG15ICRfcmV0dXJuVHlwZSA9ICRyZXR1cm5UeXBlOworICAgICAgICAg
ICAgICAgIG15ICRkb21vYmpUeXBlID0gIkdET00iLiRmbl9zaWdfdHlwZTsKKyAgICAgICAgICAg
ICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICAgICAgICAg
ICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfY29udGV4
dCcpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAg
ICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0IConOworICAgICAg
ICAgICAgICAgICAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dCc7
CisgICAgICAgICAgICAgICAgICAgICRnZG9tX2ZuX3ByZWZpeCA9ICdnZG9tX2NhbnZhc19yZW5k
ZXJpbmdfY29udGV4dCc7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0
b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVz
dCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91
dCBob3cpCisgICAgICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3Jl
YXRlIGEgR0RPTURvbU9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgJ0RPTU9iamVjdCcgJiYK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAnZ2RvbV9kb2N1bWVudF9nZXRf
Y3NzX2NhbnZhc19jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBIQUNLIQor
ICAgICAgICAgICAgICAgICAgICAkX3JldHVyblR5cGUgPSAnR2RvbUNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRCAqJzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCc7CisgICAgICAgICAgICAgICAgICAgICRnZG9tX2ZuX3ByZWZp
eCA9ICdnZG9tX2NhbnZhc19yZW5kZXJpbmdfY29udGV4dDJkJzsKKyAgICAgICAgICAgICAgICAg
ICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93LiAgc2tpcCBpdC4KKyAg
ICAgICAgICAgICAgICAgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01PYmplY3QgKFRPRE86IGJy
b3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKyAgICAgICAgICAgICAgICAgICAgIyBiZXR0
ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICBwdXNoKEBoQm9k
eSwgIldFQktJVF9BUEkgJF9yZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcp
O1xuXG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiJF9yZXR1cm5UeXBlXG4k
ZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcpXG57XG4iKTsKKworICAgICAgICAgICAgICAgIGlm
ICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggVE9E
TzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAodGhpeiwgMCk7XG4iKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTtcbiIpOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0g
KiBpdGVtID0gKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSh0aGl6KSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAg
ICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGl0ZW0s
IDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoaXRlbSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+
cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2Ft
ZWxpemUoJHBhcmFtLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtSURMVHlw
ZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZUlzUHJp
bWl0aXZlID0gJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkcGFyYW1JRExUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NU
eXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNIZHIoJHBhcmFt
SURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsK
KyAgICAgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtwYXJhbUlETFR5
cGV9In0gPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
ICghJHBhcmFtVHlwZUlzUHJpbWl0aXZlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
JHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBY
WFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICgkcGFyYW1O
YW1lLCAwKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsICgk
cGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgJHJldHVyblBh
cmFtTmFtZSA9ICIiOworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5j
dGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtSURMVHlw
ZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZSA9IEdl
dEdUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1l
ID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworCisgICAgICAgICAgICAgICAgICAgIG15ICRw
YXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgIyBIQUNLIQorICAgICAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9u
TmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X29wZW4iICYmCisgICAgICAgICAgICAgICAg
ICAgICAgICAgJHBhcmFtLT5uYW1lIGVxICJ1cmwiKSB7CisKKyAgICAgICAgICAgICAgICAgICAg
ICAgICMkaW1wbEluY2x1ZGVzeyJLVVJMLmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpLVVJMIF9nXyR7cGFyYW1OYW1lfSA9IFdlYkNv
cmU6OktVUkwoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBlbHNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6U3RyaW5nIF9n
XyR7cGFyYW1OYW1lfSA9IFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoJHBhcmFtTmFtZSk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFt
X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1fZ2RvbV9m
biA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAg
ICAgICAgICAgI3B1c2goQGNCb2R5LCAiICAgIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjoke3Bh
cmFtSURMVHlwZX0+ICogX2dfJHtwYXJhbU5hbWV9ID0gV1RGOjpSZWZQdHI8JHtwYXJhbV9nZG9t
X2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKT47XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIg
ICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogX2dfJHtwYXJhbU5hbWV9ID0gc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRf
cHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29y
ZTo6JHtwYXJhbUlETFR5cGV9ICogX2dfJHtwYXJhbU5hbWV9ID0gKCR7cGFyYW1fZ2RvbV9mbn1f
Z2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZh
dWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0sIDApO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKF9nXyR7cGFyYW1OYW1lfSk7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiX2dfIi4kcGFyYW1OYW1lIGlmICRw
YXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJldHVybiJ9OworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIG15ICRhc3NpZ24gPSAiIjsKKyAgICAgICAgICAgICAgICBteSAk
YXNzaWduX3ByZSA9ICIiOworICAgICAgICAgICAgICAgIG15ICRhc3NpZ25fcG9zdCA9ICIiOwor
ICAgICAgICAgICAgICAgICRnX3JlcyA9IDA7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgeworCisgICAgICAgICAgICAgICAgICAg
IGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWdu
ID0gIlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtmbl9zaWdfdHlwZX0+IGdfcmVzID0gIjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcHJlID0gIldURjo6Z2V0UHRyKCI7CisgICAgICAg
ICAgICAgICAgICAgICAgICAkYXNzaWduX3Bvc3QgPSAiKSI7CisgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduID0gIiR7X3JldHVyblR5
cGV9IHJlcyA9ICI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgbXkgJGV4Y2VwdGlvbnMgPSAiIjsKKyAgICAgICAgICAgICAgICBpZiAo
QHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIGlmICgke2NhbGxfaW1wbF9wYXJhbXN9IG5lICIiKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICIsIGVjIjsKKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRleGNlcHRpb25zID0gImVjIjsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgICMgbmVlZCB0aGlzIGZvciBpbmNsdWRpbmcgLi4uIF9zb21ldGhpbmdfIC0gZm9yIHRoZSBj
bGFzcyBhcmdzCisgICAgICAgICAgICAgICAgI2lmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAg
ICAgICAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0g
MTsKKyAgICAgICAgICAgICAgICAjfQorICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1l
IGVxICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIGVxICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgfHwKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiIHx8CisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQi
KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGls
ZCA9IDw8ICJFT0YiOworICAgIGJvb2wgb2sgPSBpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxf
aW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSk7CisgICAgaWYgKG9rKQorICAgIHsKKyAgICAgICAg
JHtfcmV0dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nhc3Q8JHtfcmV0dXJuVHlwZX0+KFdlYkNvcmU6
OnRvR0RPTSgkcmV0dXJuUGFyYW1OYW1lKSk7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQor
ICAgIHJldHVybiBOVUxMOworRU9GCisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAk
Y3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOworICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIG5lICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQnKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIC8qIFhYWCBUT0RPIC0gZ2V0IGNh
bnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4
Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufV9HX0dFVF9VVEY4KGl0ZW0tPiR7Zm5f
c2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7XG4iICk7CisgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRnX3Jlcykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgJGdfcmVzID0gIiR7YXNzaWdufSR7YXNzaWduX3ByZX1p
dGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSR7YXNz
aWduX3Bvc3R9KSIgOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0t
PiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25f
cG9zdH0pO1xuIiApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21f
Zm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIG5lICJET01PYmpl
Y3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7X3JldHVyblR5
cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihXZWJDb3JlOjp0b0dET00oZ19y
ZXMuZ2V0KCkpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9i
amVjdCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVy
biBOVUxMOyAvKiBYWFggVE9ETzogcmV0dXJuIGNhbnZhcyBvYmplY3QgKi9cbiIpOworICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgcmV0dXJuIHJlcztcbiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4iKTsKKworICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKKyAgICAgICAgfQorCisgICAgcHVzaChA
Y0JvZHksICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xuXG4iKTsKKyAgICBwdXNoKEBjQm9keVByaXYs
ICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xuXG4iKTsKKworICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiI2VuZGlmIC8q
ICR7Z3VhcmR9X0lOVF8qL1xuIik7CisKKyAgICBwdXNoKEBoQm9keSwgIkdfRU5EX0RFQ0xTXG5c
biIpOworICAgIHB1c2goQGhCb2R5LCAiI2VuZGlmIC8qICRndWFyZCAqL1xuIik7CisKKyAgICBw
dXNoKEBoQm9keVByb3AsICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keVByb3As
ICIjZW5kaWYgLyogJHtndWFyZH1fUFJPUF8qL1xuIik7Cit9CisKKyMgSW50ZXJuYWwgaGVscGVy
CitzdWIgV3JpdGVEYXRhCit7CisgICAgbXkgKCRvYmplY3QsICRuYW1lKSA9IEBfOworCisKKyAg
ICAjIFdyaXRlIEludGVybmFsIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZUludGVybmFsID0gIiRv
dXRwdXREaXIvUHJpdmF0ZUludCIgLiAkbmFtZSAuICIuaCI7CisgICAgb3BlbihJTlRIRUFERVIs
ICI+JGhkckZOYW1lSW50ZXJuYWwiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5h
bWVJbnRlcm5hbCI7CisKKyAgICBwcmludCBJTlRIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQg
SU5USEVBREVSICJcbiI7CisgICAgcHJpbnQgSU5USEVBREVSIEBoQm9keUludGVybmFsOworICAg
IGNsb3NlKElOVEhFQURFUik7CisKKyAgICAjIFdyaXRlIFByaXZhdGUgaGVhZGVyCisgICAgbXkg
JGhkckZOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL1ByaXZhdGUiIC4gJG5hbWUgLiAiLmgiOworICAg
IG9wZW4oUFJJVkhFQURFUiwgIj4kaGRyRk5hbWVQcml2Iikgb3IgZGllICJDb3VsZG4ndCBvcGVu
IGZpbGUgJGhkckZOYW1lUHJpdiI7CisKKyAgICBwcmludCBQUklWSEVBREVSIEBoUHJlZml4Owor
ICAgIHByaW50IFBSSVZIRUFERVIgIlxuIjsKKyAgICBwcmludCBQUklWSEVBREVSIEBoQm9keVBy
aXY7CisgICAgY2xvc2UoUFJJVkhFQURFUik7CisKKyAgICAjIFdyaXRlIFByaXZhdGUgSW1wbGVt
ZW50YXRpb24KKyAgICAjbXkgJGltcGxGaWxlTmFtZVByaXYgPSAiJG91dHB1dERpci9Qcml2YXRl
IiAuICRuYW1lIC4gIi5jcHAiOworICAgICNvcGVuKFBSSVZJTVBMLCAiPiRpbXBsRmlsZU5hbWVQ
cml2Iikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGltcGxGaWxlTmFtZVByaXYiOworCisg
ICAgI3ByaW50IFBSSVZJTVBMIEBjUHJlZml4OworICAgICNwcmludCBQUklWSU1QTCAiXG4iOwor
ICAgICNwcmludCBQUklWSU1QTCBAY0JvZHlQcml2OworCisgICAgI2Nsb3NlKFBSSVZJTVBMKTsK
KworICAgICMgV3JpdGUgcHJvcGVydGllcyBoZWFkZXIgKGF2b2lkcyByZWN1cnNpdmUgbmlnaHRt
YXJlKQorICAgIG15ICRoZHJQcm9wRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAicHJv
cHMuaCI7CisgICAgb3BlbihQUk9QSEVBREVSLCAiPiRoZHJQcm9wRk5hbWUiKSBvciBkaWUgIkNv
dWxkbid0IG9wZW4gZmlsZSAkaGRyUHJvcEZOYW1lIjsKKworICAgICRoZHJQcm9wSW5jbHVkZXN7
ImdsaWItb2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBQUk9QSEVBREVSIEBoUHJlZml4Owor
ICAgIHByaW50IFBST1BIRUFERVIgIi8qIHJlY3Vyc2l2ZSBpbmNsdWRlcyAvIGRlZmluZXMgaXNz
dWUgZm9yY2VzIHNlcGFyYXRlIGhlYWRlciBmb3IgcHJvcGVydGllcy5cbnBlcmhhcHMgLSBiZXR0
ZXIgLSBhbGwgZ2RvbSBndGsgZnVuY3Rpb25zIHNob3VsZCBiZSBpbiBoZXJlISovXG4iOworICAg
IHByaW50IFBST1BIRUFERVIgQGhCb2R5UHJvcFByZTsKKyAgICBwcmludCBQUk9QSEVBREVSICIj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD5cbiI7CisgICAgcHJpbnQgUFJPUEhFQURF
UiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJQcm9wSW5jbHVkZXMp
OworICAgIHByaW50IFBST1BIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJQcm9wSW5jbHVkZXMpOwor
ICAgIHByaW50IFBST1BIRUFERVIgIlxuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVBy
b3A7CisKKyAgICBjbG9zZShIRUFERVIpOworCisgICAgIyBXcml0ZSBwdWJsaWMgaGVhZGVyLgor
ICAgIG15ICRoZHJGTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuaCI7CisgICAgb3Bl
bihIRUFERVIsICI+JGhkckZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZO
YW1lIjsKKworICAgICRoZHJJbmNsdWRlc3siZ2xpYi1vYmplY3QuaCJ9ID0gMTsKKworICAgIHBy
aW50IEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXhHdWFyZDsKKyAg
ICBwcmludCBIRUFERVIgIiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPlxuIjsKKyAg
ICBwcmludCBIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRy
SW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWhkckluY2x1ZGVzKTsK
KyAgICBwcmludCBIRUFERVIgIlxuIjsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5UHJlOworICAg
IHByaW50IEhFQURFUiBtYXAgeyAidHlwZWRlZiBzdHJ1Y3QgXyRfICRfO1xuIiB9IHNvcnQga2V5
cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVpbXBsVHlw
ZWRlZnMpOworICAgIHByaW50IEhFQURFUiBAaEJvZHk7CisKKyAgICBjbG9zZShIRUFERVIpOwor
CisgICAgIyBXcml0ZSB0aGUgaW1wbGVtZW50YXRpb24gc291cmNlcworICAgIG15ICRpbXBsRmls
ZU5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihJTVBMLCAi
PiRpbXBsRmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1l
IjsKKworICAgIHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUg
XCJjb25maWcuaFwiXG5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD5cbiI7CisgICAgcHJpbnQgSU1QTCBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBr
ZXlzKCVpbXBsSW5jbHVkZXMpOworICAgIHByaW50IElNUEwgIlxuIiBpZiBrZXlzKCVpbXBsSW5j
bHVkZXMpOworICAgIHByaW50IElNUEwgQGNCb2R5OworCisgICAgcHJpbnQgSU1QTCAiXG4iOwor
ICAgIHByaW50IElNUEwgQGNCb2R5UHJpdjsKKworICAgIGNsb3NlKElNUEwpOworCisgICAgJWlt
cGxJbmNsdWRlcyA9ICgpOworICAgICVpbXBsVHlwZWRlZnMgPSAoKTsKKyAgICAlaGRySW5jbHVk
ZXMgPSAoKTsKKyAgICBAaFByZWZpeCA9ICgpOworICAgIEBoQm9keSA9ICgpOworICAgIEBoQm9k
eVByaXYgPSAoKTsKKyAgICBAaEJvZHlJbnRlcm5hbCA9ICgpOworICAgIEBoQm9keVByb3AgPSAo
KTsKKyAgICBAaEJvZHlQcm9wUHJlID0gKCk7CisKKyAgICBAY1ByZWZpeCA9ICgpOworICAgIEBj
Qm9keSA9ICgpOworICAgIEBjQm9keVByaXYgPSAoKTsKK30KKworMTsKSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAg
XSBIVE1MT3B0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOwogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZDsKLSNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8
fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAg
W0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB0ZXh0CiAgICAg
ICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZWxzZQpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3
LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzZWFyY2g7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dDsKIAotI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRl
ZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9T
dHJpbmcoKTsKICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwJKHJl
dmlzaW9uIDM2NDAzKQorKysgV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzUsMTQgKzM1LDE0IEBACiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb2RlOwogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29kZUJh
c2U7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBoZWlnaHQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgaHNwYWNlOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0RnJvbVN0cmluZ10gbG9uZyBoc3BhY2U7CiAjZW5kaWYKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBv
YmplY3Q7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdnNw
YWNlOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmlu
Z10gbG9uZyB2c3BhY2U7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCShyZXZpc2lv
biAzNjQwMykKKysrIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNyArMzAsNyBAQAogICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9OTNlMDQw
N2EtODM4MC00ZmYwLTk3OGQtZjc3M2YyZGVlNmEzCiAgICAgXSBIVE1MRW1iZWRFbGVtZW50IDog
SFRNTEVsZW1lbnQgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgYWxpZ247Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFH
RV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0OwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyBoZWlnaHQ7CkBAIC0zOCw3ICszOCw3IEBACiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgc3JjOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsKLSNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVk
KExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB3aWR0aDsKICNlbHNlCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgd2lkdGg7CkluZGV4OiBXZWJDb3Jl
L2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRs
CShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMTU2LDcgKzE1Niw3IEBACiAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRpdGxlOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExB
TkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZG9tYWluOwogI2Vsc2UKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBkb21haW47CkBAIC0xODIsNyArMTgyLDcgQEAKIAogICAgICAg
ICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5TmFtZShpbiBET01TdHJpbmcgZWxlbWVudE5hbWUpOwog
Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBMb2NhdGlvbiBsb2NhdGlvbjsKICNlbmRpZgogCkBAIC0x
OTUsNyArMTk1LDcgQEAKICAgICAgICAgRWxlbWVudCAgICAgICAgICAgIGVsZW1lbnRGcm9tUG9p
bnQoaW4gbG9uZyB4LCBpbiBsb25nIHkpOwogCiAgICAgICAgIC8vIE1vemlsbGEgZXh0ZW5zaW9u
cwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICBET01T
ZWxlY3Rpb24gICAgICAgZ2V0U2VsZWN0aW9uKCk7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBjaGFyYWN0ZXJT
ZXQ7CkBAIC0yMzYsNyArMjM2LDcgQEAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZShpbiBET01TdHJpbmcgdGFnbmFtZSk7CiAKICAgICAgICAgLy8gTm9kZVNlbGVjdG9y
IC0gU2VsZWN0b3IgQVBJCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkp
CiAgICAgICAgIFtDdXN0b21dIEVsZW1lbnQgcXVlcnlTZWxlY3RvcihpbiBbQ29udmVydFVuZGVm
aW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVjdG9ycywgaW4gTlNSZXNvbHZl
ciByZXNvbHZlcikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBb
Q3VzdG9tXSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGluIFtDb252ZXJ0VW5kZWZpbmVkT3JO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JzLCBpbiBOU1Jlc29sdmVyIHJlc29s
dmVyKQpJbmRleDogV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzY0MDMpCisrKyBXZWJD
b3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcg
QEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgW0RvbnRFbnVtXSBE
T01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgogCkluZGV4OiBXZWJDb3JlL2RvbS9FdmVudEV4
Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRs
CShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQor
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JK
RUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQK
ICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDog
V2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
S2V5Ym9hcmRFdmVudC5pZGwJKHJldmlzaW9uIDM2NDAzKQorKysgV2ViQ29yZS9kb20vS2V5Ym9h
cmRFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGFsdEdyYXBoS2V5KTsKIAogICAgICAgICAv
LyBXZWJLaXQgRXh0ZW5zaW9ucwotI2lmICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisj
aWYgKCghZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSkgJiYgKCFkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpKSkKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAg
a2V5Q29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgY2hh
ckNvZGU7CiAgICAgICAgIApJbmRleDogV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwJKHJldmlzaW9u
IDM2NDAzKQorKysgV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAg
ICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAg
ICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAg
IFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNjM3
OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiwxNDEg
QEAKICAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCk6CiAgICAgICAg
IChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQpOgogCisyMDA4LTA5LTEy
ICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQK
KyAgICAgICAgKGxrY2w6IGknbGwgYmUgYWJzb2x1dGVseSBob25lc3Qgd2l0aCBwZW9wbGUsIGhl
cmU6CisgICAgICAgICBpJ20gbm90IGdvaW5nIHRvIGFkZCBvciBjaGFuZ2UgYW55LCBlaXRoZXIs
IHVubGVzcworICAgICAgICAgdGhlcmUgaXMgZnVuZGluZyBtYWRlIGF2YWlsYWJsZSB0byBkbyBp
dCwgb3IgaSBmaW5kIGEKKyAgICAgICAgIGdvb2QgcmVhc29uIHRvIHBheSBmb3IgdGhlIHRpbWUg
YXQgbXkgb3duIGV4cGVuc2UuCisgICAgICAgICBzbyBmYXIsIHB5d2Via2l0Z3RrIGl0c2VsZiBo
YXMgYmVlbiBhICJnb29kIGVub3VnaCB0ZXN0IgorICAgICAgICAgZm9yIG15IHB1cnBvc2VzLCB3
aGljaCBtYXNoZXMgdGhlIGVudGlyZSByYW5nZSBvZgorICAgICAgICAgZnVuY3Rpb25hbGl0eSBh
bmQgcHJvdmlkZXMgZ29vZCBlbXBpcmljYWwgdGVzdGluZykuCisKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbTogYWRkZWQgTEFOR1VBR0VfR09CSkVDVCwgZ2xpYiBET00gYmluZGluZ3MgZmlsZXMs
IGluY2x1ZGluZyBtYXJraW5nIFNWRyBhcyAiVE9ETyIKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9t
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjphZGRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92
ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlV3JhcHBlcnMpOgorICAgICAgICAo
V2ViQ29yZTo6d3JhcHBlclNldCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NT2JqZWN0Ojp+R0RP
TU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyQ2FjaGUpOgorICAgICAgICAoV2Vi
Q29yZTo6ZG9tT2JqZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OmdldERPTU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVfZ2RvbV9vYmplY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2Rl
Rm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpm
b3JnZXRET01Ob2RlRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdElu
dGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RP
TVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6bWFya0RPTU5vZGVzRm9yRG9jdW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjp1cGRhdGVET01O
b2RlRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6dG9HRE9NKToKKyAgICAgICAgKFdlYkNv
cmU6OnRvR0RPTU5ld2x5Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXcmFwcGVy
KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Y2FjaGVET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVTVkdE
T01PYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnkuY3BwOiBBZGRlZC4gIENvcGllZCBmcm9tIHRoZSBhdXRvLWdlbmVyYXRlZCBKU0hU
TUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIAorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQW5j
aG9yV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBcHBsZXRXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFyZWFXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUJhc2VXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJhc2VGb250V3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVCb2R5V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVC
UldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQnV0dG9uV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVDYW52YXNXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVD
b2xXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1vZFdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlRGlyZWN0b3J5V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVEaXZXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURMaXN0V3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVFbWJlZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlRmllbGRTZXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRX
cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvcm1XcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUZyYW1lV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVG
cmFtZVNldFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSGVhZGluZ1dyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSGVhZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlSFJXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUh0bWxXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlGcmFtZVdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSW1hZ2VXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlucHV0
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJc0luZGV4V3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVMYWJlbFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlTGVnZW5kV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVMSVdyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTGlua1dyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlTWFwV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNYXJxdWVlV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZW51V3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVNZXRhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPYmplY3RX
cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9MaXN0V3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVPcHRHcm91cFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlT3B0aW9uV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXJhZ3JhcGhXcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhcmFtV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVQcmVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVF1b3Rl
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTY3JpcHRXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVNlbGVjdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlU3R5bGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxlV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlVGV4dEFyZWFXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRpdGxlV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZVJvd1dyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlVUxpc3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdE
T01IVE1MV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRX
cmFwcGVyRmFjdG9yeS5oOiAgQWRkZWQuICBDb3BpZWQgZnJvbSB0aGUgYXV0by1nZW5lcmF0ZWQg
SlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dE
T01PYmplY3QuaDogQWRkZWQuCisgICAgICAgIChHRE9NT2JqZWN0Ojp+R0RPTU9iamVjdCk6Cisg
ICAgICAgICogYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRp
bmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHA6IEFkZGVkLgorICAgICAgICAoR1N0cmlu
Z0NvbnZlcnQ6OkdTdHJpbmdDb252ZXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21F
dmVudFRhcmdldE5vZGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRl
R2RvbURPTU9iamVjdC5jcHA6IEFkZGVkLgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2YXRl
OjpnZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUpOgorICAgICAgICAoX0dkb21ET01PYmplY3RQ
cml2YXRlOjpnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUpOgorICAgICAgICAoX0dkb21ET01P
YmplY3RQcml2YXRlOjpnZG9tX2RvbV9vYmplY3RfZmluYWxpemUpOgorICAgICAgICAoX0dkb21E
T01PYmplY3RQcml2YXRlOjpnZG9tX2RvbV9vYmplY3RfY2xhc3NfaW5pdCk6CisgICAgICAgIChf
R2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9pbml0KToKKyAgICAgICAgKiBi
aW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUpOgorICAgICAgICAqIGJpbmRp
bmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaDogQWRkZWQuCisgICAgICAgICog
YmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgor
ICAgICAgICAoR0RPTUV2ZW50VGFyZ2V0Tm9kZTo6R0RPTUV2ZW50VGFyZ2V0Tm9kZSk6CisgICAg
ICAgIChHRE9NRXZlbnRUYXJnZXROb2RlOjpnZXRfZ29ial90eXBlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOiBBZGRlZCBnb2JqZWN0IGJpbmRp
bmdzIGF1dG8tZ2VuZXJhdG9yLgorICAgICAgICAqIGRvbS9ET01Db3JlRXhjZXB0aW9uLmlkbDog
YWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGRv
bS9FdmVudEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURM
CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNU
LXNwZWNpZmljIElETAorICAgICAgICAqIGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGw6IGFkZGVkIExB
TkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICog
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lm
aWMgSURMCisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbDogYWRkZWQgTEFOR1VB
R0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50
LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBwYWdl
L0RPTVNlbGVjdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisg
ICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNp
ZmljIElETAorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6IGFkZGVkIExBTkdVQUdF
X0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwgCisgICAgICAgICog
eG1sL1hQYXRoRXhjZXB0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJ
REwKKwogMjAwOC0wOS0xMiAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBNb3ZlIHRoZSBtZW1iZXIgdmFyaWFibGVzIG9mIFBsYXRmb3JtU2Nyb2xsYmFyIHVwIGludG8g
U2Nyb2xsYmFyLiAgTW92ZSBhdXRvc2Nyb2xsIHRpbWVyIGhhbmRsaW5nCkluZGV4OiBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaWRsCShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNjIsOSArNjIsMTMgQEAKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIHZvaWQgc2VuZCgpOwotICAgICAgICAv
LyB2b2lkIHNlbmQoaW4gRE9NU3RyaW5nIGRhdGEpOworI2lmIGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkKKyAgICAgICAgdm9pZCBzZW5kKGluIERPTVN0cmluZyBkYXRhKQorICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZWxzZQogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNlbmQo
aW4gRG9jdW1lbnQgZGF0YSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworI2Vu
ZGlmCiAKICAgICAgICAgdm9pZCBhYm9ydCgpOwogCkluZGV4OiBXZWJDb3JlL3htbC9YUGF0aEV4
Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRs
CShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQor
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JK
RUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQK
ICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDog
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzY0MDMpCisr
KyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAg
bWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAg
ICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtE
b250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
CShyZXZpc2lvbiAzNjQwMykKKysrIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTUsNyArMTU1LDcgQEAKICAgICAgICAgW0RvTm90Q2hlY2tEb21haW5TZWN1
cml0eSwgQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGluIERPTVN0cmluZyBtZXNzYWdlLCBpbiBE
T01TdHJpbmcgdGFyZ2V0T3JpZ2luKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIEds
b2JhbCBjb25zdHJ1Y3RvcnMKICAgICAgICAgYXR0cmlidXRlIFN0eWxlU2hlZXRDb25zdHJ1Y3Rv
ciBTdHlsZVNoZWV0OwogICAgICAgICBhdHRyaWJ1dGUgQ1NTU3R5bGVTaGVldENvbnN0cnVjdG9y
IENTU1N0eWxlU2hlZXQ7CkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAkocmV2aXNpb24gMzY0MDMp
CisrKyBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNjIs
NyArNjIsNyBAQAogICAgICAgICB2b2lkIHJlbW92ZUFsbFJhbmdlcygpOwogICAgICAgICB2b2lk
IGFkZFJhbmdlKGluIFJhbmdlIHJhbmdlKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VB
R0VfR09CSkVDVCkKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNl
bmRpZgogICAgIH07CkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShy
ZXZpc2lvbiAzNjQwMykKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGQgR2Rv
bSouaCBnbGliIERPTSBiaW5kaW5ncyBoZWFkZXIgZmlsZXMsCisgICAgICAgIAorICAgICAgICBB
bHNvIGFkZGVkIGdkb21lbnVtdHlwZXMuY3BwLGggd2hpY2ggcHJlc2VudGx5IGRvIG5vdAorICAg
ICAgICBhY3R1YWxseSBjb250YWluIGFueXRoaW5nLCBiZWNhdXNlIHRoZXJlIGFyZSBubyBlbnVt
cworICAgICAgICBpbiB0aGUgZ2xpYiBiaW5kaW5ncyAtIHlldC4KKwogMjAwOC0wOS0wNCAgTWFy
Y28gQmFyaXNpb25lICA8bWFyY28uYmFyaXNpb25lQGNvbGxhYm9yYS5jby51az4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYktpdFRvb2xzL0dOVW1ha2VmaWxl
LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAz
NjQwMykKKysrIFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC02
LDYgKzYsOCBAQAogUHJvZ3JhbXNfR3RrTGF1bmNoZXJfQ1BQRkxBR1MgPSBcCiAJLUkkKHNyY2Rp
cikvV2ViS2l0L2d0ayBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNy
Y2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsv
d2Via2l0IFwKIAkkKGdsb2JhbF9jcHBmbGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxh
Z3MpCiAKQEAgLTI4LDYgKzMwLDggQEAKIAktSSQoc3JjZGlyKS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJCh0b3BfYnVpbGRk
aXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKKwktSSQo
dG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwK
IAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQogCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNjQwMykK
KysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDE4IEBA
CiAgICAgICAgICh3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZCk6CiAgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL09iakNQbHVnaW4ubToKIAorMjAwOC0wOS0xMiAgbGtjbCAgPGxrY2xAbGtj
bC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbTogYWRkZWQgLUkgaW5jbHVkZXMgdG8gZ3RrIHdlYmtpdCBzdWJkaXJl
Y3RvcmllcworCisgICAgICAgIEdkb20gZ2xpYiBET00gYmluZGluZ3MgaGF2ZSB0aGVpciBoZWFk
ZXIgZmlsZXMgY29udGFpbmluZworICAgICAgICAjaW5jbHVkZSAiZ2RvbSoiIHdoZXJlICNpbmNs
dWRlIDx3ZWJraXQvZ2RvbSo+IGlzIG5vdAorICAgICAgICBwb3NzaWJsZSwgYXMgdGhlIGdkb20q
IHNvdXJjZSBhbmQgaGVhZGVyIGZpbGVzIGFyZSBhdXRvLWdlbmVyYXRlZAorICAgICAgICBpbnRv
IERlcml2ZWRTb3VyY2VzLyBub3QgRGVyaXZlZFNvdXJjZXMvd2Via2l0LCBmb2xsb3dpbmcgdGhl
CisgICAgICAgIGV4YW1wbGUgb2YgdGhlIEpTIERlcml2ZWQgU291cmNlcy4KKwogMjAwOC0wOS0w
OCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE1hcmsgUm93ZS4K
</data>
<flag name="review"
          id="10463"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23488</attachid>
            <date>2008-09-16 14:19:53 -0700</date>
            <delta_ts>2008-09-17 14:28:05 -0700</delta_ts>
            <desc>updated for many of mrowe&apos;s comments</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>242359</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNjQ1OSkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtODUsNyArODYsOCBAQAogIyBDb252ZW5pZW5jZSBsaWJyYXJpZXMKIG5vaW5zdF9MVExJQlJB
UklFUyA9IFwKIAlsaWJKYXZhU2NyaXB0Q29yZS5sYSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYldl
YkNvcmUubGEgXAorCWxpYmdkb20ubGEKIAogIwogIyBKYXZhU2NyaXB0Q29yZQpAQCAtMTAxLDcg
KzEwMyw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMg
XAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3d0ZiBcCiAJLUkkKHNyY2RpcikvSmF2YVNj
cmlwdENvcmUva2pzIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCS1JJCh0
b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3Jl
L2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1
ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5
b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTE1Miw2ICsxNTUsMTAgQEAKIHdlYmNvcmVndGtfY3BwZmxh
Z3MgOj0KIHdlYmNvcmVndGtfc291cmNlcyA6PQogCit3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9IFwK
KwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9nZG9tIFwKKwktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrL2dkb20KKwogbm9kaXN0X2xpYldlYkNvcmVfbGFfU09VUkNFUyA9IFwKIAkkKHdl
YmNvcmVfYnVpbHRfc291cmNlcykKIApAQCAtMjE4LDYgKzIyNSw1NSBAQAogCSQoSlBFR19MSUJT
KSBcCiAJLWxwdGhyZWFkCiAKKyMgbGliZ2RvbQorbGliZ2RvbV9idWlsdF9zb3VyY2VzIDo9Cits
aWJnZG9tX3NvdXJjZXMgOj0KK2xpYmdkb21faF9hcGkgOj0KK2xpYmdkb21fY3BwZmxhZ3MgOj0K
K2xpYmdkb21fbGFkaXIgPSAkKHByZWZpeCkvaW5jbHVkZS93ZWJraXQtMS4wL2dkb20KK2xpYmdk
b21fbGFfSEVBREVSUyA9IFwKKyAgICAgICAgJChsaWJnZG9tX2hfYXBpKSBcCisJCSQoc3JjZGly
KS9XZWJLaXQvZ3RrL2dkb20vZ2RvbS5oIAorCitsaWJnZG9tX2NwcGZsYWdzICs9IFwKKwkkKGds
b2JhbF9jcHBmbGFncykgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAorCS1JJCh0b3BfYnVp
bGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9nZG9tIFwKKwkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrL2dkb20gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRT
b3VyY2VzL2dkb20gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisKK2xpYmdk
b21fbGFfU09VUkNFUyA9IFwKKwkkKGxpYmdkb21fc291cmNlcykgCisKK25vZGlzdF9saWJnZG9t
X2xhX1NPVVJDRVMgPSBcCisJJChsaWJnZG9tX2J1aWx0X3NvdXJjZXMpIAorCitsaWJnZG9tX2xh
X0NQUEZMQUdTID0gXAorCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCisJJCh3ZWJjb3JlX2NwcGZsYWdz
KSBcCisJJChHTE9CQUxERVBTX0NGTEFHUykgXAorCSQoV0VCS0lUREVQU19DRkxBR1MpIFwKKwkk
KGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCisJJChsaWJnZG9tX2NwcGZsYWdzKSAKKworbGli
Z2RvbV9sYV9MSUJBREQgPSBcCisJbGliV2ViQ29yZS5sYSBcCisJJChHTE9CQUxERVBTX0xJQlMp
IFwKKwkkKFdFQktJVERFUFNfTElCUykgXAorCSQoWFRfTElCUykgXAorCSQoTElCQ1VSTF9MSUJT
KSBcCisJJChMSUJTT1VQX0xJQlMpIFwKKwkkKEZSRUVUWVBFX0xJQlMpIFwKKwkkKFVOSUNPREVf
TElCUykgXAorCSQoU1FMSVRFM19MSUJTKSBcCisJJChHU1RSRUFNRVJfTElCUykgXAorCSQoTElC
WFNMVF9MSUJTKSBcCisJJChISUxET05fTElCUykgXAorCSQoSlBFR19MSUJTKSBcCisJLWxwdGhy
ZWFkCisKICMgV2ViS2l0CiB3ZWJraXRndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9
CkBAIC0yMzIsOCArMjg4LDE1IEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2lu
Y2x1ZGUvd2Via2l0LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkk
KHdlYmtpdGd0a19oX2FwaSkgXAorCSQobGliZ2RvbV9oX2FwaSkgXAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGVudW10eXBlcy5oCiAKKyMgY29tbWVudCB0aGVzZSBvdXQgZm9yIG5vdywgc2Vl
IHdoYXQgaGFwcGVucworIwkkKGxpYmdkb21faF9hcGkpIAorIwlXZWJLaXQvZ3RrL3dlYmtpdC9n
ZG9tLmggCisjV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisjV2ViS2l0L2d0ay93
ZWJraXQvZ2RvbWRlZmluZXMuaAorCiBsaWJ3ZWJraXRfMV8wX2xhX1NPVVJDRVMgPSBcCiAJJCh3
ZWJraXRndGtfc291cmNlcykKIApAQCAtMjU0LDcgKzMxNyw3IEBACiAJJChub191bmRlZmluZWQp
CiAKIGxpYndlYmtpdF8xXzBfbGFfTElCQUREID0gXAotCWxpYldlYkNvcmUubGEKKwlsaWJnZG9t
LmxhIAogCiAjCiAjIEV4dHJhIGNoZWNrcyBhbmQgZmxhZ3MKQEAgLTMwNSw2ICszNjgsMTc3IEBA
CiB3ZWJjb3JlX2xpYmFkZCArPSAtbGdzdGludGVyZmFjZXMtMC4xMCAtbGdzdHZpZGVvLTAuMTAK
IGVuZGlmCiAKKworV2ViS2l0L2d0ay9nZG9tL2dkb20uaDoKKyMgVE9ETzogYXV0by1nZW5lcmF0
ZSB0aGlzIGZpbGUKKworIyQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuY3BwOiBcCisjCQkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay9n
ZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmgKKworCitsaWJnZG9tX2hfYXBpICs9
IFwKKwkkKHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaFwKKwkk
KHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21Eb2N1bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUF0dHIuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21CYXJJbmZvLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ2FudmFzR3JhZGllbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQ
YXR0ZXJuLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNoYXJhY3RlckRhdGEuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DbGlwYm9h
cmQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21tZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ29uc29sZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvdW50ZXIu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU0ltcG9ydFJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1
bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQYWdlUnVsZS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ1NTUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGVMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU1N0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYWx1ZS5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlTGlzdC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURh
dGFiYXNlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50VHlwZS5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21ET01Db3JlRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NSW1wbGVt
ZW50YXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01QYXJzZXIuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21ET01XaW5kb3cuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRW50aXR5UmVmZXJlbmNlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnRFeGNl
cHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUZpbGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlTGlzdC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhpc3RvcnkuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxBcHBsZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxCb2R5RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxC
UkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQnV0dG9uRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENvbGxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxEaXZFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERMaXN0RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEb2N1bWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEVtYmVkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGaWVsZFNl
dEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9ybUVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxI
ZWFkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIZWFkaW5nRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIUkVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MSHRtbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MSUZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJ
bWFnZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSW5wdXRFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTExJRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMaW5rRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXBFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTE1lbnVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TE1ldGFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTE9wdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0aW9u
c0NvbGxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUHJlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MU2NyaXB0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTZWxlY3RF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTFRhYmxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxU
YWJsZVJvd0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUZXh0QXJlYUVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUltYWdlRGF0YS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUphdmFTY3Jp
cHRDYWxsRnJhbWUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21LZXlib2FyZEV2ZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTG9jYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21NZWRpYUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZXNzYWdlRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21N
b3VzZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTXV0YXRpb25FdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5hdmlnYXRvci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUxp
c3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU92ZXJmbG93RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Q
bHVnaW5BcnJheS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21S
YW5nZUV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmVjdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNj
cmVlbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTEVycm9yLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1FMUmVzdWx0U2V0Um93TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFRyYW5z
YWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZUV2ZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVN0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVRleHRNZXRyaWNzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRyZWVXYWxrZXIuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21VSUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5p
bWF0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdFRyYW5zaXRpb25FdmVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1M
SHR0cFJlcXVlc3RVcGxvYWQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxTZXJpYWxp
emVyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVhQYXRoRXhwcmVzc2lvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRo
TlNSZXNvbHZlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoUmVzdWx0LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFNMVFByb2Nlc3Nvci5oCisKIHdlYmtpdGd0a19oX2Fw
aSArPSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmggXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGRlZmluZXMuaCBcCkBAIC0zMTYsMTIgKzU1MCwxNyBAQAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuaAogCisjIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdkb21kZWZpbmVzLmgKKwogd2Via2l0
Z3RrX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdGVudW10eXBlcy5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy93ZWJraXRtYXJzaGFsLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5o
CiAKKyMJRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5jcHAgCisjCVdlYktpdC9ndGsvd2Vi
a2l0L2dkb21lbnVtdHlwZXMuaAorCiB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIFwKIAlXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIFwKQEAgLTM0NSwxNCArNTg0LDE3IEBACiAJV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNl
dHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKwlXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZXZlbnQuY3BwICAKIAogd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKIAktREJVSUxESU5H
X1dFQktJVCBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHNyY2RpcikvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydCBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAot
CS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0CisJLUkkKHRvcF9idWlsZGRpcikv
V2ViS2l0L2d0ay93ZWJraXQgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGtcCisJLUkk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMKIAogd2Via2l0Z3RrX2NsZWFuZmlsZXMgKz0g
XAogCSQodG9wX2J1aWxkZGlyKS9Qcm9ncmFtcy9HdGtMYXVuY2hlciBcCkBAIC0zNjcsNiArNjA5
LDkgQEAKIAlzdGFtcC13ZWJraXRlbnVtdHlwZXMuY3BwIFwKIAlzdGFtcC13ZWJraXRlbnVtdHlw
ZXMuaAogCisjCXN0YW1wLWdkb21lbnVtdHlwZXMuY3BwIAorIwlzdGFtcC1nZG9tZW51bXR5cGVz
LmggCisKIFdFQktJVF9NQVJTSEFMID0gJChHRU5TT1VSQ0VTKS93ZWJraXRtYXJzaGFsCiBXRUJL
SVRfTUFSU0hBTF9MSVNUID0gJChXRUJLSVRfTUFSU0hBTCkubGlzdAogCkBAIC00NDMsNiArNjg4
LDU0IEBACiAJJiYgY3AgeGdlbi1ndGMgJEAgXAogCSYmIHJtIC1mIHhnZW4tZ3RjCiAKK1dlYktp
dC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaDogc3RhbXAtZ2RvbWVudW10eXBlcy5oCisJQHRy
dWUKK3N0YW1wLWdkb21lbnVtdHlwZXMuaDogJChsaWJnZG9tX2hfYXBpKSBHTlVtYWtlZmlsZQor
CShjZCAkKHNyY2RpcikgXAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZoZWFkICIjaWZuZGVm
IEdET01fRU5VTV9UWVBFU19IXG4iIFwKKwkJCS0tZmhlYWQgIiNkZWZpbmUgR0RPTV9FTlVNX1RZ
UEVTX0hcblxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cblxuIiBc
CisJCQktLWZoZWFkICJHX0JFR0lOX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFpbCAiR19FTkRfREVD
TFNcblxuIiBcCisJCQktLWZ0YWlsICIjZW5kaWZcbiIgXAorCQkJLS1mcHJvZCAiI2luY2x1ZGUg
PEBmaWxlbmFtZUA+XG5cbiIgXAorCQkJLS1lcHJvZCAiI2RlZmluZSBHRE9NX1RZUEVfQEVOVU1T
SE9SVEAgQGVudW1fbmFtZUBfZ2V0X3R5cGUoKVxuXG4iIFwKKwkJCS0tZXByb2QgIldFQktJVF9B
UEkgR1R5cGVcbkBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpO1xuXG4iIFwKKwkJCSQobGliZ2Rv
bV9oX2FwaSkgfCBcCisJCQlzZWQgJ3MsV2ViS2l0L2d0ay8sLCcgfCBcCisJCXNlZCAncyx3ZWJf
a2l0LGdkb20sJyB8IFwKKwkJc2VkICdzLEdET01fVFlQRV9LSVQsR0RPTV9UWVBFLCcgXAorCQkp
ID4geGdlbi1jZ3RoIFwKKwkmJiAoY21wIC1zIHhnZW4tY2d0aCBXZWJLaXQvZ3RrL3dlYmtpdC9n
ZG9tZW51bXR5cGVzLmggfHwgY3AgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVt
dHlwZXMuaCkgXAorCSYmIHJtIC1mIHhnZW4tY2d0aCBcCisJJiYgZWNobyB0aW1lc3RhbXAgPiAk
KEBGKQorCisjICAgICAgICAgICAgICAtLWZoZWFkICIjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZp
bmVzLmg+XG5cbiIgCisKK0Rlcml2ZWRTb3VyY2VzL2dkb21lbnVtdHlwZXMuY3BwOiAkKGxpYmdk
b21faF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYgZ2xpYi1ta2VudW1z
IFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxjb25maWcuaD5cbiIgXAorCQkJLS1maGVhZCAiI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG4iIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIFwiJCh0b3Bf
YnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaFwiXG5cbiIgXAorCQkJ
LS1maGVhZCAiZXh0ZXJuIFwiQ1wiIHtcblxuIiBcCisJCQktLWZwcm9kICJcbi8qIGVudW1lcmF0
aW9ucyBmcm9tIFwiQGZpbGVuYW1lQFwiICovIiBcCisJCQktLXZoZWFkICJzdGF0aWMgY29uc3Qg
R0BUeXBlQFZhbHVlIF9AZW51bV9uYW1lQF92YWx1ZXNbXSA9IHsiIFwKKwkJCS0tdnByb2QgIiAg
ICB7IEBWQUxVRU5BTUVALCBcIkBWQUxVRU5BTUVAXCIsIFwiQHZhbHVlbmlja0BcIiB9LCIgXAor
CQkJLS12dGFpbCAiICAgIHsgMCwgTlVMTCwgTlVMTCB9XG59O1xuXG4iIFwKKwkJCS0tdnRhaWwg
IkdUeXBlIEBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpXG57XG4iIFwKKwkJCS0tdnRhaWwgIiAg
ICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7XG5cbiIgXAorCQkJLS12dGFpbCAiICAgIGlmICghdHlw
ZSlcbiIgXAorCQkJLS12dGFpbCAiICAgICAgICB0eXBlID0gZ19AdHlwZUBfcmVnaXN0ZXJfc3Rh
dGljKFwiQEVudW1OYW1lQFwiLCBfQGVudW1fbmFtZUBfdmFsdWVzKTtcblxuIiBcCisJCQktLXZ0
YWlsICIgICAgcmV0dXJuIHR5cGU7XG59XG5cbiIgXAorCQkJLS1mdGFpbCAifVxuIiBcCisJCSQo
bGliZ2RvbV9oX2FwaSkgfCBcCisJCXNlZCAncyx3ZWJfa2l0LGdkb20sJyBcCisJCSkgPiB4Z2Vu
LWNndGMgXAorCSYmIGNwIHhnZW4tY2d0YyAkQCBcCisJJiYgcm0gLWYgeGdlbi1jZ3RjCisKICMg
RU5EIFdFQktJVCBHVEsrCiAjCiAjIEZpbGVzIHRoYXQgd2lsbCBiZSBkaXN0cmlidXRlZApAQCAt
NDY1LDYgKzc1OCw4IEBACiBCVUlMVF9TT1VSQ0VTID0gXAogCSQoamF2YXNjcmlwdGNvcmVfYnVp
bHRfc291cmNlcykgXAogCSQoamF2YXNjcmlwdGNvcmVfYnVpbHRfbm9zb3VyY2VzKSBcCisJJChs
aWJnZG9tX2J1aWx0X3NvdXJjZXMpIFwKKwkkKGxpYmdkb21fYnVpbHRfbm9zb3VyY2VzKSBcCiAJ
JCh3ZWJjb3JlX2J1aWx0X3NvdXJjZXMpIFwKIAkkKHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzKSBc
CiAJJCh3ZWJraXRndGtfYnVpbHRfc291cmNlcykgXApJbmRleDogV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDM2NDU5
KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYsOCBAQAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50Ojpwb3N0UHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWROb3RpZmljYXRpb24oKQogeworICAgIGlm
ICghbV9mcmFtZSkgLyogYnVnIzIwNDAzIC0gaGFjayEgc2hvdWxkbid0IGJlIGhlcmUhICB3ZSd2
ZSBiZWVuIGRlbGV0ZWQhICovCisgICAgICAgIHJldHVybjsKICAgICBXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKICAgICBQYWdlKiBjb3JlUGFnZSA9
IGNvcmUod2ViVmlldyk7CiAKSW5kZXg6IFdlYktpdC9ndGsvR0RPTU9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvR0RPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0
ay9HRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5l
dD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2lmbmRlZiBfX0dET01PYmplY3RfaF9fCisjZGVmaW5lIF9fR0RPTU9iamVjdF9oX18KKwor
Y2xhc3MgR0RPTU9iamVjdCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+R0RPTU9iamVjdCgpIHt9
CisKKyAgICAvKiB0aGlzIGlzIGFuIGFic29sdXRlbHkgY3JpdGljYWwgZnVuY3Rpb24gd2hpY2gg
YWxsb3dzCisgICAgICogdGhlIHVzZSBvZiB0b0dET00oKSB0byBkZWNpZGUsIHRocm91Z2ggdHlw
ZWNhc3RpbmcKKyAgICAgKiB3aGljaCBnb2JqZWN0IHNob3VsZCBiZSByZXR1cm5lZC4gIHNlZSBH
RE9NQmluZGluZy5jcHAsCisgICAgICogR0RPTUh0bWxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3Bw
IGFuZCBvdGhlciBzaW1pbGFyCisgICAgICogZmlsZXMgZm9yIGV4YW1wbGVzLgorICAgICAqLwor
ICAgIHZpcnR1YWwgaW50IGdldEdvYmpUeXBlKCkgPSAwOworfTsKKworI2VuZGlmCkluZGV4OiBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCShyZXZpc2lvbiAzNjQ1OSkKKysrIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwxMSAr
MSwxMyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBIb2xnZXIgSGFucyBQZXRl
ciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxh
bHBAYXRva2VyLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AaW1lbmRpby5jb20+CiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KICAqIENvcHlyaWdodCAoQykgMjAw
OCBOdWFudGkgTHRkLgogICoKKyAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC0zMCwxOCAr
MzIsMjkgQEAKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAKICNpbmNsdWRlICJDU3RyaW5n
LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJGcmFt
ZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJHZG9tRE9NV2luZG93
LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisj
aW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIlByaXZh
dGVHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgIlRleHREb2N1bWVudC5oIgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2Fz
dC5oPgogCkBAIC00OSw2ICs2MiwxMiBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKERPTVdpbmRvdyogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYyk7
CisgICAgZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0KiBvYmopOworfQorCiBleHRlcm4g
IkMiIHsKIAogZW51bSB7CkBAIC01Nyw2ICs3Niw3IEBACiAgICAgTE9BRF9ET05FLAogICAgIFRJ
VExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAorICAgIEJST1dTRVJfRVZFTlQs
CiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2Miw2ICsxODIsMTcgQEAKICAgICAgICAgICAg
IEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBFX1NUUklORywgR19UWVBFX1NUUklO
Ryk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBnX3Np
Z25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mo
ZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFT
VCB8IEdfU0lHTkFMX0FDVElPTiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1NJR05B
TF9ERVRBSUxFRCksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg
ICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVB
TiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAgICAgR0RPTV9UWVBFX0VW
RU5ULCBHX1RZUEVfQk9PTEVBTik7CisKICAgICAvKgogICAgICAqIGltcGxlbWVudGF0aW9ucyBv
ZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTI5NCw2ICszMjUsOTIgQEAKIH0KIAogLyoq
CisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0OgorICogQGZyYW1lOiBh
ICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGFu
IFhNTEh0dHBSZXF1ZXN0CisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21YTUxIdHRwUmVxdWVz
dAorICovCitHZG9tWE1MSHR0cFJlcXVlc3QqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3htbF9odHRw
X3JlcXVlc3QoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2ViS2l0V2Vi
RnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1l
ID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisgICAgcmV0dXJuIEdET01f
WE1MX0hUVFBfUkVRVUVTVChXZWJDb3JlOjp0b0dET00oWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZShj
b3JlRnJhbWUtPmRvY3VtZW50KCkpLmdldCgpKSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9m
cmFtZV9nZXRfZG9tX3dpbmRvdzoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisg
KiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERPTVdpbmRvdworICoKKyAqIFJldHVy
biB2YWx1ZTogYSBHZG9tRE9NV2luZG93CisgKi8KK0dkb21ET01XaW5kb3cqIHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X2RvbV93aW5kb3coV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAg
IC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFt
ZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisgICAg
UGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbiA9IGNvcmVGcmFtZS0+ZG9tV2luZG93KCk7CisgICAg
cmV0dXJuIEdET01fRE9NX1dJTkRPVyhXZWJDb3JlOjp0b0dET00od2luLmdldCgpKSk7Cit9CisK
Ky8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50OgorICogQGZyYW1lOiBh
ICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGEg
RG9jdW1lbnQgCisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21Eb2N1bWVudAorICovCitHZG9t
RG9jdW1lbnQqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJGcmFt
ZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFN
RShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBm
cmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBB
U1NFUlQoY29yZUZyYW1lKTsKKyAgICByZXR1cm4gR0RPTV9ET0NVTUVOVChXZWJDb3JlOjp0b0dE
T00oY29yZUZyYW1lLT5kb2N1bWVudCgpKSk7Cit9CisKKy8qIFhYWCBUT0RPOiBtYWtlIHRoaXMg
bm90IHRha2UgZnJhbWUqIGFzIGFuIGFyZ3VtZW50LAorICogYW5kIG1ha2UgaXQgcmV0dXJuIGEg
R2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSSBnYm9v
bGVhbgorYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2YsIEZyYW1l
ICpmcmFtZSwgY29uc3QgY2hhciAqbmFtZSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFt
ZV9hZGRfZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgor
ICogYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZnJhbWUncyBkb2N1bWVudAorICoKKyAq
IFJldHVybiB2YWx1ZTogdGhlIG5hbWUgb2YgQGZyYW1lCisgKi8KK2dib29sZWFuIHdlYmtpdF93
ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBldmVu
dF90eXBlKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUo
ZnJhbWUpLCBGQUxTRSk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZy
YW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFT
U0VSVChjb3JlRnJhbWUpOworCisgICAgcmV0dXJuIGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIo
ZnJhbWUsIGNvcmVGcmFtZSwgZXZlbnRfdHlwZSk7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl9m
cmFtZV9nZXRfbmFtZToKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKICAqCkluZGV4OiBX
ZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQv
Z3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0
b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBFdmVudExpc3RlbmVyTm9kZV9oCisjZGVmaW5l
IEV2ZW50TGlzdGVuZXJOb2RlX2gKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0ZGVmaW5lcy5oPgorCisKKyNpbmNsdWRlICJnZG9tL0dkb21FdmVudFRhcmdldE5v
ZGUuaCIKKworLyogVE9ETzogcmV0dXJuIHRoZSBhY3R1YWwgZXZlbnQgbGlzdGVuZXIgY3JlYXRl
ZCwgd2hpY2ggcmVxdWlyZXMKKyAqIGEgZ2xpYiB3cmFwcGVyIG9iamVjdCB0byBiZSBjcmVhdGVk
LgorICogVE9ETzogcHJvdmlkZSBhICdyZW1vdmVfZXZlbnRfbGlzdGVuZXInIHdoaWNoIHRha2Vz
IHRoYXQgZ2xpYgorICogb2JqZWN0IGFzIGFuIGFyZ3VtZW50ICovCitleHRlcm4gIkMiIHsKK1dF
QktJVF9BUEkKK2dib29sZWFuIGFkZF9ldmVudF9saXN0ZW5lcihHZG9tRXZlbnRUYXJnZXROb2Rl
ICp3ZiwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v
bGVhbiB1c2VDYXB0dXJlKTsKK30KKworI2VuZGlmIC8qRXZlbnRMaXN0ZW5lck5vZGVfaCovCklu
ZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDM2NDU5KQorKysgV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRo
ZXIKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDkgQEAKIAogI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmty
ZXF1ZXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxIdHRwUmVxdWVzdC5oPgog
CiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYxLDYgKzY1LDE1IEBACiBXRUJLSVRfQVBJIFdlYktpdFdl
YkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIEdkb21YTUxIdHRwUmVxdWVzdCAq
Cit3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJG
cmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21ET01XaW5kb3cgKgord2Via2l0
X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZy
YW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRG9jdW1lbnQgKgord2Via2l0X3dlYl9mcmFtZV9nZXRf
ZG9tX2RvY3VtZW50ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCiBXRUJL
SVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcgICAg
ICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKQEAgLTkzLDYgKzEwNiwxMCBAQAog
V0VCS0lUX0FQSSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2dsb2Jh
bF9jb250ZXh0IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFt
ZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIgICAgICAgICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKSW5kZXg6IFdlYktp
dC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQv
Z3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEV2ZW50TGlzdGVuZXJXaW5kb3dfaAorI2Rl
ZmluZSBFdmVudExpc3RlbmVyV2luZG93X2gKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKK2V4dGVybiAiQyIgeworLyogVE9ETzogbWFr
ZSBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0byBiZSByZXR1cm5lZCBoZXJlICovCit9CisK
KyNlbmRpZiAvKkV2ZW50TGlzdGVuZXJXaW5kb3dfaCovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJldmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZXZlbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViZXZlbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIK
KyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiU3RyaW5nSW1wbC5oIgorCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKworCisjaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXZlbnRM
aXN0ZW5lci5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlhNTEh0dHBS
ZXF1ZXN0LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyWE1M
SHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyV2luZG93LmgiCisjaW5jbHVk
ZSAiRXZlbnRMaXN0ZW5lck5vZGUuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNp
bmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAi
U3RyaW5nSW1wbC5oIgorI2luY2x1ZGUgIkdkb21FdmVudC5oIgorI2luY2x1ZGUgIkdET01PYmpl
Y3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZh
dGVHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0Lmgi
CisjaW5jbHVkZSAiUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIgorCisKKyNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgorCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBkb2MpOworICAgIGdwb2ludGVy
IHRvR0RPTShFdmVudFRhcmdldE5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShYTUxI
dHRwUmVxdWVzdCogbm9kZSk7Cit9CisKKworY2xhc3MgWE1MSHR0cFJlcXVlc3RFdmVudExpc3Rl
bmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21YTUxIdHRwUmVxdWVz
dCogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0
ZW5lcih3ZikpOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCB1
c2VDYXB0dXJlKTsKKworICAgIHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1f
dHlwZSA9IGdfc3RyZHVwKGV2dHlwZSk7IH0KKyAgICBwcml2YXRlOgorICAgIGNoYXIgKm1fdHlw
ZTsKKyAgICBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0KiB3
ZikKKyAgICAgICAgICAgOiBtX3dmKHdmKQorICAgICAgICAgICAsIG1fdHlwZShOVUxMKQorICAg
IHt9CisgICAgflhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcigpCisgICAgeworICAgICAgICBp
ZiAobV90eXBlKQorICAgICAgICAgICAgZ19mcmVlKG1fdHlwZSk7CisgICAgfQorICAgIEdkb21Y
TUxIdHRwUmVxdWVzdCogbV93ZjsKK307CisKK3ZvaWQgWE1MSHR0cFJlcXVlc3RFdmVudExpc3Rl
bmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgdXNlQ2FwdHVyZSkKK3sKKyAgICBn
Ym9vbGVhbiByZXR2YWw7CisgICAgY2hhciAqZXZuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCJicm93
c2VyLWV2ZW50OjolcyIsIG1fdHlwZSk7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5U
KFdlYkNvcmU6OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dm
LCBldm5hbWUsIHdldiwgdXNlQ2FwdHVyZSwgJnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7
Cit9CisKK2NsYXNzIE5vZGVFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vZGVFdmVudExpc3RlbmVyPiBjcmVhdGUo
R2RvbUV2ZW50VGFyZ2V0Tm9kZSogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5vZGVF
dmVudExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQq
LCBib29sIHVzZUNhcHR1cmUpOworCisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFyICpldnR5
cGUpIHsgbV90eXBlID0gZ19zdHJkdXAoZXZ0eXBlKTsgfQorcHJpdmF0ZToKKyAgICBjaGFyICpt
X3R5cGU7CisgICAgTm9kZUV2ZW50TGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogd2YpCisg
ICAgICAgICAgICA6IG1fd2Yod2YpCisgICAgICAgICAgICAsIG1fdHlwZShOVUxMKQorICAgIHt9
CisgICAgfk5vZGVFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUpCisg
ICAgICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9k
ZSogbV93ZjsKK307CisKK3ZvaWQgTm9kZUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50
KiBldmVudCwgYm9vbCB1c2VDYXB0dXJlKQoreworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBj
aGFyICpldm5hbWUgPSBnX3N0cmR1cF9wcmludGYoImJyb3dzZXItZXZlbnQ6OiVzIiwgbV90eXBl
KTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50
KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwgd2V2LCB1c2VDYXB0
dXJlLCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30KKworY2xhc3MgV2luZG93RXZl
bnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBjcmVhdGUoV2ViS2l0V2ViRnJhbWUqIHdm
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXaW5kb3dFdmVudExpc3RlbmVy
KHdmKSk7IAorICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29s
IGlzV2luZG93RXZlbnQpOworICAgIHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7
IG1fdHlwZSA9IGdfc3RyZHVwKGV2dHlwZSk7IH0KK3ByaXZhdGU6CisgICAgY2hhciAqbV90eXBl
OworICAgIFdpbmRvd0V2ZW50TGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmKQorICAgICAgICAg
ICA6IG1fd2Yod2YpCisgICAgICAgICAgICwgbV90eXBlKE5VTEwpCisgICAge30KKyAgICB+V2lu
ZG93RXZlbnRMaXN0ZW5lcigpCisgICAgeworICAgICAgICBpZiAobV90eXBlKQorICAgICAgICAg
ICAgZ19mcmVlKG1fdHlwZSk7CisgICAgfQorICAgIFdlYktpdFdlYkZyYW1lKiBtX3dmOworfTsK
Kwordm9pZCBXaW5kb3dFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJv
b2wgaXNXaW5kb3dFdmVudCkKK3sKKyAgICBjaGFyICpldm5hbWUgPSBnX3N0cmR1cF9wcmludGYo
ImJyb3dzZXItZXZlbnQ6OiVzIiwgbV90eXBlKTsKKyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAg
R2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYkNvcmU6OnRvR0RPTShldmVudCkpOworICAg
IGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5hbWUsIHdldiwgaXNXaW5kb3dFdmVudCwg
JnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9CisKK2V4dGVybiAiQyIgeworCitnYm9v
bGVhbiBhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9saXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVl
c3QgKndmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7
CisgICAgV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3QgKnJlcSA9IGdkb21feG1sX2h0dHBfcmVxdWVz
dF9nZXRfcHJpdmF0ZSh3Zik7CisgICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1cm4gRkFMU0U7
CisgICAgaWYgKCFyZXEpCisgICAgICAgIHJldHVybiBGQUxTRTsKKworICAgIGlmIChzdHJjbXAo
bmFtZSwgIm9ucmVhZHlzdGF0ZWNoYW5nZSIpID09IDApCisgICAgeworICAgICAgICBSZWZQdHI8
WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyPiBsaXN0ZW5lcjsKKyAgICAgICAgbGlzdGVuZXIg
PSBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgICAgIGxpc3Rl
bmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICAgICAgcmVxLT5zZXRPblJlYWR5U3RhdGVDaGFuZ2VM
aXN0ZW5lcihsaXN0ZW5lcik7CisgICAgICAgIHJldHVybiBUUlVFOworICAgIH0KKyAgICByZXR1
cm4gRkFMU0U7Cit9IAorCitnYm9vbGVhbiBhZGRfZXZlbnRfbGlzdGVuZXIoR2RvbUV2ZW50VGFy
Z2V0Tm9kZSAqd2YsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBXZWJDb3JlOjpOb2RlICpub2RlID0gZ2Rv
bV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSh3Zik7CisgICAgaWYgKCFub2RlIHx8ICFu
b2RlLT5pc0V2ZW50VGFyZ2V0Tm9kZSgpKQorICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgV2Vi
Q29yZTo6RXZlbnRUYXJnZXROb2RlICogZXRuID0gKHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50
VGFyZ2V0Tm9kZSAqPihub2RlKSktPnRvTm9kZSgpOworICAgIGlmICghZXRuKQorICAgICAgICBy
ZXR1cm4gRkFMU0U7CisKKyAgICBSZWZQdHI8Tm9kZUV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0g
Tm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgbGlzdGVuZXItPnNldF90eXBlKG5h
bWUpOworICAgIGV0bi0+YWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5lciwgdXNlQ2FwdHVy
ZSk7CisKKyAgICByZXR1cm4gVFJVRTsKKworfSAKKworZ2Jvb2xlYW4gYWRkX3dpbmRvd19ldmVu
dF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSAqd2YsIEZyYW1lICpmcmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBEb2N1bWVu
dCogZG9jID0gZnJhbWUtPmRvY3VtZW50KCk7CisKKyAgICBSZWZQdHI8V2luZG93RXZlbnRMaXN0
ZW5lcj4gbGlzdGVuZXIgPSBXaW5kb3dFdmVudExpc3RlbmVyOjpjcmVhdGUod2YpOworICAgIGxp
c3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICBkb2MtPmFkZFdpbmRvd0V2ZW50TGlzdGVuZXIo
bmFtZSwgbGlzdGVuZXIsIHRydWUpOworCisgICAgcmV0dXJuIFRSVUU7CisKK30gCisKK30gLyog
ZXh0ZXJuIEMgKi8KClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmV2ZW50LmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWVyZ2VpbmZvCgpJbmRleDogV2Vi
S2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgJKHJldmlz
aW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3Qu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYg
RXZlbnRMaXN0ZW5lclhtbEh0dHBSZXF1ZXN0X2gKKyNkZWZpbmUgRXZlbnRMaXN0ZW5lclhtbEh0
dHBSZXF1ZXN0X2gKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0
ZGVmaW5lcy5oPgorCisKKyNpbmNsdWRlICJnZG9tL0dkb21YTUxIdHRwUmVxdWVzdC5oIgorCisv
KiBUT0RPOiByZXR1cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCBy
ZXF1aXJlcworICogYSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RP
OiBwcm92aWRlIGEgJ3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGli
CisgKiBvYmplY3QgYXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQor
Z2Jvb2xlYW4gYWRkX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIoR2RvbVhNTEh0dHBS
ZXF1ZXN0ICp3ZiwKKyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpOworfQorCisjZW5k
aWYgLypFdmVudExpc3RlbmVyWG1sSHR0cFJlcXVlc3RfaCovCkluZGV4OiBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRkZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZGVmaW5lcy5oCShyZXZpc2lvbiAzNjQ1OSkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dGRlZmluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOSBAQAogCiBHX0JFR0lOX0RF
Q0xTCiAKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRFdmVudCBXZWJLaXRFdmVudDsKK3R5cGVkZWYg
c3RydWN0IF9XZWJLaXRFdmVudENsYXNzIFdlYktpdEV2ZW50Q2xhc3M7CisKIHR5cGVkZWYgc3Ry
dWN0IF9XZWJLaXROZXR3b3JrUmVxdWVzdCBXZWJLaXROZXR3b3JrUmVxdWVzdDsKIHR5cGVkZWYg
c3RydWN0IF9XZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzIFdlYktpdE5ldHdvcmtSZXF1ZXN0Q2xh
c3M7CiAKSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVJbnRHZG9t
RXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2Ns
Lm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKwor
I2lmbmRlZiBQcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZV9oCisjZGVmaW5lIFByaXZhdGVJ
bnRHZG9tRXZlbnRUYXJnZXROb2RlX2gKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21Ob2RlLmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdE
T01FdmVudFRhcmdldE5vZGUgOiBwdWJsaWMgR0RPTU5vZGUgeworCitwdWJsaWM6CisgICAgR0RP
TUV2ZW50VGFyZ2V0Tm9kZShQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGltcGwpIDogR0RPTU5v
ZGUoaW1wbCkge30KKyAgICBpbnQgZ2V0X2dvYmpfdHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV9F
VkVOVF9UQVJHRVRfTk9ERTsgfQorfTsKKworCitHX0VORF9ERUNMUworI2VuZGlmCisKClByb3Bl
cnR5IGNoYW5nZXMgb246IFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptZXJnZWluZm8KCkluZGV4OiBXZWJLaXQvZ3Rr
L2dkb20vR2RvbURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9t
RE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVj
dC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBcHBsZSBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBHZG9tRE9NT2JqZWN0X2gKKyNkZWZpbmUgR2Rv
bURPTU9iamVjdF9oCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQv
d2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9t
RE9NT2JqZWN0IEdkb21ET01PYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdENs
YXNzIEdkb21ET01PYmplY3RDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAg
ICAgICAgICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9ET01f
T0JKRUNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiks
IEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0KSkKKyNkZWZpbmUgR0RPTV9ET01f
T0JKRUNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwg
IEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorI2RlZmluZSBHRE9N
X0lTX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgo
b2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1Rf
Q0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBF
X0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX0NMQVNTKG9iaikgIChH
X1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdk
b21ET01PYmplY3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0
ZSBHZG9tRE9NT2JqZWN0UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0IHsKKyAgICBH
T2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21ET01PYmplY3RQcml2YXRlICpwcml2
OworfTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBw
YXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9tX2RvbV9vYmplY3RfZ2V0
X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2Rv
bV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYg
LyogR2RvbURPTU9iamVjdF9oICovCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9ndGsv
Z2RvbS9HZG9tRE9NT2JqZWN0LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1lcmdlaW5mbwoKSW5k
ZXg6IFdlYktpdC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9n
ZG9tL0dTdHJpbmdDb252ZXJ0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworCisjaWZuZGVmIEdTdHJpbmdDb252ZXJ0X2gKKyNkZWZpbmUgR1N0cmluZ0NvbnZl
cnRfaAorCisvKiBjb252ZW5pZW5jZSBjKysgY2xhc3MgZm9yIGNvbnZlcnRpbmcgdmFyaW91cyBk
aWZmZXJlbnQgd2Via2l0CisgKiBzdHJpbmcgdHlwZXMgaW50byBhIHV0ZjggZ2xpYiBzdHJpbmcu
CisgKi8KKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIK
KyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRl
ICJ1c3RyaW5nLmgiCisKK2lubGluZSBnY2hhciAqIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OlN0
cmluZyBjb25zdCYgcykgeyByZXR1cm4gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQoraW5s
aW5lIGdjaGFyICogR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6S1VSTCBjb25zdCYgcykgeyByZXR1
cm4gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQoraW5saW5lIGdjaGFyICog
R1N0cmluZ0NvbnZlcnQoY29uc3QgSlNDOjpVU3RyaW5nICYgcykgeyByZXR1cm4gZ19zdHJkdXAo
cy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KK2lubGluZSBnY2hhciAqIEdTdHJpbmdDb252ZXJ0
KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IHJldHVybiBnX3N0cmR1cChzLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOyB9CisKKyNlbmRpZiAvKiBHU3RyaW5nQ29udmVydF9oKi8KSW5k
ZXg6IFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgUHJpdmF0ZUdkb21FdmVudFRhcmdldE5v
ZGVfaAorI2RlZmluZSBQcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZV9oCisjaW5jbHVkZSAiZ2xp
Yi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVHZG9tTm9kZS5oIgorY2xhc3MgV2Vi
Q29yZTo6Tm9kZTsKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2
ZW50VGFyZ2V0Tm9kZTsKKworV0VCS0lUX0FQSSBXZWJDb3JlOjpOb2RlICoKK2dkb21fZXZlbnRf
dGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCk7CisK
KyNlbmRpZgorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWVyZ2VpbmZvCgpJbmRl
eDogV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDAp
CisrKyBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJL
aXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46bWVyZ2VpbmZvCgpJbmRleDogV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShy
ZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QXBwbGUgSW5jLgorICovCisKKyNpZm5kZWYgR2RvbUV2ZW50VGFyZ2V0Tm9kZV9oCisjZGVmaW5l
IEdkb21FdmVudFRhcmdldE5vZGVfaAorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0
cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVDbGFzcyBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3M7
CisKKyNkZWZpbmUgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFICAgICAgICAgICAgKGdkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRf
Tk9ERShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBH
RE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGUpKQorI2RlZmlu
ZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NM
QVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50
VGFyZ2V0Tm9kZUNsYXNzKSkKKyNkZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9ERShvYmop
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRVZF
TlRfVEFSR0VUX05PREUpKQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNT
KGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVO
VF9UQVJHRVRfTk9ERSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX0NMQVNT
KG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0VWRU5U
X1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVj
dCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGU7
CisKKyNpbmNsdWRlICJnZG9tL0dkb21Ob2RlLmgiCisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0
Tm9kZSB7CisgICAgR2RvbU5vZGUgcGFyZW50X2luc3RhbmNlOworCisgICAgR2RvbUV2ZW50VGFy
Z2V0Tm9kZVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVD
bGFzcyB7CisgICAgR2RvbU5vZGVDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJ
IEdUeXBlCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF90eXBlICh2b2lkKTsKKworV0VCS0lU
X0FQSSB2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUg
KEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyog
ZG9tRXZlbnRUYXJnZXROb2RlX2ggKi8KKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0L2d0
ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWVyZ2Vp
bmZvCgpJbmRleDogV2ViS2l0L2d0ay9nZG9tL2dkb20uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL2dkb20vZ2RvbS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL2dkb20uaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNjAgQEAKKyNpbmNsdWRlIDxnZG9tL0dkb21FdmVudFRh
cmdldE5vZGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01PYmplY3QuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21BdHRyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQmFySW5mby5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUNhbnZhc0dyYWRpZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFzUGF0
dGVybi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNhbnZhc1BpeGVsQXJyYXkuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21DREFUQVNlY3Rpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DaGFyYWN0ZXJEYXRhLmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tQ2xpcGJvYXJkLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ29tbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNvbnNvbGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21D
b3VudGVyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTQ2hhcnNldFJ1bGUuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21DU1NGb250RmFjZVJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NJbXBv
cnRSdWxlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTTWVkaWFSdWxlLmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tQ1NTUGFnZVJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NQcmltaXRpdmVW
YWx1ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1J1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21DU1NSdWxlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24u
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NTdHlsZVJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21DU1NTdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTVmFsdWUuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21DU1NWYWx1ZUxpc3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NWYXJp
YWJsZXNEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21EYXRhYmFzZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURv
Y3VtZW50RnJhZ21lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Eb2N1bWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbURvY3VtZW50VHlwZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTUFwcGxp
Y2F0aW9uQ2FjaGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01Db3JlRXhjZXB0aW9uLmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tRE9NSW1wbGVtZW50YXRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21ET01QYXJzZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01TZWxlY3Rpb24uaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tRW50aXR5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRW50aXR5
UmVmZXJlbmNlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRFeGNlcHRpb24uaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21FdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUZpbGUuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21GaWxlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhpc3RvcnkuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxBcHBsZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEFyZWFFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxC
bG9ja3F1b3RlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxCb2R5RWxlbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxCUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21IVE1MQnV0dG9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxDYW52YXNFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTENvbGxlY3Rpb24uaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxE
aXZFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTERMaXN0RWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxEb2N1bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxF
bGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21I
VE1MRm9udEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRm9ybUVsZW1lbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIZWFkRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUhUTUxIUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSHRt
bEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21I
VE1MSW5wdXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxMZWdlbmRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExJRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxNYXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1hcnF1
ZWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1lbnVFbGVtZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRN
TE1vZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21IVE1MT3B0R3JvdXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE9wdGlvbkVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxQYXJhbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MUHJlRWxlbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxTZWxl
Y3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGFi
bGVDb2xFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUltYWdlRGF0YS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21LZXlib2FyZEV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tTG9jYXRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NZWRpYUxpc3QuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21NZXNzYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NaW1lVHlwZUFy
cmF5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTWltZVR5cGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21Nb3VzZUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTXV0YXRpb25FdmVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbU5hbWVkTm9kZU1hcC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5hdmln
YXRvci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vZGVGaWx0ZXIuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21Ob2RlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tTm9kZUxpc3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Ob3RhdGlvbi5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbU92ZXJmbG93RXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Q
bHVnaW5BcnJheS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVBsdWdpbi5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVByb2dy
ZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21SYW5nZUV4Y2VwdGlvbi5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbVJhbmdlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUmVjdC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbVNjcmVlbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVNRTEVycm9yLmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tU1FMUmVzdWx0U2V0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FM
UmVzdWx0U2V0Um93TGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVNRTFRyYW5zYWN0aW9uLmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tU3RvcmFnZUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
U3RvcmFnZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVN0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVRleHRFdmVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbVRleHQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21UcmVlV2Fs
a2VyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVUlFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bVdlYktpdEFuaW1hdGlvbkV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XaGVlbEV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
WE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxIdHRwUmVx
dWVzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tWE1MU2VyaWFsaXplci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQYXRoRXZhbHVh
dG9yLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21YUGF0aEV4cHJlc3Npb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YUGF0aE5TUmVz
b2x2ZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YUGF0aFJlc3VsdC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbVhTTFRQcm9jZXNzb3IuaD4KSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlR2Rv
bURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9Qcml2YXRlR2RvbURP
TU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVHZG9tRE9N
T2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBQ
cml2YXRlR2RvbURPTU9iamVjdF9oCisjZGVmaW5lIFByaXZhdGVHZG9tRE9NT2JqZWN0X2gKKyNp
bmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vR2RvbURPTU9iamVjdC5oIgor
R19CRUdJTl9ERUNMUworCitjbGFzcyBHRE9NT2JqZWN0OworV0VCS0lUX0FQSSBHRE9NT2JqZWN0
KgorZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QpOwor
CitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHZG9tRE9NT2Jq
ZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0KiBpdGVtKTsKKworR19FTkRfREVDTFMKKyNlbmRpZgor
CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUdkb21ET01PYmpl
Y3QuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWVyZ2VpbmZvCgpJbmRleDogV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2
NDU5KQorKysgV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw0
OCBAQAogCiAgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgogCisyMDA4LTA5LTEy
ICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0VzdGlt
YXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik6CisgICAgICAgICogd2Via2l0L0V2ZW50TGlzdGVuZXJO
b2RlLmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC9FdmVudExpc3RlbmVyV2luZG93Lmg6IEFk
ZGVkLgorICAgICAgICAqIHdlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaDogQWRk
ZWQuCisgICAgICAgICogd2Via2l0L2dkb20uaDogQWRkZWQuICBUaGlzIGZpbGUgcHVsbHMgaW4g
YWxsIG9mIHRoZSBnZG9tIGdsaWIgaGVhZGVycy4gIGl0J3MgdGhlcmUgZm9yIHBlb3BsZSB3aG8g
d2FudCB0byBiZSBsYXp5IGFuZCBub3QgaGF2ZSB0byAjaW5jbHVkZSAzMDAgZmlsZXMuCisgICAg
ICAgICogd2Via2l0L3dlYmtpdGRlZmluZXMuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZXZl
bnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVu
dF9maW5hbGl6ZSk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRf
Y2xhc3NfaW5pdCk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRf
aW5pdCk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfbmV3KToK
KyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9nZXRfZXZlbnRfdHlw
ZSk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfY2FuY2VsX2J1
YmJsZSk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfcHJldmVu
dF9kZWZhdWx0KToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9z
dG9wX3Byb3BhZ2F0aW9uKToKKyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6
Y3JlYXRlKToKKyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6c2V0X3R5cGUp
OgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpYTUxIdHRwUmVxdWVzdEV2
ZW50TGlzdGVuZXIpOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjp+WE1M
SHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRM
aXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0
ZSk6CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6c2V0X3R5cGUpOgorICAgICAgICAoTm9k
ZUV2ZW50TGlzdGVuZXI6Ok5vZGVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKE5vZGVFdmVudExp
c3RlbmVyOjp+Tm9kZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6
OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVyOjpzZXRfdHlwZSk6CisgICAgICAgIChXaW5kb3dF
dmVudExpc3RlbmVyOjpXaW5kb3dFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdpbmRvd0V2ZW50
TGlzdGVuZXI6On5XaW5kb3dFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlz
dGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKGFkZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50
X2xpc3RlbmVyKToKKyAgICAgICAgKGFkZF9ldmVudF9saXN0ZW5lcik6CisgICAgICAgIChhZGRf
d2luZG93X2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZXZlbnQuaDog
QWRkZWQuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDogYWRkZWQgYnJvd3Nl
ci1ldmVudCwgc3VwcG9ydCBmb3IgWE1MSHR0cFJlcXVlc3QsIGdldHRpbmcgRE9NIFdpbmRvdywg
RE9NIERvY3VtZW50LCBhbmQgV2luZG93IGV2ZW50IGxpc3RlbmVyLgorICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJmcmFtZS5oOgorCiAyMDA4LTA5LTEwICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRp
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCkluZGV4OiBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDM2NDU5KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAt
MiwxMyArMiwxOSBAQAogV2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQogCiBGRUFUVVJFX0RF
RklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVfREVGSU5F
U19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTIDo9CiBIVE1MX0ZFQVRV
UkVTIDo9CiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTIDo9ICQoV2ViQ29yZSkvY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW4KIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTIDo9ICQoV2ViQ29y
ZSkvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KIAorbGliZ2RvbV9jcHBmbGFncyArPSBcCisJLUkk
KHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJp
dmVkU291cmNlcworCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQv
Z3RrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRp
bmdzL2pzIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZSBcCkBAIC0yNyw2ICszMyw3IEBA
CiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20gXAogCS1JJChz
cmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogCS1JJChzcmNkaXIpL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wIFwKIAktSSQoc3JjZGlyKS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZiBcCkBAIC0zNjcsNiArMzc0LDQ0NiBAQAogCURl
cml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaAog
CitsaWJnZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUF0
dHIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21BdHRyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21CYXJJ
bmZvLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNT
U0NoYXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVs
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21D
U1NNZWRpYVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1bGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NQcmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1By
aW1pdGl2ZVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVs
ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNT
U1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZVNoZWV0
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NT
VmFsdWVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWVMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ2FudmFzR3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52
YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQYXR0ZXJuLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2hh
cmFjdGVyRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNoYXJhY3RlckRhdGEu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNv
bW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21tZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21Db25zb2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvdW50ZXIuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db3VudGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbURPTUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01D
b3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUltcGxlbWVudGF0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NSW1wbGVtZW50YXRpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVNl
bGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVNlbGVjdGlvbi5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21ET01XaW5kb3cuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21Eb2N1bWVudEZyYWdtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21E
b2N1bWVudFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudFR5cGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUVudGl0eVJlZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUV2ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
RXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlTGlzdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEFwcGxldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFy
ZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCUkVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MQlJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxCYXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUZvbnRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MRExpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXJlY3Rv
cnlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZp
ZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
RnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFtZVNldEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MSFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxIZWFkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElt
YWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbWFnZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElucHV0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxMSUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTExpbmtFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxNZW51RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
T0xpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9MaXN0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxPcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MUHJlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUXVvdGVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TFN0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTdHlsZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxUYWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJs
ZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVSb3dF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxV
TGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSGlzdG9yeS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRh
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUtleWJvYXJkRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTG9jYXRpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bU1pbWVUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1pbWVUeXBlQXJyYXkuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU11dGF0aW9uRXZlbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NdXRhdGlvbkV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYXZpZ2F0
b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5v
ZGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJh
dG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Tm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21PdmVyZmxvd0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Q
bHVnaW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW4uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJvZ3Jlc3NFdmVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5n
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZUV4Y2VwdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SZWN0LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVRleHRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0TWV0cmljcy5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRNZXRyaWNzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UcmVlV2Fsa2Vy
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21VSUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktp
dEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5p
bWF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
WE1MSHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVx
dWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVhNTFNlcmlhbGl6ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
WFNMVFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhTTFRQcm9jZXNz
b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUF0dHIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUJhckluZm8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZh
dGVHZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NT
SW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTTWVkaWFS
dWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NQYWdlUnVsZS5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21DU1NTdHlsZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRl
R2RvbUNTU1N0eWxlU2hlZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNT
U1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NWYWx1ZUxpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNSdWxl
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DYW52YXNHcmFkaWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DbGlwYm9hcmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUNvbW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bUNvbnNvbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNvdW50ZXIuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21ET01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L1ByaXZhdGVHZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRG9jdW1lbnRG
cmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRG9jdW1lbnRUeXBl
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21FbnRpdHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUVudGl0eVJlZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50
RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21GaWxlLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEFuY2hvckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21IVE1MQXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUhUTUxCUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUhUTUxCYXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21IVE1MQm9keUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21I
VE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRN
TENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxETGlz
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxEaXJlY3Rv
cnlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MRGl2RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTERvY3VtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MRm9ybUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbUhUTUxIUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tSFRNTEhlYWRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21IVE1MSHRtbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhU
TUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1M
SW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSW5w
dXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSXNJbmRl
eEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxMSUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxMYWJlbEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxMZWdlbmRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MTWFycXVlZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L1ByaXZhdGVHZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUhUTUxPcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21IVE1MUGFyYW1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
SFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRN
TFNjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxT
ZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MU3R5
bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGFibGVD
YXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFRh
YmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxU
YWJsZUNvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxU
YWJsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJs
ZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1M
VGV4dEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1M
VGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVUxp
c3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IaXN0b3J5Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21JbWFnZURhdGEuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUtleWJvYXJkRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU1l
c3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tTWltZVR5cGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU11dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tTmF2aWdhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21O
b2RlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Ob2RlRmlsdGVyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5vZGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21Ob3RhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tUGx1
Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21QbHVnaW5BcnJheS5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Qcm9ncmVzc0V2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbVJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNjcmVl
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tU3R5bGVTaGVldC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
VGV4dE1ldHJpY3MuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVRyZWVXYWxr
ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVVJRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21XaGVlbEV2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vUHJpdmF0ZUdkb21YU0xUUHJvY2Vzc29yLmggIFwKKwlXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCAKKwogSURMX0JJTkRJTkdT
ICs9ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgXAogCVdlYkNvcmUvY3NzL0NTU0NoYXJz
ZXRSdWxlLmlkbCBcCkBAIC01MTcsNiArOTY0LDE5IEBACiAJV2ViQ29yZS94bWwvWE1MU2VyaWFs
aXplci5pZGwgXAogCVdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAKK2xpYmdkb21fc291
cmNlcyArPSBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmggXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgKKworCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMva2pzL0FjdGl2YXRpb24uaCBcCiAJV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy9ranMvQXJnTGlzdC5oIFwKQEAgLTIwNDcsMTAgKzI1MDcsMTQgQEAK
ICMgLS0tLQogaWYgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJ
TkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFU
VVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAog
d2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKLQlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0
aW9uQ2FjaGUuY3BwCisJRGVyaXZlZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAK
IAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21E
T01BcHBsaWNhdGlvbkNhY2hlLmNwcAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsCiAKQEAgLTIwOTEsNiArMjU1NSw3
IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9EQVRBQkFTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX0RBVEFCQVNFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9E
QVRBQkFTRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
SlNEYXRhYmFzZS5jcHAgXApAQCAtMjEwNCw2ICsyNTY5LDIzIEBACiAJRGVyaXZlZFNvdXJjZXMv
SlNTUUxUcmFuc2FjdGlvbi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24u
aAogCitsaWJnZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bURhdGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRGF0YWJhc2UuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRT
ZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
UUxUcmFuc2FjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRGF0YWJh
c2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNRTEVycm9yLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21TUUxSZXN1bHRTZXQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNRTFRyYW5zYWN0aW9uLmgKKwogSURMX0JJTkRJTkdTICs9
IFwKIAlXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU1FM
RXJyb3IuaWRsIFwKQEAgLTIxNzYsNiArMjY1OCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9ET01f
U1RPUkFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RPTV9TVE9SQUdF
PTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCiAKIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmNwcCBcCkBA
IC0yMTgzLDYgKzI2NjYsMTQgQEAKIAlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmgKIAorbGliZ2RvbV9idWlsdF9zb3Vy
Y2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
dG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVN0b3JhZ2VFdmVudC5oCisKIElETF9CSU5ESU5HUyAr
PSBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZUV2ZW50LmlkbApAQCAtMjI0MSw2ICsyNzMyLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJ
REVPCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVS
RV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFC
TEVfVklERU89MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMjYz
LDggKzI3NTUsMzEgQEAKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9KU1RpbWVSYW5nZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJh
Y2suY3BwIFwKLQlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJj
ZXMvSlNWb2lkQ2FsbGJhY2suaCAKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXVkaW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1l
ZGlhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU291cmNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZWRpYUVy
cm9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVZvaWRDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVZvaWRDYWxs
YmFjay5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEF1ZGlvRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE1lZGlhRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFNvdXJjZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVRpbWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbVZvaWRDYWxsYmFjay5oCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29y
ZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRsIFwKIAlXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5pZGwgXApAQCAtMjMwNyw2ICsyODIyLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1hQQVRI
CiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFBBVEg9MQorRkVBVFVSRV9E
RUZJTkVTX0dET00gKz0gRU5BQkxFX1hQQVRIPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVO
QUJMRV9YUEFUSD0xCiAKQEAgLTIzMjIsOCArMjgzOCwyNSBAQAogCURlcml2ZWRTb3VyY2VzL0pT
WFBhdGhSZXN1bHQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVzdWx0LmggXAogCURl
cml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hQYXRoR3Jh
bW1hci5oCisJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmggCiAKK2xpYmdkb21fYnVpbHRf
c291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRo
RXhwcmVzc2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVzc2lv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
UGF0aFJlc3VsdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tWFBhdGhFdmFs
dWF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVhQYXRoRXhjZXB0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YUGF0aEV4cHJlc3Npb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tWFBhdGhSZXN1bHQuaAorCiBJRExfQklORElO
R1MgKz0gXAogCVdlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbCBcCiAJV2ViQ29yZS94bWwv
WFBhdGhFeGNlcHRpb24uaWRsIFwKQEAgLTIzODcsNiArMjkyMCw3IEBACiAjIC0tLS0KIGlmIEVO
QUJMRV9YU0xUCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFNMVD0xCitG
RUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfWFNMVD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3Mg
Kz0gLURFTkFCTEVfWFNMVD0xCiAKQEAgLTI0MTAsNiArMjk0NCw3IEBACiAjIC0tLS0KIGlmIEVO
QUJMRV9TVkcKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9MQorI0ZF
QVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkc9MSAtIGJpZyBUT0RPISA6KQogCiBXRUJD
T1JFX0NTU19QUk9QRVJUWV9OQU1FUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NQcm9wZXJ0eU5h
bWVzLmluIAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMgKz0gJChXZWJDb3JlKS9jc3MvU1ZH
Q1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMjY4Nyw2ICszMjIyLDI3MyBAQAogCURlcml2ZWRTb3Vy
Y2VzL1NWR05hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHAKIAorbm90
LXlldDoKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0FsdEdseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmdsZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuZ2xlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FuaW1hdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0
ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmlt
YXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRBbmds
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEJvb2xlYW4uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0FuaW1hdGVkTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0
ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTnVtYmVyLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdBbmltYXRlZFJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
QW5pbWF0ZWRTdHJpbmcuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRl
ZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9y
bUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2lyY2xlRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0NpcmNsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHQ2xpcFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NvbG9y
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ3Vyc29yRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0RlZmluaXRpb25TcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0RlZnNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRGVmc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVzY0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZXNjRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0RvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdFbGxpcHNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0VsbGlwc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0V4Y2VwdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUJsZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFQmxlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNB
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY0FFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY0JFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jQkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdGRUZ1bmNSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVu
Y1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUltYWdlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFTWVyZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zm
c2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRVBvaW50TGlnaHRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVQb2ludExpZ2h0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRVNwb3RMaWdodEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRVNwb3RMaWdodEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVUaWxlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHRmlsdGVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGb250RmFjZU5hbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdG
b250RmFjZVVyaUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250
RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdHRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdHcmFk
aWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHSW1hZ2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMZW5ndGhMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdMaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0xpbmVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNYXJr
ZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWFya2VyRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hc2tFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR01hdHJpeC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01h
dHJpeC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR051bWJlckxpc3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1BhaW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUGFpbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQXJj
QWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0FyY0Ficy5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0FyY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXRoU2VnQ3VydmV0b0N1YmljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVs
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5ldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvUmVsLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
UGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhT
ZWdNb3ZldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0
b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0dGVybkVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXR0ZXJuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdQb2ludC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1BvaW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50TGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdQb2x5Z29uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1BvbHlnb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bv
bHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5l
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRp
by5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1JlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVj
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZWN0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZW5kZXJpbmdJbnRlbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1NWR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU2NyaXB0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NjcmlwdEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU2V0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHU3RvcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdT
dG9wRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHJpbmdMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RyaW5nTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
U3dpdGNoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N3aXRjaEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N5bWJvbEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFJlZkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdU
U3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
VGV4dFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RpdGxlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RpdGxlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zvcm0uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RyYW5z
Zm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVW5pdFR5cGVzLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1VzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdVc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1ZpZXdFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29y
ZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQu
aWRsIFwKQEAgLTMyNjYsMzYgKzQwNjgsNDIgQEAKICMgU1ZHIEZlYXR1cmVzCiBpZiBFTkFCTEVf
U1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19VU0U9MQor
I0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfVVNFPTEgIyBiaWcgVE9ETyEKIFNW
R19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVAogRkVB
VFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCisj
RkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xIAogU1ZH
X0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogd2ViY29yZV9jcHBmbGFn
cyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NW
R19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT05UUz0x
CisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT05UUz0xCiBTVkdfRkVBVFVS
RVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NW
R19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZJTFRFUlMKIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dE
T00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZJ
TFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRklMVEVSUz0xCiBlbmRp
ZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVf
U1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdl
YmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVO
QUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
U1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BTklN
QVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVf
Y3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpAQCAtMzMwMyw2ICs0
MTExLDcgQEAKICMgU1ZHIHRhZyBhbmQgYXR0cmlidXRlIG5hbWVzIChuZWVkIHRvIHBhc3MgYW4g
ZXh0cmEgZmxhZyBpZiBzdmcgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkKQogRGVy
aXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9y
eS5jcHA7CiBEZXJpdmVkU291cmNlcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERl
cml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcAorRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVu
dEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZh
Y3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2
Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KQEAgLTM0MjQsNiArNDIzMywxNSBA
QAogICAgICQoV2ViQ29yZSkveG1sIFwKICAgICAkKFdlYkNvcmUpL3BsdWdpbnMKIAorCisKK0Rl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bSUuY3BwOworCitEZXJpdmVkU291cmNlcy9nZG9tL0dkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9nZG9tL0dkb20lLmNwcDogJS5pZGwgJChT
Q1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckdPYmplY3QucG0KKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2Vi
Q29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1ZGUgJChX
ZWJDb3JlKS9kb20gLS1pbmNsdWRlICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUgJChXZWJDb3Jl
KS9jc3MgLS1pbmNsdWRlICQoV2ViQ29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJDb3JlKS94bWwg
LS1pbmNsdWRlICQoV2ViQ29yZSkvc3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNHRE9NKSIg
LS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FU19HRE9NKSIgLS1nZW5lcmF0b3IgR09iamVjdCAk
PAorCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDsKIAogRGVy
aXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zNDM5LDYgKzQyNTcsNyBA
QAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzUGFyc2VyLnBtIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgXAogCVdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gXAorCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBcCiAJV2ViQ29yZS9jc3MvaHRtbDQuY3NzIFwKIAlX
ZWJDb3JlL2Nzcy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nzcy92aWV3LXNvdXJjZS5jc3MgXApA
QCAtMzQ3NiwzICs0Mjk1LDcgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5sdXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1dC5oCiAKKworCisK
KwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1ODUgQEAKKy8qCisgKiBUSElTIEZJTEUgSVMgREVSSVZFRCBCWSBIQU5EIEZST00gQU4g
QVVUT01BVElDQUxMWSBHRU5FUkFURUQgRklMRS4KKyAqIElUIElTIE5PVCBBTiBBVVRPLUdFTkVS
QVRFRCBGSUxFIElUIFdBUyBDUkVBVEVEIE1BTlVBTExZICpGUk9NKgorICogQU4gQVVUTy1HRU5F
UkFURUQgRklMRS4KKyAqCisgKiAga2VlcGluZyBpdCB1cC10by1kYXRlIGNvdWxkIHBvdGVudGlh
bGx5IGJlIGRvbmUgYnkgYWRkaW5nCisgKiAgYSBtYWtlX25hbWVzLnBsIGdlbmVyYXRvciwgb3Ig
Ynkgd3JpdGluZyBhIHNlcGFyYXRlCisgKiAgZ2VuZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJnZG9tL0dk
b21Ob2RlLmgiCisjaW5jbHVkZSAiR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCbG9j
a3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCb2R5RWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxFbWJlZEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZyYW1lRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSGVhZEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSFJFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElGcmFt
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGlua0VsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNZW51
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFBh
cmFtRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFNlbGVjdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJs
ZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50LmgiCisK
KyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEFwcGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbUhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdk
b21IVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhU
TUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1M
Qm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEJSRWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MQnV0dG9uRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9Qcml2YXRlSW50R2RvbUhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRl
SW50R2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhU
TUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEVtYmVk
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MRmllbGRTZXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxGb250RWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
UHJpdmF0ZUludEdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUlu
dEdkb21IVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRN
TEhSRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MSHRtbEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTElGcmFtZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9Qcml2YXRlSW50R2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJp
dmF0ZUludEdkb21IVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50
R2RvbUhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhU
TUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTExpbmtFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxNYXBFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L1ByaXZhdGVJbnRHZG9tSFRNTE1ldGFFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRl
SW50R2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2Rv
bUhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTE9w
dEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MT3B0aW9u
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MUGFyYWdyYXBoRWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MUGFyYW1FbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L1ByaXZhdGVJbnRHZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZh
dGVJbnRHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRH
ZG9tSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1M
VGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxUYWJsZUNl
bGxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxUZXh0QXJlYUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFRpdGxlRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVGFibGVSb3dFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxVTGlzdEVsZW1lbnQuaCIKKworI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgorCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRm9udEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
Qm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ29sRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpcmVj
dG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb250RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRp
bmdFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEhSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSXNJbmRleEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExpbmtFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFycXVl
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
TWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyYWdyYXBoRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUHJl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
U2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNl
bGxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit0eXBlZGVm
IEdET01Ob2RlKiAoKkNyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uKShQYXNzUmVmUHRy
PEhUTUxFbGVtZW50Pik7CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQW5jaG9yV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhU
TUxBbmNob3JFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFwcGxldFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXBw
bGV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXBwbGV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxBcmVhRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MQXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlQmFzZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEJhc2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUJhc2VGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNlRm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEJhc2VGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxCbG9ja3F1b3RlRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MQmxvY2txdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlQm9keVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQm9keUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEJvZHlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUJSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiBuZXcgR0RPTUhUTUxCUkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJSRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCdXR0b25XcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTEJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQ2FudmFzV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhU
TUxDYW52YXNFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MVGFibGVDYXB0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDYXB0aW9uRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNv
bFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MVGFibGVDb2xFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNvbEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTW9kV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcg
R0RPTUhUTUxNb2RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNb2RFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
RGlyZWN0b3J5RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGlyZWN0b3J5RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVEaXZXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERp
dkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERpdkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRExpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERMaXN0RWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MRExpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUVtYmVkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbWJlZEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEVtYmVkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVGaWVsZFNldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRmllbGRTZXRFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxGaWVsZFNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZv
bnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUZvcm1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTEZvcm1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGcmFtZVdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVTZXRXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEZyYW1lU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVTZXRFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEhlYWRpbmdFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkaW5nRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxIZWFk
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSFJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhSRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MSFJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUh0bWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEh0bWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIdG1s
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJ
RnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTElGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSW1hZ2VX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEltYWdlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlucHV0V3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhU
TUxJbnB1dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJc0luZGV4V3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxJc0lu
ZGV4RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGFiZWxXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExhYmVsRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MTGFiZWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxlZ2VuZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTGVnZW5kRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MTGVnZW5kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVMSVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTElFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxMSUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlTGlua1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MTGlua0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExpbmtFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1hcFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MTWFwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFwRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNYXJxdWVlV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxNYXJx
dWVlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFycXVlZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWVudVdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWVudUVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTE1lbnVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1ldGFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1ldGFFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxNZXRhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVPYmplY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9iamVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlT0xpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9MaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT0xpc3RF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9w
dEdyb3VwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxPcHRHcm91cEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3Vw
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVP
cHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTE9wdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUGFyYWdy
YXBoV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biBuZXcgR0RPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJhZ3JhcGhF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBh
cmFtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biBuZXcgR0RPTUhUTUxQYXJhbUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQcmVXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTFByZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFByZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFF1b3RlRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MUXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNjcmlwdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU2NyaXB0RWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVTZWxlY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNlbGVjdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlU3R5bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFN0eWxlRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MU3R5bGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZVRhYmxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxl
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVU
YWJsZVNlY3Rpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlVGFibGVDZWxsV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNlbGxFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxUYWJsZUNlbGxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZVRleHRBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVUaXRsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGl0bGVFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlVGFibGVSb3dXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlUm93RWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MVGFibGVSb3dFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZVVMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiBuZXcgR0RPTUhUTUxVTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFVM
aXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworR0RPTU5vZGUqIGNyZWF0ZUdET01I
VE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHN0YXRp
YyBIYXNoTWFwPFdlYkNvcmU6OkF0b21pY1N0cmluZ0ltcGwqLCBDcmVhdGVIVE1MRWxlbWVudFdy
YXBwZXJGdW5jdGlvbj4gbWFwOworICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7CisgICAgICAgbWFw
LnNldChhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQW5jaG9yV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChhcHBsZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBcHBsZXRXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVB
cmVhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChiYXNlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlQmFzZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZWZvbnRUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVCYXNlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmxvY2tx
dW90ZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCb2R5V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChiclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJSV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChidXR0b25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVCdXR0b25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhbnZhc1RhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUNhbnZhc1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY2FwdGlvblRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoY29sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGRlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1vZFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoZGlyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGly
ZWN0b3J5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkaXZUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVEaXZXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRsVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlRExpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGVtYmVkVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlRW1iZWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZpZWxk
c2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRmllbGRTZXRXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGZvbnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb250V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChmb3JtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9ybVdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVGcmFtZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVzZXRUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVGcmFtZVNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDFUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldCho
ZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoaHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIUldyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoaHRtbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUh0bWxXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGlmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlGcmFt
ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1nVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlucHV0VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlSW5wdXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlzaW5kZXhUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJc0luZGV4V3JhcHBlcik7CisgICAgICAgbWFwLnNldChs
YWJlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxhYmVsV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChsZWdlbmRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMZWdlbmRXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGxpVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTElXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGxpbmtUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVM
aW5rV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVNYXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1hcnF1ZWVUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVNYXJxdWVlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtZW51VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWVudVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWV0
YVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1ldGFXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KG9iamVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9iamVjdFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQob2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPTGlzdFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQob3B0Z3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVPcHRHcm91cFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0aW9uVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlT3B0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChwVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlUGFyYWdyYXBoV3JhcHBlcik7CisgICAgICAgbWFwLnNldChw
YXJhbVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFtV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChwcmVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KHFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVRdW90ZVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoc2NyaXB0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2Ny
aXB0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzZWxlY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHN0eWxlVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlU3R5bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRhYmxlVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHRib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7
CisgICAgICAgbWFwLnNldCh0ZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2Vs
bFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGV4dGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVUZXh0QXJlYVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGl0bGVUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVUaXRsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodHJUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVJvd1dyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQodWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVVTGlzdFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoY29sZ3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoaDJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVI
ZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoM1RhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg0VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDVUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldCho
NlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGltYWdlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGluc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1vZFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoa2V5Z2VuVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
U2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsaXN0aW5nVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Zm9vdFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
dGhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHRoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9u
V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh4bXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVQcmVXcmFwcGVyKTsKKyAgICB9CisgICAgLy9wcmludGYoImNyZWF0ZUdET01IVE1MV3JhcHBl
cjogJXNcbiIsIGVsZW1lbnQtPmxvY2FsTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXJGdW5jdGlv
biA9IG1hcC5nZXQoZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICBpZiAoY3JlYXRl
V3JhcHBlckZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlckZ1bmN0aW9uKGVs
ZW1lbnQpOworICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbGVtZW50KGVsZW1lbnQuZ2V0KCkpOwor
fQorCit9CisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVH
ZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLwor
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1
ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2RvbS9Q
cml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUdk
b21ET01PYmplY3QuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2lu
Y2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21FdmVudC5oIgorZW51
bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKworc3RhdGljIGd1
aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCisKK1dlYkNvcmU6Ok5v
ZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShHZG9tRXZlbnRUYXJnZXRO
b2RlICpyZXF1ZXN0KQoreworICAgIEdET01FdmVudFRhcmdldE5vZGUgKnJlczsKKyAgICByZXMg
PSBzdGF0aWNfY2FzdDxHRE9NRXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9kb21fb2JqZWN0X2dldF9w
cml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihyZXMtPmltcGwoKSk7Cit9CisKKworZXh0ZXJuICJDIiB7
CisKK0dfREVGSU5FX1RZUEUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSwgZ2RvbV9ldmVudF90YXJnZXRf
bm9kZSwgR0RPTV9UWVBFX05PREUpOworCisvKgorc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2Rl
UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICppdGVtOworfTsK
KyovCisKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFURShvYmopIChH
X1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRf
Tk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUpKQorCisvKgordm9pZAorZ2RvbV9ldmVu
dF90YXJnZXRfbm9kZV9zZXRfcHJpdmF0ZShHZG9tRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0LCBX
ZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtKQoreworICAgIEdkb21FdmVudFRhcmdldE5v
ZGVQcml2YXRlKiBwcml2ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfUFJJVkFURShyZXF1
ZXN0KTsKKyAgICBwcml2LT5pdGVtID0gaXRlbTsKK30KKyovCisKK3N0YXRpYyB2b2lkIGdkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIC8qR2Rv
bUV2ZW50VGFyZ2V0Tm9kZSogcmVxdWVzdCA9IEdET01fRVZFTlRfVEFSR0VUX05PREUob2JqZWN0
KTsKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7
Ki8KKworICAgIEdfT0JKRUNUX0NMQVNTKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfcGFyZW50X2Ns
YXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJn
ZXRfbm9kZV9jbGFzc19pbml0KEdkb21FdmVudFRhcmdldE5vZGVDbGFzcyogcmVxdWVzdENsYXNz
KQoreworICAgIGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJy
b3dzZXItZXZlbnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhyZXF1ZXN0Q2xhc3MpLAor
ICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElP
TiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVE
ICAgICksCisgICAgICAgIDAsCisgICAgICAgIE5VTEwsCisgICAgICAgIE5VTEwsCisgICAgICAg
IHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICBHX1RZUEVfTk9O
RSwgMiwKKyAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisKKyAgICBH
X09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdkb21fZXZlbnRfdGFyZ2V0
X25vZGVfZmluYWxpemU7CisKKyAgICAvKmdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0
Q2xhc3MsIHNpemVvZihHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkpOyovCit9CisKK3N0YXRp
YyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdChHZG9tRXZlbnRUYXJnZXROb2RlKiBy
ZXF1ZXN0KQoreworICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9N
X0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnBy
aXYgPSBwcml2OyovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgxNCBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3Jn
KQorICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBX
ZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworLy8gZ2NjIDMueCBjYW4ndCBoYW5kbGUgaW5jbHVkaW5nIHRoZSBIYXNoTWFw
IHBvaW50ZXIgc3BlY2lhbGl6YXRpb24gaW4gdGhpcyBmaWxlCisjaWYgZGVmaW5lZCBfX0dOVUNf
XyAmJiAhZGVmaW5lZCBfX0dMSUJDWFhfXyAvLyBsZXNzIHRoYW4gZ2NjIDMuNAorI2RlZmluZSBI
QVNIX01BUF9QVFJfU1BFQ19XT1JLQVJPVU5EIDEKKyNlbmRpZgorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5j
bHVkZSAiR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRE9NT2JqZWN0Lmgi
CisjaW5jbHVkZSAiR0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJHRE9NSFRNTEVsZW1lbnRXcmFw
cGVyRmFjdG9yeS5oIgorCisjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIkdk
b21DU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NTdHlsZVNoZWV0
LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgi
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUg
Ikdkb21Ob2RlLmgiCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50
R2RvbU5vZGUuaCIKKworI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDREFUQVNlY3Rpb24u
aCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbW1lbnQuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJE
b2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJFbnRpdHkuaCIKKyNpbmNsdWRlICJFbnRpdHlSZWZl
cmVuY2UuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21FdmVudFRh
cmdldE5vZGUuaCIKKyNpbmNsdWRlICJHZG9tQXR0ci5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tQXR0ci5oIgorI2luY2x1ZGUgIkdkb21DaGFyYWN0ZXJEYXRhLmgiCisjaW5jbHVkZSAiR2Rv
bVRleHQuaCIKKyNpbmNsdWRlICJHZG9tQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUNv
bW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1l
bnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJH
ZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiR2RvbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tQ1NT
VmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVk
ZSAiR2RvbUVudGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkdkb21Ob3RhdGlvbi5oIgorI2lu
Y2x1ZGUgIkdkb21IVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIk5vdGF0aW9uLmgiCisjaW5j
bHVkZSAiUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCisjaW5jbHVk
ZSAiR2RvbUNTU1J1bGUuaCIKKyNpbmNsdWRlICJDU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUg
IkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRl
ICJDU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgIkNT
U1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1ZhcmlhYmxlc1J1bGUuaCIKKyNpbmNsdWRlICJH
ZG9tQ1NTQ2hhcnNldFJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTRm9udEZhY2VSdWxlLmgiCisj
aW5jbHVkZSAiR2RvbUNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTTWVkaWFSdWxl
LmgiCisjaW5jbHVkZSAiR2RvbUNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1N0eWxl
UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NWYXJpYWJsZXNSdWxlLmgiCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUV2ZW50LmgiCisKKyNpbmNsdWRlICJD
bGlwYm9hcmQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkdkb21DbGlwYm9hcmQu
aCIKKyNpbmNsdWRlICJHZG9tS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIkdkb21NZXNzYWdl
RXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIkdkb21NdXRh
dGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJH
ZG9tUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIkdkb21UZXh0RXZlbnQuaCIKKyNpbmNsdWRl
ICJHZG9tVUlFdmVudC5oIgorI2luY2x1ZGUgIkdkb21XZWJLaXRBbmltYXRpb25FdmVudC5oIgor
I2luY2x1ZGUgIkdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tV2hl
ZWxFdmVudC5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIK
KyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisj
aW5jbHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKKyNpbmNs
dWRlICJPdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1
ZGUgIlRleHRFdmVudC5oIgorI2luY2x1ZGUgIlVJRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRB
bmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2lu
Y2x1ZGUgIldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaCIKKworI2luY2x1ZGUgIkdkb21IVE1MQ29sbGVjdGlvbi5oIgorCisjaW5jbHVkZSAiQXRv
bWljU3RyaW5nLmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJIVE1M
T3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmgiCisKKyNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCisjaW5jbHVkZSAiR2RvbVN0b3JhZ2VFdmVu
dC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoU1ZH
KQorI2lmIDAgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIkdkb21TVkdab29tRXZlbnQuaCIKKyNpbmNsdWRl
ICJTVkdab29tRXZlbnQuaCIKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBFTkFCTEUoU1ZHKQorI2lm
IDAgLyogWFhYIFRPRE8gLSBzZWUgIzIwNTg2ICovCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21T
VkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJHZG9tU1ZHRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgorI2VuZGlmCisjZW5kaWYKKwor
I2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIkdkb21TVkdFeGNlcHRpb24uaCIKKyNp
bmNsdWRlICJTVkdFeGNlcHRpb24uaCIKKyNlbmRpZgorI2VuZGlmCisKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUNsaXBib2FyZC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTUnVsZS5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21Db21tZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1bWVudC5o
IgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21F
bnRpdHkuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbUNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NT
UHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUVudGl0eVJlZmVyZW5j
ZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcml2
YXRlSW50R2RvbUhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21UZXh0LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21DU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJ
bnRHZG9tQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NJbXBv
cnRSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNs
dWRlICJQcml2YXRlSW50R2RvbUNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdk
b21DU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1ZhcmlhYmxlc1J1
bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbU1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
TW91c2VFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTXV0YXRpb25FdmVudC5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIlByaXZh
dGVJbnRHZG9tUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tVGV4dEV2
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21VSUV2ZW50LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21XZWJLaXRBbmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRH
ZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21XaGVl
bEV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVN0b3JhZ2VFdmVudC5oIgorI2luY2x1
ZGUgIlByaXZhdGVJbnRHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21IVE1MQ29sbGVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK3R5cGVkZWYgSGFzaE1hcDx2b2lkKiwgZ3BvaW50
ZXI+IERPTU9iamVjdE1hcDsKK3R5cGVkZWYgSGFzaE1hcDx2b2lkKiwgZ3BvaW50ZXI+IEdkb21X
cmFwcGVyQ2FjaGU7IC8qIEFSRyEgVU5GQUlSISBKU1dyYXBwZXJDYWNoZSBpcyBpbiBEb2N1bWVu
dCEhICovCisKKy8vIEZvciBkZWJ1Z2dpbmcsIGtlZXAgYSBzZXQgb2Ygd3JhcHBlcnMgY3VycmVu
dGx5IHJlZ2lzdGVyZWQsIGFuZCBjaGVjayB0aGF0CisvLyBhbGwgYXJlIHVucmVnaXN0ZXJlZCBi
ZWZvcmUgdGhleSBhcmUgZGVzdHJveWVkLiBUaGlzIGhhcyBoZWxwZWQgdXMgZml4IGF0CisvLyBs
ZWFzdCBvbmUgYnVnLgorCisjaWYgMAorc3RhdGljIHZvaWQgYWRkV3JhcHBlcihHRE9NT2JqZWN0
KiB3cmFwcGVyKTsKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBl
cik7CitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJiB3
cmFwcGVycyk7CisKKyNpZmRlZiBOREVCVUcKKworc3RhdGljIGlubGluZSB2b2lkIGFkZFdyYXBw
ZXIoR0RPTU9iamVjdCopCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVXcmFwcGVy
KEdET01PYmplY3QqKQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmVtb3ZlV3JhcHBlcnMo
Y29uc3QgR2RvbVdyYXBwZXJDYWNoZSYpCit7Cit9CisKKyNlbHNlCisKK3N0YXRpYyBIYXNoU2V0
PEdET01PYmplY3QqPiYgd3JhcHBlclNldCgpCit7CisgICAgc3RhdGljIEhhc2hTZXQ8R0RPTU9i
amVjdCo+IHN0YXRpY1dyYXBwZXJTZXQ7CisgICAgcmV0dXJuIHN0YXRpY1dyYXBwZXJTZXQ7Cit9
CisKK3N0YXRpYyB2b2lkIGFkZFdyYXBwZXIoR0RPTU9iamVjdCogd3JhcHBlcikKK3sKKyAgICBB
U1NFUlQoIXdyYXBwZXJTZXQoKS5jb250YWlucyh3cmFwcGVyKSk7CisgICAgd3JhcHBlclNldCgp
LmFkZCh3cmFwcGVyKTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0
KiB3cmFwcGVyKQoreworICAgIGlmICghd3JhcHBlcikKKyAgICAgICAgcmV0dXJuOworICAgIEFT
U0VSVCh3cmFwcGVyU2V0KCkuY29udGFpbnMod3JhcHBlcikpOworICAgIHdyYXBwZXJTZXQoKS5y
ZW1vdmUod3JhcHBlcik7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBwZXJzKGNvbnN0IEdk
b21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKQoreworICAgIGZvciAoR2RvbVdyYXBwZXJDYWNoZTo6
Y29uc3RfaXRlcmF0b3IgaXQgPSB3cmFwcGVycy5iZWdpbigpOyBpdCAhPSB3cmFwcGVycy5lbmQo
KTsgKytpdCkKKyAgICAgICAgcmVtb3ZlV3JhcHBlcihpdC0+c2Vjb25kKTsKK30KKworR0RPTU9i
amVjdDo6fkdET01PYmplY3QoKQoreworICAgIEFTU0VSVCghd3JhcHBlclNldCgpLmNvbnRhaW5z
KHRoaXMpKTsKK30KKworI2VuZGlmCisjZW5kaWYgLyogY29tbWVudGVkIG91dCBmb3Igbm93ICov
CisKK3N0YXRpYyBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVyQ2FjaGUoKQoreworICAgIC8vIFVO
RkFJUiEgaSB3YW50IG9uZSBvZiB0aGVzZSBwZXIgRG9jdW1lbnQsIHRvbyEKKyAgICAvLyBEb24n
dCB1c2UgbWFsbG9jIGhlcmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9uIGNh
biBkZWFkbG9jay4KKyAgICBzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSBzdGF0aWNHZG9tV3JhcHBl
ckNhY2hlOworICAgIHJldHVybiBzdGF0aWNHZG9tV3JhcHBlckNhY2hlOworfQorCitzdGF0aWMg
RE9NT2JqZWN0TWFwJiBkb21PYmplY3RzKCkKK3sKKyAgICAvLyBEb24ndCB1c2UgbWFsbG9jIGhl
cmUuIENhbGxpbmcgbWFsbG9jIGZyb20gYSBtYXJrIGZ1bmN0aW9uIGNhbiBkZWFkbG9jay4KKyAg
ICBzdGF0aWMgRE9NT2JqZWN0TWFwIHN0YXRpY0RPTU9iamVjdHM7CisgICAgcmV0dXJuIHN0YXRp
Y0RPTU9iamVjdHM7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9N
T2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICBncG9pbnRlciByZXQgPSBkb21PYmpl
Y3RzKCkuZ2V0KG9iamVjdEhhbmRsZSk7CisgICAgLy9wcmludGYoImdldERPTU9iamVjdDogJXAg
JXBcbiIsIG9iamVjdEhhbmRsZSwgcmV0KTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlX2dkb21fb2JqZWN0KEdET01PYmplY3QgKmRvYikKK3sKKyAgICAvKiBh
bGwgb2YgdGhlIHdvcmsgaW4gY3JlYXRpbmcgdGhlIHRvR0RPTSBmdW5jdGlvbnMsCisgICAgICog
dGhlbiBoYXZpbmcgbmV3IEdET01YeXooc3RhdGljX3R5cGVjYXN0PFh5eio+b2JqKSwgCisgICAg
ICogd2hlcmUgYWxsIEdET01YeXoncyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBwdXJlIHZpcnR1YWwK
KyAgICAgKiBjbGFzcywgR0RPTU9iamVjdCwgZW5kcyB1cCBoZXJlIC0gdG8gY3JlYXRlIHRoZQor
ICAgICAqIHJpZ2h0IHR5cGUgb2YgZ2xpYiBvYmplY3QuCisgICAgICoKKyAgICAgKiB0aGVyZSBh
cmUgbm8gY29uc3RydWN0b3JzICJnZG9tX3h5el9uZXcoKSIgLSB0aGVyZSBpcworICAgICAqIF9v
bmx5XyBjcmVhdGVfZ2RvbV9vYmplY3QoKS4gIHRoYXQgbWFrZXMgdGhlIHRvR0RPTQorICAgICAq
IGZ1bmN0aW9ucyB0aGUgb25seSBzYWZlIGFuZCBzYW5lIHdheSB0byBjcmVhdGUKKyAgICAgKiBn
bGliIGJpbmRpbmdzIG9iamVjdHM7IGl0IG1lYW5zIHRoYXQgdGhlIG9iamVjdAorICAgICAqIGNh
Y2hlLCBhbiBhYnNvbHV0ZWx5IGNyaXRpY2FsIHBhcnQgb2YgdGhlIGdsaWIKKyAgICAgKiBiaW5k
aW5ncywgcmVtYWlucyBjb25zaXN0ZW50LgorICAgICAqLworICAgIGdwb2ludGVyIHJlcyA9IGdf
b2JqZWN0X25ldyhkb2ItPmdldEdvYmpUeXBlKCksIE5VTEwpOworICAgIGdkb21fZG9tX29iamVj
dF9zZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVzKSwgZG9iKTsKKyAgICByZXR1cm4gcmVz
OworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCh2b2lk
KiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqIHdyYXBwZXIpCit7CisgICAgLy8gYWRkV3JhcHBl
cih3cmFwcGVyKTsKKyAgICBncG9pbnRlciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBl
cik7CisgICAgLy9wcmludGYoInB1dERPTU9iamVjdDogJXAgJXAgJXBcbiIsIG9iamVjdEhhbmRs
ZSwgd3JhcHBlciwgb2JqKTsKKyAgICBkb21PYmplY3RzKCkuc2V0KG9iamVjdEhhbmRsZSwgb2Jq
KTsKKyAgICByZXR1cm4gb2JqOworfQorCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9y
Z2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICBkb21PYmplY3RzKCkudGFr
ZShvYmplY3RIYW5kbGUpOworICAgIC8vcmVtb3ZlV3JhcHBlcihkb21PYmplY3RzKCkudGFrZShv
YmplY3RIYW5kbGUpKTsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRE
T01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlKQoreworICAg
IGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxncG9pbnRlciA+KGRv
bU9iamVjdHMoKS5nZXQobm9kZSkpOworICAgIHJldHVybiAvKiBYWFggZ3JyciBkb2N1bWVudC0+
ICovd3JhcHBlckNhY2hlKCkuZ2V0KG5vZGUpOworfQorCit2b2lkIEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSog
bm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50KSB7CisgICAgICAgIGZvcmdldERPTU9iamVjdChu
b2RlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvL3JlbW92ZVdyYXBwZXIoLyogWFhY
IGdyciBkb2N1bWVudC0+Ki93cmFwcGVyQ2FjaGUoKS50YWtlKG5vZGUpKTsKK30KKworZ3BvaW50
ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBOb2RlKiBub2RlLCBHRE9NTm9kZSAqd3JhcHBlcikKK3sKKyAgICAvL2FkZFdy
YXBwZXIod3JhcHBlcik7CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBub2RlLT5yZWYo
KTsKKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KG5v
ZGUsIHdyYXBwZXIpIDsKKyAgICB9CisgICAgZ3BvaW50ZXIgb2JqID0gY3JlYXRlX2dkb21fb2Jq
ZWN0KHdyYXBwZXIpOworICAgIC8qIFhYWCBncnJyIGRvY3VtZW50LT4qL3dyYXBwZXJDYWNoZSgp
LnNldChub2RlLCBvYmopOworICAgIHJldHVybiBvYmo7Cit9CisKK3ZvaWQgR0RPTVNjcmlwdElu
dGVycHJldGVyOjpmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIC8vcmVtb3ZlV3JhcHBlcnMoZG9jdW1l
bnQtPndyYXBwZXJDYWNoZSgpKTsKK30KKworI2lmIDAKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJl
dGVyOjptYXJrRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCogZG9jKQoreworI2lmIDAgLypY
WFggVE9ETy4gIGxrY2w6IGkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IHRoaXMgZnVuY3Rpb24gaXMg
Zm9yLAorICAgICAgICBzbyBmb3Igbm93LCBpdCdzIGJlZW4gY29tbWVudGVkIG91dCwgYnV0IGN1
dC9wYXN0ZSBoZXJlIGZyb20KKyAgICAgICAgSlMgYXMgYSByZW1pbmRlciB0aGF0IHRoZXJlIG1h
eSBwcm92ZSwgYXQgc29tZSBwb2ludCBpbiB0aGUKKyAgICAgICAgZnV0dXJlLCB0byBiZSBhIG5l
ZWQgZm9yIGV4YWN0bHkgdGhpcyBmdW5jdGlvbmFsaXR5LgorICAgICAgICBldmVyeSBfb3RoZXJf
IGNvbmNlcHQgaW4gdGhlIEpTIGFuZCB0aGUgT2JqQyBiaW5kaW5ncyBjb2RlCisgICAgICAgIGhh
cyB0dXJuZWQgb3V0IHRvIGJlIG5lZWRlZC4uLgorICAgICAqLworICAgIC8vIElmIGEgbm9kZSdz
IEdkb20gd3JhcHBlciBob2xkcyBjdXN0b20gcHJvcGVydGllcywgdGhvc2UgcHJvcGVydGllcyBt
dXN0CisgICAgLy8gcGVyc2lzdCBldmVyeSB0aW1lIHRoZSBub2RlIGlzIGZldGNoZWQgZnJvbSB0
aGUgRE9NLiBTbywgd2Uga2VlcCBHZG9tCisgICAgLy8gd3JhcHBlcnMgbGlrZSB0aGF0IGZyb20g
YmVpbmcgZ2FyYmFnZSBjb2xsZWN0ZWQuCisKKyAgICBHZG9tV3JhcHBlckNhY2hlJiBub2RlRGlj
dCA9IC8qZG9jLT4qL3dyYXBwZXJDYWNoZSgpOworICAgIEdkb21XcmFwcGVyQ2FjaGU6Oml0ZXJh
dG9yIG5vZGVFbmQgPSBub2RlRGljdC5lbmQoKTsKKyAgICBmb3IgKEdkb21XcmFwcGVyQ2FjaGU6
Oml0ZXJhdG9yIG5vZGVJdCA9IG5vZGVEaWN0LmJlZ2luKCk7IG5vZGVJdCAhPSBub2RlRW5kOyAr
K25vZGVJdCkgeworICAgICAgICBncG9pbnRlciBnTm9kZSA9IG5vZGVJdC0+c2Vjb25kOworICAg
ICAgICBOb2RlKiBub2RlID0gZ05vZGUtPmltcGwoKTsKKworICAgICAgICBpZiAoZ05vZGUtPm1h
cmtlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm8gbmVlZCB0byBw
cmVzZXJ2ZSBhIHdyYXBwZXIgdGhhdCBoYXMgbm8gY3VzdG9tIHByb3BlcnRpZXMgb3IgaXMgbm8K
KyAgICAgICAgLy8gbG9uZ2VyIGZldGNoYWJsZSB0aHJvdWdoIHRoZSBET00uCisgICAgICAgIGlm
ICghZ05vZGUtPmhhc0N1c3RvbVByb3BlcnRpZXMoKSB8fCAhbm9kZS0+aW5Eb2N1bWVudCgpKQor
ICAgICAgICAgICAgLy8uLi4gdW5sZXNzIHRoZSB3cmFwcGVyIHdyYXBzIGEgbG9hZGluZyBpbWFn
ZSwgc2luY2UgdGhlICJuZXcgSW1hZ2UiCisgICAgICAgICAgICAvLyBzeW50YXggYWxsb3dzIGFu
IG9ycGhhbiBpbWFnZSB3cmFwcGVyIHRvIGJlIHRoZSBsYXN0IHJlZmVyZW5jZQorICAgICAgICAg
ICAgLy8gdG8gYSBsb2FkaW5nIGltYWdlLCB3aG9zZSBsb2FkIGV2ZW50IG1pZ2h0IGhhdmUgaW1w
b3J0YW50IHNpZGUtZWZmZWN0cy4KKyAgICAgICAgICAgIGlmICghbm9kZS0+aGFzVGFnTmFtZShp
bWdUYWcpIHx8IHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2RlKS0+aGF2ZUZpcmVk
TG9hZEV2ZW50KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZ05vZGUt
Pm1hcmsoKTsKKyAgICB9CisjZW5kaWYKK30KKworLyogWFhYIC0gcmVxdWlyZXMgbG9va2luZyB1
cCBvYmplY3QgLSBjYWxsIHRvIEdfT0JKRUNUKCkgbWFjcm8gaW4gYXJnCisgKiAid3JhcHBlciIg
dG8gcHV0RE9NTm9kZUZvckRvY3VtZW50PyovCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OnVwZGF0ZURPTU5vZGVEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9jLCBE
b2N1bWVudCogbmV3RG9jKQoreworICAgIEFTU0VSVChvbGREb2MgIT0gbmV3RG9jKTsKKyAgICBz
dHlsZVNoZWV0LT5yZWYoKTsKKyAgICBncG9pbnRlciB3cmFwcGVyID0gZ2V0RE9NTm9kZUZvckRv
Y3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgaWYgKHdyYXBwZXIpIHsKKyAgICAgICAgLy9yZW1v
dmVXcmFwcGVyKHdyYXBwZXIpOworICAgICAgICBncG9pbnRlciBvYmogPSBwdXRET01Ob2RlRm9y
RG9jdW1lbnQobmV3RG9jLCBub2RlLCB3cmFwcGVyKTsKKyAgICAgICAgZm9yZ2V0RE9NTm9kZUZv
ckRvY3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgICAgIC8vYWRkV3JhcHBlcih3cmFwcGVyKTsK
KyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4uLiAq
LworfQorI2VuZGlmCisKK2dwb2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKQoreworICAgIGlm
ICghZG9jKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAgIGdw
b2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb2MpOwor
ICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJl
dDsKKworICAgIGlmIChkb2MtPmlzSFRNTERvY3VtZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBH
RE9NSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KGRvYykpOworI2lmIEVO
QUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5pc1NWR0RvY3VtZW50KCkpCisgICAgeworICAg
ICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gLSBzZWUgIzIwNTg2ICovCisjaWYgMAorICAg
ICAgICByZXQgPSBuZXcgR0RPTVNWR0RvY3VtZW50KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4o
ZG9jKSk7CisjZW5kaWYKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5l
dyBHRE9NRG9jdW1lbnQoZG9jKTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvYywgcmV0KTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSk7CisKK2dwb2ludGVyIHRvR0RPTU5ld2x5
Q3JlYXRlZChOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5V
TEw7IC8qIGhtbW0uLi4uICovCisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30K
KworZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLi4gKi8KKworICAgIERvY3VtZW50KiBkb2MgPSBub2Rl
LT5kb2N1bWVudCgpOworICAgIGdwb2ludGVyIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NTm9kZUZvckRvY3VtZW50KGRvYywgbm9kZSk7CisgICAgaWYgKHJldCkKKyAgICAgICAg
cmV0dXJuIHJldDsKKworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOworfQorCitncG9p
bnRlciB0b0dET00oQ1NTVmFsdWUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUpCisgICAgICAg
IHJldHVybiBOVUxMOyAvKiBobW1tLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNj
cmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QodmFsdWUpOworCisgICAgaWYgKGdvYmopCisg
ICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworCisgICAgaWYgKHZh
bHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhbHVlTGlzdChz
dGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAg
ZWxzZSBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxM
OyAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHUGFp
bnQoc3RhdGljX2Nhc3Q8U1ZHUGFpbnQqPih2YWx1ZSkpOworICAgIH0KKyAgICBlbHNlIGlmICh2
YWx1ZS0+aXNTVkdDb2xvcigpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8g
LSBzZWUgIzIwNTg2ICovCisgICAgICAgIC8vcmV0ID0gbmV3IEdET01TVkdDb2xvcihzdGF0aWNf
Y2FzdDxTVkdDb2xvcio+KHZhbHVlKSk7CisgICAgfQorI2VuZGlmCisgICAgZWxzZSBpZiAodmFs
dWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NQcmltaXRp
dmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKSk7CisgICAgZWxz
ZQorICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhbHVlKHZhbHVlKTsKKworICAgIHZhbHVlLT5y
ZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QodmFs
dWUsIHJldCk7Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGdwb2ludGVyIGNyZWF0ZVdyYXBw
ZXIoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNTRVJUKCFTY3JpcHRJ
bnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KG5vZGUtPmRvY3VtZW50KCksIG5vZGUp
KTsKKworICAgIERvY3VtZW50KiBkb2MgPSBub2RlLT5kb2N1bWVudCgpOworICAgIEdET01Ob2Rl
ICpyZXQgPSBOVUxMOworCisgICAgLy9wcmludGYoImNyZWF0ZVdyYXBwZXIgbm9kZVR5cGUgJWRc
biIsIG5vZGUtPm5vZGVUeXBlKCkpOworCisgICAgc3dpdGNoIChub2RlLT5ub2RlVHlwZSgpKSB7
CisgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgaWYgKG5vZGUt
PmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdy
YXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKSk7CisjaWYgRU5BQkxFKFNWRykK
KyAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmlzU1ZHRWxlbWVudCgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBOVUxMOworI2lmIDAgLyogWFhYIFRPRE8gLSBzZWUgIzIwNTg2ICovCisgICAg
ICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nhc3Q8U1ZHRWxl
bWVudCo+KG5vZGUpKTsKKyNlbmRpZgorI2VuZGlmCisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01FbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2Rl
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9E
RToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQXR0cihzdGF0aWNfY2FzdDxBdHRyKj4obm9k
ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0KHN0YXRpY19jYXN0PFRleHQqPihub2RlKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9OX05P
REU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNEQVRBU2VjdGlvbihzdGF0aWNfY2FzdDxD
REFUQVNlY3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBO
b2RlOjpFTlRJVFlfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRW50aXR5KHN0YXRp
Y19jYXN0PEVudGl0eSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVj
dGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkNP
TU1FTlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ29tbWVudChzdGF0aWNfY2Fz
dDxDb21tZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUg
dGhlIGRvY3VtZW50IGl0c2VsZiBpbiB0aGUgcGVyLWRvY3VtZW50IGRpY3Rpb25hcnkKKyAgICAg
ICAgICAgIHJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7CisgICAg
ICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3
IEdET01Eb2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRUeXBlKj4obm9kZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Tk9UQVRJT05fTk9ERToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NTm90YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihub2Rl
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFH
TUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Eb2N1bWVudEZyYWdtZW50KHN0
YXRpY19jYXN0PERvY3VtZW50RnJhZ21lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CisgICAgICAgICAgICBy
ZXQgPSBuZXcgR0RPTUVudGl0eVJlZmVyZW5jZShzdGF0aWNfY2FzdDxFbnRpdHlSZWZlcmVuY2Uq
Pihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHJldCA9IG5ldyBHRE9NTm9kZShub2RlKTsKKyAgICB9CisKKyAgICBkb2MtPnJlZigpOwor
ICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChk
b2MsIG5vZGUsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogY29s
bGVjdGlvbikKK3sKKyAgICBpZiAoIWNvbGxlY3Rpb24pCisgICAgICAgIHJldHVybiBOVUxMOyAv
KiBobW1tLi4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRl
cjo6Z2V0RE9NT2JqZWN0KGNvbGxlY3Rpb24pOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJl
dHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAoY29sbGVjdGlv
bi0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OlNlbGVjdE9wdGlvbnM6
CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbihzdGF0aWNf
Y2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBi
cmVhazsKKyNpZiAwCisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OkRvY0FsbDoKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTEFsbENvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTENv
bGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQ29sbGVjdGlvbihz
dGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgIH0KKworICAgIGNvbGxlY3Rpb24tPnJlZigpOworICAgIHJldHVybiBHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChjb2xsZWN0aW9uLCByZXQpOworfQorCitncG9p
bnRlciB0b0dET00oRXZlbnQqIGV2ZW50KQoreworICAgIGlmICghZXZlbnQpCisgICAgICAgIHJl
dHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLworCisgICAgLy9wcmludGYoInRvR0RPTSBFdmVudCB0
eXBlICVzXG4iLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworCisgICAg
Z3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGV2ZW50
KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0
ICpyZXQ7CisgICAgaWYgKGV2ZW50LT5pc1VJRXZlbnQoKSkgeworICAgICAgICBpZiAoZXZlbnQt
PmlzS2V5Ym9hcmRFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01LZXlib2FyZEV2
ZW50KHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlm
IChldmVudC0+aXNUZXh0RXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NVGV4dEV2
ZW50KHN0YXRpY19jYXN0PFRleHRFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2
ZW50LT5pc01vdXNlRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NTW91c2VFdmVu
dChzdGF0aWNfY2FzdDxNb3VzZUV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZl
bnQtPmlzV2hlZWxFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01XaGVlbEV2ZW50
KHN0YXRpY19jYXN0PFdoZWVsRXZlbnQqPihldmVudCkpOworI2lmIEVOQUJMRShTVkcpCisgICAg
ICAgIGVsc2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVudCgpKQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyAgICAgICAgICAgIC8v
cmV0ID0gbmV3IEdET01TVkdab29tRXZlbnQoc3RhdGljX2Nhc3Q8U1ZHWm9vbUV2ZW50Kj4oZXZl
bnQpLCAwKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NVUlFdmVudChzdGF0aWNfY2FzdDxVSUV2ZW50Kj4oZXZlbnQpKTsKKyAgICB9
IGVsc2UgaWYgKGV2ZW50LT5pc011dGF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01NdXRhdGlvbkV2ZW50KHN0YXRpY19jYXN0PE11dGF0aW9uRXZlbnQqPihldmVudCkpOworICAg
IGVsc2UgaWYgKGV2ZW50LT5pc092ZXJmbG93RXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01PdmVyZmxvd0V2ZW50KHN0YXRpY19jYXN0PE92ZXJmbG93RXZlbnQqPihldmVudCkpOworICAg
IGVsc2UgaWYgKGV2ZW50LT5pc01lc3NhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RP
TU1lc3NhZ2VFdmVudChzdGF0aWNfY2FzdDxNZXNzYWdlRXZlbnQqPihldmVudCkpOworICAgIGVs
c2UgaWYgKGV2ZW50LT5pc1Byb2dyZXNzRXZlbnQoKSkgeworICAgICAgICBpZiAoZXZlbnQtPmlz
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RP
TVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTVByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7
CisgICAgfQorI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyAgICBlbHNlIGlmIChldmVudC0+aXNT
dG9yYWdlRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01TdG9yYWdlRXZlbnQoc3RhdGlj
X2Nhc3Q8U3RvcmFnZUV2ZW50Kj4oZXZlbnQpKTsKKyNlbmRpZgorICAgIGVsc2UgaWYgKGV2ZW50
LT5pc1dlYktpdEFuaW1hdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0
QW5pbWF0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8V2ViS2l0QW5pbWF0aW9uRXZlbnQqPihldmVudCkp
OworICAgIGVsc2UgaWYgKGV2ZW50LT5pc1dlYktpdFRyYW5zaXRpb25FdmVudCgpKQorICAgICAg
ICByZXQgPSBuZXcgR0RPTVdlYktpdFRyYW5zaXRpb25FdmVudChzdGF0aWNfY2FzdDxXZWJLaXRU
cmFuc2l0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01FdmVudChldmVudCk7CisKKyAgICBldmVudC0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGV2ZW50LCByZXQpOworfQorCitncG9pbnRlciB0
b0dET00oVGV4dCogdGV4dCkKK3sKKyAgICBpZiAoIXRleHQpCisgICAgICAgIHJldHVybiBOVUxM
OworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9k
ZUZvckRvY3VtZW50KHRleHQtPmRvY3VtZW50KCksIHRleHQpOworICAgIGlmIChnb2JqKQorICAg
ICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01Ob2RlICpyZXQgPSBuZXcgR0RPTVRleHQodGV4
dCk7CisgICAgdGV4dC0+ZG9jdW1lbnQoKS0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KHRleHQtPmRvY3VtZW50KCksIHRleHQs
IHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShDU1NSdWxlKiBydWxlKQoreworICAgIGlmICgh
cnVsZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisKKyAgICBncG9p
bnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QocnVsZSk7CisK
KyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpy
ZXQ7CisgICAgc3dpdGNoIChydWxlLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpT
VFlMRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NTdHlsZVJ1bGUoc3RhdGlj
X2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQ1NTUnVsZTo6TUVESUFfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NT
TWVkaWFSdWxlKHN0YXRpY19jYXN0PENTU01lZGlhUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OkZPTlRfRkFDRV9SVUxFOgorICAgICAgICAg
ICAgcmV0ID0gbmV3IEdET01DU1NGb250RmFjZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VS
dWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6
UEFHRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NQYWdlUnVsZShzdGF0aWNf
Y2FzdDxDU1NQYWdlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1J1bGU6OklNUE9SVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NJ
bXBvcnRSdWxlKHN0YXRpY19jYXN0PENTU0ltcG9ydFJ1bGUqPihydWxlKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpDSEFSU0VUX1JVTEU6CisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTUNTU0NoYXJzZXRSdWxlKHN0YXRpY19jYXN0PENTU0NoYXJzZXRSdWxl
Kj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6VkFS
SUFCTEVTX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1ZhcmlhYmxlc1J1bGUo
c3RhdGljX2Nhc3Q8Q1NTVmFyaWFibGVzUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NSdWxlKHJ1
bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcnVsZS0+cmVmKCk7CisgICAg
R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QocnVsZSwgcmV0KTsKKyAgICByZXR1
cm4gcmV0OworfQorCitncG9pbnRlciB0b0dET00oRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBp
ZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8gc2hvdWxkbid0IGJl
IG9uZT8gQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KGVs
ZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpKTsKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNj
cmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZWxlbWVudC0+ZG9jdW1lbnQo
KSwgZWxlbWVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOyAvLyBodWg/
IGVyci4uLgorCisgICAgR0RPTU5vZGUgKnJldDsKKyAgICBEb2N1bWVudCogZG9jID0gZWxlbWVu
dC0+ZG9jdW1lbnQoKTsKKworICAgIGlmIChlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkpCisgICAg
ICAgIHJldCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+
KGVsZW1lbnQpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKGVsZW1lbnQtPmlzU1ZH
RWxlbWVudCgpKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8gLSBzZWUgIzIw
NTg2ICovCisgICAgICAgIC8vcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIoc3RhdGljX2Nhc3Q8
U1ZHRWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAg
IHJldCA9IG5ldyBHRE9NRWxlbWVudChlbGVtZW50KTsKKworICAgIGRvYy0+cmVmKCk7CisgICAg
cmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KGRvYywg
ZWxlbWVudCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKFN0eWxlU2hlZXQqIHN0eWxlU2hl
ZXQpCit7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gTlVMTDsgLyogZXJy
Li4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRE
T01PYmplY3Qoc3R5bGVTaGVldCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2Jq
OworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIGlmIChzdHlsZVNoZWV0LT5pc0NTU1N0eWxl
U2hlZXQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NTdHlsZVNoZWV0KHN0YXRpY19jYXN0
PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBu
ZXcgR0RPTVN0eWxlU2hlZXQoc3R5bGVTaGVldCk7CisKKyAgICBzdHlsZVNoZWV0LT5yZWYoKTsK
KyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qoc3R5bGVTaGVl
dCwgcmV0KTsKK30KKworLyogZGVyaXZlZCBzb3VyY2VzIGF1dG8tZ2VuZXJhdGVkICovCitncG9p
bnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9iaik7CisKK2dwb2ludGVyIHRvR0RP
TShFdmVudFRhcmdldCogdGFyZ2V0KQoreworICAgIGlmICghdGFyZ2V0KQorICAgICAgICByZXR1
cm4gTlVMTDsKKworI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFNWR0VsZW1lbnRJbnN0
YW5jZSBzdXBwb3J0cyBib3RoIHRvU1ZHRWxlbWVudEluc3RhbmNlIGFuZCB0b05vZGUgc2luY2Ug
c28gbXVjaCBtb3VzZSBoYW5kbGluZyBjb2RlIGRlcGVuZHMgb24gdG9Ob2RlIHJldHVybmluZyBh
IHZhbGlkIG5vZGUuCisgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSA9IHRhcmdldC0+
dG9TVkdFbGVtZW50SW5zdGFuY2UoKTsKKyAgICBpZiAoaW5zdGFuY2UpCisgICAgICAgIHJldHVy
biB0b0dET00oZXhlYywgaW5zdGFuY2UpOworI2VuZGlmCisjZW5kaWYKKworICAgIE5vZGUqIG5v
ZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICByZXR1cm4gdG9H
RE9NKG5vZGUpOworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0KiB4aHIgPSB0YXJnZXQtPnRvWE1M
SHR0cFJlcXVlc3QoKSkKKyAgICAgICAgLy8gWE1MSHR0cFJlcXVlc3QgaXMgYWx3YXlzIGNyZWF0
ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVy
ZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHho
cik7CisKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+dG9Y
TUxIdHRwUmVxdWVzdFVwbG9hZCgpKQorICAgICAgICByZXR1cm4gdG9HRE9NKHVwbG9hZCk7CisK
KyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGlmIChET01BcHBsaWNh
dGlvbkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCisgICAg
ICAgIC8vIERPTUFwcGxpY2F0aW9uQ2FjaGUgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNv
IHdlIGRvbid0IG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0
dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNhY2hlKTsKKyNlbmRpZgor
CisgICAgLy8gVGhlcmUgYXJlIHR3byBraW5kcyBvZiBFdmVudFRhcmdldHM6IEV2ZW50VGFyZ2V0
Tm9kZSBhbmQgWE1MSHR0cFJlcXVlc3QuCisgICAgLy8gSWYgU1ZHIHN1cHBvcnQgaXMgZW5hYmxl
ZCwgdGhlcmUgaXMgYWxzbyBTVkdFbGVtZW50SW5zdGFuY2UuCisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdl
dE5vZGUqIHRhcmdldCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0LT50b05vZGUoKTsKKyAgICBpZiAobm9kZSkKKyAg
ICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsKKworICAgIHJldHVybiB0b0dET00oc3RhdGljX2Nh
c3Q8RXZlbnRUYXJnZXQqPih0YXJnZXQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rv
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50
V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
RE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUw
IEBACisvKgorICogVEhJUyBGSUxFIElTIERFUklWRUQgQlkgSEFORCBGUk9NIEFOIEFVVE9NQVRJ
Q0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBJVCBJUyBOT1QgQU4gQVVUTy1HRU5FUkFURUQgRklM
RSBJVCBXQVMgQ1JFQVRFRCBNQU5VQUxMWSAqRlJPTSoKKyAqIEFOIEFVVE8tR0VORVJBVEVEIEZJ
TEUuCisgKiBrZWVwaW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBi
eSBhZGRpbmcKKyAqIGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBz
ZXBhcmF0ZQorICogZ2VuZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeS5oIGFzIGlucHV0LgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIEdET01I
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKKyNkZWZpbmUgR0RPTUhUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnlfaAorCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbU5vZGUuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNz
IEhUTUxFbGVtZW50OworCisgICAgR0RPTU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK30KKworI2VuZGlmIC8vIEdET01IVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5X2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJn
ZXROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50
VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisj
aW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRXZlbnRUYXJn
ZXROb2RlLmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgor
I2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisKK2V4dGVybiAiQyIgeworCit2b2lkCitnZG9tX2V2
ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5v
ZGUgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisgICAgLyoKKyAgICBX
ZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9n
ZXRfcHJpdmF0ZSh0aGl6KTsKKyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZXZlbnRfdGFyZ2V0X25v
ZGVfdHlwZV9hcmcgPSBXZWJDb3JlOjpTdHJpbmcoZXZlbnRfdGFyZ2V0X25vZGVfdHlwZV9hcmcp
OworICAgIGl0ZW0tPmluaXRFdmVudFRhcmdldE5vZGUoX2dfZXZlbnRfdGFyZ2V0X25vZGVfdHlw
ZV9hcmcpOworICAgICovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkxIEBACisvKgorICog
IENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisg
KiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5p
ZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaWZuZGVmIEdkb21ET01CaW5kaW5nX2gKKyNkZWZpbmUgR2RvbURPTUJpbmRpbmdf
aAorCisjaW5jbHVkZSA8a2pzL2ludGVycHJldGVyLmg+CisjaW5jbHVkZSA8a2pzL2xvb2t1cC5o
PgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisjaW5jbHVkZSAiZ2RvbS9HZG9tTm9k
ZS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRH
ZG9tTm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBBdG9taWNTdHJp
bmc7CisgICAgY2xhc3MgRG9jdW1lbnQ7CisgICAgY2xhc3MgRXZlbnQ7CisgICAgY2xhc3MgRnJh
bWU7CisgICAgY2xhc3MgS1VSTDsKKyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIFN0cmluZzsK
KworI2lmIEVOQUJMRShTVkcpCisgICAgY2xhc3MgU1ZHRWxlbWVudDsKKyNlbmRpZgorCisgICAg
Y2xhc3MgR0RPTVNjcmlwdEludGVycHJldGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRp
YyB2b2lkKiBnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKTsKKyAgICAgICAgc3RhdGlj
IHZvaWQqIHB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqKTsKKyAg
ICAgICAgc3RhdGljIHZvaWQgZm9yZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisK
KyAgICAgICAgc3RhdGljIHZvaWQqIGdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5v
ZGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQqIHB1dERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVu
dCosIE5vZGUqLCBHRE9NTm9kZSogbm9kZVdyYXBwZXIpOworICAgICAgICBzdGF0aWMgdm9pZCBm
b3JnZXRET01Ob2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqLCBOb2RlKik7CisgICAgICAgIHN0YXRp
YyB2b2lkIGZvcmdldEFsbERPTU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2lmIDAK
KyAgICAgICAgc3RhdGljIHZvaWQgdXBkYXRlRE9NTm9kZURvY3VtZW50KE5vZGUqLCBEb2N1bWVu
dCogb2xkRG9jLCBEb2N1bWVudCogbmV3RG9jKTsKKyAgICAgICAgc3RhdGljIHZvaWQgbWFya0RP
TU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2VuZGlmCisgICAgfTsKKworICAgIC8v
IFJldHJpZXZlIGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIgZm9yIGEgRE9N
IG9iamVjdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlu
bGluZSB2b2lkKiBjYWNoZURPTU9iamVjdChET01PYmoqIGRvbU9iaikKKyAgICB7CisgICAgICAg
IGlmICghZG9tT2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICov
CisgICAgICAgIGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9i
amVjdChkb21PYmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgR0RPTU9iamVj
dCogcmV0ID0gbmV3IEdkb21ET01PYmooZG9tT2JqKTsKKwkJZG9tT2JqLT5yZWYoKTsKKyAgICAg
ICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvbU9iaiwgcmV0
KTsKKyAgICB9CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFJldHJpZXZlIGZyb20gY2FjaGUs
IG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIgZm9yIGFuIFNWRyBET00gb2JqZWN0LgorICAgIHRl
bXBsYXRlPGNsYXNzIERPTU9iaiwgY2xhc3MgR2RvbURPTU9iaj4gaW5saW5lIHZvaWQqIGNhY2hl
U1ZHRE9NT2JqZWN0KERPTU9iaiogZG9tT2JqLCBTVkdFbGVtZW50KiBjb250ZXh0KQorICAgIHsK
KyAgICAgICAgaWYgKCFkb21PYmopCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGht
bW0uLi4gKi8KKyAgICAgICAgaWYgKHZvaWQqIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NT2JqZWN0KGRvbU9iaikpCisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBH
RE9NT2JqZWN0KiByZXQgPSBuZXcgR2RvbURPTU9iaihkb21PYmosIGNvbnRleHQpOworCQlkb21P
YmotPnJlZigpOworICAgICAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01P
YmplY3QoZG9tT2JqLCByZXQpOworICAgIH0KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBHZG9tRE9NQmluZGluZ19oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxw
IFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMu
CisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIK
KyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUdkb21ET01PYmplY3Qu
aCIKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbURPTU9iamVjdCwgZ2RvbV9k
b21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0
ZSB7CisgICAgIEdET01PYmplY3QgKm1fbm9kZTsKK307CisKKyNkZWZpbmUgR0RPTV9ET01fT0JK
RUNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwg
R0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2Rv
bV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmpl
Y3QgKiBpdGVtKQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01f
T0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07Cisg
ICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitn
ZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAg
ICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFU
RShyZXF1ZXN0KTsKKyAgICByZXR1cm4gcHJpdi0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBn
ZG9tX2RvbV9vYmplY3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01P
YmplY3QqIHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2Jq
ZWN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAgICAvKnByaXYtPm1fbm9kZS0+
aW1wbCgpLT5kZXJlZigpOyovCisgICAgZGVsZXRlIHByaXYtPm1fbm9kZTsgLyogY2FsbHMgbV9p
bXBsLT5kZXJlZigpICovCisKKyAgICBHX09CSkVDVF9DTEFTUyhnZG9tX2RvbV9vYmplY3RfcGFy
ZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21f
b2JqZWN0X2NsYXNzX2luaXQoR2RvbURPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7Cisg
ICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2RvbV9vYmpl
Y3RfZmluYWxpemU7CisKKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNz
LCBzaXplb2YoR2RvbURPTU9iamVjdFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9k
b21fb2JqZWN0X2luaXQoR2RvbURPTU9iamVjdCogcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2Jq
ZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsK
KyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsKK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENh
c3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAg
VG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Cisj
aW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiZ2xpYi1vYmplY3QuaCIKKworZXh0ZXJuICJDIiB7CisKK3ZvaWQKK2dkb21fZG9tX29i
amVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRoaXopCit7CisgICAgZ19yZXR1
cm5faWZfZmFpbCAodGhpeik7CisJLyoKKyAgICBXZWJDb3JlOjpET01PYmplY3QgKiBpdGVtID0g
Z2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBf
Z19kb21fb2JqZWN0X3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9h
cmcpOworICAgIGl0ZW0tPmluaXRET01PYmplY3QoX2dfZG9tX29iamVjdF90eXBlX2FyZyk7CisJ
Ki8KK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTY2MiBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRo
IENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFs
cCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisj
IGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKwor
cGFja2FnZSBDb2RlR2VuZXJhdG9yR09iamVjdDsKKworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxh
dGVzCitteSAkbGljZW5jZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xcQGxrY2wubmV0PgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAo
KTsKK215ICVoZHJJbmNsdWRlcyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkg
JWltcGxUeXBlZGVmcyA9ICgpOworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sK
KyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAg
ICRjb2RlR2VuZXJhdG9yID0gc2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAg
Ymxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisK
K3N1YiBmaW5pc2gKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAn
ZG9tQ2xhc3MnIHN0cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVj
dCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0g
c2hpZnQ7CisKKyAgICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIk
bmFtZVxuIjsKKworICAgICRvYmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdy
aXRlIGNoYW5nZXMKKyAgICBteSAkZm5hbWUgPSAiR2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXpl
KCRuYW1lKTsKKyAgICAkZm5hbWUgPX4gcy9fLy9nOworICAgICRvYmplY3QtPldyaXRlRGF0YSgk
Zm5hbWUpOworfQorCisjIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0
ZU1vZHVsZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBz
aGlmdDsKKworICAgICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1Rv
R09ialR5cGUKK3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRl
Y2FtZWxpemUoJGNsYXNzTmFtZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAg
ICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2Rv
bURPTU9iamVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJH
ZG9tIiAuICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkp
OworfQorc3ViIEdldFBhcmVudEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7
CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBA
eyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xz
VG9HT2JqVHlwZSgkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRz
KDApKSk7Cit9CisKKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAw
LjAxCitzdWIgY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1h
cHsgdWNmaXJzdCAkXyB9IHNwbGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRz
KSk7Cit9CisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQor
c3ViIGRlY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16
QS1aXT8pKFtBLVpdKikoW0EtWl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMp
PT0wOworICAgICAgICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOwor
ICAgICAgICBteSAkdCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRw
MyA/ICRwMSA/ICIke3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAg
JHQ7CisgICAgfWdlOworICAgICRzOworfQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBt
eSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1
cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5h
bWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJH
ZG9tJG5hbWUiOworfQorCitzdWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNo
aWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkg
JG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4g
IiIgaWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9u
ZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEg
ImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAg
ICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICIiIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVk
IGxvbmcgbG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hv
cnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVy
biAiUmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdk
b20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiBpZiAkdHlwZSBlcSAiRE9NT2JqZWN0
IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsKKyAgICAg
ICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xh
c3Mgd3JhcHBlcgorICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJE
T01TdHJpbmciOworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCIgaWYgJHR5
cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJmbG9hdCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAk
dHlwZSBlcSAiYm9vbGVhbiI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAk
dHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lLmgiOworfQorCisjIHJldHVybnMg
MSBpZiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGdvYmplY3Qgd3JhcHBlciBhcm91bmQgdGhlIHJldHVy
biByZXN1bHQKK3N1YiBJc0dET01DbGFzc1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0Owor
ICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICAgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0
ZW5lciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJib29sZWFuIjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJzaG9ydCI7
CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAw
IGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJp
bnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICAg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
IlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9CisKK3N1YiBHZXRQ
cm9wR1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRuYW1lID0gR2V0Q2xh
c3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5nIiBpZiAkdHlwZSBlcSAiRE9NU3Ry
aW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgIHJldHVy
biAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgcmV0dXJu
ICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAiYm9vbGVhbiIgaWYg
JHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hhciIgaWYgJHR5cGUgZXEgImNoYXIi
OworICAgIHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAiaW50
IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAidWNoYXIiIGlmICR0eXBlIGVxICJ1
Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgIHJl
dHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWludDY0IiBpZiAkdHlwZSBlcSAidW5z
aWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9y
dCI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9E
TyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gIm9iamVjdCI7Cit9CisKK3N1YiBH
ZXRHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0
Q2xhc3NOYW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0Q2xhc3NO
YW1lKCR0eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2RlICoiIGlm
ICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisgICAgICAgIHJldHVybiAiZ2NoYXIgKiIgaWYgJHR5
cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiZ2Zsb2F0IiBpZiAkdHlwZSBlcSAi
ZmxvYXQiOworICAgICAgICByZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJlSG93ICIgaWYg
JHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb3VibGUiIGlmICR0eXBl
IGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gImdib29sZWFuIiBpZiAkdHlwZSBlcSAiYm9v
bGVhbiI7CisgICAgICAgIHJldHVybiAiZ2NoYXIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAg
ICAgcmV0dXJuICJnbG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4gImdz
aG9ydCIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0dXJuICJndWNoYXIiIGlmICR0
eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAiZ3VpbnQiIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCI7CisgICAgICAgIHJldHVybiAiZ2ludCIgaWYgJHR5cGUgZXEgImludCI7CisgICAgICAg
IHJldHVybiAiZ3VpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1
cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4g
Imd1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1
cm4gImd1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVy
biAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNz
IHdyYXBwZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lkIjsKKwor
ICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJbmNIZHIKK3sKKyAgICBteSAkdHlw
ZSA9IHNoaWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBHZXRHSW5jbHVkZUhkcigkdHlwZSk7
CisgICAgaWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAiRXZlbnRUYXJn
ZXQiKSB7CisgICAgICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCI7CisgICAg
ICAgIH0KKyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAg
ICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAg
ICAgcmV0dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRyOworICAgICAgICB9CisgICAgfQor
ICAgIHJldHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9
IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIg
bmUgIiIpIHsKKyAgICAgICAgaWYgKElzR0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAg
ICAgICRoZHJQcm9wSW5jbHVkZXN7Imdkb20vIi4kaGRyfSA9IDE7CisgICAgICAgICAgICAkaGRy
UHJvcEluY2x1ZGVzeyJnZG9tL1ByaXZhdGUiLiRoZHJ9ID0gMTsKKyAgICAgICAgICAgICRoZHJQ
cm9wSW5jbHVkZXN7Imdkb20vUHJpdmF0ZUludCIuJGhkcn0gPSAxOworICAgICAgICB9CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9IDE7CisgICAg
ICAgIH0KKyAgICB9CisKK30KKworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hp
ZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAi
IikgeworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAg
JGhkckluY2x1ZGVzeyJnZG9tLyRoZHIifSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAkaGRySW5jbHVkZXN7JGhkcn0gPSAxOworICAgICAgICB9CisgICAgfQorCit9CisKK3N1
YiBhZGRJbmNCb2R5Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBn
ZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJc0dE
T01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyRo
ZHIifSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyRo
ZHJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIEdldFByaXZGbgoreworICAgIG15
ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CisgICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9IHNoaWZ0
OworICAgIG15ICRyZXMgPSBzaGlmdDsKKyAgICBteSAkcGFybSA9IHNoaWZ0OworCisgICAgaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgcmV0dXJuICJXZWJD
b3JlOjpFdmVudFRhcmdldE5vZGUgKiAkcmVzID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRU
YXJnZXROb2RlKj4oZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShzZWxmKSk7IjsK
KyAgICB9CisgICAgcmV0dXJuICJXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogJHJlcyA9ICgk
e2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHBhcm0pKTsiOworfQorCitzdWIgc2tpcFBy
b3BUZW1wb3JhcmlseQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJHByb3BfdHlw
ZSA9IHNoaWZ0OworCisgICAgIyBza2lwIE1lZGlhTGlzdAorICAgIGlmICgkcHJvcF90eXBlIGVx
ICJzdHlsZXNoZWV0czo6TWVkaWFMaXN0IikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisK
KyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICMgICAgcmV0dXJu
IDE7CisgICAgI30KKworICAgICMgc2tpcCBDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbgorICAgIGlm
ICgkcHJvcF90eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIpIHsKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgfQorCisgICAgIyBza2lwIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCisg
ICAgI2lmICgkcHJvcF90eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAg
cmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24iKSB7
CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIEV2ZW50TGlzdGVuZXIK
KyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgIyAgICByZXR1
cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIERPTVdpbmRvdworICAgICNpZiAoJHByb3BfdHlw
ZSBlcSAiRE9NV2luZG93IikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMg
c2tpcCBDb25zdHJ1Y3RvcnMgKHdoYXRldmVyIHRoZXkgYXJlKSBmb3Igbm93LgorICAgIGlmICgk
cHJvcF90eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KworICAgICMgY2FudmFzMmQuLi4uCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgImN1c3RvbSIpIHsK
KyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkFycmF5
IikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAi
RE9NVGltZVN0YW1wIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIFRPRE86
IFNWRworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQb2RUeXBlKCR0eXBlKSB8fCAkY29kZUdl
bmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7CisgICAgICAgIHJldHVybiAxOwor
ICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIFVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRp
b24KK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgIyBza2lwcGVkIG91dCBDYW52YXNQ
aXhlbEFycmF5IC0gc2VlIEpTQ2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAgZm9yIHdoeS4KKyAg
ICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiTm9kZSIgb3IgJHR5cGUgZXEgIkRvY3VtZW50IiBvciAk
dHlwZSBlcSAiSFRNTENvbGxlY3Rpb24iIG9yICR0eXBlIGVxICJTVkdQYXRoU2VnIiBvciAkdHlw
ZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUgZXEgIkNTU1J1bGUiIG9yICR0eXBlIGVxICJDU1NW
YWx1ZSIgb3IgJHR5cGUgZXEgIkV2ZW50IiBvciAkdHlwZSBlcSAiRWxlbWVudCIgb3IgJHR5cGUg
ZXEgIlRleHQiOworICAgIHJldHVybiAwOworfQorCisKKyMgR2VuZXJhdGUgaGVhZGVyIGFuZCBp
bXBsCitzdWIgR2VuZXJhdGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRh
dGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJl
bnQgPSBAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFz
TGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50OworICAgIG15ICRwYXJlbnRDbGFzc05hbWUg
PSBHZXRQYXJlbnRDbGFzc05hbWUoJGRhdGFOb2RlKTsKKyAgICBteSAkcGFyZW50R09ialR5cGUg
PSBHZXRQYXJlbnRHT2JqVHlwZSgkZGF0YU5vZGUpOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0g
JGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVy
ZmFjZU5hbWUpOworICAgIG15ICRoZHJOYW1lID0gR2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFtZSk7
CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBpbXBsIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBjUHJl
Zml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgcHVzaChAY1ByZWZpeCwg
IlxuIik7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJHRE9NQmluZGluZy5oIn0gPSAxOworICAgICRp
bXBsSW5jbHVkZXN7Imdkb20vJGhkck5hbWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJn
ZG9tL1ByaXZhdGUke2hkck5hbWV9LmgifSA9IDE7CisKKyAgICBteSAkcGFyZW50SW50ZXJmYWNl
TmFtZSA9ICJET01PYmplY3QiOworICAgIG15ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmpl
Y3QiOworICAgIG15ICRwYXJlbnRIZHJOYW1lID0gIkdkb21ET01PYmplY3QiOworICAgIGlmICgk
cGFyZW50Q2xhc3NOYW1lIG5lICJHT2JqZWN0IikKKyAgICB7CisgICAgICAgICRwYXJlbnRJbnRl
cmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOworICAgICAgICBpZiAoJHBh
cmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRH
SWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAg
ICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7Cisg
ICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAkcGFyZW50R0lm
YWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVz
eyJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3si
Z2RvbS9Qcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAkaGRySW5jbHVk
ZXN7Imdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1ZGVz
eyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAwOworICAgIH0KKworICAgICMgVE9ETyAt
IG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAg
IyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9HRE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJO
b2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRWxlbWVudC5oIn0gPSAxOworICAgICRp
bXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVs
ZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7Cisg
ICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVz
eyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0gMTsK
KyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhlbEFycmF5LmgifSA9IDE7CisgICAgJGltcGxJ
bmNsdWRlc3siRE9NV2luZG93LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siVGV4dC5oIn0g
PSAxOworICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR1N0cmluZ0NvbnZlcnQuaCJ9ID0gMTsKKwor
ICAgICMgWFhYIFRPRE86IG1ha2UgdGhpcyBvcHRpb25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAg
b3IgZmluZCBhIGJldHRlciB3YXkuCisgICAgbXkgJGhhY2tEZWNscyA9IDw8ICJFT0YiOworbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRvR0RPTShOb2RlKiBub2RlKTsKKyAgICBn
cG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShDU1NS
dWxlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRWxlbWVudCogbm9kZSk7CisgICAgZ3Bv
aW50ZXIgdG9HRE9NKERvY3VtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oSFRNTENv
bGxlY3Rpb24qIG5vZGUpOworICAgIC8vZ3BvaW50ZXIgdG9HRE9NKFNWR1BhdGhTZWcqIG5vZGUp
OworICAgIGdwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBub2RlKTsKKyAgICBncG9pbnRlciB0
b0dET00oRXZlbnRUYXJnZXROb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRU
YXJnZXQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudCogbm9kZSk7CisgICAgZ3Bv
aW50ZXIgdG9HRE9NKENhbnZhc1BpeGVsQXJyYXkqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RP
TShET01XaW5kb3cqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShUZXh0KiBub2RlKTsKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJGhhY2tEZWNs
cyk7CisKKyAgICBwdXNoKEBjQm9keSwgIm5hbWVzcGFjZSBXZWJDb3JlIHtcbiIpOworCisgICAg
IyBHZXQgY29ycmVjdCBwYXNzL3N0b3JlIHR5cGVzIHJlc3BlY3RpbmcgUE9EVHlwZSBmbGFnCisg
ICAgbXkgJHBvZFR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBl
In07CisgICAgbXkgJHBhc3NUeXBlID0gJHBvZFR5cGUgPyAiSlNTVkdQT0RUeXBlV3JhcHBlcjwk
cG9kVHlwZT4qIiA6ICIkaW50ZXJmYWNlTmFtZSoiOworCisgICAgaWYgKCR7aW50ZXJmYWNlTmFt
ZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50
YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAg
ICAgIyAgICBwdXNoKEBjQm9keSwgIkpTQzo6SlNWYWx1ZSogdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIG9iaiwgU1ZHRWxlbWVudCogY29u
dGV4dClcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJh
bWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgICAgIHB1c2goQGNCb2R5LCAiSlND
OjpKU1ZhbHVlKiB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAkcGFzc1R5cGUgb2JqLCBTVkdF
bGVtZW50KiBjb250ZXh0KVxuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAgcHVz
aChAY0JvZHksICJncG9pbnRlciB0b0dET00oV2ViQ29yZTo6JHBhc3NUeXBlIG9iailcbiIpOwor
ICAgICAgICAjfQorCisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAgICAgICNpZiAo
JHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gY2FjaGVT
VkdET01PYmplY3Q8SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4sICRjbGFzc05hbWUsICR7
Y2xhc3NOYW1lfVByb3RvdHlwZT4oZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAgICAj
fSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUp
KSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2Jq
ZWN0PCRpbXBsQ2xhc3NOYW1lLCAkY2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGV4
ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICByZXR1cm4gV2ViQ29yZTo6Y2FjaGVET01PYmplY3Q8V2ViQ29yZTo6
JGludGVyZmFjZU5hbWUsIEdET00kaW50ZXJmYWNlTmFtZT4ob2JqKTtcbiIpOworICAgICAgICAj
fQorICAgICAgICBwdXNoKEBjQm9keSwgIn1cbiIpOworICAgIH0KKworICAgIHB1c2goQGNCb2R5
LCAifSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAqL1xuIik7CisgICAgbXkgJGltcGxDb250ZW50ID0g
IiI7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNCb2R5LCAidXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiZXh0ZXJuIFwiQ1wiIHtcblxuIik7CisKKyAg
ICAjIEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAaFByZWZpeCA9IHNwbGl0
KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgICAgICAjcHVzaChAaFByZWZpeCwgIlxuIik7
CisKKyAgICAjIEhlYWRlciBndWFyZAorICAgICAgICBteSAkZ3VhcmQgPSAiX18iIC4gJGNsYXNz
TmFtZSAuICJfSF9fIjsKKworICAgIG15ICRjbHNDYXBzID0gc3Vic3RyKENsc1RvR09ialR5cGUo
JGNsYXNzTmFtZSksIDUpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSAiZ2RvbV8iIC4gZGVj
YW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgI215ICRwYXJlbnRDbHNDYXBzID0gIkdET01f
IiAuIENsc1RvR09ialR5cGUoJHBhcmVudEludGVyZmFjZU5hbWUpOworCisgICAgQGhQcmVmaXhH
dWFyZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUgJGd1YXJkCitFT0YKKwor
ICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworR19CRUdJTl9ERUNMUworCitFT0YKKworICAg
IHB1c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwg
IkVPRiI7CisKKyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAgICAoJHtsY2Fz
ZV9pZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfShvYmopICAg
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfJHtj
bHNDYXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0NMQVNTKGts
YXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Ns
c0NhcHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc30ob2Jq
KSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFXyR7
Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2Rl
ZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VU
X0NMQVNTKChvYmopLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfUNsYXNzKSkK
KwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtjbGFzc05hbWV9UHJpdmF0
ZTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFyZW50Q2xhc3NOYW1lfSBwYXJl
bnRfaW5zdGFuY2U7CisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVj
dCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9
OworCitXRUJLSVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQp
OworCitFT0YKKworICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxD
b250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7Z3Vh
cmR9X1BST1BfCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxDb250ZW50KTsK
KworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgJGhkclBy
b3BJbmNsdWRleyJnbGliLW9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiZ2Rv
bS9Qcml2YXRlSW50JHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVk
ZXsiR0RPTU9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiJHtpbnRlcmZhY2VO
YW1lfS5oIn0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7
Z3VhcmR9X0lOVF8KKyNkZWZpbmUgJHtndWFyZH1fSU5UXworI2luY2x1ZGUgImdsaWItb2JqZWN0
LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50JHtwYXJlbnRIZHJOYW1lfS5oIgorI2luY2x1
ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKwor
ICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVudCk7CisKKyAgICAgaWYgKCR7aW50
ZXJmYWNlTmFtZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNNYW51YWxUb0pT
SW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAgICRpbXBsQ29udGVudCA9
IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRvR0RPTSgke2lu
dGVyZmFjZU5hbWV9KiBub2RlKTsKK30gLyogbmFtZXNwYWNlIFdlYkNvcmUgKi8gCitFT0YKKyAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworICAgIH0KKyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiR19CRUdJTl9ERUNMU1xuIik7CisKKyAgICAjQ2xhc3MgZGVjbGFyYXRp
b24KKyAgICAjaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgIyAgICBw
dXNoKEBoQm9keUludGVybmFsLCAiY2xhc3MgR0RPTSRpbnRlcmZhY2VOYW1lIHtcbiIpOworICAg
ICN9IGVsc2UgeworICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiY2xhc3MgR0RPTSRpbnRl
cmZhY2VOYW1lIDogcHVibGljICRwYXJlbnRHSWZhY2VOYW1lIHtcbiIpOworICAgICAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiICAgIHR5cGVkZWYgJHBhcmVudEdJZmFjZU5hbWUgQmFzZTtcbiIp
OworICAgICN9CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInB1YmxpYzpcbiIpOworCisgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBpbnQgZ2V0R29ialR5cGUoKSB7IHJldHVybiBHRE9N
X1RZUEVfJHtjbHNDYXBzfTsgfVxuIik7CisKKyAgICBteSAkbmVlZHNTVkdDb250ZXh0ID0gMDsK
KyAgICAjIENvbnN0cnVjdG9yCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBHRE9NJGlu
dGVyZmFjZU5hbWUoUGFzc1JlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gaW1wbCIgLiAo
JG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQiIDogIiIpIC4gIik7XG4i
KTsKKworICAgICMgRGVzdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdmly
dHVhbCB+R0RPTSRpbnRlcmZhY2VOYW1lKCk7XG4iKSBpZiAoISRoYXNQYXJlbnQgb3IgJGludGVy
ZmFjZU5hbWUgZXEgIkRvY3VtZW50Iikgb3IgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7
CisKKyAgICBpZiAoISRoYXNQYXJlbnQgfHwgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ci
KSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogaW1wbCgpIGNvbnN0
IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZXh0LmdldCgpOyB9XG5cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJw
cml2YXRlOlxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQ
dHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0O1xuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICBSZWZQdHI8SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4gPiBtX2lt
cGw7XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1l
dGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7
IH1cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxlbWVu
dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsKKyAg
ICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAgICAj
ICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29udGV4
dDtcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPCRp
bXBsQ2xhc3NOYW1lID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSogaW1w
bCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuXG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRlOlxuIik7CisgICAgICAgICAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgIFJlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gbV9pbXBsO1xu
Iik7CisgICAgICAgICN9CisgICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgeworICAgICAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3RcbiIpOwor
ICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHtcbiIpOworICAgICAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JGludGVy
ZmFjZU5hbWUqPihCYXNlOjppbXBsKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJu
YWwsICIgICAgfVxuIik7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJ9O1xuIik7
CisKKyAgICAjIENvbnN0cnVjdG9yCisgICAgcHVzaChAY0JvZHksICJHRE9NJHtpbnRlcmZhY2VO
YW1lfTo6R0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5h
bWU+IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6
ICIiKSAuICIpXG4iKTsKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsK
KyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOm1faW1wbChpbXBsKVxuIik7CisgICAgfSBlbHNp
ZiAoJGhhc1BhcmVudCkgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRHSWZh
Y2VOYW1lKGltcGwiIC4gKCRwYXJlbnROZWVkc1NWR0NvbnRleHQgPyAiLCBjb250ZXh0IiA6ICIi
KSAuICIpXG4iKSBpZiAoJGludGVyZmFjZU5hbWUgbmUgIkRPTVdpbmRvdyIpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDogJHBhcmVudEdJZmFjZU5hbWUoKVxuIikg
OworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAsIG1fY29udGV4dChjb250ZXh0KVxuIikgaWYg
JG5lZWRzU1ZHQ29udGV4dDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBtX2ltcGwoaW1w
bClcbiIpOworICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAgcHVzaChAY0Jv
ZHksICJ9XG5cbiIpOworCisgICAgIyBEZXN0cnVjdG9yCisgICAgaWYgKCEkaGFzUGFyZW50IG9y
ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgcHVzaChAY0JvZHks
ICJHRE9NJHtpbnRlcmZhY2VOYW1lfTo6fkdET00kaW50ZXJmYWNlTmFtZSgpXG4iKTsKKyAgICAg
ICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBtX2lt
cGwuZ2V0KCktPmRlcmVmKCk7XG4iKTsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJO
b2RlIikgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6R0RPTVNjcmlw
dEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQobV9pbXBsLT5kb2N1bWVudCgp
LCBtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAjaWYg
KCRwb2RUeXBlKSB7CisgICAgICAgICAgICAjICAgIG15ICRhbmltYXRlZFR5cGUgPSAkaW1wbENs
YXNzTmFtZTsKKyAgICAgICAgICAgICMgICAgJGFuaW1hdGVkVHlwZSA9fiBzL1NWRy9TVkdBbmlt
YXRlZC87CisKKyAgICAgICAgICAgICMgICAgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVy
CisgICAgICAgICAgICAjICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUo
JGFuaW1hdGVkVHlwZSkgYW5kICRwb2RUeXBlIG5lICJmbG9hdCIpIHsKKyAgICAgICAgICAgICMg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIEpTU1ZHRHluYW1pY1BPRFR5cGVXcmFwcGVyQ2FjaGU8
JHBvZFR5cGUsICRhbmltYXRlZFR5cGU+Ojpmb3JnZXRXcmFwcGVyKG1faW1wbC5nZXQoKSk7XG4i
KTsKKyAgICAgICAgICAgICMgICAgfQorICAgICAgICAgICAgI30KKyAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2Jq
ZWN0KG1faW1wbC5nZXQoKSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQGNCb2R5
LCAiXG59XG5cbiIpOworICAgIH0KKworICAgICMgRG9jdW1lbnQgbmVlZHMgYSBzcGVjaWFsIGRl
c3RydWN0b3IgYmVjYXVzZSBpdCdzIGEgc3BlY2lhbCBjYXNlIGZvciBjYWNoaW5nLiBJdCBuZWVk
cworICAgICMgaXRzIG93biBzcGVjaWFsIGhhbmRsaW5nIHJhdGhlciB0aGFuIHJlbHlpbmcgb24g
dGhlIGNhY2hpbmcgdGhhdCBOb2RlIG5vcm1hbGx5IGRvZXMuCisgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJEb2N1bWVudCIpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICJHRE9NJHtpbnRlcmZh
Y2VOYW1lfTo6fkdET00kaW50ZXJmYWNlTmFtZSgpXG4iKTsKKyAgICAgICAgcHVzaChAY0JvZHks
ICJ7XG4gICAgV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3Qo
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KGltcGwoKSkpO1xufVxuXG4i
KTsKKyAgICB9CisKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCJ9
ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAg
JGltcGxJbmNsdWRlc3siR0RPTU9iamVjdC5oIn0gPSAxOworCisgICAgJGltcGxUeXBlZGVmc3si
JGNsYXNzTmFtZSJ9ID0gMTsKKyAgICAkaW1wbFR5cGVkZWZzeyIke2NsYXNzTmFtZX1DbGFzcyJ9
ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmlu
ZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0cHJpdmF0ZS5oPiAKKyNpbmNsdWRlICJET01X
aW5kb3cuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUg
Ik5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUg
Ik5hbWVkTm9kZU1hcC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisj
aW5jbHVkZSAiQ2FudmFzUGF0dGVybi5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlv
bmFsICovCisjaW5jbHVkZSAiQ2FudmFzR3JhZGllbnQuaCIgLyogeXVrazogVE9ETyAtIG1ha2Ug
dGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1N0eWxlLmgiIC8qIHl1a2s6IFRPRE8g
LSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgPGdk
b20vUHJpdmF0ZUdkb21ET01PYmplY3QuaD4gLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRp
b25hbCAqLworI2luY2x1ZGUgPGdkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oPiAvKiB5dWtrOiBU
T0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSA8Z2RvbS9Qcml2YXRlR2RvbUV2
ZW50VGFyZ2V0Tm9kZS5oPiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsIG9uIEV2
ZW50VGFyZ2V0Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCisjaW5jbHVkZSA8Z2Rv
bS8ke2hkck5hbWV9Lmg+CisjaW5jbHVkZSA8Z2RvbS9Qcml2YXRlJHtoZHJOYW1lfS5oPgorI2lu
Y2x1ZGUgPGdkb20vUHJpdmF0ZUludCR7aGRyTmFtZX0uaD4KKyNpbmNsdWRlIDxnZG9tLyR7aGRy
TmFtZX1wcm9wcy5oPgorCisjaW5jbHVkZSAiZ2RvbS9HU3RyaW5nQ29udmVydC5oIgorCisjaW5j
bHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAi
VGV4dC5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTUnVsZS5oIgorI2lu
Y2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgPGdk
b20vR2RvbUV2ZW50Lmg+CisKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29u
dGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworJHtoYWNrRGVjbHN9CisK
K0dfQkVHSU5fREVDTFMKKworR19ERUZJTkVfVFlQRSgke2NsYXNzTmFtZX0sICR7bGNhc2VfaWZh
Y2VuYW1lfSwgJHtwYXJlbnRHT2JqVHlwZX0pOworCisvKgorc3RydWN0IF8ke2NsYXNzTmFtZX1Q
cml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICppdGVtOworfTsK
KworI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RB
TkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9
UHJpdmF0ZSkpCisqLworR19FTkRfREVDTFMKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgor
JHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCkKK3sK
K0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgICAgICRp
bXBsQ29udGVudCA9IDw8ICJFT0YiOworICAgIEdET00ke2ludGVyZmFjZU5hbWV9ICpyZXM7Cisg
ICAgcmVzID0gc3RhdGljX2Nhc3Q8R0RPTSR7aW50ZXJmYWNlTmFtZX0qPihnZG9tX2RvbV9vYmpl
Y3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihyZXMtPmltcGwoKSk7CitFT0YK
KyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAjIFByb3BlcnRpZXMK
KyAgICBteSAkZnVuY3Rpb25OYW1lUHJlZml4ID0gJGxjYXNlX2lmYWNlbmFtZTsgCisgICAgU0tJ
UFBST1A6IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7
CisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5uYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAg
bXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworICAgICAgICBteSAkY3VzdG9t
ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07
CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisK
KyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7Cisg
ICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgYWRkUHJvcEluY0hkcigkcHJvcF90eXBlKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9w
LCAiV0VCS0lUX0FQSSAkdHlwZVxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3BfZ2V0XyIg
LiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworICAgICAgICAjcHVzaChAaEJv
ZHlQcm9wLCAiV0VCS0lUX0FQSSB2b2lkXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJvcF9z
ZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZywgJHR5cGUiIC4gInZhbHVlKTtcblxuIik7
CisgICAgfQorCisgICAgIyBQcm9wZXJ0aWVzCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
Cit9CisKK0dfQkVHSU5fREVDTFMKKworZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBM
QVNUX1NJR05BTAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxd
ID0geyAwLCB9OworCitlbnVtIHsKKyAgICBQUk9QXzAsCitFT0YKKyAgICBwdXNoKEBjQm9keVBy
aXYsICRpbXBsQ29udGVudCk7CisKKyAgICBteSBAdHh0X2luc3RhbGxfcHJvcHMgPSAoKTsKKyAg
ICBteSBAdHh0X3NldF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfZ2V0X3Byb3BzID0gKCk7CisK
KyAgICBteSAkcHJpdl9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNlTmFtZSwgJHtsY2FzZV9pZmFj
ZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworCisgICAgbXkgJHR4dF9nZXRfcHJvcCA9IDw8ICJF
T0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm4oR09i
amVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAgIEdWYWx1
ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQorewor
ICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAgICRw
cml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0X3By
b3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9GIjsK
K3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuKEdPYmplY3Qg
KiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVmFs
dWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKK3sK
KyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsKKyAgICAk
cHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0X3NldF9w
cm9wcywgJHR4dF9zZXRfcHJvcCk7CisKKyAgICBTS0lQRU5VTTogZm9yZWFjaCBteSAkYXR0cmli
dXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHByb3BfbmFtZSA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgbXkgJHNldHByb3BfbmFtZV9m
biA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9wX25hbWUpOworICAgICAgICBteSAk
Z2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHByb3BfbmFtZSk7
CisKKyAgICAgICAgbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsKKyAgICAg
ICAgbXkgJHByb3BDYXBzID0gdWMoJHByb3BOYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlw
ZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BDYXBz
fSI7CisgICAgICAgIG15ICR7cHJvcF9ndHlwZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5cGUpOwor
ICAgICAgICBpZiAoJHByb3BfZ3R5cGUgZXEgImV2ZW50X3RhcmdldCIpIHsKKyAgICAgICAgICAg
ICRwcm9wX2d0eXBlID0gImV2ZW50X3RhcmdldF9ub2RlIjsKKyAgICAgICAgfQorICAgICAgICBt
eSAke3Byb3BHVHlwZX0gPSB1YygkcHJvcF9ndHlwZSk7CisgICAgICAgIG15ICRsY2FzZV9ndHlw
ZW5hbWUgPSAiZ2RvbV8iIC4gJHByb3BfZ3R5cGU7CisKKyAgICAgICAgbXkgJGN1c3RvbSA9ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCisg
ICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworICAgICAg
ICBpZiAoc2tpcFByb3BUZW1wb3JhcmlseSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAgICAgICAg
ICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBwdXNo
KEBjQm9keVByaXYsICIgICAgJHtwcm9wRW51bX0sXG4iKTsKKworICAgICAgICBteSAkZ3R5cGUg
PSBHZXRQcm9wR1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICRncGFyYW1mbGFnID0gIkdf
UEFSQU1fUkVBREFCTEUiOworICAgICAgICBteSAkd3JpdGVhYmxlID0gJGF0dHJpYnV0ZS0+dHlw
ZSAhfiAvXnJlYWRvbmx5LzsKKyAgICAgICAgbXkgJGNvbnN0ID0gInJlYWQtb25seSAiOworICAg
ICAgICBpZiAoJHdyaXRlYWJsZSAmJiAkY3VzdG9tKSB7CisgICAgICAgICAgICAkY29uc3QgPSAi
cmVhZC1vbmx5IChkdWUgdG8gY3VzdG9tIGZ1bmN0aW9ucyBuZWVkZWQgaW4gZ2RvbXdlYmtpdCki
OworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHdy
aXRlYWJsZSAmJiAhJGN1c3RvbSkgeworICAgICAgICAgICAgJGdwYXJhbWZsYWcgPSAiR19QQVJB
TV9SRUFEV1JJVEUiOworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtd3JpdGUgIjsKKyAgICAg
ICAgfQorCisgICAgICAgIG15ICRfZ3R5cGUgPSAkZ3R5cGU7CisgICAgICAgIGlmICgkZ3R5cGUg
ZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICRfZ3R5cGUgPSAidWludCI7ICMgeXVrLgorICAg
ICAgICB9CisgICAgICAgICRuaWNrID0gZGVjYW1lbGl6ZSgiJHtpbnRlcmZhY2VOYW1lfV8ke3By
b3BOYW1lfSIpOworICAgICAgICAkbG9uZyA9ICIke2NvbnN0fSAke3R5cGV9ICR7aW50ZXJmYWNl
TmFtZX0uJHtwcm9wTmFtZX0iOworICAgICAgICBteSAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJF
T0YiOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdfa2xhc3MsICR7cHJv
cEVudW19LAorICAgICAgICAgICAgZ19wYXJhbV9zcGVjXyR7X2d0eXBlfSAoIiR7cHJvcE5hbWV9
IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICIkbmljayIsIC8qIHNob3J0IGRlc2NyaXB0
aW9uICovCisgICAgICAgICAgICAgICAgIiRsb25nIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0
aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCitFT0YKKyAgICAgICAgcHVzaChAdHh0X2lu
c3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3By
b3AgPSAiLyogVE9ETyEgJGd0eXBlICovXG4iOworCisgICAgICAgIGlmICgkd3JpdGVhYmxlKSB7
CisKKyAgICAgICAgICAgIG15ICRvayA9IDA7CisgICAgICAgICAgICBteSAkY29udmVydF9mbiA9
ICIiOworICAgICAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAg
ICAgICRjb252ZXJ0X2ZuID0gIldlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgiOworICAgICAgICAg
ICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNpZiAoJGd0eXBl
IGVxICJib29sZWFuIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5l
ICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlk
ZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7
CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAiZG91YmxlIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJE
T01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEg
d2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0Iikgewor
ICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEg
InVsb25nIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01X
aW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hh
dCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRP
RE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQK
KyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0g
MTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAg
ICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVjaGFyIikg
eworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgImNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICMgWFhYIFRPRE8gLSBza2lwIExvY2F0aW9uCisgICAgICAgICAgICBpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIkxvY2F0aW9uIikgeworICAgICAgICAgICAgICAgICRvayA9IDA7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgkb2spIHsKKyAgICAgICAgICAgICAgICBw
dXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7Cisg
ICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZSBlYyA9IDA7XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9
OworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGdzZWxmLT5z
ZXQke3NldHByb3BfbmFtZV9mbn0oJHtjb252ZXJ0X2ZufShnX3ZhbHVlX2dldF8kZ3R5cGUgKHZh
bHVlKSkiKTsKKworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIsIGVjIikg
aWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICBwdXNo
KEB0eHRfc2V0X3Byb3BzLCAiKTtcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3Nl
dF9wcm9wcywgIiAgICAgICAgYnJlYWs7XG4gICAgfVxuIik7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgY2FzZSAke3Byb3BFbnVt
fTpcbiAgICB7XG4iKTsKKworICAgICAgICBteSAkZXhjZXB0aW9uID0gIiI7CisgICAgICAgIGlm
IChAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAkZXhjZXB0
aW9uID0gImVjIjsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBt
eSAkY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkcG9zdF9jb252ZXJ0X2ZuID0gIiI7Cisg
ICAgICAgIG15ICRkb25lID0gMDsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgewor
ICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1ZV90YWtlX3N0
cmluZyAodmFsdWUsIEdTdHJpbmdDb252ZXJ0KGdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtl
eGNlcHRpb259KSkpO1xuIik7CisgICAgICAgICAgICAkZG9uZSA9IDE7CisgICAgICAgIH0KKyAg
ICAgICAgZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgIyRjb252ZXJ0
X2ZuID0gIldURjo6Z2V0UHRyKCR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZSgiOworICAg
ICAgICAgICAgIyRjb252ZXJ0X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNl
X2d0eXBlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4g
PSAiJHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtw
cm9wX3R5cGV9PigiOworICAgICAgICAgICAgIyRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAg
ICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBlOworICAgICAgICAgICAg
JHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OiR7
cHJvcF90eXBlfT4gcHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0p
OworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QgKHZhbHVlLCBXZWJDb3JlOjp0b0dET00ocHRy
LmdldCgpKSk7CitFT0YKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0
X3Byb3ApOworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KCEkZG9uZSkgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192
YWx1ZV9zZXRfJF9ndHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25h
bWVfZm59KCR7ZXhjZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xuIik7CisgICAgICAgIH0K
KworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4i
KTsKKworICAgICAgICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/Pz8KKyAgICAgICAg
IyBjYW4gaXQgYmUgZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0eXBlCisgICAgICAg
ICMgYW5kIGdldHRpbmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUgbWluLW1heCBmb3IgZXhh
bXBsZT8KKyAgICAgICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklOVCwgICAgICAg
IC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBtYXggKi8KKyAgICAgICAg
ICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZMT0FULCAgICAgICAgLyog
bWluICovCisgICAgICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4ICovCisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVP
RiI7CisgICAgICAgICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAvKiBtaW4gKi8KKyAgICAg
ICAgICAgICAgICBHX01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAg
ICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2
NCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAg
ICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDY0
LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAkdHh0
X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBt
aW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAg
ICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlw
ZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7
CisgICAgICAgICAgICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWluICovCisgICAgICAgICAg
ICAgICAgR19NQVhMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
ZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAg
ICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAg
MCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVCwgLyogbWF4ICov
CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9
IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAg
ICAgICAgICAgICAgIEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAg
ICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNo
YXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAg
ICAgICAgICAgIEdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdf
TUFYSU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQg
Ki8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAg
ICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAg
ICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAvKiBtYXggKi8KKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8
PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHRE9NX1RZUEVfJHtwcm9wR1R5cGV9
LCAvKiBnb2JqZWN0IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAgICAgIHB1c2goQHR4dF9p
bnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKSR7Z3BhcmFtZmxh
Z30pKTsKKworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3Rh
bGxfcHJvcCk7CisKKworICAgIH0KKworICAgIHB1c2goQGNCb2R5UHJpdiwgIn07XG5cbiIpOwor
CisKKyAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CisgICBkZWZhdWx0OgorICAgICAgICBH
X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7
CisgICAgICAgIGJyZWFrOworICAgIH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMs
ICR0eHRfZ2V0X3Byb3ApOworCisgICAgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworICAgZGVm
YXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwg
cHJvcF9pZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CitFT0YKKyAgICBwdXNo
KEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X2dldF9w
cm9wcyA9IDw8ICJFT0YiOworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIHNlbGYtPmFnZSA9
IGdfdmFsdWVfZ2V0X2ludCAodmFsdWUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFJP
UF9BR0U6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgc2VsZi0+YWdlKTsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgKyAgIGdfdmFsdWVfaW5pdCgmcGFyYW1zWzBdLCBHX1RZUEVf
RlJPTV9JTlNUQU5DRShvYmplY3QpKTsKKyAgICAgICAgKyAgIGdfdmFsdWVfc2V0X2luc3RhbmNl
KCZwYXJhbXNbMF0sIChncG9pbnRlcilvYmplY3QpOworCitFT0YKKworICAgICMgVE9ETzogd29y
ayBvdXQgaWYgaXQncyBhcHByb3ByaWF0ZSB0byBzcGxpdCB0aGlzIGludG8gbWFueSBkaWZmZXJl
bnQKKyAgICAjIHNpZ25hbHMgZS5nLiAiY2xpY2siIGV0Yy4KKyAgICBteSAkdHh0X2luc3RhbGxf
c2lnbmFscyA9ICIiOworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIG9y
CisgICAgICAgICRpbnRlcmZhY2VOYW1lIGVxICJYTUxIdHRwUmVxdWVzdCIpIHsKKyAgICAgICAg
JHR4dF9pbnN0YWxsX3NpZ25hbHMgPSA8PCAiRU9GIjsKKyAgICBldmVudF9zaWduYWxzW0JST1dT
RVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwKKyAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1MocmVxdWVzdENsYXNzKSwKKyAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdO
QUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04gfAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVEICApLAorICAgICAgICAwLAorICAg
ICAgICBOVUxMLAorICAgICAgICBOVUxMLAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19P
QkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgIEdET01fVFlQ
RV9FVkVOVCwgR19UWVBFX0JPT0xFQU4pOworRU9GCisgICAgfQorCisgICAgJGltcGxDb250ZW50
ID0gPDwgIkVPRiI7CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZShH
T2JqZWN0KiBvYmplY3QpCit7CisgICAgLyoke2NsYXNzTmFtZX0qIHJlcXVlc3QgPSBHRE9NXyR7
Y2xzQ2Fwc30ob2JqZWN0KTsqLworICAgIC8qJHtjbGFzc05hbWV9UHJpdmF0ZSogcHJpdiA9IHJl
cXVlc3QtPnByaXY7Ki8KKworICAgIC8qR09iamVjdENsYXNzICpwYXJlbnRfY2xhc3MgPSBnX3R5
cGVfY2xhc3NfcGVlayAoZ190eXBlX3BlZWtfcGFyZW50ICgke3BhcmVudEdPYmpUeXBlfSkpOyov
CisKKyAgICAvKiBGcmVlIGFueSBtZW1vcnkgb3IgY2xvc2UgYW55IGZpbGVzICovCisKKyAgICAv
KnBhcmVudF9jbGFzcy0+IGZpbmFsaXplIChvYmplY3QpOyovCisKKyAgICBHX09CSkVDVF9DTEFT
Uygke2xjYXNlX2lmYWNlbmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30K
KworQHR4dF9zZXRfcHJvcHMKKworQHR4dF9nZXRfcHJvcHMKKworc3RhdGljIHZvaWQgJHtsY2Fz
ZV9pZmFjZW5hbWV9X2NsYXNzX2luaXQoJHtjbGFzc05hbWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykK
K3sKKyAgICBHT2JqZWN0Q2xhc3MgKmdfa2xhc3MgPSBHX09CSkVDVF9DTEFTUyAocmVxdWVzdENs
YXNzKTsKKyAgICBnX2tsYXNzLT5maW5hbGl6ZSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6
ZTsKKyAgICBnX2tsYXNzLT5zZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9w
cm9wZXJ0eV9mbjsKKyAgICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFt
ZX1fX2dldF9wcm9wZXJ0eV9mbjsKKworQHR4dF9pbnN0YWxsX3Byb3BzCisKKyR0eHRfaW5zdGFs
bF9zaWduYWxzCisKKyAgICAvKmdfdHlwZV9jbGFzc19yZW1vdmVfcHJpdmF0ZShyZXF1ZXN0Q2xh
c3MsIHNpemVvZigke2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgJHts
Y2FzZV9pZmFjZW5hbWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0KQoreworICAgIC8qJHtj
bGFzc05hbWV9UHJpdmF0ZSogcHJpdiA9IEdET01fJHtjbHNDYXBzfV9HRVRfUFJJVkFURShyZXF1
ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfQorCitFT0YKKworICAgIHB1c2go
QGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsSW5jbHVkZXN7Imdkb20vUHJp
dmF0ZUludEdkb20ke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxDb250ZW50ID0g
PDwgIkVPRiI7CisKKyNpZm5kZWYgJHtndWFyZH1fUFJJVl8KKyNkZWZpbmUgJHtndWFyZH1fUFJJ
Vl8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vJHtwYXJlbnRIZHJO
YW1lfS5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKy8qI2luY2x1ZGUgImdkb20vUHJpdmF0
ZSR7cGFyZW50SGRyTmFtZX0uaCIqLworLypHX0JFR0lOX0RFQ0xTKi8KKy8qY2xhc3MgV2ViQ29y
ZTo6JHtpbnRlcmZhY2VOYW1lfTsqLworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKK0VP
RgorCisgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7CisvL25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0RPTSR7aW50
ZXJmYWNlTmFtZX0gOiBwdWJsaWMgJHtwYXJlbnRHSWZhY2VOYW1lfSB7CisKK3B1YmxpYzoKKyAg
ICBHRE9NJHtpbnRlcmZhY2VOYW1lfShXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBpbXBsKSA6
ICRwYXJlbnRHSWZhY2VOYW1lfShpbXBsKQorICAgIHsgaW1wbC0+cmVmKCk7IH0KKyAgICB+R0RP
TSR7aW50ZXJmYWNlTmFtZX0oKSB7IG1faW1wbC0+ZGVyZWYoKTsgfQorCisgICAgV2ViQ29yZTo6
JHtpbnRlcmZhY2VOYW1lfSogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbDsgfQorCisKK3By
aXZhdGU6CisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqbV9pbXBsOworfTsKKworRU9G
CisKKyAgICAgICAgI3B1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworLy99IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK3R5cGVkZWYg
c3RydWN0IF8ke2NsYXNzTmFtZX0gJHtjbGFzc05hbWV9OworCitXZWJDb3JlOjoke2ludGVyZmFj
ZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJl
cXVlc3QpOworCisvKkdfRU5EX0RFQ0xTKi8KKworI2VuZGlmIC8qICR7Z3VhcmR9X1BSSVZfICov
CisKK0VPRgorCisgICAgI3JldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OiR7aW50ZXJm
YWNlTmFtZX0qPigoV2ViQ29yZTo6Tm9kZSopKHJlcykpOworICAgICAgICBwdXNoKEBoQm9keVBy
aXYsICRpbXBsQ29udGVudCk7CisKKyAgICAgICAgI2lmICgkcGFyYW1JRExUeXBlIGVxICJET01P
YmplY3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpz
Z2VuZXJhdG9yLgorICAgICAgICAjICAgICRpbXBsSW5jbHVkZXN7IkpTQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmgifSA9IDE7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAjICAgICRpbXBs
SW5jbHVkZXN7JGluY2x1ZGVIZHJ9ID0gMTsKKyAgICAgICAgI30KKyAgICAgICAgJGltcGxJbmNs
dWRlc3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJn
ZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAgICAgTE9PUDogZm9yZWFj
aCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CisgICAgICAgICAgICAj
bXkgJGZ1bmN0aW9uTmFtZSA9IGRlY2FtZWxpemUoJGNsYXNzTmFtZSkgLiAiXyIgLiBkZWNhbWVs
aXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkZm5f
c2lnX25hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgICAgICAgICBt
eSAkZm5fc2lnX3R5cGUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgICAg
ICAgICBteSAkZnVuY3Rpb25OYW1lID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5h
bWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25hbWUpOworICAgICAgICAgICAgICAgIG15
ICRyZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKyAgICAgICAgICAgICAgICBt
eSAkcmV0X2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRmbl9zaWdfdHlwZSk7CisKKyAg
ICAgICAgICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSAiJGNsYXNzTmFtZSAqdGhpeiI7CisKKyAg
ICAgICAgICAgICAgICBteSAkY2FsbF9pbXBsX3BhcmFtcyA9ICIiOworICAgICAgICAgICAgICAg
IG15ICRnZG9tX2ZuX3ByZWZpeCA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRmbl9zaWdfdHlwZSk7
CisKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9jc3Nfc3R5bGVf
ZGVjbGFyYXRpb25fc2V0X3Byb3BlcnR5IikgeworICAgICAgICAgICAgICAgICAgICAjIHJlc2Vy
dmVkIG5hbWUgY2xhc2ggaW4gZ2xpYiEKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSA9ICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfY3NzX3Byb3BlcnR5IjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBDb21wYXJlSG93IGZ1bmN0
aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21f
cmFuZ2VfY29tcGFyZV9ib3VuZGFyeV9wb2ludHMiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9u
TmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIFNWR0RvY3VtZW50IGZ1bmN0
aW9ucyBmb3Igbm93CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIGVxICJHZG9tU1ZH
RG9jdW1lbnQgKiIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhY
WCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9c
blxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzog
c2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwor
ICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgIyBYWFggc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworICAg
ICAgICAgICAgICAgIG15ICRpc19jdXN0b21fZm4gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rp
b25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9pdGVtIiB8fAorICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9uYW1lZF9pdGVtIiB8
fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3Jl
cXVlc3Rfb3BlbiIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2Rv
bV94bWxfaHR0cF9yZXF1ZXN0X3NldF9yZXF1ZXN0X2hlYWRlciIgfHwKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3NlbmQiIHx8Cisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVz
dF9nZXRfcmVzcG9uc2VfaGVhZGVyIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfb3ZlcnJpZGVfbWltZV90eXBlIiB8fAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rf
ZGlzcGF0Y2hfZXZlbnQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEg
Imdkb21fZWxlbWVudF9zZXRfYXR0cmlidXRlIikgeworICAgICAgICAgICAgICAgICAgICAkaXNf
Y3VzdG9tX2ZuID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICMk
ZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfYWRkX2V2ZW50X2xpc3RlbmVy
IiB8fAorICAgICAgICAgICAgICAgICAgICAjJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0
cF9yZXF1ZXN0X3JlbW92ZV9ldmVudF9saXN0ZW5lciIgfHwKKyAgICAgICAgICAgICAgICBpZiAo
JGlzX2N1c3RvbV9mbiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAi
Z2RvbV9ub2RlX2l0ZXJhdG9yX25leHRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiICYmIAorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxkIiAmJiAKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2luc2VydF9iZWZv
cmUiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9y
ZXBsYWNlX2NoaWxkIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX3RyZWVfd2Fsa2VyX3BhcmVudF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9maXJzdF9jaGlsZCIgJiYgCisgICAgICAg
ICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbGFzdF9jaGls
ZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93
YWxrZXJfcHJldmlvdXNfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9zaWJsaW5nIiAmJiAKKyAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19ub2Rl
IiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dh
bGtlcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5l
ICJnZG9tX25vZGVfaXRlcmF0b3JfcHJldmlvdXNfbm9kZSIpIHsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlv
bk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyog
WFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAg
ICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7Cisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAg
ICAgICAgICAgICAgICAgIGFkZEluY0JvZHkoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAg
ICAgICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkg
JHBhcmFtVHlwZSA9IEdldEdUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvblNpZyAuPSAiLCAkcGFyYW1UeXBlICRwYXJhbU5hbWUiOworCisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlw
ZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNf
dHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgbmUgIkRP
TU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1JRExUeXBlIG5l
ICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyJnZG9tL1ByaXZhdGVJbnRHZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2YXRlR2RvbSR7cGFy
YW1JRExUeXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5j
bHVkZXN7IiR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOyAjIHRoaXMgaXNuJ3Qgc3RyaWN0bHkgbmVj
ZXNzYXJ5IGJ1dCBvbmUgb2YgdGhlIGF1dG8tZ2VuZXJhdGVkIGZpbGVzIG5lZWRlZCBpdCBzby4u
Li4KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlIHx8ICgkcGFyYW1JRExUeXBl
IGVxICJET01TdHJpbmciKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtTmFtZSA9
ICJfZ18iIC4gJHBhcmFtTmFtZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBpZiAoJGNhbGxfaW1wbF9wYXJhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICRjYWxsX2ltcGxfcGFyYW1zIC49ICIsICRwYXJhbU5hbWUiOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAg
JGNhbGxfaW1wbF9wYXJhbXMgPSAiJHBhcmFtTmFtZSI7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBhZGRJbmNIZHIoJGZuX3NpZ190
eXBlKTsKKyAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAg
ICAgICAgICMgICAgJGltcGxUeXBlZGVmc3siR2RvbSR7Zm5fc2lnX3R5cGV9In0gPSAxOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9p
ZCIpIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0Iikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZy
b20ganNnZW5lcmF0b3IuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRl
c3siZ2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk
Zm5fc2lnX3R5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZhdGVJbnRHZG9tJHtmbl9zaWdfdHlwZX0u
aCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
Z2RvbS9Qcml2YXRlR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7Zm5fc2lnX3R5cGV9Lmgi
fSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5v
dworICAgICAgICAgICAgICAgICMgYnV0IHNraXAgZnJvbSBoZXJlIHRvIGFsbG93IHNvbWUgaGVh
ZGVycyB0byBiZSBjcmVhdGVkCisgICAgICAgICAgICAgICAgIyBmb3IgYSBzdWNjZXNzZnVsIGNv
bXBpbGUuCisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYKKyAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVm
b3JlIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVf
cmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAi
Z2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJv
ZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5c
biIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1
c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAg
ICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAk
X3JldHVyblR5cGUgPSAkcmV0dXJuVHlwZTsKKyAgICAgICAgICAgICAgICBteSAkZG9tb2JqVHlw
ZSA9ICJHRE9NIi4kZm5fc2lnX3R5cGU7CisgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlw
ZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVx
ICdnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2NvbnRleHQnKSB7CisgICAgICAgICAgICAg
ICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAgICRfcmV0dXJuVHlwZSA9ICdH
ZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dCAqJzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9i
alR5cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRleHQnOworICAgICAgICAgICAgICAgICAg
ICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQnOworICAg
ICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cu
ICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9i
amVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQorICAgICAgICAgICAg
ICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBpZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcp
IHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAg
JF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgKic7CisgICAgICAg
ICAgICAgICAgICAgICRkb21vYmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQn
OworICAgICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVu
ZGVyaW5nX2NvbnRleHQyZCc7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFgg
LSB0b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMg
bXVzdCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5k
IG91dCBob3cpCisgICAgICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8g
Y3JlYXRlIGEgR0RPTURvbU9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgIAorCisgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJXRUJLSVRfQVBJICRfcmV0
dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0
aW9uU2lnKVxue1xuIik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZv
aWQiKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVm
YXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwgKHRoaXosIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAo
dGhpeik7XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9ICgke2xjYXNlX2lm
YWNlbmFtZX1fZ2V0X3ByaXZhdGUodGhpeikpO1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRy
ZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiBy
ZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtcbiIpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdf
cmV0dXJuX2lmX2ZhaWwgKGl0ZW0pO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAg
ICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7Cisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJh
dG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAg
IG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsK
KyAgICAgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAg
ICMgICAgJGltcGxUeXBlZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoISRwYXJhbVR5cGVJc1ByaW1p
dGl2ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lk
IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9w
ZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKyAgICAg
ICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7Cisg
ICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBl
KTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFt
LT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJ
c0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICMgSEFD
SyEKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0
dHBfcmVxdWVzdF9vcGVuIiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbS0+bmFt
ZSBlcSAidXJsIikgeworCisgICAgICAgICAgICAgICAgICAgICAgICAjJGltcGxJbmNsdWRlc3si
S1VSTC5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
V2ViQ29yZTo6S1VSTCBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpLVVJMKCRwYXJhbU5hbWUp
O1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzaWYg
KCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OlN0cmluZyBfZ18ke3BhcmFtTmFtZX0gPSBXZWJD
b3JlOjpTdHJpbmc6OmZyb21VVEY4KCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVjYW1l
bGl6ZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNwdXNoKEBjQm9k
eSwgIiAgICBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9PiAqIF9nXyR7
cGFyYW1OYW1lfSA9IFdURjo6UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBh
cmFtTmFtZSk+O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlw
ZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIn0gPSAxOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV2ZW50VGFy
Z2V0Tm9kZSAqIF9nXyR7cGFyYW1OYW1lfSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFy
Z2V0Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkp
O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7cGFyYW1JRExUeXBlfSAq
IF9nXyR7cGFyYW1OYW1lfSA9ICgke3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJhbU5h
bWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFp
bCAoX2dfJHtwYXJhbU5hbWV9LCAwKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3Jl
dHVybl9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAkcmV0
dXJuUGFyYW1OYW1lID0gIl9nXyIuJHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJSZXR1cm4ifTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBt
eSAkYXNzaWduID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbl9wcmUgPSAiIjsKKyAg
ICAgICAgICAgICAgICBteSAkYXNzaWduX3Bvc3QgPSAiIjsKKyAgICAgICAgICAgICAgICAkZ19y
ZXMgPSAwOworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRp
c19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlw
ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbiA9ICJQYXNzUmVmUHRyPFdlYkNv
cmU6OiR7Zm5fc2lnX3R5cGV9PiBnX3JlcyA9ICI7CisgICAgICAgICAgICAgICAgICAgICAgICAk
YXNzaWduX3ByZSA9ICJXVEY6OmdldFB0cigiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFz
c2lnbl9wb3N0ID0gIikiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICAgICAgJGFzc2lnbiA9ICIke19yZXR1cm5UeXBlfSByZXMgPSAiOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG15ICRl
eGNlcHRpb25zID0gIiI7CisgICAgICAgICAgICAgICAgaWYgKEB7JGZ1bmN0aW9uLT5yYWlzZXNF
eGNlcHRpb25zfSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAo
JHtjYWxsX2ltcGxfcGFyYW1zfSBuZSAiIikgeworICAgICAgICAgICAgICAgICAgICAgICAgJGV4
Y2VwdGlvbnMgPSAiLCBlYyI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICJlYyI7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIG5lZWQgdGhpcyBmb3Ig
aW5jbHVkaW5nIC4uLiBfc29tZXRoaW5nXyAtIGZvciB0aGUgY2xhc3MgYXJncworICAgICAgICAg
ICAgICAgICNpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICMgICAgJGlt
cGxJbmNsdWRlc3siZ2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAg
I30KKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2FwcGVu
ZF9jaGlsZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9u
b2RlX2luc2VydF9iZWZvcmUiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
ZXEgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIGVxICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxkIikgeworICAgICAgICAgICAgICAg
ICAgICBteSAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQgPSA8PCAiRU9GIjsKKyAgICBi
b29sIG9rID0gaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0
aW9uc30pOworICAgIGlmIChvaykKKyAgICB7CisgICAgICAgICR7X3JldHVyblR5cGV9IHJlcyA9
IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihXZWJDb3JlOjp0b0dET00oJHJldHVyblBhcmFt
TmFtZSkpOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK0VP
RgorICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgJGN1c3RvbV9nZG9tX25vZGVfYXBw
ZW5kX2NoaWxkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRP
TU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAnZ2RvbV9k
b2N1bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICAvKiBYWFggVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0IChpdGVtLT4k
e2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpOyovXG4iICk7
CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdf
dHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICAke2Fzc2lnbn1HU3RyaW5nQ29udmVydChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxf
aW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpO1xuIiApOworICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkZ19yZXMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRnX3JlcyA9ICIke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFt
ZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSkiIDsKKyAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiICAgICR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgk
e2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KTtcbiIgKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBp
ZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNf
Y2FzdDwke19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKGdfcmVzLmdldCgpKSk7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRP
RE86IHJldHVybiBjYW52YXMgb2JqZWN0ICovXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBy
ZXM7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIn1cblxuIik7CisgICAgICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRl
cm4gXCJDXCIgKi9cblxuIik7CisgICAgcHVzaChAY0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJD
XCIgKi9cblxuIik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19FTkRfREVDTFNcblxu
Iik7CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9c
biIpOworCisgICAgcHVzaChAaEJvZHksICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBo
Qm9keSwgIiNlbmRpZiAvKiAkZ3VhcmQgKi9cbiIpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAi
R19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3Vh
cmR9X1BST1BfKi9cbiIpOworfQorCisjIEludGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQor
eworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkgPSBAXzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5h
bCBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVJbnRlcm5hbCA9ICIkb3V0cHV0RGlyL1ByaXZhdGVJ
bnQiIC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4oSU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVy
bmFsIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisg
ICAgcHJpbnQgSU5USEVBREVSIEBoUHJlZml4OworICAgIHByaW50IElOVEhFQURFUiAiXG4iOwor
ICAgIHByaW50IElOVEhFQURFUiBAaEJvZHlJbnRlcm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIp
OworCisgICAgIyBXcml0ZSBQcml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAi
JG91dHB1dERpci9Qcml2YXRlIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIs
ICI+JGhkckZOYW1lUHJpdiIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVBy
aXYiOworCisgICAgcHJpbnQgUFJJVkhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVB
REVSICJcbiI7CisgICAgcHJpbnQgUFJJVkhFQURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBS
SVZIRUFERVIpOworCisgICAgIyBXcml0ZSBQcml2YXRlIEltcGxlbWVudGF0aW9uCisgICAgI215
ICRpbXBsRmlsZU5hbWVQcml2ID0gIiRvdXRwdXREaXIvUHJpdmF0ZSIgLiAkbmFtZSAuICIuY3Bw
IjsKKyAgICAjb3BlbihQUklWSU1QTCwgIj4kaW1wbEZpbGVOYW1lUHJpdiIpIG9yIGRpZSAiQ291
bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWVQcml2IjsKKworICAgICNwcmludCBQUklWSU1Q
TCBAY1ByZWZpeDsKKyAgICAjcHJpbnQgUFJJVklNUEwgIlxuIjsKKyAgICAjcHJpbnQgUFJJVklN
UEwgQGNCb2R5UHJpdjsKKworICAgICNjbG9zZShQUklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHBy
b3BlcnRpZXMgaGVhZGVyIChhdm9pZHMgcmVjdXJzaXZlIG5pZ2h0bWFyZSkKKyAgICBteSAkaGRy
UHJvcEZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gInByb3BzLmgiOworICAgIG9wZW4o
UFJPUEhFQURFUiwgIj4kaGRyUHJvcEZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUg
JGhkclByb3BGTmFtZSI7CisKKyAgICAkaGRyUHJvcEluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0g
PSAxOworCisgICAgcHJpbnQgUFJPUEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBQUk9QSEVB
REVSICIvKiByZWN1cnNpdmUgaW5jbHVkZXMgLyBkZWZpbmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0
ZSBoZWFkZXIgZm9yIHByb3BlcnRpZXMuXG5wZXJoYXBzIC0gYmV0dGVyIC0gYWxsIGdkb20gZ3Rr
IGZ1bmN0aW9ucyBzaG91bGQgYmUgaW4gaGVyZSEqL1xuIjsKKyAgICBwcmludCBQUk9QSEVBREVS
IEBoQm9keVByb3BQcmU7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50IFBST1BIRUFERVIgbWFwIHsgIiNpbmNsdWRl
IFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9Q
SEVBREVSICJcbiIgaWYga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVB
REVSICJcbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBAaEJvZHlQcm9wOworCisgICAgY2xvc2Uo
SEVBREVSKTsKKworICAgICMgV3JpdGUgcHVibGljIGhlYWRlci4KKyAgICBteSAkaGRyRk5hbWUg
PSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4oSEVBREVSLCAiPiRoZHJG
TmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZSI7CisKKyAgICAkaGRy
SW5jbHVkZXN7ImdsaWItb2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVm
aXg7CisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD5cbiI7CisgICAgcHJpbnQgSEVBREVSIG1h
cCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBw
cmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVS
ICJcbiI7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keVByZTsKKyAgICBwcmludCBIRUFERVIgbWFw
IHsgInR5cGVkZWYgc3RydWN0IF8kXyAkXztcbiIgfSBzb3J0IGtleXMoJWltcGxUeXBlZGVmcyk7
CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmlu
dCBIRUFERVIgQGhCb2R5OworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgdGhl
IGltcGxlbWVudGF0aW9uIHNvdXJjZXMKKyAgICBteSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXRE
aXIvIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1lIikg
b3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGltcGxGaWxlTmFtZSI7CisKKyAgICBwcmludCBJ
TVBMIEBjUHJlZml4OworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4i
OworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50
IElNUEwgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaW1wbEluY2x1ZGVz
KTsKKyAgICBwcmludCBJTVBMICJcbiIgaWYga2V5cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmlu
dCBJTVBMIEBjQm9keTsKKworICAgIHByaW50IElNUEwgIlxuIjsKKyAgICBwcmludCBJTVBMIEBj
Qm9keVByaXY7CisKKyAgICBjbG9zZShJTVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsK
KyAgICAlaW1wbFR5cGVkZWZzID0gKCk7CisgICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQ
cmVmaXggPSAoKTsKKyAgICBAaEJvZHkgPSAoKTsKKyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAg
QGhCb2R5SW50ZXJuYWwgPSAoKTsKKyAgICBAaEJvZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJv
cFByZSA9ICgpOworCisgICAgQGNQcmVmaXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBA
Y0JvZHlQcml2ID0gKCk7Cit9CisKKzE7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVs
ZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDM2NDU5KQorKysgV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICAgIF0gSFRNTE9wdGlvbkVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1F
bGVtZW50ICAgICAgZm9ybTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAg
ICAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFH
RV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmlkbAkocmV2aXNpb24gMzY0NTkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRleHQ7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
CisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYK
IApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNjQ1OSkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDE0ICszNSwxNCBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgY29kZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvZGVCYXNlOwogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaGVpZ2h0
OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhzcGFjZTsK
ICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxv
bmcgaHNwYWNlOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb2JqZWN0OwotI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
IHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZzcGFjZTsKICNlbHNlCiAgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgdnNwYWNlOwpJ
bmRleDogV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAkocmV2aXNpb24gMzY0NTkpCisrKyBXZWJD
b3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMw
LDcgQEAKICAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZmMC05Nzhk
LWY3NzNmMmRlZTZhMwogICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIGFsaWduOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGhlaWdodDsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21T
dHJpbmddIGxvbmcgaGVpZ2h0OwpAQCAtMzgsNyArMzgsNyBAQAogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IHNyYzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHR5cGU7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgd2lkdGg7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnRGcm9tU3RyaW5nXSBsb25nIHdpZHRoOwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMzY0NTkp
CisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsx
NTYsNyBAQAogCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyB0aXRsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyByZWZlcnJlcjsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIGRvbWFpbjsKICNlbHNlCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgZG9tYWluOwpAQCAtMTgyLDcgKzE4Miw3IEBACiAKICAgICAgICAgTm9kZUxpc3QgZ2V0RWxl
bWVudHNCeU5hbWUoaW4gRE9NU3RyaW5nIGVsZW1lbnROYW1lKTsKIAotI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0N1
c3RvbV0gTG9jYXRpb24gbG9jYXRpb247CiAjZW5kaWYKIApAQCAtMTk1LDcgKzE5NSw3IEBACiAg
ICAgICAgIEVsZW1lbnQgICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50KGluIGxvbmcgeCwgaW4g
bG9uZyB5KTsKIAogICAgICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKLSNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgRE9NU2VsZWN0aW9uICAgICAgIGdl
dFNlbGVjdGlvbigpOwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgY2hhcmFjdGVyU2V0OwpAQCAtMjM2LDcgKzIz
Niw3IEBACiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gRE9NU3Ry
aW5nIHRhZ25hbWUpOwogCiAgICAgICAgIC8vIE5vZGVTZWxlY3RvciAtIFNlbGVjdG9yIEFQSQot
I2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICBbQ3VzdG9t
XSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3IoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgW0N1c3RvbV0gTm9kZUxpc3Qg
cXVlcnlTZWxlY3RvckFsbChpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIHNlbGVjdG9ycywgaW4gTlNSZXNvbHZlciByZXNvbHZlcikKSW5kZXg6IFdlYkNv
cmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9SYW5n
ZUV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM2NDU5KQorKysgV2ViQ29yZS9kb20vUmFuZ2VFeGNl
cHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVk
KExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5n
KCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzY0NTkp
CisrKyBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDcgKzM3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAg
bmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2Fn
ZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8g
T3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51
bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvZG9tL0tleWJv
YXJkRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRs
CShyZXZpc2lvbiAzNjQ1OSkKKysrIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gYm9vbGVhbiBhbHRHcmFwaEtleSk7CiAKICAgICAgICAgLy8gV2ViS2l0IEV4dGVuc2lv
bnMKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmICgoIWRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkpICYmICghZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkpCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOwogICAgICAgICAK
SW5kZXg6IFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNjQ1OSkKKysrIFdlYkNv
cmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3
IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRl
IGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0
cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMzYzNzkpCisrKyBXZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMTQxIEBACiAgICAgICAgIChXZWJD
b3JlOjpBWERlZmluaXRpb25MaXN0VGVybVRleHQpOgogICAgICAgICAoV2ViQ29yZTo6QVhEZWZp
bml0aW9uTGlzdERlZmluaXRpb25UZXh0KToKIAorMjAwOC0wOS0xMiAgbGtjbCAgPGxrY2xAbGtj
bC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisgICAgICAgIChsa2NsOiBp
J2xsIGJlIGFic29sdXRlbHkgaG9uZXN0IHdpdGggcGVvcGxlLCBoZXJlOgorICAgICAgICAgaSdt
IG5vdCBnb2luZyB0byBhZGQgb3IgY2hhbmdlIGFueSwgZWl0aGVyLCB1bmxlc3MKKyAgICAgICAg
IHRoZXJlIGlzIGZ1bmRpbmcgbWFkZSBhdmFpbGFibGUgdG8gZG8gaXQsIG9yIGkgZmluZCBhCisg
ICAgICAgICBnb29kIHJlYXNvbiB0byBwYXkgZm9yIHRoZSB0aW1lIGF0IG15IG93biBleHBlbnNl
LgorICAgICAgICAgc28gZmFyLCBweXdlYmtpdGd0ayBpdHNlbGYgaGFzIGJlZW4gYSAiZ29vZCBl
bm91Z2ggdGVzdCIKKyAgICAgICAgIGZvciBteSBwdXJwb3Nlcywgd2hpY2ggbWFzaGVzIHRoZSBl
bnRpcmUgcmFuZ2Ugb2YKKyAgICAgICAgIGZ1bmN0aW9uYWxpdHkgYW5kIHByb3ZpZGVzIGdvb2Qg
ZW1waXJpY2FsIHRlc3RpbmcpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IGFkZGVkIExB
TkdVQUdFX0dPQkpFQ1QsIGdsaWIgRE9NIGJpbmRpbmdzIGZpbGVzLCBpbmNsdWRpbmcgbWFya2lu
ZyBTVkcgYXMgIlRPRE8iCisgICAgICAgICogYmluZGluZ3MvZ2RvbTogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6YWRkV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnJlbW92ZVdyYXBwZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJT
ZXQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTU9iamVjdDo6fkdET01PYmplY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6d3JhcHBlckNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OmRvbU9iamVjdHMp
OgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlX2dkb21fb2JqZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9N
Tm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRl
cjo6Zm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6dXBkYXRlRE9NTm9kZURvY3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvR0RPTSk6CisgICAgICAgIChXZWJDb3JlOjp0b0dET01OZXdseUNy
ZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAgICogYmlu
ZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhY2hl
RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlU1ZHRE9NT2JqZWN0KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogQWRk
ZWQuICBDb3BpZWQgZnJvbSB0aGUgYXV0by1nZW5lcmF0ZWQgSlNIVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcCAKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFuY2hvcldyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlQXBwbGV0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVBcmVhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCYXNlV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCYXNlRm9udFdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQmxvY2txdW90ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
Qm9keVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQlJXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUJ1dHRvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlQ2FudmFzV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZUNhcHRpb25X
cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxlQ29sV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVNb2RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZURpcmVjdG9yeVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRGl2V3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVETGlzdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlRW1iZWRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZpZWxkU2V0
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb250V3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVGb3JtV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVG
cmFtZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhbWVTZXRXcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhlYWRpbmdXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUhlYWRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhSV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVIdG1sV3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVJRnJhbWVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUltYWdl
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJbnB1dFdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSXNJbmRleFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlTGFiZWxXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxlZ2VuZFdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTElXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUxpbmtXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1hcFdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFycXVlZVdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlTWVudVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWV0YVdy
YXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT2JqZWN0V3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVPTGlzdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
T3B0R3JvdXBXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9wdGlvbldyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFyYWdyYXBoV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVQYXJhbVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUHJl
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVRdW90ZVdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlU2NyaXB0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVTZWxlY3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN0eWxlV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVU
YWJsZUNlbGxXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRleHRBcmVhV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUaXRsZVdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlVGFibGVSb3dXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVVM
aXN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVHRE9NSFRNTFdyYXBwZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaDog
IEFkZGVkLiAgQ29waWVkIGZyb20gdGhlIGF1dG8tZ2VuZXJhdGVkIEpTSFRNTEVsZW1lbnRXcmFw
cGVyRmFjdG9yeS5oCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NT2JqZWN0Lmg6IEFkZGVk
LgorICAgICAgICAoR0RPTU9iamVjdDo6fkdET01PYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdz
L2dkb20vR2RvbURPTU9iamVjdC5jcHA6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20v
R2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21FdmVu
dFRhcmdldE5vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEdTdHJpbmdDb252ZXJ0OjpHU3RyaW5n
Q29udmVydCk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmg6
IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0
X3NldF9wcml2YXRlKToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21f
b2JqZWN0X2dldF9wcml2YXRlKToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2Rv
bV9kb21fb2JqZWN0X2ZpbmFsaXplKToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6
Z2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQpOgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2
YXRlOjpnZG9tX2RvbV9vYmplY3RfaW5pdCk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2
YXRlR2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZh
dGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcDogQWRkZWQuCisgICAgICAgIChnZG9tX2V2ZW50X3Rh
cmdldF9ub2RlX2dldF9wcml2YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVH
ZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJp
dmF0ZUludEdkb21ET01PYmplY3QuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Q
cml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oOiBBZGRlZC4KKyAgICAgICAgKEdET01FdmVu
dFRhcmdldE5vZGU6OkdET01FdmVudFRhcmdldE5vZGUpOgorICAgICAgICAoR0RPTUV2ZW50VGFy
Z2V0Tm9kZTo6Z2V0X2dvYmpfdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yR09iamVjdC5wbTogQWRkZWQgZ29iamVjdCBiaW5kaW5ncyBhdXRvLWdlbmVyYXRv
ci4KKyAgICAgICAgKiBkb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dP
QkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDogYWRkZWQgTEFO
R1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vRXZlbnRFeGNlcHRpb24u
aWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGRvbS9L
ZXlib2FyZEV2ZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAg
ICAgICAgKiBkb20vUmFuZ2VFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNw
ZWNpZmljIElETAorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsOiBhZGRlZCBM
QU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGh0bWwvSFRNTEFwcGxldEVs
ZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAq
IGh0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lm
aWMgSURMCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGw6IGFkZGVkIExBTkdV
QUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogcGFnZS9ET01TZWxlY3Rpb24uaWRs
OiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmlj
IElETAorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExB
TkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMIAorICAgICAgICAqIHhtbC9YUGF0aEV4Y2VwdGlv
bi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisKIDIwMDgtMDktMTIg
IERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB0aGUgbWVtYmVy
IHZhcmlhYmxlcyBvZiBQbGF0Zm9ybVNjcm9sbGJhciB1cCBpbnRvIFNjcm9sbGJhci4gIE1vdmUg
YXV0b3Njcm9sbCB0aW1lciBoYW5kbGluZwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAkocmV2
aXNpb24gMzY0NTkpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTYyLDkgKzYyLDEzIEBACiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIAogICAgICAgICAvLyB2b2lkIHNlbmQoKTsKLSAgICAgICAgLy8gdm9pZCBzZW5kKGluIERP
TVN0cmluZyBkYXRhKTsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCisgICAgICAgIHZv
aWQgc2VuZChpbiBET01TdHJpbmcgZGF0YSkKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOworI2Vsc2UKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZW5kKGluIERvY3VtZW50IGRhdGEp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgogCiAgICAgICAgIHZv
aWQgYWJvcnQoKTsKIApJbmRleDogV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzY0NTkp
CisrKyBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDcgKzM3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAg
bmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2Fn
ZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8g
T3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51
bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM2NDU5KQorKysgV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBA
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGlu
IGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmlu
ZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMzY0NTkp
CisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcg
KzE1NSw3IEBACiAgICAgICAgIFtEb05vdENoZWNrRG9tYWluU2VjdXJpdHksIEN1c3RvbV0gdm9p
ZCBwb3N0TWVzc2FnZShpbiBET01TdHJpbmcgbWVzc2FnZSwgaW4gRE9NU3RyaW5nIHRhcmdldE9y
aWdpbikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBHbG9iYWwgY29uc3RydWN0b3Jz
CiAgICAgICAgIGF0dHJpYnV0ZSBTdHlsZVNoZWV0Q29uc3RydWN0b3IgU3R5bGVTaGVldDsKICAg
ICAgICAgYXR0cmlidXRlIENTU1N0eWxlU2hlZXRDb25zdHJ1Y3RvciBDU1NTdHlsZVNoZWV0OwpJ
bmRleDogV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJKHJldmlzaW9uIDM2NDU5KQorKysgV2ViQ29yZS9wYWdl
L0RPTVNlbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAKICAgICAg
ICAgdm9pZCByZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgdm9pZCBhZGRSYW5nZShpbiBSYW5n
ZSByYW5nZSk7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAg
ICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKICAgICB9OwpJbmRl
eDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNpb24gMzY0NTkpCisr
KyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOC0wOS0xMiAg
bGtjbCAgPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogYWRkIEdkb20qLmggZ2xpYiBET00gYmlu
ZGluZ3MgaGVhZGVyIGZpbGVzLAorICAgICAgICAKKyAgICAgICAgQWxzbyBhZGRlZCBnZG9tZW51
bXR5cGVzLmNwcCxoIHdoaWNoIHByZXNlbnRseSBkbyBub3QKKyAgICAgICAgYWN0dWFsbHkgY29u
dGFpbiBhbnl0aGluZywgYmVjYXVzZSB0aGVyZSBhcmUgbm8gZW51bXMKKyAgICAgICAgaW4gdGhl
IGdsaWIgYmluZGluZ3MgLSB5ZXQuCisKIDIwMDgtMDktMDQgIE1hcmNvIEJhcmlzaW9uZSAgPG1h
cmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCkluZGV4OiBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMzY0NTkpCisrKyBXZWJLaXRU
b29scy9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDggQEAKIFByb2dy
YW1zX0d0a0xhdW5jaGVyX0NQUEZMQUdTID0gXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAog
CS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsv
d2Via2l0IFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJJChnbG9i
YWxfY3BwZmxhZ3MpIFwKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQogCkBAIC0yOCw2ICsz
MCw4IEBACiAJLUkkKHNyY2RpcikvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrIFwKIAkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwK
KwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9idWlsZGRpcikvV2Vi
S2l0L2d0ay93ZWJraXQgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29y
ZV9jcHBmbGFncykKIApJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMzY0NTkpCisrKyBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTYsNiArNiwxOCBAQAogICAgICAgICAod2FpdFVu
dGlsRG9uZVdhdGNoZG9nRmlyZWQpOgogICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9PYmpD
UGx1Z2luLm06CiAKKzIwMDgtMDktMTIgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06
IGFkZGVkIC1JIGluY2x1ZGVzIHRvIGd0ayB3ZWJraXQgc3ViZGlyZWN0b3JpZXMKKworICAgICAg
ICBHZG9tIGdsaWIgRE9NIGJpbmRpbmdzIGhhdmUgdGhlaXIgaGVhZGVyIGZpbGVzIGNvbnRhaW5p
bmcKKyAgICAgICAgI2luY2x1ZGUgImdkb20qIiB3aGVyZSAjaW5jbHVkZSA8d2Via2l0L2dkb20q
PiBpcyBub3QKKyAgICAgICAgcG9zc2libGUsIGFzIHRoZSBnZG9tKiBzb3VyY2UgYW5kIGhlYWRl
ciBmaWxlcyBhcmUgYXV0by1nZW5lcmF0ZWQKKyAgICAgICAgaW50byBEZXJpdmVkU291cmNlcy8g
bm90IERlcml2ZWRTb3VyY2VzL3dlYmtpdCwgZm9sbG93aW5nIHRoZQorICAgICAgICBleGFtcGxl
IG9mIHRoZSBKUyBEZXJpdmVkIFNvdXJjZXMuCisKIDIwMDgtMDktMDggIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23508</attachid>
            <date>2008-09-17 14:28:05 -0700</date>
            <delta_ts>2008-09-18 13:42:48 -0700</delta_ts>
            <desc>massively (oversimplified, unfortunately) reduced patch</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>78186</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNjQ1OSkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtODUsNyArODYsOCBAQAogIyBDb252ZW5pZW5jZSBsaWJyYXJpZXMKIG5vaW5zdF9MVExJQlJB
UklFUyA9IFwKIAlsaWJKYXZhU2NyaXB0Q29yZS5sYSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYldl
YkNvcmUubGEgXAorCWxpYmdkb20ubGEKIAogIwogIyBKYXZhU2NyaXB0Q29yZQpAQCAtMTAxLDcg
KzEwMyw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMg
XAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3d0ZiBcCiAJLUkkKHNyY2RpcikvSmF2YVNj
cmlwdENvcmUva2pzIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCS1JJCh0
b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3Jl
L2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1
ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5
b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTE1Miw2ICsxNTUsMTAgQEAKIHdlYmNvcmVndGtfY3BwZmxh
Z3MgOj0KIHdlYmNvcmVndGtfc291cmNlcyA6PQogCit3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9IFwK
KwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9nZG9tIFwKKwktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrL2dkb20KKwogbm9kaXN0X2xpYldlYkNvcmVfbGFfU09VUkNFUyA9IFwKIAkkKHdl
YmNvcmVfYnVpbHRfc291cmNlcykKIApAQCAtMjE4LDYgKzIyNSw1NSBAQAogCSQoSlBFR19MSUJT
KSBcCiAJLWxwdGhyZWFkCiAKKyMgbGliZ2RvbQorbGliZ2RvbV9idWlsdF9zb3VyY2VzIDo9Cits
aWJnZG9tX3NvdXJjZXMgOj0KK2xpYmdkb21faF9hcGkgOj0KK2xpYmdkb21fY3BwZmxhZ3MgOj0K
K2xpYmdkb21fbGFkaXIgPSAkKHByZWZpeCkvaW5jbHVkZS93ZWJraXQtMS4wL2dkb20KK2xpYmdk
b21fbGFfSEVBREVSUyA9IFwKKyAgICAgICAgJChsaWJnZG9tX2hfYXBpKSBcCisJCSQoc3JjZGly
KS9XZWJLaXQvZ3RrL2dkb20vZ2RvbS5oIAorCitsaWJnZG9tX2NwcGZsYWdzICs9IFwKKwkkKGds
b2JhbF9jcHBmbGFncykgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAorCS1JJCh0b3BfYnVp
bGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9nZG9tIFwKKwkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrL2dkb20gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRT
b3VyY2VzL2dkb20gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisKK2xpYmdk
b21fbGFfU09VUkNFUyA9IFwKKwkkKGxpYmdkb21fc291cmNlcykgCisKK25vZGlzdF9saWJnZG9t
X2xhX1NPVVJDRVMgPSBcCisJJChsaWJnZG9tX2J1aWx0X3NvdXJjZXMpIAorCitsaWJnZG9tX2xh
X0NQUEZMQUdTID0gXAorCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCisJJCh3ZWJjb3JlX2NwcGZsYWdz
KSBcCisJJChHTE9CQUxERVBTX0NGTEFHUykgXAorCSQoV0VCS0lUREVQU19DRkxBR1MpIFwKKwkk
KGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCisJJChsaWJnZG9tX2NwcGZsYWdzKSAKKworbGli
Z2RvbV9sYV9MSUJBREQgPSBcCisJbGliV2ViQ29yZS5sYSBcCisJJChHTE9CQUxERVBTX0xJQlMp
IFwKKwkkKFdFQktJVERFUFNfTElCUykgXAorCSQoWFRfTElCUykgXAorCSQoTElCQ1VSTF9MSUJT
KSBcCisJJChMSUJTT1VQX0xJQlMpIFwKKwkkKEZSRUVUWVBFX0xJQlMpIFwKKwkkKFVOSUNPREVf
TElCUykgXAorCSQoU1FMSVRFM19MSUJTKSBcCisJJChHU1RSRUFNRVJfTElCUykgXAorCSQoTElC
WFNMVF9MSUJTKSBcCisJJChISUxET05fTElCUykgXAorCSQoSlBFR19MSUJTKSBcCisJLWxwdGhy
ZWFkCisKICMgV2ViS2l0CiB3ZWJraXRndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9
CkBAIC0yMzIsNiArMjg4LDcgQEAKIGxpYndlYmtpdF8xXzBfbGFkaXIgPSAkKHByZWZpeCkvaW5j
bHVkZS93ZWJraXQtMS4wL3dlYmtpdAogbGlid2Via2l0XzFfMF9sYV9IRUFERVJTID0gXAogCSQo
d2Via2l0Z3RrX2hfYXBpKSBcCisJJChsaWJnZG9tX2hfYXBpKSBcCiAJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZW51bXR5cGVzLmgKIAogbGlid2Via2l0XzFfMF9sYV9TT1VSQ0VTID0gXApAQCAt
MjU0LDcgKzMxMSw3IEBACiAJJChub191bmRlZmluZWQpCiAKIGxpYndlYmtpdF8xXzBfbGFfTElC
QUREID0gXAotCWxpYldlYkNvcmUubGEKKwlsaWJnZG9tLmxhIAogCiAjCiAjIEV4dHJhIGNoZWNr
cyBhbmQgZmxhZ3MKQEAgLTMwNSw2ICszNjIsMTQgQEAKIHdlYmNvcmVfbGliYWRkICs9IC1sZ3N0
aW50ZXJmYWNlcy0wLjEwIC1sZ3N0dmlkZW8tMC4xMAogZW5kaWYKIAorCitXZWJLaXQvZ3RrL2dk
b20vZ2RvbS5oOgorIyBUT0RPOiBhdXRvLWdlbmVyYXRlIHRoaXMgZmlsZQorCitsaWJnZG9tX2hf
YXBpICs9IFwKKwkkKHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmgKKwogd2Via2l0Z3RrX2hfYXBpICs9IFwKIAlX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVm
aW5lcy5oIFwKQEAgLTM1Miw3ICs0MTcsOSBAQAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAog
CS1JJChzcmNkaXIpL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQgXAogCS1JJChzcmNkaXIpL1dl
YktpdC9ndGsvd2Via2l0IFwKLQktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdAor
CS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKKwktSSQodG9wX2J1aWxkZGly
KS9XZWJLaXQvZ3RrXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCiAKIHdlYmtp
dGd0a19jbGVhbmZpbGVzICs9IFwKIAkkKHRvcF9idWlsZGRpcikvUHJvZ3JhbXMvR3RrTGF1bmNo
ZXIgXApAQCAtNDY1LDYgKzUzMiw4IEBACiBCVUlMVF9TT1VSQ0VTID0gXAogCSQoamF2YXNjcmlw
dGNvcmVfYnVpbHRfc291cmNlcykgXAogCSQoamF2YXNjcmlwdGNvcmVfYnVpbHRfbm9zb3VyY2Vz
KSBcCisJJChsaWJnZG9tX2J1aWx0X3NvdXJjZXMpIFwKKwkkKGxpYmdkb21fYnVpbHRfbm9zb3Vy
Y2VzKSBcCiAJJCh3ZWJjb3JlX2J1aWx0X3NvdXJjZXMpIFwKIAkkKHdlYmNvcmVfYnVpbHRfbm9z
b3VyY2VzKSBcCiAJJCh3ZWJraXRndGtfYnVpbHRfc291cmNlcykgXApJbmRleDogV2ViS2l0L2d0
ay9HRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9HRE9NT2JqZWN0LmgJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL0dET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29u
IExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fR0RPTU9iamVjdF9oX18KKyNkZWZp
bmUgX19HRE9NT2JqZWN0X2hfXworCitjbGFzcyBHRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5HRE9NT2JqZWN0KCkge30KKworICAgIC8qIHRoaXMgaXMgYW4gYWJzb2x1dGVseSBj
cml0aWNhbCBmdW5jdGlvbiB3aGljaCBhbGxvd3MKKyAgICAgKiB0aGUgdXNlIG9mIHRvR0RPTSgp
IHRvIGRlY2lkZSwgdGhyb3VnaCB0eXBlY2FzdGluZworICAgICAqIHdoaWNoIGdvYmplY3Qgc2hv
dWxkIGJlIHJldHVybmVkLiAgc2VlIEdET01CaW5kaW5nLmNwcCwKKyAgICAgKiBHRE9NSHRtbEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgYW5kIG90aGVyIHNpbWlsYXIKKyAgICAgKiBmaWxlcyBm
b3IgZXhhbXBsZXMuCisgICAgICovCisgICAgdmlydHVhbCBpbnQgZ2V0R29ialR5cGUoKSA9IDA7
Cit9OworCisjZW5kaWYKSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZu
ZGVmIEdkb21ET01PYmplY3RfaAorI2RlZmluZSBHZG9tRE9NT2JqZWN0X2gKKyNpbmNsdWRlICJn
bGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVH
SU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOwor
CisjZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdkb21fZG9tX29iamVj
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdk
b21ET01PYmplY3QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdk
b21ET01PYmplY3RDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVChvYmopICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVD
VCkpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdE
T01fRE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1Mo
KG9iaiksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkKKwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIEdkb21ET01PYmplY3RQcml2YXRlOwor
CitzdHJ1Y3QgX0dkb21ET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwor
CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21ET01P
YmplY3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJ
VF9BUEkgR1R5cGUKK2dkb21fZG9tX29iamVjdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9B
UEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X2luaXRfZG9tX29iamVjdCAoR2RvbURPTU9iamVjdCAq
dGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBHZG9tRE9NT2JqZWN0X2ggKi8KKwoK
UHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWVyZ2VpbmZvCgpJbmRleDogV2ViS2l0L2d0ay9nZG9tL0dTdHJp
bmdDb252ZXJ0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dTdHJpbmdDb252ZXJ0
LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR1N0cmluZ0NvbnZlcnQuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgR1N0cmlu
Z0NvbnZlcnRfaAorI2RlZmluZSBHU3RyaW5nQ29udmVydF9oCisKKy8qIGNvbnZlbmllbmNlIGMr
KyBjbGFzcyBmb3IgY29udmVydGluZyB2YXJpb3VzIGRpZmZlcmVudCB3ZWJraXQKKyAqIHN0cmlu
ZyB0eXBlcyBpbnRvIGEgdXRmOCBnbGliIHN0cmluZy4KKyAqLworCisjaW5jbHVkZSAiQXRvbWlj
U3RyaW5nLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgInVzdHJpbmcuaCIKKworaW5saW5lIGdj
aGFyICogR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IHJldHVybiBn
X3N0cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CitpbmxpbmUgZ2NoYXIgKiBHU3RyaW5nQ29udmVy
dChXZWJDb3JlOjpLVVJMIGNvbnN0JiBzKSB7IHJldHVybiBnX3N0cmR1cChzLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOyB9CitpbmxpbmUgZ2NoYXIgKiBHU3RyaW5nQ29udmVydChjb25zdCBKU0M6
OlVTdHJpbmcgJiBzKSB7IHJldHVybiBnX3N0cmR1cChzLlVURjhTdHJpbmcoKS5jX3N0cigpKTsg
fQoraW5saW5lIGdjaGFyICogR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNv
bnN0JnMpIHsgcmV0dXJuIGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7IH0KKwor
I2VuZGlmIC8qIEdTdHJpbmdDb252ZXJ0X2gqLwpJbmRleDogV2ViS2l0L2d0ay9nZG9tL2dkb20u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCShyZXZpc2lvbiAwKQorKysg
V2ViS2l0L2d0ay9nZG9tL2dkb20uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACisjaW5j
bHVkZSA8Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9N
T2JqZWN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZS5oPgpJbmRleDogV2ViS2l0L2d0ay9n
ZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9t
L1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20v
UHJpdmF0ZUdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworCisjaWZuZGVmIFByaXZhdGVHZG9tRE9NT2JqZWN0X2gKKyNkZWZpbmUgUHJpdmF0ZUdkb21E
T01PYmplY3RfaAorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
RE9NT2JqZWN0LmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01PYmplY3Q7CitXRUJLSVRf
QVBJIEdET01PYmplY3QqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVj
dCAqcmVxdWVzdCk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2
YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QqIGl0ZW0pOworCitHX0VORF9E
RUNMUworI2VuZGlmCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9ndGsvZ2RvbS9Qcml2
YXRlR2RvbURPTU9iamVjdC5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptZXJnZWluZm8KCkluZGV4
OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDM2NDU5KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMiwxMyArMiwxOSBAQAogV2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQog
CiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZF
QVRVUkVfREVGSU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTIDo9
CiBIVE1MX0ZFQVRVUkVTIDo9CiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTIDo9ICQoV2Vi
Q29yZSkvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRT
IDo9ICQoV2ViQ29yZSkvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KIAorbGliZ2RvbV9jcHBmbGFn
cyArPSBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKKwktSSQodG9wX2J1
aWxkZGlyKS9EZXJpdmVkU291cmNlcworCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlIFwKIAktSSQoc3JjZGlyKS9X
ZWJDb3JlL2JpbmRpbmdzL2pzIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZSBcCkBAIC0y
Nyw2ICszMyw3IEBACiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybSBcCiAJLUkkKHNyY2Rp
cikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dk
b20gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogCS1J
JChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wIFwKIAktSSQoc3Jj
ZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZiBcCkBAIC0zNjcsNiArMzc0
LDExIEBACiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9Y
TUxOYW1lcy5oCiAKK2xpYmdkb21fYnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5vZGUuaCAKKwogSURMX0JJTkRJTkdTICs9
ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgXAogCVdlYkNvcmUvY3NzL0NTU0NoYXJzZXRS
dWxlLmlkbCBcCkBAIC01MTcsNiArNTI5LDE0IEBACiAJV2ViQ29yZS94bWwvWE1MU2VyaWFsaXpl
ci5pZGwgXAogCVdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAKK2xpYmdkb21fc291cmNl
cyArPSBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcCBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
ZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3Qu
aCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmggXAorCVdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAgCisKIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ranMvQWN0aXZhdGlvbi5o
IFwKIAlXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2tqcy9BcmdMaXN0LmggXApAQCAtMjI2Myw3
ICsyMjgzLDcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9KU1RpbWVSYW5nZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2su
Y3BwIFwKLQlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMv
SlNWb2lkQ2FsbGJhY2suaCAKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2h0bWwvSFRN
TEF1ZGlvRWxlbWVudC5pZGwgXApAQCAtMzQyNCw2ICszNDQ0LDE1IEBACiAgICAgJChXZWJDb3Jl
KS94bWwgXAogICAgICQoV2ViQ29yZSkvcGx1Z2lucwogCisKKworRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA7CisKK0Rlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA7CisK
K0Rlcml2ZWRTb3VyY2VzL2dkb20vR2RvbSUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1Mp
ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorCSQo
UEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0taW5jbHVkZSAkKFdlYkNvcmUpL2RvbSAtLWlu
Y2x1ZGUgJChXZWJDb3JlKS9odG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL2NzcyAtLWluY2x1ZGUg
JChXZWJDb3JlKS9wYWdlIC0taW5jbHVkZSAkKFdlYkNvcmUpL3htbCAtLWluY2x1ZGUgJChXZWJD
b3JlKS9zdmcgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU0dET00pIiAtLWRlZmluZXMgIiQoRkVB
VFVSRV9ERUZJTkVTX0dET00pIiAtLWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKIERlcml2ZWRTb3Vy
Y2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiBEZXJpdmVkU291cmNlcy9KUyUu
Y3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM0MzksNiArMzQ2OCw3IEBACiAJV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1aXJr
cy5jc3MgXAogCVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBcCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyNSBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3Jn
KQorICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBX
ZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworLy8gZ2NjIDMueCBjYW4ndCBoYW5kbGUgaW5jbHVkaW5nIHRoZSBIYXNoTWFw
IHBvaW50ZXIgc3BlY2lhbGl6YXRpb24gaW4gdGhpcyBmaWxlCisjaWYgZGVmaW5lZCBfX0dOVUNf
XyAmJiAhZGVmaW5lZCBfX0dMSUJDWFhfXyAvLyBsZXNzIHRoYW4gZ2NjIDMuNAorI2RlZmluZSBI
QVNIX01BUF9QVFJfU1BFQ19XT1JLQVJPVU5EIDEKKyNlbmRpZgorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdk
b21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHZG9tTm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tRE9NT2JqZWN0LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIEhhc2hNYXA8
dm9pZCosIGdwb2ludGVyPiBET01PYmplY3RNYXA7Cit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdw
b2ludGVyPiBHZG9tV3JhcHBlckNhY2hlOyAvKiBBUkchIFVORkFJUiEgSlNXcmFwcGVyQ2FjaGUg
aXMgaW4gRG9jdW1lbnQhISAqLworCisvLyBGb3IgZGVidWdnaW5nLCBrZWVwIGEgc2V0IG9mIHdy
YXBwZXJzIGN1cnJlbnRseSByZWdpc3RlcmVkLCBhbmQgY2hlY2sgdGhhdAorLy8gYWxsIGFyZSB1
bnJlZ2lzdGVyZWQgYmVmb3JlIHRoZXkgYXJlIGRlc3Ryb3llZC4gVGhpcyBoYXMgaGVscGVkIHVz
IGZpeCBhdAorLy8gbGVhc3Qgb25lIGJ1Zy4KKworI2lmIDAKK3N0YXRpYyB2b2lkIGFkZFdyYXBw
ZXIoR0RPTU9iamVjdCogd3JhcHBlcik7CitzdGF0aWMgdm9pZCByZW1vdmVXcmFwcGVyKEdET01P
YmplY3QqIHdyYXBwZXIpOworc3RhdGljIHZvaWQgcmVtb3ZlV3JhcHBlcnMoY29uc3QgR2RvbVdy
YXBwZXJDYWNoZSYgd3JhcHBlcnMpOworCisjaWZkZWYgTkRFQlVHCisKK3N0YXRpYyBpbmxpbmUg
dm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqKQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQg
cmVtb3ZlV3JhcHBlcihHRE9NT2JqZWN0KikKK3sKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJl
bW92ZVdyYXBwZXJzKGNvbnN0IEdkb21XcmFwcGVyQ2FjaGUmKQoreworfQorCisjZWxzZQorCitz
dGF0aWMgSGFzaFNldDxHRE9NT2JqZWN0Kj4mIHdyYXBwZXJTZXQoKQoreworICAgIHN0YXRpYyBI
YXNoU2V0PEdET01PYmplY3QqPiBzdGF0aWNXcmFwcGVyU2V0OworICAgIHJldHVybiBzdGF0aWNX
cmFwcGVyU2V0OworfQorCitzdGF0aWMgdm9pZCBhZGRXcmFwcGVyKEdET01PYmplY3QqIHdyYXBw
ZXIpCit7CisgICAgQVNTRVJUKCF3cmFwcGVyU2V0KCkuY29udGFpbnMod3JhcHBlcikpOworICAg
IHdyYXBwZXJTZXQoKS5hZGQod3JhcHBlcik7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZVdyYXBw
ZXIoR0RPTU9iamVjdCogd3JhcHBlcikKK3sKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJl
dHVybjsKKyAgICBBU1NFUlQod3JhcHBlclNldCgpLmNvbnRhaW5zKHdyYXBwZXIpKTsKKyAgICB3
cmFwcGVyU2V0KCkucmVtb3ZlKHdyYXBwZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVXcmFw
cGVycyhjb25zdCBHZG9tV3JhcHBlckNhY2hlJiB3cmFwcGVycykKK3sKKyAgICBmb3IgKEdkb21X
cmFwcGVyQ2FjaGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gd3JhcHBlcnMuYmVnaW4oKTsgaXQgIT0g
d3JhcHBlcnMuZW5kKCk7ICsraXQpCisgICAgICAgIHJlbW92ZVdyYXBwZXIoaXQtPnNlY29uZCk7
Cit9CisKK0dET01PYmplY3Q6On5HRE9NT2JqZWN0KCkKK3sKKyAgICBBU1NFUlQoIXdyYXBwZXJT
ZXQoKS5jb250YWlucyh0aGlzKSk7Cit9CisKKyNlbmRpZgorI2VuZGlmIC8qIGNvbW1lbnRlZCBv
dXQgZm9yIG5vdyAqLworCitzdGF0aWMgR2RvbVdyYXBwZXJDYWNoZSYgd3JhcHBlckNhY2hlKCkK
K3sKKyAgICAvLyBVTkZBSVIhIGkgd2FudCBvbmUgb2YgdGhlc2UgcGVyIERvY3VtZW50LCB0b28h
CisgICAgLy8gRG9uJ3QgdXNlIG1hbGxvYyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFy
ayBmdW5jdGlvbiBjYW4gZGVhZGxvY2suCisgICAgc3RhdGljIEdkb21XcmFwcGVyQ2FjaGUgc3Rh
dGljR2RvbVdyYXBwZXJDYWNoZTsKKyAgICByZXR1cm4gc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsK
K30KKworc3RhdGljIERPTU9iamVjdE1hcCYgZG9tT2JqZWN0cygpCit7CisgICAgLy8gRG9uJ3Qg
dXNlIG1hbGxvYyBoZXJlLiBDYWxsaW5nIG1hbGxvYyBmcm9tIGEgbWFyayBmdW5jdGlvbiBjYW4g
ZGVhZGxvY2suCisgICAgc3RhdGljIERPTU9iamVjdE1hcCBzdGF0aWNET01PYmplY3RzOworICAg
IHJldHVybiBzdGF0aWNET01PYmplY3RzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJw
cmV0ZXI6OmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpCit7CisgICAgZ3BvaW50ZXIg
cmV0ID0gZG9tT2JqZWN0cygpLmdldChvYmplY3RIYW5kbGUpOworICAgIC8vcHJpbnRmKCJnZXRE
T01PYmplY3Q6ICVwICVwXG4iLCBvYmplY3RIYW5kbGUsIHJldCk7CisgICAgcmV0dXJuIHJldDsK
K30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZV9nZG9tX29iamVjdChHRE9NT2JqZWN0ICpkb2Ip
Cit7CisgICAgLyogYWxsIG9mIHRoZSB3b3JrIGluIGNyZWF0aW5nIHRoZSB0b0dET00gZnVuY3Rp
b25zLAorICAgICAqIHRoZW4gaGF2aW5nIG5ldyBHRE9NWHl6KHN0YXRpY190eXBlY2FzdDxYeXoq
Pm9iaiksIAorICAgICAqIHdoZXJlIGFsbCBHRE9NWHl6J3MgYXJlIGRlcml2ZWQgZnJvbSB0aGUg
cHVyZSB2aXJ0dWFsCisgICAgICogY2xhc3MsIEdET01PYmplY3QsIGVuZHMgdXAgaGVyZSAtIHRv
IGNyZWF0ZSB0aGUKKyAgICAgKiByaWdodCB0eXBlIG9mIGdsaWIgb2JqZWN0LgorICAgICAqCisg
ICAgICogdGhlcmUgYXJlIG5vIGNvbnN0cnVjdG9ycyAiZ2RvbV94eXpfbmV3KCkiIC0gdGhlcmUg
aXMKKyAgICAgKiBfb25seV8gY3JlYXRlX2dkb21fb2JqZWN0KCkuICB0aGF0IG1ha2VzIHRoZSB0
b0dET00KKyAgICAgKiBmdW5jdGlvbnMgdGhlIG9ubHkgc2FmZSBhbmQgc2FuZSB3YXkgdG8gY3Jl
YXRlCisgICAgICogZ2xpYiBiaW5kaW5ncyBvYmplY3RzOyBpdCBtZWFucyB0aGF0IHRoZSBvYmpl
Y3QKKyAgICAgKiBjYWNoZSwgYW4gYWJzb2x1dGVseSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBnbGli
CisgICAgICogYmluZGluZ3MsIHJlbWFpbnMgY29uc2lzdGVudC4KKyAgICAgKi8KKyAgICBncG9p
bnRlciByZXMgPSBnX29iamVjdF9uZXcoZG9iLT5nZXRHb2JqVHlwZSgpLCBOVUxMKTsKKyAgICBn
ZG9tX2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcyksIGRvYik7Cisg
ICAgcmV0dXJuIHJlczsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRE
T01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBHRE9NT2JqZWN0KiB3cmFwcGVyKQoreworICAg
IC8vIGFkZFdyYXBwZXIod3JhcHBlcik7CisgICAgZ3BvaW50ZXIgb2JqID0gY3JlYXRlX2dkb21f
b2JqZWN0KHdyYXBwZXIpOworICAgIC8vcHJpbnRmKCJwdXRET01PYmplY3Q6ICVwICVwICVwXG4i
LCBvYmplY3RIYW5kbGUsIHdyYXBwZXIsIG9iaik7CisgICAgZG9tT2JqZWN0cygpLnNldChvYmpl
Y3RIYW5kbGUsIG9iaik7CisgICAgcmV0dXJuIG9iajsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpCit7CisgICAgZG9t
T2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKTsKKyAgICAvL3JlbW92ZVdyYXBwZXIoZG9tT2Jq
ZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRl
cnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSog
bm9kZSkKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Z3BvaW50ZXIgPihkb21PYmplY3RzKCkuZ2V0KG5vZGUpKTsKKyAgICByZXR1cm4gLyogWFhYIGdy
cnIgZG9jdW1lbnQtPiAqL3dyYXBwZXJDYWNoZSgpLmdldChub2RlKTsKK30KKwordm9pZCBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCogZG9j
dW1lbnQsIE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFkb2N1bWVudCkgeworICAgICAgICBmb3Jn
ZXRET01PYmplY3Qobm9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy9yZW1vdmVX
cmFwcGVyKC8qIFhYWCBncnIgZG9jdW1lbnQtPiovd3JhcHBlckNhY2hlKCkudGFrZShub2RlKSk7
Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3Vt
ZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogbm9kZSwgR0RPTU5vZGUgKndyYXBwZXIpCit7
CisgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIpOworICAgIGlmICghZG9jdW1lbnQpIHsKKyAgICAg
ICAgbm9kZS0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1
dERPTU9iamVjdChub2RlLCB3cmFwcGVyKSA7CisgICAgfQorICAgIGdwb2ludGVyIG9iaiA9IGNy
ZWF0ZV9nZG9tX29iamVjdCh3cmFwcGVyKTsKKyAgICAvKiBYWFggZ3JyciBkb2N1bWVudC0+Ki93
cmFwcGVyQ2FjaGUoKS5zZXQobm9kZSwgb2JqKTsKKyAgICByZXR1cm4gb2JqOworfQorCit2b2lk
IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1
bWVudCogZG9jdW1lbnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKKyAgICAvL3JlbW92ZVdy
YXBwZXJzKGRvY3VtZW50LT53cmFwcGVyQ2FjaGUoKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBj
cmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpOworCitncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSkK
K3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBobW1tLi4uLiAqLwor
CisgICAgRG9jdW1lbnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAgZ3BvaW50ZXIgcmV0
ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2Rl
KTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgcmV0dXJuIGNyZWF0
ZVdyYXBwZXIobm9kZSk7Cit9CisKKworc3RhdGljIEFMV0FZU19JTkxJTkUgZ3BvaW50ZXIgY3Jl
YXRlV3JhcHBlcihOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBBU1NFUlQo
IVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQobm9kZS0+ZG9jdW1lbnQo
KSwgbm9kZSkpOworCisgICAgRG9jdW1lbnQqIGRvYyA9IG5vZGUtPmRvY3VtZW50KCk7CisgICAg
R0RPTU5vZGUgKnJldCA9IE5VTEw7CisKKyAgICByZXQgPSBuZXcgR0RPTU5vZGUobm9kZSk7CisK
KyAgICBkb2MtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERP
TU5vZGVGb3JEb2N1bWVudChkb2MsIG5vZGUsIHJldCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw5MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0
ZW4gKHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0
IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBHZG9tRE9NQmluZGluZ19oCisj
ZGVmaW5lIEdkb21ET01CaW5kaW5nX2gKKworI2luY2x1ZGUgPGtqcy9pbnRlcnByZXRlci5oPgor
I2luY2x1ZGUgPGtqcy9sb29rdXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKwor
I2luY2x1ZGUgImdkb20vR2RvbU5vZGUuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbU5vZGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisgICAgY2xhc3MgQXRvbWljU3RyaW5nOworICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNz
IEV2ZW50OworICAgIGNsYXNzIEZyYW1lOworICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgTm9k
ZTsKKyAgICBjbGFzcyBTdHJpbmc7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGNsYXNzIFNWR0Vs
ZW1lbnQ7CisjZW5kaWYKKworICAgIGNsYXNzIEdET01TY3JpcHRJbnRlcnByZXRlciB7CisgICAg
cHVibGljOgorICAgICAgICBzdGF0aWMgdm9pZCogZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhh
bmRsZSk7CisgICAgICAgIHN0YXRpYyB2b2lkKiBwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFu
ZGxlLCBHRE9NT2JqZWN0Kik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU9iamVjdCh2
b2lkKiBvYmplY3RIYW5kbGUpOworCisgICAgICAgIHN0YXRpYyB2b2lkKiBnZXRET01Ob2RlRm9y
RG9jdW1lbnQoRG9jdW1lbnQqLCBOb2RlKik7CisgICAgICAgIHN0YXRpYyB2b2lkKiBwdXRET01O
b2RlRm9yRG9jdW1lbnQoRG9jdW1lbnQqLCBOb2RlKiwgR0RPTU5vZGUqIG5vZGVXcmFwcGVyKTsK
KyAgICAgICAgc3RhdGljIHZvaWQgZm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50Kiwg
Tm9kZSopOworICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50
KERvY3VtZW50Kik7CisJCSNpZiAwCisgICAgICAgIHN0YXRpYyB2b2lkIHVwZGF0ZURPTU5vZGVE
b2N1bWVudChOb2RlKiwgRG9jdW1lbnQqIG9sZERvYywgRG9jdW1lbnQqIG5ld0RvYyk7CisgICAg
ICAgIHN0YXRpYyB2b2lkIG1hcmtET01Ob2Rlc0ZvckRvY3VtZW50KERvY3VtZW50Kik7CisJCSNl
bmRpZgorICAgIH07CisKKyAgICAvLyBSZXRyaWV2ZSBmcm9tIGNhY2hlLCBvciBjcmVhdGUsIGEg
R2RvbSB3cmFwcGVyIGZvciBhIERPTSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xhc3MgRE9NT2Jq
LCBjbGFzcyBHZG9tRE9NT2JqPiBpbmxpbmUgdm9pZCogY2FjaGVET01PYmplY3QoRE9NT2JqKiBk
b21PYmopCisgICAgeworICAgICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBO
VUxMOyAvKiBYWFggaG1tbS4uLiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlw
dEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiBy
ZXQ7CisgICAgICAgIEdET01PYmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaik7CisJ
CWRvbU9iai0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1
dERPTU9iamVjdChkb21PYmosIHJldCk7CisgICAgfQorCisjaWYgRU5BQkxFKFNWRykKKyAgICAv
LyBSZXRyaWV2ZSBmcm9tIGNhY2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBhbiBT
VkcgRE9NIG9iamVjdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01P
Ymo+IGlubGluZSB2b2lkKiBjYWNoZVNWR0RPTU9iamVjdChET01PYmoqIGRvbU9iaiwgU1ZHRWxl
bWVudCogY29udGV4dCkKKyAgICB7CisgICAgICAgIGlmICghZG9tT2JqKQorICAgICAgICAgICAg
cmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisgICAgICAgIGlmICh2b2lkKiByZXQgPSBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb21PYmopKQorICAgICAgICAgICAg
cmV0dXJuIHJldDsKKyAgICAgICAgR0RPTU9iamVjdCogcmV0ID0gbmV3IEdkb21ET01PYmooZG9t
T2JqLCBjb250ZXh0KTsKKwkJZG9tT2JqLT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisjZW5kaWYK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gR2RvbURPTUJpbmRpbmdfaApJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuY3Bw
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2Jq
ZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgImdkb20v
R2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkdET01PYmplY3QuaCIKKyNpbmNsdWRlICJnZG9t
L1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgiCisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBF
KEdkb21ET01PYmplY3QsIGdkb21fZG9tX29iamVjdCwgR19UWVBFX09CSkVDVCk7CisKK3N0cnVj
dCBfR2RvbURPTU9iamVjdFByaXZhdGUgeworICAgICBHRE9NT2JqZWN0ICptX25vZGU7Cit9Owor
CisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFO
Q0VfR0VUX1BSSVZBVEUoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0
UHJpdmF0ZSkpCisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHZG9tRE9NT2Jq
ZWN0ICpyZXF1ZXN0LCBHRE9NT2JqZWN0ICogaXRlbSkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJp
dmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBw
cml2LT5tX25vZGUgPSBpdGVtOworICAgIC8qcHJpdi0+bV9ub2RlLT5pbXBsKCktPnJlZigpOyov
Cit9CisKK0dET01PYmplY3QgKgorZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdkb21ET01P
YmplY3QgKnJlcXVlc3QpCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9N
X0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmV0dXJuIHByaXYtPm1fbm9k
ZTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2ZpbmFsaXplKEdPYmplY3QqIG9i
amVjdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0KiByZXF1ZXN0ID0gR0RPTV9ET01fT0JKRUNUKG9i
amVjdCk7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2Owor
CisgICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+ZGVyZWYoKTsqLworICAgIGRlbGV0ZSBwcml2
LT5tX25vZGU7IC8qIGNhbGxzIG1faW1wbC0+ZGVyZWYoKSAqLworCisgICAgR19PQkpFQ1RfQ0xB
U1MoZ2RvbV9kb21fb2JqZWN0X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisK
K3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9jbGFzc19pbml0KEdkb21ET01PYmplY3RDbGFz
cyogcmVxdWVzdENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZp
bmFsaXplID0gZ2RvbV9kb21fb2JqZWN0X2ZpbmFsaXplOworCisgICAgZ190eXBlX2NsYXNzX2Fk
ZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21ET01PYmplY3RQcml2YXRlKSk7Cit9
CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9pbml0KEdkb21ET01PYmplY3QqIHJlcXVl
c3QpCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1Rf
R0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Cit9CisKK30g
LyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9i
amVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgImdkb20v
R2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisKK2V4dGVybiAiQyIg
eworCit2b2lkCitnZG9tX2RvbV9vYmplY3RfaW5pdF9kb21fb2JqZWN0IChHZG9tRE9NT2JqZWN0
ICp0aGl6KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworCS8qCisgICAgV2ViQ29y
ZTo6RE9NT2JqZWN0ICogaXRlbSA9IGdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZSh0aGl6KTsK
KyAgICBXZWJDb3JlOjpTdHJpbmcgX2dfZG9tX29iamVjdF90eXBlX2FyZyA9IFdlYkNvcmU6OlN0
cmluZyhkb21fb2JqZWN0X3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RE9NT2JqZWN0KF9nX2Rv
bV9vYmplY3RfdHlwZV9hcmcpOworCSovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBt
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0LnBtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0MzYgQEAKKyMKKyMgQ29weXJpZ2h0
IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+Cisj
IENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorIworIyBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMK
KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhaW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisjIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyMgQm9zdG9uLCBN
QSAwMjExMS0xMzA3LCBVU0EuCisKK3BhY2thZ2UgQ29kZUdlbmVyYXRvckdPYmplY3Q7CisKKyMg
RGVmYXVsdCBMaWNlbmNlIFRlbXBsYXRlcworbXkgJGxpY2VuY2VUZW1wbGF0ZSA9IDw8ICJFT0Yi
OworLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9u
IDxsa2NsXEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscFxA
YXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KK0VPRgor
CitteSAlaW1wbEluY2x1ZGVzID0gKCk7CitteSAlaGRySW5jbHVkZXMgPSAoKTsKK215ICVoZHJQ
cm9wSW5jbHVkZXMgPSAoKTsKK215ICVpbXBsVHlwZWRlZnMgPSAoKTsKKworIyBEZWZhdWx0IGNv
bnN0cnVjdG9yCitzdWIgbmV3Cit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRy
ZWZlcmVuY2UgPSB7IH07CisKKyAgICAkY29kZUdlbmVyYXRvciA9IHNoaWZ0OworICAgICRvdXRw
dXREaXIgPSBzaGlmdDsKKworICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOworICAgIHJl
dHVybiAkcmVmZXJlbmNlOworfQorCitzdWIgZmluaXNoCit7CisgICAgbXkgJG9iamVjdCA9IHNo
aWZ0OworfQorCisjIFBhcmFtczogJ2RvbUNsYXNzJyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZUludGVy
ZmFjZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlm
dDsKKyAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OworCisgICAgbXkgJG5hbWUgPSAkZGF0YU5vZGUt
Pm5hbWU7CisKKyAgICBwcmludCAiJG5hbWVcbiI7CisKKyAgICAkb2JqZWN0LT5HZW5lcmF0ZSgk
ZGF0YU5vZGUpOworCisgICAgIyBXcml0ZSBjaGFuZ2VzCisgICAgbXkgJGZuYW1lID0gIkdkb21f
IiAuICRuYW1lOyAjZGVjYW1lbGl6ZSgkbmFtZSk7CisgICAgJGZuYW1lID1+IHMvXy8vZzsKKyAg
ICAkb2JqZWN0LT5Xcml0ZURhdGEoJGZuYW1lKTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVu
dCcgc3RydWN0CitzdWIgR2VuZXJhdGVNb2R1bGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7
CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAkbW9kdWxlID0gJGRhdGFOb2RlLT5t
b2R1bGU7Cit9CisKK3N1YiBDbHNUb0dPYmpUeXBlCit7CisgICAgbXkgJGNsYXNzTmFtZSA9IHNo
aWZ0OworICAgIHJldHVybiB1YyhkZWNhbWVsaXplKCRjbGFzc05hbWUpKQorfQorCitzdWIgR2V0
UGFyZW50Q2xhc3NOYW1lCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/
IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdh
Y3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJl
bnQifTsKKyAgICByZXR1cm4gIkdkb21ET01PYmplY3QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRz
fSBlcSAwOworICAgIHJldHVybiAiR2RvbSIgLiAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUo
JGRhdGFOb2RlLT5wYXJlbnRzKDApKTsKK30KK3N1YiBHZXRQYXJlbnRHT2JqVHlwZQoreworICAg
IG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgIyA/PyBxdWU/PworICAgICNyZXR1cm4gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgcmV0dXJuICJHRE9N
X1RZUEVfRE9NX09CSkVDVCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0
dXJuICJHRE9NX1RZUEVfIiAuIENsc1RvR09ialR5cGUoJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9k
dWxlKCRkYXRhTm9kZS0+cGFyZW50cygwKSkpOworfQorCisKKyMgQWxnb3JpdGhtIHRha2VuIGZy
b20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGNhbWVsaXplCit7CisgICAgbXkgJHMgPSBz
aGlmdDsKKyAgICBqb2luKCcnLCBtYXB7IHVjZmlyc3QgJF8gfSBzcGxpdCgvKD88PVtBLVphLXpd
KV8oPz1bQS1aYS16XSl8XGIvLCAkcykpOworfQorCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0
cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1YiBkZWNhbWVsaXplCit7CisgICAgbXkgJHMgPSBzaGlm
dDsKKyAgICAkcyA9fiBzeyhbXmEtekEtWl0/KShbQS1aXSopKFtBLVpdKShbYS16XT8pfXsKKyAg
ICAgICAgbXkgJGZjID0gcG9zKCRzKT09MDsKKyAgICAgICAgbXkgKCRwMCwkcDEsJHAyLCRwMykg
PSAoJDEsbGMkMixsYyQzLCQ0KTsKKyAgICAgICAgbXkgJHQgPSAkcDAgfHwgJGZjID8gJHAwIDog
J18nOworICAgICAgICAkdCAuPSAkcDMgPyAkcDEgPyAiJHtwMX1fJHAyJHAzIiA6ICIkcDIkcDMi
IDogIiRwMSRwMiI7CisgICAgICAgICR0OworICAgIH1nZTsKKyAgICAkczsKK30KKworc3ViIEdl
dEhkck5hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1
bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitzdWIgR2V0Q2xhc3NO
YW1lCit7CisgICAgICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNo
aWZ0KTsKKworICAgIHJldHVybiAiR2RvbSRuYW1lIjsKK30KKworc3ViIEdldEdJbmNsdWRlSGRy
Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRIZHJOYW1l
KCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBl
KSk7CisKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJOYW1lZE5vZGVNYXAiOyAjIGhh
Y2sgdG8gZ2V0IGludGVybWVkaWF0ZSBwYXRjaCB0byBjb21waWxlCisgICAgICAgIHJldHVybiAi
IiBpZiAkdHlwZSBlcSAiRG9jdW1lbnQiOyAjIGhhY2sgdG8gZ2V0IGludGVybWVkaWF0ZSBwYXRj
aCB0byBjb21waWxlCisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiTm9kZUxpc3QiOyAj
IGhhY2sgdG8gZ2V0IGludGVybWVkaWF0ZSBwYXRjaCB0byBjb21waWxlCisgICAgICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJs
b25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgICAgIHJl
dHVybiAiIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBl
cSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAg
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1cm4gIiIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBl
cSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBz
aG9ydCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAg
ICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsKKyAgICAgICAgcmV0
dXJuICJSYW5nZS5oIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJldHVybiAi
Z2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIGlmICR0eXBlIGVxICJET01PYmpl
Y3QiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGNoYXIiOworICAg
ICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBj
bGFzcyB3cmFwcGVyCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEg
IkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIiBpZiAk
dHlwZSBlcSAiRXZlbnRUYXJnZXQiOworCisgICAgICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIg
aWYgJHR5cGUgZXEgImZsb2F0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJib29sZWFuIjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUuaCI7Cit9CisKKyMgcmV0dXJu
cyAxIGlmIHdlIG5lZWQgdG8gY3JlYXRlIGEgZ29iamVjdCB3cmFwcGVyIGFyb3VuZCB0aGUgcmV0
dXJuIHJlc3VsdAorc3ViIElzR0RPTUNsYXNzVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7
CisgICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJFdmVudExp
c3RlbmVyIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImJvb2xlYW4i
OworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAw
IGlmICR0eXBlIGVxICJsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInNob3J0
IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
ImludCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAg
ICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBl
cSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gMTsKK30KKworc3ViIEdl
dFByb3BHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRD
bGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0eXBlIGVxICJET01T
dHJpbmciOworICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0
dXJuICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1
cm4gImRvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJib29sZWFuIiBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hh
ciI7CisgICAgcmV0dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJp
bnQiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEg
InVjaGFyIjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAg
cmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAidWludCIgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBsb25nIjsKKyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNo
b3J0IjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBU
T0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2JqZWN0IjsKK30KKworc3Vi
IEdldEdUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBH
ZXRDbGFzc05hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFz
c05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUgKiIg
aWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKyAgICAgICAgcmV0dXJuICJnY2hhciAqIiBpZiAk
dHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJnZmxvYXQiIGlmICR0eXBlIGVx
ICJmbG9hdCI7CisgICAgICAgIHJldHVybiAiV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVIb3cgIiBp
ZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgICAgIHJldHVybiAiZ2RvdWJsZSIgaWYgJHR5
cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAiZ2Jvb2xlYW4iIGlmICR0eXBlIGVxICJi
b29sZWFuIjsKKyAgICAgICAgcmV0dXJuICJnY2hhciIgaWYgJHR5cGUgZXEgImNoYXIiOworICAg
ICAgICByZXR1cm4gImdsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAi
Z3Nob3J0IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gImd1Y2hhciIgaWYg
JHR5cGUgZXEgInVjaGFyIjsKKyAgICAgICAgcmV0dXJuICJndWludCIgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJnaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAg
ICAgcmV0dXJuICJndWludCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgICAgIHJl
dHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgICAgIHJldHVy
biAiZ3VpbnQ2NCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgICAgIHJl
dHVybiAiZ3VzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0
dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xh
c3Mgd3JhcHBlcgorCisgICAgICAgIHJldHVybiAidm9pZCIgaWYgJHR5cGUgZXEgInZvaWQiOwor
CisgICAgcmV0dXJuICIkbmFtZSAqIjsKK30KKworc3ViIGdldEluY0hkcgoreworICAgIG15ICR0
eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaW5jbHVkZUhkciA9IEdldEdJbmNsdWRlSGRyKCR0eXBl
KTsKKyAgICBpZiAoJGluY2x1ZGVIZHIpIHsKKyAgICAgICAgaWYgKCR0eXBlIGVxICJFdmVudFRh
cmdldCIpIHsKKyAgICAgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIjsKKyAg
ICAgICAgfQorICAgICAgICBlbHNpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAg
ICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAg
ICAgICByZXR1cm4gIkdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCI7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gJGluY2x1ZGVIZHI7CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuICIiOworfQorCitzdWIgYWRkUHJvcEluY0hkcgoreworICAgIG15ICR0eXBl
ID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhk
ciBuZSAiIikgeworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAg
ICAgICAgJGhkclByb3BJbmNsdWRlc3siZ2RvbS8iLiRoZHJ9ID0gMTsKKyAgICAgICAgICAgICRo
ZHJQcm9wSW5jbHVkZXN7Imdkb20vUHJpdmF0ZSIuJGhkcn0gPSAxOworICAgICAgICAgICAgJGhk
clByb3BJbmNsdWRlc3siZ2RvbS9Qcml2YXRlSW50Ii4kaGRyfSA9IDE7CisgICAgICAgIH0KKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAg
ICAgICAgfQorICAgIH0KKworfQorCitzdWIgYWRkSW5jSGRyCit7CisgICAgbXkgJHR5cGUgPSBz
aGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5l
ICIiKSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAg
ICAkaGRySW5jbHVkZXN7Imdkb20vJGhkciJ9ID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICRoZHJJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9CisKK30KKwor
c3ViIGFkZEluY0JvZHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9
IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgaWYgKElz
R0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20v
JGhkciJ9ID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
JGhkcn0gPSAxOworICAgICAgICB9CisgICAgfQorfQorCitzdWIgR2V0UHJpdkZuCit7CisgICAg
bXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gc2hp
ZnQ7CisgICAgbXkgJHJlcyA9IHNoaWZ0OworICAgIG15ICRwYXJtID0gc2hpZnQ7CisKKyAgICBp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICByZXR1cm4gIldl
YkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqICRyZXMgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVu
dFRhcmdldE5vZGUqPihnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKHNlbGYpKTsi
OworICAgIH0KKyAgICByZXR1cm4gIldlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiAkcmVzID0g
KCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgkcGFybSkpOyI7Cit9CisKK3N1YiBza2lw
UHJvcFRlbXBvcmFyaWx5Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkcHJvcF90
eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXAgTmFtZWROb2RlbWFwCisgICAgaWYgKCRwcm9wX3R5
cGUgZXEgIk5hbWVkTm9kZU1hcCIpIHsgIyBoYWNrIHRvIGdldCBpbnRlcm1lZGlhdGUgcGF0Y2gg
dG8gY29tcGlsZQorICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAgTm9kZUxp
c3QKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiTm9kZUxpc3QiKSB7ICMgaGFjayB0byBnZXQgaW50
ZXJtZWRpYXRlIHBhdGNoIHRvIGNvbXBpbGUKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisg
ICAgIyBza2lwIERvY3VtZW50CisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRvY3VtZW50IikgeyAj
IGhhY2sgdG8gZ2V0IGludGVybWVkaWF0ZSBwYXRjaCB0byBjb21waWxlCisgICAgICAgIHJldHVy
biAxOworICAgIH0KKworCisgICAgIyBza2lwIENvbnN0cnVjdG9ycyAod2hhdGV2ZXIgdGhleSBh
cmUpIGZvciBub3cuCisgICAgaWYgKCRwcm9wX3R5cGUgPX4gL0NvbnN0cnVjdG9yJC8pIHsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBVc2VzTWFu
dWFsVG9KU0ltcGxlbWVudGF0aW9uCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgICMg
c2tpcHBlZCBvdXQgQ2FudmFzUGl4ZWxBcnJheSAtIHNlZSBKU0NhbnZhc1BpeGVsQXJyYXlDdXN0
b20uY3BwIGZvciB3aHkuCisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIk5vZGUiIG9yICR0eXBl
IGVxICJEb2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvciAkdHlwZSBlcSAi
U1ZHUGF0aFNlZyIgb3IgJHR5cGUgZXEgIlN0eWxlU2hlZXQiIG9yICR0eXBlIGVxICJDU1NSdWxl
IiBvciAkdHlwZSBlcSAiQ1NTVmFsdWUiIG9yICR0eXBlIGVxICJFdmVudCIgb3IgJHR5cGUgZXEg
IkVsZW1lbnQiIG9yICR0eXBlIGVxICJUZXh0IjsKKyAgICByZXR1cm4gMDsKK30KKworCisjIEdl
bmVyYXRlIGhlYWRlciBhbmQgaW1wbAorc3ViIEdlbmVyYXRlCit7CisgICAgbXkgJG9iamVjdCA9
IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgbXkgJGhhc0xlZ2FjeVBh
cmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9Owor
ICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMDsKKyAgICBt
eSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVudDsKKyAgICBt
eSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRkYXRhTm9kZSk7CisgICAg
bXkgJHBhcmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUoJGRhdGFOb2RlKTsKKyAgICBt
eSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkY2xhc3NOYW1lID0g
R2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkaGRyTmFtZSA9IEdldEhkck5h
bWUoJGludGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1wbCBoZWFkZXIg
dGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOwor
ICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNsdWRlc3siR0RPTUJpbmRp
bmcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyRoZHJOYW1lLmgifSA9IDE7Cisg
ICAgJGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2YXRlJHtoZHJOYW1lfS5oIn0gPSAxOworCisgICAg
bXkgJHBhcmVudEludGVyZmFjZU5hbWUgPSAiRE9NT2JqZWN0IjsKKyAgICBteSAkcGFyZW50R0lm
YWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICBteSAkcGFyZW50SGRyTmFtZSA9ICJHZG9tRE9N
T2JqZWN0IjsKKyAgICBpZiAoJHBhcmVudENsYXNzTmFtZSBuZSAiR09iamVjdCIpCisgICAgewor
ICAgICAgICAkcGFyZW50SW50ZXJmYWNlTmFtZSA9IHN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0
KTsKKyAgICAgICAgaWYgKCRwYXJlbnRJbnRlcmZhY2VOYW1lIG5lICJET01PYmplY3QiKSB7Cisg
ICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NIi5zdWJzdHIoJHBhcmVudENsYXNz
TmFtZSwgNCk7CisgICAgICAgICAgICAkcGFyZW50SGRyTmFtZSA9IEdldEhkck5hbWUoJHBhcmVu
dEludGVyZmFjZU5hbWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAg
ICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTU9iamVjdCI7CisgICAgICAgIH0KKyAg
ICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAg
ICAgICRpbXBsSW5jbHVkZXN7Imdkb20vUHJpdmF0ZSR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsK
KyAgICAgICAgJGhkckluY2x1ZGVzeyJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAg
ICAgICAgIyRoZHJJbmNsdWRlc3siUHJpdmF0ZSR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMDsKKyAg
ICB9CisKKyAgICAjIFRPRE8gLSBtYWtlIHRoZXNlIG9ubHkgaW5jbHVkZSB3aGVyZSBuZWVkZWQs
IGxpa2V3aXNlIHRoZQorICAgICMgZnVuY3Rpb24gZGVjbGFyYXRpb25zIHRvR0RPTSwgdG9vCisg
ICAgJGltcGxJbmNsdWRlc3siTm9kZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkVsZW1l
bnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDU1NWYWx1ZS5oIn0gPSAxOworICAgICRp
bXBsSW5jbHVkZXN7IkNTU1J1bGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJIVE1MQ29s
bGVjdGlvbi5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IlN0eWxlU2hlZXQuaCJ9ID0gMTsK
KyAgICAkaW1wbEluY2x1ZGVzeyJFdmVudC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNh
bnZhc1BpeGVsQXJyYXkuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJET01XaW5kb3cuaCJ9
ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJUZXh0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRl
c3siZ2RvbS9HU3RyaW5nQ29udmVydC5oIn0gPSAxOworCisgICAgIyBYWFggVE9ETzogbWFrZSB0
aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVhZGVyIGZpbGUuICBvciBmaW5kIGEgYmV0dGVyIHdheS4K
KyAgICBteSAkaGFja0RlY2xzID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAg
Z3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpOworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitF
T0YKKworICAgIHB1c2goQGNCb2R5LCAkaGFja0RlY2xzKTsKKworICAgIHB1c2goQGNCb2R5LCAi
bmFtZXNwYWNlIFdlYkNvcmUge1xuIik7CisKKyAgICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUg
dHlwZXMgcmVzcGVjdGluZyBQT0RUeXBlIGZsYWcKKyAgICBteSAkcG9kVHlwZSA9ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlBPRFR5cGUifTsKKyAgICBteSAkcGFzc1R5cGUgPSAk
cG9kVHlwZSA/ICJKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPioiIDogIiRpbnRlcmZhY2VO
YW1lKiI7CisKKyAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRo
YXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pT
In0pIGFuZCAhVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsK
KyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNz
VHlwZSBvYmopXG4iKTsKKworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0PFdlYkNv
cmU6OiRpbnRlcmZhY2VOYW1lLCBHRE9NJGludGVyZmFjZU5hbWU+KG9iaik7XG4iKTsKKyAgICAg
ICAgcHVzaChAY0JvZHksICJ9XG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyog
bmFtZXNwYWNlIFdlYkNvcmUgKi9cbiIpOworICAgIG15ICRpbXBsQ29udGVudCA9ICIiOworCisg
ICAgIyBYWFggVE9ETyBwdXNoKEBjQm9keSwgInVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlO1xuXG4i
KTsKKyAgICBwdXNoKEBjQm9keSwgImV4dGVybiBcIkNcIiB7XG5cbiIpOworCisgICAgIyBBZGQg
dGhlIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCisgICAgQGhQcmVmaXggPSBzcGxpdCgiXHIiLCAk
bGljZW5jZVRlbXBsYXRlKTsKKyAgICAgICAgI3B1c2goQGhQcmVmaXgsICJcbiIpOworCisgICAg
IyBIZWFkZXIgZ3VhcmQKKyAgICAgICAgbXkgJGd1YXJkID0gIl9fIiAuICRjbGFzc05hbWUgLiAi
X0hfXyI7CisKKyAgICBteSAkY2xzQ2FwcyA9IHN1YnN0cihDbHNUb0dPYmpUeXBlKCRjbGFzc05h
bWUpLCA1KTsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gImdkb21fIiAuIGRlY2FtZWxpemUo
JGludGVyZmFjZU5hbWUpOworICAgICNteSAkcGFyZW50Q2xzQ2FwcyA9ICJHRE9NXyIgLiBDbHNU
b0dPYmpUeXBlKCRwYXJlbnRJbnRlcmZhY2VOYW1lKTsKKworICAgIEBoUHJlZml4R3VhcmQgPSA8
PCAiRU9GIjsKKyNpZm5kZWYgJGd1YXJkCisjZGVmaW5lICRndWFyZAorRU9GCisKKyAgICAkaW1w
bENvbnRlbnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5fREVDTFMKKworRU9GCisKKyAgICBwdXNoKEBo
Qm9keVByZSwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOwor
CisjZGVmaW5lIEdET01fVFlQRV8ke2Nsc0NhcHN9ICAgICAgICAgICAgKCR7bGNhc2VfaWZhY2Vu
YW1lfV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc30ob2JqKSAgICAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30s
ICR7Y2xhc3NOYW1lfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9DTEFTUyhrbGFzcykgICAg
KEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfJHtjbHNDYXBzfSwg
JGNsYXNzTmFtZSlDbGFzcykKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9KG9iaikgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV8ke2Nsc0NhcHN9
KSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNL
X0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RP
TV8ke2Nsc0NhcHN9X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1DbGFzcykpCisKK3R5cGVk
ZWYgc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlICR7Y2xhc3NOYW1lfVByaXZhdGU7CisKK3N0
cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICAke3BhcmVudENsYXNzTmFtZX0gcGFyZW50X2luc3Rh
bmNlOworICAgICR7Y2xhc3NOYW1lfVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgXyR7Y2xh
c3NOYW1lfUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VC
S0lUX0FQSSBHVHlwZQorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBlICh2b2lkKTsKKworRU9G
CisKKyAgICBwdXNoKEBoQm9keSwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9
IDw8ICJFT0YiOworI2lmbmRlZiAke2d1YXJkfV9QUk9QXworI2RlZmluZSAke2d1YXJkfV9QUk9Q
XworRU9GCisKKyAgICBwdXNoKEBoQm9keVByb3BQcmUsICRpbXBsQ29udGVudCk7CisKKyAgICBw
dXNoKEBoQm9keVByb3AsICJHX0JFR0lOX0RFQ0xTXG4iKTsKKworICAgICRoZHJQcm9wSW5jbHVk
ZXsiZ2xpYi1vYmplY3QuaCJ9ID0gMTsKKyAgICBpZiAoJHBhcmVudEhkck5hbWUgbmUgIkdkb21E
T01PYmplY3QiKSB7CisgICAgICAgICRoZHJQcm9wSW5jbHVkZXsiZ2RvbS9Qcml2YXRlSW50JHtw
YXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgIH0KKyAgICAkaGRyUHJvcEluY2x1ZGV7IkdET01P
YmplY3QuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9
ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2lmbmRlZiAke2d1YXJkfV9J
TlRfCisjZGVmaW5lICR7Z3VhcmR9X0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorRU9G
CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKyAgICBpZiAoJHBhcmVu
dEhkck5hbWUgbmUgIkdkb21ET01PYmplY3QiKSB7CisgICAgICAgICRpbXBsQ29udGVudCA9IDw8
ICJFT0YiOworI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludCR7cGFyZW50SGRyTmFtZX0uaCIKK0VP
RgorICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworICAgIH0KKyAg
ICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5j
bHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgorRU9GCisKKyAgICBwdXNoKEBoQm9keUludGVybmFs
LCAkaW1wbENvbnRlbnQpOworCisgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IGVxICJET01XaW5k
b3ciIHx8ICghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJH
ZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRpbnRlcmZh
Y2VOYW1lKSkgeworICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oJHtpbnRlcmZhY2VOYW1lfSogbm9kZSk7Cit9
IC8qIG5hbWVzcGFjZSBXZWJDb3JlICovIAorRU9GCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwg
JGltcGxDb250ZW50KTsKKyAgICB9CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIkdfQkVHSU5f
REVDTFNcbiIpOworCisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGlu
dGVyZmFjZU5hbWUgOiBwdWJsaWMgJHBhcmVudEdJZmFjZU5hbWUge1xuIik7CisgICAgICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdHlwZWRlZiAkcGFyZW50R0lmYWNlTmFtZSBCYXNlO1xu
Iik7CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInB1YmxpYzpcbiIpOworCisgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgIiAgICBpbnQgZ2V0R29ialR5cGUoKSB7IHJldHVybiBHRE9NX1RZUEVf
JHtjbHNDYXBzfTsgfVxuIik7CisKKyAgICBteSAkbmVlZHNTVkdDb250ZXh0ID0gMDsKKyAgICAj
IENvbnN0cnVjdG9yCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBHRE9NJGludGVyZmFj
ZU5hbWUoUGFzc1JlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gaW1wbCIgLiAoJG5lZWRz
U1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQiIDogIiIpIC4gIik7XG4iKTsKKwor
ICAgICMgRGVzdHJ1Y3RvcgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdmlydHVhbCB+
R0RPTSRpbnRlcmZhY2VOYW1lKCk7XG4iKSBpZiAoISRoYXNQYXJlbnQgb3IgJGludGVyZmFjZU5h
bWUgZXEgIkRvY3VtZW50Iikgb3IgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7CisKKyAg
ICBpZiAoISRoYXNQYXJlbnQgfHwgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSkgewor
ICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNl
TmFtZSogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRlOlxuIik7CisgICAgICAgICAgICBw
dXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4g
bV9pbXBsO1xuIik7CisgICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgeworICAgICAgICBwdXNoKEBoQm9keUludGVy
bmFsLCAiICAgIFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3RcbiIpOworICAg
ICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHtcbiIpOworICAgICAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JGludGVyZmFj
ZU5hbWUqPihCYXNlOjppbXBsKCkpO1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICIgICAgfVxuIik7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJ9O1xuIik7CisK
KyAgICAjIENvbnN0cnVjdG9yCisgICAgcHVzaChAY0JvZHksICJHRE9NJHtpbnRlcmZhY2VOYW1l
fTo6R0RPTSRpbnRlcmZhY2VOYW1lKFBhc3NSZWZQdHI8V2ViQ29yZTo6JGludGVyZmFjZU5hbWU+
IGltcGwiIC4gKCRuZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6ICIi
KSAuICIpXG4iKTsKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgOm1faW1wbChpbXBsKVxuIik7CisgICAgfSBlbHNpZiAo
JGhhc1BhcmVudCkgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6ICRwYXJlbnRHSWZhY2VO
YW1lKGltcGwiIC4gKCRwYXJlbnROZWVkc1NWR0NvbnRleHQgPyAiLCBjb250ZXh0IiA6ICIiKSAu
ICIpXG4iKSBpZiAoJGludGVyZmFjZU5hbWUgbmUgIkRPTVdpbmRvdyIpOworICAgIH0gZWxzZSB7
CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDogJHBhcmVudEdJZmFjZU5hbWUoKVxuIikgOwor
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAsIG1fY29udGV4dChjb250ZXh0KVxuIikgaWYgJG5l
ZWRzU1ZHQ29udGV4dDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgLCBtX2ltcGwoaW1wbClc
biIpOworICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAgcHVzaChAY0JvZHks
ICJ9XG5cbiIpOworCisgICAgIyBEZXN0cnVjdG9yCisgICAgaWYgKCEkaGFzUGFyZW50IG9yICgk
aW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAgICAgcHVzaChAY0JvZHksICJH
RE9NJHtpbnRlcmZhY2VOYW1lfTo6fkdET00kaW50ZXJmYWNlTmFtZSgpXG4iKTsKKyAgICAgICAg
cHVzaChAY0JvZHksICJ7XG4iKTsKKworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBtX2ltcGwu
Z2V0KCktPmRlcmVmKCk7XG4iKTsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2Rl
IikgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6R0RPTVNjcmlwdElu
dGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9yRG9jdW1lbnQobV9pbXBsLT5kb2N1bWVudCgpLCBt
X2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVj
dChtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEBjQm9keSwg
IlxufVxuXG4iKTsKKyAgICB9CisKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyR7cGFyZW50SGRy
TmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9
IDE7CisgICAgJGltcGxJbmNsdWRlc3siR0RPTU9iamVjdC5oIn0gPSAxOworCisgICAgJGltcGxU
eXBlZGVmc3siJGNsYXNzTmFtZSJ9ID0gMTsKKyAgICAkaW1wbFR5cGVkZWZzeyIke2NsYXNzTmFt
ZX1DbGFzcyJ9ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L3dl
YmtpdGRlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0cHJpdmF0ZS5oPiAKKyNpbmNs
dWRlICJOb2RlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNs
dWRlIDxnZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0Lmg+IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRo
aXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCisjaW5jbHVkZSA8
Z2RvbS8ke2hkck5hbWV9Lmg+CisjaW5jbHVkZSA8Z2RvbS9Qcml2YXRlJHtoZHJOYW1lfS5oPgor
I2luY2x1ZGUgPGdkb20vUHJpdmF0ZUludCR7aGRyTmFtZX0uaD4KKyNpbmNsdWRlIDxnZG9tLyR7
aGRyTmFtZX1wcm9wcy5oPgorCisjaW5jbHVkZSAiZ2RvbS9HU3RyaW5nQ29udmVydC5oIgorCisj
aW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorCisKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2
LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyR7aGFj
a0RlY2xzfQorCitHX0JFR0lOX0RFQ0xTCisKK0dfREVGSU5FX1RZUEUoJHtjbGFzc05hbWV9LCAk
e2xjYXNlX2lmYWNlbmFtZX0sICR7cGFyZW50R09ialR5cGV9KTsKKworLyoKK3N0cnVjdCBfJHtj
bGFzc05hbWV9UHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAq
aXRlbTsKK307CisKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9QUklWQVRFKG9iaikgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7
Y2xhc3NOYW1lfVByaXZhdGUpKQorKi8KK0dfRU5EX0RFQ0xTCitXZWJDb3JlOjoke2ludGVyZmFj
ZU5hbWV9ICoKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSgke2NsYXNzTmFtZX0gKnJl
cXVlc3QpCit7CitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKwor
ICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKyAgICBHRE9NJHtpbnRlcmZhY2VOYW1l
fSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19jYXN0PEdET00ke2ludGVyZmFjZU5hbWV9Kj4oZ2Rv
bV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4ocmVzLT5pbXBs
KCkpOworRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgIyBQ
cm9wZXJ0aWVzCisgICAgbXkgJGZ1bmN0aW9uTmFtZVByZWZpeCA9ICRsY2FzZV9pZmFjZW5hbWU7
IAorICAgIFNLSVBQUk9QOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRy
aWJ1dGVzfSkgeworICAgICAgICBteSAkcHJvcE5hbWUgPSBkZWNhbWVsaXplKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7
CisgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKyAgICAgICAg
bXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJP
UDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGlmIChza2lwUHJvcFRlbXBvcmFy
aWx5KCR0eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAg
ICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGFkZFByb3BJbmNIZHIoJHByb3BfdHlwZSk7
CisKKyAgICB9CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9G
IjsKK30KKworR19CRUdJTl9ERUNMUworCitlbnVtIHsKKyAgICBCUk9XU0VSX0VWRU5ULAorICAg
IExBU1RfU0lHTkFMCit9OworCitlbnVtIHsKKyAgICBQUk9QXzAsCitFT0YKKyAgICBwdXNoKEBj
Qm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICBteSBAdHh0X2luc3RhbGxfcHJvcHMgPSAo
KTsKKyAgICBteSBAdHh0X3NldF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfZ2V0X3Byb3BzID0g
KCk7CisKKyAgICBteSAkcHJpdl9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNlTmFtZSwgJHtsY2Fz
ZV9pZmFjZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworCisgICAgbXkgJHR4dF9nZXRfcHJvcCA9
IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlf
Zm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAg
IEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVj
KQoreworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOwor
ICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRf
Z2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X3Byb3AgPSA8PCAi
RU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuKEdP
YmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAgICAgICBjb25z
dCBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBwc3Bl
YykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsK
KyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0
X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisKKyAgICBTS0lQRU5VTTogZm9yZWFjaCBteSAk
YXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHByb3Bf
bmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgbXkgJHNldHByb3Bf
bmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9wX25hbWUpOworICAgICAg
ICBteSAkZ2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHByb3Bf
bmFtZSk7CisKKyAgICAgICAgbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsK
KyAgICAgICAgbXkgJHByb3BDYXBzID0gdWMoJHByb3BOYW1lKTsKKyAgICAgICAgbXkgJHByb3Bf
dHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBH
ZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3By
b3BDYXBzfSI7CisgICAgICAgIG15ICR7cHJvcF9ndHlwZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5
cGUpOworICAgICAgICBpZiAoJHByb3BfZ3R5cGUgZXEgImV2ZW50X3RhcmdldCIpIHsKKyAgICAg
ICAgICAgICRwcm9wX2d0eXBlID0gImV2ZW50X3RhcmdldF9ub2RlIjsKKyAgICAgICAgfQorICAg
ICAgICBteSAke3Byb3BHVHlwZX0gPSB1YygkcHJvcF9ndHlwZSk7CisgICAgICAgIG15ICRsY2Fz
ZV9ndHlwZW5hbWUgPSAiZ2RvbV8iIC4gJHByb3BfZ3R5cGU7CisKKyAgICAgICAgbXkgJGN1c3Rv
bSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9
OworCisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOwor
ICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3JhcmlseSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAg
ICAgICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAg
ICBwdXNoKEBjQm9keVByaXYsICIgICAgJHtwcm9wRW51bX0sXG4iKTsKKworICAgICAgICBteSAk
Z3R5cGUgPSBHZXRQcm9wR1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICRncGFyYW1mbGFn
ID0gIkdfUEFSQU1fUkVBREFCTEUiOworICAgICAgICBteSAkd3JpdGVhYmxlID0gJGF0dHJpYnV0
ZS0+dHlwZSAhfiAvXnJlYWRvbmx5LzsKKyAgICAgICAgbXkgJGNvbnN0ID0gInJlYWQtb25seSAi
OworICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAkY3VzdG9tKSB7CisgICAgICAgICAgICAkY29u
c3QgPSAicmVhZC1vbmx5IChkdWUgdG8gY3VzdG9tIGZ1bmN0aW9ucyBuZWVkZWQgaW4gZ2RvbXdl
YmtpdCkiOworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoJHdyaXRlYWJsZSAmJiAhJGN1c3RvbSkgeworICAgICAgICAgICAgJGdwYXJhbWZsYWcgPSAi
R19QQVJBTV9SRUFEV1JJVEUiOworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtd3JpdGUgIjsK
KyAgICAgICAgfQorCisgICAgICAgIG15ICRfZ3R5cGUgPSAkZ3R5cGU7CisgICAgICAgIGlmICgk
Z3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICRfZ3R5cGUgPSAidWludCI7ICMgeXVr
LgorICAgICAgICB9CisgICAgICAgICRuaWNrID0gZGVjYW1lbGl6ZSgiJHtpbnRlcmZhY2VOYW1l
fV8ke3Byb3BOYW1lfSIpOworICAgICAgICAkbG9uZyA9ICIke2NvbnN0fSAke3R5cGV9ICR7aW50
ZXJmYWNlTmFtZX0uJHtwcm9wTmFtZX0iOworICAgICAgICBteSAkdHh0X2luc3RhbGxfcHJvcCA9
IDw8ICJFT0YiOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdfa2xhc3Ms
ICR7cHJvcEVudW19LAorICAgICAgICAgICAgZ19wYXJhbV9zcGVjXyR7X2d0eXBlfSAoIiR7cHJv
cE5hbWV9IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICIkbmljayIsIC8qIHNob3J0IGRl
c2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAgIiRsb25nIiwgLyogbG9uZ2VyIC0gY291bGQg
ZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCitFT0YKKyAgICAgICAgcHVzaChA
dHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSAiLyogVE9ETyEgJGd0eXBlICovXG4iOworCisgICAgICAgIGlmICgkd3JpdGVh
YmxlKSB7CisKKyAgICAgICAgICAgIG15ICRvayA9IDA7CisgICAgICAgICAgICBteSAkY29udmVy
dF9mbiA9ICIiOworICAgICAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAg
ICAgICAgICAgICRjb252ZXJ0X2ZuID0gIldlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgiOworICAg
ICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNpZiAo
JGd0eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgICAgICRvayA9
IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAg
ICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQi
KSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlw
ZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAg
ICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAg
ICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hh
ciIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJjaGFyIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGlmICgkb2spIHsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0
X3Byb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisgICAgICAgICAgICAg
ICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBl
YyA9IDA7XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAg
ICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGdzZWxmLT5zZXQke3NldHByb3Bf
bmFtZV9mbn0oJHtjb252ZXJ0X2ZufShnX3ZhbHVlX2dldF8kZ3R5cGUgKHZhbHVlKSkiKTsKKwor
ICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIsIGVjIikgaWYgQHskYXR0cmli
dXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3By
b3BzLCAiKTtcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAg
ICAgICAgYnJlYWs7XG4gICAgfVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4i
KTsKKworICAgICAgICBteSAkZXhjZXB0aW9uID0gIiI7CisgICAgICAgIGlmIChAeyRhdHRyaWJ1
dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAkZXhjZXB0aW9uID0gImVjIjsK
KyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2Vw
dGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBteSAkY29udmVydF9m
biA9ICIiOworICAgICAgICBteSAkcG9zdF9jb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRk
b25lID0gMDsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAg
cHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyAodmFsdWUs
IEdTdHJpbmdDb252ZXJ0KGdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KSkp
O1xuIik7CisgICAgICAgICAgICAkZG9uZSA9IDE7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYg
KCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgbXkgJGRvbW9ialR5cGUgPSAiR0RP
TSIuJHByb3BfdHlwZTsKKyAgICAgICAgICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAg
ICAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+IHB0ciA9IGdzZWxmLT4ke2dl
dHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KTsKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0
ICh2YWx1ZSwgV2ViQ29yZTo6dG9HRE9NKHB0ci5nZXQoKSkpOworRU9GCisgICAgICAgICAgICBw
dXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKyAgICAgICAgICAgICRkb25lID0g
MTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghJGRvbmUpIHsKKyAgICAgICAgICAgIHB1c2go
QHR4dF9nZXRfcHJvcHMsICIgICAgICAgIGdfdmFsdWVfc2V0XyRfZ3R5cGUgKHZhbHVlLCAke2Nv
bnZlcnRfZm59Z3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pJHtwb3N0X2Nv
bnZlcnRfZm59KTtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgcHVzaChAdHh0X2dldF9wcm9w
cywgIiAgICAgICAgYnJlYWs7XG4gICAgfVxuIik7CisKKyAgICAgICAgIyBpcyB0aGlzIF9lbnRp
cmVseV8gbmVjZXNzYXJ5Pz8/CisgICAgICAgICMgY2FuIGl0IGJlIGRvbmUgd2l0aCBnZW5lcmlj
IGdfcGFyYW1fc3BlY19ndHlwZQorICAgICAgICAjIGFuZCBnZXR0aW5nIGEgZmV3IHRoaW5ncywg
aWdub3JpbmcgdGhlIG1pbi1tYXggZm9yIGV4YW1wbGU/CisgICAgICAgIGlmICgkZ3R5cGUgZXEg
ImludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAg
ICAgICAgICAgICAgR19NSU5JTlQsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBH
X01BWElOVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQg
Ki8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAg
ICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEZBTFNF
LCAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJmbG9hdCIp
IHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAg
ICAgICAgR19NSU5GTE9BVCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFY
RkxPQVQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICov
CitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAgICAgICAg
ICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlORE9V
QkxFLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhET1VCTEUsIC8qIG1h
eCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAg
ICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8K
KyAgICAgICAgICAgICAgICBHX01BWFVJTlQ2NCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAg
MCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEg
InVsb25nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAg
ICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhV
TE9ORywgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxvbmciKSB7CisgICAgICAgICAgICAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOTE9ORywg
ICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYTE9ORywgLyogbWF4ICovCisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9
IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAg
ICAgICAgICBHX01BWFVJTlQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAv
KiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7
CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAg
ICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQxNiwgLyog
bWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVjaGFyIikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklOVDgsICAgICAgICAv
KiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWElOVDgsIC8qIG1heCAqLworICAgICAgICAg
ICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJjaGFyIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9G
IjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAg
R19NQVhVSU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1
bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgIiIs
IC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIp
IHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAg
ICAgICAgR0RPTV9UWVBFXyR7cHJvcEdUeXBlfSwgLyogZ29iamVjdCB0eXBlICovCitFT0YKKyAg
ICAgICAgfQorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3By
b3ApOworICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAg
ICAgIChHUGFyYW1GbGFncykke2dwYXJhbWZsYWd9KSk7CisKK0VPRgorICAgICAgICBwdXNoKEB0
eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworCisKKyAgICB9CisKKyAgICBw
dXNoKEBjQm9keVByaXYsICJ9O1xuXG4iKTsKKworCisgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJF
T0YiOworICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZ
X0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CitF
T0YKKyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgICR0eHRf
c2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5f
SU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorfQorRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJv
cCk7CisKKyAgICBteSAkdHh0X3NldF9nZXRfcHJvcHMgPSA8PCAiRU9GIjsKKyAgICBjYXNlIFBS
T1BfQUdFOgorICAgICAgICBzZWxmLT5hZ2UgPSBnX3ZhbHVlX2dldF9pbnQgKHZhbHVlKTsKKyAg
ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBST1BfQUdFOgorICAgICAgICBnX3ZhbHVlX3NldF9p
bnQodmFsdWUsIHNlbGYtPmFnZSk7CisgICAgICAgIGJyZWFrOworCisgICAgICAgICsgICBnX3Zh
bHVlX2luaXQoJnBhcmFtc1swXSwgR19UWVBFX0ZST01fSU5TVEFOQ0Uob2JqZWN0KSk7CisgICAg
ICAgICsgICBnX3ZhbHVlX3NldF9pbnN0YW5jZSgmcGFyYW1zWzBdLCAoZ3BvaW50ZXIpb2JqZWN0
KTsKKworRU9GCisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworc3RhdGljIHZvaWQg
JHtsY2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvKiR7
Y2xhc3NOYW1lfSogcmVxdWVzdCA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOyovCisgICAgLyok
e2NsYXNzTmFtZX1Qcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworCisgICAgLypHT2Jq
ZWN0Q2xhc3MgKnBhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrIChnX3R5cGVfcGVla19w
YXJlbnQgKCR7cGFyZW50R09ialR5cGV9KSk7Ki8KKworICAgIC8qIEZyZWUgYW55IG1lbW9yeSBv
ciBjbG9zZSBhbnkgZmlsZXMgKi8KKworICAgIC8qcGFyZW50X2NsYXNzLT4gZmluYWxpemUgKG9i
amVjdCk7Ki8KKworICAgIEdfT0JKRUNUX0NMQVNTKCR7bGNhc2VfaWZhY2VuYW1lfV9wYXJlbnRf
Y2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitAdHh0X3NldF9wcm9wcworCitAdHh0X2dl
dF9wcm9wcworCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fY2xhc3NfaW5pdCgke2Ns
YXNzTmFtZX1DbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdPYmplY3RDbGFzcyAqZ19rbGFz
cyA9IEdfT0JKRUNUX0NMQVNTIChyZXF1ZXN0Q2xhc3MpOworICAgIGdfa2xhc3MtPmZpbmFsaXpl
ID0gJHtsY2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplOworICAgIGdfa2xhc3MtPnNldF9wcm9wZXJ0
eSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuOworICAgIGdfa2xhc3MtPmdl
dF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuOworCitAdHh0
X2luc3RhbGxfcHJvcHMKKworICAgIC8qZ190eXBlX2NsYXNzX3JlbW92ZV9wcml2YXRlKHJlcXVl
c3RDbGFzcywgc2l6ZW9mKCR7Y2xhc3NOYW1lfVByaXZhdGUpKTsqLworfQorCitzdGF0aWMgdm9p
ZCAke2xjYXNlX2lmYWNlbmFtZX1faW5pdCgke2NsYXNzTmFtZX0qIHJlcXVlc3QpCit7CisgICAg
Lyoke2NsYXNzTmFtZX1Qcml2YXRlKiBwcml2ID0gR0RPTV8ke2Nsc0NhcHN9X0dFVF9QUklWQVRF
KHJlcXVlc3QpOworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OyovCit9CisKK0VPRgorCisgICAg
cHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxJbmNsdWRlc3siZ2Rv
bS9Qcml2YXRlSW50R2RvbSR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbENvbnRl
bnQgPSA8PCAiRU9GIjsKKworI2lmbmRlZiAke2d1YXJkfV9QUklWXworI2RlZmluZSAke2d1YXJk
fV9QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbS8ke3BhcmVu
dEhkck5hbWV9LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorLyojaW5jbHVkZSAiZ2RvbS9Q
cml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIiovCisvKkdfQkVHSU5fREVDTFMqLworLypjbGFzcyBX
ZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9OyovCisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5o
IgorRU9GCisKKyAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1w
bENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHRE9N
JHtpbnRlcmZhY2VOYW1lfSA6IHB1YmxpYyAke3BhcmVudEdJZmFjZU5hbWV9IHsKKworcHVibGlj
OgorICAgIEdET00ke2ludGVyZmFjZU5hbWV9KFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGlt
cGwpIDogJHBhcmVudEdJZmFjZU5hbWV9KGltcGwpCisgICAgeyBpbXBsLT5yZWYoKTsgfQorICAg
IH5HRE9NJHtpbnRlcmZhY2VOYW1lfSgpIHsgbV9pbXBsLT5kZXJlZigpOyB9CisKKyAgICBXZWJD
b3JlOjoke2ludGVyZmFjZU5hbWV9KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsOyB9CisK
KworcHJpdmF0ZToKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICptX2ltcGw7Cit9Owor
CitFT0YKKworICAgICAgICAjcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
JGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwordHlw
ZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSAke2NsYXNzTmFtZX07CisKK1dlYkNvcmU6OiR7aW50
ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1l
fSAqcmVxdWVzdCk7CisKKy8qR19FTkRfREVDTFMqLworCisjZW5kaWYgLyogJHtndWFyZH1fUFJJ
Vl8gKi8KKworRU9GCisKKyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOwor
CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAg
ICAgJGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oIn0gPSAxOworCisg
ICAgICAgIExPT1A6IGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25z
fSkgeworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5uYW1lOworICAgICAgICAgICAgICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlOworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAiZ2Rv
bV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRmbl9z
aWdfbmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldHVyblR5cGUgPSBHZXRHVHlwZSgkZm5f
c2lnX3R5cGUpOworICAgICAgICAgICAgICAgIG15ICRyZXRfaXNfY2xzX3R5cGUgPSBJc0dET01D
bGFzc1R5cGUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgIG15ICRmdW5jdGlvblNp
ZyA9ICIkY2xhc3NOYW1lICp0aGl6IjsKKworICAgICAgICAgICAgICAgIG15ICRjYWxsX2ltcGxf
cGFyYW1zID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gImdkb21f
IiAuIGRlY2FtZWxpemUoJGZuX3NpZ190eXBlKTsKKworICAgICAgICAgICAgICAgICMgWFhYIHNr
aXAgc29tZSBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBteSAkaXNf
Y3VzdG9tX2ZuID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b20ifTsKKyAgICAgICAgICAgICAgICBpZiAoJGlzX2N1c3RvbV9mbiAmJiAKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX25leHRfbm9k
ZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9h
cHBlbmRfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX25vZGVfcmVtb3ZlX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUiICYmCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIikgeworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVy
c30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlw
ZTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jQm9keSgkcGFyYW1JRExUeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAg
ICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAg
ICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsICRwYXJhbVR5cGUgJHBhcmFtTmFt
ZSI7CisKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9N
Q2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFt
X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlw
ZSBuZSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbUlE
TFR5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRp
bXBsSW5jbHVkZXN7Imdkb20vUHJpdmF0ZUludEdkb20ke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZhdGVH
ZG9tJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7ICMgdGhpcyBpc24ndCBzdHJp
Y3RseSBuZWNlc3NhcnkgYnV0IG9uZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQgZmlsZXMgbmVlZGVk
IGl0IHNvLi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUgfHwgKCRwYXJh
bUlETFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkcGFy
YW1OYW1lID0gIl9nXyIgLiAkcGFyYW1OYW1lOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIGlmICgkY2FsbF9pbXBsX3BhcmFtcykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFkZEluY0hkcigk
Zm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7Cisg
ICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9zaWdfdHlwZX0ifSA9
IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBl
IG5lICJ2b2lkIikgeworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBl
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmpl
Y3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBj
b3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJnZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vUHJpdmF0ZUludEdkb20ke2ZuX3Np
Z190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJnZG9tL1ByaXZhdGVHZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tJHtmbl9zaWdf
dHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAgY3VzdG9tIGZ1bmN0aW9u
cyBmb3Igbm93CisgICAgICAgICAgICAgICAgIyBidXQgc2tpcCBmcm9tIGhlcmUgdG8gYWxsb3cg
c29tZSBoZWFkZXJzIHRvIGJlIGNyZWF0ZWQKKyAgICAgICAgICAgICAgICAjIGZvciBhIHN1Y2Nl
c3NmdWwgY29tcGlsZS4KKyAgICAgICAgICAgICAgICBpZiAoJGlzX2N1c3RvbV9mbiAmJgorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxk
IiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2lu
c2VydF9iZWZvcmUiICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25O
YW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIikgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFt
ZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFgg
VE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIG15ICRfcmV0dXJuVHlwZSA9ICRyZXR1cm5UeXBlOworICAgICAgICAgICAgICAgIG15ICRk
b21vYmpUeXBlID0gIkdET00iLiRmbl9zaWdfdHlwZTsKKyAgICAgICAgICAgICAgICBwdXNoKEBo
Qm9keSwgIldFQktJVF9BUEkgJF9yZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25T
aWcpO1xuXG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiJF9yZXR1cm5UeXBl
XG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcpXG57XG4iKTsKKworICAgICAgICAgICAgICAg
IGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFgg
VE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAodGhpeiwgMCk7XG4iKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTtcbiIpOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKiBpdGVtID0gKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfcHJpdmF0ZSh0aGl6KSk7XG4iKTsK
KyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAg
ICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGl0
ZW0sIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoaXRlbSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlv
bi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRl
Y2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtSURM
VHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZUlz
UHJpbWl0aXZlID0gJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkcGFyYW1JRExUeXBl
KTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xh
c3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNIZHIoJHBh
cmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtwYXJhbUlE
TFR5cGV9In0gPSAxOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IGlmICghJHBhcmFtVHlwZUlzUHJpbWl0aXZlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICgkcGFy
YW1OYW1lLCAwKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWls
ICgkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgJHJldHVy
blBhcmFtTmFtZSA9ICIiOworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRm
dW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtSURM
VHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZSA9
IEdldEdUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1O
YW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworCisgICAgICAgICAgICAgICAgICAgIG15
ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OlN0cmluZyBf
Z18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KCRwYXJhbU5hbWUpO1xu
Iik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJh
bV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2dkb21f
Zm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICNwdXNoKEBjQm9keSwgIiAgICBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtw
YXJhbUlETFR5cGV9PiAqIF9nXyR7cGFyYW1OYW1lfSA9IFdURjo6UmVmUHRyPCR7cGFyYW1fZ2Rv
bV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSk+O1xuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIF9nXyR7cGFyYW1OYW1lfSA9IHN0YXRpY19j
YXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0
X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNv
cmU6OiR7cGFyYW1JRExUeXBlfSAqIF9nXyR7cGFyYW1OYW1lfSA9ICgke3BhcmFtX2dkb21fZm59
X2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVm
YXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCAoX2dfJHtwYXJhbU5hbWV9LCAwKTtcbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0pO1xuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIl9nXyIuJHBhcmFtTmFtZSBpZiAk
cGFyYW0tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXR1cm4ifTsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduID0gIiI7CisgICAgICAgICAgICAgICAgbXkg
JGFzc2lnbl9wcmUgPSAiIjsKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduX3Bvc3QgPSAiIjsK
KyAgICAgICAgICAgICAgICAkZ19yZXMgPSAwOworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJu
VHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAg
ICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2ln
biA9ICJQYXNzUmVmUHRyPFdlYkNvcmU6OiR7Zm5fc2lnX3R5cGV9PiBnX3JlcyA9ICI7CisgICAg
ICAgICAgICAgICAgICAgICAgICAkYXNzaWduX3ByZSA9ICJXVEY6OmdldFB0cigiOworICAgICAg
ICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wb3N0ID0gIikiOworICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbiA9ICIke19yZXR1cm5U
eXBlfSByZXMgPSAiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIG15ICRleGNlcHRpb25zID0gIiI7CisgICAgICAgICAgICAgICAgaWYg
KEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoJHtjYWxsX2ltcGxfcGFyYW1zfSBuZSAiIikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiLCBlYyI7CisgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICJlYyI7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICAjIG5lZWQgdGhpcyBmb3IgaW5jbHVkaW5nIC4uLiBfc29tZXRoaW5nXyAtIGZvciB0aGUg
Y2xhc3MgYXJncworICAgICAgICAgICAgICAgICNpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAg
ICAgICAgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3siZ2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9
IDE7CisgICAgICAgICAgICAgICAgI30KKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFt
ZSBlcSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUiIHx8CisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiB8fAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxk
IikgeworICAgICAgICAgICAgICAgICAgICBteSAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hp
bGQgPSA8PCAiRU9GIjsKKyAgICBib29sIG9rID0gaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxs
X2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pOworICAgIGlmIChvaykKKyAgICB7CisgICAgICAg
ICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihXZWJDb3Jl
Ojp0b0dET00oJHJldHVyblBhcmFtTmFtZSkpOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0K
KyAgICByZXR1cm4gTlVMTDsKK0VPRgorICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
JGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkZm5fc2lnX3R5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICIgICAgJHthc3NpZ259R1N0cmluZ0NvbnZlcnQoaXRlbS0+JHtmbl9zaWdfbmFt
ZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTtcbiIgKTsKKyAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBpZiAoJGdfcmVzKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAkZ19yZXMgPSAiJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7
Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9z
dH0pIiA7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9z
aWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSk7
XG4iICk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgewor
CisgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkRPTU9iamVjdCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgJHtfcmV0dXJuVHlwZX0gcmVz
ID0gc3RhdGljX2Nhc3Q8JHtfcmV0dXJuVHlwZX0+KFdlYkNvcmU6OnRvR0RPTShnX3Jlcy5nZXQo
KSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0Iikg
eworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIE5VTEw7
IC8qIFhYWCBUT0RPOiByZXR1cm4gY2FudmFzIG9iamVjdCAqL1xuIik7CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICByZXR1cm4gcmVzO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbiIpOworCisgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICJ9XG5cbiIpOworICAgICAgICB9CisKKyAgICBwdXNoKEBjQm9keSwg
In0gLyogZXh0ZXJuIFwiQ1wiICovXG5cbiIpOworICAgIHB1c2goQGNCb2R5UHJpdiwgIn0gLyog
ZXh0ZXJuIFwiQ1wiICovXG5cbiIpOworCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIkdfRU5E
X0RFQ0xTXG5cbiIpOworICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIjZW5kaWYgLyogJHtndWFy
ZH1fSU5UXyovXG4iKTsKKworICAgIHB1c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxuIik7Cisg
ICAgcHVzaChAaEJvZHksICIjZW5kaWYgLyogJGd1YXJkICovXG4iKTsKKworICAgIHB1c2goQGhC
b2R5UHJvcCwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2goQGhCb2R5UHJvcCwgIiNlbmRp
ZiAvKiAke2d1YXJkfV9QUk9QXyovXG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIKK3N1YiBX
cml0ZURhdGEKK3sKKyAgICBteSAoJG9iamVjdCwgJG5hbWUpID0gQF87CisKKworICAgICMgV3Jp
dGUgSW50ZXJuYWwgaGVhZGVyCisgICAgbXkgJGhkckZOYW1lSW50ZXJuYWwgPSAiJG91dHB1dERp
ci9Qcml2YXRlSW50IiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKElOVEhFQURFUiwgIj4kaGRy
Rk5hbWVJbnRlcm5hbCIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZUludGVy
bmFsIjsKKworICAgIHByaW50IElOVEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBJTlRIRUFE
RVIgIlxuIjsKKyAgICBwcmludCBJTlRIRUFERVIgQGhCb2R5SW50ZXJuYWw7CisgICAgY2xvc2Uo
SU5USEVBREVSKTsKKworICAgICMgV3JpdGUgUHJpdmF0ZSBoZWFkZXIKKyAgICBteSAkaGRyRk5h
bWVQcml2ID0gIiRvdXRwdXREaXIvUHJpdmF0ZSIgLiAkbmFtZSAuICIuaCI7CisgICAgb3BlbihQ
UklWSEVBREVSLCAiPiRoZHJGTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
aGRyRk5hbWVQcml2IjsKKworICAgIHByaW50IFBSSVZIRUFERVIgQGhQcmVmaXg7CisgICAgcHJp
bnQgUFJJVkhFQURFUiAiXG4iOworICAgIHByaW50IFBSSVZIRUFERVIgQGhCb2R5UHJpdjsKKyAg
ICBjbG9zZShQUklWSEVBREVSKTsKKworICAgICMgV3JpdGUgUHJpdmF0ZSBJbXBsZW1lbnRhdGlv
bgorICAgICNteSAkaW1wbEZpbGVOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL1ByaXZhdGUiIC4gJG5h
bWUgLiAiLmNwcCI7CisgICAgI29wZW4oUFJJVklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBv
ciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICAjcHJp
bnQgUFJJVklNUEwgQGNQcmVmaXg7CisgICAgI3ByaW50IFBSSVZJTVBMICJcbiI7CisgICAgI3By
aW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAgICAjY2xvc2UoUFJJVklNUEwpOworCisgICAg
IyBXcml0ZSBwcm9wZXJ0aWVzIGhlYWRlciAoYXZvaWRzIHJlY3Vyc2l2ZSBuaWdodG1hcmUpCisg
ICAgbXkgJGhkclByb3BGTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICJwcm9wcy5oIjsK
KyAgICBvcGVuKFBST1BIRUFERVIsICI+JGhkclByb3BGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qg
b3BlbiBmaWxlICRoZHJQcm9wRk5hbWUiOworCisgICAgJGhkclByb3BJbmNsdWRlc3siZ2xpYi1v
YmplY3QuaCJ9ID0gMTsKKworICAgIHByaW50IFBST1BIRUFERVIgQGhQcmVmaXg7CisgICAgcHJp
bnQgUFJPUEhFQURFUiAiLyogcmVjdXJzaXZlIGluY2x1ZGVzIC8gZGVmaW5lcyBpc3N1ZSBmb3Jj
ZXMgc2VwYXJhdGUgaGVhZGVyIGZvciBwcm9wZXJ0aWVzLlxucGVyaGFwcyAtIGJldHRlciAtIGFs
bCBnZG9tIGd0ayBmdW5jdGlvbnMgc2hvdWxkIGJlIGluIGhlcmUhKi9cbiI7CisgICAgcHJpbnQg
UFJPUEhFQURFUiBAaEJvZHlQcm9wUHJlOworICAgIHByaW50IFBST1BIRUFERVIgIiNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPlxuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIG1hcCB7
ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAg
cHJpbnQgUFJPUEhFQURFUiAiXG4iIGlmIGtleXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJp
bnQgUFJPUEhFQURFUiAiXG4iOworICAgIHByaW50IFBST1BIRUFERVIgQGhCb2R5UHJvcDsKKwor
ICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdyaXRlIHB1YmxpYyBoZWFkZXIuCisgICAgbXkg
JGhkckZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKEhFQURF
UiwgIj4kaGRyRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWUiOwor
CisgICAgJGhkckluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgSEVB
REVSIEBoUHJlZml4OworICAgIHByaW50IEhFQURFUiBAaFByZWZpeEd1YXJkOworICAgIHByaW50
IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50
IEhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJJbmNsdWRl
cyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaGRySW5jbHVkZXMpOworICAgIHBy
aW50IEhFQURFUiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaEJvZHlQcmU7CisgICAgcHJpbnQg
SEVBREVSIG1hcCB7ICJ0eXBlZGVmIHN0cnVjdCBfJF8gJF87XG4iIH0gc29ydCBrZXlzKCVpbXBs
VHlwZWRlZnMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWltcGxUeXBlZGVmcyk7
CisgICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAj
IFdyaXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBzb3VyY2VzCisgICAgbXkgJGltcGxGaWxlTmFtZSA9
ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKElNUEwsICI+JGltcGxG
aWxlTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWUiOworCisg
ICAgcHJpbnQgSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcImNvbmZp
Zy5oXCJcblxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8d3RmL0dldFB0ci5oPlxuIjsK
KyAgICBwcmludCBJTVBMIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWlt
cGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7
CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAgICBwcmludCBJTVBMICJcbiI7CisgICAgcHJp
bnQgSU1QTCBAY0JvZHlQcml2OworCisgICAgY2xvc2UoSU1QTCk7CisKKyAgICAlaW1wbEluY2x1
ZGVzID0gKCk7CisgICAgJWltcGxUeXBlZGVmcyA9ICgpOworICAgICVoZHJJbmNsdWRlcyA9ICgp
OworICAgIEBoUHJlZml4ID0gKCk7CisgICAgQGhCb2R5ID0gKCk7CisgICAgQGhCb2R5UHJpdiA9
ICgpOworICAgIEBoQm9keUludGVybmFsID0gKCk7CisgICAgQGhCb2R5UHJvcCA9ICgpOworICAg
IEBoQm9keVByb3BQcmUgPSAoKTsKKworICAgIEBjUHJlZml4ID0gKCk7CisgICAgQGNCb2R5ID0g
KCk7CisgICAgQGNCb2R5UHJpdiA9ICgpOworfQorCisxOwpJbmRleDogV2ViS2l0VG9vbHMvR05V
bWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHJl
dmlzaW9uIDM2NDU5KQorKysgV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29w
eSkKQEAgLTYsNiArNiw4IEBACiBQcm9ncmFtc19HdGtMYXVuY2hlcl9DUFBGTEFHUyA9IFwKIAkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwK
KwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9idWlsZGRpcikvV2Vi
S2l0L2d0ay93ZWJraXQgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29y
ZV9jcHBmbGFncykKIApAQCAtMjgsNiArMzAsOCBAQAogCS1JJChzcmNkaXIpL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ayBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHRv
cF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQg
XAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKIAkkKGdsb2JhbF9jcHBm
bGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23531</attachid>
            <date>2008-09-18 09:10:40 -0700</date>
            <delta_ts>2008-09-25 12:02:48 -0700</delta_ts>
            <desc>remainder of patch bringing gdom patch up to full functionality</desc>
            <filename>g</filename>
            <type>text/plain</type>
            <size>176814</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5NmY1OTlmLi45NzA0YjBl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMDgtMDktMTIgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IGFkZCBHZG9tKi5o
IGdsaWIgRE9NIGJpbmRpbmdzIGhlYWRlciBmaWxlcywKKyAgICAgICAgCisgICAgICAgIEFsc28g
YWRkZWQgZ2RvbWVudW10eXBlcy5jcHAsaCB3aGljaCBwcmVzZW50bHkgZG8gbm90CisgICAgICAg
IGFjdHVhbGx5IGNvbnRhaW4gYW55dGhpbmcsIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGVudW1zCisg
ICAgICAgIGluIHRoZSBnbGliIGJpbmRpbmdzIC0geWV0LgorCiAyMDA4LTA5LTA0ICBNYXJjbyBC
YXJpc2lvbmUgIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVt
YWtlZmlsZS5hbQppbmRleCAyYTVmODM5Li4yZDgzNDBjIDEwMDY0NAotLS0gYS9HTlVtYWtlZmls
ZS5hbQorKysgYi9HTlVtYWtlZmlsZS5hbQpAQCAtMjkxLDYgKzI5MSwxMiBAQCBsaWJ3ZWJraXRf
MV8wX2xhX0hFQURFUlMgPSBcCiAJJChsaWJnZG9tX2hfYXBpKSBcCiAJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZW51bXR5cGVzLmgKIAorIyBjb21tZW50IHRoZXNlIG91dCBmb3Igbm93LCBzZWUg
d2hhdCBoYXBwZW5zCisjCSQobGliZ2RvbV9oX2FwaSkgCisjCVdlYktpdC9ndGsvd2Via2l0L2dk
b20uaCAKKyNXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgKKyNXZWJLaXQvZ3RrL3dl
YmtpdC9nZG9tZGVmaW5lcy5oCisKIGxpYndlYmtpdF8xXzBfbGFfU09VUkNFUyA9IFwKIAkkKHdl
YmtpdGd0a19zb3VyY2VzKQogCkBAIC0zNjYsOSArMzcyLDE3MiBAQCBlbmRpZgogV2ViS2l0L2d0
ay9nZG9tL2dkb20uaDoKICMgVE9ETzogYXV0by1nZW5lcmF0ZSB0aGlzIGZpbGUKIAorIyQoc3Jj
ZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3Bw
OiBcCisjCQkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVJbnRHZG9tRXZl
bnRUYXJnZXROb2RlLmgKKworCiBsaWJnZG9tX2hfYXBpICs9IFwKKwkkKHNyY2RpcikvV2ViS2l0
L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaFwKIAkkKHNyY2RpcikvV2ViS2l0L2d0ay9n
ZG9tL0dkb21ET01PYmplY3QuaFwKLQlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmgKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUF0dHIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21CYXJJbmZvLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzR3JhZGllbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21DYW52YXNQYXR0ZXJuLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGl4
ZWxBcnJheS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNoYXJhY3RlckRhdGEuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21DbGlwYm9hcmQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21tZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ29uc29sZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNvdW50ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU0ltcG9ydFJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NNZWRpYVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQYWdlUnVsZS5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNT
U1J1bGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlUnVsZS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NWYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlTGlzdC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbURhdGFiYXNlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRG
cmFnbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50VHlwZS5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21ET01Db3JlRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRE9NSW1wbGVtZW50YXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01QYXJz
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxlY3Rpb24uaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21ET01XaW5kb3cuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21F
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tRW50aXR5UmVmZXJlbmNlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRXZlbnRFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21GaWxlTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhpc3RvcnkuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEFyZWFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCb2R5RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxCUkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQnV0
dG9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENvbGxlY3Rpb24uaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxEaXZFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TERMaXN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEb2N1bWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxGaWVsZFNldEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9u
dEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9ybUVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxIZWFkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxI
ZWFkaW5nRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIUkVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSHRtbEVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
SW5wdXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTExJRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxMaW5rRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXBFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1lbnVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TE1vZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
UGFyYWdyYXBoRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhbUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUHJlRWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxTZWxlY3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFN0eWxl
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGl0bGVFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUltYWdlRGF0YS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21LZXli
b2FyZEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTG9jYXRpb24uaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21NZWRpYUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21NZXNzYWdlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGUuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21Nb3VzZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTXV0YXRp
b25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hdmlnYXRvci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbU5vZGVGaWx0ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tTm9kZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU92ZXJmbG93RXZlbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21QbHVnaW5BcnJheS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdp
bi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21SYW5nZUV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJh
bmdlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmVjdC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNjcmVlbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTEVycm9yLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNRTFRyYW5zYWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZUV2
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZS5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVN0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHls
ZVNoZWV0TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRNZXRyaWNzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tVGV4dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRyZWVXYWxrZXIuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21VSUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdFRy
YW5zaXRpb25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21YTUxTZXJpYWxpemVyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0
b3IuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVzc2lvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVhQYXRoTlNSZXNvbHZlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRo
UmVzdWx0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFNMVFByb2Nlc3Nvci5oCiAKIHdl
YmtpdGd0a19oX2FwaSArPSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmggXApAQCAtMzgx
LDEyICs1NTAsMTcgQEAgd2Via2l0Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgK
IAorIyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZG9tZGVmaW5lcy5oCisKIHdlYmtpdGd0a19i
dWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXRlbnVtdHlwZXMuY3BwIFwK
IAlEZXJpdmVkU291cmNlcy93ZWJraXRtYXJzaGFsLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0bWFyc2hhbC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlbnVtdHlwZXMuaAogCisj
CURlcml2ZWRTb3VyY2VzL2dkb21lbnVtdHlwZXMuY3BwIAorIwlXZWJLaXQvZ3RrL3dlYmtpdC9n
ZG9tZW51bXR5cGVzLmgKKwogd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVdlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuaCBcCkBAIC00MTAsNyArNTg0LDggQEAgd2Via2l0Z3RrX3Nv
dXJjZXMgKz0gXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAJV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwIFwKIAlXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCisJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgXAorCVdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcCAgCiAKIHdlYmtpdGd0a19jcHBmbGFncyAr
PSBcCiAJLURCVUlMRElOR19XRUJLSVQgXApAQCAtNDM0LDYgKzYwOSw5IEBAIHN0YW1wX2ZpbGVz
IDo9IFwKIAlzdGFtcC13ZWJraXRlbnVtdHlwZXMuY3BwIFwKIAlzdGFtcC13ZWJraXRlbnVtdHlw
ZXMuaAogCisjCXN0YW1wLWdkb21lbnVtdHlwZXMuY3BwIAorIwlzdGFtcC1nZG9tZW51bXR5cGVz
LmggCisKIFdFQktJVF9NQVJTSEFMID0gJChHRU5TT1VSQ0VTKS93ZWJraXRtYXJzaGFsCiBXRUJL
SVRfTUFSU0hBTF9MSVNUID0gJChXRUJLSVRfTUFSU0hBTCkubGlzdAogCkBAIC01MTAsNiArNjg4
LDU0IEBAIERlcml2ZWRTb3VyY2VzL3dlYmtpdGVudW10eXBlcy5jcHA6ICQod2Via2l0Z3RrX2hf
YXBpKSBHTlVtYWtlZmlsZQogCSYmIGNwIHhnZW4tZ3RjICRAIFwKIAkmJiBybSAtZiB4Z2VuLWd0
YwogCitXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmg6IHN0YW1wLWdkb21lbnVtdHlw
ZXMuaAorCUB0cnVlCitzdGFtcC1nZG9tZW51bXR5cGVzLmg6ICQobGliZ2RvbV9oX2FwaSkgR05V
bWFrZWZpbGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVh
ZCAiI2lmbmRlZiBHRE9NX0VOVU1fVFlQRVNfSFxuIiBcCisJCQktLWZoZWFkICIjZGVmaW5lIEdE
T01fRU5VTV9UWVBFU19IXG5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+XG5cbiIgXAorCQkJLS1maGVhZCAiR19CRUdJTl9ERUNMU1xuXG4iIFwKKwkJCS0tZnRhaWwg
IkdfRU5EX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFpbCAiI2VuZGlmXG4iIFwKKwkJCS0tZnByb2Qg
IiNpbmNsdWRlIDxAZmlsZW5hbWVAPlxuXG4iIFwKKwkJCS0tZXByb2QgIiNkZWZpbmUgR0RPTV9U
WVBFX0BFTlVNU0hPUlRAIEBlbnVtX25hbWVAX2dldF90eXBlKClcblxuIiBcCisJCQktLWVwcm9k
ICJXRUJLSVRfQVBJIEdUeXBlXG5AZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKTtcblxuIiBcCisJ
CQkkKGxpYmdkb21faF9hcGkpIHwgXAorCQkJc2VkICdzLFdlYktpdC9ndGsvLCwnIHwgXAorCQlz
ZWQgJ3Msd2ViX2tpdCxnZG9tLCcgfCBcCisJCXNlZCAncyxHRE9NX1RZUEVfS0lULEdET01fVFlQ
RSwnIFwKKwkJKSA+IHhnZW4tY2d0aCBcCisJJiYgKGNtcCAtcyB4Z2VuLWNndGggV2ViS2l0L2d0
ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oIHx8IGNwIHhnZW4tY2d0aCBXZWJLaXQvZ3RrL3dlYmtp
dC9nZG9tZW51bXR5cGVzLmgpIFwKKwkmJiBybSAtZiB4Z2VuLWNndGggXAorCSYmIGVjaG8gdGlt
ZXN0YW1wID4gJChARikKKworIyAgICAgICAgICAgICAgLS1maGVhZCAiI2luY2x1ZGUgPHdlYmtp
dC9nZG9tZGVmaW5lcy5oPlxuXG4iIAorCitEZXJpdmVkU291cmNlcy9nZG9tZW51bXR5cGVzLmNw
cDogJChsaWJnZG9tX2hfYXBpKSBHTlVtYWtlZmlsZQorCShjZCAkKHNyY2RpcikgXAorCSYmIGds
aWItbWtlbnVtcyBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Y29uZmlnLmg+XG4iIFwKKwkJCS0t
ZmhlYWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVk
ZSBcIiQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmhcIlxu
XG4iIFwKKwkJCS0tZmhlYWQgImV4dGVybiBcIkNcIiB7XG5cbiIgXAorCQkJLS1mcHJvZCAiXG4v
KiBlbnVtZXJhdGlvbnMgZnJvbSBcIkBmaWxlbmFtZUBcIiAqLyIgXAorCQkJLS12aGVhZCAic3Rh
dGljIGNvbnN0IEdAVHlwZUBWYWx1ZSBfQGVudW1fbmFtZUBfdmFsdWVzW10gPSB7IiBcCisJCQkt
LXZwcm9kICIgICAgeyBAVkFMVUVOQU1FQCwgXCJAVkFMVUVOQU1FQFwiLCBcIkB2YWx1ZW5pY2tA
XCIgfSwiIFwKKwkJCS0tdnRhaWwgIiAgICB7IDAsIE5VTEwsIE5VTEwgfVxufTtcblxuIiBcCisJ
CQktLXZ0YWlsICJHVHlwZSBAZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKVxue1xuIiBcCisJCQkt
LXZ0YWlsICIgICAgc3RhdGljIEdUeXBlIHR5cGUgPSAwO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAg
ICBpZiAoIXR5cGUpXG4iIFwKKwkJCS0tdnRhaWwgIiAgICAgICAgdHlwZSA9IGdfQHR5cGVAX3Jl
Z2lzdGVyX3N0YXRpYyhcIkBFbnVtTmFtZUBcIiwgX0BlbnVtX25hbWVAX3ZhbHVlcyk7XG5cbiIg
XAorCQkJLS12dGFpbCAiICAgIHJldHVybiB0eXBlO1xufVxuXG4iIFwKKwkJCS0tZnRhaWwgIn1c
biIgXAorCQkkKGxpYmdkb21faF9hcGkpIHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxnZG9tLCcgXAor
CQkpID4geGdlbi1jZ3RjIFwKKwkmJiBjcCB4Z2VuLWNndGMgJEAgXAorCSYmIHJtIC1mIHhnZW4t
Y2d0YworCiAjIEVORCBXRUJLSVQgR1RLKwogIwogIyBGaWxlcyB0aGF0IHdpbGwgYmUgZGlzdHJp
YnV0ZWQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMmQ2NjVhOC4uYWExNmI1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTM2LDYgKzM2LDEzNCBAQAogICAgICAgICAoV2ViQ29y
ZTo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KToKICAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5p
dGlvbkxpc3REZWZpbml0aW9uVGV4dCk6CiAKKzIwMDgtMDktMTIgIGxrY2wgIDxsa2NsQGxrY2wu
bmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdB
Uk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1QsIGdsaWIgRE9NIGJpbmRpbmdzIGZpbGVz
LCBpbmNsdWRpbmcgbWFya2luZyBTVkcgYXMgIlRPRE8iCisgICAgICAgICogYmluZGluZ3MvZ2Rv
bTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6YWRkV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpyZW1v
dmVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVdyYXBwZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OndyYXBwZXJTZXQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTU9iamVjdDo6fkdE
T01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlckNhY2hlKToKKyAgICAgICAgKFdl
YkNvcmU6OmRvbU9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJl
dGVyOjpnZXRET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlX2dkb21fb2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NTm9k
ZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6
Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJ
bnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdE
T01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6dXBkYXRlRE9N
Tm9kZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvR0RPTSk6CisgICAgICAgIChXZWJD
b3JlOjp0b0dET01OZXdseUNyZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV3JhcHBl
cik6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlU1ZH
RE9NT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmNwcDogQWRkZWQuICBDb3BpZWQgZnJvbSB0aGUgYXV0by1nZW5lcmF0ZWQgSlNI
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFu
Y2hvcldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXBwbGV0V3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBcmVhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVCYXNlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCYXNlRm9udFdyYXBw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQmxvY2txdW90ZVdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQm9keVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
QlJXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1dHRvbldyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlQ2FudmFzV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxl
Q29sV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNb2RXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlRGl2V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVETGlzdFdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRW1iZWRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUZpZWxkU2V0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb250
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtV3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVGcmFtZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
RnJhbWVTZXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhlYWRpbmdXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhlYWRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUhSV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVIdG1sV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJRnJhbWVXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUltYWdlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJbnB1
dFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSXNJbmRleFdyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlTGFiZWxXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUxlZ2VuZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTElXcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxpbmtXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZU1hcFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFycXVlZVdyYXBw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVudVdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlTWV0YVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT2JqZWN0
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPTGlzdFdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlT3B0R3JvdXBXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZU9wdGlvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFyYWdyYXBoV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXJhbVdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlUHJlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVRdW90
ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2NyaXB0V3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVTZWxlY3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZVN0eWxlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZVdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZVRleHRBcmVhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUaXRsZVdyYXBw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVSb3dXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVVMaXN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVH
RE9NSFRNTFdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50
V3JhcHBlckZhY3RvcnkuaDogIEFkZGVkLiAgQ29waWVkIGZyb20gdGhlIGF1dG8tZ2VuZXJhdGVk
IEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9H
RE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAoR0RPTU9iamVjdDo6fkdET01PYmplY3QpOgor
ICAgICAgICAqIGJpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHA6IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEdTdHJp
bmdDb252ZXJ0OjpHU3RyaW5nQ29udmVydCk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HZG9t
RXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0
ZUdkb21ET01PYmplY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0
ZTo6Z2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0
UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKToKKyAgICAgICAgKF9HZG9tRE9N
T2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2ZpbmFsaXplKToKKyAgICAgICAgKF9HZG9t
RE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQpOgorICAgICAgICAo
X0dkb21ET01PYmplY3RQcml2YXRlOjpnZG9tX2RvbV9vYmplY3RfaW5pdCk6CisgICAgICAgICog
YmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcDogQWRkZWQuCisgICAg
ICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaDogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oOiBBZGRlZC4K
KyAgICAgICAgKEdET01FdmVudFRhcmdldE5vZGU6OkdET01FdmVudFRhcmdldE5vZGUpOgorICAg
ICAgICAoR0RPTUV2ZW50VGFyZ2V0Tm9kZTo6Z2V0X2dvYmpfdHlwZSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbTogQWRkZWQgZ29iamVjdCBiaW5k
aW5ncyBhdXRvLWdlbmVyYXRvci4KKyAgICAgICAgKiBkb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGw6
IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBk
b20vRXZlbnRFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElE
TAorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVD
VC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vUmFuZ2VFeGNlcHRpb24uaWRsOiBhZGRlZCBM
QU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAq
IGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNp
ZmljIElETAorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGw6IGFkZGVkIExBTkdV
QUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVu
dC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogcGFn
ZS9ET01TZWxlY3Rpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAor
ICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVj
aWZpYyBJREwKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsOiBhZGRlZCBMQU5HVUFH
RV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdEV4Y2Vw
dGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMIAorICAgICAgICAq
IHhtbC9YUGF0aEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMg
SURMCisKIDIwMDgtMDktMTIgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAg
ICAgTW92ZSB0aGUgbWVtYmVyIHZhcmlhYmxlcyBvZiBQbGF0Zm9ybVNjcm9sbGJhciB1cCBpbnRv
IFNjcm9sbGJhci4gIE1vdmUgYXV0b3Njcm9sbCB0aW1lciBoYW5kbGluZwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNzlh
ZTBkMi4uMWEzMzI5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0zNzUsOSArMzc1LDQ0NCBAQCB3ZWJjb3JlX2J1aWx0
X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmgKIAogbGliZ2RvbV9idWls
dF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21BdHRyLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tQXR0ci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21C
YXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQmFySW5mby5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DREFUQVNlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTQ2hh
cnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNT
U0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTTWVkaWFSdWxlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTTWVkaWFSdWxlLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUHJpbWl0aXZl
VmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQcmltaXRpdmVWYWx1ZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ1NTUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxl
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGVMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNT
U1N0eWxlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZVNoZWV0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DU1NWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlTGlzdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc0dy
YWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzR3JhZGllbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGF0dGVybi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ2FudmFzUGl4ZWxBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZh
c1BpeGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNoYXJhY3RlckRhdGEuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DaGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNsaXBib2FyZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21tZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ29tbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ29uc29sZS5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db3VudGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01Db3JlRXhj
ZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NQ29yZUV4Y2VwdGlvbi5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01JbXBsZW1lbnRhdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbURPTVBhcnNlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURP
TVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxlY3Rpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9N
V2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURvY3Vt
ZW50RnJhZ21lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRUeXBlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21F
bnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbnRpdHlSZWZl
cmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVu
dEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50RXhjZXB0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGVMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEFuY2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MQW5jaG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
QXBwbGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcHBsZXRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEJSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFz
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQnV0dG9u
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRExp
c3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERMaXN0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTERvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERvY3VtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxF
bWJlZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1lRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVh
ZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
SUZyYW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJRnJhbWVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxJc0luZGV4RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJ
c0luZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExJRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MTGVnZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxM
ZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMaW5rRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxNYXJxdWVlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxN
YXJxdWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVudUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxNb2RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1v
ZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0
aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25FbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MUGFyYW1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxQcmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFByZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MU2VsZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTZWxl
Y3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTdHlsZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
VGFibGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxVTGlzdEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IaXN0b3J5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUltYWdlRGF0
YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tS2V5Ym9h
cmRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Mb2NhdGlvbi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbU1lZGlhTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21NZXNzYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTWltZVR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZS5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tTWltZVR5cGVBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21Nb3VzZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTW91c2VFdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NdXRhdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTXV0YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21OYW1lZE5vZGVNYXAuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYW1lZE5v
ZGVNYXAuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTmF2aWdhdG9yLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tTmF2aWdhdG9yLmggXAogCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbU5vZGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmggXAotCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Ob2RlLmggCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0ZXIu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21Ob3RhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21PdmVyZmxv
d0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUGx1Z2luQXJyYXku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBy
b2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmFuZ2UuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21SYW5nZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlRXhj
ZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21SZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNjcmVl
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21U
ZXh0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21UZXh0TWV0cmljcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRNZXRyaWNz
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21UcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21VSUV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
V2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
WE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MU2Vy
aWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTFNlcmlhbGl6ZXIuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFNMVFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVhTTFRQcm9jZXNzb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbUF0dHIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUJhcklu
Zm8uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNEQVRBU2VjdGlvbi5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTQ2hhcnNldFJ1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tQ1NTTWVkaWFSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bUNTU1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1J1bGVMaXN0
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NTdHlsZURlY2xhcmF0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DU1NTdHlsZVJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1N0eWxlU2hlZXQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vUHJpdmF0ZUdkb21DU1NWYWx1ZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ2Fu
dmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21D
aGFyYWN0ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21DbGlwYm9h
cmQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNvbW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUNvbnNvbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUNvdW50ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRl
R2RvbURPTUNvcmVFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21E
T01QYXJzZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbURPTVNlbGVjdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRE9NV2luZG93LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL1ByaXZhdGVHZG9tRG9jdW1lbnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJp
dmF0ZUdkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21FbnRp
dHkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUVudGl0eVJlZmVyZW5jZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21GaWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEFuY2hv
ckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxBcHBsZXRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MQXJlYUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCUkVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCYXNlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MQm9keUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTENvbGxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxETGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21IVE1MRGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L1ByaXZhdGVHZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRN
TEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEZp
ZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEZv
bnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MRm9ybUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxGcmFtZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxGcmFtZVNldEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxIUkVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEhlYWRpbmdFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSHRtbEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21IVE1MSXNJbmRleEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbUhUTUxMSUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbUhUTUxMYWJlbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21IVE1MTGlua0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1M
TWFycXVlZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxN
ZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE1ldGFF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MTW9kRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE9MaXN0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE9iamVjdEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxPcHRpb25FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MUGFyYW1FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGV4dEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vUHJpdmF0ZUdkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vUHJpdmF0ZUdkb21IaXN0b3J5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21JbWFnZURhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUphdmFT
Y3JpcHRDYWxsRnJhbWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUtleWJv
YXJkRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUxvY2F0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21NZWRpYUxpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL1ByaXZhdGVHZG9tTWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2
YXRlR2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2Rv
bU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU11dGF0aW9u
RXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5hbWVkTm9kZU1hcC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tTmF2aWdhdG9yLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Ob2RlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21Ob2RlRmlsdGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdk
b21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5vZGVM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21Ob3RhdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL1ByaXZhdGVHZG9tUGx1Z2luLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
UHJpdmF0ZUdkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21Qcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21S
YW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tUmFuZ2VFeGNlcHRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVJlY3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9t
U3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVRleHQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVRleHRFdmVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tVGV4dE1ldHJpY3MuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVdl
YktpdEFuaW1hdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21X
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVH
ZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0
ZUdkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YTUxI
dHRwUmVxdWVzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVhNTEh0
dHBSZXF1ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YTUxT
ZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YU0xUUHJvY2Vz
c29yLmggIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnkuaCAKIAogSURMX0JJTkRJTkdTICs9ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5p
ZGwgXApAQCAtNTM1LDcgKzk3MCwxMiBAQCBsaWJnZG9tX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L0dkb21ET01PYmplY3QuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9N
T2JqZWN0LmggXAotCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5j
cHAgCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcCBcCisJ
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwIFwKKwlXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdz
L2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdz
L2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaAorCiAKIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ranMvQWN0aXZhdGlvbi5oIFwKQEAgLTIw
NjcsOSArMjUwNywxMyBAQCBlbmRpZiAjIEVORCBVU0VfUEFOR08KICMgLS0tLQogaWYgRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSAr
PSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAogd2ViY29yZV9idWlsdF9zb3Vy
Y2VzICs9IFwKLQlEZXJpdmVkU291cmNlcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCisJRGVy
aXZlZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcCAKKworbGliZ2RvbV9idWlsdF9z
b3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01BcHBsaWNhdGlvbkNhY2hl
LmNwcAogCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFw
cGxpY2F0aW9uQ2FjaGUuaWRsCkBAIC0yMTExLDYgKzI1NTUsNyBAQCBlbmRpZiAjIEVORCBFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQKICMgLS0tLQogaWYgRU5BQkxFX0RBVEFCQVNFCiBGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfREFUQUJBU0U9MQorRkVBVFVSRV9ERUZJTkVT
X0dET00gKz0gRU5BQkxFX0RBVEFCQVNFPTEKIAogd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwK
IAlEZXJpdmVkU291cmNlcy9KU0RhdGFiYXNlLmNwcCBcCkBAIC0yMTI0LDYgKzI1NjksMjMgQEAg
d2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9KU1NRTFRyYW5zYWN0
aW9uLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTUUxUcmFuc2FjdGlvbi5oCiAKK2xpYmdkb21f
YnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRGF0YWJhc2UuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21EYXRhYmFzZS5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TUUxFcnJvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTEVy
cm9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFJlc3VsdFNldC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxU
cmFuc2FjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFRyYW5zYWN0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21EYXRhYmFzZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9Qcml2YXRlR2RvbVNRTFJlc3VsdFNldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1By
aXZhdGVHZG9tU1FMVHJhbnNhY3Rpb24uaAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZS5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5pZGwgXApA
QCAtMjE5Niw2ICsyNjU4LDcgQEAgZW5kaWYgIyBFTkQgRU5BQkxFX0RBVEFCQVNFCiAjIC0tLS0K
IGlmIEVOQUJMRV9ET01fU1RPUkFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5B
QkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9ET01fU1RP
UkFHRT0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSlNT
dG9yYWdlLmNwcCBcCkBAIC0yMjAzLDYgKzI2NjYsMTQgQEAgd2ViY29yZV9idWlsdF9zb3VyY2Vz
ICs9IFwKIAlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5jcHAgXAogCURlcml2ZWRTb3Vy
Y2VzL0pTU3RvcmFnZUV2ZW50LmgKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbVN0b3JhZ2VFdmVudC5oCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbApA
QCAtMjI2MSw2ICsyNzMyLDcgQEAgZW5kaWYgIyBFTkQgRU5BQkxFX0lDT05EQVRBQkFTRQogIyAt
LS0tCiBpZiBFTkFCTEVfVklERU8KIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJM
RV9WSURFTz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfVklERU89MQogCiBIVE1M
X0ZFQVRVUkVTICs9IEVOQUJMRV9WSURFTz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X1ZJREVPPTEKQEAgLTIyODUsNiArMjc1NywyOSBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0g
XAogCURlcml2ZWRTb3VyY2VzL0pTVm9pZENhbGxiYWNrLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
SlNWb2lkQ2FsbGJhY2suaCAKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MQXVkaW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1lZGlh
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU291cmNlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZWRpYUVycm9y
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVZvaWRDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVZvaWRDYWxsYmFj
ay5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTEF1ZGlvRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTE1lZGlhRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tSFRNTFNvdXJjZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9Qcml2YXRlR2RvbVRpbWVSYW5nZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Q
cml2YXRlR2RvbVZvaWRDYWxsYmFjay5oCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9o
dG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRsIFwKIAlXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5pZGwgXApAQCAtMjMyNyw2ICsyODIyLDcgQEAgZW5kaWYgIyBFTkQgRU5BQkxFX1ZJREVPCiAj
IC0tLS0KIGlmIEVOQUJMRV9YUEFUSAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5B
QkxFX1hQQVRIPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9YUEFUSD0xCiAKIHdl
YmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFBBVEg9MQogCkBAIC0yMzQyLDcgKzI4MzgsMjQg
QEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVz
dWx0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNYUGF0aFJlc3VsdC5oIFwKIAlEZXJpdmVkU291
cmNlcy9YUGF0aEdyYW1tYXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaAor
CURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5oIAorCitsaWJnZG9tX2J1aWx0X3NvdXJjZXMg
Kz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXZhbHVhdG9yLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tWFBhdGhFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
UGF0aEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV4cHJlc3Np
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV4cHJlc3Npb24uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tWFBhdGhOU1Jlc29sdmVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVhQYXRoUmVzdWx0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhSZXN1
bHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVhQYXRoRXZhbHVhdG9yLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YUGF0aEV4Y2VwdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL1ByaXZhdGVHZG9tWFBhdGhFeHByZXNzaW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vUHJpdmF0ZUdkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9Qcml2YXRlR2RvbVhQYXRoUmVzdWx0LmgKIAogSURMX0JJTkRJTkdTICs9IFwK
IAlXZWJDb3JlL3htbC9YUGF0aEV2YWx1YXRvci5pZGwgXApAQCAtMjQwNyw2ICsyOTIwLDcgQEAg
ZW5kaWYgIyBFTkQgRU5BQkxFX1hQQVRICiAjIC0tLS0KIGlmIEVOQUJMRV9YU0xUCiBGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFNMVD0xCitGRUFUVVJFX0RFRklORVNfR0RP
TSArPSBFTkFCTEVfWFNMVD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFNMVD0x
CiAKQEAgLTI0MzAsNiArMjk0NCw3IEBAIGVuZGlmICMgRU5EIEVOQUJMRV9YU0xUCiAjIC0tLS0K
IGlmIEVOQUJMRV9TVkcKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9
MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkc9MSAtIGJpZyBUT0RPISA6KQog
CiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NQcm9w
ZXJ0eU5hbWVzLmluIAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMgKz0gJChXZWJDb3JlKS9j
c3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMjcwNyw2ICszMjIyLDI3MyBAQCB3ZWJjb3Jl
X2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvWExpbmtOYW1lcy5jcHAKIAorbm90LXlldDoKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FuZ2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVD
b2xvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlQ29s
b3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdBbmltYXRlZEJvb2xlYW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1h
dGVkRW51bWVyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2Vy
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FuaW1hdGVkTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHQW5pbWF0ZWROdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0
ZWROdW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVk
UHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmlt
YXRlZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJlY3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHQ2lyY2xlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NpcmNs
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHQ3Vyc29yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZWZp
bml0aW9uU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZmlu
aXRpb25TcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZnNFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVmc0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdEZXNjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RvY3VtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0VsZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Vs
ZW1lbnRJbnN0YW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50SW5z
dGFuY2VMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudEluc3Rh
bmNlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGxpcHNlRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0V4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdG
RUJsZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQmxlbmRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvbmVudFRyYW5z
ZmVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdo
dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdo
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0ZFRnVuY0JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHRkVGdW5jQkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5j
R0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNHRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNSRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGRUltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0ZFTWVyZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJn
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHRkVUaWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRmlsdGVyRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdGb250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdG
b250RmFjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VG
b3JtYXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VG
b3JtYXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlTmFt
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZU5hbWVF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0
aC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMaW5l
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNYXJrZXJFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R01hc2tFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
TWlzc2luZ0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01p
c3NpbmdHbHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR051bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhaW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGFpbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRo
U2VnLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0FyY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0FyY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ2xvc2VQ
YXRoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
QWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFi
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y1Ntb290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdMaW5ldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
TGluZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5ldG9I
b3Jpem9udGFsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXRoU2VnTGluZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0xpbmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGlu
ZXRvVmVydGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
TGluZXRvVmVydGljYWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUGF0dGVybkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXR0ZXJuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2ludC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1BvaW50TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1BvaW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2x5Z29uRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlnb25FbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1JlY3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdSZW5kZXJpbmdJbnRlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdSZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU1ZHRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NWR0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Nl
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RvcEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdG9wRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdTdHJpbmdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHU3RyaW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHls
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N3aXRjaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1N5bWJvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFJl
ZkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUUmVmRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1RleHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1RpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdUcmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zv
cm0uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHVW5pdFR5cGVzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1VzZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdVc2VFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHWm9vbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50
LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9s
LmlkbCBcCiAJV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTMyODYsMzYgKzQwNjgs
NDIgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKICMgU1ZHIEZlYXR1cmVzCiBpZiBFTkFCTEVf
U1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19VU0U9MQor
I0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfVVNFPTEgIyBiaWcgVE9ETyEKIFNW
R19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVAogRkVB
VFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCisj
RkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xIAogU1ZH
X0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogd2ViY29yZV9jcHBmbGFn
cyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NW
R19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT05UUz0x
CisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT05UUz0xCiBTVkdfRkVBVFVS
RVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NW
R19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZJTFRFUlMKIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dE
T00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZJ
TFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRklMVEVSUz0xCiBlbmRp
ZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVf
U1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdl
YmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVO
QUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
U1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BTklN
QVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVf
Y3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpAQCAtMzMyMyw2ICs0
MTExLDcgQEAgZW5kaWYKICMgU1ZHIHRhZyBhbmQgYXR0cmlidXRlIG5hbWVzIChuZWVkIHRvIHBh
c3MgYW4gZXh0cmEgZmxhZyBpZiBzdmcgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVk
KQogRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50
RmFjdG9yeS5jcHA7CiBEZXJpdmVkU291cmNlcy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5j
cHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcAorRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZH
RWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwogRGVyaXZlZFNvdXJjZXMvU1ZHRWxl
bWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkv
c3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0cnMuaW4KQEAgLTM1MDYsMyArNDI5
NSw3IEBAIENMRUFORklMRVMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3IubHV0LmgKIAorCisK
KworCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAppbmRleCA2NWY0MmFhLi5hNjk0
OGMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAKQEAgLTI3LDE3ICsyNywx
ODYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJnbGliLW9iamVjdC5oIgogI2lu
Y2x1ZGUgIkNTdHJpbmcuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkdET01C
aW5kaW5nLmgiCiAjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkdkb21Ob2Rl
LmgiCiAjaW5jbHVkZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHRE9NQmlu
ZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisKKyNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiR2RvbUNTU1N0eWxlU2hlZXQuaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1N0eWxlU2hlZXQuaCIKIAorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiR2RvbU5vZGUuaCIKKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTm9kZS5oIgorCisjaW5j
bHVkZSAiQXR0ci5oIgorI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgorI2luY2x1ZGUgIkNTU1Zh
bHVlLmgiCisjaW5jbHVkZSAiQ29tbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgorI2lu
Y2x1ZGUgIkVudGl0eS5oIgorI2luY2x1ZGUgIkVudGl0eVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1
ZGUgIkdkb21BdHRyLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21BdHRyLmgiCisjaW5jbHVk
ZSAiR2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJHZG9tVGV4dC5oIgorI2luY2x1ZGUg
Ikdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudC5oIgorI2luY2x1ZGUg
Ikdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5j
bHVkZSAiR2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHkuaCIKKyNpbmNs
dWRlICJHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNs
dWRlICJHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UmVmZXJl
bmNlLmgiCisjaW5jbHVkZSAiR2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRl
ICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKKyNpbmNsdWRlICJHZG9tQ1NTUnVsZS5oIgor
I2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgi
CisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgor
I2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5j
bHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NDaGFyc2V0UnVsZS5o
IgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTSW1w
b3J0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9t
Q1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAi
R2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tRXZlbnQuaCIKKworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1
ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkdkb21L
ZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUg
Ikdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU11dGF0aW9uRXZlbnQuaCIKKyNpbmNs
dWRlICJHZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9ncmVzc0V2ZW50Lmgi
CisjaW5jbHVkZSAiR2RvbVRleHRFdmVudC5oIgorI2luY2x1ZGUgIkdkb21VSUV2ZW50LmgiCisj
aW5jbHVkZSAiR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktp
dFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdkb21XaGVlbEV2ZW50LmgiCisjaW5jbHVk
ZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIktleWJvYXJk
RXZlbnQuaCIKKyNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50
LmgiCisjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgorI2luY2x1ZGUgIk92ZXJmbG93RXZlbnQu
aCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCisj
aW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisj
aW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2hlZWxFdmVudC5o
IgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorCisjaW5jbHVkZSAi
R2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNs
dWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25zQ29sbGVjdGlvbi5o
IgorI2luY2x1ZGUgIkdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKworI2lmIEVOQUJMRShE
T01fU1RPUkFHRSkKKyNpbmNsdWRlICJHZG9tU3RvcmFnZUV2ZW50LmgiCisjaW5jbHVkZSAiU3Rv
cmFnZUV2ZW50LmgiCisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBUT0RPIC0g
c2VlICMyMDU4NiAqLworI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tU1ZHWm9vbUV2ZW50LmgiCisj
aW5jbHVkZSAiR2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgor
I2VuZGlmCisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYgMCAvKiBYWFggVE9ETyAtIHNl
ZSAjMjA1ODYgKi8KKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFj
dG9yeS5oIgorI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNs
dWRlICJTVkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisjaWYgMAorI2lmIEVOQUJMRShT
VkcpCisjaW5jbHVkZSAiR2RvbVNWR0V4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlNWR0V4Y2VwdGlv
bi5oIgorI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ2xpcGJvYXJk
LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNvbW1lbnQu
aCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0
ZUludEdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Eb2N1
bWVudFR5cGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUVudGl0eS5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTVmFs
dWVMaXN0LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NQcmltaXRpdmVWYWx1ZS5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUludEdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tSFRNTERvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIK
KyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVRleHQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2Rv
bUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21DU1NGb250RmFjZVJ1
bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU0ltcG9ydFJ1bGUuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbUNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9t
Q1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUNTU1N0eWxlUnVsZS5oIgor
I2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgIlBy
aXZhdGVJbnRHZG9tS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlByaXZhdGVJbnRHZG9tTWVz
c2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Nb3VzZUV2ZW50LmgiCisjaW5j
bHVkZSAiUHJpdmF0ZUludEdkb21NdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUlu
dEdkb21PdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21Qcm9ncmVzc0V2
ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21UZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJQ
cml2YXRlSW50R2RvbVVJRXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVdlYktpdEFu
aW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21XZWJLaXRUcmFuc2l0aW9u
RXZlbnQuaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRl
ICJQcml2YXRlSW50R2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUg
IlByaXZhdGVJbnRHZG9tU3RvcmFnZUV2ZW50LmgiCisjaW5jbHVkZSAiUHJpdmF0ZUludEdkb21I
VE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJQcml2YXRlSW50R2RvbUhUTUxDb2xs
ZWN0aW9uLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKKwogdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gRE9NT2JqZWN0TWFwOwog
dHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gR2RvbVdyYXBwZXJDYWNoZTsgLyogQVJH
ISBVTkZBSVIhIEpTV3JhcHBlckNhY2hlIGlzIGluIERvY3VtZW50ISEgKi8KIApAQCAtMTkxLDgg
KzM2MCwxMDAgQEAgdm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5vZGVz
Rm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIC8vcmVtb3ZlV3JhcHBlcnMoZG9j
dW1lbnQtPndyYXBwZXJDYWNoZSgpKTsKIH0KIAorI2lmIDAKK3ZvaWQgR0RPTVNjcmlwdEludGVy
cHJldGVyOjptYXJrRE9NTm9kZXNGb3JEb2N1bWVudChEb2N1bWVudCogZG9jKQoreworI2lmIDAg
LypYWFggVE9ETy4gIGxrY2w6IGkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IHRoaXMgZnVuY3Rpb24g
aXMgZm9yLAorICAgICAgICBzbyBmb3Igbm93LCBpdCdzIGJlZW4gY29tbWVudGVkIG91dCwgYnV0
IGN1dC9wYXN0ZSBoZXJlIGZyb20KKyAgICAgICAgSlMgYXMgYSByZW1pbmRlciB0aGF0IHRoZXJl
IG1heSBwcm92ZSwgYXQgc29tZSBwb2ludCBpbiB0aGUKKyAgICAgICAgZnV0dXJlLCB0byBiZSBh
IG5lZWQgZm9yIGV4YWN0bHkgdGhpcyBmdW5jdGlvbmFsaXR5LgorICAgICAgICBldmVyeSBfb3Ro
ZXJfIGNvbmNlcHQgaW4gdGhlIEpTIGFuZCB0aGUgT2JqQyBiaW5kaW5ncyBjb2RlCisgICAgICAg
IGhhcyB0dXJuZWQgb3V0IHRvIGJlIG5lZWRlZC4uLgorICAgICAqLworICAgIC8vIElmIGEgbm9k
ZSdzIEdkb20gd3JhcHBlciBob2xkcyBjdXN0b20gcHJvcGVydGllcywgdGhvc2UgcHJvcGVydGll
cyBtdXN0CisgICAgLy8gcGVyc2lzdCBldmVyeSB0aW1lIHRoZSBub2RlIGlzIGZldGNoZWQgZnJv
bSB0aGUgRE9NLiBTbywgd2Uga2VlcCBHZG9tCisgICAgLy8gd3JhcHBlcnMgbGlrZSB0aGF0IGZy
b20gYmVpbmcgZ2FyYmFnZSBjb2xsZWN0ZWQuCisKKyAgICBHZG9tV3JhcHBlckNhY2hlJiBub2Rl
RGljdCA9IC8qZG9jLT4qL3dyYXBwZXJDYWNoZSgpOworICAgIEdkb21XcmFwcGVyQ2FjaGU6Oml0
ZXJhdG9yIG5vZGVFbmQgPSBub2RlRGljdC5lbmQoKTsKKyAgICBmb3IgKEdkb21XcmFwcGVyQ2Fj
aGU6Oml0ZXJhdG9yIG5vZGVJdCA9IG5vZGVEaWN0LmJlZ2luKCk7IG5vZGVJdCAhPSBub2RlRW5k
OyArK25vZGVJdCkgeworICAgICAgICBncG9pbnRlciBnTm9kZSA9IG5vZGVJdC0+c2Vjb25kOwor
ICAgICAgICBOb2RlKiBub2RlID0gZ05vZGUtPmltcGwoKTsKKworICAgICAgICBpZiAoZ05vZGUt
Pm1hcmtlZCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm8gbmVlZCB0
byBwcmVzZXJ2ZSBhIHdyYXBwZXIgdGhhdCBoYXMgbm8gY3VzdG9tIHByb3BlcnRpZXMgb3IgaXMg
bm8KKyAgICAgICAgLy8gbG9uZ2VyIGZldGNoYWJsZSB0aHJvdWdoIHRoZSBET00uCisgICAgICAg
IGlmICghZ05vZGUtPmhhc0N1c3RvbVByb3BlcnRpZXMoKSB8fCAhbm9kZS0+aW5Eb2N1bWVudCgp
KQorICAgICAgICAgICAgLy8uLi4gdW5sZXNzIHRoZSB3cmFwcGVyIHdyYXBzIGEgbG9hZGluZyBp
bWFnZSwgc2luY2UgdGhlICJuZXcgSW1hZ2UiCisgICAgICAgICAgICAvLyBzeW50YXggYWxsb3dz
IGFuIG9ycGhhbiBpbWFnZSB3cmFwcGVyIHRvIGJlIHRoZSBsYXN0IHJlZmVyZW5jZQorICAgICAg
ICAgICAgLy8gdG8gYSBsb2FkaW5nIGltYWdlLCB3aG9zZSBsb2FkIGV2ZW50IG1pZ2h0IGhhdmUg
aW1wb3J0YW50IHNpZGUtZWZmZWN0cy4KKyAgICAgICAgICAgIGlmICghbm9kZS0+aGFzVGFnTmFt
ZShpbWdUYWcpIHx8IHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2RlKS0+aGF2ZUZp
cmVkTG9hZEV2ZW50KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZ05v
ZGUtPm1hcmsoKTsKKyAgICB9CisjZW5kaWYKK30KKworLyogWFhYIC0gcmVxdWlyZXMgbG9va2lu
ZyB1cCBvYmplY3QgLSBjYWxsIHRvIEdfT0JKRUNUKCkgbWFjcm8gaW4gYXJnCisgKiAid3JhcHBl
ciIgdG8gcHV0RE9NTm9kZUZvckRvY3VtZW50PyovCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJw
cmV0ZXI6OnVwZGF0ZURPTU5vZGVEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9j
LCBEb2N1bWVudCogbmV3RG9jKQoreworICAgIEFTU0VSVChvbGREb2MgIT0gbmV3RG9jKTsKKyAg
ICBzdHlsZVNoZWV0LT5yZWYoKTsKKyAgICBncG9pbnRlciB3cmFwcGVyID0gZ2V0RE9NTm9kZUZv
ckRvY3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgaWYgKHdyYXBwZXIpIHsKKyAgICAgICAgLy9y
ZW1vdmVXcmFwcGVyKHdyYXBwZXIpOworICAgICAgICBncG9pbnRlciBvYmogPSBwdXRET01Ob2Rl
Rm9yRG9jdW1lbnQobmV3RG9jLCBub2RlLCB3cmFwcGVyKTsKKyAgICAgICAgZm9yZ2V0RE9NTm9k
ZUZvckRvY3VtZW50KG9sZERvYywgbm9kZSk7CisgICAgICAgIC8vYWRkV3JhcHBlcih3cmFwcGVy
KTsKKyAgICAgICAgcmV0dXJuIG9iajsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4u
LiAqLworfQorI2VuZGlmCisKK2dwb2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKQoreworICAg
IGlmICghZG9jKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAg
IGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb2Mp
OworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3Qg
KnJldDsKKworICAgIGlmIChkb2MtPmlzSFRNTERvY3VtZW50KCkpCisgICAgICAgIHJldCA9IG5l
dyBHRE9NSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KGRvYykpOworI2lm
IEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5pc1NWR0RvY3VtZW50KCkpCisgICAgewor
ICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gLSBzZWUgIzIwNTg2ICovCisjaWYgMAor
ICAgICAgICByZXQgPSBuZXcgR0RPTVNWR0RvY3VtZW50KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50
Kj4oZG9jKSk7CisjZW5kaWYKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9
IG5ldyBHRE9NRG9jdW1lbnQoZG9jKTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdE
T01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvYywgcmV0KTsKK30KKwogc3RhdGlj
IGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSk7CiAKK2dwb2ludGVyIHRvR0RPTU5l
d2x5Q3JlYXRlZChOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJu
IE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsK
K30KKwogZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKCFub2RlKQpAQCAt
MjA2LDYgKzQ2Nyw0MCBAQCBncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSkKICAgICByZXR1cm4g
Y3JlYXRlV3JhcHBlcihub2RlKTsKIH0KIAorZ3BvaW50ZXIgdG9HRE9NKENTU1ZhbHVlKiB2YWx1
ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLiAq
LworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2Jq
ZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAg
IEdET01PYmplY3QgKnJldDsKKworICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAg
ICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZUxpc3Qoc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4o
dmFsdWUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR1BhaW50
KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8K
KyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1BhaW50KHN0YXRpY19jYXN0PFNWR1BhaW50Kj4o
dmFsdWUpKTsKKyAgICB9CisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHQ29sb3IoKSkKKyAgICB7
CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworICAgICAgICAv
L3JldCA9IG5ldyBHRE9NU1ZHQ29sb3Ioc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSkpOwor
ICAgIH0KKyNlbmRpZgorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisg
ICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUHJpbWl0aXZlVmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWUqPih2YWx1ZSkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01D
U1NWYWx1ZSh2YWx1ZSk7CisKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZhbHVlLCByZXQpOworfQogCiBzdGF0aWMgQUxX
QVlTX0lOTElORSBncG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpCiB7CkBAIC0yMTUs
MTEgKzUxMCwzMDUgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgZ3BvaW50ZXIgY3JlYXRlV3JhcHBl
cihOb2RlKiBub2RlKQogICAgIERvY3VtZW50KiBkb2MgPSBub2RlLT5kb2N1bWVudCgpOwogICAg
IEdET01Ob2RlICpyZXQgPSBOVUxMOwogCi0gICAgcmV0ID0gbmV3IEdET01Ob2RlKG5vZGUpOwor
ICAgIC8vcHJpbnRmKCJjcmVhdGVXcmFwcGVyIG5vZGVUeXBlICVkXG4iLCBub2RlLT5ub2RlVHlw
ZSgpKTsKKworICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5cGUoKSkgeworICAgICAgICBjYXNlIE5v
ZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkp
CisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0
PEhUTUxFbGVtZW50Kj4obm9kZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgICAgICBlbHNl
IGlmIChub2RlLT5pc1NWR0VsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsK
KyNpZiAwIC8qIFhYWCBUT0RPIC0gc2VlICMyMDU4NiAqLworICAgICAgICAgICAgICAgIHJldCA9
IGNyZWF0ZUdET01TVkdXcmFwcGVyKHN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihub2RlKSk7Cisj
ZW5kaWYKKyNlbmRpZgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IG5l
dyBHRE9NRWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6CisgICAgICAgICAgICBy
ZXQgPSBuZXcgR0RPTUF0dHIoc3RhdGljX2Nhc3Q8QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NVGV4dChzdGF0aWNfY2FzdDxUZXh0Kj4obm9kZSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01DREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9k
ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6
CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUVudGl0eShzdGF0aWNfY2FzdDxFbnRpdHkqPihu
b2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5H
X0lOU1RSVUNUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTUNvbW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6
CisgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIHRoZSBkb2N1bWVudCBpdHNl
bGYgaW4gdGhlIHBlci1kb2N1bWVudCBkaWN0aW9uYXJ5CisgICAgICAgICAgICByZXR1cm4gdG9H
RE9NKHN0YXRpY19jYXN0PERvY3VtZW50Kj4obm9kZSkpOworICAgICAgICBjYXNlIE5vZGU6OkRP
Q1VNRU5UX1RZUEVfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnRUeXBl
KHN0YXRpY19jYXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTU5vdGF0aW9uKHN0YXRpY19jYXN0PE5vdGF0aW9uKj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnRGcmFnbWVudChzdGF0aWNfY2FzdDxEb2N1bWVu
dEZyYWdtZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9k
ZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01FbnRp
dHlSZWZlcmVuY2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RP
TU5vZGUobm9kZSk7CisgICAgfQogCiAgICAgZG9jLT5yZWYoKTsKICAgICByZXR1cm4gR0RPTVNj
cmlwdEludGVycHJldGVyOjpwdXRET01Ob2RlRm9yRG9jdW1lbnQoZG9jLCBub2RlLCByZXQpOwog
fQogCitncG9pbnRlciB0b0dET00oSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24pCit7CisgICAg
aWYgKCFjb2xsZWN0aW9uKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLi4gKi8KKwor
ICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChj
b2xsZWN0aW9uKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAg
IEdET01PYmplY3QgKnJldDsKKyAgICBzd2l0Y2ggKGNvbGxlY3Rpb24tPnR5cGUoKSkgeworICAg
ICAgICBjYXNlIEhUTUxDb2xsZWN0aW9uOjpTZWxlY3RPcHRpb25zOgorICAgICAgICAgICAgcmV0
ID0gbmV3IEdET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbnND
b2xsZWN0aW9uKj4oY29sbGVjdGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisjaWYgMAorICAg
ICAgICBjYXNlIEhUTUxDb2xsZWN0aW9uOjpEb2NBbGw6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUhUTUxBbGxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29sbGVj
dGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTENvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTENv
bGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICBjb2xsZWN0aW9uLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpw
dXRET01PYmplY3QoY29sbGVjdGlvbiwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50
KiBldmVudCkKK3sKKyAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1t
bS4uLi4gKi8KKworICAgIC8vcHJpbnRmKCJ0b0dET00gRXZlbnQgdHlwZSAlc1xuIiwgZXZlbnQt
PnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKworICAgIGdwb2ludGVyIGdvYmogPSBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChldmVudCk7CisgICAgaWYgKGdvYmop
CisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIGlmIChl
dmVudC0+aXNVSUV2ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQo
KSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NS2V5Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxL
ZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzVGV4dEV2
ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVRleHRFdmVudChzdGF0aWNfY2FzdDxU
ZXh0RXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNNb3VzZUV2ZW50
KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU1vdXNlRXZlbnQoc3RhdGljX2Nhc3Q8TW91
c2VFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1doZWVsRXZlbnQo
KSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NV2hlZWxFdmVudChzdGF0aWNfY2FzdDxXaGVl
bEV2ZW50Kj4oZXZlbnQpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICBlbHNlIGlmIChldmVu
dC0+aXNTVkdab29tRXZlbnQoKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7
IC8qIFRPRE8gLSBzZWUgIzIwNTg2ICovCisgICAgICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZH
Wm9vbUV2ZW50KHN0YXRpY19jYXN0PFNWR1pvb21FdmVudCo+KGV2ZW50KSwgMCk7CisgICAgICAg
IH0KKyNlbmRpZgorICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVVJRXZl
bnQoc3RhdGljX2Nhc3Q8VUlFdmVudCo+KGV2ZW50KSk7CisgICAgfSBlbHNlIGlmIChldmVudC0+
aXNNdXRhdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NTXV0YXRpb25FdmVudChz
dGF0aWNfY2FzdDxNdXRhdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+
aXNPdmVyZmxvd0V2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NT3ZlcmZsb3dFdmVudChz
dGF0aWNfY2FzdDxPdmVyZmxvd0V2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+
aXNNZXNzYWdlRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01NZXNzYWdlRXZlbnQoc3Rh
dGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNQ
cm9ncmVzc0V2ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50LT5pc1hNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01YTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Kj4oZXZl
bnQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Qcm9ncmVzc0V2
ZW50KHN0YXRpY19jYXN0PFByb2dyZXNzRXZlbnQqPihldmVudCkpOworICAgIH0KKyNpZiBFTkFC
TEUoRE9NX1NUT1JBR0UpCisgICAgZWxzZSBpZiAoZXZlbnQtPmlzU3RvcmFnZUV2ZW50KCkpCisg
ICAgICAgIHJldCA9IG5ldyBHRE9NU3RvcmFnZUV2ZW50KHN0YXRpY19jYXN0PFN0b3JhZ2VFdmVu
dCo+KGV2ZW50KSk7CisjZW5kaWYKKyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRBbmltYXRp
b25FdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTVdlYktpdEFuaW1hdGlvbkV2ZW50KHN0
YXRpY19jYXN0PFdlYktpdEFuaW1hdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChl
dmVudC0+aXNXZWJLaXRUcmFuc2l0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01X
ZWJLaXRUcmFuc2l0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8V2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4o
ZXZlbnQpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRXZlbnQoZXZlbnQpOwor
CisgICAgZXZlbnQtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1
dERPTU9iamVjdChldmVudCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKFRleHQqIHRleHQp
Cit7CisgICAgaWYgKCF0ZXh0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVy
IGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudCh0ZXh0
LT5kb2N1bWVudCgpLCB0ZXh0KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7
CisKKyAgICBHRE9NTm9kZSAqcmV0ID0gbmV3IEdET01UZXh0KHRleHQpOworICAgIHRleHQtPmRv
Y3VtZW50KCktPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERP
TU5vZGVGb3JEb2N1bWVudCh0ZXh0LT5kb2N1bWVudCgpLCB0ZXh0LCByZXQpOworfQorCitncG9p
bnRlciB0b0dET00oQ1NTUnVsZSogcnVsZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJl
dHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHJ1bGUpOworCisgICAgaWYgKGdvYmopCisg
ICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIHN3aXRjaCAo
cnVsZS0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTU3R5bGVSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxlUnVs
ZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6Ok1F
RElBX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU01lZGlhUnVsZShzdGF0aWNf
Y2FzdDxDU1NNZWRpYVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBDU1NSdWxlOjpGT05UX0ZBQ0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9N
Q1NTRm9udEZhY2VSdWxlKHN0YXRpY19jYXN0PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUGFnZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUq
PihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBP
UlRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTSW1wb3J0UnVsZShzdGF0aWNf
Y2FzdDxDU1NJbXBvcnRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQ1NTUnVsZTo6Q0hBUlNFVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01D
U1NDaGFyc2V0UnVsZShzdGF0aWNfY2FzdDxDU1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1Zh
cmlhYmxlc1J1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUnVsZShydWxlKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIHJ1bGUtPnJlZigpOworICAgIEdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6cHV0RE9NT2JqZWN0KHJ1bGUsIHJldCk7CisgICAgcmV0dXJuIHJldDsKK30KKworZ3Bv
aW50ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50KQorICAg
ICAgICByZXR1cm4gTlVMTDsKKworICAgIC8vIHNob3VsZG4ndCBiZSBvbmU/IEFTU0VSVCghU2Ny
aXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudChlbGVtZW50LT5kb2N1bWVudCgp
LCBlbGVtZW50KSk7CisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NTm9kZUZvckRvY3VtZW50KGVsZW1lbnQtPmRvY3VtZW50KCksIGVsZW1lbnQpOworICAg
IGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsgLy8gaHVoPyBlcnIuLi4KKworICAgIEdE
T01Ob2RlICpyZXQ7CisgICAgRG9jdW1lbnQqIGRvYyA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisK
KyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXQgPSBjcmVhdGVH
RE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CisjaWYg
RU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkKKyAgICB7
CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworICAgICAgICAv
L3JldCA9IGNyZWF0ZUdET01TVkdXcmFwcGVyKHN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihlbGVt
ZW50KSk7CisgICAgfQorI2VuZGlmCisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTUVs
ZW1lbnQoZWxlbWVudCk7CisKKyAgICBkb2MtPnJlZigpOworICAgIHJldHVybiBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudChkb2MsIGVsZW1lbnQsIHJldCk7Cit9
CisKK2dwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIGlmICgh
c3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGVyci4uLiAqLworCisgICAgZ3Bv
aW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHN0eWxlU2hl
ZXQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmpl
Y3QgKnJldDsKKyAgICBpZiAoc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAg
IHJldCA9IG5ldyBHRE9NQ1NTU3R5bGVTaGVldChzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4o
c3R5bGVTaGVldCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01TdHlsZVNoZWV0
KHN0eWxlU2hlZXQpOworCisgICAgc3R5bGVTaGVldC0+cmVmKCk7CisgICAgcmV0dXJuIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHN0eWxlU2hlZXQsIHJldCk7Cit9CisKKy8q
IGRlcml2ZWQgc291cmNlcyBhdXRvLWdlbmVyYXRlZCAqLworZ3BvaW50ZXIgdG9HRE9NKFhNTEh0
dHBSZXF1ZXN0VXBsb2FkKiBvYmopOworCitncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIHRh
cmdldCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyNpZiAw
CisjaWYgRU5BQkxFKFNWRykKKyAgICAvLyBTVkdFbGVtZW50SW5zdGFuY2Ugc3VwcG9ydHMgYm90
aCB0b1NWR0VsZW1lbnRJbnN0YW5jZSBhbmQgdG9Ob2RlIHNpbmNlIHNvIG11Y2ggbW91c2UgaGFu
ZGxpbmcgY29kZSBkZXBlbmRzIG9uIHRvTm9kZSByZXR1cm5pbmcgYSB2YWxpZCBub2RlLgorICAg
IFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2UgPSB0YXJnZXQtPnRvU1ZHRWxlbWVudEluc3Rh
bmNlKCk7CisgICAgaWYgKGluc3RhbmNlKQorICAgICAgICByZXR1cm4gdG9HRE9NKGV4ZWMsIGlu
c3RhbmNlKTsKKyNlbmRpZgorI2VuZGlmCisKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0LT50b05v
ZGUoKTsKKyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsKKworICAg
IGlmIChYTUxIdHRwUmVxdWVzdCogeGhyID0gdGFyZ2V0LT50b1hNTEh0dHBSZXF1ZXN0KCkpCisg
ICAgICAgIC8vIFhNTEh0dHBSZXF1ZXN0IGlzIGFsd2F5cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3
ZSBkb24ndCBuZWVkIHRvIHVzZSBjYWNoZURPTU9iamVjdCgpIGhlcmUuCisgICAgICAgIHJldHVy
biBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdCh4aHIpOworCisgICAgaWYgKFhN
TEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxvYWQgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3RVcGxv
YWQoKSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTSh1cGxvYWQpOworCisjaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICBpZiAoRE9NQXBwbGljYXRpb25DYWNoZSogY2FjaGUg
PSB0YXJnZXQtPnRvRE9NQXBwbGljYXRpb25DYWNoZSgpKQorICAgICAgICAvLyBET01BcHBsaWNh
dGlvbkNhY2hlIGlzIGFsd2F5cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkIHRv
IHVzZSBjYWNoZURPTU9iamVjdCgpIGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OmdldERPTU9iamVjdChjYWNoZSk7CisjZW5kaWYKKworICAgIC8vIFRoZXJlIGFy
ZSB0d28ga2luZHMgb2YgRXZlbnRUYXJnZXRzOiBFdmVudFRhcmdldE5vZGUgYW5kIFhNTEh0dHBS
ZXF1ZXN0LgorICAgIC8vIElmIFNWRyBzdXBwb3J0IGlzIGVuYWJsZWQsIHRoZXJlIGlzIGFsc28g
U1ZHRWxlbWVudEluc3RhbmNlLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBOVUxMOworfQorCitncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXROb2RlKiB0YXJnZXQpCit7
CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgTm9kZSogbm9k
ZSA9IHRhcmdldC0+dG9Ob2RlKCk7CisgICAgaWYgKG5vZGUpCisgICAgICAgIHJldHVybiB0b0dE
T00obm9kZSk7CisKKyAgICByZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PEV2ZW50VGFyZ2V0Kj4o
dGFyZ2V0KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJlYzY1OAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5j
cHAKQEAgLTAsMCArMSw1ODUgQEAKKy8qCisgKiBUSElTIEZJTEUgSVMgREVSSVZFRCBCWSBIQU5E
IEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFURUQgRklMRS4KKyAqIElUIElTIE5PVCBBTiBB
VVRPLUdFTkVSQVRFRCBGSUxFIElUIFdBUyBDUkVBVEVEIE1BTlVBTExZICpGUk9NKgorICogQU4g
QVVUTy1HRU5FUkFURUQgRklMRS4KKyAqCisgKiAga2VlcGluZyBpdCB1cC10by1kYXRlIGNvdWxk
IHBvdGVudGlhbGx5IGJlIGRvbmUgYnkgYWRkaW5nCisgKiAgYSBtYWtlX25hbWVzLnBsIGdlbmVy
YXRvciwgb3IgYnkgd3JpdGluZyBhIHNlcGFyYXRlCisgKiAgZ2VuZXJhdGVyIHdoaWNoIHRha2Vz
IEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0Pgor
ICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRl
ICJnZG9tL0dkb21Ob2RlLmgiCisjaW5jbHVkZSAiR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rv
cnkuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFy
ZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCb2R5RWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxDYW52
YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGlyZWN0
b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRmllbGRTZXRFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZyYW1lRWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSFJFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxMYWJl
bEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
TGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWFwRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxNZW51RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNZXRhRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPcHRHcm91
cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTFBhcmFtRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQcmVFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFNlbGVj
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVUxpc3RFbGVt
ZW50LmgiCisKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEFuY2hvckVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEFwcGxldEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9Qcml2YXRlSW50R2RvbUhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJp
dmF0ZUludEdkb21IVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRl
SW50R2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUlu
dEdkb21IVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRN
TEJSRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MQnV0dG9uRWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MQ2FudmFzRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVGFibGVDb2xFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9Qcml2YXRlSW50R2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9Qcml2YXRlSW50R2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRl
SW50R2RvbUhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9t
SFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MRmll
bGRTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxGb250RWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MRm9ybUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9Qcml2YXRlSW50R2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
UHJpdmF0ZUludEdkb21IVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJ
bnRHZG9tSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1M
SHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTElGcmFtZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTEltYWdlRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MSW5wdXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vUHJpdmF0ZUludEdkb21IVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Q
cml2YXRlSW50R2RvbUhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRl
SW50R2RvbUhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRN
TExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxNYXBFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxNYXJxdWVlRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTE1ldGFFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9Qcml2YXRlSW50R2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2
YXRlSW50R2RvbUhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRH
ZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21I
VE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MUGFy
YWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MUGFyYW1F
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxQcmVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1By
aXZhdGVJbnRHZG9tSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUlu
dEdkb21IVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhU
TUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxU
ZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tSFRNTFRpdGxl
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludEdkb21IVE1MVGFibGVSb3dFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUhUTUxVTGlzdEVsZW1lbnQuaCIK
KworI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcmVhRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNl
Rm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRh
YmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRW1iZWRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb250RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFt
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSXNJbmRleEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExl
Z2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFy
YWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
Cit0eXBlZGVmIEdET01Ob2RlKiAoKkNyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uKShQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQW5jaG9y
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxBbmNob3JFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFwcGxldFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MQXBwbGV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXBwbGV0RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcmVhV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxB
cmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQmFzZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEJhc2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUJhc2VGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNlRm9udEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTEJhc2VGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxCbG9ja3F1b3RlRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MQmxvY2txdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQm9keVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQm9keUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTEJvZHlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZUJSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxCUkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJS
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVC
dXR0b25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTEJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQ2FudmFz
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxDYW52YXNFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2FwdGlv
bldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4g
bmV3IEdET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDYXB0
aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVUYWJsZUNvbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVDb2xFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJs
ZUNvbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlTW9kV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxNb2RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNb2RFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURpcmVjdG9yeVdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MRGlyZWN0b3J5RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGlyZWN0b3J5RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVEaXZXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBH
RE9NSFRNTERpdkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERpdkVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRExpc3RXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERMaXN0
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRExpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUVtYmVkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbWJlZEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVGaWVsZFNldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRmllbGRTZXRFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxGaWVsZFNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRm9udEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZUZvcm1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZvcm1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb3Jt
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVG
cmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVTZXRX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEZyYW1lU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVTZXRFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhlYWRpbmdX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTEhlYWRpbmdFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkaW5nRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RP
TUhUTUxIZWFkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSFJXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhSRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MSFJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUh0bWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEh0bWxFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxIdG1sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVJRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElG
cmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlSW1hZ2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTEltYWdlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlucHV0
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxJbnB1dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJc0luZGV4V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RP
TUhUTUxJc0luZGV4RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGFiZWxXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TExhYmVsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGFiZWxFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxlZ2VuZFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTGVnZW5k
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGVnZW5kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMSVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTElFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxMSUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlTGlua1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTGlua0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExp
bmtFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZU1hcFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MTWFwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFwRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNYXJxdWVlV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RP
TUhUTUxNYXJxdWVlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFycXVlZUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWVudVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
TWVudUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1lbnVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1ldGFXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1ldGFFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxNZXRhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVPYmplY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9iamVjdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlT0xpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9MaXN0RWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MT0xpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZU9wdEdyb3VwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiBuZXcgR0RPTUhUTUxPcHRHcm91cEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVPcHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9wdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9w
dGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlUGFyYWdyYXBoV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQ
YXJhZ3JhcGhFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZVBhcmFtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxQYXJhbUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFt
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQ
cmVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTFByZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFByZUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUXVvdGVXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TFF1b3RlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNjcmlwdFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU2NyaXB0
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTZWxlY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNlbGVjdEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU3R5bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFN0eWxlRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MU3R5bGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZVRhYmxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTFRhYmxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVDZWxsV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNlbGxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRleHRBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUZXh0QXJlYUVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUaXRsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGl0bGVFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBHRE9NTm9kZSogY3JlYXRlVGFibGVSb3dXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlUm93RWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MVGFibGVSb3dFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZVVMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxVTGlzdEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTFVMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworR0RPTU5vZGUqIGNy
ZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHN0YXRpYyBIYXNoTWFwPFdlYkNvcmU6OkF0b21pY1N0cmluZ0ltcGwqLCBDcmVhdGVIVE1M
RWxlbWVudFdyYXBwZXJGdW5jdGlvbj4gbWFwOworICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7Cisg
ICAgICAgbWFwLnNldChhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQW5jaG9yV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChhcHBsZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVB
cHBsZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVBcmVhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChiYXNlVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlQmFzZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZWZvbnRUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoYmxvY2txdW90ZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJsb2NrcXVvdGVXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVC
b2R5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChiclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUJSV3JhcHBlcik7CisgICAgICAgbWFwLnNldChidXR0b25UYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVCdXR0b25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhbnZhc1RhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUNhbnZhc1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY2Fw
dGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoY29sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGlyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlRGlyZWN0b3J5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkaXZUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVEaXZXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRsVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlRExpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGVtYmVk
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRW1iZWRXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGZpZWxkc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRmllbGRTZXRXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGZvbnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb250
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb3JtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlRm9ybVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVGcmFtZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVzZXRUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGcmFtZVNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aDFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoaHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIUldyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoaHRtbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUh0bWxX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUlGcmFtZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1nVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlucHV0VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSW5wdXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlzaW5k
ZXhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJc0luZGV4V3JhcHBlcik7CisgICAgICAg
bWFwLnNldChsYWJlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxhYmVsV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChsZWdlbmRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMZWdl
bmRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlTElXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpbmtUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVMaW5rV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXBUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVNYXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1hcnF1ZWVUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNYXJxdWVlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCht
ZW51VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWVudVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQobWV0YVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1ldGFXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KG9iamVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9iamVjdFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQob2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVP
TGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0Z3JvdXBUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVPcHRHcm91cFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0aW9uVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChw
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUGFyYWdyYXBoV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChwYXJhbVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFtV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChwcmVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVRdW90
ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2NyaXB0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlU2NyaXB0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzZWxlY3RUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHN0eWxlVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU3R5bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHRhYmxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHRib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9u
V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0ZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGV4dGFyZWFUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVUZXh0QXJlYVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGl0bGVU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUaXRsZVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQodHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVJvd1dyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQodWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVVTGlzdFdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoY29sZ3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVU
YWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDJUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoM1RhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg0VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aDVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChoNlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGltYWdlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGluc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoa2V5Z2VuVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsaXN0aW5nVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Zm9vdFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAg
IG1hcC5zZXQodGhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KHRoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFi
bGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh4bXBUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICB9CisgICAgLy9wcmludGYoImNyZWF0ZUdET01I
VE1MV3JhcHBlcjogJXNcbiIsIGVsZW1lbnQtPmxvY2FsTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworICAgIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdyYXBw
ZXJGdW5jdGlvbiA9IG1hcC5nZXQoZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICBp
ZiAoY3JlYXRlV3JhcHBlckZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlckZ1
bmN0aW9uKGVsZW1lbnQpOworICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbGVtZW50KGVsZW1lbnQu
Z2V0KCkpOworfQorCit9CisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9N
SFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01I
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZDU1YzdiMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
RE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBU
SElTIEZJTEUgSVMgREVSSVZFRCBCWSBIQU5EIEZST00gQU4gQVVUT01BVElDQUxMWSBHRU5FUkFU
RUQgRklMRS4KKyAqIElUIElTIE5PVCBBTiBBVVRPLUdFTkVSQVRFRCBGSUxFIElUIFdBUyBDUkVB
VEVEIE1BTlVBTExZICpGUk9NKgorICogQU4gQVVUTy1HRU5FUkFURUQgRklMRS4KKyAqIGtlZXBp
bmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBkb25lIGJ5IGFkZGluZworICog
YSBtYWtlX25hbWVzLnBsIGdlbmVyYXRvciwgb3IgYnkgd3JpdGluZyBhIHNlcGFyYXRlCisgKiBn
ZW5lcmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmggYXMgaW5w
dXQuCisgKgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgR0RPTUhUTUxFbGVtZW50V3Jh
cHBlckZhY3RvcnlfaAorI2RlZmluZSBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCisK
KyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tTm9kZS5oIgorCisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7
CisKKyAgICBHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+KTsKKworfQorCisjZW5kaWYgLy8gR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnlf
aApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUu
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkMjI0ZDYKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAKQEAgLTAsMCAr
MSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRl
ICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9t
aWNTdHJpbmcuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVHZG9tRXZlbnRU
YXJnZXROb2RlLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworZXh0ZXJuICJDIiB7CisK
K3ZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2Rv
bUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeikKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTsK
KyAgICAvKgorICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0gPSBnZG9tX2V2ZW50
X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19l
dmVudF90YXJnZXRfbm9kZV90eXBlX2FyZyA9IFdlYkNvcmU6OlN0cmluZyhldmVudF90YXJnZXRf
bm9kZV90eXBlX2FyZyk7CisgICAgaXRlbS0+aW5pdEV2ZW50VGFyZ2V0Tm9kZShfZ19ldmVudF90
YXJnZXRfbm9kZV90eXBlX2FyZyk7CisgICAgKi8KK30KKworfSAvKiBleHRlcm4gIkMiICovCisK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5v
ZGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlNDk0ZDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdl
dE5vZGUuY3BwCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGli
LW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21FdmVudFRh
cmdldE5vZGUuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmgi
CisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1
ZGUgImdkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhp
cyBvcHRpb25hbCAqLworI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21FdmVudC5oIgorZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05B
TAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9
OworCisKK1dlYkNvcmU6Ok5vZGUgKgorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0
ZShHZG9tRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0KQoreworICAgIEdET01FdmVudFRhcmdldE5v
ZGUgKnJlczsKKyAgICByZXMgPSBzdGF0aWNfY2FzdDxHRE9NRXZlbnRUYXJnZXROb2RlKj4oZ2Rv
bV9kb21fb2JqZWN0X2dldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSkpOworICAg
IHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihyZXMtPmltcGwoKSk7Cit9
CisKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSwg
Z2RvbV9ldmVudF90YXJnZXRfbm9kZSwgR0RPTV9UWVBFX05PREUpOworCisvKgorc3RydWN0IF9H
ZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSB7CisgICAgY2xhc3MgV2ViQ29yZTo6RXZlbnRUYXJn
ZXROb2RlICppdGVtOworfTsKKyovCisKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9H
RVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIEdET01f
VFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUpKQorCisv
Kgordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9zZXRfcHJpdmF0ZShHZG9tRXZlbnRUYXJn
ZXROb2RlICpyZXF1ZXN0LCBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBpdGVtKQoreworICAg
IEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9E
RV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBwcml2LT5pdGVtID0gaXRlbTsKK30KKyovCisK
K3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZmluYWxpemUoR09iamVjdCogb2Jq
ZWN0KQoreworICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZSogcmVxdWVzdCA9IEdET01fRVZFTlRf
VEFSR0VUX05PREUob2JqZWN0KTsKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJp
diA9IHJlcXVlc3QtPnByaXY7Ki8KKworICAgIEdfT0JKRUNUX0NMQVNTKGdkb21fZXZlbnRfdGFy
Z2V0X25vZGVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZv
aWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9jbGFzc19pbml0KEdkb21FdmVudFRhcmdldE5vZGVD
bGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0g
PSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFT
UyhyZXF1ZXN0Q2xhc3MpLAorICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFT
VCB8IEdfU0lHTkFMX0FDVElPTiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdfU0lHTkFMX0RFVEFJTEVEICAgICksCisgICAgICAgIDAsCisgICAgICAgIE5VTEwsCisgICAg
ICAgIE5VTEwsCisgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAor
ICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVf
Qk9PTEVBTik7CisKKyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9
IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZmluYWxpemU7CisKKyAgICAvKmdfdHlwZV9jbGFzc19h
ZGRfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZihHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0
ZSkpOyovCit9CisKK3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdChHZG9t
RXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0KQoreworICAgIC8qR2RvbUV2ZW50VGFyZ2V0Tm9kZVBy
aXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3Qp
OworICAgIHJlcXVlc3QtPnByaXYgPSBwcml2OyovCit9CisKK30gLyogZXh0ZXJuICJDIiAqLwor
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3QucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0K
aW5kZXggNmY3YjJmYy4uM2M4NTMwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpAQCAtMTQ2LDkgKzE0Niw2IEBAIHN1YiBHZXRHSW5j
bHVkZUhkcgogICAgICAgICBteSAkbmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOwogICAgICAgICAj
bXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKIAotICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgIk5hbWVkTm9kZU1hcCI7ICMgaGFjayB0byBnZXQgaW50ZXJtZWRp
YXRlIHBhdGNoIHRvIGNvbXBpbGUKLSAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJEb2N1
bWVudCI7ICMgaGFjayB0byBnZXQgaW50ZXJtZWRpYXRlIHBhdGNoIHRvIGNvbXBpbGUKLSAgICAg
ICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJOb2RlTGlzdCI7ICMgaGFjayB0byBnZXQgaW50ZXJt
ZWRpYXRlIHBhdGNoIHRvIGNvbXBpbGUKICAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJp
bnQiOwogICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImxvbmciOwogICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgInNob3J0IjsKQEAgLTM0NiwyNyArMzQzLDYyIEBAIHN1YiBza2lw
UHJvcFRlbXBvcmFyaWx5CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKICAgICBteSAkcHJvcF90eXBl
ID0gc2hpZnQ7CiAKLSAgICAjIHNraXAgTmFtZWROb2RlbWFwCi0gICAgaWYgKCRwcm9wX3R5cGUg
ZXEgIk5hbWVkTm9kZU1hcCIpIHsgIyBoYWNrIHRvIGdldCBpbnRlcm1lZGlhdGUgcGF0Y2ggdG8g
Y29tcGlsZQorICAgICMgc2tpcCBNZWRpYUxpc3QKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAic3R5
bGVzaGVldHM6Ok1lZGlhTGlzdCIpIHsKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogCi0gICAg
IyBza2lwIE5vZGVMaXN0Ci0gICAgaWYgKCRwcm9wX3R5cGUgZXEgIk5vZGVMaXN0IikgeyAjIGhh
Y2sgdG8gZ2V0IGludGVybWVkaWF0ZSBwYXRjaCB0byBjb21waWxlCi0gICAgICAgIHJldHVybiAx
OwotICAgIH0KKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICMg
ICAgcmV0dXJuIDE7CisgICAgI30KIAotICAgICMgc2tpcCBEb2N1bWVudAotICAgIGlmICgkcHJv
cF90eXBlIGVxICJEb2N1bWVudCIpIHsgIyBoYWNrIHRvIGdldCBpbnRlcm1lZGlhdGUgcGF0Y2gg
dG8gY29tcGlsZQorICAgICMgc2tpcCBDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbgorICAgIGlmICgk
cHJvcF90eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIpIHsKICAgICAgICAgcmV0dXJu
IDE7CiAgICAgfQogCisgICAgIyBza2lwIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCisgICAg
I2lmICgkcHJvcF90eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0
dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgor
ICAgICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24iKSB7Cisg
ICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIEV2ZW50TGlzdGVuZXIKKyAg
ICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgIyAgICByZXR1cm4g
MTsKKyAgICAjfQorCisgICAgIyBza2lwIERPTVdpbmRvdworICAgICNpZiAoJHByb3BfdHlwZSBl
cSAiRE9NV2luZG93IikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KIAogICAgICMgc2tp
cCBDb25zdHJ1Y3RvcnMgKHdoYXRldmVyIHRoZXkgYXJlKSBmb3Igbm93LgogICAgIGlmICgkcHJv
cF90eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KIAor
ICAgICMgY2FudmFzMmQuLi4uCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgImN1c3RvbSIpIHsKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkFycmF5Iikg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRE9N
VGltZVN0YW1wIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIFRPRE86IFNW
RworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQb2RUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVy
YXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KICAgICByZXR1cm4gMDsKIH0KIApAQCAtNDMwLDYgKzQ2Miw3IEBAIHN1YiBHZW5lcmF0ZQog
ICAgICRpbXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3si
Q1NTUnVsZS5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9
IDE7CisgICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcuaCJ9ID0gMTsKICAgICAkaW1wbElu
Y2x1ZGVzeyJTdHlsZVNoZWV0LmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3siRXZlbnQuaCJ9
ID0gMTsKICAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhlbEFycmF5LmgifSA9IDE7CkBAIC00
NDEsNiArNDc0LDE5IEBAIHN1YiBHZW5lcmF0ZQogICAgIG15ICRoYWNrRGVjbHMgPSA8PCAiRU9G
IjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSk7
CisgICAgZ3BvaW50ZXIgdG9HRE9NKENTU1ZhbHVlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dE
T00oQ1NTUnVsZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKEVsZW1lbnQqIG5vZGUpOwor
ICAgIGdwb2ludGVyIHRvR0RPTShEb2N1bWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9N
KEhUTUxDb2xsZWN0aW9uKiBub2RlKTsKKyAgICAvL2dwb2ludGVyIHRvR0RPTShTVkdQYXRoU2Vn
KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oU3R5bGVTaGVldCogbm9kZSk7CisgICAgZ3Bv
aW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0Tm9kZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9N
KEV2ZW50VGFyZ2V0KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnQqIG5vZGUpOwor
ICAgIGdwb2ludGVyIHRvR0RPTShDYW52YXNQaXhlbEFycmF5KiBub2RlKTsKKyAgICBncG9pbnRl
ciB0b0dET00oRE9NV2luZG93KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oVGV4dCogbm9k
ZSk7CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIEVPRgpAQCAtNDU0LDEwICs1MDAsMjIgQEAg
RU9GCiAgICAgbXkgJHBhc3NUeXBlID0gJHBvZFR5cGUgPyAiSlNTVkdQT0RUeXBlV3JhcHBlcjwk
cG9kVHlwZT4qIiA6ICIkaW50ZXJmYWNlTmFtZSoiOwogCiAgICAgaWYgKCR7aW50ZXJmYWNlTmFt
ZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50
YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAg
ICAgIyAgICBwdXNoKEBjQm9keSwgIkpTQzo6SlNWYWx1ZSogdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIG9iaiwgU1ZHRWxlbWVudCogY29u
dGV4dClcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJh
bWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgICAgIHB1c2goQGNCb2R5LCAiSlND
OjpKU1ZhbHVlKiB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAkcGFzc1R5cGUgb2JqLCBTVkdF
bGVtZW50KiBjb250ZXh0KVxuIik7CisgICAgICAgICN9IGVsc2UgewogICAgICAgICAgICAgcHVz
aChAY0JvZHksICJncG9pbnRlciB0b0dET00oV2ViQ29yZTo6JHBhc3NUeXBlIG9iailcbiIpOwor
ICAgICAgICAjfQogCiAgICAgICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAgICAgICNpZiAo
JHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gY2FjaGVT
VkdET01PYmplY3Q8SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4sICRjbGFzc05hbWUsICR7
Y2xhc3NOYW1lfVByb3RvdHlwZT4oZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAgICAj
fSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUp
KSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2Jq
ZWN0PCRpbXBsQ2xhc3NOYW1lLCAkY2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGV4
ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxzZSB7CiAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICByZXR1cm4gV2ViQ29yZTo6Y2FjaGVET01PYmplY3Q8V2ViQ29yZTo6
JGludGVyZmFjZU5hbWUsIEdET00kaW50ZXJmYWNlTmFtZT4ob2JqKTtcbiIpOworICAgICAgICAj
fQogICAgICAgICBwdXNoKEBjQm9keSwgIn1cbiIpOwogICAgIH0KIApAQCAtNTI3LDkgKzU4NSw3
IEBAIEVPRgogICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOwogCiAgICAg
JGhkclByb3BJbmNsdWRleyJnbGliLW9iamVjdC5oIn0gPSAxOwotICAgIGlmICgkcGFyZW50SGRy
TmFtZSBuZSAiR2RvbURPTU9iamVjdCIpIHsKLSAgICAgICAgJGhkclByb3BJbmNsdWRleyJnZG9t
L1ByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9LmgifSA9IDE7Ci0gICAgfQorICAgICRoZHJQcm9w
SW5jbHVkZXsiZ2RvbS9Qcml2YXRlSW50JHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOwogICAgICRo
ZHJQcm9wSW5jbHVkZXsiR0RPTU9iamVjdC5oIn0gPSAxOwogICAgICRoZHJQcm9wSW5jbHVkZXsi
JHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOwogCkBAIC01MzcsMTUgKzU5Myw3IEBAIEVPRgogI2lm
bmRlZiAke2d1YXJkfV9JTlRfCiAjZGVmaW5lICR7Z3VhcmR9X0lOVF8KICNpbmNsdWRlICJnbGli
LW9iamVjdC5oIgotRU9GCi0gICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsK
LSAgICBpZiAoJHBhcmVudEhkck5hbWUgbmUgIkdkb21ET01PYmplY3QiKSB7Ci0gICAgICAgICRp
bXBsQ29udGVudCA9IDw8ICJFT0YiOwogI2luY2x1ZGUgImdkb20vUHJpdmF0ZUludCR7cGFyZW50
SGRyTmFtZX0uaCIKLUVPRgotICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRl
bnQpOwotICAgIH0KLSAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKICNpbmNsdWRlICJHRE9N
T2JqZWN0LmgiCiAjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5oIgogRU9GCkBAIC01NjIsOCAr
NjEwLDEzIEBAIEVPRgogICAgIH0KICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19CRUdJTl9E
RUNMU1xuIik7CiAKKyAgICAjQ2xhc3MgZGVjbGFyYXRpb24KKyAgICAjaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJET01XaW5kb3ciKSB7CisgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiY2xh
c3MgR0RPTSRpbnRlcmZhY2VOYW1lIHtcbiIpOworICAgICN9IGVsc2UgewogICAgICAgICBwdXNo
KEBoQm9keUludGVybmFsLCAiY2xhc3MgR0RPTSRpbnRlcmZhY2VOYW1lIDogcHVibGljICRwYXJl
bnRHSWZhY2VOYW1lIHtcbiIpOwogICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHR5
cGVkZWYgJHBhcmVudEdJZmFjZU5hbWUgQmFzZTtcbiIpOworICAgICN9CiAgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgInB1YmxpYzpcbiIpOwogCiAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAg
ICBpbnQgZ2V0R29ialR5cGUoKSB7IHJldHVybiBHRE9NX1RZUEVfJHtjbHNDYXBzfTsgfVxuIik7
CkBAIC01NzYsOSArNjI5LDIzIEBAIEVPRgogICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
dmlydHVhbCB+R0RPTSRpbnRlcmZhY2VOYW1lKCk7XG4iKSBpZiAoISRoYXNQYXJlbnQgb3IgJGlu
dGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50Iikgb3IgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRv
dyI7CiAKICAgICBpZiAoISRoYXNQYXJlbnQgfHwgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5k
b3ciKSkgeworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICBKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiogaW1wbCgpIGNv
bnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9j
b250ZXh0LmdldCgpOyB9XG5cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWws
ICJwcml2YXRlOlxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBS
ZWZQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0O1xuIik7CisgICAgICAgICMgICAgcHVzaChAaEJv
ZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4gPiBt
X2ltcGw7XG4iKTsKKyAgICAgICAgI30gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFy
YW1ldGVyKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJu
YWwsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0
KCk7IH1cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgU1ZHRWxl
bWVudCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfVxuXG4iKTsK
KyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHJpdmF0ZTpcbiIpOworICAgICAg
ICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFNWR0VsZW1lbnQ+IG1fY29u
dGV4dDtcbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRy
PCRpbXBsQ2xhc3NOYW1lID4gbV9pbXBsO1xuIik7CisgICAgICAgICN9IGVsc2UgewogICAgICAg
ICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSog
aW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuXG4iKTsKICAgICAgICAgICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRlOlxuIik7CiAgICAgICAgICAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIFJlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gbV9pbXBs
O1xuIik7CisgICAgICAgICN9CiAgICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgewogICAgICAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgIFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3RcbiIp
OwogICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIHtcbiIpOwpAQCAtNjExLDEyICs2
NzgsMjggQEAgRU9GCiAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZSIpIHsKICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRl
cjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KG1faW1wbC0+ZG9jdW1lbnQoKSwgbV9pbXBsLmdl
dCgpKTtcbiIpOwogICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgI2lmICgkcG9kVHlwZSkg
eworICAgICAgICAgICAgIyAgICBteSAkYW5pbWF0ZWRUeXBlID0gJGltcGxDbGFzc05hbWU7Cisg
ICAgICAgICAgICAjICAgICRhbmltYXRlZFR5cGUgPX4gcy9TVkcvU1ZHQW5pbWF0ZWQvOworCisg
ICAgICAgICAgICAjICAgICMgU3BlY2lhbCBjYXNlIGZvciBKU1NWR051bWJlcgorICAgICAgICAg
ICAgIyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRhbmltYXRlZFR5
cGUpIGFuZCAkcG9kVHlwZSBuZSAiZmxvYXQiKSB7CisgICAgICAgICAgICAjICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICBKU1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRwb2RUeXBlLCAk
YW5pbWF0ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlcihtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAg
ICAgICAjICAgIH0KKyAgICAgICAgICAgICN9CiAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChtX2ltcGwu
Z2V0KCkpO1xuIik7CiAgICAgICAgIH0KIAogICAgICAgICBwdXNoKEBjQm9keSwgIlxufVxuXG4i
KTsKICAgICB9CiAKKyAgICAjIERvY3VtZW50IG5lZWRzIGEgc3BlY2lhbCBkZXN0cnVjdG9yIGJl
Y2F1c2UgaXQncyBhIHNwZWNpYWwgY2FzZSBmb3IgY2FjaGluZy4gSXQgbmVlZHMKKyAgICAjIGl0
cyBvd24gc3BlY2lhbCBoYW5kbGluZyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBjYWNoaW5n
IHRoYXQgTm9kZSBub3JtYWxseSBkb2VzLgorICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRG9j
dW1lbnQiKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiR0RPTSR7aW50ZXJmYWNlTmFtZX06On5H
RE9NJGludGVyZmFjZU5hbWUoKVxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuICAgIFdl
YkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHN0YXRpY19jYXN0
PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihpbXBsKCkpKTtcbn1cblxuIik7CisgICAgfQor
CiAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CiAgICAg
JGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVk
ZXN7IkdET01PYmplY3QuaCJ9ID0gMTsKQEAgLTYyOSw4ICs3MTIsMTYgQEAgRU9GCiAjaW5jbHVk
ZSAiZ2xpYi1vYmplY3QuaCIKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgogI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXRwcml2YXRlLmg+IAorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIiAv
KiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCiAjaW5jbHVkZSAiTm9kZS5oIiAv
KiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTmFtZWROb2Rl
TWFwLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJD
YW52YXNQYXR0ZXJuLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNp
bmNsdWRlICJDYW52YXNHcmFkaWVudC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlv
bmFsICovCisjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhp
cyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiAvKiB5
dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCiAjaW5jbHVkZSA8Z2RvbS9Qcml2YXRl
R2RvbURPTU9iamVjdC5oPiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisj
aW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmg+IC8qIHl1a2s6IFRPRE8gLSBtYWtl
IHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlIDxnZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXRO
b2RlLmg+IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgb24gRXZlbnRUYXJnZXQq
LwogI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKICNpbmNsdWRlIDxnZG9tLyR7aGRyTmFt
ZX0uaD4KICNpbmNsdWRlIDxnZG9tL1ByaXZhdGUke2hkck5hbWV9Lmg+CkBAIC02MzksNyArNzMw
LDE2IEBAIEVPRgogCiAjaW5jbHVkZSAiZ2RvbS9HU3RyaW5nQ29udmVydC5oIgogCisjaW5jbHVk
ZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiVGV4
dC5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTUnVsZS5oIgorI2luY2x1
ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgPGdkb20v
R2RvbUV2ZW50Lmg+CiAKIAogRU9GCkBAIC02ODksMTIgKzc4OSwxNyBAQCBFT0YKICAgICAgICAg
ICAgIG5leHQgU0tJUFBST1A7CiAgICAgICAgIH0KICAgICAgICAgICAgIAorICAgICAgICAkaW1w
bEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxIGlmICR0eXBlIGVx
ICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKwogICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3Jhcmls
eSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKICAgICAgICAgICAgIG5leHQgU0tJUFBST1A7CiAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICBhZGRQcm9wSW5jSGRyKCRwcm9wX3R5cGUpOwog
CisgICAgICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfQVBJICR0eXBlXG4kZnVuY3Rpb25O
YW1lUHJlZml4IiAuICJfcHJvcF9nZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZyk7XG5c
biIpOworCisgICAgICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfQVBJIHZvaWRcbiRmdW5j
dGlvbk5hbWVQcmVmaXgiIC4gIl9wcm9wX3NldF8iIC4gIiRwcm9wTmFtZSAoJGZ1bmN0aW9uU2ln
LCAkdHlwZSIgLiAidmFsdWUpO1xuXG4iKTsKICAgICB9CiAKICAgICAjIFByb3BlcnRpZXMKQEAg
LTcwOCw2ICs4MTMsOCBAQCBlbnVtIHsKICAgICBMQVNUX1NJR05BTAogfTsKIAorc3RhdGljIGd1
aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCiBlbnVtIHsKICAgICBQ
Uk9QXzAsCiBFT0YKQEAgLTgwOCwxNyArOTE1LDI1IEBAIEVPRgogICAgICAgICAgICAgICAgICRv
ayA9IDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJib29s
ZWFuIikgewotICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgaWYgKCR7
aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJl
Y3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAg
ICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJmbG9hdCIpIHsKICAgICAgICAgICAgICAgICAkb2sgPSAxOwogICAgICAgICAgICAg
fSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7Ci0gICAgICAgICAgICAgICAgJG9rID0gMTsK
KyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAj
WFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91
dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKICAgICAgICAgICAgICAg
ICAkb2sgPSAxOwogICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKLSAg
ICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5h
bWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAt
IG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAx
OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9u
ZyIpIHsKLSAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIGlmICgke2lu
dGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0
IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAg
ICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzaWYgKCRndHlw
ZSBlcSAidWludCIpIHsKICAgICAgICAgICAgICAgICAkb2sgPSAxOwogICAgICAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CkBAIC04MjgsNiArOTQzLDEwIEBAIEVPRgogICAg
ICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJjaGFyIikgewogICAgICAgICAgICAgICAgICRv
ayA9IDE7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAjIFhYWCBUT0RPIC0gc2tpcCBMb2Nh
dGlvbgorICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJMb2NhdGlvbiIpIHsKKyAg
ICAgICAgICAgICAgICAkb2sgPSAwOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAo
JG9rKSB7CiAgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICBjYXNlICR7
cHJvcEVudW19OlxuICAgIHtcbiIpOwpAQCAtODU3LDYgKzk3NiwxMCBAQCBFT0YKICAgICAgICAg
ICAgICRkb25lID0gMTsKICAgICAgICAgfQogICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJvYmpl
Y3QiKSB7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAiV1RGOjpnZXRQdHIoJHtsY2FzZV9n
dHlwZW5hbWV9X2dldF9wcml2YXRlKCI7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSBHZXRQ
cml2Rm4oJGludGVyZmFjZU5hbWUsICR7bGNhc2VfZ3R5cGVuYW1lfSwgImdzZWxmIiwgInNlbGYi
KTsKKyAgICAgICAgICAgICMkY29udmVydF9mbiA9ICIke2xjYXNlX2d0eXBlbmFtZX1fZ2V0X3By
aXZhdGUoUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+KCI7CisgICAgICAgICAgICAj
JHBvc3RfY29udmVydF9mbiA9ICIpIjsKICAgICAgICAgICAgIG15ICRkb21vYmpUeXBlID0gIkdE
T00iLiRwcm9wX3R5cGU7CiAgICAgICAgICAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CiAg
ICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PiBwdHIgPSBnc2VsZi0+JHtn
ZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSk7CkBAIC05OTMsNiArMTExNiwyNiBAQCBFT0YK
IAogRU9GCiAKKyAgICAjIFRPRE86IHdvcmsgb3V0IGlmIGl0J3MgYXBwcm9wcmlhdGUgdG8gc3Bs
aXQgdGhpcyBpbnRvIG1hbnkgZGlmZmVyZW50CisgICAgIyBzaWduYWxzIGUuZy4gImNsaWNrIiBl
dGMuCisgICAgbXkgJHR4dF9pbnN0YWxsX3NpZ25hbHMgPSAiIjsKKworICAgIGlmICgkaW50ZXJm
YWNlTmFtZSBlcSAiRE9NV2luZG93IiBvcgorICAgICAgICAkaW50ZXJmYWNlTmFtZSBlcSAiWE1M
SHR0cFJlcXVlc3QiKSB7CisgICAgICAgICR0eHRfaW5zdGFsbF9zaWduYWxzID0gPDwgIkVPRiI7
CisgICAgZXZlbnRfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nl
ci1ldmVudCIsCisgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisgICAg
ICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1NJR05BTF9ERVRB
SUxFRCAgKSwKKyAgICAgICAgMCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgTlVMTCwKKyAgICAg
ICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisgICAgICAgIEdfVFlQRV9O
T05FLCAyLAorICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKK0VPRgor
ICAgIH0KKwogICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOwogCiBzdGF0aWMgdm9pZCAke2xj
YXNlX2lmYWNlbmFtZX1fZmluYWxpemUoR09iamVjdCogb2JqZWN0KQpAQCAtMTAyMiw2ICsxMTY1
LDggQEAgc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2NsYXNzX2luaXQoJHtjbGFzc05h
bWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykKIAogQHR4dF9pbnN0YWxsX3Byb3BzCiAKKyR0eHRfaW5z
dGFsbF9zaWduYWxzCisKICAgICAvKmdfdHlwZV9jbGFzc19yZW1vdmVfcHJpdmF0ZShyZXF1ZXN0
Q2xhc3MsIHNpemVvZigke2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8KIH0KIApAQCAtMTA4NiwxMiAr
MTIzMSwyMCBAQCAke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpy
ZXF1ZXN0KTsKIAogRU9GCiAKKyAgICAjcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
JHtpbnRlcmZhY2VOYW1lfSo+KChXZWJDb3JlOjpOb2RlKikocmVzKSk7CiAgICAgICAgIHB1c2go
QGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKIAorICAgICAgICAjaWYgKCRwYXJhbUlETFR5cGUg
ZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVk
IGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3siSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAgICMg
ICAgJGltcGxJbmNsdWRlc3skaW5jbHVkZUhkcn0gPSAxOworICAgICAgICAjfQogICAgICAgICAk
aW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5j
bHVkZXN7Imdkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaCJ9ID0gMTsKIAogICAgICAgICBMT09Q
OiBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAg
ICAgICAgICNteSAkZnVuY3Rpb25OYW1lID0gZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSAuICJfIiAu
IGRlY2FtZWxpemUoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUpOwogICAgICAgICAgICAgICAg
IG15ICRmbl9zaWdfbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICAg
ICAgICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlOwogICAg
ICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50
ZXJmYWNlTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRmbl9zaWdfbmFtZSk7CkBAIC0xMTAzLDE0
ICsxMjU2LDUzIEBAIEVPRgogICAgICAgICAgICAgICAgIG15ICRjYWxsX2ltcGxfcGFyYW1zID0g
IiI7CiAgICAgICAgICAgICAgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gImdkb21fIiAuIGRlY2Ft
ZWxpemUoJGZuX3NpZ190eXBlKTsKIAorICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1l
IGVxICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkiKSB7CisgICAgICAg
ICAgICAgICAgICAgICMgcmVzZXJ2ZWQgbmFtZSBjbGFzaCBpbiBnbGliIQorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdkb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3NldF9j
c3NfcHJvcGVydHkiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAjIFhYWCBz
a2lwIENvbXBhcmVIb3cgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJGZ1
bmN0aW9uTmFtZSBlcSAiZ2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBD
b21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93
IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
bmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNr
aXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICBpZiAoJHJl
dHVyblR5cGUgZXEgIkdkb21TVkdEb2N1bWVudCAqIikgeworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9u
ICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0
aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAg
ICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAjIFhYWCBza2lwIHNvbWUgY3VzdG9tIGZ1
bmN0aW9ucyBmb3Igbm93CiAgICAgICAgICAgICAgICAgbXkgJGlzX2N1c3RvbV9mbiA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisgICAgICAg
ICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xsZWN0aW9uX2l0ZW0i
IHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xs
ZWN0aW9uX25hbWVkX2l0ZW0iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
ZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiB8fAorICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfc2V0X3JlcXVlc3RfaGVhZGVy
IiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRw
X3JlcXVlc3Rfc2VuZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dldF9yZXNwb25zZV9oZWFkZXIiIHx8CisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vdmVycmlk
ZV9taW1lX3R5cGUiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdk
b21feG1sX2h0dHBfcmVxdWVzdF9kaXNwYXRjaF9ldmVudCIgfHwKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1dGUiKSB7CisgICAg
ICAgICAgICAgICAgICAgICRpc19jdXN0b21fZm4gPSAwOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgIyRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVz
dF9hZGRfZXZlbnRfbGlzdGVuZXIiIHx8CisgICAgICAgICAgICAgICAgICAgICMkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyIiB8fAog
ICAgICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmIAogICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3JfbmV4dF9ub2RlIiAmJiAKICAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGls
ZCIgJiYgCiAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9y
ZW1vdmVfY2hpbGQiICYmIAogICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKLSAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3BhcmVudF9ub2Rl
IiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dh
bGtlcl9maXJzdF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
bmUgImdkb21fdHJlZV93YWxrZXJfbGFzdF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfc2libGluZyIgJiYg
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJf
bmV4dF9zaWJsaW5nIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAi
Z2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAg
JGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9uZXh0X25vZGUiICYmIAorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3JfcHJldmlv
dXNfbm9kZSIpIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBU
T0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwogICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CiAgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsK
QEAgLTExODIsNiArMTM3NCwyOSBAQCBFT0YKIAogICAgICAgICAgICAgICAgIG15ICRfcmV0dXJu
VHlwZSA9ICRyZXR1cm5UeXBlOwogICAgICAgICAgICAgICAgIG15ICRkb21vYmpUeXBlID0gIkdE
T00iLiRmbl9zaWdfdHlwZTsKKyAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICdE
T01PYmplY3QnICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21f
aHRtbF9jYW52YXNfZWxlbWVudF9nZXRfY29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAg
IyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52
YXNSZW5kZXJpbmdDb250ZXh0IConOworICAgICAgICAgICAgICAgICAgICAkZG9tb2JqVHlwZSA9
ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dCc7CisgICAgICAgICAgICAgICAgICAgICRnZG9t
X2ZuX3ByZWZpeCA9ICdnZG9tX2NhbnZhc19yZW5kZXJpbmdfY29udGV4dCc7CisgICAgICAgICAg
ICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNraXAg
aXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVzdCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0IChU
T0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91dCBob3cpCisgICAgICAgICAgICAgICAgICAg
ICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3JlYXRlIGEgR0RPTURvbU9iamVjdAorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICgk
Zm5fc2lnX3R5cGUgZXEgJ0RPTU9iamVjdCcgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAnZ2RvbV9kb2N1bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0JykgeworICAg
ICAgICAgICAgICAgICAgICAjIFhYWCBIQUNLIQorICAgICAgICAgICAgICAgICAgICAkX3JldHVy
blR5cGUgPSAnR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCAqJzsKKyAgICAgICAgICAgICAg
ICAgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCc7CisgICAg
ICAgICAgICAgICAgICAgICRnZG9tX2ZuX3ByZWZpeCA9ICdnZG9tX2NhbnZhc19yZW5kZXJpbmdf
Y29udGV4dDJkJzsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOyAjIFhYWCAtIHRvbyBp
bnZvbHZlZCBmb3Igbm93LiAgc2tpcCBpdC4KKyAgICAgICAgICAgICAgICAgICAgIyBtdXN0IGNv
bnZlcnQgdG8gYSBET01PYmplY3QgKFRPRE86IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhv
dykKKyAgICAgICAgICAgICAgICAgICAgIyBiZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUg
YSBHRE9NRG9tT2JqZWN0CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
CisKICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwgIldFQktJVF9BUEkgJF9yZXR1cm5UeXBl
XG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKIAogICAgICAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiJF9yZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcp
XG57XG4iKTsKQEAgLTEyMjcsNyArMTQ0MiwxNCBAQCBFT0YKICAgICAgICAgICAgICAgICAgICAg
bXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKIAogICAgICAgICAgICAg
ICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURM
VHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJp
bmciKSB7CisgICAgICAgICAgICAgICAgICAgICMgSEFDSyEKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiAmJgorICAg
ICAgICAgICAgICAgICAgICAgICAgICRwYXJhbS0+bmFtZSBlcSAidXJsIikgeworCisgICAgICAg
ICAgICAgICAgICAgICAgICAjJGltcGxJbmNsdWRlc3siS1VSTC5oIn0gPSAxOworICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6S1VSTCBfZ18ke3BhcmFt
TmFtZX0gPSBXZWJDb3JlOjpLVVJMKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0
cmluZyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNv
cmU6OlN0cmluZyBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KCRw
YXJhbU5hbWUpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgewpAQCAtMTI5Miw2ICsxNTE0LDEwIEBAIEVPRgog
ICAgIHJldHVybiBOVUxMOwogRU9GCiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAk
Y3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOworICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIG5lICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQnKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIC8qIFhYWCBUT0RPIC0gZ2V0IGNh
bnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4
Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01TdHJpbmciKSB7CiAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufUdTdHJpbmdDb252ZXJ0KGl0ZW0tPiR7
Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7XG4iICk7CiAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTUNvcmVF
eGNlcHRpb24uaWRsIGIvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKaW5kZXggYzlh
YzM1Ni4uOGNiMDRiNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5p
ZGwKKysrIGIvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKQEAgLTM2LDcgKzM2LDcg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAg
ICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBt
ZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAg
ICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0Rv
bnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDQyZjdk
NmQuLmZmNmI4ZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKQEAgLTE1Niw3ICsxNTYsNyBAQCBtb2R1bGUgY29yZSB7
CiAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIHRpdGxlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJl
ZmVycmVyOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ZG9tYWluOwogI2Vsc2UKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21h
aW47CkBAIC0xODIsNyArMTgyLDcgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIE5vZGVMaXN0
IGdldEVsZW1lbnRzQnlOYW1lKGluIERPTVN0cmluZyBlbGVtZW50TmFtZSk7CiAKLSNpZiBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCiAKQEAgLTE5NSw3ICsxOTUs
NyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIEVsZW1lbnQgICAgICAgICAgICBlbGVtZW50RnJv
bVBvaW50KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKIAogICAgICAgICAvLyBNb3ppbGxhIGV4dGVu
c2lvbnMKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAg
RE9NU2VsZWN0aW9uICAgICAgIGdldFNlbGVjdGlvbigpOwogI2VuZGlmCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgY2hhcmFj
dGVyU2V0OwpAQCAtMjM2LDcgKzIzNiw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgTm9kZUxp
c3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBET01TdHJpbmcgdGFnbmFtZSk7CiAKICAgICAg
ICAgLy8gTm9kZVNlbGVjdG9yIC0gU2VsZWN0b3IgQVBJCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQo
TEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgIFtDdXN0b21dIEVsZW1lbnQgcXVlcnlTZWxlY3Rv
cihpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNlbGVj
dG9ycywgaW4gTlNSZXNvbHZlciByZXNvbHZlcikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgICAgICBbQ3VzdG9tXSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGluIFtD
b252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JzLCBp
biBOU1Jlc29sdmVyIHJlc29sdmVyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnRFeGNl
cHRpb24uaWRsIGIvV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCmluZGV4IDYxY2ZkNjUu
LjUzNjlhOWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAorKysg
Yi9XZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwKQEAgLTM3LDcgKzM3LDcgQEAgbW9kdWxl
IGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5h
bWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7
CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92
ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1d
IERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9L
ZXlib2FyZEV2ZW50LmlkbCBiL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCmluZGV4IDgw
ODMxOWYuLjAxOWFiMDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRs
CisrKyBiL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCkBAIC01OSw3ICs1OSw3IEBAIG1v
ZHVsZSBldmVudHMgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4g
YWx0R3JhcGhLZXkpOwogCiAgICAgICAgIC8vIFdlYktpdCBFeHRlbnNpb25zCi0jaWYgIWRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoKCFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpKSAmJiAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpKQogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgYi9XZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlv
bi5pZGwKaW5kZXggMzZjZGUxNi4uMzg2OGY0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUmFu
Z2VFeGNlcHRpb24uaWRsCisrKyBiL1dlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbApAQCAt
MjcsNyArMjcsNyBAQCBtb2R1bGUgcmFuZ2VzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkK
KyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsIGIvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAppbmRleCBmM2ExNWVlLi5kNTBmNmNhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKQEAgLTQ3LDcgKzQ3LDcgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlYXJjaDsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwogCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmlu
ZygpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVu
dC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCmluZGV4IDc5NGYwMDAu
LmU2NmU5MzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbApAQCAtMzUsMTQgKzM1LDE0
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvZGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb2RlQmFzZTsKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhl
aWdodDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBoc3Bh
Y2U7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5n
XSBsb25nIGhzcGFjZTsKICNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG9iamVjdDsKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2c3BhY2U7CiAjZWxzZQog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHZzcGFj
ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbCBiL1dlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAppbmRleCAxMGMzMDA3Li45NjJkYWZhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCkBAIC0zMCw3ICszMCw3IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZmMC05NzhkLWY3NzNm
MmRlZTZhMwogICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFs
aWduOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdo
dDsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmdd
IGxvbmcgaGVpZ2h0OwpAQCAtMzgsNyArMzgsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1l
OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgc3JjOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyB3aWR0aDsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgd2lkdGg7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmlkbAppbmRleCAxZjE3MDMzLi5hMDdmMDBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5p
ZGwKQEAgLTI3LDcgKzI3LDcgQEAgbW9kdWxlIGh0bWwgewogICAgIF0gSFRNTE9wdGlvbkVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1F
bGVtZW50ICAgICAgZm9ybTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAg
ICAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFH
RV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9ET01TZWxlY3Rpb24uaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKaW5k
ZXggODVkMjNiZi4uNGQ0NDc3ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlv
bi5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwKQEAgLTYyLDcgKzYyLDcg
QEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgcmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAg
ICAgIHZvaWQgYWRkUmFuZ2UoaW4gUmFuZ2UgcmFuZ2UpOwogCi0jaWYgZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5l
ZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmlu
ZygpOwogI2VuZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggYTBmZjc3OS4uNDliYmI5MCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKQEAgLTE1NSw3ICsxNTUsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgW0RvTm90Q2hlY2tEb21haW5TZWN1cml0eSwgQ3VzdG9tXSB2b2lkIHBvc3RNZXNzYWdlKGlu
IERPTVN0cmluZyBtZXNzYWdlLCBpbiBET01TdHJpbmcgdGFyZ2V0T3JpZ2luKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpCiAgICAgICAgIC8vIEdsb2JhbCBjb25zdHJ1Y3RvcnMKICAgICAgICAgYXR0cmli
dXRlIFN0eWxlU2hlZXRDb25zdHJ1Y3RvciBTdHlsZVNoZWV0OwogICAgICAgICBhdHRyaWJ1dGUg
Q1NTU3R5bGVTaGVldENvbnN0cnVjdG9yIENTU1N0eWxlU2hlZXQ7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5p
ZGwKaW5kZXggY2MxZTk5OC4uNGE3YWQ4YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaWRsCisrKyBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbApAQCAtNjIs
OSArNjIsMTMgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIAogICAgICAgICAvLyB2b2lkIHNlbmQoKTsKLSAgICAgICAgLy8gdm9pZCBzZW5kKGluIERP
TVN0cmluZyBkYXRhKTsKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCisgICAgICAgIHZv
aWQgc2VuZChpbiBET01TdHJpbmcgZGF0YSkKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRp
b24pOworI2Vsc2UKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZW5kKGluIERvY3VtZW50IGRhdGEp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgogCiAgICAgICAgIHZv
aWQgYWJvcnQoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNl
cHRpb24uaWRsIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCmluZGV4
IDJmZWI1NzQuLjRiMGZkMWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uLmlkbAorKysgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5p
ZGwKQEAgLTM2LDcgKzM2LDcgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZv
cm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwgYi9XZWJDb3JlL3htbC9Y
UGF0aEV4Y2VwdGlvbi5pZGwKaW5kZXggNmUyNTUxNC4uMDZlNWU4OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCisrKyBiL1dlYkNvcmUveG1sL1hQYXRoRXhjZXB0
aW9uLmlkbApAQCAtMzcsNyArMzcsNyBAQCBtb2R1bGUgeHBhdGggewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChM
QU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0
aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwppbmRleCAxZmY4ODdiLi5mNTJmZmQ5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtNCw2ICs0LDQ4IEBACiAKICAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CiAKKzIwMDgtMDktMTIgIGxrY2wgIDxsa2Ns
QGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90
aWZpY2F0aW9uKToKKyAgICAgICAgKiB3ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaDogQWRkZWQu
CisgICAgICAgICogd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaDogQWRkZWQuCisgICAgICAg
ICogd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJraXQvZ2RvbS5oOiBBZGRlZC4gIFRoaXMgZmlsZSBwdWxscyBpbiBhbGwgb2YgdGhlIGdk
b20gZ2xpYiBoZWFkZXJzLiAgaXQncyB0aGVyZSBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGJlIGxh
enkgYW5kIG5vdCBoYXZlIHRvICNpbmNsdWRlIDMwMCBmaWxlcy4KKyAgICAgICAgKiB3ZWJraXQv
d2Via2l0ZGVmaW5lcy5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRldmVudC5jcHA6IEFkZGVk
LgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X2ZpbmFsaXplKToK
KyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9jbGFzc19pbml0KToK
KyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9pbml0KToKKyAgICAg
ICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9uZXcpOgorICAgICAgICAoX1dl
YktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X2dldF9ldmVudF90eXBlKToKKyAgICAgICAg
KF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9jYW5jZWxfYnViYmxlKToKKyAgICAg
ICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9wcmV2ZW50X2RlZmF1bHQpOgor
ICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X3N0b3BfcHJvcGFnYXRp
b24pOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpjcmVhdGUpOgorICAg
ICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpzZXRfdHlwZSk6CisgICAgICAgIChY
TUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OlhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6On5YTUxIdHRwUmVxdWVzdEV2
ZW50TGlzdGVuZXIpOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpoYW5k
bGVFdmVudCk6CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAg
KE5vZGVFdmVudExpc3RlbmVyOjpzZXRfdHlwZSk6CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5l
cjo6Tm9kZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6On5Ob2Rl
RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQp
OgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdpbmRv
d0V2ZW50TGlzdGVuZXI6OnNldF90eXBlKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6
OldpbmRvd0V2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6fldp
bmRvd0V2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6aGFuZGxl
RXZlbnQpOgorICAgICAgICAoYWRkX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIpOgor
ICAgICAgICAoYWRkX2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAgKGFkZF93aW5kb3dfZXZlbnRf
bGlzdGVuZXIpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRldmVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOiBhZGRlZCBicm93c2VyLWV2ZW50LCBzdXBw
b3J0IGZvciBYTUxIdHRwUmVxdWVzdCwgZ2V0dGluZyBET00gV2luZG93LCBET00gRG9jdW1lbnQs
IGFuZCBXaW5kb3cgZXZlbnQgbGlzdGVuZXIuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmg6CisKIDIwMDgtMDktMTAgIEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggMDM3NTQyOC4uNWI5Yjk4YiAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAKQEAgLTIxNiw2ICsyMTYsOCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpwb3N0UHJvZ3Jl
c3NTdGFydGVkTm90aWZpY2F0aW9uKCkKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6cG9zdFBy
b2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKCkKIHsKKyAgICBpZiAoIW1fZnJhbWUp
IC8qIGJ1ZyMyMDQwMyAtIGhhY2shIHNob3VsZG4ndCBiZSBoZXJlISAgd2UndmUgYmVlbiBkZWxl
dGVkISAqLworICAgICAgICByZXR1cm47CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdl
dFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7CiAgICAgUGFnZSogY29yZVBhZ2UgPSBjb3JlKHdlYlZp
ZXcpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5o
IGIvV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi41ZDg4NzdhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0
ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2lmbmRlZiBHZG9tRXZlbnRU
YXJnZXROb2RlX2gKKyNkZWZpbmUgR2RvbUV2ZW50VGFyZ2V0Tm9kZV9oCisjaW5jbHVkZSAiZ2xp
Yi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lO
X0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIEdkb21FdmVudFRh
cmdldE5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIEdkb21F
dmVudFRhcmdldE5vZGVDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05P
REUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSgpKQorI2RlZmlu
ZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50
VGFyZ2V0Tm9kZSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3Mp
ICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RB
UkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorI2RlZmluZSBHRE9NX0lTX0VW
RU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUo
KG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkpCisjZGVmaW5lIEdET01fSVNfRVZF
TlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9U
QVJHRVRfTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRhcmdldE5vZGVDbGFz
cykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSBHZG9tRXZl
bnRUYXJnZXROb2RlUHJpdmF0ZTsKKworI2luY2x1ZGUgImdkb20vR2RvbU5vZGUuaCIKKworc3Ry
dWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7
CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBf
R2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFz
czsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5
cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5p
dF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeik7CisKK0dfRU5E
X0RFQ0xTCisKKyNlbmRpZiAvKiBkb21FdmVudFRhcmdldE5vZGVfaCAqLworCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaCBiL1dlYktpdC9n
dGsvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmYyYWYxYjEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL2dk
b20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaApAQCAtMCwwICsxLDIwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaWZuZGVmIFByaXZh
dGVHZG9tRXZlbnRUYXJnZXROb2RlX2gKKyNkZWZpbmUgUHJpdmF0ZUdkb21FdmVudFRhcmdldE5v
ZGVfaAorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlR2Rv
bU5vZGUuaCIKK2NsYXNzIFdlYkNvcmU6Ok5vZGU7CisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZl
bnRUYXJnZXROb2RlIEdkb21FdmVudFRhcmdldE5vZGU7CisKK1dFQktJVF9BUEkgV2ViQ29yZTo6
Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21FdmVudFRhcmdl
dE5vZGUgKnJlcXVlc3QpOworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9nZG9t
L1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0LmggYi9XZWJLaXQvZ3RrL2dkb20vUHJpdmF0ZUludEdk
b21ET01PYmplY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmVmYjRl
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2d0ay9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2Jq
ZWN0LmgKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtl
bm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBw
bGUgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L2dkb20vUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5vZGUuaCBiL1dlYktpdC9ndGsvZ2RvbS9Q
cml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjYxZWY3MjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL2dkb20vUHJp
dmF0ZUludEdkb21FdmVudFRhcmdldE5vZGUuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNp
Zm5kZWYgUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5vZGVfaAorI2RlZmluZSBQcml2YXRlSW50
R2RvbUV2ZW50VGFyZ2V0Tm9kZV9oCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRl
ICJnZG9tL1ByaXZhdGVJbnRHZG9tTm9kZS5oIgorR19CRUdJTl9ERUNMUworCitjbGFzcyBHRE9N
RXZlbnRUYXJnZXROb2RlIDogcHVibGljIEdET01Ob2RlIHsKKworcHVibGljOgorICAgIEdET01F
dmVudFRhcmdldE5vZGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpOb2RlPiBpbXBsKSA6IEdET01Ob2Rl
KGltcGwpIHt9CisgICAgaW50IGdldF9nb2JqX3R5cGUoKSB7IHJldHVybiBHRE9NX1RZUEVfRVZF
TlRfVEFSR0VUX05PREU7IH0KK307CisKKworR19FTkRfREVDTFMKKyNlbmRpZgorCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL2dkb20vZ2RvbS5oIGIvV2ViS2l0L2d0ay9nZG9tL2dkb20uaAppbmRl
eCA1ZjJmMmY0Li4wYWNlYzNkIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCisr
KyBiL1dlYktpdC9ndGsvZ2RvbS9nZG9tLmgKQEAgLTEsMyArMSwxNjAgQEAKICNpbmNsdWRlIDxn
ZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaD4KICNpbmNsdWRlIDxnZG9tL0dkb21ET01PYmplY3Qu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21BdHRyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQmFySW5m
by5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNhbnZhc0dyYWRpZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tQ2FudmFzUGF0dGVybi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNhbnZhc1BpeGVsQXJy
YXkuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21DREFUQVNlY3Rpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DaGFy
YWN0ZXJEYXRhLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2xpcGJvYXJkLmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tQ29tbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNvbnNvbGUuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21Db3VudGVyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTQ2hhcnNldFJ1
bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NGb250RmFjZVJ1bGUuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21DU1NJbXBvcnRSdWxlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTTWVkaWFSdWxl
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTUGFnZVJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21DU1NQcmltaXRpdmVWYWx1ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1J1bGUuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21DU1NSdWxlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1N0
eWxlRGVjbGFyYXRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NTdHlsZVJ1bGUuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21DU1NTdHlsZVNoZWV0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NT
VmFsdWUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NWYWx1ZUxpc3QuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNT
U1ZhcmlhYmxlc1J1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21EYXRhYmFzZS5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbURvY3VtZW50RnJhZ21lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Eb2N1
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURvY3VtZW50VHlwZS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01Db3Jl
RXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9NSW1wbGVtZW50YXRpb24uaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21ET01QYXJzZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01TZWxl
Y3Rpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRW50aXR5Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tRW50aXR5UmVmZXJlbmNlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRFeGNl
cHRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUZpbGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21GaWxlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhpc3RvcnkuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTEFyZWFFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxCb2R5RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxCUkVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MQnV0dG9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUhUTUxDYW52YXNFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTENvbGxlY3Rpb24u
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxEaXZFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTERMaXN0
RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxEb2N1bWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEVtYmVkRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
Rm9ybUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxIZWFkRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIZWFkaW5nRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21IVE1MSHRtbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSUZyYW1l
RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21IVE1MSW5wdXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRN
TElzSW5kZXhFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tSFRNTExJRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxMaW5rRWxlbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxNYXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1lbnVF
bGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT2Jq
ZWN0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTE9wdGlvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21IVE1MUHJlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxTZWxlY3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFN0eWxl
RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRh
YmxlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
VGl0bGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUltYWdlRGF0YS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUphdmFT
Y3JpcHRDYWxsRnJhbWUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21LZXlib2FyZEV2ZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tTG9jYXRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NZWRpYUxp
c3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NZXNzYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21NaW1lVHlwZUFycmF5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTWltZVR5cGUuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21Nb3VzZUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTXV0YXRp
b25FdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5hbWVkTm9kZU1hcC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbU5hdmlnYXRvci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vZGVGaWx0ZXIuaD4K
ICNpbmNsdWRlIDxnZG9tL0dkb21Ob2RlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZUl0ZXJh
dG9yLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZUxpc3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21Ob3RhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU92ZXJmbG93RXZlbnQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21QbHVnaW5BcnJheS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVBsdWdpbi5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbVByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21SYW5nZUV4Y2Vw
dGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVJhbmdlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
UmVjdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVNjcmVlbi5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bVNRTEVycm9yLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMUmVzdWx0U2V0Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVNR
TFRyYW5zYWN0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU3RvcmFnZUV2ZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tU3RvcmFnZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVN0eWxlU2hlZXQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbVRleHRFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVRleHQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21UcmVlV2Fsa2VyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVUlFdmVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XaGVlbEV2ZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21YTUxIdHRwUmVxdWVzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2Fk
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWE1MU2VyaWFsaXplci5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbVhQYXRoRXZhbHVhdG9yLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhFeGNlcHRpb24u
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YUGF0aEV4cHJlc3Npb24uaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21YUGF0aE5TUmVzb2x2ZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YUGF0aFJlc3VsdC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbVhTTFRQcm9jZXNzb3IuaD4KZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC9FdmVu
dExpc3RlbmVyTm9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhZmRi
NTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9k
ZS5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEV2ZW50TGlzdGVu
ZXJOb2RlX2gKKyNkZWZpbmUgRXZlbnRMaXN0ZW5lck5vZGVfaAorCisjaW5jbHVkZSA8Z2xpYi5o
PgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKworI2luY2x1ZGUgImdkb20v
R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisvKiBUT0RPOiByZXR1cm4gdGhlIGFjdHVhbCBldmVu
dCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCByZXF1aXJlcworICogYSBnbGliIHdyYXBwZXIgb2Jq
ZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RPOiBwcm92aWRlIGEgJ3JlbW92ZV9ldmVudF9saXN0
ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGliCisgKiBvYmplY3QgYXMgYW4gYXJndW1lbnQgKi8K
K2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQorZ2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdk
b21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1cmUpOworfQorCisjZW5kaWYgLypFdmVudExp
c3RlbmVyTm9kZV9oKi8KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVu
ZXJXaW5kb3cuaCBiL1dlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjU0NzQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lcldpbmRvdy5oCkBAIC0wLDAgKzEsMzIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRv
biA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEV2ZW50TGlzdGVuZXJXaW5kb3dfaAorI2RlZmlu
ZSBFdmVudExpc3RlbmVyV2luZG93X2gKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKK2V4dGVybiAiQyIgeworLyogVE9ETzogbWFrZSBh
IEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0byBiZSByZXR1cm5lZCBoZXJlICovCit9CisKKyNl
bmRpZiAvKkV2ZW50TGlzdGVuZXJXaW5kb3dfaCovCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dl
YmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaCBiL1dlYktpdC9ndGsvd2Via2l0L0V2
ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmU5ZTQwYzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC9FdmVu
dExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KworI2lmbmRlZiBFdmVudExpc3RlbmVyWG1sSHR0cFJlcXVlc3RfaAorI2RlZmluZSBFdmVudExp
c3RlbmVyWG1sSHR0cFJlcXVlc3RfaAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKworI2luY2x1ZGUgImdkb20vR2RvbVhNTEh0dHBSZXF1
ZXN0LmgiCisKKy8qIFRPRE86IHJldHVybiB0aGUgYWN0dWFsIGV2ZW50IGxpc3RlbmVyIGNyZWF0
ZWQsIHdoaWNoIHJlcXVpcmVzCisgKiBhIGdsaWIgd3JhcHBlciBvYmplY3QgdG8gYmUgY3JlYXRl
ZC4KKyAqIFRPRE86IHByb3ZpZGUgYSAncmVtb3ZlX2V2ZW50X2xpc3RlbmVyJyB3aGljaCB0YWtl
cyB0aGF0IGdsaWIKKyAqIG9iamVjdCBhcyBhbiBhcmd1bWVudCAqLworZXh0ZXJuICJDIiB7CitX
RUJLSVRfQVBJCitnYm9vbGVhbiBhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9saXN0ZW5lcihH
ZG9tWE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7
Cit9CisKKyNlbmRpZiAvKkV2ZW50TGlzdGVuZXJYbWxIdHRwUmVxdWVzdF9oKi8KZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaCBiL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGRlZmluZXMuaAppbmRleCAzODZjM2UxLi40NTA4MTE2IDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZGVmaW5lcy5oCkBAIC00MCw2ICs0MCw5IEBACiAKIEdfQkVHSU5fREVDTFMKIAordHlwZWRl
ZiBzdHJ1Y3QgX1dlYktpdEV2ZW50IFdlYktpdEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dEV2ZW50Q2xhc3MgV2ViS2l0RXZlbnRDbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5l
dHdvcmtSZXF1ZXN0IFdlYktpdE5ldHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dE5ldHdvcmtSZXF1ZXN0Q2xhc3MgV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmUwOGM3NDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJldmVudC5jcHAKQEAgLTAsMCArMSwyMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcg
SG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtl
bm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiQ1N0
cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisKKworI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKKyNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5n
cy5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0Lmgi
CisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVu
ZXJOb2RlLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiSFRNTERv
Y3VtZW50LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIK
KyNpbmNsdWRlICJHZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVk
ZSAiUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbUV2ZW50VGFy
Z2V0Tm9kZS5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIlBy
aXZhdGVHZG9tWE1MSHR0cFJlcXVlc3QuaCIKKworCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4K
KworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAg
IGdwb2ludGVyIHRvR0RPTShFdmVudCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRU
YXJnZXROb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3QqIG5v
ZGUpOworfQorCisKK2NsYXNzIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBF
dmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxYTUxIdHRwUmVx
dWVzdEV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9tWE1MSHR0cFJlcXVlc3QqIHdmKQorICAgIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIod2YpKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgdXNlQ2FwdHVyZSk7CisK
KyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0cmR1
cChldnR5cGUpOyB9CisgICAgcHJpdmF0ZToKKyAgICBjaGFyICptX3R5cGU7CisgICAgWE1MSHR0
cFJlcXVlc3RFdmVudExpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCogd2YpCisgICAgICAgICAg
IDogbV93Zih3ZikKKyAgICAgICAgICAgLCBtX3R5cGUoTlVMTCkKKyAgICB7fQorICAgIH5YTUxI
dHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAg
ICAgICAgICAgIGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBHZG9tWE1MSHR0cFJlcXVlc3Qq
IG1fd2Y7Cit9OworCit2b2lkIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZl
bnQoRXZlbnQqIGV2ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFs
OworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMi
LCBtX3R5cGUpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dE
T00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgZXZuYW1lLCB3ZXYs
IHVzZUNhcHR1cmUsICZyZXR2YWwpOworICAgIGdfZnJlZShldm5hbWUpOworfQorCitjbGFzcyBO
b2RlRXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxOb2RlRXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21FdmVudFRhcmdl
dE5vZGUqIHdmKQorICAgIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOb2RlRXZlbnRMaXN0ZW5lcih3
ZikpOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCB1c2VDYXB0
dXJlKTsKKworICAgIHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlwZSA9
IGdfc3RyZHVwKGV2dHlwZSk7IH0KK3ByaXZhdGU6CisgICAgY2hhciAqbV90eXBlOworICAgIE5v
ZGVFdmVudExpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUqIHdmKQorICAgICAgICAgICAgOiBt
X3dmKHdmKQorICAgICAgICAgICAgLCBtX3R5cGUoTlVMTCkKKyAgICB7fQorICAgIH5Ob2RlRXZl
bnRMaXN0ZW5lcigpCisgICAgeworICAgICAgICBpZiAobV90eXBlKQorICAgICAgICAgICAgZ19m
cmVlKG1fdHlwZSk7CisgICAgfQorICAgIEdkb21FdmVudFRhcmdldE5vZGUqIG1fd2Y7Cit9Owor
Cit2b2lkIE5vZGVFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wg
dXNlQ2FwdHVyZSkKK3sKKyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgY2hhciAqZXZuYW1lID0g
Z19zdHJkdXBfcHJpbnRmKCJicm93c2VyLWV2ZW50OjolcyIsIG1fdHlwZSk7CisgICAgR2RvbUV2
ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYkNvcmU6OnRvR0RPTShldmVudCkpOworICAgIGdfc2ln
bmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5hbWUsIHdldiwgdXNlQ2FwdHVyZSwgJnJldHZhbCk7
CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9CisKK2NsYXNzIFdpbmRvd0V2ZW50TGlzdGVuZXIgOiBw
dWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2lu
ZG93RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFdlYktpdFdlYkZyYW1lKiB3ZikKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2luZG93RXZlbnRMaXN0ZW5lcih3ZikpOyAKKyAgICB9
CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCBpc1dpbmRvd0V2ZW50
KTsKKyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0
cmR1cChldnR5cGUpOyB9Citwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsKKyAgICBXaW5kb3dF
dmVudExpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3ZikKKyAgICAgICAgICAgOiBtX3dmKHdmKQor
ICAgICAgICAgICAsIG1fdHlwZShOVUxMKQorICAgIHt9CisgICAgfldpbmRvd0V2ZW50TGlzdGVu
ZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAgICAgICAgICAgIGdfZnJlZShtX3R5
cGUpOworICAgIH0KKyAgICBXZWJLaXRXZWJGcmFtZSogbV93ZjsKK307CisKK3ZvaWQgV2luZG93
RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZl
bnQpCit7CisgICAgY2hhciAqZXZuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCJicm93c2VyLWV2ZW50
OjolcyIsIG1fdHlwZSk7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIEdkb21FdmVudCAqd2V2
ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUobV93ZiwgZXZuYW1lLCB3ZXYsIGlzV2luZG93RXZlbnQsICZyZXR2YWwpOworICAg
IGdfZnJlZShldm5hbWUpOworfQorCitleHRlcm4gIkMiIHsKKworZ2Jvb2xlYW4gYWRkX3htbF9o
dHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0ICp3ZiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQoreworICAgIFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0ICpyZXEgPSBnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0X3ByaXZhdGUo
d2YpOworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIGlmICghcmVx
KQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBpZiAoc3RyY21wKG5hbWUsICJvbnJlYWR5
c3RhdGVjaGFuZ2UiKSA9PSAwKQorICAgIHsKKyAgICAgICAgUmVmUHRyPFhNTEh0dHBSZXF1ZXN0
RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXI7CisgICAgICAgIGxpc3RlbmVyID0gWE1MSHR0cFJlcXVl
c3RFdmVudExpc3RlbmVyOjpjcmVhdGUod2YpOworICAgICAgICBsaXN0ZW5lci0+c2V0X3R5cGUo
bmFtZSk7CisgICAgICAgIHJlcS0+c2V0T25SZWFkeVN0YXRlQ2hhbmdlTGlzdGVuZXIobGlzdGVu
ZXIpOworICAgICAgICByZXR1cm4gVFJVRTsKKyAgICB9CisgICAgcmV0dXJuIEZBTFNFOworfSAK
KworZ2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBj
b25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVz
ZUNhcHR1cmUpCit7CisgICAgV2ViQ29yZTo6Tm9kZSAqbm9kZSA9IGdkb21fZXZlbnRfdGFyZ2V0
X25vZGVfZ2V0X3ByaXZhdGUod2YpOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNFdmVudFRh
cmdldE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIFdlYkNvcmU6OkV2ZW50VGFy
Z2V0Tm9kZSAqIGV0biA9IChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKj4o
bm9kZSkpLT50b05vZGUoKTsKKyAgICBpZiAoIWV0bikKKyAgICAgICAgcmV0dXJuIEZBTFNFOwor
CisgICAgUmVmUHRyPE5vZGVFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IE5vZGVFdmVudExpc3Rl
bmVyOjpjcmVhdGUod2YpOworICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICBldG4t
PmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOworCisgICAgcmV0
dXJuIFRSVUU7CisKK30gCisKK2dib29sZWFuIGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2Vi
S2l0V2ViRnJhbWUgKndmLCBGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1l
LT5kb2N1bWVudCgpOworCisgICAgUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVuZXI+IGxpc3RlbmVy
ID0gV2luZG93RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBsaXN0ZW5lci0+c2V0X3R5
cGUobmFtZSk7CisgICAgZG9jLT5hZGRXaW5kb3dFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVy
LCB0cnVlKTsKKworICAgIHJldHVybiBUUlVFOworCit9IAorCit9IC8qIGV4dGVybiBDICovCmRp
ZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAgYi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKaW5kZXggYzk1NjYyNi4uNjI5MTU4OCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCisrKyBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtMSwxMSArMSwxMyBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
ICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Q2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AaW1lbmRpby5jb20+CiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQ29sbGFib3JhIEx0ZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgog
ICoKKyAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC0zMCwxOCArMzIsMjkgQEAKICNpbmNs
dWRlICJ3ZWJraXRwcml2YXRlLmgiCiAKICNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAi
RXZlbnRMaXN0ZW5lcldpbmRvdy5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJHZG9tRE9NV2luZG93LmgiCisjaW5jbHVkZSAi
R2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiR0RPTU9i
amVjdC5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdC5oIgogI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIkhUTUxG
cmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUg
IkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCisjaW5jbHVkZSAiUHJp
dmF0ZUdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIlByaXZhdGVHZG9tRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJQcml2YXRlR2RvbURPTVdpbmRvdy5oIgogI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlRleHREb2N1
bWVudC5oIgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogCkBAIC00OSw2
ICs2MiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3Bv
aW50ZXIgdG9HRE9NKERPTVdpbmRvdyogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oRG9jdW1l
bnQqIGRvYyk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0KiBvYmopOworfQor
CiBleHRlcm4gIkMiIHsKIAogZW51bSB7CkBAIC01Nyw2ICs3Niw3IEBAIGVudW0gewogICAgIExP
QURfRE9ORSwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhPVkVSSU5HX09WRVJfTElOSywKKyAg
ICBCUk9XU0VSX0VWRU5ULAogICAgIExBU1RfU0lHTkFMCiB9OwogCkBAIC0xNjIsNiArMTgyLDE3
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdChXZWJLaXRXZWJGcmFt
ZUNsYXNzKiBmcmFtZUNsYXNzKQogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAg
ICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtpdF93ZWJfZnJh
bWVfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIs
CisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAg
IChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVEKSwKKyAgICAgICAgICAg
IDAsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdl
YmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICAgICAgR19UWVBFX05P
TkUsIDIsCisgICAgICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKwog
ICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAq
LwpAQCAtMjk0LDYgKzMyNSw5MiBAQCBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF93ZWJfdmlldyhXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiB9CiAKIC8qKgorICogd2Via2l0X3dl
Yl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJh
bWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhbiBYTUxIdHRwUmVxdWVz
dAorICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tWE1MSHR0cFJlcXVlc3QKKyAqLworR2RvbVhN
TEh0dHBSZXF1ZXN0KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0KFdlYktp
dFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSog
cHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUp
OworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIHJldHVybiBHRE9NX1hNTF9IVFRQX1JFUVVF
U1QoV2ViQ29yZTo6dG9HRE9NKFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoY29yZUZyYW1lLT5kb2N1
bWVudCgpKS5nZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93
aW5kb3c6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJucyBhIEdk
b20gd3JhcHBlciBhcm91bmQgYSBET01XaW5kb3cKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgR2Rv
bURPTVdpbmRvdworICovCitHZG9tRE9NV2luZG93KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21f
d2luZG93KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZy
YW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIFBhc3NSZWZQdHI8RE9N
V2luZG93PiB3aW4gPSBjb3JlRnJhbWUtPmRvbVdpbmRvdygpOworICAgIHJldHVybiBHRE9NX0RP
TV9XSU5ET1coV2ViQ29yZTo6dG9HRE9NKHdpbi5nZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtp
dF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJh
bWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAorICoK
KyAqIFJldHVybiB2YWx1ZTogYSBHZG9tRG9jdW1lbnQKKyAqLworR2RvbURvY3VtZW50KiB3ZWJr
aXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQorewor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxM
KTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisK
KyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFt
ZSk7CisgICAgcmV0dXJuIEdET01fRE9DVU1FTlQoV2ViQ29yZTo6dG9HRE9NKGNvcmVGcmFtZS0+
ZG9jdW1lbnQoKSkpOworfQorCisvKiBYWFggVE9ETzogbWFrZSB0aGlzIG5vdCB0YWtlIGZyYW1l
KiBhcyBhbiBhcmd1bWVudCwKKyAqIGFuZCBtYWtlIGl0IHJldHVybiBhIEdkb21FdmVudExpc3Rl
bmVyIGNsYXNzICovCitleHRlcm4gIkMiIHsKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2FkZF93aW5k
b3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmLCBGcmFtZSAqZnJhbWUsIGNvbnN0
IGNoYXIgKm5hbWUpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xp
c3RlbmVyOgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIGFkZHMgYW4gZXZl
bnQgbGlzdGVuZXIgdG8gdGhlIGZyYW1lJ3MgZG9jdW1lbnQKKyAqCisgKiBSZXR1cm4gdmFsdWU6
IHRoZSBuYW1lIG9mIEBmcmFtZQorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9l
dmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogZXZlbnRfdHlwZSkKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgRkFMU0Up
OworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKwor
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1l
KTsKKworICAgIHJldHVybiBhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKGZyYW1lLCBjb3JlRnJh
bWUsIGV2ZW50X3R5cGUpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6
CiAgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCiAgKgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmgKaW5kZXggNGQ5ZThkYy4uZjVlNTljZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFu
cyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsNiArMjcsOSBA
QAogCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQv
d2Via2l0bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Eb2N1bWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbURPTVdpbmRvdy5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0
dHBSZXF1ZXN0Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNjEsNiArNjUsMTUgQEAgd2Via2l0
X3dlYl9mcmFtZV9nZXRfdHlwZSAgICAgICAgICAgKHZvaWQpOwogV0VCS0lUX0FQSSBXZWJLaXRX
ZWJGcmFtZSAqCiB3ZWJraXRfd2ViX2ZyYW1lX25ldyAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgKndlYl92aWV3KTsKIAorV0VCS0lUX0FQSSBHZG9tWE1MSHR0cFJlcXVlc3Qg
Kgord2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdCAgICAgICAoV2ViS2l0V2Vi
RnJhbWUgICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRE9NV2luZG93ICoKK3dlYmtp
dF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3cgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpm
cmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbURvY3VtZW50ICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0
X2RvbV9kb2N1bWVudCAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKwogV0VC
S0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3ICAg
ICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwogCkBAIC05Myw2ICsxMDYsMTAgQEAg
d2Via2l0X3dlYl9mcmFtZV9maW5kX2ZyYW1lICAgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAg
ICpmcmFtZSwKIFdFQktJVF9BUEkgSlNHbG9iYWxDb250ZXh0UmVmCiB3ZWJraXRfd2ViX2ZyYW1l
X2dldF9nbG9iYWxfY29udGV4dCAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAorV0VC
S0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGdjaGFyICAgICAgICAgICpuYW1lKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cK
aW5kZXggY2Y0MzJjMi4uMGY4MWFmOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtNiw2ICs2LDE4IEBACiAgICAgICAgICh3
YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZCk6CiAgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L09iakNQbHVnaW4ubToKIAorMjAwOC0wOS0xMiAgbGtjbCAgPGxrY2xAbGtjbC5uZXQ+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogYWRkZWQgLUkgaW5jbHVkZXMgdG8gZ3RrIHdlYmtpdCBzdWJkaXJlY3RvcmllcworCisg
ICAgICAgIEdkb20gZ2xpYiBET00gYmluZGluZ3MgaGF2ZSB0aGVpciBoZWFkZXIgZmlsZXMgY29u
dGFpbmluZworICAgICAgICAjaW5jbHVkZSAiZ2RvbSoiIHdoZXJlICNpbmNsdWRlIDx3ZWJraXQv
Z2RvbSo+IGlzIG5vdAorICAgICAgICBwb3NzaWJsZSwgYXMgdGhlIGdkb20qIHNvdXJjZSBhbmQg
aGVhZGVyIGZpbGVzIGFyZSBhdXRvLWdlbmVyYXRlZAorICAgICAgICBpbnRvIERlcml2ZWRTb3Vy
Y2VzLyBub3QgRGVyaXZlZFNvdXJjZXMvd2Via2l0LCBmb2xsb3dpbmcgdGhlCisgICAgICAgIGV4
YW1wbGUgb2YgdGhlIEpTIERlcml2ZWQgU291cmNlcy4KKwogMjAwOC0wOS0wOCAgRGFuIEJlcm5z
dGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23535</attachid>
            <date>2008-09-18 13:42:48 -0700</date>
            <delta_ts>2008-09-25 12:02:48 -0700</delta_ts>
            <desc>updated massively-reduced functionality patch</desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>77405</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNjQ1OSkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtODUsNyArODYsOCBAQAogIyBDb252ZW5pZW5jZSBsaWJyYXJpZXMKIG5vaW5zdF9MVExJQlJB
UklFUyA9IFwKIAlsaWJKYXZhU2NyaXB0Q29yZS5sYSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYldl
YkNvcmUubGEgXAorCWxpYmdkb20ubGEKIAogIwogIyBKYXZhU2NyaXB0Q29yZQpAQCAtMTAxLDcg
KzEwMyw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMg
XAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3d0ZiBcCiAJLUkkKHNyY2RpcikvSmF2YVNj
cmlwdENvcmUva2pzIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCS1JJCh0
b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3Jl
L2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1
ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5
b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTE1Miw2ICsxNTUsMTAgQEAKIHdlYmNvcmVndGtfY3BwZmxh
Z3MgOj0KIHdlYmNvcmVndGtfc291cmNlcyA6PQogCit3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9IFwK
KwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9nZG9tIFwKKwktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrL2dkb20KKwogbm9kaXN0X2xpYldlYkNvcmVfbGFfU09VUkNFUyA9IFwKIAkkKHdl
YmNvcmVfYnVpbHRfc291cmNlcykKIApAQCAtMjE4LDYgKzIyNSw1NSBAQAogCSQoSlBFR19MSUJT
KSBcCiAJLWxwdGhyZWFkCiAKKyMgbGliZ2RvbQorbGliZ2RvbV9idWlsdF9zb3VyY2VzIDo9Cits
aWJnZG9tX3NvdXJjZXMgOj0KK2xpYmdkb21faF9hcGkgOj0KK2xpYmdkb21fY3BwZmxhZ3MgOj0K
K2xpYmdkb21fbGFkaXIgPSAkKHByZWZpeCkvaW5jbHVkZS93ZWJraXQtMS4wL2dkb20KK2xpYmdk
b21fbGFfSEVBREVSUyA9IFwKKyAgICAgICAgJChsaWJnZG9tX2hfYXBpKSBcCisJCSQoc3JjZGly
KS9XZWJLaXQvZ3RrL2dkb20vZ2RvbS5oIAorCitsaWJnZG9tX2NwcGZsYWdzICs9IFwKKwkkKGds
b2JhbF9jcHBmbGFncykgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAorCS1JJCh0b3BfYnVp
bGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9nZG9tIFwKKwkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrL2dkb20gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRT
b3VyY2VzL2dkb20gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisKK2xpYmdk
b21fbGFfU09VUkNFUyA9IFwKKwkkKGxpYmdkb21fc291cmNlcykgCisKK25vZGlzdF9saWJnZG9t
X2xhX1NPVVJDRVMgPSBcCisJJChsaWJnZG9tX2J1aWx0X3NvdXJjZXMpIAorCitsaWJnZG9tX2xh
X0NQUEZMQUdTID0gXAorCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCisJJCh3ZWJjb3JlX2NwcGZsYWdz
KSBcCisJJChHTE9CQUxERVBTX0NGTEFHUykgXAorCSQoV0VCS0lUREVQU19DRkxBR1MpIFwKKwkk
KGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCisJJChsaWJnZG9tX2NwcGZsYWdzKSAKKworbGli
Z2RvbV9sYV9MSUJBREQgPSBcCisJbGliV2ViQ29yZS5sYSBcCisJJChHTE9CQUxERVBTX0xJQlMp
IFwKKwkkKFdFQktJVERFUFNfTElCUykgXAorCSQoWFRfTElCUykgXAorCSQoTElCQ1VSTF9MSUJT
KSBcCisJJChMSUJTT1VQX0xJQlMpIFwKKwkkKEZSRUVUWVBFX0xJQlMpIFwKKwkkKFVOSUNPREVf
TElCUykgXAorCSQoU1FMSVRFM19MSUJTKSBcCisJJChHU1RSRUFNRVJfTElCUykgXAorCSQoTElC
WFNMVF9MSUJTKSBcCisJJChISUxET05fTElCUykgXAorCSQoSlBFR19MSUJTKSBcCisJLWxwdGhy
ZWFkCisKICMgV2ViS2l0CiB3ZWJraXRndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9
CkBAIC0yMzIsNiArMjg4LDcgQEAKIGxpYndlYmtpdF8xXzBfbGFkaXIgPSAkKHByZWZpeCkvaW5j
bHVkZS93ZWJraXQtMS4wL3dlYmtpdAogbGlid2Via2l0XzFfMF9sYV9IRUFERVJTID0gXAogCSQo
d2Via2l0Z3RrX2hfYXBpKSBcCisJJChsaWJnZG9tX2hfYXBpKSBcCiAJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZW51bXR5cGVzLmgKIAogbGlid2Via2l0XzFfMF9sYV9TT1VSQ0VTID0gXApAQCAt
MjU0LDcgKzMxMSw3IEBACiAJJChub191bmRlZmluZWQpCiAKIGxpYndlYmtpdF8xXzBfbGFfTElC
QUREID0gXAotCWxpYldlYkNvcmUubGEKKwlsaWJnZG9tLmxhIAogCiAjCiAjIEV4dHJhIGNoZWNr
cyBhbmQgZmxhZ3MKQEAgLTMwNSw2ICszNjIsMTQgQEAKIHdlYmNvcmVfbGliYWRkICs9IC1sZ3N0
aW50ZXJmYWNlcy0wLjEwIC1sZ3N0dmlkZW8tMC4xMAogZW5kaWYKIAorCitXZWJLaXQvZ3RrL2dk
b20vZ2RvbS5oOgorIyBUT0RPOiBhdXRvLWdlbmVyYXRlIHRoaXMgZmlsZQorCitsaWJnZG9tX2hf
YXBpICs9IFwKKwkkKHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmgKKwogd2Via2l0Z3RrX2hfYXBpICs9IFwKIAlX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVm
aW5lcy5oIFwKQEAgLTM1Miw3ICs0MTcsOSBAQAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAog
CS1JJChzcmNkaXIpL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQgXAogCS1JJChzcmNkaXIpL1dl
YktpdC9ndGsvd2Via2l0IFwKLQktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdAor
CS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKKwktSSQodG9wX2J1aWxkZGly
KS9XZWJLaXQvZ3RrXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCiAKIHdlYmtp
dGd0a19jbGVhbmZpbGVzICs9IFwKIAkkKHRvcF9idWlsZGRpcikvUHJvZ3JhbXMvR3RrTGF1bmNo
ZXIgXApAQCAtNDY1LDYgKzUzMiw4IEBACiBCVUlMVF9TT1VSQ0VTID0gXAogCSQoamF2YXNjcmlw
dGNvcmVfYnVpbHRfc291cmNlcykgXAogCSQoamF2YXNjcmlwdGNvcmVfYnVpbHRfbm9zb3VyY2Vz
KSBcCisJJChsaWJnZG9tX2J1aWx0X3NvdXJjZXMpIFwKKwkkKGxpYmdkb21fYnVpbHRfbm9zb3Vy
Y2VzKSBcCiAJJCh3ZWJjb3JlX2J1aWx0X3NvdXJjZXMpIFwKIAkkKHdlYmNvcmVfYnVpbHRfbm9z
b3VyY2VzKSBcCiAJJCh3ZWJraXRndGtfYnVpbHRfc291cmNlcykgXApJbmRleDogV2ViS2l0L2d0
ay9HRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9HRE9NT2JqZWN0LmgJKHJl
dmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL0dET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29u
IExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fR0RPTU9iamVjdF9oX18KKyNkZWZp
bmUgX19HRE9NT2JqZWN0X2hfXworCitjbGFzcyBHRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5HRE9NT2JqZWN0KCkge30KKworICAgIC8qIHRoaXMgaXMgYW4gYWJzb2x1dGVseSBj
cml0aWNhbCBmdW5jdGlvbiB3aGljaCBhbGxvd3MKKyAgICAgKiB0aGUgdXNlIG9mIHRvR0RPTSgp
IHRvIGRlY2lkZSwgdGhyb3VnaCB0eXBlY2FzdGluZworICAgICAqIHdoaWNoIGdvYmplY3Qgc2hv
dWxkIGJlIHJldHVybmVkLiAgc2VlIEdET01CaW5kaW5nLmNwcCwKKyAgICAgKiBHRE9NSHRtbEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgYW5kIG90aGVyIHNpbWlsYXIKKyAgICAgKiBmaWxlcyBm
b3IgZXhhbXBsZXMuCisgICAgICovCisgICAgdmlydHVhbCBpbnQgZ2V0R29ialR5cGUoKSA9IDA7
Cit9OworCisjZW5kaWYKSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZu
ZGVmIEdkb21ET01PYmplY3RfaAorI2RlZmluZSBHZG9tRE9NT2JqZWN0X2gKKyNpbmNsdWRlICJn
bGliLW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVH
SU5fREVDTFMKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsK
K3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOwor
CisjZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdkb21fZG9tX29iamVj
dF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdk
b21ET01PYmplY3QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdk
b21ET01PYmplY3RDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVChvYmopICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVD
VCkpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdE
T01fRE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1Mo
KG9iaiksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkKKwordHlw
ZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIEdkb21ET01PYmplY3RQcml2YXRlOwor
CitzdHJ1Y3QgX0dkb21ET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwor
CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21ET01P
YmplY3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJ
VF9BUEkgR1R5cGUKK2dkb21fZG9tX29iamVjdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9B
UEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X2luaXRfZG9tX29iamVjdCAoR2RvbURPTU9iamVjdCAq
dGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBHZG9tRE9NT2JqZWN0X2ggKi8KKwoK
UHJvcGVydHkgY2hhbmdlcyBvbjogV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46bWVyZ2VpbmZvCgpJbmRleDogV2ViS2l0L2d0ay9nZG9tL0dTdHJp
bmdDb252ZXJ0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dTdHJpbmdDb252ZXJ0
LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR1N0cmluZ0NvbnZlcnQuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgR1N0cmlu
Z0NvbnZlcnRfaAorI2RlZmluZSBHU3RyaW5nQ29udmVydF9oCisKKy8qIGNvbnZlbmllbmNlIGMr
KyBjbGFzcyBmb3IgY29udmVydGluZyB2YXJpb3VzIGRpZmZlcmVudCB3ZWJraXQKKyAqIHN0cmlu
ZyB0eXBlcyBpbnRvIGEgdXRmOCBnbGliIHN0cmluZy4KKyAqLworCisjaW5jbHVkZSAiQXRvbWlj
U3RyaW5nLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgInVzdHJpbmcuaCIKKworaW5saW5lIGdj
aGFyICogR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNvbnN0JiBzKSB7IHJldHVybiBn
X3N0cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CitpbmxpbmUgZ2NoYXIgKiBHU3RyaW5nQ29udmVy
dChXZWJDb3JlOjpLVVJMIGNvbnN0JiBzKSB7IHJldHVybiBnX3N0cmR1cChzLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOyB9CitpbmxpbmUgZ2NoYXIgKiBHU3RyaW5nQ29udmVydChjb25zdCBKU0M6
OlVTdHJpbmcgJiBzKSB7IHJldHVybiBnX3N0cmR1cChzLlVURjhTdHJpbmcoKS5jX3N0cigpKTsg
fQoraW5saW5lIGdjaGFyICogR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6QXRvbWljU3RyaW5nIGNv
bnN0JnMpIHsgcmV0dXJuIGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7IH0KKwor
I2VuZGlmIC8qIEdTdHJpbmdDb252ZXJ0X2gqLwpJbmRleDogV2ViS2l0L2d0ay9nZG9tL2dkb20u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCShyZXZpc2lvbiAwKQorKysg
V2ViS2l0L2d0ay9nZG9tL2dkb20uaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACisjaW5j
bHVkZSA8Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9N
T2JqZWN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZS5oPgpJbmRleDogV2ViS2l0L2d0ay9n
ZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9t
L1ByaXZhdGVHZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20v
UHJpdmF0ZUdkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworCisjaWZuZGVmIFByaXZhdGVHZG9tRE9NT2JqZWN0X2gKKyNkZWZpbmUgUHJpdmF0ZUdkb21E
T01PYmplY3RfaAorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
RE9NT2JqZWN0LmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01PYmplY3Q7CitXRUJLSVRf
QVBJIEdET01PYmplY3QqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVj
dCAqcmVxdWVzdCk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2
YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QqIGl0ZW0pOworCitHX0VORF9E
RUNMUworI2VuZGlmCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9ndGsvZ2RvbS9Qcml2
YXRlR2RvbURPTU9iamVjdC5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptZXJnZWluZm8KCkluZGV4
OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDM2NDU5KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMiwxMyArMiwxOSBAQAogV2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQog
CiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZF
QVRVUkVfREVGSU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTIDo9
CiBIVE1MX0ZFQVRVUkVTIDo9CiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTIDo9ICQoV2Vi
Q29yZSkvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRT
IDo9ICQoV2ViQ29yZSkvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KIAorbGliZ2RvbV9jcHBmbGFn
cyArPSBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKKwktSSQodG9wX2J1
aWxkZGlyKS9EZXJpdmVkU291cmNlcworCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlIFwKIAktSSQoc3JjZGlyKS9X
ZWJDb3JlL2JpbmRpbmdzL2pzIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZSBcCkBAIC0y
Nyw2ICszMyw3IEBACiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybSBcCiAJLUkkKHNyY2Rp
cikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dk
b20gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogCS1J
JChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wIFwKIAktSSQoc3Jj
ZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZiBcCkBAIC0zNjcsNiArMzc0
LDExIEBACiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9Y
TUxOYW1lcy5oCiAKK2xpYmdkb21fYnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9Qcml2YXRlR2RvbU5vZGUuaCAKKwogSURMX0JJTkRJTkdTICs9
ICBcCiAJV2ViQ29yZS9jc3MvQ291bnRlci5pZGwgXAogCVdlYkNvcmUvY3NzL0NTU0NoYXJzZXRS
dWxlLmlkbCBcCkBAIC01MTcsNiArNTI5LDE0IEBACiAJV2ViQ29yZS94bWwvWE1MU2VyaWFsaXpl
ci5pZGwgXAogCVdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAKK2xpYmdkb21fc291cmNl
cyArPSBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcCBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
ZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3Qu
aCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmggXAorCVdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5jcHAgCisKIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9ranMvQWN0aXZhdGlvbi5o
IFwKIAlXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2tqcy9BcmdMaXN0LmggXApAQCAtMjI2Myw3
ICsyMjgzLDcgQEAKIAlEZXJpdmVkU291cmNlcy9KU1RpbWVSYW5nZXMuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9KU1RpbWVSYW5nZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNWb2lkQ2FsbGJhY2su
Y3BwIFwKLQlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oCisJRGVyaXZlZFNvdXJjZXMv
SlNWb2lkQ2FsbGJhY2suaCAKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2h0bWwvSFRN
TEF1ZGlvRWxlbWVudC5pZGwgXApAQCAtMzQyNCw2ICszNDQ0LDE1IEBACiAgICAgJChXZWJDb3Jl
KS94bWwgXAogICAgICQoV2ViQ29yZSkvcGx1Z2lucwogCisKKworRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9Qcml2YXRlR2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA7CisKK0Rlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA7CisK
K0Rlcml2ZWRTb3VyY2VzL2dkb20vR2RvbSUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1Mp
ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorCSQo
UEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0taW5jbHVkZSAkKFdlYkNvcmUpL2RvbSAtLWlu
Y2x1ZGUgJChXZWJDb3JlKS9odG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL2NzcyAtLWluY2x1ZGUg
JChXZWJDb3JlKS9wYWdlIC0taW5jbHVkZSAkKFdlYkNvcmUpL3htbCAtLWluY2x1ZGUgJChXZWJD
b3JlKS9zdmcgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU0dET00pIiAtLWRlZmluZXMgIiQoRkVB
VFVSRV9ERUZJTkVTX0dET00pIiAtLWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKIERlcml2ZWRTb3Vy
Y2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiBEZXJpdmVkU291cmNlcy9KUyUu
Y3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM0MzksNiArMzQ2OCw3IEBACiAJV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1aXJr
cy5jc3MgXAogCVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBcCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4NCBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3Jn
KQorICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBX
ZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworLy8gZ2NjIDMueCBjYW4ndCBoYW5kbGUgaW5jbHVkaW5nIHRoZSBIYXNoTWFw
IHBvaW50ZXIgc3BlY2lhbGl6YXRpb24gaW4gdGhpcyBmaWxlCisjaWYgZGVmaW5lZCBfX0dOVUNf
XyAmJiAhZGVmaW5lZCBfX0dMSUJDWFhfXyAvLyBsZXNzIHRoYW4gZ2NjIDMuNAorI2RlZmluZSBI
QVNIX01BUF9QVFJfU1BFQ19XT1JLQVJPVU5EIDEKKyNlbmRpZgorCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdk
b21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHZG9tTm9kZS5oIgorI2luY2x1ZGUgIlByaXZhdGVH
ZG9tRE9NT2JqZWN0LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworLyogVGhlIGZ1bmN0aW9uYWxpdHkgaW4gdGhpcyBmaWxlIG5lZWRz
IHRvIG1pcnJvciAtIGNvbmNlcHQtZm9yLWNvbmNlcHQsCisgKiBmb3IgZXhhY3RseSB0aGUgc2Ft
ZSByZWFzb25zLCB0aGF0IG9mIHRoZSBKU0RPTUJpbmRpbmdzLmNwcCBvbiB3aGljaCBpdAorICog
aXMgYmFzZWQuCisgKgorICogTWlzc2luZyBmcm9tIHRoaXMgY29kZSwgYXQgcHJlc2VudCwgaXMg
dHdvIHRoaW5nczoKKyAqIDEpIHBlci1kb2N1bWVudCBXcmFwcGVyIENhY2hlCisgKiAyKSAibWFy
aygpaW5nIi4KKyAqCisgKiBUaGVzZSB0d28gYml0cyBvZiBmdW5jdGlvbmFsaXR5IGFyZSBvZiBh
YnNvbHV0ZSBwYXJhbW91bnQgaW1wb3J0YW5jZQorICogdG8gcHJvdmlkZSBzdGFibGUgYW5kIHJl
bGlhYmxlIGJpbmRpbmdzLiAgc2VlCisgKiAgICAgaHR0cDovL2dpdGh1Yi5jb20vbGtjbC93ZWJr
aXQvd2lraXMvcmVxdWlyZW1lbnRzc3BlY2lmaWNhdGlvbgorICogZm9yIGRldGFpbHMsICJOb3Rp
ZmljYXRpb24gdG8gR2xpYiBiaW5kaW5ncyBvZiBkZXN0cnVjdGlvbiBvZiBvYmplY3RzIi4KKyAq
CisgKiBZZXMgLSB0aGUgT2JqZWN0aXZlQyBiaW5kaW5ncyBkbyBub3QgaGF2ZSB0aGlzIGFic29s
dXRlbHkgY3JpdGljYWwKKyAqIGZ1bmN0aW9uYWxpdHkuICBZZXMsIHRoZSBPYmplY3RpdmVDIGJp
bmRpbmdzIHdpbGwgc3VmZmVyIGZyb20gZXhhY3RseQorICogdGhlIHByb2JsZW0gZGVzY3JpYmVk
LCBhcyBldmlkZW5jZWQgYnkgYnVnICMyMDQwMy4KKyAqCisgKi8KK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRlcj4gRE9NT2JqZWN0TWFwOworLyog
SlNXcmFwcGVyQ2FjaGUgaXMgYWN0dWFsbHkgaW4gRG9jdW1lbnQuIEZvciBleGFjdGx5IHRoZSBz
YW1lIHJlYXNvbnMKKyAqIHRoYXQgSlNXcmFwcGVyQ2FjaGUgaXMgaW4gRG9jdW1lbnQsIEdkb21X
cmFwcGVyQ2FjaGUgYWxzbyBuZWVkcyB0byBiZQorICogaW4gRG9jdW1lbnQuCisgKi8KK3R5cGVk
ZWYgSGFzaE1hcDx2b2lkKiwgZ3BvaW50ZXI+IEdkb21XcmFwcGVyQ2FjaGU7CisKKworc3RhdGlj
IEdkb21XcmFwcGVyQ2FjaGUmIHdyYXBwZXJDYWNoZSgpCit7CisgICAgc3RhdGljIEdkb21XcmFw
cGVyQ2FjaGUgc3RhdGljR2RvbVdyYXBwZXJDYWNoZTsKKyAgICByZXR1cm4gc3RhdGljR2RvbVdy
YXBwZXJDYWNoZTsKK30KKworc3RhdGljIERPTU9iamVjdE1hcCYgZG9tT2JqZWN0cygpCit7Cisg
ICAgc3RhdGljIERPTU9iamVjdE1hcCBzdGF0aWNET01PYmplY3RzOworICAgIHJldHVybiBzdGF0
aWNET01PYmplY3RzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERP
TU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpCit7CisgICAgZ3BvaW50ZXIgcmV0ID0gZG9tT2Jq
ZWN0cygpLmdldChvYmplY3RIYW5kbGUpOworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVfZ2RvbV9vYmplY3QoR0RPTU9iamVjdCAqZG9iKQoreworICAgIC8qIGFs
bCBvZiB0aGUgd29yayBpbiBjcmVhdGluZyB0aGUgdG9HRE9NIGZ1bmN0aW9ucywKKyAgICAgKiB0
aGVuIGhhdmluZyBuZXcgR0RPTVh5eihzdGF0aWNfdHlwZWNhc3Q8WHl6Kj5vYmopLCAKKyAgICAg
KiB3aGVyZSBhbGwgR0RPTVh5eidzIGFyZSBkZXJpdmVkIGZyb20gdGhlIHB1cmUgdmlydHVhbAor
ICAgICAqIGNsYXNzLCBHRE9NT2JqZWN0LCBlbmRzIHVwIGhlcmUgLSB0byBjcmVhdGUgdGhlCisg
ICAgICogcmlnaHQgdHlwZSBvZiBnbGliIG9iamVjdC4KKyAgICAgKgorICAgICAqIHRoZXJlIGFy
ZSBubyBjb25zdHJ1Y3RvcnMgImdkb21feHl6X25ldygpIiAtIHRoZXJlIGlzCisgICAgICogX29u
bHlfIGNyZWF0ZV9nZG9tX29iamVjdCgpLiAgdGhhdCBtYWtlcyB0aGUgdG9HRE9NCisgICAgICog
ZnVuY3Rpb25zIHRoZSBvbmx5IHNhZmUgYW5kIHNhbmUgd2F5IHRvIGNyZWF0ZQorICAgICAqIGds
aWIgYmluZGluZ3Mgb2JqZWN0czsgaXQgbWVhbnMgdGhhdCB0aGUgb2JqZWN0CisgICAgICogY2Fj
aGUsIGFuIGFic29sdXRlbHkgY3JpdGljYWwgcGFydCBvZiB0aGUgZ2xpYgorICAgICAqIGJpbmRp
bmdzLCByZW1haW5zIGNvbnNpc3RlbnQuCisgICAgICovCisgICAgZ3BvaW50ZXIgcmVzID0gZ19v
YmplY3RfbmV3KGRvYi0+Z2V0R29ialR5cGUoKSwgTlVMTCk7CisgICAgZ2RvbV9kb21fb2JqZWN0
X3NldF9wcml2YXRlKEdET01fRE9NX09CSkVDVChyZXMpLCBkb2IpOworICAgIHJldHVybiByZXM7
Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZvaWQq
IG9iamVjdEhhbmRsZSwgR0RPTU9iamVjdCogd3JhcHBlcikKK3sKKyAgICAvLyBhZGRXcmFwcGVy
KHdyYXBwZXIpOworICAgIGdwb2ludGVyIG9iaiA9IGNyZWF0ZV9nZG9tX29iamVjdCh3cmFwcGVy
KTsKKyAgICBkb21PYmplY3RzKCkuc2V0KG9iamVjdEhhbmRsZSwgb2JqKTsKKyAgICByZXR1cm4g
b2JqOworfQorCit2b2lkIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KHZv
aWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICBkb21PYmplY3RzKCkudGFrZShvYmplY3RIYW5kbGUp
OworICAgIC8vcmVtb3ZlV3JhcHBlcihkb21PYmplY3RzKCkudGFrZShvYmplY3RIYW5kbGUpKTsK
K30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICghZG9jdW1lbnQp
CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxncG9pbnRlciA+KGRvbU9iamVjdHMoKS5nZXQo
bm9kZSkpOworICAgIHJldHVybiAvKiBYWFggIGRvY3VtZW50LT4gKi93cmFwcGVyQ2FjaGUoKS5n
ZXQobm9kZSk7Cit9CisKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2Rl
Rm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlKQoreworICAgIGlmICgh
ZG9jdW1lbnQpIHsKKyAgICAgICAgZm9yZ2V0RE9NT2JqZWN0KG5vZGUpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIC8vcmVtb3ZlV3JhcHBlcigvKiBYWFggZG9jdW1lbnQtPiovd3JhcHBl
ckNhY2hlKCkudGFrZShub2RlKSk7Cit9CisKK2dwb2ludGVyIEdET01TY3JpcHRJbnRlcnByZXRl
cjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogbm9kZSwg
R0RPTU5vZGUgKndyYXBwZXIpCit7CisgICAgLy9hZGRXcmFwcGVyKHdyYXBwZXIpOworICAgIGlm
ICghZG9jdW1lbnQpIHsKKyAgICAgICAgbm9kZS0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChub2RlLCB3cmFwcGVyKSA7CisgICAgfQor
ICAgIGdwb2ludGVyIG9iaiA9IGNyZWF0ZV9nZG9tX29iamVjdCh3cmFwcGVyKTsKKyAgICAvKiBY
WFggIGRvY3VtZW50LT4qL3dyYXBwZXJDYWNoZSgpLnNldChub2RlLCBvYmopOworICAgIHJldHVy
biBvYmo7Cit9CisKK3ZvaWQgR0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRBbGxET01Ob2Rl
c0ZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQp
OworICAgIC8vcmVtb3ZlV3JhcHBlcnMoZG9jdW1lbnQtPndyYXBwZXJDYWNoZSgpKTsKK30KKwor
c3RhdGljIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSk7CisKK2dwb2ludGVyIHRv
R0RPTShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7
IC8qIGhtbW0uLi4uICovCisKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9jdW1lbnQoKTsK
KyAgICBncG9pbnRlciByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JE
b2N1bWVudChkb2MsIG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiByZXQ7CisK
KyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworCitzdGF0aWMgQUxXQVlTX0lO
TElORSBncG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5v
ZGUpOworICAgIEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVu
dChub2RlLT5kb2N1bWVudCgpLCBub2RlKSk7CisKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+
ZG9jdW1lbnQoKTsKKyAgICBHRE9NTm9kZSAqcmV0ID0gTlVMTDsKKworICAgIHJldCA9IG5ldyBH
RE9NTm9kZShub2RlKTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJ
bnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KGRvYywgbm9kZSwgcmV0KTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RP
TUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRp
bmcuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5
OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+
CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIEdk
b21ET01CaW5kaW5nX2gKKyNkZWZpbmUgR2RvbURPTUJpbmRpbmdfaAorCisjaW5jbHVkZSA8a2pz
L2ludGVycHJldGVyLmg+CisjaW5jbHVkZSA8a2pzL2xvb2t1cC5oPgorI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgorCisjaW5jbHVkZSAiZ2RvbS9HZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdE
T01PYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL1ByaXZhdGVJbnRHZG9tTm9kZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBBdG9taWNTdHJpbmc7CisgICAgY2xhc3MgRG9j
dW1lbnQ7CisgICAgY2xhc3MgRXZlbnQ7CisgICAgY2xhc3MgRnJhbWU7CisgICAgY2xhc3MgS1VS
TDsKKyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIFN0cmluZzsKKworI2lmIEVOQUJMRShTVkcp
CisgICAgY2xhc3MgU1ZHRWxlbWVudDsKKyNlbmRpZgorCisgICAgY2xhc3MgR0RPTVNjcmlwdElu
dGVycHJldGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyB2b2lkKiBnZXRET01PYmpl
Y3Qodm9pZCogb2JqZWN0SGFuZGxlKTsKKyAgICAgICAgc3RhdGljIHZvaWQqIHB1dERPTU9iamVj
dCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqKTsKKyAgICAgICAgc3RhdGljIHZvaWQg
Zm9yZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisKKyAgICAgICAgc3RhdGljIHZv
aWQqIGdldERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqKTsKKyAgICAgICAgc3Rh
dGljIHZvaWQqIHB1dERPTU5vZGVGb3JEb2N1bWVudChEb2N1bWVudCosIE5vZGUqLCBHRE9NTm9k
ZSogbm9kZVdyYXBwZXIpOworICAgICAgICBzdGF0aWMgdm9pZCBmb3JnZXRET01Ob2RlRm9yRG9j
dW1lbnQoRG9jdW1lbnQqLCBOb2RlKik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldEFsbERP
TU5vZGVzRm9yRG9jdW1lbnQoRG9jdW1lbnQqKTsKKwkJI2lmIDAKKyAgICAgICAgc3RhdGljIHZv
aWQgdXBkYXRlRE9NTm9kZURvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogb2xkRG9jLCBEb2N1bWVu
dCogbmV3RG9jKTsKKyAgICAgICAgc3RhdGljIHZvaWQgbWFya0RPTU5vZGVzRm9yRG9jdW1lbnQo
RG9jdW1lbnQqKTsKKwkJI2VuZGlmCisgICAgfTsKKworICAgIC8vIFJldHJpZXZlIGZyb20gY2Fj
aGUsIG9yIGNyZWF0ZSwgYSBHZG9tIHdyYXBwZXIgZm9yIGEgRE9NIG9iamVjdC4KKyAgICB0ZW1w
bGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlubGluZSB2b2lkKiBjYWNoZURP
TU9iamVjdChET01PYmoqIGRvbU9iaikKKyAgICB7CisgICAgICAgIGlmICghZG9tT2JqKQorICAg
ICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisgICAgICAgIGlmICh2b2lk
KiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb21PYmopKQorICAg
ICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgR0RPTU9iamVjdCogcmV0ID0gbmV3IEdkb21E
T01PYmooZG9tT2JqKTsKKwkJZG9tT2JqLT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisKKyNpZiBF
TkFCTEUoU1ZHKQorICAgIC8vIFJldHJpZXZlIGZyb20gY2FjaGUsIG9yIGNyZWF0ZSwgYSBHZG9t
IHdyYXBwZXIgZm9yIGFuIFNWRyBET00gb2JqZWN0LgorICAgIHRlbXBsYXRlPGNsYXNzIERPTU9i
aiwgY2xhc3MgR2RvbURPTU9iaj4gaW5saW5lIHZvaWQqIGNhY2hlU1ZHRE9NT2JqZWN0KERPTU9i
aiogZG9tT2JqLCBTVkdFbGVtZW50KiBjb250ZXh0KQorICAgIHsKKyAgICAgICAgaWYgKCFkb21P
YmopCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKyAgICAgICAg
aWYgKHZvaWQqIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGRvbU9i
aikpCisgICAgICAgICAgICByZXR1cm4gcmV0OworICAgICAgICBHRE9NT2JqZWN0KiByZXQgPSBu
ZXcgR2RvbURPTU9iaihkb21PYmosIGNvbnRleHQpOworCQlkb21PYmotPnJlZigpOworICAgICAg
ICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZG9tT2JqLCByZXQp
OworICAgIH0KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBH
ZG9tRE9NQmluZGluZ19oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21E
T01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9Qcml2YXRl
R2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
UHJpdmF0ZUdkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2Vy
LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJOb2RlLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5o
IgorI2luY2x1ZGUgImdkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaCIKKworZXh0ZXJuICJDIiB7
CisKK0dfREVGSU5FX1RZUEUoR2RvbURPTU9iamVjdCwgZ2RvbV9kb21fb2JqZWN0LCBHX1RZUEVf
T0JKRUNUKTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSB7CisgICAgIEdET01PYmpl
Y3QgKm1fbm9kZTsKK307CisKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKG9i
aikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpF
Q1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9w
cml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QgKiBpdGVtKQoreworICAg
IEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRF
KHJlcXVlc3QpOworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07CisgICAgLypwcml2LT5tX25vZGUt
PmltcGwoKS0+cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitnZG9tX2RvbV9vYmplY3RfZ2V0
X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJp
dmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBy
ZXR1cm4gcHJpdi0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfZmlu
YWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01PYmplY3QqIHJlcXVlc3QgPSBH
RE9NX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9
IHJlcXVlc3QtPnByaXY7CisKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5kZXJlZigpOyov
CisgICAgZGVsZXRlIHByaXYtPm1fbm9kZTsgLyogY2FsbHMgbV9pbXBsLT5kZXJlZigpICovCisK
KyAgICBHX09CSkVDVF9DTEFTUyhnZG9tX2RvbV9vYmplY3RfcGFyZW50X2NsYXNzKS0+ZmluYWxp
emUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQo
R2RvbURPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1Mo
cmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2RvbV9vYmplY3RfZmluYWxpemU7CisKKyAg
ICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoR2RvbURPTU9i
amVjdFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2luaXQoR2Rv
bURPTU9iamVjdCogcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9
IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2
ID0gcHJpdjsKK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtj
bEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIu
Y29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3Qu
aCIKKworZXh0ZXJuICJDIiB7CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmpl
Y3QgKEdkb21ET01PYmplY3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7
CisJLyoKKyAgICBXZWJDb3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2JqZWN0X2dl
dF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0X3R5cGVf
YXJnID0gV2ViQ29yZTo6U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0ZW0tPmlu
aXRET01PYmplY3QoX2dfZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAvKiBleHRl
cm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
R09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQzNiBA
QAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisj
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFpbnQgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyMgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg
MzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFja2FnZSBDb2RlR2VuZXJh
dG9yR09iamVjdDsKKworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVzCitteSAkbGljZW5jZVRl
bXBsYXRlID0gPDwgIkVPRiI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0
aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xcQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxl
IEluYy4KKyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215ICVoZHJJbmNsdWRl
cyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkgJWltcGxUeXBlZGVmcyA9ICgp
OworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJhdG9yID0g
c2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxlc3MoJHJlZmVyZW5jZSwg
JG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBmaW5pc2gKK3sKKyAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0cnVjdAor
c3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15
ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAgICBteSAk
bmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxuIjsKKworICAgICRv
YmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdyaXRlIGNoYW5nZXMKKyAgICBt
eSAkZm5hbWUgPSAiR2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXplKCRuYW1lKTsKKyAgICAkZm5h
bWUgPX4gcy9fLy9nOworICAgICRvYmplY3QtPldyaXRlRGF0YSgkZm5hbWUpOworfQorCisjIFBh
cmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVsZQoreworICAgIG15
ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICRtb2R1
bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5cGUKK3sKKyAgICBt
eSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxpemUoJGNsYXNzTmFt
ZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBz
aGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURPTU9iamVjdCIgaWYgQHsk
ZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9tIiAuICRjb2RlR2VuZXJh
dG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOworfQorc3ViIEdldFBhcmVu
dEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/
CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJl
bnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsK
KyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50
c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2JqVHlwZSgkY29kZUdl
bmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Cit9CisKKworIyBB
bGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgY2FtZWxpemUK
K3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsgdWNmaXJzdCAkXyB9IHNw
bGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7Cit9CisKKyMgQWxnb3Jp
dGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGRlY2FtZWxpemUKK3sK
KyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8pKFtBLVpdKikoW0Et
Wl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAgICAgICBteSAo
JHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBteSAkdCA9ICRw
MCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/ICIke3AxfV8k
cDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAgfWdlOworICAg
ICRzOworfQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAkbmFtZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9
CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRv
ci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitz
dWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAk
bmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShH
ZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIk5h
bWVkTm9kZU1hcCI7ICMgaGFjayB0byBnZXQgaW50ZXJtZWRpYXRlIHBhdGNoIHRvIGNvbXBpbGUK
KyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJEb2N1bWVudCI7ICMgaGFjayB0byBnZXQg
aW50ZXJtZWRpYXRlIHBhdGNoIHRvIGNvbXBpbGUKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJOb2RlTGlzdCI7ICMgaGFjayB0byBnZXQgaW50ZXJtZWRpYXRlIHBhdGNoIHRvIGNvbXBp
bGUKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1cm4g
IiIgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInNo
b3J0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0
dXJuICIiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBl
cSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7Cisg
ICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICAgICAgcmV0
dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICAgICAgcmV0dXJuICIiIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJE
T01UaW1lU3RhbXAiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkV2ZW50TGlzdGVu
ZXIiOworICAgICAgICByZXR1cm4gIlJhbmdlLmgiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsK
KyAgICAgICAgcmV0dXJuICJnZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgaWYg
JHR5cGUgZXEgIkRPTU9iamVjdCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5z
aWduZWQgY2hhciI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAj
IFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVj
dC5oIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRU
YXJnZXROb2RlLmgiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisKKyAgICAgICAgcmV0dXJu
ICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiZmxvYXQiOworCisgICAgICAgIHJldHVybiAi
Z2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworCisgICAgICAgIHJldHVybiAi
Z2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuICIkbmFtZS5o
IjsKK30KKworIyByZXR1cm5zIDEgaWYgd2UgbmVlZCB0byBjcmVhdGUgYSBnb2JqZWN0IHdyYXBw
ZXIgYXJvdW5kIHRoZSByZXR1cm4gcmVzdWx0CitzdWIgSXNHRE9NQ2xhc3NUeXBlCit7CisgICAg
bXkgJHR5cGUgPSBzaGlmdDsKKyAgICAgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUp
OworCisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOworICAgICAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
Q29tcGFyZUhvdyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAg
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJjaGFyIjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidWNoYXIi
OworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIGludCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7Cisg
ICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJl
dHVybiAwIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3Jh
cHBlcgorCisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVy
biAxOworfQorCitzdWIgR2V0UHJvcEdUeXBlCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAg
ICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICByZXR1cm4gInN0cmluZyIg
aWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuICJmbG9hdCIgaWYgJHR5cGUgZXEg
ImZsb2F0IjsKKyAgICByZXR1cm4gIm5vdHlldHN1cHBvcnRlZCIgaWYgJHR5cGUgZXEgIkNvbXBh
cmVIb3ciOworICAgIHJldHVybiAiZG91YmxlIiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICBy
ZXR1cm4gImJvb2xlYW4iIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICByZXR1cm4gImNoYXIi
IGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICByZXR1cm4gImxvbmciIGlmICR0eXBlIGVxICJsb25n
IjsKKyAgICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICByZXR1cm4gInVj
aGFyIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgIHJldHVybiAidWludCIgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIjsKKyAgICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgImludCI7CisgICAgcmV0
dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICByZXR1cm4gInVpbnQ2
NCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgcmV0dXJuICJ1bG9uZyIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgIHJldHVybiAidXNob3J0IiBpZiAkdHlw
ZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJS
R0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorCisgICAgcmV0dXJuICJv
YmplY3QiOworfQorCitzdWIgR2V0R1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAg
ICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisgICAgICAgICNteSAkbmFtZSA9
IGNhbWVsaXplKEdldENsYXNzTmFtZSgkdHlwZSkpOworCisgICAgICAgIHJldHVybiAiR2RvbUV2
ZW50VGFyZ2V0Tm9kZSAqIiBpZiAkdHlwZSBlcSAiRXZlbnRUYXJnZXQiOworICAgICAgICByZXR1
cm4gImdjaGFyICoiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gImdm
bG9hdCIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpSYW5n
ZTo6Q29tcGFyZUhvdyAiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJu
ICJnZG91YmxlIiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICAgICAgcmV0dXJuICJnYm9vbGVh
biIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgICAgICByZXR1cm4gImdjaGFyIiBpZiAkdHlw
ZSBlcSAiY2hhciI7CisgICAgICAgIHJldHVybiAiZ2xvbmciIGlmICR0eXBlIGVxICJsb25nIjsK
KyAgICAgICAgcmV0dXJuICJnc2hvcnQiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgICAgIHJl
dHVybiAiZ3VjaGFyIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgICAgICByZXR1cm4gImd1aW50
IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgICAgICByZXR1cm4gImdpbnQiIGlmICR0eXBl
IGVxICJpbnQiOworICAgICAgICByZXR1cm4gImd1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQg
aW50IjsKKyAgICAgICAgcmV0dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IjsKKyAgICAgICAgcmV0dXJuICJndWludDY0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBs
b25nIjsKKyAgICAgICAgcmV0dXJuICJndXNob3J0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hv
cnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBY
WFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAgcmV0dXJuICJ2b2lkIiBpZiAk
dHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lICoiOworfQorCitzdWIgZ2V0SW5j
SGRyCit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRpbmNsdWRlSGRyID0gR2V0
R0luY2x1ZGVIZHIoJHR5cGUpOworICAgIGlmICgkaW5jbHVkZUhkcikgeworICAgICAgICBpZiAo
JHR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRU
YXJnZXROb2RlLmgiOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkdHlwZSBlcSAiRE9NT2Jq
ZWN0IikgeworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dl
bmVyYXRvci4KKyAgICAgICAgICAgIHJldHVybiAiR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAkaW5jbHVkZUhkcjsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBhZGRQcm9wSW5jSGRy
Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5
cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUo
JHR5cGUpKSB7CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJnZG9tLyIuJGhkcn0gPSAx
OworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3siZ2RvbS9Qcml2YXRlIi4kaGRyfSA9IDE7
CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJnZG9tL1ByaXZhdGVJbnQiLiRoZHJ9ID0g
MTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICRoZHJQcm9wSW5jbHVk
ZXN7JGhkcn0gPSAxOworICAgICAgICB9CisgICAgfQorCit9CisKK3N1YiBhZGRJbmNIZHIKK3sK
KyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7
CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgaWYgKElzR0RPTUNsYXNzVHlwZSgkdHlw
ZSkpIHsKKyAgICAgICAgICAgICRoZHJJbmNsdWRlc3siZ2RvbS8kaGRyIn0gPSAxOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgJGhkckluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICAgICAg
fQorICAgIH0KKworfQorCitzdWIgYWRkSW5jQm9keQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7
CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikg
eworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siZ2RvbS8kaGRyIn0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N1YiBH
ZXRQcml2Rm4KK3sKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OworICAgIG15ICRsY2Fz
ZV9pZmFjZW5hbWUgPSBzaGlmdDsKKyAgICBteSAkcmVzID0gc2hpZnQ7CisgICAgbXkgJHBhcm0g
PSBzaGlmdDsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRXZlbnRUYXJnZXQiKSB7Cisg
ICAgICAgIHJldHVybiAiV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogJHJlcyA9IHN0YXRpY19j
YXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0
X3ByaXZhdGUoc2VsZikpOyI7CisgICAgfQorICAgIHJldHVybiAiV2ViQ29yZTo6JHtpbnRlcmZh
Y2VOYW1lfSAqICRyZXMgPSAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCRwYXJtKSk7
IjsKK30KKworc3ViIHNraXBQcm9wVGVtcG9yYXJpbHkKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworICAgIG15ICRwcm9wX3R5cGUgPSBzaGlmdDsKKworICAgICMgc2tpcCBOYW1lZE5vZGVtYXAK
KyAgICBpZiAoJHByb3BfdHlwZSBlcSAiTmFtZWROb2RlTWFwIikgeyAjIGhhY2sgdG8gZ2V0IGlu
dGVybWVkaWF0ZSBwYXRjaCB0byBjb21waWxlCisgICAgICAgIHJldHVybiAxOworICAgIH0KKwor
ICAgICMgc2tpcCBOb2RlTGlzdAorICAgIGlmICgkcHJvcF90eXBlIGVxICJOb2RlTGlzdCIpIHsg
IyBoYWNrIHRvIGdldCBpbnRlcm1lZGlhdGUgcGF0Y2ggdG8gY29tcGlsZQorICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAgRG9jdW1lbnQKKyAgICBpZiAoJHByb3BfdHlwZSBl
cSAiRG9jdW1lbnQiKSB7ICMgaGFjayB0byBnZXQgaW50ZXJtZWRpYXRlIHBhdGNoIHRvIGNvbXBp
bGUKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisKKyAgICAjIHNraXAgQ29uc3RydWN0b3Jz
ICh3aGF0ZXZlciB0aGV5IGFyZSkgZm9yIG5vdy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29u
c3RydWN0b3IkLykgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsK
K30KKworc3ViIFVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24KK3sKKyAgICBteSAkdHlwZSA9
IHNoaWZ0OworCisgICAgIyBza2lwcGVkIG91dCBDYW52YXNQaXhlbEFycmF5IC0gc2VlIEpTQ2Fu
dmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAgZm9yIHdoeS4KKyAgICByZXR1cm4gMSBpZiAkdHlwZSBl
cSAiTm9kZSIgb3IgJHR5cGUgZXEgIkRvY3VtZW50IiBvciAkdHlwZSBlcSAiSFRNTENvbGxlY3Rp
b24iIG9yICR0eXBlIGVxICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3Ig
JHR5cGUgZXEgIkNTU1J1bGUiIG9yICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IgJHR5cGUgZXEgIkV2
ZW50IiBvciAkdHlwZSBlcSAiRWxlbWVudCIgb3IgJHR5cGUgZXEgIlRleHQiOworICAgIHJldHVy
biAwOworfQorCisKKyMgR2VuZXJhdGUgaGVhZGVyIGFuZCBpbXBsCitzdWIgR2VuZXJhdGUKK3sK
KyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAg
ICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TGVnYWN5UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+cGFy
ZW50c30gPiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNS
ZWFsUGFyZW50OworICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05hbWUo
JGRhdGFOb2RlKTsKKyAgICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJlbnRHT2JqVHlwZSgk
ZGF0YU5vZGUpOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAg
IG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOworICAgIG15ICRo
ZHJOYW1lID0gR2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisKKyAgICAjIEFkZCB0aGUgZGVm
YXVsdCBpbXBsIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxp
Y2VuY2VUZW1wbGF0ZSk7CisgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CisKKyAgICAkaW1wbElu
Y2x1ZGVzeyJHRE9NQmluZGluZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7Imdkb20vJGhk
ck5hbWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZhdGUke2hkck5hbWV9
LmgifSA9IDE7CisKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01PYmplY3QiOwor
ICAgIG15ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15ICRwYXJlbnRI
ZHJOYW1lID0gIkdkb21ET01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NOYW1lIG5lICJH
T2JqZWN0IikKKyAgICB7CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gc3Vic3RyKCRw
YXJlbnRDbGFzc05hbWUsIDQpOworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFjZU5hbWUgbmUg
IkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET00iLnN1
YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRIZHJOYW1lID0g
R2V0SGRyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxz
ZQorICAgICAgICB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0
IjsKKyAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyR7cGFyZW50SGRyTmFt
ZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2YXRlJHtwYXJlbnRI
ZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAkaGRySW5jbHVkZXN7Imdkb20vJHtwYXJlbnRIZHJO
YW1lfS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJO
YW1lfS5oIn0gPSAwOworICAgIH0KKworICAgICMgVE9ETyAtIG1ha2UgdGhlc2Ugb25seSBpbmNs
dWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAgIyBmdW5jdGlvbiBkZWNsYXJhdGlv
bnMgdG9HRE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CisgICAgJGlt
cGxJbmNsdWRlc3siRWxlbWVudC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNTU1ZhbHVl
LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVsZS5oIn0gPSAxOworICAgICRpbXBs
SW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siU3R5
bGVTaGVldC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkV2ZW50LmgifSA9IDE7CisgICAg
JGltcGxJbmNsdWRlc3siQ2FudmFzUGl4ZWxBcnJheS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVk
ZXN7IkRPTVdpbmRvdy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IlRleHQuaCJ9ID0gMTsK
KyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dTdHJpbmdDb252ZXJ0LmgifSA9IDE7CisKKyAgICAj
IFhYWCBUT0RPOiBtYWtlIHRoaXMgb3B0aW9uYWwgb3IgaW4gYSBoZWFkZXIgZmlsZS4gIG9yIGZp
bmQgYSBiZXR0ZXIgd2F5LgorICAgIG15ICRoYWNrRGVjbHMgPSA8PCAiRU9GIjsKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKyAgICBncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSk7Cit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKK0VPRgorCisgICAgcHVzaChAY0JvZHksICRoYWNrRGVjbHMpOworCisg
ICAgcHVzaChAY0JvZHksICJuYW1lc3BhY2UgV2ViQ29yZSB7XG4iKTsKKworICAgICMgR2V0IGNv
cnJlY3QgcGFzcy9zdG9yZSB0eXBlcyByZXNwZWN0aW5nIFBPRFR5cGUgZmxhZworICAgIG15ICRw
b2RUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9OworICAg
IG15ICRwYXNzVHlwZSA9ICRwb2RUeXBlID8gIkpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+
KiIgOiAiJGludGVyZmFjZU5hbWUqIjsKKworICAgIGlmICgke2ludGVyZmFjZU5hbWV9IGVxICJE
T01XaW5kb3ciIHx8ICghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRp
bnRlcmZhY2VOYW1lKSkgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICJncG9pbnRlciB0b0dE
T00oV2ViQ29yZTo6JHBhc3NUeXBlIG9iailcbiIpOworCisgICAgICAgIHB1c2goQGNCb2R5LCAi
e1xuIik7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gV2ViQ29yZTo6Y2Fj
aGVET01PYmplY3Q8V2ViQ29yZTo6JGludGVyZmFjZU5hbWUsIEdET00kaW50ZXJmYWNlTmFtZT4o
b2JqKTtcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIn1cbiIpOworICAgIH0KKworICAgIHB1
c2goQGNCb2R5LCAifSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAqL1xuIik7CisgICAgbXkgJGltcGxD
b250ZW50ID0gIiI7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNCb2R5LCAidXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiZXh0ZXJuIFwiQ1wiIHtcblxu
Iik7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAaFByZWZp
eCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgICAgICAjcHVzaChAaFByZWZp
eCwgIlxuIik7CisKKyAgICAjIEhlYWRlciBndWFyZAorICAgICAgICBteSAkZ3VhcmQgPSAiX18i
IC4gJGNsYXNzTmFtZSAuICJfSF9fIjsKKworICAgIG15ICRjbHNDYXBzID0gc3Vic3RyKENsc1Rv
R09ialR5cGUoJGNsYXNzTmFtZSksIDUpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSAiZ2Rv
bV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgI215ICRwYXJlbnRDbHNDYXBz
ID0gIkdET01fIiAuIENsc1RvR09ialR5cGUoJHBhcmVudEludGVyZmFjZU5hbWUpOworCisgICAg
QGhQcmVmaXhHdWFyZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUgJGd1YXJk
CitFT0YKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworR19CRUdJTl9ERUNMUworCitF
T0YKKworICAgIHB1c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7CisKKyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAg
ICAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBz
fShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9N
X1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01f
VFlQRV8ke2Nsc0NhcHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xz
Q2Fwc30ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RP
TV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fw
c30pKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5T
VEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1l
fUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtjbGFzc05h
bWV9UHJpdmF0ZTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFyZW50Q2xhc3NO
YW1lfSBwYXJlbnRfaW5zdGFuY2U7CisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307
CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRf
Y2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5
cGUgKHZvaWQpOworCitFT0YKKworICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisg
ICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVm
aW5lICR7Z3VhcmR9X1BST1BfCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxD
b250ZW50KTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisg
ICAgJGhkclByb3BJbmNsdWRleyJnbGliLW9iamVjdC5oIn0gPSAxOworICAgIGlmICgkcGFyZW50
SGRyTmFtZSBuZSAiR2RvbURPTU9iamVjdCIpIHsKKyAgICAgICAgJGhkclByb3BJbmNsdWRleyJn
ZG9tL1ByaXZhdGVJbnQke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgfQorICAgICRoZHJQ
cm9wSW5jbHVkZXsiR0RPTU9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiJHtp
bnRlcmZhY2VOYW1lfS5oIn0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Cisj
aWZuZGVmICR7Z3VhcmR9X0lOVF8KKyNkZWZpbmUgJHtndWFyZH1fSU5UXworI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCitFT0YKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQp
OworICAgIGlmICgkcGFyZW50SGRyTmFtZSBuZSAiR2RvbURPTU9iamVjdCIpIHsKKyAgICAgICAg
JGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAiZ2RvbS9Qcml2YXRlSW50JHtwYXJl
bnRIZHJOYW1lfS5oIgorRU9GCisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29u
dGVudCk7CisgICAgfQorICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2luY2x1ZGUgIkdE
T01PYmplY3QuaCIKKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKworICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVudCk7CisKKyAgICAgaWYgKCR7aW50ZXJmYWNl
TmFtZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNNYW51YWxUb0pTSW1wbGVt
ZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAgICRpbXBsQ29udGVudCA9IDw8ICJF
T0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRvR0RPTSgke2ludGVyZmFj
ZU5hbWV9KiBub2RlKTsKK30gLyogbmFtZXNwYWNlIFdlYkNvcmUgKi8gCitFT0YKKyAgICBwdXNo
KEBoQm9keUludGVybmFsLCAkaW1wbENvbnRlbnQpOworICAgIH0KKyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiR19CRUdJTl9ERUNMU1xuIik7CisKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgImNsYXNzIEdET00kaW50ZXJmYWNlTmFtZSA6IHB1YmxpYyAkcGFyZW50R0lmYWNlTmFtZSB7
XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB0eXBlZGVmICRwYXJlbnRH
SWZhY2VOYW1lIEJhc2U7XG4iKTsKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHVibGljOlxu
Iik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRHb2JqVHlwZSgpIHsg
cmV0dXJuIEdET01fVFlQRV8ke2Nsc0NhcHN9OyB9XG4iKTsKKworICAgIG15ICRuZWVkc1NWR0Nv
bnRleHQgPSAwOworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAi
ICAgIEdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1l
PiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAi
IikgLiAiKTtcbiIpOworCisgICAgIyBEZXN0cnVjdG9yCisgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICB2aXJ0dWFsIH5HRE9NJGludGVyZmFjZU5hbWUoKTtcbiIpIGlmICghJGhhc1BhcmVu
dCBvciAkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSBvciAkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NV2luZG93IjsKKworICAgIGlmICghJGhhc1BhcmVudCB8fCAoJGludGVyZmFjZU5hbWUgZXEg
IkRPTVdpbmRvdyIpKSB7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFdl
YkNvcmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgp
OyB9XG5cbiIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFdlYkNvcmU6
OiRpbnRlcmZhY2VOYW1lPiBtX2ltcGw7XG4iKTsKKyAgICB9IGVsc2lmICgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7CisgICAgICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwo
KSBjb25zdFxuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAge1xuIik7Cisg
ICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjokaW50ZXJmYWNlTmFtZSo+KEJhc2U6OmltcGwoKSk7XG4iKTsKKyAgICAgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgIiAgICB9XG4iKTsKKyAgICB9CisgICAgcHVzaChAaEJvZHlJbnRl
cm5hbCwgIn07XG4iKTsKKworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBjQm9keSwgIkdE
T00ke2ludGVyZmFjZU5hbWV9OjpHRE9NJGludGVyZmFjZU5hbWUoUGFzc1JlZlB0cjxXZWJDb3Jl
OjokaW50ZXJmYWNlTmFtZT4gaW1wbCIgLiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1l
bnQqIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NV2luZG93IikgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6bV9pbXBsKGltcGwpXG4i
KTsKKyAgICB9IGVsc2lmICgkaGFzUGFyZW50KSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IDogJHBhcmVudEdJZmFjZU5hbWUoaW1wbCIgLiAoJHBhcmVudE5lZWRzU1ZHQ29udGV4dCA/ICIs
IGNvbnRleHQiIDogIiIpIC4gIilcbiIpIGlmICgkaW50ZXJmYWNlTmFtZSBuZSAiRE9NV2luZG93
Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50R0lm
YWNlTmFtZSgpXG4iKSA7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9jb250ZXh0KGNv
bnRleHQpXG4iKSBpZiAkbmVlZHNTVkdDb250ZXh0OworICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICAsIG1faW1wbChpbXBsKVxuIik7CisgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ7XG4iKTsK
KyAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBpZiAo
ISRoYXNQYXJlbnQgb3IgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSkgeworICAgICAg
ICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1l
KClcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworCisgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgIG1faW1wbC5nZXQoKS0+ZGVyZWYoKTtcbiIpOworICAgICAgICBpZiAoJGludGVy
ZmFjZU5hbWUgZXEgIk5vZGUiKSB7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJD
b3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1bWVudChtX2lt
cGwtPmRvY3VtZW50KCksIG1faW1wbC5nZXQoKSk7XG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRl
cjo6Zm9yZ2V0RE9NT2JqZWN0KG1faW1wbC5nZXQoKSk7XG4iKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHB1c2goQGNCb2R5LCAiXG59XG5cbiIpOworICAgIH0KKworICAgICRpbXBsSW5jbHVkZXN7
Imdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50
ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9
IDE7CisKKyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NOYW1lIn0gPSAxOworICAgICRpbXBsVHlw
ZWRlZnN7IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwg
IkVPRiI7CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNp
bmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRw
cml2YXRlLmg+IAorI2luY2x1ZGUgIk5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBv
cHRpb25hbCAqLworI2luY2x1ZGUgPGdkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaD4gLyogeXVr
azogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFt
ZX0uaCIKKyNpbmNsdWRlIDxnZG9tLyR7aGRyTmFtZX0uaD4KKyNpbmNsdWRlIDxnZG9tL1ByaXZh
dGUke2hkck5hbWV9Lmg+CisjaW5jbHVkZSA8Z2RvbS9Qcml2YXRlSW50JHtoZHJOYW1lfS5oPgor
I2luY2x1ZGUgPGdkb20vJHtoZHJOYW1lfXByb3BzLmg+CisKKyNpbmNsdWRlICJnZG9tL0dTdHJp
bmdDb252ZXJ0LmgiCisKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisKKworRU9GCisKKyAg
ICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8
PCAiRU9GIjsKKworJHtoYWNrRGVjbHN9CisKK0dfQkVHSU5fREVDTFMKKworR19ERUZJTkVfVFlQ
RSgke2NsYXNzTmFtZX0sICR7bGNhc2VfaWZhY2VuYW1lfSwgJHtwYXJlbnRHT2JqVHlwZX0pOwor
CisvKgorc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjok
e2ludGVyZmFjZU5hbWV9ICppdGVtOworfTsKKworI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VU
X1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZ
UEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9UHJpdmF0ZSkpCisqLworR19FTkRfREVDTFMKK1dl
YkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRl
KCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCkKK3sKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAk
aW1wbENvbnRlbnQpOworCisgICAgICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworICAgIEdE
T00ke2ludGVyZmFjZU5hbWV9ICpyZXM7CisgICAgcmVzID0gc3RhdGljX2Nhc3Q8R0RPTSR7aW50
ZXJmYWNlTmFtZX0qPihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNU
KHJlcXVlc3QpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNl
TmFtZX0qPihyZXMtPmltcGwoKSk7CitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29u
dGVudCk7CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1lUHJlZml4ID0g
JGxjYXNlX2lmYWNlbmFtZTsgCisgICAgU0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAo
QHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2Ft
ZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlw
ZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRH
VHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUg
KnRoaXoiOworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAg
ICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgaWYg
KHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAgICBu
ZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgYWRkUHJvcElu
Y0hkcigkcHJvcF90eXBlKTsKKworICAgIH0KKworICAgICMgUHJvcGVydGllcworICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworfQorCitHX0JFR0lOX0RFQ0xTCisKK2VudW0geworICAgIEJS
T1dTRVJfRVZFTlQsCisgICAgTEFTVF9TSUdOQUwKK307CisKK2VudW0geworICAgIFBST1BfMCwK
K0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgIG15IEB0eHRf
aW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfc2V0X3Byb3BzID0gKCk7CisgICAgbXkg
QHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAgIG15ICRwcml2X2ZuID0gR2V0UHJpdkZuKCRpbnRl
cmZhY2VOYW1lLCAke2xjYXNlX2lmYWNlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisKKyAgICBt
eSAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFt
ZX1fX2dldF9wcm9wZXJ0eV9mbihHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAg
ICAgICAgICAgICAgICAgICAgR1ZhbHVlICogdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBH
UGFyYW1TcGVjICogcHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9ICpzZWxmID0gR0RPTV8ke2Ns
c0NhcHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKyAgICBzd2l0Y2ggKHByb3BfaWQpIHsKK0VP
RgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgbXkgJHR4
dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19z
ZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
R1BhcmFtU3BlYyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtj
bHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitF
T0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKworICAgIFNLSVBF
TlVNOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgewor
ICAgICAgICBteSAkcHJvcF9uYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOworICAg
ICAgICBteSAkc2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJHBy
b3BfbmFtZSk7CisgICAgICAgIG15ICRnZXRwcm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRvci0+
V0tfbGNmaXJzdCgkcHJvcF9uYW1lKTsKKworICAgICAgICBteSAkcHJvcE5hbWUgPSBkZWNhbWVs
aXplKCRwcm9wX25hbWUpOworICAgICAgICBteSAkcHJvcENhcHMgPSB1YygkcHJvcE5hbWUpOwor
ICAgICAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOworICAg
ICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAke3Byb3BF
bnVtfSA9ICJQUk9QXyR7cHJvcENhcHN9IjsKKyAgICAgICAgbXkgJHtwcm9wX2d0eXBlfSA9IGRl
Y2FtZWxpemUoJHByb3BfdHlwZSk7CisgICAgICAgIGlmICgkcHJvcF9ndHlwZSBlcSAiZXZlbnRf
dGFyZ2V0IikgeworICAgICAgICAgICAgJHByb3BfZ3R5cGUgPSAiZXZlbnRfdGFyZ2V0X25vZGUi
OworICAgICAgICB9CisgICAgICAgIG15ICR7cHJvcEdUeXBlfSA9IHVjKCRwcm9wX2d0eXBlKTsK
KyAgICAgICAgbXkgJGxjYXNlX2d0eXBlbmFtZSA9ICJnZG9tXyIgLiAkcHJvcF9ndHlwZTsKKwor
ICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgICAgICBuZXh0
IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgJGltcGxJbmNsdWRl
c3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5
bGVEZWNsYXJhdGlvbiI7CisgICAgICAgIGlmIChza2lwUHJvcFRlbXBvcmFyaWx5KCR0eXBlLCAk
cHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAg
ICAgICAgICAgCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgIiAgICAke3Byb3BFbnVtfSxcbiIp
OworCisgICAgICAgIG15ICRndHlwZSA9IEdldFByb3BHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAg
ICAgbXkgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEQUJMRSI7CisgICAgICAgIG15ICR3cml0
ZWFibGUgPSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkvOworICAgICAgICBteSAkY29u
c3QgPSAicmVhZC1vbmx5ICI7CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICRjdXN0b20pIHsK
KyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLW9ubHkgKGR1ZSB0byBjdXN0b20gZnVuY3Rpb25z
IG5lZWRlZCBpbiBnZG9td2Via2l0KSI7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAg
ICAgICB9CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICEkY3VzdG9tKSB7CisgICAgICAgICAg
ICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURXUklURSI7CisgICAgICAgICAgICAkY29uc3Qg
PSAicmVhZC13cml0ZSAiOworICAgICAgICB9CisKKyAgICAgICAgbXkgJF9ndHlwZSA9ICRndHlw
ZTsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgJF9ndHlw
ZSA9ICJ1aW50IjsgIyB5dWsuCisgICAgICAgIH0KKyAgICAgICAgJG5pY2sgPSBkZWNhbWVsaXpl
KCIke2ludGVyZmFjZU5hbWV9XyR7cHJvcE5hbWV9Iik7CisgICAgICAgICRsb25nID0gIiR7Y29u
c3R9ICR7dHlwZX0gJHtpbnRlcmZhY2VOYW1lfS4ke3Byb3BOYW1lfSI7CisgICAgICAgIG15ICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eSAoZ19rbGFzcywgJHtwcm9wRW51bX0sCisgICAgICAgICAgICBnX3BhcmFtX3NwZWNf
JHtfZ3R5cGV9ICgiJHtwcm9wTmFtZX0iLCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgIiRu
aWNrIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAiJGxvbmciLCAv
KiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KK0VP
RgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOwor
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9ICIvKiBUT0RPISAkZ3R5cGUgKi9cbiI7CisKKyAg
ICAgICAgaWYgKCR3cml0ZWFibGUpIHsKKworICAgICAgICAgICAgbXkgJG9rID0gMDsKKyAgICAg
ICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgICAgICBpZiAoJGd0eXBlIGVxICJz
dHJpbmciKSB7CisgICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiV2ViQ29yZTo6U3RyaW5n
Ojpmcm9tVVRGOCI7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAgICAg
JG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAg
ICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91
YmxlIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgk
Z3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAg
ICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAx
OworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAg
ICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQiKSB7Cisg
ICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
dXNob3J0IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lm
ICgkZ3R5cGUgZXEgInVjaGFyIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9rID0g
MTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCRvaykgeworICAgICAgICAgICAg
ICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0
aW9uc307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgZ3Nl
bGYtPnNldCR7c2V0cHJvcF9uYW1lX2ZufSgke2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRndHlw
ZSAodmFsdWUpKSIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwg
ZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAg
IHB1c2goQHR4dF9zZXRfcHJvcHMsICIpO1xuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0
eHRfc2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICBjYXNlICR7cHJv
cEVudW19OlxuICAgIHtcbiIpOworCisgICAgICAgIG15ICRleGNlcHRpb24gPSAiIjsKKyAgICAg
ICAgaWYgKEB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICRl
eGNlcHRpb24gPSAiZWMiOworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgfQorCisgICAg
ICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRwb3N0X2NvbnZlcnRfZm4gPSAi
IjsKKyAgICAgICAgbXkgJGRvbmUgPSAwOworICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmci
KSB7CisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3Rh
a2Vfc3RyaW5nICh2YWx1ZSwgR1N0cmluZ0NvbnZlcnQoZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2Zu
fSgke2V4Y2VwdGlvbn0pKSk7XG4iKTsKKyAgICAgICAgICAgICRkb25lID0gMTsKKyAgICAgICAg
fQorICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICBteSAk
ZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBlOworICAgICAgICAgICAgJHR4dF9nZXRfcHJv
cCA9IDw8ICJFT0YiOworICAgICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4g
cHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pOworICAgICAgICBn
X3ZhbHVlX3NldF9vYmplY3QgKHZhbHVlLCBXZWJDb3JlOjp0b0dET00ocHRyLmdldCgpKSk7CitF
T0YKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworICAg
ICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkZG9uZSkgewor
ICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1ZV9zZXRfJF9n
dHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhj
ZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBw
dXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKworICAgICAg
ICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/Pz8KKyAgICAgICAgIyBjYW4gaXQgYmUg
ZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0eXBlCisgICAgICAgICMgYW5kIGdldHRp
bmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUgbWluLW1heCBmb3IgZXhhbXBsZT8KKyAgICAg
ICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3Ag
PSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklOVCwgICAgICAgIC8qIG1pbiAqLwor
ICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAg
ICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiYm9v
bGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAg
ICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgk
Z3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAi
RU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZMT0FULCAgICAgICAgLyogbWluICovCisgICAg
ICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAg
ICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJs
ZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAg
ICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBH
X01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1
bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAg
ICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwg
ICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDY0LCAvKiBtYXggKi8K
KyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJv
cCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAg
ICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAg
ICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIp
IHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAg
ICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhM
T05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLwor
RU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8q
IG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVCwgLyogbWF4ICovCisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVP
RiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAg
IEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVm
YXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAg
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdf
TUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5UOCwgLyog
bWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8K
KyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAw
LCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
c3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAg
ICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAi
RU9GIjsKKyAgICAgICAgICAgICAgICBHRE9NX1RZUEVfJHtwcm9wR1R5cGV9LCAvKiBnb2JqZWN0
IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3Bz
LCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVP
RiI7CisgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKSR7Z3BhcmFtZmxhZ30pKTsKKworRU9G
CisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisK
KworICAgIH0KKworICAgIHB1c2goQGNCb2R5UHJpdiwgIn07XG5cbiIpOworCisKKyAgICAkdHh0
X2dldF9wcm9wID0gPDwgIkVPRiI7CisgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJO
X0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3By
b3ApOworCisgICAgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworICAgZGVmYXVsdDoKKyAgICAg
ICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNw
ZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3By
b3BzLCAkdHh0X3NldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8ICJF
T0YiOworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIHNlbGYtPmFnZSA9IGdfdmFsdWVfZ2V0
X2ludCAodmFsdWUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFJPUF9BR0U6CisgICAg
ICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgc2VsZi0+YWdlKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgKyAgIGdfdmFsdWVfaW5pdCgmcGFyYW1zWzBdLCBHX1RZUEVfRlJPTV9JTlNUQU5D
RShvYmplY3QpKTsKKyAgICAgICAgKyAgIGdfdmFsdWVfc2V0X2luc3RhbmNlKCZwYXJhbXNbMF0s
IChncG9pbnRlcilvYmplY3QpOworCitFT0YKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0Yi
OworCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemUoR09iamVjdCogb2Jq
ZWN0KQoreworICAgIC8qJHtjbGFzc05hbWV9KiByZXF1ZXN0ID0gR0RPTV8ke2Nsc0NhcHN9KG9i
amVjdCk7Ki8KKyAgICAvKiR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2
OyovCisKKyAgICAvKkdPYmplY3RDbGFzcyAqcGFyZW50X2NsYXNzID0gZ190eXBlX2NsYXNzX3Bl
ZWsgKGdfdHlwZV9wZWVrX3BhcmVudCAoJHtwYXJlbnRHT2JqVHlwZX0pKTsqLworCisgICAgLyog
RnJlZSBhbnkgbWVtb3J5IG9yIGNsb3NlIGFueSBmaWxlcyAqLworCisgICAgLypwYXJlbnRfY2xh
c3MtPiBmaW5hbGl6ZSAob2JqZWN0KTsqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoJHtsY2FzZV9p
ZmFjZW5hbWV9X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK0B0eHRfc2V0
X3Byb3BzCisKK0B0eHRfZ2V0X3Byb3BzCisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1l
fV9jbGFzc19pbml0KCR7Y2xhc3NOYW1lfUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR09i
amVjdENsYXNzICpnX2tsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKHJlcXVlc3RDbGFzcyk7CisgICAg
Z19rbGFzcy0+ZmluYWxpemUgPSAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemU7CisgICAgZ19r
bGFzcy0+c2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlfZm47
CisgICAgZ19rbGFzcy0+Z2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJv
cGVydHlfZm47CisKK0B0eHRfaW5zdGFsbF9wcm9wcworCisgICAgLypnX3R5cGVfY2xhc3NfcmVt
b3ZlX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoJHtjbGFzc05hbWV9UHJpdmF0ZSkpOyov
Cit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9pbml0KCR7Y2xhc3NOYW1lfSog
cmVxdWVzdCkKK3sKKyAgICAvKiR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSBHRE9NXyR7Y2xz
Q2Fwc31fR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8K
K30KKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAk
aW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZhdGVJbnRHZG9tJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAx
OworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCisjaWZuZGVmICR7Z3VhcmR9X1BSSVZf
CisjZGVmaW5lICR7Z3VhcmR9X1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNs
dWRlICJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisv
KiNpbmNsdWRlICJnZG9tL1ByaXZhdGUke3BhcmVudEhkck5hbWV9LmgiKi8KKy8qR19CRUdJTl9E
RUNMUyovCisvKmNsYXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX07Ki8KKyNpbmNsdWRlICIk
e2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250
ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy9uYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEdET00ke2ludGVyZmFjZU5hbWV9IDogcHVibGljICR7cGFyZW50R0lmYWNl
TmFtZX0geworCitwdWJsaWM6CisgICAgR0RPTSR7aW50ZXJmYWNlTmFtZX0oV2ViQ29yZTo6JHtp
bnRlcmZhY2VOYW1lfSogaW1wbCkgOiAkcGFyZW50R0lmYWNlTmFtZX0oaW1wbCkKKyAgICB7IGlt
cGwtPnJlZigpOyB9CisgICAgfkdET00ke2ludGVyZmFjZU5hbWV9KCkgeyBtX2ltcGwtPmRlcmVm
KCk7IH0KKworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGltcGwoKSBjb25zdCB7IHJl
dHVybiBtX2ltcGw7IH0KKworCitwcml2YXRlOgorICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKm1faW1wbDsKK307CisKK0VPRgorCisgICAgICAgICNwdXNoKEBoQm9keVByaXYsICRpbXBs
Q29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsK
KworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3By
aXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKworLypHX0VORF9ERUNMUyovCisKKyNlbmRp
ZiAvKiAke2d1YXJkfV9QUklWXyAqLworCitFT0YKKworICAgICAgICBwdXNoKEBoQm9keVByaXYs
ICRpbXBsQ29udGVudCk7CisKKyAgICAgICAgJGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1l
fS5oIn0gPSAxOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZhdGVHZG9tRE9NT2Jq
ZWN0LmgifSA9IDE7CisKKyAgICAgICAgTE9PUDogZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRh
dGFOb2RlLT5mdW5jdGlvbnN9KSB7CisgICAgICAgICAgICAgICAgbXkgJGZuX3NpZ19uYW1lID0g
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgICAgICAgICAgbXkgJGZuX3NpZ190
eXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgICAgICAgICAgbXkgJGZ1
bmN0aW9uTmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSAuICJfIiAu
IGRlY2FtZWxpemUoJGZuX3NpZ19uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkcmV0dXJuVHlw
ZSA9IEdldEdUeXBlKCRmbl9zaWdfdHlwZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldF9pc19j
bHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkZm5fc2lnX3R5cGUpOworCisgICAgICAgICAgICAg
ICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworCisgICAgICAgICAgICAg
ICAgbXkgJGNhbGxfaW1wbF9wYXJhbXMgPSAiIjsKKyAgICAgICAgICAgICAgICBteSAkZ2RvbV9m
bl9wcmVmaXggPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX3R5cGUpOworCisgICAgICAg
ICAgICAgICAgIyBYWFggc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworICAgICAg
ICAgICAgICAgIG15ICRpc19jdXN0b21fZm4gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworICAgICAgICAgICAgICAgIGlmICgkaXNfY3VzdG9t
X2ZuICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVf
aXRlcmF0b3JfbmV4dF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFt
ZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hp
bGQiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzog
Y3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5j
dGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1
bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExU
eXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNCb2R5KCRwYXJh
bUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7
CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExU
eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBh
cmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25TaWcgLj0gIiwgJHBh
cmFtVHlwZSAkcGFyYW1OYW1lIjsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNf
Y2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAg
ICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgkcGFyYW1JRExUeXBlIG5lICJET01PYmplY3QiICYmCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJHBhcmFtSURMVHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2YXRlSW50R2RvbSR7cGFyYW1J
RExUeXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVk
ZXN7Imdkb20vUHJpdmF0ZUdkb20ke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmFtSURMVHlwZX0uaCJ9ID0gMTsg
IyB0aGlzIGlzbid0IHN0cmljdGx5IG5lY2Vzc2FyeSBidXQgb25lIG9mIHRoZSBhdXRvLWdlbmVy
YXRlZCBmaWxlcyBuZWVkZWQgaXQgc28uLi4uCisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19j
bHNfdHlwZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICRwYXJhbU5hbWUgPSAiX2dfIiAuICRwYXJhbU5hbWU7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyAuPSAiLCAkcGFyYW1O
YW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICRjYWxsX2ltcGxfcGFyYW1zID0gIiRwYXJhbU5hbWUi
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgYWRkSW5jSGRyKCRmbl9zaWdfdHlwZSk7CisgICAgICAgICAgICAgICAgaWYgKCRyZXRf
aXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20k
e2ZuX3NpZ190eXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm5fc2ln
X3R5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFhY
WCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIG5lICJFdmVudFRhcmdldCIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9Qcml2
YXRlSW50R2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vUHJpdmF0ZUdkb20ke2ZuX3NpZ190eXBlfS5o
In0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJn
ZG9tL0dkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ZuX3Np
Z190eXBlfS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tp
cCBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAgICAjIGJ1dCBza2lwIGZy
b20gaGVyZSB0byBhbGxvdyBzb21lIGhlYWRlcnMgdG8gYmUgY3JlYXRlZAorICAgICAgICAgICAg
ICAgICMgZm9yIGEgc3VjY2Vzc2Z1bCBjb21waWxlLgorICAgICAgICAgICAgICAgIGlmICgkaXNf
Y3VzdG9tX2ZuICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21f
bm9kZV9yZW1vdmVfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1l
IG5lICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiICYmCisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiKSB7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0
aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICov
XG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgbXkgJF9yZXR1cm5UeXBlID0gJHJldHVyblR5cGU7CisgICAg
ICAgICAgICAgICAgbXkgJGRvbW9ialR5cGUgPSAiR0RPTSIuJGZuX3NpZ190eXBlOworICAgICAg
ICAgICAgICAgIHB1c2goQGhCb2R5LCAiV0VCS0lUX0FQSSAkX3JldHVyblR5cGVcbiRmdW5jdGlv
bk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZylcbntcbiIpOwor
CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAg
ICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0
aGl6LCAwKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopO1xuIik7CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29y
ZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGl0ZW0gPSAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2
YXRlKHRoaXopKTtcbiIpOworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9p
ZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZh
dWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCAoaXRlbSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsIChp
dGVtKTtcbiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZm9yZWFjaCBteSAk
cGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBt
eSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworICAgICAgICAgICAgICAg
ICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1UeXBlSXNQcmltaXRpdmUgPSAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVU
eXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xz
X3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAg
ICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRw
YXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAjICAgICRpbXBsVHlwZWRl
ZnN7Ikdkb20ke3BhcmFtSURMVHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCEkcGFyYW1UeXBlSXNQcmltaXRpdmUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwgKCRwYXJhbU5hbWUsIDApO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IGdfcmV0dXJuX2lmX2ZhaWwgKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIiI7CisgICAgICAgICAgICAgICAgZm9yZWFj
aCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAgICAg
ICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAg
ICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisKKyAgICAg
ICAgICAgICAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRw
YXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAi
RE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
V2ViQ29yZTo6U3RyaW5nIF9nXyR7cGFyYW1OYW1lfSA9IFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVU
RjgoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1fZ2RvbV9mbiA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRwYXJhbUlETFR5cGUp
OworICAgICAgICAgICAgICAgICAgICAgICAgI3B1c2goQGNCb2R5LCAiICAgIFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0+ICogX2dfJHtwYXJhbU5hbWV9ID0gV1RGOjpS
ZWZQdHI8JHtwYXJhbV9nZG9tX2ZufV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKT47XG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVxICJFdmVudFRhcmdldCIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL1ByaXZh
dGVHZG9tRXZlbnRUYXJnZXROb2RlLmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogX2dfJHtwYXJh
bU5hbWV9ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9ldmVu
dF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSgkcGFyYW1OYW1lKSk7XG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgV2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9ICogX2dfJHtwYXJhbU5hbWV9ID0g
KCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5
cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggVE9ETzog
cmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0s
IDApO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKF9nXyR7
cGFyYW1OYW1lfSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiX2df
Ii4kcGFyYW1OYW1lIGlmICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJldHVybiJ9Owor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIG15ICRhc3NpZ24gPSAiIjsKKyAg
ICAgICAgICAgICAgICBteSAkYXNzaWduX3ByZSA9ICIiOworICAgICAgICAgICAgICAgIG15ICRh
c3NpZ25fcG9zdCA9ICIiOworICAgICAgICAgICAgICAgICRnX3JlcyA9IDA7CisgICAgICAgICAg
ICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgeworCisg
ICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAkYXNzaWduID0gIlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtmbl9zaWdfdHlwZX0+
IGdfcmVzID0gIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICRhc3NpZ25fcHJlID0gIldURjo6
Z2V0UHRyKCI7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduX3Bvc3QgPSAiKSI7Cisg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNz
aWduID0gIiR7X3JldHVyblR5cGV9IHJlcyA9ICI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbXkgJGV4Y2VwdGlvbnMgPSAiIjsKKyAg
ICAgICAgICAgICAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwO1xuIik7CisgICAgICAgICAgICAgICAgICAgIGlmICgke2NhbGxfaW1wbF9wYXJhbXN9
IG5lICIiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICIsIGVjIjsK
KyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRl
eGNlcHRpb25zID0gImVjIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgICAgICMgbmVlZCB0aGlzIGZvciBpbmNsdWRpbmcgLi4uIF9zb21l
dGhpbmdfIC0gZm9yIHRoZSBjbGFzcyBhcmdzCisgICAgICAgICAgICAgICAgI2lmICgkcmV0X2lz
X2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tJHtm
bl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAjfQorICAgICAgICAgICAgICAg
IGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiB8fAorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIg
fHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX3JlcGxh
Y2VfY2hpbGQiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21f
bm9kZV9yZW1vdmVfY2hpbGQiKSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRjdXN0b21fZ2Rv
bV9ub2RlX2FwcGVuZF9jaGlsZCA9IDw8ICJFT0YiOworICAgIGJvb2wgb2sgPSBpdGVtLT4ke2Zu
X3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSk7CisgICAgaWYgKG9r
KQorICAgIHsKKyAgICAgICAgJHtfcmV0dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nhc3Q8JHtfcmV0
dXJuVHlwZX0+KFdlYkNvcmU6OnRvR0RPTSgkcmV0dXJuUGFyYW1OYW1lKSk7CisgICAgICAgIHJl
dHVybiByZXM7CisgICAgfQorICAgIHJldHVybiBOVUxMOworRU9GCisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOworICAgICAg
ICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn1HU3RyaW5nQ29udmVydChp
dGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpO1xu
IiApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgk
Z19yZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRnX3JlcyA9ICIke2Fzc2lnbn0ke2Fz
c2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0
aW9uc30ke2Fzc2lnbl9wb3N0fSkiIDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufSR7YXNzaWdu
X3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25z
fSR7YXNzaWduX3Bvc3R9KTtcbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEk
aXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBu
ZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xz
X3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAk
e19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6
dG9HRE9NKGdfcmVzLmdldCgpKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBl
IGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBjYW52YXMgb2JqZWN0ICovXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuIik7
CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisgICAgICAgIH0KKwor
ICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisgICAgcHVzaChA
Y0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisKKyAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwg
IiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9cbiIpOworCisgICAgcHVzaChAaEJvZHksICJHX0VO
RF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAvKiAkZ3VhcmQgKi9cbiIp
OworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChA
aEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3VhcmR9X1BST1BfKi9cbiIpOworfQorCisjIEludGVy
bmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkgPSBA
XzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVJbnRl
cm5hbCA9ICIkb3V0cHV0RGlyL1ByaXZhdGVJbnQiIC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4o
SU5USEVBREVSLCAiPiRoZHJGTmFtZUludGVybmFsIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZp
bGUgJGhkckZOYW1lSW50ZXJuYWwiOworCisgICAgcHJpbnQgSU5USEVBREVSIEBoUHJlZml4Owor
ICAgIHByaW50IElOVEhFQURFUiAiXG4iOworICAgIHByaW50IElOVEhFQURFUiBAaEJvZHlJbnRl
cm5hbDsKKyAgICBjbG9zZShJTlRIRUFERVIpOworCisgICAgIyBXcml0ZSBQcml2YXRlIGhlYWRl
cgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1dERpci9Qcml2YXRlIiAuICRuYW1lIC4g
Ii5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJpdiIpIG9yIGRpZSAiQ291
bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworCisgICAgcHJpbnQgUFJJVkhFQURFUiBA
aFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJJVkhFQURF
UiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisgICAgIyBXcml0ZSBQcml2
YXRlIEltcGxlbWVudGF0aW9uCisgICAgI215ICRpbXBsRmlsZU5hbWVQcml2ID0gIiRvdXRwdXRE
aXIvUHJpdmF0ZSIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICAjb3BlbihQUklWSU1QTCwgIj4kaW1w
bEZpbGVOYW1lUHJpdiIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWVQ
cml2IjsKKworICAgICNwcmludCBQUklWSU1QTCBAY1ByZWZpeDsKKyAgICAjcHJpbnQgUFJJVklN
UEwgIlxuIjsKKyAgICAjcHJpbnQgUFJJVklNUEwgQGNCb2R5UHJpdjsKKworICAgICNjbG9zZShQ
UklWSU1QTCk7CisKKyAgICAjIFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9pZHMgcmVjdXJz
aXZlIG5pZ2h0bWFyZSkKKyAgICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRu
YW1lIC4gInByb3BzLmgiOworICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJvcEZOYW1lIikg
b3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAgICAkaGRyUHJv
cEluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJPUEhFQURFUiBA
aFByZWZpeDsKKyAgICBwcmludCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5jbHVkZXMgLyBk
ZWZpbmVzIGlzc3VlIGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRpZXMuXG5wZXJo
YXBzIC0gYmV0dGVyIC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW4gaGVyZSEq
L1xuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAgcHJpbnQgUFJP
UEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50
IFBST1BIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRyUHJv
cEluY2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cyglaGRyUHJvcElu
Y2x1ZGVzKTsKKyAgICBwcmludCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJPUEhFQURF
UiBAaEJvZHlQcm9wOworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgcHVibGlj
IGhlYWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgi
OworICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBm
aWxlICRoZHJGTmFtZSI7CisKKyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0LmgifSA9IDE7
CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4
R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMu
aD5cbiI7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0
IGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJJ
bmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiI7CisgICAgcHJpbnQgSEVBREVSIEBoQm9k
eVByZTsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgInR5cGVkZWYgc3RydWN0IF8kXyAkXztcbiIg
fSBzb3J0IGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5
cyglaW1wbFR5cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5OworCisgICAgY2xvc2Uo
SEVBREVSKTsKKworICAgICMgV3JpdGUgdGhlIGltcGxlbWVudGF0aW9uIHNvdXJjZXMKKyAgICBt
eSAkaW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9w
ZW4oSU1QTCwgIj4kaW1wbEZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGlt
cGxGaWxlTmFtZSI7CisKKyAgICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHByaW50IElNUEwg
IiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50IElNUEwgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxu
IiB9IHNvcnQga2V5cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMICJcbiIgaWYga2V5
cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMIEBjQm9keTsKKworICAgIHByaW50IElN
UEwgIlxuIjsKKyAgICBwcmludCBJTVBMIEBjQm9keVByaXY7CisKKyAgICBjbG9zZShJTVBMKTsK
KworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAgICAlaW1wbFR5cGVkZWZzID0gKCk7CisgICAg
JWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBAaEJvZHkgPSAoKTsK
KyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAgQGhCb2R5SW50ZXJuYWwgPSAoKTsKKyAgICBAaEJv
ZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJvcFByZSA9ICgpOworCisgICAgQGNQcmVmaXggPSAo
KTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7Cit9CisKKzE7CkluZGV4
OiBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9H
TlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMzY0NTkpCisrKyBXZWJLaXRUb29scy9HTlVtYWtlZmls
ZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDggQEAKIFByb2dyYW1zX0d0a0xhdW5jaGVy
X0NQUEZMQUdTID0gXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJCh0b3BfYnVpbGRk
aXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKKwktSSQo
dG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwK
IAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQogCkBAIC0yOCw2ICszMCw4IEBACiAJLUkkKHNy
Y2RpcikvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJL
aXQvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQg
XAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>23579</attachid>
            <date>2008-09-19 13:18:25 -0700</date>
            <delta_ts>2008-09-19 13:18:25 -0700</delta_ts>
            <desc>converts upper-case GdomXyzAbc to gdom-xyz-abc</desc>
            <filename>fconverter.py</filename>
            <type>text/plain</type>
            <size>1478</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCgppbXBvcnQgc3lzCgpkZWYgYWRkX3dvcmQobGluZSwgd29y
ZCk6CiAgICAKICAgIGlmIG5vdCBsaW5lOgogICAgICAgIHJldHVybiB3b3JkCiAgICByZXR1cm4g
IiVzLSVzIiAlIChsaW5lLCB3b3JkKQoKZGVmIGxjYXNlKGxpbmUpOgogICAgcmVzID0gJycKICAg
IHdvcmQgPSAnJwogICAgdXBwZXJfbW9kZSA9IDAKICAgIHByaXZhdGUgPSAwCgogICAgZm9yIGMg
aW4gbGluZToKICAgICAgICBpZiBjLmlzdXBwZXIoKToKICAgICAgICAgICAgaWYgbm90IHVwcGVy
X21vZGUgYW5kIHdvcmQ6CiAgICAgICAgICAgICAgICAjIGxvd2VyLWNhc2UgdG8gdXBwZXItY2Fz
ZSB0cmFuc2l0aW9uCiAgICAgICAgICAgICAgICByZXMgPSBhZGRfd29yZChyZXMsIHdvcmQpCiAg
ICAgICAgICAgICAgICB3b3JkID0gJycKICAgICAgICAgICAgd29yZCArPSBjLmxvd2VyKCkKICAg
ICAgICAgICAgdXBwZXJfbW9kZSA9IDEKICAgICAgICBlbHNlOgogICAgICAgICAgICB1cHBlcl9t
b2RlID0gMAogICAgICAgICAgICB3b3JkICs9IGMubG93ZXIoKQoKICAgICAgICBpZiB3b3JkID09
ICJnZG9tLyI6CiAgICAgICAgICAgIHJlcyA9IHJlcyArIHdvcmQKICAgICAgICAgICAgd29yZCA9
ICcnCgogICAgICAgIGlmIHdvcmQgPT0gJ2dkb21odG1sJzoKICAgICAgICAgICAgcmVzID0gcmVz
ICsgJ2dkb20taHRtbC0nCiAgICAgICAgICAgIHdvcmQgPSAnJwoKICAgICAgICBpZiB3b3JkID09
ICdjc3MnIG9yIHdvcmQgPT0gJ3N2Zycgb3Igd29yZCA9PSAneHBhdGgnIG9yIHdvcmQgPT0gJ2h0
bWwnOgogICAgICAgICAgICByZXMgPSBhZGRfd29yZChyZXMsIHdvcmQpCiAgICAgICAgICAgIHdv
cmQgPSAnJwoKICAgICAgICBpZiB3b3JkID09ICdwcml2YXRlJzoKICAgICAgICAgICAgcHJpdmF0
ZSA9IDEKICAgICAgICAgICAgd29yZCA9ICcnCgogICAgaWYgd29yZDoKICAgICAgICByZXMgPSBh
ZGRfd29yZChyZXMsIHdvcmQpCgogICAgaWYgcHJpdmF0ZToKICAgICAgICByZXMgPSByZXMgKyAi
LXByaXZhdGUiCgogICAgcmV0dXJuIHJlcy5yZXBsYWNlKCJnZG9tLy0iLCAiZ2RvbS8iKQoKZGVm
IHByb2Nlc3MobGluZSk6CiAgICBpZHggPSBsaW5lLmZpbmQoIi5jcHAiKQogICAgaWYgaWR4ID49
IDA6CiAgICAgICAgcmV0dXJuIGxpbmUKICAgIGlkeCA9IGxpbmUuZmluZCgibGliZ2RvbSIpCiAg
ICBpZiBpZHggPj0gMDoKICAgICAgICByZXR1cm4gbGluZQogICAgaWR4ID0gbGluZS5maW5kKCJn
ZG9tIikKICAgIGlmIGlkeCA8IDA6CiAgICAgICAgcmV0dXJuIGxpbmUKICAgIGRvdCA9IGxpbmUu
ZmluZCgiLiIsIGlkeCkKICAgIHJldHVybiBsaW5lWzppZHhdICsgbGNhc2UobGluZVtpZHg6ZG90
XSkgKyBsaW5lW2RvdDpdCgpmb3IgbCBpbiBvcGVuKHN5cy5hcmd2WzFdKS5yZWFkbGluZXMoKToK
ICAgIHN5cy5zdGRvdXQud3JpdGUocHJvY2VzcyhsKSkKCnN5cy5zdGRvdXQuY2xvc2UoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23812</attachid>
            <date>2008-09-25 12:02:48 -0700</date>
            <delta_ts>2009-07-12 14:28:05 -0700</delta_ts>
            <desc>last patch - end of current available time and resources </desc>
            <filename>sd1</filename>
            <type>text/plain</type>
            <size>230868</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNjkwMikKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtODksNyArOTAsOCBAQAogIyBDb252ZW5pZW5jZSBsaWJyYXJpZXMKIG5vaW5zdF9MVExJQlJB
UklFUyA9IFwKIAlsaWJKYXZhU2NyaXB0Q29yZS5sYSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYldl
YkNvcmUubGEgXAorCWxpYmdkb20ubGEKIAogIwogIyBKYXZhU2NyaXB0Q29yZQpAQCAtMTA1LDcg
KzEwNyw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMg
XAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3d0ZiBcCiAJLUkkKHNyY2RpcikvSmF2YVNj
cmlwdENvcmUva2pzIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCS1JJCh0
b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3Jl
L2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1
ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5
b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTE1Miw2ICsxNTUsMTAgQEAKIHdlYmNvcmVndGtfY3BwZmxh
Z3MgOj0KIHdlYmNvcmVndGtfc291cmNlcyA6PQogCit3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9IFwK
KwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9nZG9tIFwKKwktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrL2dkb20KKwogbm9kaXN0X2xpYldlYkNvcmVfbGFfU09VUkNFUyA9IFwKIAkkKHdl
YmNvcmVfYnVpbHRfc291cmNlcykKIApAQCAtMjEwLDYgKzIxNyw1NSBAQAogCSQoSlBFR19MSUJT
KSBcCiAJLWxwdGhyZWFkCiAKKyMgbGliZ2RvbQorbGliZ2RvbV9idWlsdF9zb3VyY2VzIDo9Cits
aWJnZG9tX3NvdXJjZXMgOj0KK2xpYmdkb21faF9hcGkgOj0KK2xpYmdkb21fY3BwZmxhZ3MgOj0K
K2xpYmdkb21fbGFkaXIgPSAkKHByZWZpeCkvaW5jbHVkZS93ZWJraXQtMS4wL2dkb20KK2xpYmdk
b21fbGFfSEVBREVSUyA9IFwKKyAgICAgICAgJChsaWJnZG9tX2hfYXBpKSBcCisJCSQoc3JjZGly
KS9XZWJLaXQvZ3RrL2dkb20vZ2RvbS5oIAorCitsaWJnZG9tX2NwcGZsYWdzICs9IFwKKwkkKGds
b2JhbF9jcHBmbGFncykgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAorCS1JJCh0b3BfYnVp
bGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9nZG9tIFwKKwkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrL2dkb20gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRT
b3VyY2VzL2dkb20gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisKK2xpYmdk
b21fbGFfU09VUkNFUyA9IFwKKwkkKGxpYmdkb21fc291cmNlcykgCisKK25vZGlzdF9saWJnZG9t
X2xhX1NPVVJDRVMgPSBcCisJJChsaWJnZG9tX2J1aWx0X3NvdXJjZXMpIAorCitsaWJnZG9tX2xh
X0NQUEZMQUdTID0gXAorCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCisJJCh3ZWJjb3JlX2NwcGZsYWdz
KSBcCisJJChHTE9CQUxERVBTX0NGTEFHUykgXAorCSQoV0VCS0lUREVQU19DRkxBR1MpIFwKKwkk
KGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKSBcCisJJChsaWJnZG9tX2NwcGZsYWdzKSAKKworbGli
Z2RvbV9sYV9MSUJBREQgPSBcCisJbGliV2ViQ29yZS5sYSBcCisJJChHTE9CQUxERVBTX0xJQlMp
IFwKKwkkKFdFQktJVERFUFNfTElCUykgXAorCSQoWFRfTElCUykgXAorCSQoTElCQ1VSTF9MSUJT
KSBcCisJJChMSUJTT1VQX0xJQlMpIFwKKwkkKEZSRUVUWVBFX0xJQlMpIFwKKwkkKFVOSUNPREVf
TElCUykgXAorCSQoU1FMSVRFM19MSUJTKSBcCisJJChHU1RSRUFNRVJfTElCUykgXAorCSQoTElC
WFNMVF9MSUJTKSBcCisJJChISUxET05fTElCUykgXAorCSQoSlBFR19MSUJTKSBcCisJLWxwdGhy
ZWFkCisKICMgV2ViS2l0CiB3ZWJraXRndGtfaF9hcGkgOj0KIHdlYmtpdGd0a19zb3VyY2VzIDo9
CkBAIC0yMjQsOCArMjgwLDE1IEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2lu
Y2x1ZGUvd2Via2l0LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkk
KHdlYmtpdGd0a19oX2FwaSkgXAorCSQobGliZ2RvbV9oX2FwaSkgXAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGVudW10eXBlcy5oCiAKKyMgY29tbWVudCB0aGVzZSBvdXQgZm9yIG5vdywgc2Vl
IHdoYXQgaGFwcGVucworIwkkKGxpYmdkb21faF9hcGkpIAorIwlXZWJLaXQvZ3RrL3dlYmtpdC9n
ZG9tLmggCisjV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisjV2ViS2l0L2d0ay93
ZWJraXQvZ2RvbWRlZmluZXMuaAorCiBsaWJ3ZWJraXRfMV8wX2xhX1NPVVJDRVMgPSBcCiAJJCh3
ZWJraXRndGtfc291cmNlcykKIApAQCAtMjQ2LDcgKzMwOSw3IEBACiAJJChub191bmRlZmluZWQp
CiAKIGxpYndlYmtpdF8xXzBfbGFfTElCQUREID0gXAotCWxpYldlYkNvcmUubGEKKwlsaWJnZG9t
LmxhIAogCiAjCiAjIEV4dHJhIGNoZWNrcyBhbmQgZmxhZ3MKQEAgLTI5Nyw2ICszNjAsMTc3IEBA
CiB3ZWJjb3JlX2xpYmFkZCArPSAtbGdzdGludGVyZmFjZXMtMC4xMCAtbGdzdHZpZGVvLTAuMTAK
IGVuZGlmCiAKKworV2ViS2l0L2d0ay9nZG9tL2dkb20uaDoKKyMgVE9ETzogYXV0by1nZW5lcmF0
ZSB0aGlzIGZpbGUKKworIyQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdk
b21FdmVudFRhcmdldE5vZGUuY3BwOiBcCisjCQkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay9n
ZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmgKKworCitsaWJnZG9tX2hfYXBpICs9
IFwKKwkkKHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaFwKKwkk
KHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21Eb2N1bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUF0dHIuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21CYXJJbmZvLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ2FudmFzR3JhZGllbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQ
YXR0ZXJuLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNoYXJhY3RlckRhdGEuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DbGlwYm9h
cmQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21tZW50LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ29uc29sZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvdW50ZXIu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU0ltcG9ydFJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1
bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQYWdlUnVsZS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ1NTUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGVMaXN0Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU1N0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYWx1ZS5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlTGlzdC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURh
dGFiYXNlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50VHlwZS5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbURPTUFwcGxpY2F0aW9uQ2FjaGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21ET01Db3JlRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NSW1wbGVt
ZW50YXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01QYXJzZXIuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21ET01XaW5kb3cuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRW50aXR5UmVmZXJlbmNlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnRFeGNl
cHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUZpbGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlTGlzdC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhpc3RvcnkuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxBcHBsZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxCb2R5RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxC
UkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQnV0dG9uRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENvbGxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxEaXZFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERMaXN0RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEb2N1bWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEVtYmVkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGaWVsZFNl
dEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9ybUVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxI
ZWFkRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIZWFkaW5nRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIUkVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MSHRtbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MSUZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJ
bWFnZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSW5wdXRFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTExJRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMaW5rRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXBFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTE1lbnVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TE1ldGFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTE9wdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0aW9u
c0NvbGxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUHJlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MU2NyaXB0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTZWxlY3RF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTFRhYmxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxU
YWJsZVJvd0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUZXh0QXJlYUVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUltYWdlRGF0YS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUphdmFTY3Jp
cHRDYWxsRnJhbWUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21LZXlib2FyZEV2ZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTG9jYXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21NZWRpYUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZXNzYWdlRXZl
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21N
b3VzZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTXV0YXRpb25FdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5hdmlnYXRvci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUxp
c3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU92ZXJmbG93RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Q
bHVnaW5BcnJheS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21S
YW5nZUV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmVjdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNj
cmVlbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTEVycm9yLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1FMUmVzdWx0U2V0Um93TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFRyYW5z
YWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZUV2ZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVN0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVRleHRNZXRyaWNzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRyZWVXYWxrZXIuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21VSUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5p
bWF0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdFRyYW5zaXRpb25FdmVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1M
SHR0cFJlcXVlc3RVcGxvYWQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxTZXJpYWxp
emVyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVhQYXRoRXhwcmVzc2lvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRo
TlNSZXNvbHZlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoUmVzdWx0LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFNMVFByb2Nlc3Nvci5oCisKIHdlYmtpdGd0a19oX2Fw
aSArPSBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmggXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGRlZmluZXMuaCBcCkBAIC0zMDgsMTIgKzU0MiwxNyBAQAogCVdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuaAogCisjIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdkb21kZWZpbmVzLmgKKwogd2Via2l0
Z3RrX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdGVudW10eXBlcy5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy93ZWJraXRtYXJzaGFsLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5o
CiAKKyMJRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5jcHAgCisjCVdlYktpdC9ndGsvd2Vi
a2l0L2dkb21lbnVtdHlwZXMuaAorCiB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIFwKIAlXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIFwKQEAgLTMzNywxNCArNTc2LDE3IEBACiAJV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNl
dHRpbmdzLmNwcCBcCi0JV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKwlXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBcCisJV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZXZlbnQuY3BwICAKIAogd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKIAktREJVSUxESU5H
X1dFQktJVCBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHNyY2RpcikvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydCBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAot
CS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0CisJLUkkKHRvcF9idWlsZGRpcikv
V2ViS2l0L2d0ay93ZWJraXQgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGtcCisJLUkk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMKIAogd2Via2l0Z3RrX2NsZWFuZmlsZXMgKz0g
XAogCSQodG9wX2J1aWxkZGlyKS9Qcm9ncmFtcy9HdGtMYXVuY2hlciBcCkBAIC0zNTksNiArNjAx
LDkgQEAKIAlzdGFtcC13ZWJraXRlbnVtdHlwZXMuY3BwIFwKIAlzdGFtcC13ZWJraXRlbnVtdHlw
ZXMuaAogCisjCXN0YW1wLWdkb21lbnVtdHlwZXMuY3BwIAorIwlzdGFtcC1nZG9tZW51bXR5cGVz
LmggCisKIFdFQktJVF9NQVJTSEFMID0gJChHRU5TT1VSQ0VTKS93ZWJraXRtYXJzaGFsCiBXRUJL
SVRfTUFSU0hBTF9MSVNUID0gJChXRUJLSVRfTUFSU0hBTCkubGlzdAogCkBAIC00MzUsNiArNjgw
LDU0IEBACiAJJiYgY3AgeGdlbi1ndGMgJEAgXAogCSYmIHJtIC1mIHhnZW4tZ3RjCiAKK1dlYktp
dC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaDogc3RhbXAtZ2RvbWVudW10eXBlcy5oCisJQHRy
dWUKK3N0YW1wLWdkb21lbnVtdHlwZXMuaDogJChsaWJnZG9tX2hfYXBpKSBHTlVtYWtlZmlsZQor
CShjZCAkKHNyY2RpcikgXAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZoZWFkICIjaWZuZGVm
IEdET01fRU5VTV9UWVBFU19IXG4iIFwKKwkJCS0tZmhlYWQgIiNkZWZpbmUgR0RPTV9FTlVNX1RZ
UEVTX0hcblxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cblxuIiBc
CisJCQktLWZoZWFkICJHX0JFR0lOX0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFpbCAiR19FTkRfREVD
TFNcblxuIiBcCisJCQktLWZ0YWlsICIjZW5kaWZcbiIgXAorCQkJLS1mcHJvZCAiI2luY2x1ZGUg
PEBmaWxlbmFtZUA+XG5cbiIgXAorCQkJLS1lcHJvZCAiI2RlZmluZSBHRE9NX1RZUEVfQEVOVU1T
SE9SVEAgQGVudW1fbmFtZUBfZ2V0X3R5cGUoKVxuXG4iIFwKKwkJCS0tZXByb2QgIldFQktJVF9B
UEkgR1R5cGVcbkBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpO1xuXG4iIFwKKwkJCSQobGliZ2Rv
bV9oX2FwaSkgfCBcCisJCQlzZWQgJ3MsV2ViS2l0L2d0ay8sLCcgfCBcCisJCXNlZCAncyx3ZWJf
a2l0LGdkb20sJyB8IFwKKwkJc2VkICdzLEdET01fVFlQRV9LSVQsR0RPTV9UWVBFLCcgXAorCQkp
ID4geGdlbi1jZ3RoIFwKKwkmJiAoY21wIC1zIHhnZW4tY2d0aCBXZWJLaXQvZ3RrL3dlYmtpdC9n
ZG9tZW51bXR5cGVzLmggfHwgY3AgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVt
dHlwZXMuaCkgXAorCSYmIHJtIC1mIHhnZW4tY2d0aCBcCisJJiYgZWNobyB0aW1lc3RhbXAgPiAk
KEBGKQorCisjICAgICAgICAgICAgICAtLWZoZWFkICIjaW5jbHVkZSA8d2Via2l0L2dkb21kZWZp
bmVzLmg+XG5cbiIgCisKK0Rlcml2ZWRTb3VyY2VzL2dkb21lbnVtdHlwZXMuY3BwOiAkKGxpYmdk
b21faF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYgZ2xpYi1ta2VudW1z
IFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxjb25maWcuaD5cbiIgXAorCQkJLS1maGVhZCAiI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG4iIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIFwiJCh0b3Bf
YnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaFwiXG5cbiIgXAorCQkJ
LS1maGVhZCAiZXh0ZXJuIFwiQ1wiIHtcblxuIiBcCisJCQktLWZwcm9kICJcbi8qIGVudW1lcmF0
aW9ucyBmcm9tIFwiQGZpbGVuYW1lQFwiICovIiBcCisJCQktLXZoZWFkICJzdGF0aWMgY29uc3Qg
R0BUeXBlQFZhbHVlIF9AZW51bV9uYW1lQF92YWx1ZXNbXSA9IHsiIFwKKwkJCS0tdnByb2QgIiAg
ICB7IEBWQUxVRU5BTUVALCBcIkBWQUxVRU5BTUVAXCIsIFwiQHZhbHVlbmlja0BcIiB9LCIgXAor
CQkJLS12dGFpbCAiICAgIHsgMCwgTlVMTCwgTlVMTCB9XG59O1xuXG4iIFwKKwkJCS0tdnRhaWwg
IkdUeXBlIEBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpXG57XG4iIFwKKwkJCS0tdnRhaWwgIiAg
ICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7XG5cbiIgXAorCQkJLS12dGFpbCAiICAgIGlmICghdHlw
ZSlcbiIgXAorCQkJLS12dGFpbCAiICAgICAgICB0eXBlID0gZ19AdHlwZUBfcmVnaXN0ZXJfc3Rh
dGljKFwiQEVudW1OYW1lQFwiLCBfQGVudW1fbmFtZUBfdmFsdWVzKTtcblxuIiBcCisJCQktLXZ0
YWlsICIgICAgcmV0dXJuIHR5cGU7XG59XG5cbiIgXAorCQkJLS1mdGFpbCAifVxuIiBcCisJCSQo
bGliZ2RvbV9oX2FwaSkgfCBcCisJCXNlZCAncyx3ZWJfa2l0LGdkb20sJyBcCisJCSkgPiB4Z2Vu
LWNndGMgXAorCSYmIGNwIHhnZW4tY2d0YyAkQCBcCisJJiYgcm0gLWYgeGdlbi1jZ3RjCisKICMg
RU5EIFdFQktJVCBHVEsrCiAjCiAjIEZpbGVzIHRoYXQgd2lsbCBiZSBkaXN0cmlidXRlZApAQCAt
NDU3LDYgKzc1MCw4IEBACiBCVUlMVF9TT1VSQ0VTID0gXAogCSQoamF2YXNjcmlwdGNvcmVfYnVp
bHRfc291cmNlcykgXAogCSQoamF2YXNjcmlwdGNvcmVfYnVpbHRfbm9zb3VyY2VzKSBcCisJJChs
aWJnZG9tX2J1aWx0X3NvdXJjZXMpIFwKKwkkKGxpYmdkb21fYnVpbHRfbm9zb3VyY2VzKSBcCiAJ
JCh3ZWJjb3JlX2J1aWx0X3NvdXJjZXMpIFwKIAkkKHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzKSBc
CiAJJCh3ZWJraXRndGtfYnVpbHRfc291cmNlcykgXApJbmRleDogV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDM2OTAy
KQorKysgV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIzMSw2ICsyMzEsNyBAQAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50OjpmcmFtZUxvYWRlckRlc3Ryb3llZCgpCiB7CisgICAgZ19vYmplY3RfdW5yZWYobV9mcmFt
ZSk7CiAgICAgbV9mcmFtZSA9IDA7CiAgICAgZGVsZXRlIHRoaXM7CiB9CkBAIC00NzEsOSArNDcy
LDcgQEAKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGV0YWNoZWRGcm9tUGFyZW50NCgpCiB7
Ci0gICAgQVNTRVJUKG1fZnJhbWUpOwotICAgIGdfb2JqZWN0X3VucmVmKG1fZnJhbWUpOwotICAg
IG1fZnJhbWUgPSAwOworICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnQ6OmxvYWRlZEZyb21DYWNoZWRQYWdlKCkKSW5kZXg6IFdlYktpdC9ndGsvR0RPTU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvR0RPTU9iamVjdC5oCShyZXZpc2lvbiAw
KQorKysgV2ViS2l0L2d0ay9HRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRv
biA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX0dET01PYmplY3RfaF9fCisjZGVmaW5lIF9fR0RP
TU9iamVjdF9oX18KKworY2xhc3MgR0RPTU9iamVjdCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
R0RPTU9iamVjdCgpIHt9CisKKyAgICAvKiB0aGlzIGlzIGFuIGFic29sdXRlbHkgY3JpdGljYWwg
ZnVuY3Rpb24gd2hpY2ggYWxsb3dzCisgICAgICogdGhlIHVzZSBvZiB0b0dET00oKSB0byBkZWNp
ZGUsIHRocm91Z2ggdHlwZWNhc3RpbmcKKyAgICAgKiB3aGljaCBnb2JqZWN0IHNob3VsZCBiZSBy
ZXR1cm5lZC4gIHNlZSBHRE9NQmluZGluZy5jcHAsCisgICAgICogR0RPTUh0bWxFbGVtZW50V3Jh
cHBlckZhY3RvcnkuY3BwIGFuZCBvdGhlciBzaW1pbGFyCisgICAgICogZmlsZXMgZm9yIGV4YW1w
bGVzLgorICAgICAqLworICAgIHZpcnR1YWwgaW50IGdldEdvYmpUeXBlKCkgPSAwOworfTsKKwor
I2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCShyZXZpc2lvbiAz
NjkwMikKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMSArMSwxMyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBI
b2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2Vu
bmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBs
ZSBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5A
aW1lbmRpby5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KICAqIENv
cHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgogICoKKyAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCkBAIC0zMCwxOCArMzIsMjkgQEAKICNpbmNsdWRlICJ3ZWJraXRwcml2YXRlLmgiCiAKICNp
bmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIK
ICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRl
ICJHZG9tRE9NV2luZG93LmgiCisjaW5jbHVkZSAiR2RvbURPTVdpbmRvd1ByaXZhdGUuaCIKKyNp
bmNsdWRlICJHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1
ZGUgIkdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdFBy
aXZhdGUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJIVE1MRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKKyNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIlByaW50
Q29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVl
QXNUZXh0LmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIlRleHREb2N1bWVudC5oIgogCiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQVBJQ2FzdC5oPgogCkBAIC00OSw2ICs2MiwxMiBAQAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgZ3BvaW50ZXIgdG9HRE9NKERPTVdpbmRvdyogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00o
RG9jdW1lbnQqIGRvYyk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0KiBvYmop
OworfQorCiBleHRlcm4gIkMiIHsKIAogZW51bSB7CkBAIC01Nyw2ICs3Niw3IEBACiAgICAgTE9B
RF9ET05FLAogICAgIFRJVExFX0NIQU5HRUQsCiAgICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAorICAg
IEJST1dTRVJfRVZFTlQsCiAgICAgTEFTVF9TSUdOQUwKIH07CiAKQEAgLTE2Miw2ICsxODIsMTcg
QEAKICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBFX1NUUklO
RywgR19UWVBFX1NUUklORyk7CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbQlJPV1NF
Ul9FVkVOVF0gPSBnX3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICAgICAgR19U
WVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShH
X1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiB8CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHX1NJR05BTF9ERVRBSUxFRCksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAg
TlVMTCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lE
X19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICAg
ICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZUEVfQk9PTEVBTik7CisKICAgICAvKgogICAgICAqIGlt
cGxlbWVudGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KQEAgLTI5NCw2ICszMjUs
OTIgQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0
OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdy
YXBwZXIgYXJvdW5kIGFuIFhNTEh0dHBSZXF1ZXN0CisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdk
b21YTUxIdHRwUmVxdWVzdAorICovCitHZG9tWE1MSHR0cFJlcXVlc3QqIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X3htbF9odHRwX3JlcXVlc3QoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKwor
ICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBG
cmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7Cisg
ICAgcmV0dXJuIEdET01fWE1MX0hUVFBfUkVRVUVTVChXZWJDb3JlOjp0b0dET00oWE1MSHR0cFJl
cXVlc3Q6OmNyZWF0ZShjb3JlRnJhbWUtPmRvY3VtZW50KCkpLmdldCgpKSk7Cit9CisKKy8qKgor
ICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdzoKKyAqIEBmcmFtZTogYSAjV2ViS2l0
V2ViRnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERPTVdpbmRv
dworICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tRE9NV2luZG93CisgKi8KK0dkb21ET01XaW5k
b3cqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3coV2ViS2l0V2ViRnJhbWUqIGZyYW1l
KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUp
LCBOVUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnBy
aXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNv
cmVGcmFtZSk7CisgICAgUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbiA9IGNvcmVGcmFtZS0+ZG9t
V2luZG93KCk7CisgICAgcmV0dXJuIEdET01fRE9NX1dJTkRPVyhXZWJDb3JlOjp0b0dET00od2lu
LmdldCgpKSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50
OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdy
YXBwZXIgYXJvdW5kIGEgRG9jdW1lbnQgCisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21Eb2N1
bWVudAorICovCitHZG9tRG9jdW1lbnQqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVu
dChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVBy
aXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3Jl
KGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICByZXR1cm4gR0RPTV9ET0NVTUVO
VChXZWJDb3JlOjp0b0dET00oY29yZUZyYW1lLT5kb2N1bWVudCgpKSk7Cit9CisKKy8qIFhYWCBU
T0RPOiBtYWtlIHRoaXMgbm90IHRha2UgZnJhbWUqIGFzIGFuIGFyZ3VtZW50LAorICogYW5kIG1h
a2UgaXQgcmV0dXJuIGEgR2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MgKi8KK2V4dGVybiAiQyIgewor
V0VCS0lUX0FQSSBnYm9vbGVhbgorYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJG
cmFtZSogd2YsIEZyYW1lICpmcmFtZSwgY29uc3QgY2hhciAqbmFtZSk7Cit9CisKKy8qKgorICog
d2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJhbWU6IGEgI1dlYktp
dFdlYkZyYW1lCisgKgorICogYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZnJhbWUncyBk
b2N1bWVudAorICoKKyAqIFJldHVybiB2YWx1ZTogdGhlIG5hbWUgb2YgQGZyYW1lCisgKi8KK2di
b29sZWFuIHdlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1l
KiBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGdjaGFyKiBldmVudF90eXBlKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfRlJBTUUoZnJhbWUpLCBGQUxTRSk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJp
dmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUo
ZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCisgICAgcmV0dXJuIGFkZF93aW5kb3df
ZXZlbnRfbGlzdGVuZXIoZnJhbWUsIGNvcmVGcmFtZSwgZXZlbnRfdHlwZSk7Cit9CisKKy8qKgog
ICogd2Via2l0X3dlYl9mcmFtZV9nZXRfbmFtZToKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJh
bWUKICAqCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgJKHJldmlzaW9u
IDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0
aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBFdmVudExpc3RlbmVy
Tm9kZV9oCisjZGVmaW5lIEV2ZW50TGlzdGVuZXJOb2RlX2gKKworI2luY2x1ZGUgPGdsaWIuaD4K
KyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKKyNpbmNsdWRlICJnZG9tL0dk
b21FdmVudFRhcmdldE5vZGUuaCIKKworLyogVE9ETzogcmV0dXJuIHRoZSBhY3R1YWwgZXZlbnQg
bGlzdGVuZXIgY3JlYXRlZCwgd2hpY2ggcmVxdWlyZXMKKyAqIGEgZ2xpYiB3cmFwcGVyIG9iamVj
dCB0byBiZSBjcmVhdGVkLgorICogVE9ETzogcHJvdmlkZSBhICdyZW1vdmVfZXZlbnRfbGlzdGVu
ZXInIHdoaWNoIHRha2VzIHRoYXQgZ2xpYgorICogb2JqZWN0IGFzIGFuIGFyZ3VtZW50ICovCitl
eHRlcm4gIkMiIHsKK1dFQktJVF9BUEkKK2dib29sZWFuIGFkZF9ldmVudF9saXN0ZW5lcihHZG9t
RXZlbnRUYXJnZXROb2RlICp3ZiwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnYm9vbGVhbiB1c2VDYXB0dXJlKTsKK30KKworI2VuZGlmIC8qRXZlbnRMaXN0
ZW5lck5vZGVfaCovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9u
IDM2OTAyKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhh
bnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBh
dG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDkg
QEAKIAogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0
L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21ET01XaW5kb3cuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxI
dHRwUmVxdWVzdC5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTYxLDYgKzY1LDE1IEBACiBXRUJL
SVRfQVBJIFdlYktpdFdlYkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIEdkb21Y
TUxIdHRwUmVxdWVzdCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0ICAg
ICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21ET01X
aW5kb3cgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyAgICAgICAoV2ViS2l0V2Vi
RnJhbWUgICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRG9jdW1lbnQgKgord2Via2l0
X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAq
ZnJhbWUpOworCiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3dlYl9mcmFtZV9n
ZXRfd2ViX3ZpZXcgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKQEAgLTkz
LDYgKzEwNiwxMCBAQAogV0VCS0lUX0FQSSBKU0dsb2JhbENvbnRleHRSZWYKIHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X2dsb2JhbF9jb250ZXh0IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwog
CitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5l
cihXZWJLaXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKm5hbWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5k
aWYKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9u
IDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEV2ZW50TGlzdGVu
ZXJXaW5kb3dfaAorI2RlZmluZSBFdmVudExpc3RlbmVyV2luZG93X2gKKworI2luY2x1ZGUgPGds
aWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCisKK2V4dGVybiAiQyIg
eworLyogVE9ETzogbWFrZSBhIEdkb21FdmVudExpc3RlbmVyIGNsYXNzLCB0byBiZSByZXR1cm5l
ZCBoZXJlICovCit9CisKKyNlbmRpZiAvKkV2ZW50TGlzdGVuZXJXaW5kb3dfaCovCkluZGV4OiBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJldmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xA
bGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV2
ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXaW5k
b3cuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyTm9kZS5oIgorI2luY2x1ZGUgIkV2ZW50VGFy
Z2V0Tm9kZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1
ZGUgIkdkb21FdmVudC5oIgorI2luY2x1ZGUgIkdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlLmgi
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNp
bmNsdWRlICJHZG9tWE1MSHR0cFJlcXVlc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0
dHBSZXF1ZXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJTdHJpbmdJbXBsLmgi
CisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgorCisK
KworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAg
IGdwb2ludGVyIHRvR0RPTShFdmVudCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRU
YXJnZXROb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3QqIG5v
ZGUpOworfQorCisKK2NsYXNzIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBF
dmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxYTUxIdHRwUmVx
dWVzdEV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9tWE1MSHR0cFJlcXVlc3QqIHdmKQorICAgIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIod2YpKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChFdmVudCosIGJvb2wgdXNlQ2FwdHVyZSk7CisK
KyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0cmR1
cChldnR5cGUpOyB9CisgICAgcHJpdmF0ZToKKyAgICBjaGFyICptX3R5cGU7CisgICAgWE1MSHR0
cFJlcXVlc3RFdmVudExpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCogd2YpCisgICAgICAgICAg
IDogbV93Zih3ZikKKyAgICAgICAgICAgLCBtX3R5cGUoTlVMTCkKKyAgICB7fQorICAgIH5YTUxI
dHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAg
ICAgICAgICAgIGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBHZG9tWE1MSHR0cFJlcXVlc3Qq
IG1fd2Y7Cit9OworCit2b2lkIFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZl
bnQoRXZlbnQqIGV2ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFs
OworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMi
LCBtX3R5cGUpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dE
T00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgZXZuYW1lLCB3ZXYs
IHVzZUNhcHR1cmUsICZyZXR2YWwpOworICAgIGdfZnJlZShldm5hbWUpOworfQorCitjbGFzcyBO
b2RlRXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxOb2RlRXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21FdmVudFRhcmdl
dE5vZGUqIHdmKQorICAgIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOb2RlRXZlbnRMaXN0ZW5lcih3
ZikpOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCB1c2VDYXB0
dXJlKTsKKworICAgIHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlwZSA9
IGdfc3RyZHVwKGV2dHlwZSk7IH0KK3ByaXZhdGU6CisgICAgY2hhciAqbV90eXBlOworICAgIE5v
ZGVFdmVudExpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUqIHdmKQorICAgICAgICAgICAgOiBt
X3dmKHdmKQorICAgICAgICAgICAgLCBtX3R5cGUoTlVMTCkKKyAgICB7fQorICAgIH5Ob2RlRXZl
bnRMaXN0ZW5lcigpCisgICAgeworICAgICAgICBpZiAobV90eXBlKQorICAgICAgICAgICAgZ19m
cmVlKG1fdHlwZSk7CisgICAgfQorICAgIEdkb21FdmVudFRhcmdldE5vZGUqIG1fd2Y7Cit9Owor
Cit2b2lkIE5vZGVFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wg
dXNlQ2FwdHVyZSkKK3sKKyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgY2hhciAqZXZuYW1lID0g
Z19zdHJkdXBfcHJpbnRmKCJicm93c2VyLWV2ZW50OjolcyIsIG1fdHlwZSk7CisgICAgR2RvbUV2
ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYkNvcmU6OnRvR0RPTShldmVudCkpOworICAgIGdfc2ln
bmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5hbWUsIHdldiwgdXNlQ2FwdHVyZSwgJnJldHZhbCk7
CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9CisKK2NsYXNzIFdpbmRvd0V2ZW50TGlzdGVuZXIgOiBw
dWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2lu
ZG93RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFdlYktpdFdlYkZyYW1lKiB3ZikKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2luZG93RXZlbnRMaXN0ZW5lcih3ZikpOyAKKyAgICB9
CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCBpc1dpbmRvd0V2ZW50
KTsKKyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0
cmR1cChldnR5cGUpOyB9Citwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsKKyAgICBXaW5kb3dF
dmVudExpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3ZikKKyAgICAgICAgICAgOiBtX3dmKHdmKQor
ICAgICAgICAgICAsIG1fdHlwZShOVUxMKQorICAgIHt9CisgICAgfldpbmRvd0V2ZW50TGlzdGVu
ZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAgICAgICAgICAgIGdfZnJlZShtX3R5
cGUpOworICAgIH0KKyAgICBXZWJLaXRXZWJGcmFtZSogbV93ZjsKK307CisKK3ZvaWQgV2luZG93
RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZl
bnQpCit7CisgICAgY2hhciAqZXZuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCJicm93c2VyLWV2ZW50
OjolcyIsIG1fdHlwZSk7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIEdkb21FdmVudCAqd2V2
ID0gR0RPTV9FVkVOVChXZWJDb3JlOjp0b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUobV93ZiwgZXZuYW1lLCB3ZXYsIGlzV2luZG93RXZlbnQsICZyZXR2YWwpOworICAg
IGdfZnJlZShldm5hbWUpOworfQorCitleHRlcm4gIkMiIHsKKworZ2Jvb2xlYW4gYWRkX3htbF9o
dHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0ICp3ZiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKQoreworICAgIFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0ICpyZXEgPSBnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0X3ByaXZhdGUo
d2YpOworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIGlmICghcmVx
KQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBpZiAoc3RyY21wKG5hbWUsICJvbnJlYWR5
c3RhdGVjaGFuZ2UiKSA9PSAwKQorICAgIHsKKyAgICAgICAgUmVmUHRyPFhNTEh0dHBSZXF1ZXN0
RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXI7CisgICAgICAgIGxpc3RlbmVyID0gWE1MSHR0cFJlcXVl
c3RFdmVudExpc3RlbmVyOjpjcmVhdGUod2YpOworICAgICAgICBsaXN0ZW5lci0+c2V0X3R5cGUo
bmFtZSk7CisgICAgICAgIHJlcS0+c2V0T25SZWFkeVN0YXRlQ2hhbmdlTGlzdGVuZXIobGlzdGVu
ZXIpOworICAgICAgICByZXR1cm4gVFJVRTsKKyAgICB9CisgICAgcmV0dXJuIEZBTFNFOworfSAK
KworZ2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBj
b25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVz
ZUNhcHR1cmUpCit7CisgICAgV2ViQ29yZTo6Tm9kZSAqbm9kZSA9IGdkb21fZXZlbnRfdGFyZ2V0
X25vZGVfZ2V0X3ByaXZhdGUod2YpOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNFdmVudFRh
cmdldE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIFdlYkNvcmU6OkV2ZW50VGFy
Z2V0Tm9kZSAqIGV0biA9IChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKj4o
bm9kZSkpLT50b05vZGUoKTsKKyAgICBpZiAoIWV0bikKKyAgICAgICAgcmV0dXJuIEZBTFNFOwor
CisgICAgUmVmUHRyPE5vZGVFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IE5vZGVFdmVudExpc3Rl
bmVyOjpjcmVhdGUod2YpOworICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICBldG4t
PmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOworCisgICAgcmV0
dXJuIFRSVUU7CisKK30gCisKK2dib29sZWFuIGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2Vi
S2l0V2ViRnJhbWUgKndmLCBGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1l
LT5kb2N1bWVudCgpOworCisgICAgUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVuZXI+IGxpc3RlbmVy
ID0gV2luZG93RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBsaXN0ZW5lci0+c2V0X3R5
cGUobmFtZSk7CisgICAgZG9jLT5hZGRXaW5kb3dFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVy
LCB0cnVlKTsKKworICAgIHJldHVybiBUUlVFOworCit9IAorCit9IC8qIGV4dGVybiBDICovCklu
ZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3Qu
aAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRw
UmVxdWVzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+Cisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKwor
I2lmbmRlZiBFdmVudExpc3RlbmVyWG1sSHR0cFJlcXVlc3RfaAorI2RlZmluZSBFdmVudExpc3Rl
bmVyWG1sSHR0cFJlcXVlc3RfaAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtp
dC93ZWJraXRkZWZpbmVzLmg+CisKKworI2luY2x1ZGUgImdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0
LmgiCisKKy8qIFRPRE86IHJldHVybiB0aGUgYWN0dWFsIGV2ZW50IGxpc3RlbmVyIGNyZWF0ZWQs
IHdoaWNoIHJlcXVpcmVzCisgKiBhIGdsaWIgd3JhcHBlciBvYmplY3QgdG8gYmUgY3JlYXRlZC4K
KyAqIFRPRE86IHByb3ZpZGUgYSAncmVtb3ZlX2V2ZW50X2xpc3RlbmVyJyB3aGljaCB0YWtlcyB0
aGF0IGdsaWIKKyAqIG9iamVjdCBhcyBhbiBhcmd1bWVudCAqLworZXh0ZXJuICJDIiB7CitXRUJL
SVRfQVBJCitnYm9vbGVhbiBhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9saXN0ZW5lcihHZG9t
WE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7Cit9
CisKKyNlbmRpZiAvKkV2ZW50TGlzdGVuZXJYbWxIdHRwUmVxdWVzdF9oKi8KSW5kZXg6IFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRkZWZpbmVzLmgJKHJldmlzaW9uIDM2OTAyKQorKysgV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZGVmaW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw5IEBACiAKIEdf
QkVHSU5fREVDTFMKIAordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50IFdlYktpdEV2ZW50Owor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgV2ViS2l0RXZlbnRDbGFzczsKKwogdHlw
ZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0IFdlYktpdE5ldHdvcmtSZXF1ZXN0Owog
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3MgV2ViS2l0TmV0d29ya1Jl
cXVlc3RDbGFzczsKIApJbmRleDogV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3RJbnRlcm5h
bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0SW50ZXJuYWwu
aAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0SW50ZXJuYWwu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQXBwbGUgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorCkluZGV4OiBXZWJLaXQv
Z3RrL2dkb20vR2RvbURPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9H
ZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9i
amVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBHZG9tRE9NT2JqZWN0X2gKKyNkZWZpbmUg
R2RvbURPTU9iamVjdF9oCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9H
ZG9tRE9NT2JqZWN0IEdkb21ET01PYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVj
dENsYXNzIEdkb21ET01PYmplY3RDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVD
VCAgICAgICAgICAgIChnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9E
T01fT0JKRUNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9i
aiksIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0KSkKKyNkZWZpbmUgR0RPTV9E
T01fT0JKRUNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNz
KSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorI2RlZmluZSBH
RE9NX0lTX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpF
Q1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9U
WVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX0NMQVNTKG9iaikg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1Qs
IEdkb21ET01PYmplY3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJp
dmF0ZSBHZG9tRE9NT2JqZWN0UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0IHsKKyAg
ICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKworICAgIEdkb21ET01PYmplY3RQcml2YXRlICpw
cml2OworfTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFz
cyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9tX2RvbV9vYmplY3Rf
Z2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0
X2RvbV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5k
aWYgLyogR2RvbURPTU9iamVjdF9oICovCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYktpdC9n
dGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1lcmdlaW5mbwoK
SW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0
ay9nZG9tL0dTdHJpbmdDb252ZXJ0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtj
bEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworCisjaWZuZGVmIEdTdHJpbmdDb252ZXJ0X2gKKyNkZWZpbmUgR1N0cmluZ0Nv
bnZlcnRfaAorCisvKiBjb252ZW5pZW5jZSBjKysgY2xhc3MgZm9yIGNvbnZlcnRpbmcgdmFyaW91
cyBkaWZmZXJlbnQgd2Via2l0CisgKiBzdHJpbmcgdHlwZXMgaW50byBhIHV0ZjggZ2xpYiBzdHJp
bmcuCisgKi8KKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkNTdHJpbmcu
aCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNs
dWRlICJ1c3RyaW5nLmgiCisKK2lubGluZSBnY2hhciAqIEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6
OlN0cmluZyBjb25zdCYgcykgeyByZXR1cm4gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQor
aW5saW5lIGdjaGFyICogR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6S1VSTCBjb25zdCYgcykgeyBy
ZXR1cm4gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQoraW5saW5lIGdjaGFy
ICogR1N0cmluZ0NvbnZlcnQoY29uc3QgSlNDOjpVU3RyaW5nICYgcykgeyByZXR1cm4gZ19zdHJk
dXAocy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KK2lubGluZSBnY2hhciAqIEdTdHJpbmdDb252
ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IHJldHVybiBnX3N0cmR1cChzLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9CisKKyNlbmRpZiAvKiBHU3RyaW5nQ29udmVydF9oKi8K
SW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oCShy
ZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRl
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgR2RvbUV2ZW50VGFyZ2V0Tm9kZVBy
aXZhdGVfaAorI2RlZmluZSBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZV9oCisjaW5jbHVkZSAi
Z2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21Ob2RlUHJpdmF0ZS5oIgorY2xhc3Mg
V2ViQ29yZTo6Tm9kZTsKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2Rv
bUV2ZW50VGFyZ2V0Tm9kZTsKKworV0VCS0lUX0FQSSBXZWJDb3JlOjpOb2RlICoKK2dkb21fZXZl
bnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVxdWVzdCk7
CisKKyNlbmRpZgorCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZUlu
dGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5v
ZGVJbnRlcm5hbC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRh
cmdldE5vZGVJbnRlcm5hbC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisK
KyNpZm5kZWYgR2RvbUV2ZW50VGFyZ2V0Tm9kZUludGVybmFsX2gKKyNkZWZpbmUgR2RvbUV2ZW50
VGFyZ2V0Tm9kZUludGVybmFsX2gKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbU5vZGVJbnRlcm5hbC5oIgorR19CRUdJTl9ERUNMUworCitjbGFzcyBHRE9NRXZl
bnRUYXJnZXROb2RlIDogcHVibGljIEdET01Ob2RlIHsKKworcHVibGljOgorICAgIEdET01FdmVu
dFRhcmdldE5vZGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpOb2RlPiBpbXBsKSA6IEdET01Ob2RlKGlt
cGwpIHt9CisgICAgaW50IGdldF9nb2JqX3R5cGUoKSB7IHJldHVybiBHRE9NX1RZUEVfRVZFTlRf
VEFSR0VUX05PREU7IH0KK307CisKKworR19FTkRfREVDTFMKKyNlbmRpZgorCkluZGV4OiBXZWJL
aXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9n
dGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3Rr
L2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRv
a2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KKworI2lmbmRl
ZiBHZG9tRXZlbnRUYXJnZXROb2RlX2gKKyNkZWZpbmUgR2RvbUV2ZW50VGFyZ2V0Tm9kZV9oCisj
aW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5o
PgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2Rl
IEdkb21FdmVudFRhcmdldE5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9k
ZUNsYXNzIEdkb21FdmVudFRhcmdldE5vZGVDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRVZF
TlRfVEFSR0VUX05PREUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9E
RSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVf
Q0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9U
WVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3MpKQorI2RlZmlu
ZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkpCisjZGVmaW5l
IEdET01fSVNfRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkKKyNkZWZpbmUg
R0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9H
RVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVudFRh
cmdldE5vZGVDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlUHJp
dmF0ZSBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZTsKKworI2luY2x1ZGUgImdkb20vR2RvbU5v
ZGUuaCIKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJl
bnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307
CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNz
IHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21fZXZlbnRfdGFyZ2V0
X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFy
Z2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqdGhp
eik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBkb21FdmVudFRhcmdldE5vZGVfaCAqLwor
CkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
Z2RvbS9nZG9tLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE2MCBAQAorI2luY2x1ZGUgPGdkb20vR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTU9iamVjdC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUF0dHIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21CYXJJbmZvLmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tQ2FudmFzR3JhZGllbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DYW52YXNQYXR0ZXJu
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNE
QVRBU2VjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNoYXJhY3RlckRhdGEuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21DbGlwYm9hcmQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Db21tZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ29uc29sZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNvdW50
ZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU0ltcG9ydFJ1
bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NNZWRpYVJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21DU1NQYWdlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVl
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNT
U1J1bGVMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUNTU1N0eWxlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNT
U1N0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NWYWx1ZS5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUNTU1ZhbHVlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ZhcmlhYmxl
c0RlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbURhdGFiYXNlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1l
bnRGcmFnbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURvY3VtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tRG9jdW1lbnRUeXBlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9NQXBwbGljYXRp
b25DYWNoZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTUNvcmVFeGNlcHRpb24uaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21ET01JbXBsZW1lbnRhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURP
TVBhcnNlci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVNlbGVjdGlvbi5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbURPTVdpbmRvdy5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21FbnRpdHkuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FbnRpdHlSZWZl
cmVuY2UuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FdmVudEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRmlsZS5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUZpbGVMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSGlzdG9yeS5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxBbmNob3JFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTEFwcGxldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQXJlYUVsZW1lbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MQmFzZUZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJsb2Nr
cXVvdGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJSRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxCdXR0b25FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQ29sbGVjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTERpdkVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRExpc3RFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTERvY3VtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEVsZW1l
bnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxG
b250RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGb3JtRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21I
VE1MRnJhbWVTZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEhlYWRFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIdG1sRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxJ
bnB1dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTExlZ2VuZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTElFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExpbmtFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tSFRNTE1hcEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTWFycXVlZUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTW9k
RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxPcHRHcm91cEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTFBhcmFtRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxQcmVFbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxTY3JpcHRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFNlbGVjdEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21IVE1MVGFibGVDZWxsRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZUNv
bEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGFibGVFbGVtZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRleHRB
cmVhRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SW1hZ2VEYXRhLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUtleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21M
b2NhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1lZGlhTGlzdC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbU1lc3NhZ2VFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1pbWVUeXBlQXJyYXku
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NaW1lVHlwZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1v
dXNlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NdXRhdGlvbkV2ZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tTmFtZWROb2RlTWFwLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTmF2aWdhdG9y
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZUZpbHRlci5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bU5vZGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Ob2RlSXRlcmF0b3IuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21Ob2RlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vdGF0aW9uLmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVBsdWdp
bkFycmF5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUGx1Z2luLmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUHJvZ3Jlc3NF
dmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tUmFuZ2UuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21SZWN0Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tU2NyZWVuLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMRXJyb3IuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21TUUxSZXN1bHRTZXQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TUUxSZXN1
bHRTZXRSb3dMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21TdG9yYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TdG9y
YWdlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU3R5bGVTaGVldC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbVN0eWxlU2hlZXRMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVGV4dEV2ZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tVGV4dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVRyZWVXYWxrZXIu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21VSUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbVdoZWVsRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21YTUxTZXJpYWxpemVyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhFdmFsdWF0b3Iu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbVhQYXRoRXhwcmVzc2lvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQYXRoTlNSZXNvbHZl
ci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQYXRoUmVzdWx0Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tWFNMVFByb2Nlc3Nvci5oPgpJbmRleDogV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3RQ
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3RQcml2
YXRlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdFByaXZh
dGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIFByaXZh
dGVHZG9tRE9NT2JqZWN0X2gKKyNkZWZpbmUgUHJpdmF0ZUdkb21ET01PYmplY3RfaAorI2luY2x1
ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCitHX0JF
R0lOX0RFQ0xTCisKK2NsYXNzIEdET01PYmplY3Q7CitXRUJLSVRfQVBJIEdET01PYmplY3QqCitn
ZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCk7CisKK1dF
QktJVF9BUEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3Qg
KnJlcXVlc3QsIEdET01PYmplY3QqIGl0ZW0pOworCitHX0VORF9ERUNMUworI2VuZGlmCisKSW5k
ZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdl
TG9nCShyZXZpc2lvbiAzNjkwMikKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xMiw2ICsxMiw0OCBAQAogCiAgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwOgogCisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik6CisgICAgICAgICogd2Vi
a2l0L0V2ZW50TGlzdGVuZXJOb2RlLmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC9FdmVudExp
c3RlbmVyV2luZG93Lmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC9FdmVudExpc3RlbmVyWE1M
SHR0cFJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L2dkb20uaDogQWRkZWQuICBU
aGlzIGZpbGUgcHVsbHMgaW4gYWxsIG9mIHRoZSBnZG9tIGdsaWIgaGVhZGVycy4gIGl0J3MgdGhl
cmUgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBiZSBsYXp5IGFuZCBub3QgaGF2ZSB0byAjaW5jbHVk
ZSAzMDAgZmlsZXMuCisgICAgICAgICogd2Via2l0L3dlYmtpdGRlZmluZXMuaDoKKyAgICAgICAg
KiB3ZWJraXQvd2Via2l0ZXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9XZWJLaXRFdmVudFBy
aXZhdGU6OndlYmtpdF9ldmVudF9maW5hbGl6ZSk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2
YXRlOjp3ZWJraXRfZXZlbnRfY2xhc3NfaW5pdCk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2
YXRlOjp3ZWJraXRfZXZlbnRfaW5pdCk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3
ZWJraXRfZXZlbnRfbmV3KToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9l
dmVudF9nZXRfZXZlbnRfdHlwZSk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJr
aXRfZXZlbnRfY2FuY2VsX2J1YmJsZSk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3
ZWJraXRfZXZlbnRfcHJldmVudF9kZWZhdWx0KToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZh
dGU6OndlYmtpdF9ldmVudF9zdG9wX3Byb3BhZ2F0aW9uKToKKyAgICAgICAgKFhNTEh0dHBSZXF1
ZXN0RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRM
aXN0ZW5lcjo6c2V0X3R5cGUpOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVy
OjpYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RF
dmVudExpc3RlbmVyOjp+WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFhN
TEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoTm9kZUV2
ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6c2V0X3R5
cGUpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6Ok5vZGVFdmVudExpc3RlbmVyKToKKyAg
ICAgICAgKE5vZGVFdmVudExpc3RlbmVyOjp+Tm9kZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAo
Tm9kZUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlz
dGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVyOjpzZXRfdHlwZSk6
CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVyOjpXaW5kb3dFdmVudExpc3RlbmVyKToKKyAg
ICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6On5XaW5kb3dFdmVudExpc3RlbmVyKToKKyAgICAg
ICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKGFkZF94bWxf
aHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAgKGFkZF9ldmVudF9saXN0ZW5l
cik6CisgICAgICAgIChhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0ZXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1l
LmNwcDogYWRkZWQgYnJvd3Nlci1ldmVudCwgc3VwcG9ydCBmb3IgWE1MSHR0cFJlcXVlc3QsIGdl
dHRpbmcgRE9NIFdpbmRvdywgRE9NIERvY3VtZW50LCBhbmQgV2luZG93IGV2ZW50IGxpc3RlbmVy
LgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgorCiAyMDA4LTA5LTEwICBBbHAg
VG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2Uu
CkluZGV4OiBXZWJLaXQvd2luL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46
bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCkluZGV4OiBXZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9u
IDM2OTAyKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMiwx
MyArMiwxOSBAQAogV2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQogCiBGRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVfREVGSU5FU19H
RE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTIDo9CiBIVE1MX0ZFQVRVUkVT
IDo9CiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTIDo9ICQoV2ViQ29yZSkvY3NzL0NTU1By
b3BlcnR5TmFtZXMuaW4KIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTIDo9ICQoV2ViQ29yZSkv
Y3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KIAorbGliZ2RvbV9jcHBmbGFncyArPSBcCisJLUkkKHNy
Y2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVk
U291cmNlcworCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3Rr
IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdz
L2pzIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZSBcCkBAIC0yNyw2ICszMyw3IEBACiAJ
LUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20gXAogCS1JJChzcmNk
aXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogCS1JJChzcmNkaXIpL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvYm1wIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZiBcCkBAIC0zNzAsNiArMzc3LDMwMSBAQAogCURlcml2
ZWRTb3VyY2VzL1hNTE5hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaAogCits
aWJnZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUF0dHIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21BdHRyLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21CYXJJbmZv
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21DU1NDaGFyc2V0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0No
YXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NN
ZWRpYVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1bGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21D
U1NQcmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ByaW1p
dGl2ZVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZUxp
c3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0
eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZVNoZWV0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ1NTVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFs
dWVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWVMaXN0LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ2FudmFzR3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNH
cmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQYXR0ZXJuLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2hhcmFj
dGVyRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNoYXJhY3RlckRhdGEuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvbW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21tZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21D
b25zb2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21Db3VudGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bURPTUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01Db3Jl
RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUltcGxlbWVudGF0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NSW1wbGVtZW50YXRpb24uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVNlbGVj
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVNlbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21ET01XaW5kb3cuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21Eb2N1bWVudEZyYWdtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1
bWVudFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudFR5cGUuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUVudGl0eVJlZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUV2ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZl
bnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
RmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlTGlzdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxBcHBsZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEFwcGxldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MQlJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxC
YXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUZvbnRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJ1
dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENhbnZhc0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
RExpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXJlY3RvcnlF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
RmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZpZWxk
U2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJh
bWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MSFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxI
ZWFkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEltYWdl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElucHV0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxMSUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TExpbmtFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxNZW51RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT0xp
c3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxPcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTFByZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MUHJlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUXVvdGVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFN0
eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTdHlsZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxUYWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MVGFibGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVJv
d0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVSb3dFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxVTGlz
dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSGlzdG9yeS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRhLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUtleWJvYXJkRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21LZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
TWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1p
bWVUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1pbWVUeXBlQXJyYXkuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21N
b3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU11dGF0aW9uRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NdXRhdGlvbkV2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYXZpZ2F0b3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Tm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJhdG9y
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tTm9kZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm90
YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21PdmVyZmxvd0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVn
aW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SZWN0LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVRleHRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0TWV0cmljcy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVRleHRNZXRyaWNzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UcmVlV2Fsa2VyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21VSUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdEFu
aW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5pbWF0
aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1M
SHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVhNTFNlcmlhbGl6ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFNM
VFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhTTFRQcm9jZXNzb3Iu
aCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmggCisKIElETF9CSU5ESU5HUyArPSAgXAogCVdlYkNvcmUvY3NzL0NvdW50ZXIuaWRsIFwK
IAlXZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXApAQCAtNTIyLDYgKzgyNCwxOSBAQAog
CVdlYkNvcmUveG1sL1hNTFNlcmlhbGl6ZXIuaWRsIFwKIAlXZWJDb3JlL3htbC9YU0xUUHJvY2Vz
c29yLmlkbAogCitsaWJnZG9tX3NvdXJjZXMgKz0gXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
RE9NQmluZGluZy5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oIFwK
KwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9t
RE9NT2JqZWN0UHJpdmF0ZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVj
dFByaXZhdGUuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5jcHAgXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oCisKKwog
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2tqcy9BY3Rp
dmF0aW9uLmggXAogCVdlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMva2pzL0FyZ0xpc3QuaCBcCkBA
IC0yMTM5LDEwICsyNDU0LDE0IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9PRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlM9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUz0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCi0JRGVyaXZl
ZFNvdXJjZXMvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcAorCURlcml2ZWRTb3VyY2VzL0pTRE9N
QXBwbGljYXRpb25DYWNoZS5jcHAgCiAKK2xpYmdkb21fYnVpbHRfc291cmNlcyArPSBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5jcHAKKwogSURMX0JJTkRJ
TkdTICs9IFwKIAlXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlk
bAogCkBAIC0yMTgzLDYgKzI1MDIsNyBAQAogIyAtLS0tCiBpZiBFTkFCTEVfREFUQUJBU0UKIEZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9EQVRBQkFTRT0xCitGRUFUVVJFX0RF
RklORVNfR0RPTSArPSBFTkFCTEVfREFUQUJBU0U9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMg
Kz0gXAogCURlcml2ZWRTb3VyY2VzL0pTRGF0YWJhc2UuY3BwIFwKQEAgLTIxOTYsNiArMjUxNiwx
OCBAQAogCURlcml2ZWRTb3VyY2VzL0pTU1FMVHJhbnNhY3Rpb24uY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9KU1NRTFRyYW5zYWN0aW9uLmgKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21EYXRhYmFzZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbURhdGFiYXNlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTEVycm9yLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1FMUmVzdWx0U2V0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFJlc3VsdFNldFJv
d0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uaCAKKwogSURMX0JJTkRJTkdTICs9
IFwKIAlXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU1FM
RXJyb3IuaWRsIFwKQEAgLTIyNjgsNiArMjYwMCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9ET01f
U1RPUkFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RPTV9TVE9SQUdF
PTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCiAKIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSlNTdG9yYWdlLmNwcCBcCkBA
IC0yMjc1LDYgKzI2MDgsMTIgQEAKIAlEZXJpdmVkU291cmNlcy9KU1N0b3JhZ2VFdmVudC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL0pTU3RvcmFnZUV2ZW50LmgKIAorbGliZ2RvbV9idWlsdF9zb3Vy
Y2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
dG9yYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQu
aCAKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5pZGwgXAog
CVdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnQuaWRsCkBAIC0yMzMzLDYgKzI2NzIsNyBAQAog
IyAtLS0tCiBpZiBFTkFCTEVfVklERU8KIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVO
QUJMRV9WSURFTz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfVklERU89MQogCiBI
VE1MX0ZFQVRVUkVTICs9IEVOQUJMRV9WSURFTz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX1ZJREVPPTEKQEAgLTIzNTUsOCArMjY5NSwyNCBAQAogCURlcml2ZWRTb3VyY2VzL0pTVGlt
ZVJhbmdlcy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0pTVGltZVJhbmdlcy5oIFwKIAlEZXJpdmVk
U291cmNlcy9KU1ZvaWRDYWxsYmFjay5jcHAgXAotCURlcml2ZWRTb3VyY2VzL0pTVm9pZENhbGxi
YWNrLmgKKwlEZXJpdmVkU291cmNlcy9KU1ZvaWRDYWxsYmFjay5oIAogCitsaWJnZG9tX2J1aWx0
X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBdWRpb0VsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXVkaW9FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZWRpYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MTWVkaWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxTb3VyY2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TFNvdXJjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFZpZGVvRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxWaWRlb0VsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFFcnJvci5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU1lZGlhRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGlt
ZVJhbmdlcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRpbWVSYW5nZXMuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVm9pZENhbGxiYWNrLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tVm9pZENhbGxiYWNrLmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29y
ZS9odG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRsIFwKIAlXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5pZGwgXApAQCAtMjM5OSw2ICsyNzU1LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1hQQVRI
CiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFBBVEg9MQorRkVBVFVSRV9E
RUZJTkVTX0dET00gKz0gRU5BQkxFX1hQQVRIPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVO
QUJMRV9YUEFUSD0xCiAKQEAgLTI0MTQsOCArMjc3MSwyMCBAQAogCURlcml2ZWRTb3VyY2VzL0pT
WFBhdGhSZXN1bHQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9KU1hQYXRoUmVzdWx0LmggXAogCURl
cml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hQYXRoR3Jh
bW1hci5oCisJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmggCiAKK2xpYmdkb21fYnVpbHRf
c291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRo
RXhwcmVzc2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVzc2lv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
UGF0aFJlc3VsdC5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUveG1sL1hQYXRoRXZh
bHVhdG9yLmlkbCBcCiAJV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsIFwKQEAgLTI0Nzks
NiArMjg0OCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9YU0xUCiBGRUFUVVJFX0RFRklORVNfSkFW
QVNDUklQVCArPSBFTkFCTEVfWFNMVD0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVf
WFNMVD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFNMVD0xCiAKQEAgLTI1MDIs
NiArMjg3Miw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9TVkcKIEZFQVRVUkVfREVGSU5FU19KQVZB
U0NSSVBUICs9IEVOQUJMRV9TVkc9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9T
Vkc9MSAtIGJpZyBUT0RPISA6KQogCiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUyArPSAkKFdl
YkNvcmUpL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluIAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZ
V09SRFMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMjc3OSw2
ICszMTUwLDI3MyBAQAogCURlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcCBcCiAJRGVyaXZlZFNv
dXJjZXMvWExpbmtOYW1lcy5jcHAKIAorbm90LXlldDoKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0FuZ2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVDb2xvckVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlQ29sb3JFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdBbmltYXRlZEJvb2xlYW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdB
bmltYXRlZEJvb2xlYW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRF
bnVtZXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkRW51
bWVyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2Vy
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0FuaW1hdGVkTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5p
bWF0ZWROdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXJM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2Vy
dmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJl
Y3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJlY3QuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2ly
Y2xlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NpcmNsZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
Q3Vyc29yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZWZpbml0aW9u
U3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZmluaXRpb25T
cmNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZnNFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVmc0VsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdEZXNjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdE
b2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RvY3VtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Vs
ZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRJ
bnN0YW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50SW5zdGFuY2VM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudEluc3RhbmNlTGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3Rvcnku
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGxpcHNlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0V4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUJsZW5k
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQmxlbmRFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0ZFRnVuY0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0ZFRnVuY0JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVG
dW5jQkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jR0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNSRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGRUltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFTWVy
Z2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRkVUaWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
VGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVUdXJidWxlbmNl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFVHVyYnVsZW5jZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRmlsdGVyRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdG
b250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFj
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3JtYXRF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3JtYXRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZU5hbWVFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
SW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMaW5lRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdNYXJrZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hc2tF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdNZXRhZGF0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWlzc2lu
Z0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01pc3NpbmdH
bHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR051bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhaW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGFpbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUGF0aFNlZ0FyY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0Fy
Y1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290
aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdM
aW5ldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRv
QWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
TGluZXRvSG9yaXpvbnRhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRo
U2VnTGluZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xp
bmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvVmVy
dGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRv
VmVydGljYWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0
b1ZlcnRpY2FsUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpc3QuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUGF0dGVybkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXR0
ZXJuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2ludC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR1BvaW50TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bv
aW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2x5Z29uRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlnb25FbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1JlY3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdSZW5kZXJpbmdJbnRlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZW5k
ZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU1ZHRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NWR0VsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NldEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RvcEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdG9wRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdTdHJpbmdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHU3RyaW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1N3aXRjaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1N5bWJvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFJlZkVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHVGV4dENvbnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Rl
eHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1RpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR1RpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdU
cmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zvcm0uaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHVW5pdFR5cGVzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
VW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1VzZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdVc2VFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9v
bUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50LmggCisK
IElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBc
CiAJV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTMzNTksMzYgKzM5OTcsNDIgQEAK
ICMgU1ZHIEZlYXR1cmVzCiBpZiBFTkFCTEVfU1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFT
Q1JJUFQgKz0gRU5BQkxFX1NWR19VU0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJM
RV9TVkdfVVNFPTEgIyBiaWcgVE9ETyEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0x
CiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5B
QkxFX1NWR19GT1JFSUdOX09CSkVDVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5B
QkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxF
X1NWR19GT1JFSUdOX09CSkVDVD0xIAogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlH
Tl9PQkpFQ1Q9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpF
Q1Q9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFT
Q1JJUFQgKz0gRU5BQkxFX1NWR19GT05UUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5B
QkxFX1NWR19GT05UUz0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJj
b3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVf
U1ZHX0ZJTFRFUlMKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklM
VEVSUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNW
R19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAt
REVOQUJMRV9TVkdfRklMVEVSUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBG
RUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFU
VVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyAr
PSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZH
X0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RF
RklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJ
TkVTX0dET00gKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJM
RV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1B
VElPTj0xCiBlbmRpZgpAQCAtMzM5Niw2ICs0MDQwLDcgQEAKICMgU1ZHIHRhZyBhbmQgYXR0cmli
dXRlIG5hbWVzIChuZWVkIHRvIHBhc3MgYW4gZXh0cmEgZmxhZyBpZiBzdmcgZXhwZXJpbWVudGFs
IGZlYXR1cmVzIGFyZSBlbmFibGVkKQogRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwOiBEZXJp
dmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA7CiBEZXJpdmVkU291cmNlcy9KU1NWR0Vs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5
LmNwcAorRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNw
cDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwog
RGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtl
X25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0
cnMuaW4KQEAgLTM1MTQsNiArNDE1OSwxMyBAQAogICAgICQoV2ViQ29yZSkveG1sIFwKICAgICAk
KFdlYkNvcmUpL3BsdWdpbnMKIAorCisKK0Rlcml2ZWRTb3VyY2VzL2dkb20vR2RvbSUuaDogRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL2dkb20vR2RvbSUu
Y3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdz
L3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBs
IC0taW5jbHVkZSAkKFdlYkNvcmUpL2RvbSAtLWluY2x1ZGUgJChXZWJDb3JlKS9odG1sIC0taW5j
bHVkZSAkKFdlYkNvcmUpL2NzcyAtLWluY2x1ZGUgJChXZWJDb3JlKS9wYWdlIC0taW5jbHVkZSAk
KFdlYkNvcmUpL3htbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9zdmcgLS1vdXRwdXREaXIgIiQoR0VO
U09VUkNFU0dET00pIiAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTX0dET00pIiAtLWdlbmVy
YXRvciBHT2JqZWN0ICQ8CisKIERlcml2ZWRTb3VyY2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9K
UyUuY3BwOwogCiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElO
R1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTM1
MjksNiArNDE4MSw3IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQYXJzZXIu
cG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nzcy9o
dG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1aXJrcy5jc3MgXAogCVdlYkNvcmUvY3NzL3ZpZXct
c291cmNlLmNzcyBcCkBAIC0zNTY1LDMgKzQyMTgsOCBAQAogCVdlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3Iu
bHV0LmgKIAorCisKKworCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNTg1IEBACisvKgorICogVEhJUyBGSUxFIElTIERFUklWRUQg
QlkgSEFORCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBJVCBJUyBO
T1QgQU4gQVVUTy1HRU5FUkFURUQgRklMRSBJVCBXQVMgQ1JFQVRFRCBNQU5VQUxMWSAqRlJPTSoK
KyAqIEFOIEFVVE8tR0VORVJBVEVEIEZJTEUuCisgKgorICogIGtlZXBpbmcgaXQgdXAtdG8tZGF0
ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBkb25lIGJ5IGFkZGluZworICogIGEgbWFrZV9uYW1lcy5w
bCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogIGdlbmVyYXRlciB3aGlj
aCB0YWtlcyBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBhcyBpbnB1dC4KKyAqCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2Ns
Lm5ldD4KKyAqCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aW5jbHVkZSAiZ2RvbS9HZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCYXNlRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
Qm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQlJFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25F
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGl2RWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZpZWxkU2V0
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGb250RWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxG
cmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhSRWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEltYWdl
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWV0YUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
T3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9wdGlvbkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUHJl
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxU
YWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFVM
aXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFuY2hvckVsZW1lbnRJbnRl
cm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50SW50ZXJuYWwuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQXJlYUVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxCYXNlRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEJhc2VGb250RWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJs
b2NrcXVvdGVFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQm9keUVs
ZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCUkVsZW1lbnRJbnRlcm5h
bC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50SW50ZXJuYWwuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxNb2RFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGlyZWN0
b3J5RWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnRJ
bnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxETGlzdEVsZW1lbnRJbnRlcm5hbC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxFbWJlZEVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxGb250RWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TEZvcm1FbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRnJhbWVFbGVt
ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50SW50
ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnRJbnRlcm5hbC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIZWFkRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTEhSRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEh0bWxFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSUZyYW1l
RWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudElu
dGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElucHV0RWxlbWVudEludGVybmFsLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MTGVnZW5kRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TExJRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50
SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWFwRWxlbWVudEludGVybmFsLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MTWVudUVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxNZXRhRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9i
amVjdEVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPTGlzdEVsZW1l
bnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPcHRHcm91cEVsZW1lbnRJbnRl
cm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50SW50ZXJuYWwuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudEludGVybmFsLmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTFByZUVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxR
dW90ZUVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxTY3JpcHRFbGVt
ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU2VsZWN0RWxlbWVudEludGVy
bmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudEludGVybmFsLmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MVGV4dEFyZWFFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
VGl0bGVFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVSb3dF
bGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50SW50
ZXJuYWwuaCIKKworI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCisjaW5jbHVkZSAiSFRNTEFuY2hv
ckVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmxvY2txdW90ZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQlJFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFz
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNb2RFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRW1iZWRF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
SXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTElFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVudUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT2JqZWN0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0
R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhbUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxU
YWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFi
bGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUg
IkNTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOworCit0eXBlZGVmIEdET01Ob2RlKiAoKkNyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1
bmN0aW9uKShQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlQW5jaG9yV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiBuZXcgR0RPTUhUTUxBbmNob3JFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBbmNob3JF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFw
cGxldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MQXBwbGV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXBwbGV0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVBcmVhV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcg
R0RPTUhUTUxBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXJlYUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQmFzZVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFz
ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJhc2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJhc2VGb250V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxCYXNlRm9udEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJhc2VGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxCbG9ja3F1
b3RlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmxvY2txdW90ZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQm9keVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQm9keUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJvZHlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxCUkVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTEJSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVCdXR0b25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJ1
dHRvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlQ2FudmFzV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiBuZXcgR0RPTUhUTUxDYW52YXNFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxDYW52YXNF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRh
YmxlQ2FwdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
VGFibGVDYXB0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01O
b2RlKiBjcmVhdGVUYWJsZUNvbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVDb2xFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxUYWJsZUNvbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlTW9kV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiBuZXcgR0RPTUhUTUxNb2RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNb2RF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURp
cmVjdG9yeVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MRGlyZWN0b3J5RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGlyZWN0
b3J5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVh
dGVEaXZXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTERpdkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERpdkVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRExpc3RXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTERMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRExpc3RFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUVtYmVkV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbWJl
ZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGaWVsZFNldFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRmllbGRTZXRF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxGaWVsZFNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRm9udEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgR0RPTU5vZGUqIGNyZWF0ZUZvcm1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZvcm1FbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxGb3JtRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFt
ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
RnJhbWVTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTEZyYW1lU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVT
ZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0
ZUhlYWRpbmdXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTEhlYWRpbmdFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkaW5n
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVI
ZWFkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biBuZXcgR0RPTUhUTUxIZWFkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSFJXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRN
TEhSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSFJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUh0bWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEh0bWxFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxIdG1sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVJRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElGcmFtZUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTElGcmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlSW1hZ2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEltYWdlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
SW1hZ2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZUlucHV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiBuZXcgR0RPTUhUTUxJbnB1dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJc0lu
ZGV4V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biBuZXcgR0RPTUhUTUxJc0luZGV4RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGFiZWxX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTExhYmVsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGFiZWxFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUxlZ2VuZFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MTGVnZW5kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGVnZW5kRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVMSVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTElFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxMSUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlTGlua1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTGlua0VsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTExpbmtFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZU1hcFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFwRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVNYXJx
dWVlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biBuZXcgR0RPTUhUTUxNYXJxdWVlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFycXVlZUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTWVudVdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3
IEdET01IVE1MTWVudUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1lbnVFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1ldGFXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1l
dGFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNZXRhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPYmplY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9iamVjdEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT0xpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9MaXN0RWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MT0xpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxPcHRHcm91cEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVPcHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE9wdGlvbkVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9N
Tm9kZSogY3JlYXRlUGFyYWdyYXBoV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxQYXJhZ3JhcGhFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
R0RPTU5vZGUqIGNyZWF0ZVBhcmFtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxQYXJhbUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTFBhcmFtRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVQcmVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBHRE9NSFRNTFByZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFByZUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUXVvdGVX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTFF1b3RlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUXVvdGVFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVNjcmlwdFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01I
VE1MU2NyaXB0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVTZWxlY3RXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNl
bGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlU3R5bGVXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFN0eWxlRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MU3R5bGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTFRhYmxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IEdET01Ob2RlKiBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVDZWxsV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNlbGxFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRleHRBcmVhV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxUZXh0
QXJlYUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUaXRsZVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGl0bGVF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFibGVSb3dXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFRhYmxlUm93RWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVSb3dFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVVMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxVTGlzdEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTFVMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworR0RP
TU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHN0YXRpYyBIYXNoTWFwPFdlYkNvcmU6OkF0b21pY1N0cmluZ0ltcGwqLCBD
cmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbj4gbWFwOworICAgIGlmIChtYXAuaXNFbXB0
eSgpKSB7CisgICAgICAgbWFwLnNldChhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQW5j
aG9yV3JhcHBlcik7CisgICAgICAgbWFwLnNldChhcHBsZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVBcHBsZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFyZWFUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVBcmVhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChiYXNlVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmFzZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFz
ZWZvbnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlRm9udFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoYmxvY2txdW90ZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJsb2Nr
cXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVCb2R5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChiclRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUJSV3JhcHBlcik7CisgICAgICAgbWFwLnNldChidXR0b25UYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVCdXR0b25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhbnZh
c1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUNhbnZhc1dyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoY2FwdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2FwdGlvbldy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoY29sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
VGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRlbFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGlyVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlRGlyZWN0b3J5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkaXZUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXZXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRs
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRExpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGVtYmVkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRW1iZWRXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGZpZWxkc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRmllbGRT
ZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZvbnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVGb250V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb3JtVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlRm9ybVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVGcmFtZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVz
ZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGcmFtZVNldFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoaDFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoaHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVI
UldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaHRtbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUh0bWxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlmcmFtZVRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUlGcmFtZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1nVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlucHV0
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW5wdXRXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGlzaW5kZXhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJc0luZGV4V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChsYWJlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxhYmVs
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsZWdlbmRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVMZWdlbmRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlTElXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpbmtUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVMaW5rV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXBUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNYXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1hcnF1
ZWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNYXJxdWVlV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChtZW51VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWVudVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQobWV0YVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1ldGFXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KG9iamVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZU9iamVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob2xUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVPTGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0Z3JvdXBUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRHcm91cFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0
aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0aW9uV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUGFyYWdyYXBoV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChwYXJhbVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFt
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChwcmVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVQcmVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVRdW90ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2NyaXB0VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlU2NyaXB0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzZWxlY3RUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHN0eWxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU3R5bGVXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHRhYmxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KHRib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFi
bGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0ZFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGV4dGFyZWFUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUZXh0QXJlYVdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQodGl0bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUaXRsZVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQodHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVJvd1dyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQodWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVVTGlz
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY29sZ3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDJUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoM1RhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGg0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoaDVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChoNlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGltYWdlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGluc1RhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoa2V5Z2VuVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsaXN0aW5n
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dCh0Zm9vdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIp
OworICAgICAgIG1hcC5zZXQodGhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNl
bGxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh4bXBUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICB9CisgICAgLy9wcmludGYoImNy
ZWF0ZUdET01IVE1MV3JhcHBlcjogJXNcbiIsIGVsZW1lbnQtPmxvY2FsTmFtZSgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworICAgIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uIGNy
ZWF0ZVdyYXBwZXJGdW5jdGlvbiA9IG1hcC5nZXQoZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgp
KTsKKyAgICBpZiAoY3JlYXRlV3JhcHBlckZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gY3JlYXRl
V3JhcHBlckZ1bmN0aW9uKGVsZW1lbnQpOworICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbGVtZW50
KGVsZW1lbnQuZ2V0KCkpOworfQorCit9CisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
ZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlLmNwcAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVr
ZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGli
LW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXRO
b2RlLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuaCIKKyNpbmNsdWRl
ICJHZG9tRXZlbnRUYXJnZXROb2RlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0
UHJpdmF0ZS5oIiAKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSAiR2RvbUV2
ZW50LmgiCitlbnVtIHsKKyAgICBCUk9XU0VSX0VWRU5ULAorICAgIExBU1RfU0lHTkFMCit9Owor
CitzdGF0aWMgZ3VpbnQgZXZlbnRfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CisKKwor
V2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21F
dmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7CisgICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZSAqcmVz
OworICAgIHJlcyA9IHN0YXRpY19jYXN0PEdET01FdmVudFRhcmdldE5vZGUqPihnZG9tX2RvbV9v
YmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7CisgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KHJlcy0+aW1wbCgpKTsKK30KKworCitl
eHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRXZlbnRUYXJnZXROb2RlLCBnZG9tX2V2
ZW50X3RhcmdldF9ub2RlLCBHRE9NX1RZUEVfTk9ERSk7CisKKy8qCitzdHJ1Y3QgX0dkb21FdmVu
dFRhcmdldE5vZGVQcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUg
Kml0ZW07Cit9OworKi8KKworI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklW
QVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0VW
RU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSkpCisKKy8qCit2b2lk
CitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUg
KnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGl0ZW0pCit7CisgICAgR2RvbUV2
ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9Q
UklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPml0ZW0gPSBpdGVtOworfQorKi8KKworc3RhdGlj
IHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7
CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlKiByZXF1ZXN0ID0gR0RPTV9FVkVOVF9UQVJHRVRf
Tk9ERShvYmplY3QpOworICAgIEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKiBwcml2ID0gcmVx
dWVzdC0+cHJpdjsqLworCisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQoR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKiBy
ZXF1ZXN0Q2xhc3MpCit7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2ln
bmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHJlcXVl
c3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19T
SUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19TSUdO
QUxfREVUQUlMRUQgICAgKSwKKyAgICAgICAgMCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgTlVM
TCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisgICAgICAg
IEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFO
KTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9l
dmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZTsKKworICAgIC8qZ190eXBlX2NsYXNzX2FkZF9wcml2
YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21FdmVudFRhcmdldE5vZGVQcml2YXRlKSk7Ki8K
K30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0KEdkb21FdmVudFRh
cmdldE5vZGUqIHJlcXVlc3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSog
cHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAg
cmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjU0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9y
dGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIw
MDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisvLyBnY2MgMy54IGNhbid0IGhhbmRsZSBpbmNsdWRpbmcg
dGhlIEhhc2hNYXAgcG9pbnRlciBzcGVjaWFsaXphdGlvbiBpbiB0aGlzIGZpbGUKKyNpZiBkZWZp
bmVkIF9fR05VQ19fICYmICFkZWZpbmVkIF9fR0xJQkNYWF9fIC8vIGxlc3MgdGhhbiBnY2MgMy40
CisjZGVmaW5lIEhBU0hfTUFQX1BUUl9TUEVDX1dPUktBUk9VTkQgMQorI2VuZGlmCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIkNTdHJp
bmcuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVj
dFByaXZhdGUuaCIKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1M
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisj
aW5jbHVkZSAiR2RvbUNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVTaGVl
dEludGVybmFsLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50RXhj
ZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgor
I2luY2x1ZGUgIkdkb21Ob2RlLmgiCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJH
ZG9tTm9kZUludGVybmFsLmgiCisKKyNpbmNsdWRlICJBdHRyLmgiCisjaW5jbHVkZSAiQ0RBVEFT
ZWN0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDb21tZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiRW50aXR5LmgiCisjaW5jbHVkZSAiRW50
aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9t
RXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbUF0dHIuaCIKKyNpbmNsdWRlICJHZG9t
QXR0ckludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRl
ICJHZG9tVGV4dC5oIgorI2luY2x1ZGUgIkdkb21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJH
ZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21E
b2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1
ZGUgIkdkb21FbnRpdHkuaCIKKyNpbmNsdWRlICJHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIkdk
b21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNp
bmNsdWRlICJHZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiR2RvbU5vdGF0aW9uLmgi
CisjaW5jbHVkZSAiR2RvbUhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIK
KyNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNp
bmNsdWRlICJHZG9tQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5j
bHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2lu
Y2x1ZGUgIkNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVk
ZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1
ZGUgIkdkb21DU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGUu
aCIKKyNpbmNsdWRlICJHZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NNZWRp
YVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NT
U3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdkb21FdmVudEludGVybmFsLmgiCisKKyNpbmNsdWRl
ICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkdkb21DbGlwYm9h
cmQuaCIKKyNpbmNsdWRlICJHZG9tS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIkdkb21NZXNz
YWdlRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIkdkb21N
dXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRl
ICJHZG9tUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIkdkb21UZXh0RXZlbnQuaCIKKyNpbmNs
dWRlICJHZG9tVUlFdmVudC5oIgorI2luY2x1ZGUgIkdkb21XZWJLaXRBbmltYXRpb25FdmVudC5o
IgorI2luY2x1ZGUgIkdkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9t
V2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQu
aCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTWVzc2FnZUV2ZW50Lmgi
CisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKKyNp
bmNsdWRlICJPdmVyZmxvd0V2ZW50LmgiCisjaW5jbHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgorI2lu
Y2x1ZGUgIlRleHRFdmVudC5oIgorI2luY2x1ZGUgIlVJRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJL
aXRBbmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5oIgor
I2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaCIKKworI2luY2x1ZGUgIkdkb21IVE1MQ29sbGVjdGlvbi5oIgorCisjaW5jbHVkZSAi
QXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJI
VE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmgiCisKKyNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCisjaW5jbHVkZSAiR2RvbVN0b3JhZ2VF
dmVudC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgorI2VuZGlmCisKKyNpZiBFTkFCTEUo
U1ZHKQorI2lmIDAgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyNpbmNsdWRlICJHZG9tU1ZHWm9v
bUV2ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVk
ZSAiU1ZHWm9vbUV2ZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNp
ZiAwIC8qIFhYWCBUT0RPIC0gc2VlICMyMDU4NiAqLworI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50
V3JhcHBlckZhY3RvcnlJbnRlcm5hbC5oIgorI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50V3JhcHBl
ckZhY3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisj
aWYgMAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiR2RvbVNWR0V4Y2VwdGlvbi5oIgorI2lu
Y2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgIkdkb21D
bGlwYm9hcmRJbnRlcm5hbC5oIgorI2luY2x1ZGUgIkdkb21DU1NSdWxlSW50ZXJuYWwuaCIKKyNp
bmNsdWRlICJHZG9tQ0RBVEFTZWN0aW9uSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVu
dEludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRl
ICJHZG9tRG9jdW1lbnRGcmFnbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50
VHlwZUludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUVudGl0eUludGVybmFsLmgiCisjaW5jbHVk
ZSAiR2RvbUVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3RJbnRl
cm5hbC5oIgorI2luY2x1ZGUgIkdkb21DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgiCisjaW5j
bHVkZSAiR2RvbUVudGl0eVJlZmVyZW5jZUludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbU5vdGF0
aW9uSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tSFRNTERvY3VtZW50SW50ZXJuYWwuaCIKKyNp
bmNsdWRlICJHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJH
ZG9tVGV4dEludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUNTU0NoYXJzZXRSdWxlSW50ZXJuYWwu
aCIKKyNpbmNsdWRlICJHZG9tQ1NTRm9udEZhY2VSdWxlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJH
ZG9tQ1NTSW1wb3J0UnVsZUludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUNTU01lZGlhUnVsZUlu
dGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUNTU1BhZ2VSdWxlSW50ZXJuYWwuaCIKKyNpbmNsdWRl
ICJHZG9tQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFyaWFibGVz
UnVsZUludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUtleWJvYXJkRXZlbnRJbnRlcm5hbC5oIgor
I2luY2x1ZGUgIkdkb21NZXNzYWdlRXZlbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgIkdkb21Nb3Vz
ZUV2ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tTXV0YXRpb25FdmVudEludGVybmFsLmgi
CisjaW5jbHVkZSAiR2RvbU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgIkdkb21Q
cm9ncmVzc0V2ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tVGV4dEV2ZW50SW50ZXJuYWwu
aCIKKyNpbmNsdWRlICJHZG9tVUlFdmVudEludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbVdlYktp
dEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tV2ViS2l0VHJhbnNpdGlv
bkV2ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tV2hlZWxFdmVudEludGVybmFsLmgiCisj
aW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudEludGVybmFsLmgiCisjaW5j
bHVkZSAiR2RvbVN0b3JhZ2VFdmVudEludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRp
b25zQ29sbGVjdGlvbkludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uSW50
ZXJuYWwuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOworCit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBET01PYmplY3RNYXA7CisK
K3N0YXRpYyBET01PYmplY3RNYXAmIGRvbU9iamVjdHMoKQoreworICAgIHN0YXRpYyBET01PYmpl
Y3RNYXAgc3RhdGljRE9NT2JqZWN0czsKKyAgICByZXR1cm4gc3RhdGljRE9NT2JqZWN0czsKK30K
KworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qodm9pZCogb2Jq
ZWN0SGFuZGxlKQoreworICAgIGdwb2ludGVyIHJldCA9IGRvbU9iamVjdHMoKS5nZXQob2JqZWN0
SGFuZGxlKTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlX2dk
b21fb2JqZWN0KEdET01PYmplY3QgKmRvYikKK3sKKyAgICAvKiBhbGwgb2YgdGhlIHdvcmsgaW4g
Y3JlYXRpbmcgdGhlIHRvR0RPTSBmdW5jdGlvbnMsCisgICAgICogdGhlbiBoYXZpbmcgbmV3IEdE
T01YeXooc3RhdGljX3R5cGVjYXN0PFh5eio+b2JqKSwgCisgICAgICogd2hlcmUgYWxsIEdET01Y
eXoncyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBwdXJlIHZpcnR1YWwKKyAgICAgKiBjbGFzcywgR0RP
TU9iamVjdCwgZW5kcyB1cCBoZXJlIC0gdG8gY3JlYXRlIHRoZQorICAgICAqIHJpZ2h0IHR5cGUg
b2YgZ2xpYiBvYmplY3QuCisgICAgICoKKyAgICAgKiB0aGVyZSBhcmUgbm8gY29uc3RydWN0b3Jz
ICJnZG9tX3h5el9uZXcoKSIgLSB0aGVyZSBpcworICAgICAqIF9vbmx5XyBjcmVhdGVfZ2RvbV9v
YmplY3QoKS4gIHRoYXQgbWFrZXMgdGhlIHRvR0RPTQorICAgICAqIGZ1bmN0aW9ucyB0aGUgb25s
eSBzYWZlIGFuZCBzYW5lIHdheSB0byBjcmVhdGUKKyAgICAgKiBnbGliIGJpbmRpbmdzIG9iamVj
dHM7IGl0IG1lYW5zIHRoYXQgdGhlIG9iamVjdAorICAgICAqIGNhY2hlLCBhbiBhYnNvbHV0ZWx5
IGNyaXRpY2FsIHBhcnQgb2YgdGhlIGdsaWIKKyAgICAgKiBiaW5kaW5ncywgcmVtYWlucyBjb25z
aXN0ZW50LgorICAgICAqLworICAgIGdwb2ludGVyIHJlcyA9IGdfb2JqZWN0X25ldyhkb2ItPmdl
dEdvYmpUeXBlKCksIE5VTEwpOworICAgIGdkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHRE9N
X0RPTV9PQkpFQ1QocmVzKSwgZG9iKTsKKyAgICByZXR1cm4gcmVzOworfQorCitncG9pbnRlciBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdE
T01PYmplY3QqIHdyYXBwZXIpCit7CisgICAgLy8gYWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBn
cG9pbnRlciBvYmogPSBjcmVhdGVfZ2RvbV9vYmplY3Qod3JhcHBlcik7CisgICAgZG9tT2JqZWN0
cygpLnNldChvYmplY3RIYW5kbGUsIG9iaik7CisgICAgcmV0dXJuIG9iajsKK30KKwordm9pZCBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUp
Cit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKTsKKyAgICAvL3JlbW92ZVdy
YXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKSk7Cit9CisKK2dwb2ludGVyIHRv
R0RPTShEb2N1bWVudCogZG9jKQoreworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gTlVM
TDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb2MpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1
cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKworICAgIGlmIChkb2MtPmlzSFRNTERv
Y3VtZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTERvY3VtZW50KHN0YXRpY19jYXN0
PEhUTUxEb2N1bWVudCo+KGRvYykpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9j
LT5pc1NWR0RvY3VtZW50KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRP
RE8gLSBzZWUgIzIwNTg2ICovCisjaWYgMAorICAgICAgICByZXQgPSBuZXcgR0RPTVNWR0RvY3Vt
ZW50KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4oZG9jKSk7CisjZW5kaWYKKyAgICB9CisjZW5k
aWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnQoZG9jKTsKKworICAg
IGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KGRvYywgcmV0KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSog
bm9kZSk7CisKK2dwb2ludGVyIHRvR0RPTU5ld2x5Q3JlYXRlZChOb2RlKiBub2RlKQoreworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBy
ZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5v
ZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLi4g
Ki8KKworICAgIERvY3VtZW50KiBkb2MgPSBub2RlLT5kb2N1bWVudCgpOworICAgIGdwb2ludGVy
IHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KG5vZGUpOworICAgIGlm
IChyZXQpCisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihu
b2RlKTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAo
IXZhbHVlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLiAqLworCisgICAgZ3BvaW50
ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKwor
ICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJl
dDsKKworICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdE
T01DU1NWYWx1ZUxpc3Qoc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKKyNpZiBF
TkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR1BhaW50KCkpCisgICAgeworICAg
ICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyAgICAgICAgLy9yZXQg
PSBuZXcgR0RPTVNWR1BhaW50KHN0YXRpY19jYXN0PFNWR1BhaW50Kj4odmFsdWUpKTsKKyAgICB9
CisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHQ29sb3IoKSkKKyAgICB7CisgICAgICAgIHJldHVy
biBOVUxMOyAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworICAgICAgICAvL3JldCA9IG5ldyBHRE9N
U1ZHQ29sb3Ioc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSkpOworICAgIH0KKyNlbmRpZgor
ICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgIHJldCA9IG5l
dyBHRE9NQ1NTUHJpbWl0aXZlVmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2
YWx1ZSkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZSh2YWx1ZSk7
CisKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6
cHV0RE9NT2JqZWN0KHZhbHVlLCByZXQpOworfQorCitzdGF0aWMgQUxXQVlTX0lOTElORSBncG9p
bnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUpOworICAg
IEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChub2RlKSk7CisKKyAgICBE
b2N1bWVudCogZG9jID0gbm9kZS0+ZG9jdW1lbnQoKTsKKyAgICBHRE9NTm9kZSAqcmV0ID0gTlVM
TDsKKworICAgIC8vcHJpbnRmKCJjcmVhdGVXcmFwcGVyIG5vZGVUeXBlICVkXG4iLCBub2RlLT5u
b2RlVHlwZSgpKTsKKworICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5cGUoKSkgeworICAgICAgICBj
YXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVt
ZW50KCkpCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRp
Y19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgICAg
ICBlbHNlIGlmIChub2RlLT5pc1NWR0VsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
TlVMTDsKKyNpZiAwIC8qIFhYWCBUT0RPIC0gc2VlICMyMDU4NiAqLworICAgICAgICAgICAgICAg
IHJldCA9IGNyZWF0ZUdET01TVkdXcmFwcGVyKHN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihub2Rl
KSk7CisjZW5kaWYKKyNlbmRpZgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJl
dCA9IG5ldyBHRE9NRWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6CisgICAgICAg
ICAgICByZXQgPSBuZXcgR0RPTUF0dHIoc3RhdGljX2Nhc3Q8QXR0cio+KG5vZGUpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKKyAgICAgICAgICAg
IHJldCA9IG5ldyBHRE9NVGV4dChzdGF0aWNfY2FzdDxUZXh0Kj4obm9kZSkpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAg
ICAgICAgcmV0ID0gbmV3IEdET01DREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9u
Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZ
X05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUVudGl0eShzdGF0aWNfY2FzdDxFbnRp
dHkqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpQUk9D
RVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVByb2Nl
c3NpbmdJbnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2Rl
KSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6
CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNvbW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+
KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5U
X05PREU6CisgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIHRoZSBkb2N1bWVu
dCBpdHNlbGYgaW4gdGhlIHBlci1kb2N1bWVudCBkaWN0aW9uYXJ5CisgICAgICAgICAgICByZXR1
cm4gdG9HRE9NKHN0YXRpY19jYXN0PERvY3VtZW50Kj4obm9kZSkpOworICAgICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1l
bnRUeXBlKHN0YXRpY19jYXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6CisgICAgICAgICAgICByZXQg
PSBuZXcgR0RPTU5vdGF0aW9uKHN0YXRpY19jYXN0PE5vdGF0aW9uKj4obm9kZSkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToK
KyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnRGcmFnbWVudChzdGF0aWNfY2FzdDxE
b2N1bWVudEZyYWdtZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdE
T01FbnRpdHlSZWZlcmVuY2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBu
ZXcgR0RPTU5vZGUobm9kZSk7CisgICAgfQorCisgICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4g
R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qobm9kZSwgcmV0KTsKK30KKworZ3Bv
aW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQoreworICAgIGlmICghY29s
bGVjdGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9p
bnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoY29sbGVjdGlv
bik7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2Jq
ZWN0ICpyZXQ7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2Fz
ZSBIVE1MQ29sbGVjdGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlv
bio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2lmIDAKKyAgICAgICAgY2Fz
ZSBIVE1MQ29sbGVjdGlvbjo6RG9jQWxsOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1M
QWxsQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsK
KyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTUhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9u
Kj4oY29sbGVjdGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY29sbGVj
dGlvbi0+cmVmKCk7CisgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KGNvbGxlY3Rpb24sIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQp
Cit7CisgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICov
CisKKyAgICAvL3ByaW50ZigidG9HRE9NIEV2ZW50IHR5cGUgJXNcbiIsIGV2ZW50LT50eXBlKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlw
dEludGVycHJldGVyOjpnZXRET01PYmplY3QoZXZlbnQpOworICAgIGlmIChnb2JqKQorICAgICAg
ICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBpZiAoZXZlbnQtPmlz
VUlFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNLZXlib2FyZEV2ZW50KCkpCisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTUtleWJvYXJkRXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRF
dmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1RleHRFdmVudCgpKQor
ICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0RXZlbnQoc3RhdGljX2Nhc3Q8VGV4dEV2ZW50
Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01Nb3VzZUV2ZW50KHN0YXRpY19jYXN0PE1vdXNlRXZlbnQq
PihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNXaGVlbEV2ZW50KCkpCisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTVdoZWVsRXZlbnQoc3RhdGljX2Nhc3Q8V2hlZWxFdmVudCo+
KGV2ZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzU1ZH
Wm9vbUV2ZW50KCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RP
IC0gc2VlICMyMDU4NiAqLworICAgICAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1pvb21FdmVu
dChzdGF0aWNfY2FzdDxTVkdab29tRXZlbnQqPihldmVudCksIDApOworICAgICAgICB9CisjZW5k
aWYKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01VSUV2ZW50KHN0YXRp
Y19jYXN0PFVJRXZlbnQqPihldmVudCkpOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlzTXV0YXRp
b25FdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTU11dGF0aW9uRXZlbnQoc3RhdGljX2Nh
c3Q8TXV0YXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzT3ZlcmZs
b3dFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTU92ZXJmbG93RXZlbnQoc3RhdGljX2Nh
c3Q8T3ZlcmZsb3dFdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzTWVzc2Fn
ZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NTWVzc2FnZUV2ZW50KHN0YXRpY19jYXN0
PE1lc3NhZ2VFdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzUHJvZ3Jlc3NF
dmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50KHN0YXRpY19jYXN0PFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NUHJvZ3Jlc3NFdmVudChzdGF0
aWNfY2FzdDxQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICB9CisjaWYgRU5BQkxFKERPTV9T
VE9SQUdFKQorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1N0b3JhZ2VFdmVudCgpKQorICAgICAgICBy
ZXQgPSBuZXcgR0RPTVN0b3JhZ2VFdmVudChzdGF0aWNfY2FzdDxTdG9yYWdlRXZlbnQqPihldmVu
dCkpOworI2VuZGlmCisgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0QW5pbWF0aW9uRXZlbnQo
KSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01XZWJLaXRBbmltYXRpb25FdmVudChzdGF0aWNfY2Fz
dDxXZWJLaXRBbmltYXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlz
V2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdFRyYW5zaXRpb25FdmVudCo+KGV2ZW50KSk7
CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTUV2ZW50KGV2ZW50KTsKKworICAgIGV2
ZW50LT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmpl
Y3QoZXZlbnQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShUZXh0KiB0ZXh0KQoreworICAg
IGlmICghdGV4dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBnb2JqID0g
R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QodGV4dCk7CisgICAgaWYgKGdvYmop
CisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU5vZGUgKnJldCA9IG5ldyBHRE9NVGV4
dCh0ZXh0KTsKKyAgICB0ZXh0LT5kb2N1bWVudCgpLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNj
cmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QodGV4dCwgcmV0KTsKK30KKworZ3BvaW50ZXIg
dG9HRE9NKENTU1J1bGUqIHJ1bGUpCit7CisgICAgaWYgKCFydWxlKQorICAgICAgICByZXR1cm4g
TlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChydWxlKTsKKworICAgIGlmIChnb2JqKQorICAgICAg
ICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKyAgICBzd2l0Y2ggKHJ1bGUt
PnR5cGUoKSkgeworICAgICAgICBjYXNlIENTU1J1bGU6OlNUWUxFX1JVTEU6CisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTUNTU1N0eWxlUnVsZShzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihy
dWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpNRURJQV9S
VUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DU1NNZWRpYVJ1bGUoc3RhdGljX2Nhc3Q8
Q1NTTWVkaWFSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0Zv
bnRGYWNlUnVsZShzdGF0aWNfY2FzdDxDU1NGb250RmFjZVJ1bGUqPihydWxlKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpQQUdFX1JVTEU6CisgICAgICAgICAg
ICByZXQgPSBuZXcgR0RPTUNTU1BhZ2VSdWxlKHN0YXRpY19jYXN0PENTU1BhZ2VSdWxlKj4ocnVs
ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JUX1JV
TEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0ltcG9ydFJ1bGUoc3RhdGljX2Nhc3Q8
Q1NTSW1wb3J0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IENTU1J1bGU6OkNIQVJTRVRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTQ2hh
cnNldFJ1bGUoc3RhdGljX2Nhc3Q8Q1NTQ2hhcnNldFJ1bGUqPihydWxlKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpWQVJJQUJMRVNfUlVMRToKKyAgICAgICAg
ICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFyaWFibGVzUnVsZShzdGF0aWNfY2FzdDxDU1NWYXJpYWJs
ZXNSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1J1bGUocnVsZSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICB9CisKKyAgICBydWxlLT5yZWYoKTsKKyAgICBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OnB1dERPTU9iamVjdChydWxlLCByZXQpOworICAgIHJldHVybiByZXQ7Cit9CisKK2dwb2ludGVy
IHRvR0RPTShFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisKKyAgICAvLyBzaG91bGRuJ3QgYmUgb25lPyBBU1NFUlQoIVNjcmlwdElu
dGVycHJldGVyOjpnZXRET01PYmplY3QoZWxlbWVudCkpOworICAgIGdwb2ludGVyIGdvYmogPSBH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChlbGVtZW50KTsKKyAgICBpZiAoZ29i
aikKKyAgICAgICAgcmV0dXJuIGdvYmo7IC8vIGh1aD8gZXJyLi4uCisKKyAgICBHRE9NTm9kZSAq
cmV0OworICAgIERvY3VtZW50KiBkb2MgPSBlbGVtZW50LT5kb2N1bWVudCgpOworCisgICAgaWYg
KGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxX
cmFwcGVyKHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oZWxlbWVudCkpOworI2lmIEVOQUJMRShT
VkcpCisgICAgZWxzZSBpZiAoZWxlbWVudC0+aXNTVkdFbGVtZW50KCkpCisgICAgeworICAgICAg
ICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyAgICAgICAgLy9yZXQgPSBj
cmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4oZWxlbWVudCkpOwor
ICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAgcmV0ID0gbmV3IEdET01FbGVtZW50KGVs
ZW1lbnQpOworCisgICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpwdXRET01PYmplY3QoZWxlbWVudCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKFN0
eWxlU2hlZXQqIHN0eWxlU2hlZXQpCit7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAgICAgICBy
ZXR1cm4gTlVMTDsgLyogZXJyLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlw
dEludGVycHJldGVyOjpnZXRET01PYmplY3Qoc3R5bGVTaGVldCk7CisgICAgaWYgKGdvYmopCisg
ICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RPTU9iamVjdCAqcmV0OworICAgIGlmIChzdHls
ZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NTdHls
ZVNoZWV0KHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KSk7CisgICAgZWxz
ZQorICAgICAgICByZXQgPSBuZXcgR0RPTVN0eWxlU2hlZXQoc3R5bGVTaGVldCk7CisKKyAgICBz
dHlsZVNoZWV0LT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRE
T01PYmplY3Qoc3R5bGVTaGVldCwgcmV0KTsKK30KKworLyogZGVyaXZlZCBzb3VyY2VzIGF1dG8t
Z2VuZXJhdGVkICovCitncG9pbnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9iaik7
CisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldCogdGFyZ2V0KQoreworICAgIGlmICghdGFy
Z2V0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorICAg
IC8vIFNWR0VsZW1lbnRJbnN0YW5jZSBzdXBwb3J0cyBib3RoIHRvU1ZHRWxlbWVudEluc3RhbmNl
IGFuZCB0b05vZGUgc2luY2Ugc28gbXVjaCBtb3VzZSBoYW5kbGluZyBjb2RlIGRlcGVuZHMgb24g
dG9Ob2RlIHJldHVybmluZyBhIHZhbGlkIG5vZGUuCisgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBp
bnN0YW5jZSA9IHRhcmdldC0+dG9TVkdFbGVtZW50SW5zdGFuY2UoKTsKKyAgICBpZiAoaW5zdGFu
Y2UpCisgICAgICAgIHJldHVybiB0b0dET00oZXhlYywgaW5zdGFuY2UpOworI2VuZGlmCisjZW5k
aWYKKworICAgIE5vZGUqIG5vZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAgIGlmIChub2RlKQor
ICAgICAgICByZXR1cm4gdG9HRE9NKG5vZGUpOworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0KiB4
aHIgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3QoKSkKKyAgICAgICAgLy8gWE1MSHR0cFJlcXVl
c3QgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIGNh
Y2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRl
cjo6Z2V0RE9NT2JqZWN0KHhocik7CisKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVw
bG9hZCA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgpKQorICAgICAgICByZXR1cm4g
dG9HRE9NKHVwbG9hZCk7CisKKyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQor
ICAgIGlmIChET01BcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNh
dGlvbkNhY2hlKCkpCisgICAgICAgIC8vIERPTUFwcGxpY2F0aW9uQ2FjaGUgaXMgYWx3YXlzIGNy
ZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkg
aGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0
KGNhY2hlKTsKKyNlbmRpZgorCisgICAgLy8gVGhlcmUgYXJlIHR3byBraW5kcyBvZiBFdmVudFRh
cmdldHM6IEV2ZW50VGFyZ2V0Tm9kZSBhbmQgWE1MSHR0cFJlcXVlc3QuCisgICAgLy8gSWYgU1ZH
IHN1cHBvcnQgaXMgZW5hYmxlZCwgdGhlcmUgaXMgYWxzbyBTVkdFbGVtZW50SW5zdGFuY2UuCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK2dwb2ludGVy
IHRvR0RPTShFdmVudFRhcmdldE5vZGUqIHRhcmdldCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAg
ICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBOb2RlKiBub2RlID0gdGFyZ2V0LT50b05vZGUoKTsK
KyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJuIHRvR0RPTShub2RlKTsKKworICAgIHJldHVy
biB0b0dET00oc3RhdGljX2Nhc3Q8RXZlbnRUYXJnZXQqPih0YXJnZXQpKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDUwIEBACisvKgorICogVEhJUyBGSUxFIElTIERFUklWRUQgQlkgSEFO
RCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBJVCBJUyBOT1QgQU4g
QVVUTy1HRU5FUkFURUQgRklMRSBJVCBXQVMgQ1JFQVRFRCBNQU5VQUxMWSAqRlJPTSoKKyAqIEFO
IEFVVE8tR0VORVJBVEVEIEZJTEUuCisgKiBrZWVwaW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90
ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqIGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3Is
IG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogZ2VuZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRN
TEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworCisjaWZuZGVmIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKKyNkZWZpbmUgR0RP
TUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAorCisjaW5jbHVkZSAiR2RvbU5vZGVJbnRlcm5h
bC5oIgorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7CisKKyAgICBHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsKKworfQorCisjZW5kaWYgLy8gR0RPTUhU
TUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dk
b21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdo
dG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJD
U3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNT
dHJpbmcuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJHZG9tRXZl
bnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuaCIK
KyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorCitleHRlcm4gIkMiIHsKKwordm9pZAorZ2RvbV9l
dmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50X3RhcmdldF9ub2RlIChHZG9tRXZlbnRUYXJnZXRO
b2RlICp0aGl6KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworICAgIC8qCisgICAg
V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRlbSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVf
Z2V0X3ByaXZhdGUodGhpeik7CisgICAgV2ViQ29yZTo6U3RyaW5nIF9nX2V2ZW50X3RhcmdldF9u
b2RlX3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5nKGV2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJn
KTsKKyAgICBpdGVtLT5pbml0RXZlbnRUYXJnZXROb2RlKF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5
cGVfYXJnKTsKKyAgICAqLworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAq
ICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQor
ICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWlu
aWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGgg
Q2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
CisgKi8KKworI2lmbmRlZiBHZG9tRE9NQmluZGluZ19oCisjZGVmaW5lIEdkb21ET01CaW5kaW5n
X2gKKworI2luY2x1ZGUgPGtqcy9pbnRlcnByZXRlci5oPgorI2luY2x1ZGUgPGtqcy9sb29rdXAu
aD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworI2luY2x1ZGUgIkdkb21Ob2RlLmgi
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIkdkb21Ob2RlSW50ZXJuYWwuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgQXRvbWljU3RyaW5nOworICAgIGNs
YXNzIERvY3VtZW50OworICAgIGNsYXNzIEV2ZW50OworICAgIGNsYXNzIEZyYW1lOworICAgIGNs
YXNzIEtVUkw7CisgICAgY2xhc3MgTm9kZTsKKyAgICBjbGFzcyBTdHJpbmc7CisKKyNpZiBFTkFC
TEUoU1ZHKQorICAgIGNsYXNzIFNWR0VsZW1lbnQ7CisjZW5kaWYKKworICAgIGNsYXNzIEdET01T
Y3JpcHRJbnRlcnByZXRlciB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgdm9pZCogZ2V0
RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisgICAgICAgIHN0YXRpYyB2b2lkKiBwdXRE
T01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBHRE9NT2JqZWN0Kik7CisgICAgICAgIHN0YXRp
YyB2b2lkIGZvcmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpOworICAgIH07CisKKyAg
ICAvLyBSZXRyaWV2ZSBmcm9tIGNhY2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBh
IERPTSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xhc3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2Jq
PiBpbmxpbmUgdm9pZCogY2FjaGVET01PYmplY3QoRE9NT2JqKiBkb21PYmopCisgICAgeworICAg
ICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4u
LiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRE
T01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIEdET01P
YmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRvbU9iaik7CisJCWRvbU9iai0+cmVmKCk7Cisg
ICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChkb21PYmos
IHJldCk7CisgICAgfQorCisjaWYgRU5BQkxFKFNWRykKKyAgICAvLyBSZXRyaWV2ZSBmcm9tIGNh
Y2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBhbiBTVkcgRE9NIG9iamVjdC4KKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNzIEdkb21ET01PYmo+IGlubGluZSB2b2lkKiBj
YWNoZVNWR0RPTU9iamVjdChET01PYmoqIGRvbU9iaiwgU1ZHRWxlbWVudCogY29udGV4dCkKKyAg
ICB7CisgICAgICAgIGlmICghZG9tT2JqKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhY
WCBobW1tLi4uICovCisgICAgICAgIGlmICh2b2lkKiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0
ZXI6OmdldERPTU9iamVjdChkb21PYmopKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAg
ICAgR0RPTU9iamVjdCogcmV0ID0gbmV3IEdkb21ET01PYmooZG9tT2JqLCBjb250ZXh0KTsKKwkJ
ZG9tT2JqLT5yZWYoKTsKKyAgICAgICAgcmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0
RE9NT2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gR2RvbURPTUJpbmRpbmdfaApJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dkb21ET01PYmplY3RQcml2YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdFByaXZhdGUuY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3RQcml2YXRlLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLgorICovCisKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0
LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNs
dWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdFByaXZhdGUuaCIKKwor
ZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbURPTU9iamVjdCwgZ2RvbV9kb21fb2Jq
ZWN0LCBHX1RZUEVfT0JKRUNUKTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSB7Cisg
ICAgIEdET01PYmplY3QgKm1fbm9kZTsKK307CisKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dF
VF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9U
WVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkKKwordm9pZAorZ2RvbV9kb21f
b2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QgKiBp
dGVtKQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNU
X0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPm1fbm9kZSA9IGl0ZW07CisgICAgLypw
cml2LT5tX25vZGUtPmltcGwoKS0+cmVmKCk7Ki8KK30KKworR0RPTU9iamVjdCAqCitnZG9tX2Rv
bV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVxdWVzdCkKK3sKKyAgICBHZG9t
RE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1
ZXN0KTsKKyAgICByZXR1cm4gcHJpdi0+bV9ub2RlOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2Rv
bV9vYmplY3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01PYmplY3Qq
IHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2JqZWN0UHJp
dmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisKKyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgp
LT5kZXJlZigpOyovCisgICAgZGVsZXRlIHByaXYtPm1fbm9kZTsgLyogY2FsbHMgbV9pbXBsLT5k
ZXJlZigpICovCisKKyAgICBHX09CSkVDVF9DTEFTUyhnZG9tX2RvbV9vYmplY3RfcGFyZW50X2Ns
YXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0
X2NsYXNzX2luaXQoR2RvbURPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19P
QkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+ZmluYWxpemUgPSBnZG9tX2RvbV9vYmplY3RfZmlu
YWxpemU7CisKKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXpl
b2YoR2RvbURPTU9iamVjdFByaXZhdGUpKTsKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2Jq
ZWN0X2luaXQoR2RvbURPTU9iamVjdCogcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJp
dmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICBy
ZXF1ZXN0LT5wcml2ID0gcHJpdjsKK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVk
ZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRv
bWljU3RyaW5nLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
Z2xpYi1vYmplY3QuaCIKKworZXh0ZXJuICJDIiB7CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9p
bml0X2RvbV9vYmplY3QgKEdkb21ET01PYmplY3QgKnRoaXopCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbCAodGhpeik7CisJLyoKKyAgICBXZWJDb3JlOjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9k
b21fb2JqZWN0X2dldF9wcml2YXRlKHRoaXopOworICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21f
b2JqZWN0X3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOwor
ICAgIGl0ZW0tPmluaXRET01PYmplY3QoX2dfZG9tX29iamVjdF90eXBlX2FyZyk7CisJKi8KK30K
KworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTY1OSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tl
ciA8YWxwQGF0b2tlci5jb20+CisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMK
KyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFpbnQg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs
YWNlIC0gU3VpdGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFja2Fn
ZSBDb2RlR2VuZXJhdG9yR09iamVjdDsKKworIyBEZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVzCitt
eSAkbGljZW5jZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xcQGxrY2wubmV0PgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwXEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEFwcGxlIEluYy4KKyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215
ICVoZHJJbmNsdWRlcyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworbXkgJWltcGxU
eXBlZGVmcyA9ICgpOworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBt
eSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2Rl
R2VuZXJhdG9yID0gc2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxlc3Mo
JHJlZmVyZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBm
aW5pc2gKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xh
c3MnIHN0cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJmYWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNo
aWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7
CisKKyAgICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxu
IjsKKworICAgICRvYmplY3QtPkdlbmVyYXRlKCRkYXRhTm9kZSk7CisKKyAgICAjIFdyaXRlIGNo
YW5nZXMKKyAgICBteSAkZm5hbWUgPSAiR2RvbV8iIC4gJG5hbWU7ICNkZWNhbWVsaXplKCRuYW1l
KTsKKyAgICAkZm5hbWUgPX4gcy9fLy9nOworICAgICRvYmplY3QtPldyaXRlRGF0YSgkZm5hbWUp
OworfQorCisjIFBhcmFtczogJ2lkbERvY3VtZW50JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVs
ZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
KworICAgICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5
cGUKK3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxp
emUoJGNsYXNzTmFtZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUKK3sKKyAgICBteSAk
ZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiR2RvbURPTU9i
amVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDA7CisgICAgcmV0dXJuICJHZG9tIiAu
ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpOworfQor
c3ViIEdldFBhcmVudEdPYmpUeXBlCit7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAg
ICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdh
Y3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRh
Tm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2Jq
VHlwZSgkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7
Cit9CisKKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitz
dWIgY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1hcHsgdWNm
aXJzdCAkXyB9IHNwbGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRzKSk7Cit9
CisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGRl
Y2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8p
KFtBLVpdKikoW0EtWl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOwor
ICAgICAgICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAg
ICBteSAkdCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRw
MSA/ICIke3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7Cisg
ICAgfWdlOworICAgICRzOworfQorCitzdWIgR2V0SGRyTmFtZQoreworICAgICAgICBteSAkbmFt
ZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdk
b20kbmFtZSI7Cit9CisKK3N1YiBHZXRDbGFzc05hbWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAk
Y29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5h
bWUiOworfQorCitzdWIgR2V0R0luY2x1ZGVIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0Owor
ICAgICAgICBteSAkbmFtZSA9IEdldEhkck5hbWUoJHR5cGUpOworICAgICAgICAjbXkgJG5hbWUg
PSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgICAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7Cisg
ICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgICAgICByZXR1cm4gIiIg
aWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0
IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIGxvbmciOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcg
bG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOwor
ICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJl
dHVybiAiIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVybiAiUmFu
Z2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb20vR2Rv
bUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiBpZiAkdHlwZSBlcSAiRE9NT2JqZWN0IjsKKyAg
ICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsKKyAgICAgICAgcmV0
dXJuICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3Jh
cHBlcgorICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJET01TdHJp
bmciOworICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCIgaWYgJHR5cGUgZXEg
IkV2ZW50VGFyZ2V0IjsKKworICAgICAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBl
IGVxICJmbG9hdCI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBl
cSAiYm9vbGVhbiI7CisKKyAgICAgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBl
cSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1lLmgiOworfQorCisjIHJldHVybnMgMSBpZiB3
ZSBuZWVkIHRvIGNyZWF0ZSBhIGdvYmplY3Qgd3JhcHBlciBhcm91bmQgdGhlIHJldHVybiByZXN1
bHQKK3N1YiBJc0dET01DbGFzc1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAg
ICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICAgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJE
T01TdHJpbmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7
CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
ImRvdWJsZSI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICAg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlw
ZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAg
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJpbnQiOwor
ICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICAgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIlJHQkNv
bG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICAgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9CisKK3N1YiBHZXRQcm9wR1R5
cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1l
KCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5nIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsK
KyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgIHJldHVybiAibm90
eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgcmV0dXJuICJkb3Vi
bGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAiYm9vbGVhbiIgaWYgJHR5cGUg
ZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hhciIgaWYgJHR5cGUgZXEgImNoYXIiOworICAg
IHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAiaW50IiBpZiAk
dHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAidWNoYXIiIGlmICR0eXBlIGVxICJ1Y2hhciI7
CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgIHJldHVybiAi
aW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWludDY0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQg
bG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9u
ZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7Cisg
ICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERP
TSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gIm9iamVjdCI7Cit9CisKK3N1YiBHZXRHVHlw
ZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NO
YW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1lID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0
eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2RlICoiIGlmICR0eXBl
IGVxICJFdmVudFRhcmdldCI7CisgICAgICAgIHJldHVybiAiZ2NoYXIgKiIgaWYgJHR5cGUgZXEg
IkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAiZ2Zsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQi
OworICAgICAgICByZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJlSG93ICIgaWYgJHR5cGUg
ZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1cm4gImdkb3VibGUiIGlmICR0eXBlIGVxICJk
b3VibGUiOworICAgICAgICByZXR1cm4gImdib29sZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7
CisgICAgICAgIHJldHVybiAiZ2NoYXIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0
dXJuICJnbG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAgICAgICByZXR1cm4gImdzaG9ydCIg
aWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAgcmV0dXJuICJndWNoYXIiIGlmICR0eXBlIGVx
ICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAiZ3VpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7
CisgICAgICAgIHJldHVybiAiZ2ludCIgaWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVy
biAiZ3VpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICByZXR1cm4gImd1
bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4gImd1aW50
NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgICAgICByZXR1cm4gImd1
c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgICAgIHJldHVybiAiZ3Vs
b25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBw
ZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJl
dHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNo
aWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBHZXRHSW5jbHVkZUhkcigkdHlwZSk7CisgICAg
aWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7
CisgICAgICAgICAgICByZXR1cm4gIkdkb21FdmVudFRhcmdldE5vZGUuaCI7CisgICAgICAgIH0K
KyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAjIFhY
WCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAgICAgcmV0
dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRyOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIp
IHsKKyAgICAgICAgaWYgKElzR0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRo
ZHIgPSBzdWJzdHIoJGhkciwgMCwgbGVuZ3RoKCRoZHIpLTIpOworICAgICAgICAgICAgJGhkclBy
b3BJbmNsdWRlc3siZ2RvbS8iLiRoZHIuIi5oIn0gPSAxOworICAgICAgICAgICAgJGhkclByb3BJ
bmNsdWRlc3siZ2RvbS8iLiRoZHIuIlByaXZhdGUuaCJ9ID0gMTsKKyAgICAgICAgICAgICRoZHJQ
cm9wSW5jbHVkZXN7Imdkb20vIi4kaGRyLiJJbnRlcm5hbC5oIn0gPSAxOworICAgICAgICB9Cisg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9IDE7Cisg
ICAgICAgIH0KKyAgICB9CisKK30KKworc3ViIGFkZEluY0hkcgoreworICAgIG15ICR0eXBlID0g
c2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBu
ZSAiIikgeworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAgICAg
ICAgJGhkckluY2x1ZGVzeyJnZG9tLyRoZHIifSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAkaGRySW5jbHVkZXN7JGhkcn0gPSAxOworICAgICAgICB9CisgICAgfQorCit9CisK
K3N1YiBhZGRJbmNCb2R5Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIg
PSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJ
c0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9t
LyRoZHIifSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVz
eyRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIEdldFByaXZGbgoreworICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CisgICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9IHNo
aWZ0OworICAgIG15ICRyZXMgPSBzaGlmdDsKKyAgICBteSAkcGFybSA9IHNoaWZ0OworCisgICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgcmV0dXJuICJX
ZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiAkcmVzID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZl
bnRUYXJnZXROb2RlKj4oZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZShzZWxmKSk7
IjsKKyAgICB9CisgICAgcmV0dXJuICJXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogJHJlcyA9
ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHBhcm0pKTsiOworfQorCitzdWIgc2tp
cFByb3BUZW1wb3JhcmlseQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJHByb3Bf
dHlwZSA9IHNoaWZ0OworCisgICAgIyBza2lwIE1lZGlhTGlzdAorICAgIGlmICgkcHJvcF90eXBl
IGVxICJzdHlsZXNoZWV0czo6TWVkaWFMaXN0IikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICMgICAgcmV0
dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbgorICAg
IGlmICgkcHJvcF90eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIpIHsKKyAgICAgICAg
cmV0dXJuIDE7CisgICAgfQorCisgICAgIyBza2lwIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
CisgICAgI2lmICgkcHJvcF90eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMg
ICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24i
KSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIEV2ZW50TGlzdGVu
ZXIKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50TGlzdGVuZXIiKSB7CisgICAgIyAgICBy
ZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBza2lwIERPTVdpbmRvdworICAgICNpZiAoJHByb3Bf
dHlwZSBlcSAiRE9NV2luZG93IikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAg
ICMgc2tpcCBDb25zdHJ1Y3RvcnMgKHdoYXRldmVyIHRoZXkgYXJlKSBmb3Igbm93LgorICAgIGlm
ICgkcHJvcF90eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7CisgICAgICAgIHJldHVybiAxOworICAg
IH0KKworICAgICMgY2FudmFzMmQuLi4uCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgImN1c3RvbSIp
IHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkFy
cmF5IikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBl
cSAiRE9NVGltZVN0YW1wIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIFRP
RE86IFNWRworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQb2RUeXBlKCR0eXBlKSB8fCAkY29k
ZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIFVzZXNNYW51YWxUb0pTSW1wbGVtZW50
YXRpb24KK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgIyBza2lwcGVkIG91dCBDYW52
YXNQaXhlbEFycmF5IC0gc2VlIEpTQ2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAgZm9yIHdoeS4K
KyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiTm9kZSIgb3IgJHR5cGUgZXEgIkRvY3VtZW50IiBv
ciAkdHlwZSBlcSAiSFRNTENvbGxlY3Rpb24iIG9yICR0eXBlIGVxICJTVkdQYXRoU2VnIiBvciAk
dHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUgZXEgIkNTU1J1bGUiIG9yICR0eXBlIGVxICJD
U1NWYWx1ZSIgb3IgJHR5cGUgZXEgIkV2ZW50IiBvciAkdHlwZSBlcSAiRWxlbWVudCIgb3IgJHR5
cGUgZXEgIlRleHQiOworICAgIHJldHVybiAwOworfQorCisKKyMgR2VuZXJhdGUgaGVhZGVyIGFu
ZCBpbXBsCitzdWIgR2VuZXJhdGUKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkg
JGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQ
YXJlbnQgPSBAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAk
aGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50OworICAgIG15ICRwYXJlbnRDbGFzc05h
bWUgPSBHZXRQYXJlbnRDbGFzc05hbWUoJGRhdGFOb2RlKTsKKyAgICBteSAkcGFyZW50R09ialR5
cGUgPSBHZXRQYXJlbnRHT2JqVHlwZSgkZGF0YU5vZGUpOworICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGlu
dGVyZmFjZU5hbWUpOworICAgIG15ICRoZHJOYW1lID0gR2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFt
ZSk7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBpbXBsIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBj
UHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgcHVzaChAY1ByZWZp
eCwgIlxuIik7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJHRE9NQmluZGluZy5oIn0gPSAxOworICAg
ICRpbXBsSW5jbHVkZXN7Imdkb20vJGhkck5hbWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVz
eyJnZG9tLyR7aGRyTmFtZX1Qcml2YXRlLmgifSA9IDE7CisKKyAgICBteSAkcGFyZW50SW50ZXJm
YWNlTmFtZSA9ICJET01PYmplY3QiOworICAgIG15ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01P
YmplY3QiOworICAgIG15ICRwYXJlbnRIZHJOYW1lID0gIkdkb21ET01PYmplY3QiOworICAgIGlm
ICgkcGFyZW50Q2xhc3NOYW1lIG5lICJHT2JqZWN0IikKKyAgICB7CisgICAgICAgICRwYXJlbnRJ
bnRlcmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOworICAgICAgICBpZiAo
JHBhcmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICRwYXJl
bnRHSWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAg
ICAgICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7
CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAkcGFyZW50
R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1
ZGVzeyJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRl
c3siZ2RvbS8ke3BhcmVudEhkck5hbWV9UHJpdmF0ZS5oIn0gPSAxOworICAgICAgICAkaGRySW5j
bHVkZXN7Imdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1
ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAwOworICAgIH0KKworICAgICMgVE9E
TyAtIG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisg
ICAgIyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9HRE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVz
eyJOb2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRWxlbWVudC5oIn0gPSAxOworICAg
ICRpbXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NT
UnVsZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7
CisgICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1
ZGVzeyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0g
MTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhlbEFycmF5LmgifSA9IDE7CisgICAgJGlt
cGxJbmNsdWRlc3siRE9NV2luZG93LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siVGV4dC5o
In0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR1N0cmluZ0NvbnZlcnQuaCJ9ID0gMTsK
KworICAgICMgWFhYIFRPRE86IG1ha2UgdGhpcyBvcHRpb25hbCBvciBpbiBhIGhlYWRlciBmaWxl
LiAgb3IgZmluZCBhIGJldHRlciB3YXkuCisgICAgbXkgJGhhY2tEZWNscyA9IDw8ICJFT0YiOwor
bmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVyIHRvR0RPTShOb2RlKiBub2RlKTsKKyAg
ICBncG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShD
U1NSdWxlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRWxlbWVudCogbm9kZSk7CisgICAg
Z3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oSFRN
TENvbGxlY3Rpb24qIG5vZGUpOworICAgIC8vZ3BvaW50ZXIgdG9HRE9NKFNWR1BhdGhTZWcqIG5v
ZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBub2RlKTsKKyAgICBncG9pbnRl
ciB0b0dET00oRXZlbnRUYXJnZXROb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZl
bnRUYXJnZXQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudCogbm9kZSk7CisgICAg
Z3BvaW50ZXIgdG9HRE9NKENhbnZhc1BpeGVsQXJyYXkqIG5vZGUpOworICAgIGdwb2ludGVyIHRv
R0RPTShET01XaW5kb3cqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShUZXh0KiBub2RlKTsK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJGhhY2tE
ZWNscyk7CisKKyAgICBwdXNoKEBjQm9keSwgIm5hbWVzcGFjZSBXZWJDb3JlIHtcbiIpOworCisg
ICAgIyBHZXQgY29ycmVjdCBwYXNzL3N0b3JlIHR5cGVzIHJlc3BlY3RpbmcgUE9EVHlwZSBmbGFn
CisgICAgbXkgJHBvZFR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RU
eXBlIn07CisgICAgbXkgJHBhc3NUeXBlID0gJHBvZFR5cGUgPyAiSlNTVkdQT0RUeXBlV3JhcHBl
cjwkcG9kVHlwZT4qIiA6ICIkaW50ZXJmYWNlTmFtZSoiOworCisgICAgaWYgKCR7aW50ZXJmYWNl
TmFtZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBhbmQgIVVzZXNNYW51YWxUb0pTSW1wbGVt
ZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAg
ICAgICAgIyAgICBwdXNoKEBjQm9keSwgIkpTQzo6SlNWYWx1ZSogdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIG9iaiwgU1ZHRWxlbWVudCog
Y29udGV4dClcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQ
YXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgICAgIHB1c2goQGNCb2R5LCAi
SlNDOjpKU1ZhbHVlKiB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAkcGFzc1R5cGUgb2JqLCBT
VkdFbGVtZW50KiBjb250ZXh0KVxuIik7CisgICAgICAgICN9IGVsc2UgeworICAgICAgICAgICAg
cHVzaChAY0JvZHksICJncG9pbnRlciB0b0dET00oV2ViQ29yZTo6JHBhc3NUeXBlIG9iailcbiIp
OworICAgICAgICAjfQorCisgICAgICAgIHB1c2goQGNCb2R5LCAie1xuIik7CisgICAgICAgICNp
ZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gY2Fj
aGVTVkdET01PYmplY3Q8SlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4sICRjbGFzc05hbWUs
ICR7Y2xhc3NOYW1lfVByb3RvdHlwZT4oZXhlYywgb2JqLCBjb250ZXh0KTtcbiIpOworICAgICAg
ICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05h
bWUpKSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHksICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9N
T2JqZWN0PCRpbXBsQ2xhc3NOYW1lLCAkY2xhc3NOYW1lLCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+
KGV4ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gV2ViQ29yZTo6Y2FjaGVET01PYmplY3Q8V2ViQ29y
ZTo6JGludGVyZmFjZU5hbWUsIEdET00kaW50ZXJmYWNlTmFtZT4ob2JqKTtcbiIpOworICAgICAg
ICAjfQorICAgICAgICBwdXNoKEBjQm9keSwgIn1cbiIpOworICAgIH0KKworICAgIHB1c2goQGNC
b2R5LCAifSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAqL1xuIik7CisgICAgbXkgJGltcGxDb250ZW50
ID0gIiI7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNCb2R5LCAidXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiZXh0ZXJuIFwiQ1wiIHtcblxuIik7CisK
KyAgICAjIEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAaFByZWZpeCA9IHNw
bGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgICAgICAjcHVzaChAaFByZWZpeCwgIlxu
Iik7CisKKyAgICAjIEhlYWRlciBndWFyZAorICAgICAgICBteSAkZ3VhcmQgPSAiX18iIC4gJGNs
YXNzTmFtZSAuICJfSF9fIjsKKworICAgIG15ICRjbHNDYXBzID0gc3Vic3RyKENsc1RvR09ialR5
cGUoJGNsYXNzTmFtZSksIDUpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSAiZ2RvbV8iIC4g
ZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgI215ICRwYXJlbnRDbHNDYXBzID0gIkdE
T01fIiAuIENsc1RvR09ialR5cGUoJHBhcmVudEludGVyZmFjZU5hbWUpOworCisgICAgQGhQcmVm
aXhHdWFyZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUgJGd1YXJkCitFT0YK
KworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworR19CRUdJTl9ERUNMUworCitFT0YKKwor
ICAgIHB1c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0g
PDwgIkVPRiI7CisKKyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAgICAoJHts
Y2FzZV9pZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfShvYmop
ICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVf
JHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0NMQVNT
KGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV8k
e2Nsc0NhcHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc30o
b2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBF
XyR7Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQor
I2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0Vf
R0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfUNsYXNz
KSkKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtjbGFzc05hbWV9UHJp
dmF0ZTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFyZW50Q2xhc3NOYW1lfSBw
YXJlbnRfaW5zdGFuY2U7CisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0
cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7
Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZv
aWQpOworCitFT0YKKworICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGlt
cGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7
Z3VhcmR9X1BST1BfCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxDb250ZW50
KTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgJGhk
clByb3BJbmNsdWRleyJnbGliLW9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsi
Z2RvbS8ke3BhcmVudEhkck5hbWV9SW50ZXJuYWwuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1
ZGV7IkdET01PYmplY3QuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7IiR7aW50ZXJmYWNl
TmFtZX0uaCJ9ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2lmbmRlZiAk
e2d1YXJkfV9JTlRfCisjZGVmaW5lICR7Z3VhcmR9X0lOVF8KKyNpbmNsdWRlICJnbGliLW9iamVj
dC5oIgorI2luY2x1ZGUgImdkb20vJHtwYXJlbnRIZHJOYW1lfUludGVybmFsLmgiCisjaW5jbHVk
ZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250ZW50KTsKKworICAgICBpZiAoJHtpbnRl
cmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pIGFuZCAhVXNlc01hbnVhbFRvSlNJ
bXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgJGltcGxDb250ZW50ID0g
PDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKCR7aW50
ZXJmYWNlTmFtZX0qIG5vZGUpOworfSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAqLyAKK0VPRgorICAg
IHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVudCk7CisgICAgfQorICAgIHB1c2goQGhC
b2R5SW50ZXJuYWwsICJHX0JFR0lOX0RFQ0xTXG4iKTsKKworICAgICNDbGFzcyBkZWNsYXJhdGlv
bgorICAgICNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAjICAgIHB1
c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUge1xuIik7CisgICAg
I30gZWxzZSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGludGVy
ZmFjZU5hbWUgOiBwdWJsaWMgJHBhcmVudEdJZmFjZU5hbWUge1xuIik7CisgICAgICAgIHB1c2go
QGhCb2R5SW50ZXJuYWwsICIgICAgdHlwZWRlZiAkcGFyZW50R0lmYWNlTmFtZSBCYXNlO1xuIik7
CisgICAgI30KKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAicHVibGljOlxuIik7CisKKyAgICBw
dXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRHb2JqVHlwZSgpIHsgcmV0dXJuIEdET01f
VFlQRV8ke2Nsc0NhcHN9OyB9XG4iKTsKKworICAgIG15ICRuZWVkc1NWR0NvbnRleHQgPSAwOwor
ICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIEdET00kaW50
ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBpbXBsIiAuICgk
bmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCogY29udGV4dCIgOiAiIikgLiAiKTtcbiIp
OworCisgICAgIyBEZXN0cnVjdG9yCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB2aXJ0
dWFsIH5HRE9NJGludGVyZmFjZU5hbWUoKTtcbiIpIGlmICghJGhhc1BhcmVudCBvciAkaW50ZXJm
YWNlTmFtZSBlcSAiRG9jdW1lbnQiKSBvciAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IjsK
KworICAgIGlmICghJGhhc1BhcmVudCB8fCAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIp
KSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiBpbXBsKCkgY29uc3Qg
eyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRl
eHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInBy
aXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0
cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBoQm9keUlu
dGVybmFsLCAiICAgIFJlZlB0cjxKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiA+IG1faW1w
bDtcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0
ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwg
IiAgICAkaW1wbENsYXNzTmFtZSogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsg
fVxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBTVkdFbGVtZW50
KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9XG5cbiIpOworICAg
ICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJwcml2YXRlOlxuIik7CisgICAgICAgICMg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0
O1xuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQdHI8JGlt
cGxDbGFzc05hbWUgPiBtX2ltcGw7XG4iKTsKKyAgICAgICAgI30gZWxzZSB7CisgICAgICAgICAg
ICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBs
KCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG5cbiIpOworICAgICAgICAgICAgcHVz
aChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5
SW50ZXJuYWwsICIgICAgUmVmUHRyPFdlYkNvcmU6OiRpbnRlcmZhY2VOYW1lPiBtX2ltcGw7XG4i
KTsKKyAgICAgICAgI30KKyAgICB9IGVsc2lmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdFxuIik7Cisg
ICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAge1xuIik7CisgICAgICAgIHB1c2goQGhC
b2R5SW50ZXJuYWwsICIgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjokaW50ZXJm
YWNlTmFtZSo+KEJhc2U6OmltcGwoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5h
bCwgIiAgICB9XG4iKTsKKyAgICB9CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIn07XG4iKTsK
KworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFjZU5h
bWV9OjpHRE9NJGludGVyZmFjZU5hbWUoUGFzc1JlZlB0cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFt
ZT4gaW1wbCIgLiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIsIFNWR0VsZW1lbnQqIGNvbnRleHQiIDog
IiIpIC4gIilcbiIpOworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikgewor
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6bV9pbXBsKGltcGwpXG4iKTsKKyAgICB9IGVsc2lm
ICgkaGFzUGFyZW50KSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIDogJHBhcmVudEdJZmFj
ZU5hbWUoaW1wbCIgLiAoJHBhcmVudE5lZWRzU1ZHQ29udGV4dCA/ICIsIGNvbnRleHQiIDogIiIp
IC4gIilcbiIpIGlmICgkaW50ZXJmYWNlTmFtZSBuZSAiRE9NV2luZG93Iik7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAkcGFyZW50R0lmYWNlTmFtZSgpXG4iKSA7
CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9jb250ZXh0KGNvbnRleHQpXG4iKSBpZiAk
bmVlZHNTVkdDb250ZXh0OworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAsIG1faW1wbChpbXBs
KVxuIik7CisgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ7XG4iKTsKKyAgICBwdXNoKEBjQm9k
eSwgIn1cblxuIik7CisKKyAgICAjIERlc3RydWN0b3IKKyAgICBpZiAoISRoYXNQYXJlbnQgb3Ig
KCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSkgeworICAgICAgICBwdXNoKEBjQm9keSwg
IkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOworICAgICAg
ICBwdXNoKEBjQm9keSwgIntcbiIpOworCisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIG1faW1w
bC5nZXQoKS0+ZGVyZWYoKTtcbiIpOworICAgICAgICAjaWYgKCRwb2RUeXBlKSB7CisgICAgICAg
ICMgICAgbXkgJGFuaW1hdGVkVHlwZSA9ICRpbXBsQ2xhc3NOYW1lOworICAgICAgICAjICAgICRh
bmltYXRlZFR5cGUgPX4gcy9TVkcvU1ZHQW5pbWF0ZWQvOworCisgICAgICAgICMgICAgIyBTcGVj
aWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVyCisgICAgICAgICMgICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jc1NWR0FuaW1hdGVkVHlwZSgkYW5pbWF0ZWRUeXBlKSBhbmQgJHBvZFR5cGUgbmUgImZsb2F0
IikgeworICAgICAgICAjICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBKU1NWR0R5bmFtaWNQT0RU
eXBlV3JhcHBlckNhY2hlPCRwb2RUeXBlLCAkYW5pbWF0ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlciht
X2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgICMgICAgfQorICAgICAgICAjfQorICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERP
TU9iamVjdChtX2ltcGwuZ2V0KCkpO1xuIik7CisKKyAgICAgICAgcHVzaChAY0JvZHksICJcbn1c
blxuIik7CisgICAgfQorCisgICAgIyBEb2N1bWVudCBuZWVkcyBhIHNwZWNpYWwgZGVzdHJ1Y3Rv
ciBiZWNhdXNlIGl0J3MgYSBzcGVjaWFsIGNhc2UgZm9yIGNhY2hpbmcuIEl0IG5lZWRzCisgICAg
IyBpdHMgb3duIHNwZWNpYWwgaGFuZGxpbmcgcmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGUgY2Fj
aGluZyB0aGF0IE5vZGUgbm9ybWFsbHkgZG9lcy4KKyAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEg
IkRvY3VtZW50IikgeworICAgICAgICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9
Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiAg
ICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChzdGF0aWNf
Y2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oaW1wbCgpKSk7XG59XG5cbiIpOworICAg
IH0KKworICAgICRpbXBsSW5jbHVkZXN7Imdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOwor
ICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbElu
Y2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9IDE7CisKKyAgICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NO
YW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRlZnN7IiR7Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOwor
CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgor
I2luY2x1ZGUgPHdlYmtpdC93ZWJraXRwcml2YXRlLmg+IAorI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTm9kZS5o
IiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiTmFtZWRO
b2RlTWFwLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRl
ICJDYW52YXNQYXR0ZXJuLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8K
KyNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9w
dGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzU3R5bGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2Ug
dGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiAv
KiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSA8Z2RvbS9HZG9t
RE9NT2JqZWN0UHJpdmF0ZS5oPiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICov
CisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmg+IC8qIHl1a2s6IFRPRE8gLSBt
YWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlIDxnZG9tL0dkb21FdmVudFRhcmdldE5vZGVQ
cml2YXRlLmg+IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgb24gRXZlbnRUYXJn
ZXQqLworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0uaCIKKyNpbmNsdWRlIDxnZG9tLyR7aGRy
TmFtZX0uaD4KKyNpbmNsdWRlIDxnZG9tLyR7aGRyTmFtZX1Qcml2YXRlLmg+CisjaW5jbHVkZSA8
Z2RvbS8ke2hkck5hbWV9SW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxnZG9tLyR7aGRyTmFtZX1wcm9w
cy5oPgorCisjaW5jbHVkZSAiZ2RvbS9HU3RyaW5nQ29udmVydC5oIgorCisjaW5jbHVkZSAiQ2Fu
dmFzUGl4ZWxBcnJheS5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgor
I2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkhU
TUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgorI2luY2x1ZGUgPGdkb20vR2RvbUV2
ZW50Lmg+CisKKworRU9GCisKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworJHtoYWNrRGVjbHN9CisKK0dfQkVHSU5f
REVDTFMKKworR19ERUZJTkVfVFlQRSgke2NsYXNzTmFtZX0sICR7bGNhc2VfaWZhY2VuYW1lfSwg
JHtwYXJlbnRHT2JqVHlwZX0pOworCisvKgorc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlIHsK
KyAgICBjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICppdGVtOworfTsKKworI2RlZmlu
ZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9Q
UklWQVRFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9UHJpdmF0ZSkp
CisqLworR19FTkRfREVDTFMKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9p
ZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCkKK3sKK0VPRgorCisg
ICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworICAgIEdET00ke2ludGVyZmFjZU5hbWV9ICpyZXM7CisgICAgcmVzID0g
c3RhdGljX2Nhc3Q8R0RPTSR7aW50ZXJmYWNlTmFtZX0qPihnZG9tX2RvbV9vYmplY3RfZ2V0X3By
aXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihyZXMtPmltcGwoKSk7CitFT0YKKyAgICBwdXNo
KEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAk
ZnVuY3Rpb25OYW1lUHJlZml4ID0gJGxjYXNlX2lmYWNlbmFtZTsgCisgICAgU0tJUFBST1A6IGZv
cmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAg
IG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsK
KyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAg
ICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0
aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAg
ICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bUdldHRlciJ9KSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAg
ICAgICAgICAKKyAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisKKyAgICAgICAg
aWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAg
ICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgYWRkUHJv
cEluY0hkcigkcHJvcF90eXBlKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lU
X0FQSSAkdHlwZVxuJGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3BfZ2V0XyIgLiAiJHByb3BO
YW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAi
V0VCS0lUX0FQSSB2b2lkXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJvcF9zZXRfIiAuICIk
cHJvcE5hbWUgKCRmdW5jdGlvblNpZywgJHR5cGUiIC4gInZhbHVlKTtcblxuIik7CisgICAgfQor
CisgICAgIyBQcm9wZXJ0aWVzCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Cit9CisKK0df
QkVHSU5fREVDTFMKKworZW51bSB7CisgICAgQlJPV1NFUl9FVkVOVCwKKyAgICBMQVNUX1NJR05B
TAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9
OworCitlbnVtIHsKKyAgICBQUk9QXzAsCitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBs
Q29udGVudCk7CisKKyAgICBteSBAdHh0X2luc3RhbGxfcHJvcHMgPSAoKTsKKyAgICBteSBAdHh0
X3NldF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfZ2V0X3Byb3BzID0gKCk7CisKKyAgICBteSAk
cHJpdl9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNlTmFtZSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAi
Z3NlbGYiLCAic2VsZiIpOworCisgICAgbXkgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworc3Rh
dGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9i
amVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAgIEdWYWx1ZSAqIHZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworICAgICR7Y2xh
c3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisg
ICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0
X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2
b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3Qs
IGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBHVmFsdWUgKiB2YWx1
ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKK3sKKyAgICAke2Ns
YXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsKKyAgICAkcHJpdl9mbgor
ICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4
dF9zZXRfcHJvcCk7CisKKyAgICBTS0lQRU5VTTogZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRk
YXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHByb3BfbmFtZSA9ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgbXkgJHNldHByb3BfbmFtZV9mbiA9ICRjb2Rl
R2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9wX25hbWUpOworICAgICAgICBteSAkZ2V0cHJvcF9u
YW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHByb3BfbmFtZSk7CisKKyAgICAg
ICAgbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJHBy
b3BDYXBzID0gdWMoJHByb3BOYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90
eXBlKTsKKyAgICAgICAgbXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BDYXBzfSI7CisgICAg
ICAgIG15ICR7cHJvcF9ndHlwZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5cGUpOworICAgICAgICBp
ZiAoJHByb3BfZ3R5cGUgZXEgImV2ZW50X3RhcmdldCIpIHsKKyAgICAgICAgICAgICRwcm9wX2d0
eXBlID0gImV2ZW50X3RhcmdldF9ub2RlIjsKKyAgICAgICAgfQorICAgICAgICBteSAke3Byb3BH
VHlwZX0gPSB1YygkcHJvcF9ndHlwZSk7CisgICAgICAgIG15ICRsY2FzZV9ndHlwZW5hbWUgPSAi
Z2RvbV8iIC4gJHByb3BfZ3R5cGU7CisKKyAgICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCisgICAgICAgIGlm
ICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0
ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgi
fSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworICAgICAgICBpZiAoc2tp
cFByb3BUZW1wb3JhcmlseSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAgICAgICAgICAgIG5leHQg
U0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBwdXNoKEBjQm9keVBy
aXYsICIgICAgJHtwcm9wRW51bX0sXG4iKTsKKworICAgICAgICBteSAkZ3R5cGUgPSBHZXRQcm9w
R1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVB
REFCTEUiOworICAgICAgICBteSAkd3JpdGVhYmxlID0gJGF0dHJpYnV0ZS0+dHlwZSAhfiAvXnJl
YWRvbmx5LzsKKyAgICAgICAgbXkgJGNvbnN0ID0gInJlYWQtb25seSAiOworICAgICAgICBpZiAo
JHdyaXRlYWJsZSAmJiAkY3VzdG9tKSB7CisgICAgICAgICAgICAkY29uc3QgPSAicmVhZC1vbmx5
IChkdWUgdG8gY3VzdG9tIGZ1bmN0aW9ucyBuZWVkZWQgaW4gZ2RvbXdlYmtpdCkiOworICAgICAg
ICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHdyaXRlYWJsZSAm
JiAhJGN1c3RvbSkgeworICAgICAgICAgICAgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEV1JJ
VEUiOworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtd3JpdGUgIjsKKyAgICAgICAgfQorCisg
ICAgICAgIG15ICRfZ3R5cGUgPSAkZ3R5cGU7CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInVzaG9y
dCIpIHsKKyAgICAgICAgICAgICRfZ3R5cGUgPSAidWludCI7ICMgeXVrLgorICAgICAgICB9Cisg
ICAgICAgICRuaWNrID0gZGVjYW1lbGl6ZSgiJHtpbnRlcmZhY2VOYW1lfV8ke3Byb3BOYW1lfSIp
OworICAgICAgICAkbG9uZyA9ICIke2NvbnN0fSAke3R5cGV9ICR7aW50ZXJmYWNlTmFtZX0uJHtw
cm9wTmFtZX0iOworICAgICAgICBteSAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdfa2xhc3MsICR7cHJvcEVudW19LAor
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjXyR7X2d0eXBlfSAoIiR7cHJvcE5hbWV9IiwgLyogbmFt
ZSAqLworICAgICAgICAgICAgICAgICIkbmljayIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisg
ICAgICAgICAgICAgICAgIiRsb25nIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4
dHJhIGRvYyBzdHVmZiBoZXJlICovCitFT0YKKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJv
cHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSAiLyog
VE9ETyEgJGd0eXBlICovXG4iOworCisgICAgICAgIGlmICgkd3JpdGVhYmxlKSB7CisKKyAgICAg
ICAgICAgIG15ICRvayA9IDA7CisgICAgICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworICAg
ICAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgICAgICRjb252
ZXJ0X2ZuID0gIldlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgiOworICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJib29s
ZWFuIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5k
b3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBp
dCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAgICAg
ICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91Ymxl
IikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ci
KSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdz
IGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAgICAg
ICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVsb25nIikg
eworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7
ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFi
b3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86IHNraXAg
InB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAgICAgICAg
ICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgInVpbnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVjaGFyIikgeworICAgICAg
ICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIi
KSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICMgWFhYIFRPRE8gLSBza2lwIExvY2F0aW9uCisgICAgICAgICAgICBpZiAoJGludGVyZmFjZU5h
bWUgZXEgIkxvY2F0aW9uIikgeworICAgICAgICAgICAgICAgICRvayA9IDA7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICgkb2spIHsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRf
c2V0X3Byb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAg
ICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGdzZWxmLT5zZXQke3NldHBy
b3BfbmFtZV9mbn0oJHtjb252ZXJ0X2ZufShnX3ZhbHVlX2dldF8kZ3R5cGUgKHZhbHVlKSkiKTsK
KworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIsIGVjIikgaWYgQHskYXR0
cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0
X3Byb3BzLCAiKTtcbiIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywg
IiAgICAgICAgYnJlYWs7XG4gICAgfVxuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7
XG4iKTsKKworICAgICAgICBteSAkZXhjZXB0aW9uID0gIiI7CisgICAgICAgIGlmIChAeyRhdHRy
aWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7CisgICAgICAgICAgICAkZXhjZXB0aW9uID0gImVj
IjsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBteSAkY29udmVy
dF9mbiA9ICIiOworICAgICAgICBteSAkcG9zdF9jb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15
ICRkb25lID0gMDsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAg
ICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyAodmFs
dWUsIEdTdHJpbmdDb252ZXJ0KGdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259
KSkpO1xuIik7CisgICAgICAgICAgICAkZG9uZSA9IDE7CisgICAgICAgIH0KKyAgICAgICAgZWxz
aWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgIyRjb252ZXJ0X2ZuID0gIldU
Rjo6Z2V0UHRyKCR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRfcHJpdmF0ZSgiOworICAgICAgICAgICAg
IyRjb252ZXJ0X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNlX2d0eXBlbmFt
ZX0sICJnc2VsZiIsICJzZWxmIik7CisgICAgICAgICAgICAjJGNvbnZlcnRfZm4gPSAiJHtsY2Fz
ZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9
PigiOworICAgICAgICAgICAgIyRwb3N0X2NvbnZlcnRfZm4gPSAiKSI7CisgICAgICAgICAgICBt
eSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBlOworICAgICAgICAgICAgJHR4dF9nZXRf
cHJvcCA9IDw8ICJFT0YiOworICAgICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OiR7cHJvcF90eXBl
fT4gcHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pOworICAgICAg
ICBnX3ZhbHVlX3NldF9vYmplY3QgKHZhbHVlLCBXZWJDb3JlOjp0b0dET00ocHRyLmdldCgpKSk7
CitFT0YKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOwor
ICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkZG9uZSkg
eworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1ZV9zZXRf
JF9ndHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7
ZXhjZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xuIik7CisgICAgICAgIH0KKworICAgICAg
ICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKworICAg
ICAgICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/Pz8KKyAgICAgICAgIyBjYW4gaXQg
YmUgZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0eXBlCisgICAgICAgICMgYW5kIGdl
dHRpbmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUgbWluLW1heCBmb3IgZXhhbXBsZT8KKyAg
ICAgICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3By
b3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklOVCwgICAgICAgIC8qIG1pbiAq
LworICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAw
LCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
Ym9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7Cisg
ICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lm
ICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8
PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZMT0FULCAgICAgICAgLyogbWluICovCisg
ICAgICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwg
ICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRv
dWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAg
ICAgICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAg
ICBHX01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRl
ZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAg
ICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAg
MCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDY0LCAvKiBtYXgg
Ki8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxf
cHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAg
ICAgICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAg
ICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9u
ZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAg
ICAgICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19N
QVhMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVCwgLyogbWF4ICovCisgICAgICAg
ICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgk
Z3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAg
ICAgIEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
ZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7Cisg
ICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAg
IEdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5UOCwg
LyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgor
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2lu
c3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4g
Ki8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAg
ICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsK
KyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8
PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHRE9NX1RZUEVfJHtwcm9wR1R5cGV9LCAvKiBnb2Jq
ZWN0IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3By
b3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKSR7Z3BhcmFtZmxhZ30pKTsKKwor
RU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7
CisKKworICAgIH0KKworICAgIHB1c2goQGNCb2R5UHJpdiwgIn07XG5cbiIpOworCisKKyAgICAk
dHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CisgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9X
QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0
X3Byb3ApOworCisgICAgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworICAgZGVmYXVsdDoKKyAg
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0
X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8
ICJFT0YiOworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIHNlbGYtPmFnZSA9IGdfdmFsdWVf
Z2V0X2ludCAodmFsdWUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFJPUF9BR0U6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgc2VsZi0+YWdlKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgKyAgIGdfdmFsdWVfaW5pdCgmcGFyYW1zWzBdLCBHX1RZUEVfRlJPTV9JTlNU
QU5DRShvYmplY3QpKTsKKyAgICAgICAgKyAgIGdfdmFsdWVfc2V0X2luc3RhbmNlKCZwYXJhbXNb
MF0sIChncG9pbnRlcilvYmplY3QpOworCitFT0YKKworICAgICMgVE9ETzogd29yayBvdXQgaWYg
aXQncyBhcHByb3ByaWF0ZSB0byBzcGxpdCB0aGlzIGludG8gbWFueSBkaWZmZXJlbnQKKyAgICAj
IHNpZ25hbHMgZS5nLiAiY2xpY2siIGV0Yy4KKyAgICBteSAkdHh0X2luc3RhbGxfc2lnbmFscyA9
ICIiOworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIG9yCisgICAgICAg
ICRpbnRlcmZhY2VOYW1lIGVxICJYTUxIdHRwUmVxdWVzdCIpIHsKKyAgICAgICAgJHR4dF9pbnN0
YWxsX3NpZ25hbHMgPSA8PCAiRU9GIjsKKyAgICBldmVudF9zaWduYWxzW0JST1dTRVJfRVZFTlRd
ID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwKKyAgICAgICAgR19UWVBFX0ZST01fQ0xB
U1MocmVxdWVzdENsYXNzKSwKKyAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xB
U1QgfCBHX1NJR05BTF9BQ1RJT04gfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVEICApLAorICAgICAgICAwLAorICAgICAgICBOVUxM
LAorICAgICAgICBOVUxMLAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9P
TEVBTiwKKyAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgIEdET01fVFlQRV9FVkVOVCwg
R19UWVBFX0JPT0xFQU4pOworRU9GCisgICAgfQorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVP
RiI7CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZShHT2JqZWN0KiBv
YmplY3QpCit7CisgICAgLyoke2NsYXNzTmFtZX0qIHJlcXVlc3QgPSBHRE9NXyR7Y2xzQ2Fwc30o
b2JqZWN0KTsqLworICAgIC8qJHtjbGFzc05hbWV9UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnBy
aXY7Ki8KKworICAgIC8qR09iamVjdENsYXNzICpwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xhc3Nf
cGVlayAoZ190eXBlX3BlZWtfcGFyZW50ICgke3BhcmVudEdPYmpUeXBlfSkpOyovCisKKyAgICAv
KiBGcmVlIGFueSBtZW1vcnkgb3IgY2xvc2UgYW55IGZpbGVzICovCisKKyAgICAvKnBhcmVudF9j
bGFzcy0+IGZpbmFsaXplIChvYmplY3QpOyovCisKKyAgICBHX09CSkVDVF9DTEFTUygke2xjYXNl
X2lmYWNlbmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworQHR4dF9z
ZXRfcHJvcHMKKworQHR4dF9nZXRfcHJvcHMKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5h
bWV9X2NsYXNzX2luaXQoJHtjbGFzc05hbWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBH
T2JqZWN0Q2xhc3MgKmdfa2xhc3MgPSBHX09CSkVDVF9DTEFTUyAocmVxdWVzdENsYXNzKTsKKyAg
ICBnX2tsYXNzLT5maW5hbGl6ZSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZTsKKyAgICBn
X2tsYXNzLT5zZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9m
bjsKKyAgICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9w
cm9wZXJ0eV9mbjsKKworQHR4dF9pbnN0YWxsX3Byb3BzCisKKyR0eHRfaW5zdGFsbF9zaWduYWxz
CisKKyAgICAvKmdfdHlwZV9jbGFzc19yZW1vdmVfcHJpdmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVv
Zigke2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFj
ZW5hbWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0KQoreworICAgIC8qJHtjbGFzc05hbWV9
UHJpdmF0ZSogcHJpdiA9IEdET01fJHtjbHNDYXBzfV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAg
ICByZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfQorCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJp
diwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7aW50ZXJm
YWNlTmFtZX1JbnRlcm5hbC5oIn0gPSAxOworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOwor
CisjaWZuZGVmICR7Z3VhcmR9X1BSSVZfCisjZGVmaW5lICR7Z3VhcmR9X1BSSVZfCisjaW5jbHVk
ZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCIKKyNp
bmNsdWRlICJHRE9NT2JqZWN0LmgiCisvKiNpbmNsdWRlICJnZG9tLyR7cGFyZW50SGRyTmFtZX1Q
cml2YXRlLmgiKi8KKy8qR19CRUdJTl9ERUNMUyovCisvKmNsYXNzIFdlYkNvcmU6OiR7aW50ZXJm
YWNlTmFtZX07Ki8KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKworICAgIHB1
c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJF
T0YiOworLy9uYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdET00ke2ludGVyZmFjZU5hbWV9
IDogcHVibGljICR7cGFyZW50R0lmYWNlTmFtZX0geworCitwdWJsaWM6CisgICAgR0RPTSR7aW50
ZXJmYWNlTmFtZX0oV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogaW1wbCkgOiAkcGFyZW50R0lm
YWNlTmFtZX0oaW1wbCkKKyAgICB7IGltcGwtPnJlZigpOyB9CisgICAgfkdET00ke2ludGVyZmFj
ZU5hbWV9KCkgeyBtX2ltcGwtPmRlcmVmKCk7IH0KKworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNl
TmFtZX0qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGw7IH0KKworCitwcml2YXRlOgorICAg
IFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKm1faW1wbDsKK307CisKK0VPRgorCisgICAgICAg
ICNwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8
PCAiRU9GIjsKKy8vfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCit0eXBlZGVmIHN0cnVjdCBfJHtj
bGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsKKworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCisk
e2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKwor
LypHX0VORF9ERUNMUyovCisKKyNlbmRpZiAvKiAke2d1YXJkfV9QUklWXyAqLworCitFT0YKKwor
ICAgICNyZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4o
KFdlYkNvcmU6Ok5vZGUqKShyZXMpKTsKKyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENv
bnRlbnQpOworCisgICAgICAgICNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NT2JqZWN0Iikgewor
ICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4K
KyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
In0gPSAxOworICAgICAgICAjfSBlbHNlIHsKKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyRp
bmNsdWRlSGRyfSA9IDE7CisgICAgICAgICN9CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7aW50
ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tRE9N
T2JqZWN0UHJpdmF0ZS5oIn0gPSAxOworCisgICAgICAgIExPT1A6IGZvcmVhY2ggbXkgJGZ1bmN0
aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICAgICAgI215ICRmdW5jdGlv
bk5hbWUgPSBkZWNhbWVsaXplKCRjbGFzc05hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJGZuX3NpZ19uYW1lID0g
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgICAgICAgICAgbXkgJGZuX3NpZ190
eXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgICAgICAgICAgbXkgJGZ1
bmN0aW9uTmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSAuICJfIiAu
IGRlY2FtZWxpemUoJGZuX3NpZ19uYW1lKTsKKyAgICAgICAgICAgICAgICBteSAkcmV0dXJuVHlw
ZSA9IEdldEdUeXBlKCRmbl9zaWdfdHlwZSk7CisgICAgICAgICAgICAgICAgbXkgJHJldF9pc19j
bHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkZm5fc2lnX3R5cGUpOworCisgICAgICAgICAgICAg
ICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworCisgICAgICAgICAgICAg
ICAgbXkgJGNhbGxfaW1wbF9wYXJhbXMgPSAiIjsKKyAgICAgICAgICAgICAgICBteSAkZ2RvbV9m
bl9wcmVmaXggPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX3R5cGUpOworCisgICAgICAg
ICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9u
X3NldF9wcm9wZXJ0eSIpIHsKKyAgICAgICAgICAgICAgICAgICAgIyByZXNlcnZlZCBuYW1lIGNs
YXNoIGluIGdsaWIhCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV9j
c3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X2Nzc19wcm9wZXJ0eSI7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICMgWFhYIHNraXAgQ29tcGFyZUhvdyBmdW5jdGlvbnMgZm9yIG5v
dworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3JhbmdlX2NvbXBh
cmVfYm91bmRhcnlfcG9pbnRzIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBoQm9keSwg
IlxuLyogWFhYIFRPRE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5h
bWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhY
IFRPRE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5c
biIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBTVkdEb2N1bWVudCBmdW5jdGlvbnMgZm9yIG5v
dworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBlcSAiR2RvbVNWR0RvY3VtZW50ICoi
KSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tp
cHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIFNW
R0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
ICMgWFhYIHNraXAgc29tZSBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKyAgICAgICAgICAgICAg
ICBteSAkaXNfY3VzdG9tX2ZuID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b20ifTsKKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV9odG1sX2NvbGxlY3Rpb25faXRlbSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAiZ2RvbV9odG1sX2NvbGxlY3Rpb25fbmFtZWRfaXRlbSIgfHwKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X29wZW4i
IHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBf
cmVxdWVzdF9zZXRfcmVxdWVzdF9oZWFkZXIiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9zZW5kIiB8fAorICAgICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0X3Jlc3Bv
bnNlX2hlYWRlciIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2Rv
bV94bWxfaHR0cF9yZXF1ZXN0X292ZXJyaWRlX21pbWVfdHlwZSIgfHwKKyAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2Rpc3BhdGNoX2V2
ZW50IiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2VsZW1l
bnRfc2V0X2F0dHJpYnV0ZSIpIHsKKyAgICAgICAgICAgICAgICAgICAgJGlzX2N1c3RvbV9mbiA9
IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAjJGZ1bmN0aW9uTmFt
ZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2FkZF9ldmVudF9saXN0ZW5lciIgfHwKKyAgICAg
ICAgICAgICAgICAgICAgIyRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9y
ZW1vdmVfZXZlbnRfbGlzdGVuZXIiIHx8CisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21f
Zm4gJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9p
dGVyYXRvcl9uZXh0X25vZGUiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1l
IG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAg
ICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGls
ZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dh
bGtlcl9wYXJlbnRfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
bmUgImdkb21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAorICAg
ICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZp
b3VzX3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX3RyZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisgICAgICAgICAgICAgICAgICAgICRm
dW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYgCisgICAg
ICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9u
b2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2Rl
X2l0ZXJhdG9yX3ByZXZpb3VzX25vZGUiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhC
b2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xu
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBj
dXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAg
ICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9y
ZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICAgICAg
ICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICAgICAgICAg
ICAgICBhZGRJbmNCb2R5KCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBhZGRJ
bmNIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUg
PSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFt
TmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25TaWcgLj0gIiwgJHBhcmFtVHlwZSAkcGFyYW1OYW1lIjsKKworICAgICAgICAgICAg
ICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURM
VHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIG5lICJET01PYmplY3QiICYm
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtSURMVHlwZSBuZSAiRXZlbnRUYXJn
ZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9H
ZG9tJHtwYXJhbUlETFR5cGV9UHJpdmF0ZS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7cGFyYW1JRExUeXBlfUludGVybmFsLmgi
fSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJh
bUlETFR5cGV9LmgifSA9IDE7ICMgdGhpcyBpc24ndCBzdHJpY3RseSBuZWNlc3NhcnkgYnV0IG9u
ZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQgZmlsZXMgbmVlZGVkIGl0IHNvLi4uLgorICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUgfHwgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmlu
ZyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1OYW1lID0gIl9nXyIgLiAkcGFy
YW1OYW1lOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgk
Y2FsbF9pbXBsX3BhcmFtcykgeworICAgICAgICAgICAgICAgICAgICAgICAgJGNhbGxfaW1wbF9w
YXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkY2FsbF9pbXBsX3Bh
cmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIGFkZEluY0hkcigkZm5fc2lnX3R5cGUpOworICAgICAg
ICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgIyAgICAk
aW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9zaWdfdHlwZX0ifSA9IDE7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworCisgICAg
ICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRv
ci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBu
ZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7Imdkb20vR2RvbSR7Zm5fc2lnX3R5cGV9UHJpdmF0ZS5oIn0gPSAxOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb20ke2ZuX3Np
Z190eXBlfUludGVybmFsLmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICAjIFhYWCBza2lwIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAg
ICAgICMgYnV0IHNraXAgZnJvbSBoZXJlIHRvIGFsbG93IHNvbWUgaGVhZGVycyB0byBiZSBjcmVh
dGVkCisgICAgICAgICAgICAgICAgIyBmb3IgYSBzdWNjZXNzZnVsIGNvbXBpbGUuCisgICAgICAg
ICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisgICAgICAgICAgICAgICAg
ICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIg
JiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVu
ZF9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBU
T0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAkX3JldHVyblR5cGUgPSAk
cmV0dXJuVHlwZTsKKyAgICAgICAgICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kZm5f
c2lnX3R5cGU7CisgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0
JyAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2h0bWxfY2Fu
dmFzX2VsZW1lbnRfZ2V0X2NvbnRleHQnKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIEhB
Q0shCisgICAgICAgICAgICAgICAgICAgICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCAqJzsKKyAgICAgICAgICAgICAgICAgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNh
bnZhc1JlbmRlcmluZ0NvbnRleHQnOworICAgICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVm
aXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQnOworICAgICAgICAgICAgICAgICAg
ICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorICAg
ICAgICAgICAgICAgICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJv
d3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQorICAgICAgICAgICAgICAgICAgICAjIGJldHRl
cjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190
eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUg
ZXEgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKyAgICAgICAgICAg
ICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgJF9yZXR1cm5UeXBlID0g
J0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgKic7CisgICAgICAgICAgICAgICAgICAgICRk
b21vYmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnOworICAgICAgICAgICAg
ICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQy
ZCc7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9PUDsgIyBYWFggLSB0b28gaW52b2x2ZWQg
Zm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICAgICAgICAgICAgICMgbXVzdCBjb252ZXJ0IHRv
IGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5kIG91dCBob3cpCisgICAg
ICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3JlYXRlIGEgR0RPTURv
bU9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIAorCisgICAg
ICAgICAgICAgICAgcHVzaChAaEJvZHksICJXRUJLSVRfQVBJICRfcmV0dXJuVHlwZVxuJGZ1bmN0
aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKVxue1xuIik7
CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisgICAgICAg
ICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAg
ICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwg
KHRoaXosIDApO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7XG4iKTsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJD
b3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3By
aXZhdGUodGhpeikpO1xuIik7CisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2
b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRl
ZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwg
KGl0ZW0pO1xuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3JlYWNoIG15
ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAg
IG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFtZSk7CisgICAgICAgICAgICAg
ICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAg
ICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2
ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbV9pc19j
bHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAg
ICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgICAgICAgICBpZiAo
JHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICMgICAgJGltcGxUeXBl
ZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBpZiAoISRwYXJhbVR5cGVJc1ByaW1pdGl2ZSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1
bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIg
ICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKyAgICAgICAgICAgICAgICBmb3Jl
YWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgICAgICAg
ICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgICAgICAgICAg
ICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAg
ICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAg
ICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUo
JHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICMgSEFDSyEKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVu
IiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbS0+bmFtZSBlcSAidXJsIikgewor
CisgICAgICAgICAgICAgICAgICAgICAgICAjJGltcGxJbmNsdWRlc3siS1VSTC5oIn0gPSAxOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6S1VSTCBf
Z18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpLVVJMKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzaWYgKCRwYXJhbUlETFR5cGUg
ZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIFdlYkNvcmU6OlN0cmluZyBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpTdHJpbmc6OmZy
b21VVEY4KCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFyYW1JRExU
eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNwdXNoKEBjQm9keSwgIiAgICBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9PiAqIF9nXyR7cGFyYW1OYW1lfSA9IFdU
Rjo6UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSk+O1xuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnRUYXJn
ZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9H
ZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIF9nXyR7
cGFyYW1OYW1lfSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoJHBhcmFtTmFtZSkpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7cGFyYW1JRExUeXBlfSAqIF9nXyR7cGFyYW1OYW1l
fSA9ICgke3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRlKCRwYXJhbU5hbWUpKTtcbiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1
cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRP
RE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoX2dfJHtwYXJhbU5h
bWV9LCAwKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsIChf
Z18ke3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAkcmV0dXJuUGFyYW1OYW1lID0g
Il9nXyIuJHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXR1cm4i
fTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduID0gIiI7
CisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbl9wcmUgPSAiIjsKKyAgICAgICAgICAgICAgICBt
eSAkYXNzaWduX3Bvc3QgPSAiIjsKKyAgICAgICAgICAgICAgICAkZ19yZXMgPSAwOworICAgICAg
ICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsK
KworICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgJGFzc2lnbiA9ICJQYXNzUmVmUHRyPFdlYkNvcmU6OiR7Zm5fc2lnX3R5
cGV9PiBnX3JlcyA9ICI7CisgICAgICAgICAgICAgICAgICAgICAgICAkYXNzaWduX3ByZSA9ICJX
VEY6OmdldFB0cigiOworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbl9wb3N0ID0gIiki
OworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAg
JGFzc2lnbiA9ICIke19yZXR1cm5UeXBlfSByZXMgPSAiOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG15ICRleGNlcHRpb25zID0gIiI7
CisgICAgICAgICAgICAgICAgaWYgKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgewor
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDtcbiIpOworICAgICAgICAgICAgICAgICAgICBpZiAoJHtjYWxsX2ltcGxfcGFy
YW1zfSBuZSAiIikgeworICAgICAgICAgICAgICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiLCBl
YyI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAkZXhjZXB0aW9ucyA9ICJlYyI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgICAgICAjIG5lZWQgdGhpcyBmb3IgaW5jbHVkaW5nIC4uLiBf
c29tZXRoaW5nXyAtIGZvciB0aGUgY2xhc3MgYXJncworICAgICAgICAgICAgICAgICNpZiAoJHJl
dF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICMgICAgJGltcGxJbmNsdWRlc3siZ2Rv
bSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgI30KKyAgICAgICAgICAg
ICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIgfHwKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2luc2VydF9iZWZv
cmUiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9y
ZXBsYWNlX2NoaWxkIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJn
ZG9tX25vZGVfcmVtb3ZlX2NoaWxkIikgeworICAgICAgICAgICAgICAgICAgICBteSAkY3VzdG9t
X2dkb21fbm9kZV9hcHBlbmRfY2hpbGQgPSA8PCAiRU9GIjsKKyAgICBib29sIG9rID0gaXRlbS0+
JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pOworICAgIGlm
IChvaykKKyAgICB7CisgICAgICAgICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7
X3JldHVyblR5cGV9PihXZWJDb3JlOjp0b0dET00oJHJldHVyblBhcmFtTmFtZSkpOworICAgICAg
ICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK0VPRgorICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIgJiYKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAnZ2RvbV9kb2N1bWVudF9nZXRfY3Nz
X2NhbnZhc19jb250ZXh0JykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICAvKiBYWFggVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0IChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgk
e2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpOyovXG4iICk7CisgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NU3Ry
aW5nIikgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn1H
U3RyaW5nQ29udmVydChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtl
eGNlcHRpb25zfSkpO1xuIiApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICgkZ19yZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRnX3JlcyA9
ICIke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxf
cGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSkiIDsKKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7
YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJh
bXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KTtcbiIgKTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5cGUg
bmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1cm5U
eXBlfT4oV2ViQ29yZTo6dG9HRE9NKGdfcmVzLmdldCgpKSk7XG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBp
ZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBjYW52
YXMgb2JqZWN0ICovXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7XG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIlxuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7
CisgICAgICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxu
Iik7CisgICAgcHVzaChAY0JvZHlQcml2LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisK
KyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgIiNlbmRpZiAvKiAke2d1YXJkfV9JTlRfKi9cbiIpOworCisgICAgcHVz
aChAaEJvZHksICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keSwgIiNlbmRpZiAv
KiAkZ3VhcmQgKi9cbiIpOworCisgICAgcHVzaChAaEJvZHlQcm9wLCAiR19FTkRfREVDTFNcblxu
Iik7CisgICAgcHVzaChAaEJvZHlQcm9wLCAiI2VuZGlmIC8qICR7Z3VhcmR9X1BST1BfKi9cbiIp
OworfQorCisjIEludGVybmFsIGhlbHBlcgorc3ViIFdyaXRlRGF0YQoreworICAgIG15ICgkb2Jq
ZWN0LCAkbmFtZSkgPSBAXzsKKworCisgICAgIyBXcml0ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBt
eSAkaGRyRk5hbWVJbnRlcm5hbCA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICJJbnRlcm5hbC5o
IjsKKyAgICBvcGVuKElOVEhFQURFUiwgIj4kaGRyRk5hbWVJbnRlcm5hbCIpIG9yIGRpZSAiQ291
bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZUludGVybmFsIjsKKworICAgIHByaW50IElOVEhFQURF
UiBAaFByZWZpeDsKKyAgICBwcmludCBJTlRIRUFERVIgIlxuIjsKKyAgICBwcmludCBJTlRIRUFE
RVIgQGhCb2R5SW50ZXJuYWw7CisgICAgY2xvc2UoSU5USEVBREVSKTsKKworICAgICMgV3JpdGUg
UHJpdmF0ZSBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVQcml2ID0gIiRvdXRwdXREaXIvIiAuICRu
YW1lIC4gIlByaXZhdGUuaCI7CisgICAgb3BlbihQUklWSEVBREVSLCAiPiRoZHJGTmFtZVByaXYi
KSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWVQcml2IjsKKworICAgIHByaW50
IFBSSVZIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgUFJJVkhFQURFUiAiXG4iOworICAgIHBy
aW50IFBSSVZIRUFERVIgQGhCb2R5UHJpdjsKKyAgICBjbG9zZShQUklWSEVBREVSKTsKKworICAg
ICMgV3JpdGUgUHJpdmF0ZSBJbXBsZW1lbnRhdGlvbgorICAgICNteSAkaW1wbEZpbGVOYW1lUHJp
diA9ICIkb3V0cHV0RGlyL1ByaXZhdGUiIC4gJG5hbWUgLiAiLmNwcCI7CisgICAgI29wZW4oUFJJ
VklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAk
aW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICAjcHJpbnQgUFJJVklNUEwgQGNQcmVmaXg7CisgICAg
I3ByaW50IFBSSVZJTVBMICJcbiI7CisgICAgI3ByaW50IFBSSVZJTVBMIEBjQm9keVByaXY7CisK
KyAgICAjY2xvc2UoUFJJVklNUEwpOworCisgICAgIyBXcml0ZSBwcm9wZXJ0aWVzIGhlYWRlciAo
YXZvaWRzIHJlY3Vyc2l2ZSBuaWdodG1hcmUpCisgICAgbXkgJGhkclByb3BGTmFtZSA9ICIkb3V0
cHV0RGlyLyIgLiAkbmFtZSAuICJwcm9wcy5oIjsKKyAgICBvcGVuKFBST1BIRUFERVIsICI+JGhk
clByb3BGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJQcm9wRk5hbWUiOwor
CisgICAgJGhkclByb3BJbmNsdWRlc3siZ2xpYi1vYmplY3QuaCJ9ID0gMTsKKworICAgIHByaW50
IFBST1BIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiLyogcmVjdXJzaXZl
IGluY2x1ZGVzIC8gZGVmaW5lcyBpc3N1ZSBmb3JjZXMgc2VwYXJhdGUgaGVhZGVyIGZvciBwcm9w
ZXJ0aWVzLlxucGVyaGFwcyAtIGJldHRlciAtIGFsbCBnZG9tIGd0ayBmdW5jdGlvbnMgc2hvdWxk
IGJlIGluIGhlcmUhKi9cbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBAaEJvZHlQcm9wUHJlOwor
ICAgIHByaW50IFBST1BIRUFERVIgIiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPlxu
IjsKKyAgICBwcmludCBQUk9QSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0
IGtleXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiXG4iIGlmIGtl
eXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiXG4iOworICAgIHBy
aW50IFBST1BIRUFERVIgQGhCb2R5UHJvcDsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAj
IFdyaXRlIHB1YmxpYyBoZWFkZXIuCisgICAgbXkgJGhkckZOYW1lID0gIiRvdXRwdXREaXIvIiAu
ICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKEhFQURFUiwgIj4kaGRyRk5hbWUiKSBvciBkaWUgIkNv
dWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWUiOworCisgICAgJGhkckluY2x1ZGVzeyJnbGliLW9i
amVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4OworICAgIHByaW50IEhF
QURFUiBAaFByZWZpeEd1YXJkOworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50IEhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIk
X1wiXG4iIH0gc29ydCBrZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIg
aWYga2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iOworICAgIHByaW50
IEhFQURFUiBAaEJvZHlQcmU7CisgICAgcHJpbnQgSEVBREVSIG1hcCB7ICJ0eXBlZGVmIHN0cnVj
dCBfJF8gJF87XG4iIH0gc29ydCBrZXlzKCVpbXBsVHlwZWRlZnMpOworICAgIHByaW50IEhFQURF
UiAiXG4iIGlmIGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keTsK
KworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdyaXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBz
b3VyY2VzCisgICAgbXkgJGltcGxGaWxlTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIu
Y3BwIjsKKyAgICBvcGVuKElNUEwsICI+JGltcGxGaWxlTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qg
b3BlbiBmaWxlICRpbXBsRmlsZU5hbWUiOworCisgICAgcHJpbnQgSU1QTCBAY1ByZWZpeDsKKyAg
ICBwcmludCBJTVBMICIjaW5jbHVkZSBcImNvbmZpZy5oXCJcblxuIjsKKyAgICBwcmludCBJTVBM
ICIjaW5jbHVkZSA8d3RmL0dldFB0ci5oPlxuIjsKKyAgICBwcmludCBJTVBMIG1hcCB7ICIjaW5j
bHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1Q
TCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisK
KyAgICBwcmludCBJTVBMICJcbiI7CisgICAgcHJpbnQgSU1QTCBAY0JvZHlQcml2OworCisgICAg
Y2xvc2UoSU1QTCk7CisKKyAgICAlaW1wbEluY2x1ZGVzID0gKCk7CisgICAgJWltcGxUeXBlZGVm
cyA9ICgpOworICAgICVoZHJJbmNsdWRlcyA9ICgpOworICAgIEBoUHJlZml4ID0gKCk7CisgICAg
QGhCb2R5ID0gKCk7CisgICAgQGhCb2R5UHJpdiA9ICgpOworICAgIEBoQm9keUludGVybmFsID0g
KCk7CisgICAgQGhCb2R5UHJvcCA9ICgpOworICAgIEBoQm9keVByb3BQcmUgPSAoKTsKKworICAg
IEBjUHJlZml4ID0gKCk7CisgICAgQGNCb2R5ID0gKCk7CisgICAgQGNCb2R5UHJpdiA9ICgpOwor
fQorCisxOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAzNjkw
MikKKysrIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDcgKzI3LDcgQEAKICAgICBdIEhUTUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCAgICAgIGZvcm07
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGVmYXVs
dFNlbGVjdGVkOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyAgICAgICAgICAgIHRleHQKICAgICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICNlbHNlCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHJl
dmlzaW9uIDM2OTAyKQorKysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHNlYXJjaDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0
ZXh0OwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBb
RG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxBcHBsZXRFbGVtZW50LmlkbAkocmV2aXNpb24gMzY5MDIpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEFwcGxldEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxNCArMzUsMTQgQEAKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIGNvZGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBjb2RlQmFzZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKLSNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBoc3BhY2U7CiAjZWxzZQogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhzcGFjZTsKICNlbmRp
ZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIG9iamVjdDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFT
Q1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdV
QUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyB2c3BhY2U7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHZzcGFjZTsKSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MRW1iZWRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVt
YmVkRWxlbWVudC5pZGwJKHJldmlzaW9uIDM2OTAyKQorKysgV2ViQ29yZS9odG1sL0hUTUxFbWJl
ZEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAgICAgICAgIElt
cGxlbWVudGF0aW9uVVVJRD05M2UwNDA3YS04MzgwLTRmZjAtOTc4ZC1mNzczZjJkZWU2YTMKICAg
ICBdIEhUTUxFbWJlZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhbGlnbjsKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBoZWlnaHQ7CiAjZWxzZQog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIGhlaWdo
dDsKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzcmM7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB0eXBl
OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHdpZHRoOwog
I2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9u
ZyB3aWR0aDsKSW5kZXg6IFdlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUu
CnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KSW5kZXg6IFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJ
KHJldmlzaW9uIDM2OTAyKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTYsNyArMTU2LDcgQEAKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBkb21haW47CiAjZWxzZQogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGRvbWFpbjsKQEAgLTE4Miw3ICsxODIsNyBAQAogCiAgICAgICAg
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlOYW1lKGluIERPTVN0cmluZyBlbGVtZW50TmFtZSk7CiAK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCiAKQEAgLTE5
NSw3ICsxOTUsNyBAQAogICAgICAgICBFbGVtZW50ICAgICAgICAgICAgZWxlbWVudEZyb21Qb2lu
dChpbiBsb25nIHgsIGluIGxvbmcgeSk7CiAKICAgICAgICAgLy8gTW96aWxsYSBleHRlbnNpb25z
Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgIERPTVNl
bGVjdGlvbiAgICAgICBnZXRTZWxlY3Rpb24oKTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGNoYXJhY3RlclNl
dDsKQEAgLTIzNiw3ICsyMzYsNyBAQAogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5Q2xh
c3NOYW1lKGluIERPTVN0cmluZyB0YWduYW1lKTsKIAogICAgICAgICAvLyBOb2RlU2VsZWN0b3Ig
LSBTZWxlY3RvciBBUEkKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkK
ICAgICAgICAgW0N1c3RvbV0gRWxlbWVudCBxdWVyeVNlbGVjdG9yKGluIFtDb252ZXJ0VW5kZWZp
bmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JzLCBpbiBOU1Jlc29sdmVy
IHJlc29sdmVyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtD
dXN0b21dIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2
ZXIpCkluZGV4OiBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAzNjkwMikKKysrIFdlYkNv
cmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBA
QAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERP
TVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50RXhj
ZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJ
KHJldmlzaW9uIDM2OTAyKQorKysgV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpF
Q1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAog
ICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBX
ZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9L
ZXlib2FyZEV2ZW50LmlkbAkocmV2aXNpb24gMzY5MDIpCisrKyBXZWJDb3JlL2RvbS9LZXlib2Fy
ZEV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gYWx0R3JhcGhLZXkpOwogCiAgICAgICAgIC8v
IFdlYktpdCBFeHRlbnNpb25zCi0jaWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNp
ZiAoKCFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpKSAmJiAoIWRlZmluZWQoTEFOR1VBR0Vf
R09CSkVDVCkpKQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBr
ZXlDb2RlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFy
Q29kZTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAkocmV2aXNpb24g
MzY5MDIpCisrKyBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAg
ICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAg
ICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAg
W0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2OTAy
KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTU1MDAsNiArNTUwMCwx
MzQgQEAKICAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCk6CiAgICAg
ICAgIChXZWJDb3JlOjpBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQpOgogCisyMDA4LTA5
LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5H
RUQKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULCBn
bGliIERPTSBiaW5kaW5ncyBmaWxlcywgaW5jbHVkaW5nIG1hcmtpbmcgU1ZHIGFzICJUT0RPIgor
ICAgICAgICAqIGJpbmRpbmdzL2dkb206IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20v
R0RPTUJpbmRpbmcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFdyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpyZW1v
dmVXcmFwcGVycyk6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyU2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdET01PYmplY3Q6On5HRE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBw
ZXJDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpkb21PYmplY3RzKToKKyAgICAgICAgKFdlYkNv
cmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZV9nZG9tX29iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50
ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpH
RE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1bWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFsbERPTU5v
ZGVzRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVy
OjptYXJrRE9NTm9kZXNGb3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0
SW50ZXJwcmV0ZXI6OnVwZGF0ZURPTU5vZGVEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjp0
b0dET00pOgorICAgICAgICAoV2ViQ29yZTo6dG9HRE9NTmV3bHlDcmVhdGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR0RPTUJp
bmRpbmcuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjYWNoZURPTU9iamVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpjYWNoZVNWR0RPTU9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvZ2Rv
bS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IEFkZGVkLiAgQ29waWVkIGZyb20g
dGhlIGF1dG8tZ2VuZXJhdGVkIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgCisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVBbmNob3JXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUFwcGxldFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXJlYVdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQmFzZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlQmFzZUZvbnRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJsb2Nr
cXVvdGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJvZHlXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJSV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVCdXR0b25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNhbnZhc1dyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlTW9kV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEaXJlY3RvcnlXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURpdldyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlRExpc3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUVtYmVkV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGaWVsZFNldFdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlRm9udFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
Rm9ybVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhbWVXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZyYW1lU2V0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVIZWFkaW5nV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVIZWFkV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVIUldyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSHRtbFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSUZyYW1l
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJbWFnZVdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW5wdXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUlzSW5kZXhXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxhYmVsV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVMZWdlbmRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUxJV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVMaW5rV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNYXBXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU1hcnF1ZWVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lbnVX
cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1ldGFXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU9iamVjdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
T0xpc3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9wdEdyb3VwV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHRpb25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZVBhcmFncmFwaFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFy
YW1XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVByZVdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlUXVvdGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVNjcmlwdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2VsZWN0V3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTdHlsZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlVGFibGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxlU2Vj
dGlvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVDZWxsV3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUZXh0QXJlYVdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlVGl0bGVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxl
Um93V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVVTGlzdFdyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlR0RPTUhUTUxXcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5n
cy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmg6ICBBZGRlZC4gIENvcGllZCBm
cm9tIHRoZSBhdXRvLWdlbmVyYXRlZCBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAorICAg
ICAgICAqIGJpbmRpbmdzL2dkb20vR0RPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKEdET01P
YmplY3Q6On5HRE9NT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21ET01PYmpl
Y3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcDog
QWRkZWQuCisgICAgICAgIChHU3RyaW5nQ29udmVydDo6R1N0cmluZ0NvbnZlcnQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAg
IChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZSk6Cisg
ICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0
ZSk6CisgICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9maW5h
bGl6ZSk6CisgICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9j
bGFzc19pbml0KToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2Jq
ZWN0X2luaXQpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3Qu
aDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0
Tm9kZS5jcHA6IEFkZGVkLgorICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJp
dmF0ZSk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2Jq
ZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21FdmVu
dFRhcmdldE5vZGUuaDogQWRkZWQuCisgICAgICAgIChHRE9NRXZlbnRUYXJnZXROb2RlOjpHRE9N
RXZlbnRUYXJnZXROb2RlKToKKyAgICAgICAgKEdET01FdmVudFRhcmdldE5vZGU6OmdldF9nb2Jq
X3R5cGUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG06IEFkZGVkIGdvYmplY3QgYmluZGluZ3MgYXV0by1nZW5lcmF0b3IuCisgICAgICAgICogZG9t
L0RPTUNvcmVFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElE
TAorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3Bl
Y2lmaWMgSURMCisgICAgICAgICogZG9tL0V2ZW50RXhjZXB0aW9uLmlkbDogYWRkZWQgTEFOR1VB
R0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5pZGw6
IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogZG9tL1Jhbmdl
RXhjZXB0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAg
ICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1z
cGVjaWZpYyBJREwKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbDogYWRkZWQg
TEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVs
ZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAq
IGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNp
ZmljIElETAorICAgICAgICAqIHBhZ2UvRE9NU2VsZWN0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0Vf
R09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IGFkZGVk
IExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1
ZXN0LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiB4
bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNw
ZWNpZmljIElETCAKKyAgICAgICAgKiB4bWwvWFBhdGhFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5H
VUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorCiAyMDA4LTA5LTEyICBEYXZlIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgdGhlIG1lbWJlciB2YXJpYWJsZXMgb2YgUGxh
dGZvcm1TY3JvbGxiYXIgdXAgaW50byBTY3JvbGxiYXIuICBNb3ZlIGF1dG9zY3JvbGwgdGltZXIg
aGFuZGxpbmcKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHJldmlzaW9uIDM2OTAyKQorKysg
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw5ICs2
MiwxMyBAQAogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8g
dm9pZCBzZW5kKCk7Ci0gICAgICAgIC8vIHZvaWQgc2VuZChpbiBET01TdHJpbmcgZGF0YSk7Cisj
aWYgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQorICAgICAgICB2b2lkIHNlbmQoaW4gRE9NU3Ry
aW5nIGRhdGEpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbHNlCiAgICAg
ICAgIFtDdXN0b21dIHZvaWQgc2VuZChpbiBEb2N1bWVudCBkYXRhKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYKIAogICAgICAgICB2b2lkIGFib3J0KCk7CiAKSW5k
ZXg6IFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM2OTAyKQorKysgV2ViQ29yZS94bWwv
WFBhdGhFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBACiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8
fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96
aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0
cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
bi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24u
aWRsCShyZXZpc2lvbiAzNjkwMikKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChM
QU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0
aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNl
bmRpZgpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDM2OTAyKQorKysgV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw3ICsxNTQsNyBAQAogICAgICAg
ICBbRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5LCBDdXN0b21dIHZvaWQgcG9zdE1lc3NhZ2UoaW4g
RE9NU3RyaW5nIG1lc3NhZ2UsIGluIFtPcHRpb25hbF0gTWVzc2FnZVBvcnQgbWVzc2FnZVBvcnQs
IGluIERPTVN0cmluZyB0YXJnZXRPcmlnaW4pCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAg
Ly8gR2xvYmFsIGNvbnN0cnVjdG9ycwogICAgICAgICBhdHRyaWJ1dGUgU3R5bGVTaGVldENvbnN0
cnVjdG9yIFN0eWxlU2hlZXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBDU1NTdHlsZVNoZWV0Q29uc3Ry
dWN0b3IgQ1NTU3R5bGVTaGVldDsKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCShyZXZpc2lvbiAz
NjkwMikKKysrIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC02Miw3ICs2Miw3IEBACiAgICAgICAgIHZvaWQgcmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICAgICAg
IHZvaWQgYWRkUmFuZ2UoaW4gUmFuZ2UgcmFuZ2UpOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChM
QU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygp
OwogI2VuZGlmCiAgICAgfTsKSW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VM
b2cJKHJldmlzaW9uIDM2OTAyKQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIy
ICsxLDEzIEBACi0yMDA4LTA5LTIzICBSaWNoYXJkIEh1bHQgIDxyaWNoYXJkQGltZW5kaW8uY29t
PgorMjAwOC0wOS0xMiAgbGtjbCAgPGxrY2xAbGtjbC5uZXQ+CiAKLSAgICAgICAgUmV2aWV3ZWQg
YnkgQWxwIFRva2VyLiBMYW5kZWQgYnkgSmFuIEFsb256by4KKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCiAKLSAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA1ODIKLSAgICAgICAgW0d0a10gTGluayBlcnJvciBvbiBNYWMgT1MgWAorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGQgR2RvbSouaCBnbGliIERPTSBiaW5kaW5ncyBoZWFk
ZXIgZmlsZXMsCisgICAgICAgIAorICAgICAgICBBbHNvIGFkZGVkIGdkb21lbnVtdHlwZXMuY3Bw
LGggd2hpY2ggcHJlc2VudGx5IGRvIG5vdAorICAgICAgICBhY3R1YWxseSBjb250YWluIGFueXRo
aW5nLCBiZWNhdXNlIHRoZXJlIGFyZSBubyBlbnVtcworICAgICAgICBpbiB0aGUgZ2xpYiBiaW5k
aW5ncyAtIHlldC4KIAotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBPbmx5IHVzZSB0aGUgLXZl
cnNpb24tc2NyaXB0IGZsYWcgZm9yIHRoZSBnbnUKLSAgICAgICAgbGlua2VyLgotICAgICAgICAq
IGNvbmZpZ3VyZS5hYzogQ2hlY2sgZm9yIEdOVSBPU2VzLgotCi0yMDA4LTA5LTE5ICBBbHAgVG9r
ZXIgIDxhbHBAbnVhbnRpLmNvbT4KLQotICAgICAgICBCdWlsZCBmaXggZm9yIHRoZSAnZ29sZCcg
bGlua2VyIGFuZCByZWNlbnQgYmludXRpbHMuIE5ldyBiZWhhdmlvdXIKLSAgICAgICAgcmVxdWly
ZXMgdGhhdCB3ZSBsaW5rIHRvIHVzZWQgbGlicmFyaWVzIGV4cGxpY2l0bHkuCi0KLSAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKLSAgICAgICAgKiBjb25maWd1cmUuYWM6Ci0KIDIwMDgtMDktMDQg
IE1hcmNvIEJhcmlzaW9uZSAgPG1hcmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9jc3MvdmFyaWFibGVzL2ltYWdlLXRlc3QtZXhwZWN0ZWQucG5nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1l
LXR5cGUgPSBpbWFnZS9wbmcKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy92YXJpYWJsZXMvc2hvcnRoYW5kLXRlc3QtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90
IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBp
bWFnZS9wbmcKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy92YXJpYWJs
ZXMvbXVsdGlwbGUtdGVybS10ZXN0LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNw
bGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2Uv
cG5nCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvdmFyaWFibGVzL2lu
dmFsaWQtdmFyaWFibGUtdGVzdC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxh
eTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3Bu
ZwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3ZhcmlhYmxlcy9pbmxp
bmUtc3R5bGUtdGVzdC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmls
ZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3ZhcmlhYmxlcy9vdmVycmlkZS10
ZXN0LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBh
cyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvdmFyaWFibGVzL3ZhcmlhYmxlLWl0ZXJhdGlvbi10
ZXN0LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBh
cyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvdmFyaWFibGVzL2Jsb2NrLWN5Y2xlLXRlc3QtZXhw
ZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmlu
YXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy92YXJpYWJsZXMvcHJpbnQtdGVzdC1l
eHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBi
aW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvY3NzL3ZhcmlhYmxlcy9jb2xvcnMtdGVzdC1leHBlY3RlZC5wbmcK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4K
c3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvY3NzL3ZhcmlhYmxlcy9mb250LXRlc3QtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fu
bm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUg
PSBpbWFnZS9wbmcKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy92YXJp
YWJsZXMvbWlzcGxhY2VkLWltcG9ydC10ZXN0LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5v
dCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0g
aW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvdmFyaWFi
bGVzL2ltcG9ydC10ZXN0LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBm
aWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvdmFyaWFibGVzL21hcmdpbi10
ZXN0LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBh
cyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvdmFyaWFibGVzL2RlY2xhcmF0aW9uLWJsb2NrLXRl
c3QtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFz
IGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy92YXJpYWJsZXMvc2V0LXZh
cmlhYmxlLXRlc3QtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUg
bWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlcGFpbnQvNDc3Njc2NS1leHBlY3RlZC5w
bmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlw
ZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwpJbmRleDogV2ViS2l0VG9vbHMvR05VbWFrZWZp
bGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9u
IDM2OTAyKQorKysgV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTYsNiArNiw4IEBACiBQcm9ncmFtc19HdGtMYXVuY2hlcl9DUFBGTEFHUyA9IFwKIAktSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQo
c3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0
ay93ZWJraXQgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29yZV9jcHBm
bGFncykKIApAQCAtMjgsNiArMzAsOCBAQAogCS1JJChzcmNkaXIpL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ayBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHRvcF9idWls
ZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAorCS1J
JCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKIAkkKGdsb2JhbF9jcHBmbGFncykg
XAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpCiAKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2OTAy
KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0zMzEsNiArMzMx
LDE4IEBACiAgICAgICAgICh3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZCk6CiAgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL09iakNQbHVnaW4ubToKIAorMjAwOC0wOS0xMiAgbGtjbCAgPGxr
Y2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogYWRkZWQgLUkgaW5jbHVkZXMgdG8gZ3RrIHdlYmtpdCBz
dWJkaXJlY3RvcmllcworCisgICAgICAgIEdkb20gZ2xpYiBET00gYmluZGluZ3MgaGF2ZSB0aGVp
ciBoZWFkZXIgZmlsZXMgY29udGFpbmluZworICAgICAgICAjaW5jbHVkZSAiZ2RvbSoiIHdoZXJl
ICNpbmNsdWRlIDx3ZWJraXQvZ2RvbSo+IGlzIG5vdAorICAgICAgICBwb3NzaWJsZSwgYXMgdGhl
IGdkb20qIHNvdXJjZSBhbmQgaGVhZGVyIGZpbGVzIGFyZSBhdXRvLWdlbmVyYXRlZAorICAgICAg
ICBpbnRvIERlcml2ZWRTb3VyY2VzLyBub3QgRGVyaXZlZFNvdXJjZXMvd2Via2l0LCBmb2xsb3dp
bmcgdGhlCisgICAgICAgIGV4YW1wbGUgb2YgdGhlIEpTIERlcml2ZWQgU291cmNlcy4KKwogMjAw
OC0wOS0wOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hcmsgUm93ZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24395</attachid>
            <date>2008-10-16 09:36:37 -0700</date>
            <delta_ts>2008-11-30 15:30:44 -0800</delta_ts>
            <desc>DOM patch updated to version 37602</desc>
            <filename>webkit-dom-37602.patch</filename>
            <type>text/plain</type>
            <size>225884</size>
            <attacher name="Martín Soto">donsoto</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzNzYwMikKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtODksNyArOTAsOCBAQAogIyBDb252ZW5pZW5jZSBsaWJyYXJpZXMKIG5vaW5zdF9MVExJQlJB
UklFUyA9IFwKIAlsaWJKYXZhU2NyaXB0Q29yZS5sYSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYldl
YkNvcmUubGEgXAorCWxpYmdkb20ubGEKIAogIwogIyBKYXZhU2NyaXB0Q29yZQpAQCAtMTA1LDcg
KzEwNyw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMg
XAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3d0ZiBcCiAJLUkkKHNyY2RpcikvSmF2YVNj
cmlwdENvcmUva2pzIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCS1JJCh0
b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJDb3Jl
L2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGluY2x1
ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVzcyB5
b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTE1Miw2ICsxNTUsMTAgQEAKIHdlYmNvcmVndGtfY3BwZmxh
Z3MgOj0KIHdlYmNvcmVndGtfc291cmNlcyA6PQogCit3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9IFwK
KwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9nZG9tIFwKKwktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrL2dkb20KKwogbm9kaXN0X0VYVFJBX2xpYldlYkNvcmVfbGFfU09VUkNFUyA9IFwK
IAkkKHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzKQogCkBAIC0yMTQsNiArMjIxLDU1IEBACiAJJChK
UEVHX0xJQlMpIFwKIAktbHB0aHJlYWQKIAorIyBsaWJnZG9tCitsaWJnZG9tX2J1aWx0X3NvdXJj
ZXMgOj0KK2xpYmdkb21fc291cmNlcyA6PQorbGliZ2RvbV9oX2FwaSA6PQorbGliZ2RvbV9jcHBm
bGFncyA6PQorbGliZ2RvbV9sYWRpciA9ICQocHJlZml4KS9pbmNsdWRlL3dlYmtpdC0xLjAvZ2Rv
bQorbGliZ2RvbV9sYV9IRUFERVJTID0gXAorICAgICAgICAkKGxpYmdkb21faF9hcGkpIFwKKwkJ
JChzcmNkaXIpL1dlYktpdC9ndGsvZ2RvbS9nZG9tLmggCisKK2xpYmdkb21fY3BwZmxhZ3MgKz0g
XAorCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCisJLUkk
KHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2dk
b20gXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvZ2RvbSBcCisJLUkkKHRvcF9idWlsZGRpcikv
RGVyaXZlZFNvdXJjZXMvZ2RvbSBcCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMK
KworbGliZ2RvbV9sYV9TT1VSQ0VTID0gXAorCSQobGliZ2RvbV9zb3VyY2VzKSAKKworbm9kaXN0
X2xpYmdkb21fbGFfU09VUkNFUyA9IFwKKwkkKGxpYmdkb21fYnVpbHRfc291cmNlcykgCisKK2xp
Ymdkb21fbGFfQ1BQRkxBR1MgPSBcCisJJChnbG9iYWxfY3BwZmxhZ3MpIFwKKwkkKHdlYmNvcmVf
Y3BwZmxhZ3MpIFwKKwkkKEdMT0JBTERFUFNfQ0ZMQUdTKSBcCisJJChXRUJLSVRERVBTX0NGTEFH
UykgXAorCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpIFwKKwkkKGxpYmdkb21fY3BwZmxhZ3Mp
IAorCitsaWJnZG9tX2xhX0xJQkFERCA9IFwKKwlsaWJXZWJDb3JlLmxhIFwKKwkkKEdMT0JBTERF
UFNfTElCUykgXAorCSQoV0VCS0lUREVQU19MSUJTKSBcCisJJChYVF9MSUJTKSBcCisJJChMSUJD
VVJMX0xJQlMpIFwKKwkkKExJQlNPVVBfTElCUykgXAorCSQoRlJFRVRZUEVfTElCUykgXAorCSQo
VU5JQ09ERV9MSUJTKSBcCisJJChTUUxJVEUzX0xJQlMpIFwKKwkkKEdTVFJFQU1FUl9MSUJTKSBc
CisJJChMSUJYU0xUX0xJQlMpIFwKKwkkKEhJTERPTl9MSUJTKSBcCisJJChKUEVHX0xJQlMpIFwK
KwktbHB0aHJlYWQKKwogIyBXZWJLaXQKIHdlYmtpdGd0a19oX2FwaSA6PQogd2Via2l0Z3RrX3Nv
dXJjZXMgOj0KQEAgLTIyOCw4ICsyODQsMTUgQEAKIGxpYndlYmtpdF8xXzBfbGFkaXIgPSAkKHBy
ZWZpeCkvaW5jbHVkZS93ZWJraXQtMS4wL3dlYmtpdAogbGlid2Via2l0XzFfMF9sYV9IRUFERVJT
ID0gXAogCSQod2Via2l0Z3RrX2hfYXBpKSBcCisJJChsaWJnZG9tX2hfYXBpKSBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmgKIAorIyBjb21tZW50IHRoZXNlIG91dCBmb3Ig
bm93LCBzZWUgd2hhdCBoYXBwZW5zCisjCSQobGliZ2RvbV9oX2FwaSkgCisjCVdlYktpdC9ndGsv
d2Via2l0L2dkb20uaCAKKyNXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgKKyNXZWJL
aXQvZ3RrL3dlYmtpdC9nZG9tZGVmaW5lcy5oCisKIGxpYndlYmtpdF8xXzBfbGFfU09VUkNFUyA9
IFwKIAkkKHdlYmtpdGd0a19zb3VyY2VzKQogCkBAIC0yNTAsNyArMzEzLDcgQEAKIAkkKG5vX3Vu
ZGVmaW5lZCkKIAogbGlid2Via2l0XzFfMF9sYV9MSUJBREQgPSBcCi0JbGliV2ViQ29yZS5sYQor
CWxpYmdkb20ubGEgCiAKICMKICMgRXh0cmEgY2hlY2tzIGFuZCBmbGFncwpAQCAtMzAxLDYgKzM2
NCwxNzggQEAKIHdlYmNvcmVfbGliYWRkICs9IC1sZ3N0aW50ZXJmYWNlcy0wLjEwIC1sZ3N0dmlk
ZW8tMC4xMAogZW5kaWYKIAorCitXZWJLaXQvZ3RrL2dkb20vZ2RvbS5oOgorIyBUT0RPOiBhdXRv
LWdlbmVyYXRlIHRoaXMgZmlsZQorCisjJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9Q
cml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHA6IFwKKyMJCSQodG9wX2J1aWxkZGlyKS9XZWJL
aXQvZ3RrL2dkb20vUHJpdmF0ZUludEdkb21FdmVudFRhcmdldE5vZGUuaAorCisKK2xpYmdkb21f
aF9hcGkgKz0gXAorCSQoc3JjZGlyKS9XZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9k
ZS5oXAorCSQoc3JjZGlyKS9XZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
QXR0ci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUJhckluZm8uaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DYW52YXNHcmFkaWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNhbnZhc1BhdHRlcm4uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQaXhlbEFy
cmF5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ0RBVEFTZWN0aW9uLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tQ2hhcmFjdGVyRGF0YS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNsaXBib2FyZC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvbW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21Db25zb2xlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q291bnRlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0NoYXJzZXRSdWxlLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTRm9udEZhY2VSdWxlLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNT
U01lZGlhUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1BhZ2VSdWxlLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DU1NSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVs
ZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVSdWxlLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ1NTU3R5bGVTaGVldC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNT
U1ZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWVMaXN0LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tRGF0YWJhc2UuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudEZyYWdt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRUeXBlLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbURPTUNvcmVFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21E
T01JbXBsZW1lbnRhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVBhcnNlci5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVNlbGVjdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbURPTVdpbmRvdy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbnRpdHkuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21F
dmVudEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZp
bGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSGlzdG9yeS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxBbmNob3JFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
QXJlYUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEJSRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCdXR0b25F
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTERpdkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRExp
c3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERvY3VtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TEZpZWxkU2V0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGb250RWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGb3JtRWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEhlYWRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRp
bmdFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIdG1sRWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEltYWdlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbnB1
dEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSXNJbmRleEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MTElFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExp
bmtFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWFycXVlZUVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MTWV0YUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTW9k
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxPcHRpb25zQ29sbGVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJh
Z3JhcGhFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQcmVFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxTY3JpcHRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TFNlbGVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU3R5bGVFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MVGFibGVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRleHRB
cmVhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRhLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SmF2YVNjcmlwdENhbGxGcmFtZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUtleWJvYXJk
RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Mb2NhdGlvbi5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbU1lZGlhTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1l
c3NhZ2VFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VQb3J0LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGVBcnJheS5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU1pbWVUeXBlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTW91c2VFdmVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU11dGF0aW9uRXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21OYW1lZE5vZGVNYXAuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21OYXZpZ2F0b3IuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlRmlsdGVyLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bU5vZGVJdGVyYXRvci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVMaXN0LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm90YXRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21PdmVyZmxvd0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUGx1Z2luQXJy
YXkuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW4uaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21Qcm9ncmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmFuZ2VFeGNl
cHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZS5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVJlY3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TY3JlZW4uaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxFcnJvci5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNRTFJlc3VsdFNldC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFJlc3Vs
dFNldFJvd0xpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxUcmFuc2FjdGlvbi5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0b3JhZ2VFdmVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVN0b3JhZ2UuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNo
ZWV0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldExpc3QuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21UZXh0RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21UZXh0TWV0cmljcy5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21UcmVlV2Fsa2VyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tVUlFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdEFuaW1hdGlvbkV2
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21XaGVlbEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21YTUxIdHRwUmVxdWVzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1
ZXN0VXBsb2FkLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MU2VyaWFsaXplci5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXZhbHVhdG9yLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tWFBhdGhFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
UGF0aEV4cHJlc3Npb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aFJlc3VsdC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVhTTFRQcm9jZXNzb3IuaAorCiB3ZWJraXRndGtfaF9hcGkgKz0gXAog
CVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRk
ZWZpbmVzLmggXApAQCAtMzEyLDEyICs1NDcsMTcgQEAKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJzZXR0aW5ncy5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKIAor
IyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZG9tZGVmaW5lcy5oCisKIHdlYmtpdGd0a19idWls
dF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXRlbnVtdHlwZXMuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXRtYXJzaGFsLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
bWFyc2hhbC5oIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlbnVtdHlwZXMuaAogCisjCURl
cml2ZWRTb3VyY2VzL2dkb21lbnVtdHlwZXMuY3BwIAorIwlXZWJLaXQvZ3RrL3dlYmtpdC9nZG9t
ZW51bXR5cGVzLmgKKwogd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVdlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCiAJV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaCBcCkBAIC0zNDEsMTQgKzU4MSwxNyBAQAogCVdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
aGlzdG9yeWl0ZW0uY3BwIFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5j
cHAgXAotCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisJV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2
ZW50LmNwcCAgCiAKIHdlYmtpdGd0a19jcHBmbGFncyArPSBcCiAJLURCVUlMRElOR19XRUJLSVQg
XAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKLQktSSQodG9w
X2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9n
dGsvd2Via2l0IFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrXAorCS1JJCh0b3BfYnVp
bGRkaXIpL0Rlcml2ZWRTb3VyY2VzCiAKIHdlYmtpdGd0a19jbGVhbmZpbGVzICs9IFwKIAkkKHRv
cF9idWlsZGRpcikvUHJvZ3JhbXMvR3RrTGF1bmNoZXIgXApAQCAtMzYzLDYgKzYwNiw5IEBACiAJ
c3RhbXAtd2Via2l0ZW51bXR5cGVzLmNwcCBcCiAJc3RhbXAtd2Via2l0ZW51bXR5cGVzLmgKIAor
IwlzdGFtcC1nZG9tZW51bXR5cGVzLmNwcCAKKyMJc3RhbXAtZ2RvbWVudW10eXBlcy5oIAorCiBX
RUJLSVRfTUFSU0hBTCA9ICQoR0VOU09VUkNFUykvd2Via2l0bWFyc2hhbAogV0VCS0lUX01BUlNI
QUxfTElTVCA9ICQoV0VCS0lUX01BUlNIQUwpLmxpc3QKIApAQCAtNDM5LDYgKzY4NSw1NCBAQAog
CSYmIGNwIHhnZW4tZ3RjICRAIFwKIAkmJiBybSAtZiB4Z2VuLWd0YwogCitXZWJLaXQvZ3RrL3dl
YmtpdC9nZG9tZW51bXR5cGVzLmg6IHN0YW1wLWdkb21lbnVtdHlwZXMuaAorCUB0cnVlCitzdGFt
cC1nZG9tZW51bXR5cGVzLmg6ICQobGliZ2RvbV9oX2FwaSkgR05VbWFrZWZpbGUKKwkoY2QgJChz
cmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVhZCAiI2lmbmRlZiBHRE9NX0VO
VU1fVFlQRVNfSFxuIiBcCisJCQktLWZoZWFkICIjZGVmaW5lIEdET01fRU5VTV9UWVBFU19IXG5c
biIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG5cbiIgXAorCQkJLS1m
aGVhZCAiR19CRUdJTl9ERUNMU1xuXG4iIFwKKwkJCS0tZnRhaWwgIkdfRU5EX0RFQ0xTXG5cbiIg
XAorCQkJLS1mdGFpbCAiI2VuZGlmXG4iIFwKKwkJCS0tZnByb2QgIiNpbmNsdWRlIDxAZmlsZW5h
bWVAPlxuXG4iIFwKKwkJCS0tZXByb2QgIiNkZWZpbmUgR0RPTV9UWVBFX0BFTlVNU0hPUlRAIEBl
bnVtX25hbWVAX2dldF90eXBlKClcblxuIiBcCisJCQktLWVwcm9kICJXRUJLSVRfQVBJIEdUeXBl
XG5AZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKTtcblxuIiBcCisJCQkkKGxpYmdkb21faF9hcGkp
IHwgXAorCQkJc2VkICdzLFdlYktpdC9ndGsvLCwnIHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxnZG9t
LCcgfCBcCisJCXNlZCAncyxHRE9NX1RZUEVfS0lULEdET01fVFlQRSwnIFwKKwkJKSA+IHhnZW4t
Y2d0aCBcCisJJiYgKGNtcCAtcyB4Z2VuLWNndGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10
eXBlcy5oIHx8IGNwIHhnZW4tY2d0aCBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgp
IFwKKwkmJiBybSAtZiB4Z2VuLWNndGggXAorCSYmIGVjaG8gdGltZXN0YW1wID4gJChARikKKwor
IyAgICAgICAgICAgICAgLS1maGVhZCAiI2luY2x1ZGUgPHdlYmtpdC9nZG9tZGVmaW5lcy5oPlxu
XG4iIAorCitEZXJpdmVkU291cmNlcy9nZG9tZW51bXR5cGVzLmNwcDogJChsaWJnZG9tX2hfYXBp
KSBHTlVtYWtlZmlsZQorCShjZCAkKHNyY2RpcikgXAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQkt
LWZoZWFkICIjaW5jbHVkZSA8Y29uZmlnLmg+XG4iIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSBcIiQodG9wX2J1aWxkZGly
KS9XZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmhcIlxuXG4iIFwKKwkJCS0tZmhlYWQg
ImV4dGVybiBcIkNcIiB7XG5cbiIgXAorCQkJLS1mcHJvZCAiXG4vKiBlbnVtZXJhdGlvbnMgZnJv
bSBcIkBmaWxlbmFtZUBcIiAqLyIgXAorCQkJLS12aGVhZCAic3RhdGljIGNvbnN0IEdAVHlwZUBW
YWx1ZSBfQGVudW1fbmFtZUBfdmFsdWVzW10gPSB7IiBcCisJCQktLXZwcm9kICIgICAgeyBAVkFM
VUVOQU1FQCwgXCJAVkFMVUVOQU1FQFwiLCBcIkB2YWx1ZW5pY2tAXCIgfSwiIFwKKwkJCS0tdnRh
aWwgIiAgICB7IDAsIE5VTEwsIE5VTEwgfVxufTtcblxuIiBcCisJCQktLXZ0YWlsICJHVHlwZSBA
ZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKVxue1xuIiBcCisJCQktLXZ0YWlsICIgICAgc3RhdGlj
IEdUeXBlIHR5cGUgPSAwO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAgICBpZiAoIXR5cGUpXG4iIFwK
KwkJCS0tdnRhaWwgIiAgICAgICAgdHlwZSA9IGdfQHR5cGVAX3JlZ2lzdGVyX3N0YXRpYyhcIkBF
bnVtTmFtZUBcIiwgX0BlbnVtX25hbWVAX3ZhbHVlcyk7XG5cbiIgXAorCQkJLS12dGFpbCAiICAg
IHJldHVybiB0eXBlO1xufVxuXG4iIFwKKwkJCS0tZnRhaWwgIn1cbiIgXAorCQkkKGxpYmdkb21f
aF9hcGkpIHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxnZG9tLCcgXAorCQkpID4geGdlbi1jZ3RjIFwK
KwkmJiBjcCB4Z2VuLWNndGMgJEAgXAorCSYmIHJtIC1mIHhnZW4tY2d0YworCiAjIEVORCBXRUJL
SVQgR1RLKwogIwogIyBGaWxlcyB0aGF0IHdpbGwgYmUgZGlzdHJpYnV0ZWQKQEAgLTQ2MSw2ICs3
NTUsOCBAQAogQlVJTFRfU09VUkNFUyA6PSBcCiAJJChqYXZhc2NyaXB0Y29yZV9idWlsdF9zb3Vy
Y2VzKSBcCiAJJChqYXZhc2NyaXB0Y29yZV9idWlsdF9ub3NvdXJjZXMpIFwKKwkkKGxpYmdkb21f
YnVpbHRfc291cmNlcykgXAorCSQobGliZ2RvbV9idWlsdF9ub3NvdXJjZXMpIFwKIAkkKHdlYmNv
cmVfYnVpbHRfc291cmNlcykgXAogCSQod2ViY29yZV9idWlsdF9ub3NvdXJjZXMpIFwKIAkkKHdl
YmtpdGd0a19idWlsdF9zb3VyY2VzKSBcCkluZGV4OiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gMzc2MDIpCisrKyBX
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMxLDYgKzIzMSw3IEBACiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmZy
YW1lTG9hZGVyRGVzdHJveWVkKCkKIHsKKyAgICBnX29iamVjdF91bnJlZihtX2ZyYW1lKTsKICAg
ICBtX2ZyYW1lID0gMDsKICAgICBkZWxldGUgdGhpczsKIH0KQEAgLTQ2NSw5ICs0NjYsNyBAQAog
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQ0KCkKIHsKLSAgICBB
U1NFUlQobV9mcmFtZSk7Ci0gICAgZ19vYmplY3RfdW5yZWYobV9mcmFtZSk7Ci0gICAgbV9mcmFt
ZSA9IDA7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVu
dDo6bG9hZGVkRnJvbUNhY2hlZFBhZ2UoKQpJbmRleDogV2ViS2l0L2d0ay9HRE9NT2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9HRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQvZ3RrL0dET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaWZuZGVmIF9fR0RPTU9iamVjdF9oX18KKyNkZWZpbmUgX19HRE9NT2JqZWN0
X2hfXworCitjbGFzcyBHRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5HRE9NT2Jq
ZWN0KCkge30KKworICAgIC8qIHRoaXMgaXMgYW4gYWJzb2x1dGVseSBjcml0aWNhbCBmdW5jdGlv
biB3aGljaCBhbGxvd3MKKyAgICAgKiB0aGUgdXNlIG9mIHRvR0RPTSgpIHRvIGRlY2lkZSwgdGhy
b3VnaCB0eXBlY2FzdGluZworICAgICAqIHdoaWNoIGdvYmplY3Qgc2hvdWxkIGJlIHJldHVybmVk
LiAgc2VlIEdET01CaW5kaW5nLmNwcCwKKyAgICAgKiBHRE9NSHRtbEVsZW1lbnRXcmFwcGVyRmFj
dG9yeS5jcHAgYW5kIG90aGVyIHNpbWlsYXIKKyAgICAgKiBmaWxlcyBmb3IgZXhhbXBsZXMuCisg
ICAgICovCisgICAgdmlydHVhbCBpbnQgZ2V0R29ialR5cGUoKSA9IDA7Cit9OworCisjZW5kaWYK
SW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDM3NjAyKQor
KysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDExICsxLDEzIEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEhvbGdlciBI
YW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENh
c3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAg
VG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlv
LmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgogICogQ29weXJpZ2h0
IChDKSAyMDA4IE51YW50aSBMdGQuCiAgKgorICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAg
LTMwLDE4ICszMiwyOSBAQAogI2luY2x1ZGUgIndlYmtpdHByaXZhdGUuaCIKIAogI2luY2x1ZGUg
IkNTdHJpbmcuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyV2luZG93LmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEd0ay5oIgogI2luY2x1
ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdkb21E
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJHZG9tRE9NV2luZG93UHJpdmF0ZS5oIgorI2luY2x1ZGUg
Ikdkb21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJHZG9tRXZlbnQuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2Rv
bVhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTRE9NQmlu
ZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQu
aCIKLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiVGV4dERvY3VtZW50LmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9BUElDYXN0Lmg+CiAKQEAgLTQ5LDYgKzYyLDEyIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBncG9p
bnRlciB0b0dET00oRE9NV2luZG93KiBkb2MpOworICAgIGdwb2ludGVyIHRvR0RPTShEb2N1bWVu
dCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3QqIG9iaik7Cit9CisK
IGV4dGVybiAiQyIgewogCiBlbnVtIHsKQEAgLTU3LDYgKzc2LDcgQEAKICAgICBMT0FEX0RPTkUs
CiAgICAgVElUTEVfQ0hBTkdFRCwKICAgICBIT1ZFUklOR19PVkVSX0xJTkssCisgICAgQlJPV1NF
Ul9FVkVOVCwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtMTYyLDYgKzE4MiwxNyBAQAogICAg
ICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZ
UEVfU1RSSU5HKTsKIAorICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tCUk9XU0VSX0VWRU5U
XSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgICAgICBHX1RZUEVfRlJP
TV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFM
X1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdfU0lHTkFMX0RFVEFJTEVEKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLAor
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVD
VF9CT09MRUFOLAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgICAgICBHRE9N
X1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKwogICAgIC8qCiAgICAgICogaW1wbGVtZW50
YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAqLwpAQCAtMjk0LDYgKzMyNSw5MiBAQAog
fQogCiAvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3htbF9odHRwX3JlcXVlc3Q6CisgKiBA
ZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJucyBhIEdkb20gd3JhcHBlciBh
cm91bmQgYW4gWE1MSHR0cFJlcXVlc3QKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgR2RvbVhNTEh0
dHBSZXF1ZXN0CisgKi8KK0dkb21YTUxIdHRwUmVxdWVzdCogd2Via2l0X3dlYl9mcmFtZV9nZXRf
eG1sX2h0dHBfcmVxdWVzdChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9X
ZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBj
b3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICByZXR1
cm4gR0RPTV9YTUxfSFRUUF9SRVFVRVNUKFdlYkNvcmU6OnRvR0RPTShYTUxIdHRwUmVxdWVzdDo6
Y3JlYXRlKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkuZ2V0KCkpKTsKK30KKworLyoqCisgKiB3ZWJr
aXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFt
ZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGEgRE9NV2luZG93CisgKgor
ICogUmV0dXJuIHZhbHVlOiBhIEdkb21ET01XaW5kb3cKKyAqLworR2RvbURPTVdpbmRvdyogd2Vi
a2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyhXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwp
OworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKwor
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1l
KTsKKyAgICBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luID0gY29yZUZyYW1lLT5kb21XaW5kb3co
KTsKKyAgICByZXR1cm4gR0RPTV9ET01fV0lORE9XKFdlYkNvcmU6OnRvR0RPTSh3aW4uZ2V0KCkp
KTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQ6CisgKiBA
ZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJucyBhIEdkb20gd3JhcHBlciBh
cm91bmQgYSBEb2N1bWVudCAKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgR2RvbURvY3VtZW50Cisg
Ki8KK0dkb21Eb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50KFdlYktp
dFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0ZSog
cHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUp
OworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIHJldHVybiBHRE9NX0RPQ1VNRU5UKFdlYkNv
cmU6OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50KCkpKTsKK30KKworLyogWFhYIFRPRE86IG1h
a2UgdGhpcyBub3QgdGFrZSBmcmFtZSogYXMgYW4gYXJndW1lbnQsCisgKiBhbmQgbWFrZSBpdCBy
ZXR1cm4gYSBHZG9tRXZlbnRMaXN0ZW5lciBjbGFzcyAqLworZXh0ZXJuICJDIiB7CitXRUJLSVRf
QVBJIGdib29sZWFuCithZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3
ZiwgRnJhbWUgKmZyYW1lLCBjb25zdCBjaGFyICpuYW1lKTsKK30KKworLyoqCisgKiB3ZWJraXRf
d2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJh
bWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBmcmFtZSdzIGRvY3VtZW50
CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBvZiBAZnJhbWUKKyAqLworZ2Jvb2xlYW4g
d2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIqIGV2ZW50X3R5cGUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9GUkFNRShmcmFtZSksIEZBTFNFKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBw
cml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7
CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisKKyAgICByZXR1cm4gYWRkX3dpbmRvd19ldmVudF9s
aXN0ZW5lcihmcmFtZSwgY29yZUZyYW1lLCBldmVudF90eXBlKTsKK30KKworLyoqCiAgKiB3ZWJr
aXRfd2ViX2ZyYW1lX2dldF9uYW1lOgogICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQogICoK
SW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaAkocmV2aXNpb24gMCkKKysr
IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEV2ZW50TGlzdGVuZXJOb2RlX2gK
KyNkZWZpbmUgRXZlbnRMaXN0ZW5lck5vZGVfaAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKworI2luY2x1ZGUgImdkb20vR2RvbUV2ZW50
VGFyZ2V0Tm9kZS5oIgorCisvKiBUT0RPOiByZXR1cm4gdGhlIGFjdHVhbCBldmVudCBsaXN0ZW5l
ciBjcmVhdGVkLCB3aGljaCByZXF1aXJlcworICogYSBnbGliIHdyYXBwZXIgb2JqZWN0IHRvIGJl
IGNyZWF0ZWQuCisgKiBUT0RPOiBwcm92aWRlIGEgJ3JlbW92ZV9ldmVudF9saXN0ZW5lcicgd2hp
Y2ggdGFrZXMgdGhhdCBnbGliCisgKiBvYmplY3QgYXMgYW4gYXJndW1lbnQgKi8KK2V4dGVybiAi
QyIgeworV0VCS0lUX0FQSQorZ2Jvb2xlYW4gYWRkX2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRh
cmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdib29sZWFuIHVzZUNhcHR1cmUpOworfQorCisjZW5kaWYgLypFdmVudExpc3RlbmVyTm9k
ZV9oKi8KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkocmV2aXNpb24gMzc2MDIp
CisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRl
ciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsNiArMjcsOSBAQAogCiAj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0
bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Eb2N1bWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbURPTVdpbmRvdy5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1
ZXN0Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNjEsNiArNjUsMTUgQEAKIFdFQktJVF9BUEkg
V2ViS2l0V2ViRnJhbWUgKgogd2Via2l0X3dlYl9mcmFtZV9uZXcgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgR2RvbVhNTEh0dHBS
ZXF1ZXN0ICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X3htbF9odHRwX3JlcXVlc3QgICAgICAgKFdl
YktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbURPTVdpbmRvdyAq
Cit3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93ICAgICAgIChXZWJLaXRXZWJGcmFtZSAg
ICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21Eb2N1bWVudCAqCit3ZWJraXRfd2ViX2Zy
YW1lX2dldF9kb21fZG9jdW1lbnQgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7
CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJf
dmlldyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIApAQCAtOTMsNiArMTA2
LDEwIEBACiBXRUJLSVRfQVBJIEpTR2xvYmFsQ29udGV4dFJlZgogd2Via2l0X3dlYl9mcmFtZV9n
ZXRfZ2xvYmFsX2NvbnRleHQgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKK1dFQktJ
VF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktp
dFdlYkZyYW1lKiBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBnY2hhciAgICAgICAgICAqbmFtZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpJbmRl
eDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lcldpbmRvdy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkKKysr
IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fz
c29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgRXZlbnRMaXN0ZW5lcldpbmRv
d19oCisjZGVmaW5lIEV2ZW50TGlzdGVuZXJXaW5kb3dfaAorCisjaW5jbHVkZSA8Z2xpYi5oPgor
I2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKworZXh0ZXJuICJDIiB7CisvKiBU
T0RPOiBtYWtlIGEgR2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MsIHRvIGJlIHJldHVybmVkIGhlcmUg
Ki8KK30KKworI2VuZGlmIC8qRXZlbnRMaXN0ZW5lcldpbmRvd19oKi8KSW5kZXg6IFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJldmVudC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJldmVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjA1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5l
dD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50
TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0
ZW5lclhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgor
I2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJOb2RlLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2Rl
LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSAiR2Rv
bUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuaCIKKyNpbmNs
dWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdC5oIgorI2luY2x1ZGUg
Ikdkb21YTUxIdHRwUmVxdWVzdFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tWE1MSHR0cFJlcXVl
c3RQcml2YXRlLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKyNpbmNs
dWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCisKKworCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgZ3BvaW50
ZXIgdG9HRE9NKEV2ZW50KiBkb2MpOworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5v
ZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShYTUxIdHRwUmVxdWVzdCogbm9kZSk7Cit9
CisKKworY2xhc3MgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlz
dGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhNTEh0dHBSZXF1ZXN0RXZl
bnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21YTUxIdHRwUmVxdWVzdCogd2YpCisgICAgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcih3ZikpOyB9CisgICAgdmly
dHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCB1c2VDYXB0dXJlKTsKKworICAgIHZv
aWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlwZSA9IGdfc3RyZHVwKGV2dHlw
ZSk7IH0KKyAgICBwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsKKyAgICBYTUxIdHRwUmVxdWVz
dEV2ZW50TGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0KiB3ZikKKyAgICAgICAgICAgOiBtX3dm
KHdmKQorICAgICAgICAgICAsIG1fdHlwZShOVUxMKQorICAgIHt9CisgICAgflhNTEh0dHBSZXF1
ZXN0RXZlbnRMaXN0ZW5lcigpCisgICAgeworICAgICAgICBpZiAobV90eXBlKQorICAgICAgICAg
ICAgZ19mcmVlKG1fdHlwZSk7CisgICAgfQorICAgIEdkb21YTUxIdHRwUmVxdWVzdCogbV93ZjsK
K307CisKK3ZvaWQgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChFdmVu
dCogZXZlbnQsIGJvb2wgdXNlQ2FwdHVyZSkKK3sKKyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAg
Y2hhciAqZXZuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCJicm93c2VyLWV2ZW50OjolcyIsIG1fdHlw
ZSk7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYkNvcmU6OnRvR0RPTShldmVu
dCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5hbWUsIHdldiwgdXNlQ2Fw
dHVyZSwgJnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9CisKK2NsYXNzIE5vZGVFdmVu
dExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE5vZGVFdmVudExpc3RlbmVyPiBjcmVhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSog
d2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5vZGVFdmVudExpc3RlbmVyKHdmKSk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIHVzZUNhcHR1cmUpOwor
CisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFyICpldnR5cGUpIHsgbV90eXBlID0gZ19zdHJk
dXAoZXZ0eXBlKTsgfQorcHJpdmF0ZToKKyAgICBjaGFyICptX3R5cGU7CisgICAgTm9kZUV2ZW50
TGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogd2YpCisgICAgICAgICAgICA6IG1fd2Yod2Yp
CisgICAgICAgICAgICAsIG1fdHlwZShOVUxMKQorICAgIHt9CisgICAgfk5vZGVFdmVudExpc3Rl
bmVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUpCisgICAgICAgICAgICBnX2ZyZWUobV90
eXBlKTsKKyAgICB9CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZSogbV93ZjsKK307CisKK3ZvaWQg
Tm9kZUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCB1c2VDYXB0
dXJlKQoreworICAgIGdib29sZWFuIHJldHZhbDsKKyAgICBjaGFyICpldm5hbWUgPSBnX3N0cmR1
cF9wcmludGYoImJyb3dzZXItZXZlbnQ6OiVzIiwgbV90eXBlKTsKKyAgICBHZG9tRXZlbnQgKndl
diA9IEdET01fRVZFTlQoV2ViQ29yZTo6dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1p
dF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwgd2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKKyAgICBn
X2ZyZWUoZXZuYW1lKTsKK30KKworY2xhc3MgV2luZG93RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBF
dmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXaW5kb3dFdmVu
dExpc3RlbmVyPiBjcmVhdGUoV2ViS2l0V2ViRnJhbWUqIHdmKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXaW5kb3dFdmVudExpc3RlbmVyKHdmKSk7IAorICAgIH0KKyAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIGlzV2luZG93RXZlbnQpOworICAg
IHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlwZSA9IGdfc3RyZHVwKGV2
dHlwZSk7IH0KK3ByaXZhdGU6CisgICAgY2hhciAqbV90eXBlOworICAgIFdpbmRvd0V2ZW50TGlz
dGVuZXIoV2ViS2l0V2ViRnJhbWUqIHdmKQorICAgICAgICAgICA6IG1fd2Yod2YpCisgICAgICAg
ICAgICwgbV90eXBlKE5VTEwpCisgICAge30KKyAgICB+V2luZG93RXZlbnRMaXN0ZW5lcigpCisg
ICAgeworICAgICAgICBpZiAobV90eXBlKQorICAgICAgICAgICAgZ19mcmVlKG1fdHlwZSk7Cisg
ICAgfQorICAgIFdlYktpdFdlYkZyYW1lKiBtX3dmOworfTsKKwordm9pZCBXaW5kb3dFdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgaXNXaW5kb3dFdmVudCkKK3sK
KyAgICBjaGFyICpldm5hbWUgPSBnX3N0cmR1cF9wcmludGYoImJyb3dzZXItZXZlbnQ6OiVzIiwg
bV90eXBlKTsKKyAgICBnYm9vbGVhbiByZXR2YWw7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9N
X0VWRU5UKFdlYkNvcmU6OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZShtX3dmLCBldm5hbWUsIHdldiwgaXNXaW5kb3dFdmVudCwgJnJldHZhbCk7CisgICAgZ19mcmVl
KGV2bmFtZSk7Cit9CisKK2V4dGVybiAiQyIgeworCitnYm9vbGVhbiBhZGRfeG1sX2h0dHBfcmVx
dWVzdF9ldmVudF9saXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3QgKnJlcSA9IGdkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRfcHJpdmF0ZSh3Zik7Cisg
ICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgaWYgKCFyZXEpCisgICAg
ICAgIHJldHVybiBGQUxTRTsKKworICAgIGlmIChzdHJjbXAobmFtZSwgIm9ucmVhZHlzdGF0ZWNo
YW5nZSIpID09IDApCisgICAgeworICAgICAgICBSZWZQdHI8WE1MSHR0cFJlcXVlc3RFdmVudExp
c3RlbmVyPiBsaXN0ZW5lcjsKKyAgICAgICAgbGlzdGVuZXIgPSBYTUxIdHRwUmVxdWVzdEV2ZW50
TGlzdGVuZXI6OmNyZWF0ZSh3Zik7CisgICAgICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsK
KyAgICAgICAgcmVxLT5zZXRPbnJlYWR5c3RhdGVjaGFuZ2UobGlzdGVuZXIpOworICAgICAgICBy
ZXR1cm4gVFJVRTsKKyAgICB9CisgICAgcmV0dXJuIEZBTFNFOworfSAKKworZ2Jvb2xlYW4gYWRk
X2V2ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1cmUpCit7Cisg
ICAgV2ViQ29yZTo6Tm9kZSAqbm9kZSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZh
dGUod2YpOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNFdmVudFRhcmdldE5vZGUoKSkKKyAg
ICAgICAgcmV0dXJuIEZBTFNFOworICAgIFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZSAqIGV0biA9
IChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKj4obm9kZSkpLT50b05vZGUo
KTsKKyAgICBpZiAoIWV0bikKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCisgICAgUmVmUHRyPE5v
ZGVFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IE5vZGVFdmVudExpc3RlbmVyOjpjcmVhdGUod2Yp
OworICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICBldG4tPmFkZEV2ZW50TGlzdGVu
ZXIobmFtZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOworCisgICAgcmV0dXJuIFRSVUU7CisKK30g
CisKK2dib29sZWFuIGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUgKndm
LCBGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgKm5hbWUpCit7CisgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgpOwor
CisgICAgUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gV2luZG93RXZlbnRM
aXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBsaXN0ZW5lci0+c2V0X3R5cGUobmFtZSk7CisgICAg
ZG9jLT5hZGRXaW5kb3dFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB0cnVlKTsKKworICAg
IHJldHVybiBUUlVFOworCit9IAorCit9IC8qIGV4dGVybiBDICovCkluZGV4OiBXZWJLaXQvZ3Rr
L3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBFdmVudExp
c3RlbmVyWG1sSHR0cFJlcXVlc3RfaAorI2RlZmluZSBFdmVudExpc3RlbmVyWG1sSHR0cFJlcXVl
c3RfaAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVz
Lmg+CisKKworI2luY2x1ZGUgImdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisKKy8qIFRPRE86
IHJldHVybiB0aGUgYWN0dWFsIGV2ZW50IGxpc3RlbmVyIGNyZWF0ZWQsIHdoaWNoIHJlcXVpcmVz
CisgKiBhIGdsaWIgd3JhcHBlciBvYmplY3QgdG8gYmUgY3JlYXRlZC4KKyAqIFRPRE86IHByb3Zp
ZGUgYSAncmVtb3ZlX2V2ZW50X2xpc3RlbmVyJyB3aGljaCB0YWtlcyB0aGF0IGdsaWIKKyAqIG9i
amVjdCBhcyBhbiBhcmd1bWVudCAqLworZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJCitnYm9vbGVh
biBhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9saXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVlc3Qg
KndmLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7Cit9CisKKyNlbmRpZiAvKkV2
ZW50TGlzdGVuZXJYbWxIdHRwUmVxdWVzdF9oKi8KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZp
bmVzLmgJKHJldmlzaW9uIDM3NjAyKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5l
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw5IEBACiAKIEdfQkVHSU5fREVDTFMKIAor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50IFdlYktpdEV2ZW50OwordHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdEV2ZW50Q2xhc3MgV2ViS2l0RXZlbnRDbGFzczsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdE5ldHdvcmtSZXF1ZXN0IFdlYktpdE5ldHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3MgV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzczsKIApJ
bmRleDogV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3RJbnRlcm5hbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0SW50ZXJuYWwuaAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0SW50ZXJuYWwuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGgg
Q2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFs
cCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5j
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vR2RvbURP
TU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJ
KHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2Vu
bmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKworI2lmbmRlZiBHZG9tRE9NT2JqZWN0X2gKKyNkZWZpbmUgR2RvbURPTU9iamVjdF9o
CisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5l
cy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0IEdk
b21ET01PYmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIEdkb21ET01P
YmplY3RDbGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAgICAgICAgICAgIChn
ZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUKG9iaikg
ICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9E
T01fT0JKRUNULCBHZG9tRE9NT2JqZWN0KSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0NMQVNT
KGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9E
T01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpF
Q1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9U
WVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3Mp
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1Qp
KQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFO
Q0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RD
bGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSBHZG9tRE9NT2Jq
ZWN0UHJpdmF0ZTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVu
dF9pbnN0YW5jZTsKKworICAgIEdkb21ET01PYmplY3RQcml2YXRlICpwcml2OworfTsKKworc3Ry
dWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7
Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCitnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUgKHZvaWQp
OworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdk
b21ET01PYmplY3QgKnRoaXopOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogR2RvbURPTU9i
amVjdF9oICovCisKSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HU3RyaW5nQ29udmVydC5oCShyZXZpc2lvbiAwKQor
KysgV2ViS2l0L2d0ay9nZG9tL0dTdHJpbmdDb252ZXJ0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEdTdHJpbmdDb252ZXJ0X2gKKyNkZWZp
bmUgR1N0cmluZ0NvbnZlcnRfaAorCisvKiBjb252ZW5pZW5jZSBjKysgY2xhc3MgZm9yIGNvbnZl
cnRpbmcgdmFyaW91cyBkaWZmZXJlbnQgd2Via2l0CisgKiBzdHJpbmcgdHlwZXMgaW50byBhIHV0
ZjggZ2xpYiBzdHJpbmcuCisgKi8KKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1
ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlICJ1c3RyaW5nLmgiCisKK2lubGluZSBnY2hhciAqIEdTdHJpbmdDb252
ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYgcykgeyByZXR1cm4gZ19zdHJkdXAocy51dGY4KCku
ZGF0YSgpKTsgfQoraW5saW5lIGdjaGFyICogR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6S1VSTCBj
b25zdCYgcykgeyByZXR1cm4gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQor
aW5saW5lIGdjaGFyICogR1N0cmluZ0NvbnZlcnQoY29uc3QgSlNDOjpVU3RyaW5nICYgcykgeyBy
ZXR1cm4gZ19zdHJkdXAocy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KK2lubGluZSBnY2hhciAq
IEdTdHJpbmdDb252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IHJldHVybiBn
X3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9CisKKyNlbmRpZiAvKiBHU3RyaW5n
Q29udmVydF9oKi8KSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJp
dmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2Rl
UHJpdmF0ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdl
dE5vZGVQcml2YXRlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5l
dD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpZm5kZWYgR2RvbUV2ZW50
VGFyZ2V0Tm9kZVByaXZhdGVfaAorI2RlZmluZSBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZV9o
CisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21Ob2RlUHJpdmF0
ZS5oIgorY2xhc3MgV2ViQ29yZTo6Tm9kZTsKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRh
cmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKKworV0VCS0lUX0FQSSBXZWJDb3JlOjpOb2Rl
ICoKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9k
ZSAqcmVxdWVzdCk7CisKKyNlbmRpZgorCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50
VGFyZ2V0Tm9kZUludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dkb21F
dmVudFRhcmdldE5vZGVJbnRlcm5hbC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9t
L0dkb21FdmVudFRhcmdldE5vZGVJbnRlcm5hbC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0
b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBA
YXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisKKyNpZm5kZWYgR2RvbUV2ZW50VGFyZ2V0Tm9kZUludGVybmFsX2gKKyNkZWZp
bmUgR2RvbUV2ZW50VGFyZ2V0Tm9kZUludGVybmFsX2gKKyNpbmNsdWRlICJnbGliLW9iamVjdC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbU5vZGVJbnRlcm5hbC5oIgorR19CRUdJTl9ERUNMUworCitj
bGFzcyBHRE9NRXZlbnRUYXJnZXROb2RlIDogcHVibGljIEdET01Ob2RlIHsKKworcHVibGljOgor
ICAgIEdET01FdmVudFRhcmdldE5vZGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpOb2RlPiBpbXBsKSA6
IEdET01Ob2RlKGltcGwpIHt9CisgICAgaW50IGdldF9nb2JqX3R5cGUoKSB7IHJldHVybiBHRE9N
X1RZUEVfRVZFTlRfVEFSR0VUX05PREU7IH0KK307CisKKworR19FTkRfREVDTFMKKyNlbmRpZgor
CkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisr
KyBXZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisg
Ki8KKworI2lmbmRlZiBHZG9tRXZlbnRUYXJnZXROb2RlX2gKKyNkZWZpbmUgR2RvbUV2ZW50VGFy
Z2V0Tm9kZV9oCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Vi
a2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZl
bnRUYXJnZXROb2RlIEdkb21FdmVudFRhcmdldE5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2
ZW50VGFyZ2V0Tm9kZUNsYXNzIEdkb21FdmVudFRhcmdldE5vZGVDbGFzczsKKworI2RlZmluZSBH
RE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRf
bm9kZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9FVkVO
VF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZSkpCisjZGVmaW5lIEdET01fRVZFTlRf
VEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xh
c3MpKQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAoR19U
WVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9E
RSkpCisjZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RF
KSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQ
RV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUs
IEdkb21FdmVudFRhcmdldE5vZGVDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRU
YXJnZXROb2RlUHJpdmF0ZSBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZTsKKworI2luY2x1ZGUg
Imdkb20vR2RvbU5vZGUuaCIKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBH
ZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0
ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBH
ZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dk
b21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFy
Z2V0Tm9kZSAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBkb21FdmVudFRhcmdl
dE5vZGVfaCAqLworCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9ndGsvZ2RvbS9nZG9tLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20v
Z2RvbS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2MCBAQAorI2luY2x1ZGUgPGdkb20vR2Rv
bUV2ZW50VGFyZ2V0Tm9kZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTU9iamVjdC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUF0dHIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21CYXJJbmZvLmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFzR3JhZGllbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21D
YW52YXNQYXR0ZXJuLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUNEQVRBU2VjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNoYXJhY3RlckRh
dGEuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DbGlwYm9hcmQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21Db21tZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ29uc29sZS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUNvdW50ZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUNTU0ltcG9ydFJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NNZWRpYVJ1bGUuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21DU1NQYWdlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1By
aW1pdGl2ZVZhbHVlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTUnVsZS5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUNTU1J1bGVMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTU3R5bGVEZWNs
YXJhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1N0eWxlUnVsZS5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUNTU1N0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NWYWx1ZS5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ZhbHVlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTVmFyaWFi
bGVzUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURhdGFiYXNlLmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURvY3VtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnRUeXBlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
RE9NQXBwbGljYXRpb25DYWNoZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTUNvcmVFeGNlcHRp
b24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01JbXBsZW1lbnRhdGlvbi5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbURPTVBhcnNlci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVNlbGVjdGlvbi5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVdpbmRvdy5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FbnRpdHkuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21FbnRpdHlSZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FdmVudEV4Y2VwdGlvbi5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRmlsZS5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUZpbGVMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSGlz
dG9yeS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxBbmNob3JFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
QXJlYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJvZHlF
bGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJSRWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTENh
bnZhc0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQ29sbGVjdGlvbi5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTERpdkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRExpc3RFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTERvY3VtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxGb250RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGb3JtRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRN
TEhlYWRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUhUTUxIdG1sRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSXNJbmRl
eEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21I
VE1MTElFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExpbmtFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21I
VE1MTWFycXVlZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTWVudUVsZW1lbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MTW9kRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPYmplY3RFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
T3B0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlv
bi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxQ
cmVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxTY3JpcHRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTFNlbGVjdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUhUTUxUYWJsZUNvbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGFibGVFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUaXRsZUVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSW1hZ2VEYXRhLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSmF2YVNjcmlwdENh
bGxGcmFtZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUtleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21Mb2NhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1lZGlhTGlzdC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbU1lc3NhZ2VFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1p
bWVUeXBlQXJyYXkuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NaW1lVHlwZS5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbU1vdXNlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NdXRhdGlvbkV2ZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTmFtZWROb2RlTWFwLmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tTmF2aWdhdG9yLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZUZpbHRlci5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbU5vZGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Ob2RlSXRlcmF0b3IuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21Ob2RlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vdGF0
aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbVBsdWdpbkFycmF5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUGx1Z2luLmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tUHJvZ3Jlc3NFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tUmFuZ2UuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21SZWN0Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tU2NyZWVuLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMRXJy
b3IuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TUUxSZXN1bHRTZXQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMVHJhbnNh
Y3Rpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TdG9yYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21TdG9yYWdlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU3R5bGVTaGVldC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbVN0eWxlU2hlZXRMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVGV4
dEV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVGV4dC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bVRyZWVXYWxrZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21VSUV2ZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVdlYktpdFRyYW5zaXRp
b25FdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVdoZWVsRXZlbnQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhN
TEh0dHBSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21YTUxTZXJpYWxpemVyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBh
dGhFdmFsdWF0b3IuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbVhQYXRoRXhwcmVzc2lvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQ
YXRoTlNSZXNvbHZlci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQYXRoUmVzdWx0Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tWFNMVFByb2Nlc3Nvci5oPgpJbmRleDogV2ViS2l0L2d0ay9nZG9tL0dk
b21ET01PYmplY3RQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dkb21E
T01PYmplY3RQcml2YXRlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR2RvbURP
TU9iamVjdFByaXZhdGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wu
bmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisj
aWZuZGVmIFByaXZhdGVHZG9tRE9NT2JqZWN0X2gKKyNkZWZpbmUgUHJpdmF0ZUdkb21ET01PYmpl
Y3RfaAorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2Jq
ZWN0LmgiCitHX0JFR0lOX0RFQ0xTCisKK2NsYXNzIEdET01PYmplY3Q7CitXRUJLSVRfQVBJIEdE
T01PYmplY3QqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9iamVjdCAqcmVx
dWVzdCk7CisKK1dFQktJVF9BUEkgdm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdk
b21ET01PYmplY3QgKnJlcXVlc3QsIEdET01PYmplY3QqIGl0ZW0pOworCitHX0VORF9ERUNMUwor
I2VuZGlmCisKSW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiAzNzYwMikKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw0OCBAQAogCiAgICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgogCisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik6Cisg
ICAgICAgICogd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmg6IEFkZGVkLgorICAgICAgICAqIHdl
YmtpdC9FdmVudExpc3RlbmVyV2luZG93Lmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC9FdmVu
dExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L2dkb20u
aDogQWRkZWQuICBUaGlzIGZpbGUgcHVsbHMgaW4gYWxsIG9mIHRoZSBnZG9tIGdsaWIgaGVhZGVy
cy4gIGl0J3MgdGhlcmUgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBiZSBsYXp5IGFuZCBub3QgaGF2
ZSB0byAjaW5jbHVkZSAzMDAgZmlsZXMuCisgICAgICAgICogd2Via2l0L3dlYmtpdGRlZmluZXMu
aDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZXZlbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9X
ZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9maW5hbGl6ZSk6CisgICAgICAgIChfV2Vi
S2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfY2xhc3NfaW5pdCk6CisgICAgICAgIChfV2Vi
S2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfaW5pdCk6CisgICAgICAgIChfV2ViS2l0RXZl
bnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfbmV3KToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZh
dGU6OndlYmtpdF9ldmVudF9nZXRfZXZlbnRfdHlwZSk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQ
cml2YXRlOjp3ZWJraXRfZXZlbnRfY2FuY2VsX2J1YmJsZSk6CisgICAgICAgIChfV2ViS2l0RXZl
bnRQcml2YXRlOjp3ZWJraXRfZXZlbnRfcHJldmVudF9kZWZhdWx0KToKKyAgICAgICAgKF9XZWJL
aXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9zdG9wX3Byb3BhZ2F0aW9uKToKKyAgICAgICAg
KFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFhNTEh0dHBS
ZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6c2V0X3R5cGUpOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RF
dmVudExpc3RlbmVyOjpYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoWE1M
SHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjp+WE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAg
ICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChOb2RlRXZlbnRMaXN0
ZW5lcjo6c2V0X3R5cGUpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6Ok5vZGVFdmVudExp
c3RlbmVyKToKKyAgICAgICAgKE5vZGVFdmVudExpc3RlbmVyOjp+Tm9kZUV2ZW50TGlzdGVuZXIp
OgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKFdp
bmRvd0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVy
OjpzZXRfdHlwZSk6CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVyOjpXaW5kb3dFdmVudExp
c3RlbmVyKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6On5XaW5kb3dFdmVudExpc3Rl
bmVyKToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAg
ICAgKGFkZF94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAgKGFkZF9l
dmVudF9saXN0ZW5lcik6CisgICAgICAgIChhZGRfd2luZG93X2V2ZW50X2xpc3RlbmVyKToKKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0ZXZlbnQuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmZyYW1lLmNwcDogYWRkZWQgYnJvd3Nlci1ldmVudCwgc3VwcG9ydCBmb3IgWE1MSHR0
cFJlcXVlc3QsIGdldHRpbmcgRE9NIFdpbmRvdywgRE9NIERvY3VtZW50LCBhbmQgV2luZG93IGV2
ZW50IGxpc3RlbmVyLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgorCiAyMDA4
LTA5LTEwICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBNYXJrIFJvd2UuCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDM3NjAyKQorKysgV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMiwxMyArMiwyMiBAQAogV2ViQ29yZSA6PSAk
KHNyY2RpcikvV2ViQ29yZQogCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFH
RV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9
MQogU1ZHX0ZFQVRVUkVTIDo9CiBIVE1MX0ZFQVRVUkVTIDo9CiAKIFdFQkNPUkVfQ1NTX1BST1BF
UlRZX05BTUVTIDo9ICQoV2ViQ29yZSkvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KIFdFQkNPUkVf
Q1NTX1ZBTFVFX0tFWVdPUkRTIDo9ICQoV2ViQ29yZSkvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
IAorbGliZ2RvbV9jcHBmbGFncyArPSBcCisJJChDQUlST19DRkxBR1MpIFwKKwkkKEdUS19DRkxB
R1MpIFwKKwkkKExJQlhNTF9DRkxBR1MpIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdz
L2dkb20gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCisKIHdlYmNvcmVfY3Bw
ZmxhZ3MgKz0gXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJChzcmNkaXIpL1dlYkNv
cmUgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvanMgXAogCS1JJChzcmNkaXIpL1dl
YkNvcmUvYnJpZGdlIFwKQEAgLTI4LDYgKzM3LDcgQEAKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3Bs
YXRmb3JtIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzIFwKIAktSSQo
c3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMgXAorCS1JJChzcmNkaXIp
L1dlYkNvcmUvYmluZGluZ3MvZ2RvbSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9ibXAgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Z2lmIFwKQEAgLTcyLDcgKzgyLDMwNiBAQAogCURlcml2ZWRTb3VyY2VzL1hNTE5hbWVzLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaAogCi1JRExfQklORElOR1MgKz0gXAorbGliZ2Rv
bV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21BdHRyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQXR0ci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQmFySW5mby5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DREFUQVNlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q1NTQ2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NDaGFyc2V0
UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NGb250RmFjZVJ1bGUuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NGb250RmFjZVJ1bGUuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTTWVkaWFS
dWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTTWVkaWFSdWxlLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQcmltaXRpdmVW
YWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21D
U1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGVMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZURlY2xhcmF0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU1N0eWxlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZVNo
ZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVTaGVldC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlTGlz
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlTGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNh
bnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzR3JhZGll
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGF0dGVybi5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNhbnZhc1BpeGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNoYXJhY3RlckRh
dGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DaGFyYWN0ZXJEYXRhLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNsaXBib2FyZC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21tZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ29tbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ29uc29s
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db3VudGVyLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01D
b3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NQ29yZUV4Y2Vw
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01JbXBsZW1lbnRhdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbURPTVBhcnNlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxlY3Rpb24u
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxlY3Rpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bURvY3VtZW50RnJhZ21lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRU
eXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRUeXBlLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbnRp
dHlSZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50RXhj
ZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50TGlzdGVuZXIuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudExpc3RlbmVyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tRmlsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFu
Y2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQW5jaG9yRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXBwbGV0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJSRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TEJsb2NrcXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCb2R5
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCb2R5RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQnV0dG9uRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ29sbGVjdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRExpc3RFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERMaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERp
dkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERvY3VtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERvY3VtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxFbWJlZEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGb3Jt
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGb3JtRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhSRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIdG1sRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSW5w
dXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJc0luZGV4RWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTExJRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExh
YmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxN
YXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNb2RFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
T2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0R3JvdXBF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdEdyb3VwRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUGFyYW1F
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQcmVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU2NyaXB0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU2VsZWN0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTZWxlY3RFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTdHlsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
VGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVD
b2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ29sRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
VGV4dEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUaXRsZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxVTGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IaXN0b3J5
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUltYWdlRGF0YS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21K
YXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSmF2YVNj
cmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21LZXlib2FyZEV2ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tS2V5Ym9hcmRFdmVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21N
ZXNzYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVzc2FnZVBvcnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZXNzYWdlUG9ydC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1p
bWVUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1pbWVUeXBlQXJyYXkuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21N
b3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU11dGF0aW9uRXZlbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NdXRhdGlvbkV2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYXZpZ2F0b3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYXZpZ2F0b3IuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUZpbHRlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Tm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJhdG9y
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tTm9kZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm90
YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21PdmVyZmxvd0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVn
aW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW4uaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJvZ3Jlc3NFdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZS5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZUV4Y2VwdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SZWN0LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNjcmVlbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNjcmVlbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVN0eWxlU2hlZXRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVRleHRFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0TWV0cmljcy5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVRleHRNZXRyaWNzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVRyZWVXYWxrZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UcmVlV2Fsa2VyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVVJRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21VSUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdEFu
aW1hdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5pbWF0
aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2hlZWxFdmVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1M
SHR0cFJlcXVlc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MU2VyaWFsaXplci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVhNTFNlcmlhbGl6ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFNM
VFByb2Nlc3Nvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhTTFRQcm9jZXNzb3Iu
aCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmggCisKK0lETF9CSU5ESU5HUyArPSAgXAogCVdlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxl
LmlkbCBcCiAJV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCiAJV2ViQ29yZS9jc3Mv
Q1NTSW1wb3J0UnVsZS5pZGwgXApAQCAtMjI1LDYgKzUzNCwxOSBAQAogCVdlYkNvcmUveG1sL1hN
TFNlcmlhbGl6ZXIuaWRsIFwKIAlXZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmlkbAogCitsaWJn
ZG9tX3NvdXJjZXMgKz0gXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAg
XAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9t
RE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0
ZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdFByaXZhdGUuY3BwIFwK
KwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHAgXAorCVdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggXAorCVdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5jcHAgXAorCVdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oCisKKwogd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2tqcy9BY3RpdmF0aW9uLmggXAogCVdl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMva2pzL0FyZ0xpc3QuaCBcCkBAIC0xODU3LDcgKzIxNzks
MTEgQEAKICMgLS0tLQogaWYgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogRkVBVFVS
RV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0x
CitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
PTEKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21ET01BcHBsaWNhdGlvbkNhY2hlLmNwcAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsCiAKQEAgLTE4OTgsNyArMjIy
NCwyMCBAQAogIyAtLS0tCiBpZiBFTkFCTEVfREFUQUJBU0UKIEZFQVRVUkVfREVGSU5FU19KQVZB
U0NSSVBUICs9IEVOQUJMRV9EQVRBQkFTRT0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFC
TEVfREFUQUJBU0U9MQogCitsaWJnZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbURhdGFiYXNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRGF0
YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TUUxFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRT
ZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TUUxUcmFuc2FjdGlvbi5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNv
cmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5pZGwg
XApAQCAtMTk3MSw3ICsyMzEwLDE0IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9ET01fU1RPUkFHRQog
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRV
UkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCiAKK2xpYmdkb21fYnVpbHRf
c291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZUV2
ZW50LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRs
IFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50LmlkbApAQCAtMjAzMCw2ICsyMzc2LDcg
QEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1ZJREVPPTEK
IAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklERU89MQogd2ViY29yZV9jcHBmbGFncyArPSAt
REVOQUJMRV9WSURFTz0xCkBAIC0yMDM4LDYgKzIzODUsMjIgQEAKIHdlYmNvcmVfY3BwZmxhZ3Mg
Kz0gLURHU1RfRElTQUJMRV9ERVBSRUNBVEVECiBlbmRpZiAjIEVORCBFTkFCTEVfREVCVUcKIAor
bGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
QXVkaW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEF1ZGlvRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1lZGlhRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MU291cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVmlk
ZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhRXJyb3IuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZWRpYUVycm9yLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UaW1l
UmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVZvaWRDYWxsYmFjay5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVZvaWRDYWxsYmFjay5oIAorCiBJRExfQklORElOR1Mg
Kz0gXAogCVdlYkNvcmUvaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbCBcCiAJV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaWRsIFwKQEAgLTIwODAsMTMgKzI0NDMsMjYgQEAKICMgLS0tLQog
aWYgRU5BQkxFX1hQQVRICiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFBB
VEg9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1hQQVRIPTEKIAogd2ViY29yZV9j
cHBmbGFncyArPSAtREVOQUJMRV9YUEFUSD0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBc
CiAJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvWFBh
dGhHcmFtbWFyLmgKKwlEZXJpdmVkU291cmNlcy9YUGF0aEdyYW1tYXIuaCAKIAorbGliZ2RvbV9i
dWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV2YWx1YXRv
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXZhbHVhdG9yLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tWFBhdGhFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
WFBhdGhFeHByZXNzaW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFeHBy
ZXNzaW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoTlNSZXNvbHZlci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoTlNSZXNvbHZlci5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21YUGF0aFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVhQYXRoUmVzdWx0LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS94bWwvWFBh
dGhFdmFsdWF0b3IuaWRsIFwKIAlXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwgXApAQCAt
MjE1MCw2ICsyNTI2LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1hTTFQKIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9YU0xUPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVO
QUJMRV9YU0xUPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YU0xUPTEKIApAQCAt
MjE3Myw2ICsyNTUwLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1NWRwogRkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWRz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5B
QkxFX1NWRz0xIC0gYmlnIFRPRE8hIDopCiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTICs9
ICQoV2ViQ29yZSkvY3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gCiBXRUJDT1JFX0NTU19WQUxV
RV9LRVlXT1JEUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0y
MTg2LDYgKzI1NjQsMjczIEBACiAJRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9YTGlua05hbWVzLmNwcAogCitub3QteWV0OgorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQWx0R2x5cGhFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQW5nbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZUNv
bG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVDb2xv
ckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkQW5nbGUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEFuZ2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0FuaW1hdGVkQm9vbGVhbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0FuaW1hdGVkQm9vbGVhbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmlt
YXRlZEVudW1lcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZElu
dGVnZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEludGVnZXIu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGguY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZExlbmd0aC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZExlbmd0aExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmltYXRlZExlbmd0aExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdBbmltYXRlZE51bWJlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRl
ZE51bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZE51
bWJlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1h
dGVkUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUmVjdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFN0cmluZy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkU3RyaW5nLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmltYXRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdDaXJjbGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2lyY2xl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdDbGlwUGF0aEVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdDbGlwUGF0aEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ29sb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdDb2xvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0N1cnNvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdDdXJzb3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZmlu
aXRpb25TcmNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVmaW5p
dGlvblNyY0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVmc0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZWZzRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZXNjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0Rlc2NFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0RvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRG9jdW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHRWxlbWVudEluc3RhbmNlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxl
bWVudEluc3RhbmNlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRJbnN0
YW5jZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50SW5zdGFu
Y2VMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRXcmFwcGVyRmFj
dG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsbGlwc2VFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxsaXBzZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
QmxlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVCbGVuZEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbG9yTWF0cml4RWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29tcG9zaXRlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29tcG9zaXRlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzdGFudExpZ2h0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzdGFudExpZ2h0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZsb29kRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRmxvb2RFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY0FFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jQUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHRkVGdW5jQkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdGRUZ1bmNCRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNH
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY0dFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY1JFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jUkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHRkVJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
RkVNZXJnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRU1lcmdl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRU1lcmdlTm9kZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRU1lcmdlTm9kZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVPZmZzZXRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVPZmZzZXRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFUG9pbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGRVBvaW50TGlnaHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFU3BvdExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGRVRpbGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHRkVUaWxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRVR1cmJ1
bGVuY2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVUdXJidWxl
bmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGaWx0ZXJFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRmlsdGVyRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0ZvbnRGYWNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Zv
bnRGYWNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZUZv
cm1hdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZUZv
cm1hdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VOYW1l
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlTmFtZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VTcmNFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VTcmNFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlVXJpRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0dFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHR2x5cGhFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHR2x5cGhFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdJbWFnZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTGVuZ3Ro
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTGVuZ3RoLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aExpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTGluZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hcmtlckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdNYXJrZXJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR01hc2tFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
TWFza0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWF0cml4LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWF0cml4LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR01ldGFkYXRhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR01ldGFkYXRhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdN
aXNzaW5nR2x5cGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWlz
c2luZ0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdOdW1iZXIu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdOdW1iZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR051bWJlckxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGFpbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYWludC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdQYXRoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1BhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhT
ZWcuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdBcmNBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdQYXRoU2VnQXJjQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1BhdGhTZWdBcmNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRo
U2VnQXJjUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDbG9zZVBh
dGguY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhB
YnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNTbW9vdGhSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJz
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNTbW9vdGhSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0xpbmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdM
aW5ldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
TGluZXRvSG9yaXpvbnRhbFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1BhdGhTZWdMaW5ldG9SZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRo
U2VnTGluZXRvUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5l
dG9WZXJ0aWNhbEFicy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdM
aW5ldG9WZXJ0aWNhbEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
TGluZXRvVmVydGljYWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRo
U2VnTGluZXRvVmVydGljYWxSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aFNlZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTW92ZXRvQWJzLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTW92ZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdQYXR0ZXJuRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1BhdHRlcm5FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUG9pbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUG9pbnRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUG9pbnRMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlnb25FbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUG9seWdvbkVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUG9seWxpbmVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUG9seWxpbmVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdSZWN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVjdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1JlY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1JlbmRlcmluZ0ludGVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1JlbmRlcmluZ0ludGVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTVkdFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU1ZHRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTY3JpcHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHU2NyaXB0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdTZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU2V0
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdG9wRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N0b3BFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1N0cmluZ0xpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdTdHJpbmdMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N0eWxl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N0eWxlRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTd2l0Y2hFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3dpdGNoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdTeW1ib2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHU3ltYm9sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUUmVm
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RSZWZFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RTcGFuRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RTcGFuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdUZXh0Q29udGVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHVGV4dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUZXh0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUZXh0UGF0aEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUZXh0UGF0aEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGl0bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHVGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1RyYW5zZm9ybS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RyYW5zZm9y
bS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zvcm1MaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdVbml0VHlwZXMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdVbml0VHlwZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVXNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1VzZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVmlld0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdWaWV3RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
Vkdab29tRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdab29tRXZlbnQu
aCAKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N2Zy9FbGVtZW50VGltZUNvbnRyb2wu
aWRsIFwKIAlXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5pZGwgXApAQCAtMjc2NCwzNiArMzQwOSw0
MiBAQAogIyBTVkcgRmVhdHVyZXMKIGlmIEVOQUJMRV9TVkdfVVNFCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX1VTRT0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0g
RU5BQkxFX1NWR19VU0U9MSAjIGJpZyBUT0RPIQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdf
VVNFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX1VTRT0xCiBlbmRpZgogCiBp
ZiBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBF
TkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEgCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVD0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVD0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZPTlRTCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSAr
PSBFTkFCTEVfU1ZHX0ZPTlRTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEK
IHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0ZPTlRTPTEKIGVuZGlmCiAKIGlmIEVO
QUJMRV9TVkdfRklMVEVSUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NW
R19GSUxURVJTPTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9
MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCiB3ZWJjb3JlX2NwcGZsYWdz
ICs9IC1ERU5BQkxFX1NWR19GSUxURVJTPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQVNfSU1B
R0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQor
I0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQogU1ZHX0ZFQVRV
UkVTICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJM
RV9TVkdfQVNfSU1BR0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19BTklNQVRJT04KIEZFQVRV
UkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKKyNGRUFUVVJF
X0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBTVkdfRkVBVFVSRVMgKz0g
RU5BQkxFX1NWR19BTklNQVRJT049MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdf
QU5JTUFUSU9OPTEKIGVuZGlmCkBAIC0yODAxLDYgKzM0NTIsNyBAQAogIyBTVkcgdGFnIGFuZCBh
dHRyaWJ1dGUgbmFtZXMgKG5lZWQgdG8gcGFzcyBhbiBleHRyYSBmbGFnIGlmIHN2ZyBleHBlcmlt
ZW50YWwgZmVhdHVyZXMgYXJlIGVuYWJsZWQpCiBEZXJpdmVkU291cmNlcy9TVkdOYW1lcy5jcHA6
IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5LmNwcDsKIERlcml2ZWRTb3VyY2VzL0pT
U1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZh
Y3RvcnkuY3BwCitEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3Rv
cnkuY3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHAKIAogaWYgU1ZHX0ZM
QUdTCiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA6ICQoV2ViQ29yZSkvZG9t
L21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcvc3ZndGFncy5pbiAkKFdlYkNvcmUpL3N2Zy9z
dmdhdHRycy5pbgpAQCAtMjkyMiw2ICszNTc0LDEzIEBACiAKIHZwYXRoICUuaWRsID0gJChJRExf
UEFUSCkKIAorCitEZXJpdmVkU291cmNlcy9nZG9tL0dkb20lLmg6IERlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbSUuY3BwOworCitEZXJpdmVkU291cmNlcy9nZG9tL0dkb20lLmNwcDogJS5pZGwgJChT
Q1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckdPYmplY3QucG0KKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2Vi
Q29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1ZGUgJChX
ZWJDb3JlKS9kb20gLS1pbmNsdWRlICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUgJChXZWJDb3Jl
KS9jc3MgLS1pbmNsdWRlICQoV2ViQ29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJDb3JlKS94bWwg
LS1pbmNsdWRlICQoV2ViQ29yZSkvc3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNHRE9NKSIg
LS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FU19HRE9NKSIgLS1nZW5lcmF0b3IgR09iamVjdCAk
PAorCisKIERlcml2ZWRTb3VyY2VzL0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiAu
U0VDT05EQVJZOgpAQCAtMjk3Nyw2ICszNjM2LDcgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSW5GaWxlc1BhcnNlci5wbSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRl
LWJpbmRpbmdzLnBsIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtIFwKKwlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0g
XAogCVdlYkNvcmUvY3NzL2h0bWw0LmNzcyBcCiAJV2ViQ29yZS9jc3MvcXVpcmtzLmNzcyBcCiAJ
V2ViQ29yZS9jc3Mvdmlldy1zb3VyY2UuY3NzIFwKQEAgLTMwMTIsNCArMzY3MiwzIEBACiAJbGli
V2ViQ29yZUpTLmxhIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5sdXQu
aCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1dC5oCi0KSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTg1IEBACisv
KgorICogVEhJUyBGSUxFIElTIERFUklWRUQgQlkgSEFORCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkg
R0VORVJBVEVEIEZJTEUuCisgKiBJVCBJUyBOT1QgQU4gQVVUTy1HRU5FUkFURUQgRklMRSBJVCBX
QVMgQ1JFQVRFRCBNQU5VQUxMWSAqRlJPTSoKKyAqIEFOIEFVVE8tR0VORVJBVEVEIEZJTEUuCisg
KgorICogIGtlZXBpbmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBkb25lIGJ5
IGFkZGluZworICogIGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBz
ZXBhcmF0ZQorICogIGdlbmVyYXRlciB3aGljaCB0YWtlcyBKU0hUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuaCBhcyBpbnB1dC4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRo
IENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKgorICogQ29weXJpZ2h0IChD
KSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiZ2RvbS9HZG9tTm9kZS5oIgorI2lu
Y2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQXBwbGV0RWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCYXNl
Rm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJ1dHRvbkVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNb2RFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJnZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxETGlz
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGb3JtRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhlYWRp
bmdFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhlYWRFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxI
dG1sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSXNJbmRleEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTElF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWFy
cXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUGFy
YWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJs
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxU
aXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEFuY2hvckVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxBcHBsZXRFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQXJlYUVs
ZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCYXNlRWxlbWVudEludGVy
bmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudEludGVybmFsLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50SW50ZXJuYWwuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MQm9keUVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxCUkVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxC
dXR0b25FbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQ2FudmFzRWxl
bWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRJbnRl
cm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNb2RFbGVtZW50SW50ZXJuYWwuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudEludGVybmFsLmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxETGlzdEVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxFbWJl
ZEVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1l
bnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGb250RWxlbWVudEludGVybmFs
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MRnJhbWVTZXRFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MSGVhZGluZ0VsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIZWFk
RWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhSRWxlbWVudEludGVy
bmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50SW50ZXJuYWwuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTElucHV0RWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElzSW5k
ZXhFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50
SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVudEludGVybmFs
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExJRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MTWFwRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcnF1
ZWVFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWVudUVsZW1lbnRJ
bnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNZXRhRWxlbWVudEludGVybmFsLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9iamVjdEVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxPcHRHcm91cEVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxPcHRpb25FbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUGFyYWdy
YXBoRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVu
dEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnRJbnRlcm5hbC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnRJbnRlcm5hbC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxTY3JpcHRFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MU2VsZWN0RWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TFN0eWxlRWxlbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlRWxl
bWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50SW50
ZXJuYWwuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50SW50ZXJuYWwu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50SW50ZXJuYWwuaCIKKworI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgorCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXBw
bGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpcmVjdG9yeUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxETGlzdEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZpZWxk
U2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRpbmdFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhSRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFycXVlZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWV0YUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPTGlzdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUHJlRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFN0eWxl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
VGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUaXRsZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit0eXBlZGVmIEdET01Ob2RlKiAo
KkNyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uKShQYXNzUmVmUHRyPEhUTUxFbGVtZW50
Pik7CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQW5jaG9yV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxBbmNob3JFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUFwcGxldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MQXBwbGV0RWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MQXBwbGV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIEdET01Ob2RlKiBjcmVhdGVBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxBcmVhRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MQXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9k
ZSogY3JlYXRlQmFzZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IEdET01IVE1MQmFzZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJhc2VF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJh
c2VGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiBuZXcgR0RPTUhUTUxCYXNlRm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJhc2VGb250
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVC
bG9ja3F1b3RlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiBuZXcgR0RPTUhUTUxCbG9ja3F1b3RlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmxv
Y2txdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSog
Y3JlYXRlQm9keVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MQm9keUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJvZHlFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUJSV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcg
R0RPTUhUTUxCUkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJSRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVCdXR0b25XcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEJ1dHRv
bkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlQ2FudmFzV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxDYW52YXNFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MVGFibGVDYXB0
aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDYXB0aW9uRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZUNvbFdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1M
VGFibGVDb2xFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNvbEVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTW9kV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxNb2RF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxNb2RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRGlyZWN0b3J5RWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MRGlyZWN0b3J5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVEaXZXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERpdkVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTERpdkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlRExpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTERMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MRExpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUq
IGNyZWF0ZUVtYmVkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxFbWJlZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEVtYmVk
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVG
aWVsZFNldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IEdET01IVE1MRmllbGRTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGaWVsZFNl
dEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
Rm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IEdET01IVE1MRm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvbnRFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUZvcm1XcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTEZvcm1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVGcmFtZVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MRnJhbWVF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlRnJhbWVTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEZyYW1lU2V0RWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVTZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhlYWRpbmdFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkaW5nRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVIZWFkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxIZWFkRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBH
RE9NTm9kZSogY3JlYXRlSFJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTEhSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSFJF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUh0
bWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IG5ldyBHRE9NSFRNTEh0bWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIdG1sRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVJRnJhbWVXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTElGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlSW1hZ2VXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTElt
YWdlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZUlucHV0V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxJbnB1dEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVJc0luZGV4V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxJc0luZGV4RWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlTGFiZWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTExhYmVsRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MTGFiZWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZUxlZ2VuZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTGVnZW5kRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MTGVnZW5kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVMSVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MTElFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMSUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlTGlua1dyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdE
T01IVE1MTGlua0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExpbmtFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU1hcFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWFwRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MTWFwRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIEdET01Ob2RlKiBjcmVhdGVNYXJxdWVlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhUTUxNYXJxdWVlRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MTWFycXVlZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlTWVudVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MTWVudUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTE1lbnVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5v
ZGUqIGNyZWF0ZU1ldGFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTE1ldGFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNZXRh
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVP
YmplY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTE9iamVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlT0xpc3RX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTE9MaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT0xpc3RFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZU9wdEdyb3VwV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RP
TUhUTUxPcHRHcm91cEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVPcHRpb25XcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9N
SFRNTE9wdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlUGFyYWdyYXBoV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhU
TUxQYXJhZ3JhcGhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJhZ3JhcGhFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVBhcmFtV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgR0RPTUhU
TUxQYXJhbUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVQcmVXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFByZUVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFByZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBHRE9NTm9kZSogY3JlYXRlUXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFF1b3RlRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MUXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RP
TU5vZGUqIGNyZWF0ZVNjcmlwdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IEdET01IVE1MU2NyaXB0RWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MU2NyaXB0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2Rl
KiBjcmVhdGVTZWxlY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBHRE9NSFRNTFNlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNl
bGVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3Jl
YXRlU3R5bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAg
cmV0dXJuIG5ldyBHRE9NSFRNTFN0eWxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU3R5bGVFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVRhYmxl
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgR0RPTUhUTUxUYWJsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBjcmVhdGVUYWJsZVNlY3Rpb25X
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5l
dyBHRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRl
VGFibGVDZWxsV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiBuZXcgR0RPTUhUTUxUYWJsZUNlbGxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJs
ZUNlbGxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNy
ZWF0ZVRleHRBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiBuZXcgR0RPTUhUTUxUZXh0QXJlYUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRl
eHRBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIEdET01Ob2RlKiBj
cmVhdGVUaXRsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gbmV3IEdET01IVE1MVGl0bGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUaXRsZUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBHRE9NTm9kZSogY3JlYXRlVGFi
bGVSb3dXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBHRE9NSFRNTFRhYmxlUm93RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVSb3dF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgR0RPTU5vZGUqIGNyZWF0ZVVM
aXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biBuZXcgR0RPTUhUTUxVTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFVMaXN0RWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworR0RPTU5vZGUqIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHN0YXRpYyBIYXNoTWFwPFdl
YkNvcmU6OkF0b21pY1N0cmluZ0ltcGwqLCBDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlv
bj4gbWFwOworICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7CisgICAgICAgbWFwLnNldChhVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQW5jaG9yV3JhcHBlcik7CisgICAgICAgbWFwLnNldChh
cHBsZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBcHBsZXRXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBcmVhV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChiYXNlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmFzZVdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZWZvbnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVCYXNlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmxvY2txdW90ZVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCb2R5V3JhcHBlcik7CisgICAgICAg
bWFwLnNldChiclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJSV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChidXR0b25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCdXR0b25XcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGNhbnZhc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUNhbnZhc1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY2FwdGlvblRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY29sVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGRlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoZGlyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGlyZWN0b3J5V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChkaXZUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXZX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
RExpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGVtYmVkVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlRW1iZWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZpZWxkc2V0VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlRmllbGRTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZv
bnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb250V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChmb3JtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9ybVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGcmFtZVdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVzZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVGcmFtZVNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDFUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoZWFkVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaHJUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIUldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaHRt
bFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUh0bWxXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGlmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlGcmFtZVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoaW1nVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGlucHV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
SW5wdXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlzaW5kZXhUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVJc0luZGV4V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsYWJlbFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxhYmVsV3JhcHBlcik7CisgICAgICAgbWFwLnNldChsZWdl
bmRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMZWdlbmRXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGxpVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTElXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGxpbmtUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMaW5rV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChtYXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNYXBXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KG1hcnF1ZWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVNYXJxdWVlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtZW51VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlTWVudVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWV0YVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZU1ldGFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9iamVjdFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9iamVjdFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQob2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPTGlzdFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQob3B0Z3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRHcm91cFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlT3B0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChwVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlUGFyYWdyYXBoV3JhcHBlcik7CisgICAgICAgbWFwLnNldChwYXJhbVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFtV3JhcHBlcik7CisgICAgICAgbWFwLnNldChwcmVU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVRdW90ZVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoc2NyaXB0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2NyaXB0V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChzZWxlY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxl
Y3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHN0eWxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlU3R5bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRhYmxlVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVGFibGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRib2R5VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFw
LnNldCh0ZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQodGV4dGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUZXh0
QXJlYVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGl0bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVUaXRsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodHJUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVUYWJsZVJvd1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQodWxUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVVTGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY29s
Z3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoaDJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChoM1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRp
bmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDVUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNlRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGltYWdl
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGluc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoa2V5Z2VuVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChsaXN0aW5nVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
UHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Zm9vdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGhUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRo
ZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldCh4bXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVy
KTsKKyAgICB9CisgICAgLy9wcmludGYoImNyZWF0ZUdET01IVE1MV3JhcHBlcjogJXNcbiIsIGVs
ZW1lbnQtPmxvY2FsTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIENyZWF0ZUhU
TUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbiA9IG1hcC5nZXQo
ZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICBpZiAoY3JlYXRlV3JhcHBlckZ1bmN0
aW9uKQorICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlckZ1bmN0aW9uKGVsZW1lbnQpOworICAg
IHJldHVybiBuZXcgR0RPTUhUTUxFbGVtZW50KGVsZW1lbnQuZ2V0KCkpOworfQorCit9CisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGVQ
cml2YXRlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZl
bnRUYXJnZXROb2RlUHJpdmF0ZS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtj
bEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIu
Y29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIk5vZGUuaCIK
KyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFy
Z2V0Tm9kZVByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlSW50ZXJuYWwu
aCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0UHJpdmF0ZS5oIiAKKyNpbmNsdWRlICJ3ZWJraXRt
YXJzaGFsLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCitlbnVtIHsKKyAgICBCUk9XU0VSX0VW
RU5ULAorICAgIExBU1RfU0lHTkFMCit9OworCitzdGF0aWMgZ3VpbnQgZXZlbnRfc2lnbmFsc1tM
QVNUX1NJR05BTF0gPSB7IDAsIH07CisKKworV2ViQ29yZTo6Tm9kZSAqCitnZG9tX2V2ZW50X3Rh
cmdldF9ub2RlX2dldF9wcml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QpCit7Cisg
ICAgR0RPTUV2ZW50VGFyZ2V0Tm9kZSAqcmVzOworICAgIHJlcyA9IHN0YXRpY19jYXN0PEdET01F
dmVudFRhcmdldE5vZGUqPihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JK
RUNUKHJlcXVlc3QpKSk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm9k
ZSo+KHJlcy0+aW1wbCgpKTsKK30KKworCitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShH
ZG9tRXZlbnRUYXJnZXROb2RlLCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlLCBHRE9NX1RZUEVfTk9E
RSk7CisKKy8qCitzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlIHsKKyAgICBjbGFz
cyBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKml0ZW07Cit9OworKi8KKworI2RlZmluZSBHRE9N
X0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRf
UFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJn
ZXROb2RlUHJpdmF0ZSkpCisKKy8qCit2b2lkCitnZG9tX2V2ZW50X3RhcmdldF9ub2RlX3NldF9w
cml2YXRlKEdkb21FdmVudFRhcmdldE5vZGUgKnJlcXVlc3QsIFdlYkNvcmU6OkV2ZW50VGFyZ2V0
Tm9kZSAqIGl0ZW0pCit7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUqIHByaXYgPSBH
RE9NX0VWRU5UX1RBUkdFVF9OT0RFX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHByaXYtPml0
ZW0gPSBpdGVtOworfQorKi8KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9m
aW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLypHZG9tRXZlbnRUYXJnZXROb2RlKiBy
ZXF1ZXN0ID0gR0RPTV9FVkVOVF9UQVJHRVRfTk9ERShvYmplY3QpOworICAgIEdkb21FdmVudFRh
cmdldE5vZGVQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsqLworCisgICAgR19PQkpFQ1Rf
Q0xBU1MoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmpl
Y3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2NsYXNzX2luaXQo
R2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgZXZlbnRfc2ln
bmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAg
ICAgIEdfVFlQRV9GUk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxh
Z3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR19TSUdOQUxfREVUQUlMRUQgICAgKSwKKyAgICAgICAgMCwK
KyAgICAgICAgTlVMTCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9J
RF9fT0JKRUNUX0JPT0xFQU4sCisgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9N
X1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVl
c3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9maW5hbGl6ZTsKKwor
ICAgIC8qZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21F
dmVudFRhcmdldE5vZGVQcml2YXRlKSk7Ki8KK30KKworc3RhdGljIHZvaWQgZ2RvbV9ldmVudF90
YXJnZXRfbm9kZV9pbml0KEdkb21FdmVudFRhcmdldE5vZGUqIHJlcXVlc3QpCit7CisgICAgLypH
ZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSogcHJpdiA9IEdET01fRVZFTlRfVEFSR0VUX05PREVf
R0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Ki8KK30KKwor
fSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmlu
ZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5n
LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjU0IEBACisvKgorICogIENvcHlyaWdodCAoQykg
MTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5v
cmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisvLyBnY2Mg
My54IGNhbid0IGhhbmRsZSBpbmNsdWRpbmcgdGhlIEhhc2hNYXAgcG9pbnRlciBzcGVjaWFsaXph
dGlvbiBpbiB0aGlzIGZpbGUKKyNpZiBkZWZpbmVkIF9fR05VQ19fICYmICFkZWZpbmVkIF9fR0xJ
QkNYWF9fIC8vIGxlc3MgdGhhbiBnY2MgMy40CisjZGVmaW5lIEhBU0hfTUFQX1BUUl9TUEVDX1dP
UktBUk9VTkQgMQorI2VuZGlmCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGli
LW9iamVjdC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0
LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdFByaXZhdGUuaCIKKyNpbmNsdWRlICJHRE9NQmlu
ZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmgiCisKKyNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiR2RvbUNTU1N0eWxlU2hlZXQuaCIK
KyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVTaGVldEludGVybmFsLmgiCisKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHZG9tTm9kZUludGVybmFsLmgiCisKKyNpbmNsdWRl
ICJBdHRyLmgiCisjaW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUu
aCIKKyNpbmNsdWRlICJDb21tZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVk
ZSAiRW50aXR5LmgiCisjaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAi
R2RvbUF0dHIuaCIKKyNpbmNsdWRlICJHZG9tQXR0ckludGVybmFsLmgiCisjaW5jbHVkZSAiR2Rv
bUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJHZG9tVGV4dC5oIgorI2luY2x1ZGUgIkdkb21D
REFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIkdkb21E
b2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAi
R2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHkuaCIKKyNpbmNsdWRlICJH
ZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJH
ZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UmVmZXJlbmNlLmgi
CisjaW5jbHVkZSAiR2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJOb2Rl
LmgiCisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpbmNsdWRlICJHZG9tQ1NTUnVsZS5oIgorI2luY2x1
ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5j
bHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgorI2luY2x1
ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAi
Q1NTVmFyaWFibGVzUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NDaGFyc2V0UnVsZS5oIgorI2lu
Y2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTSW1wb3J0UnVs
ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUGFn
ZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNT
U1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdkb21F
dmVudEludGVybmFsLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJFdmVu
dC5oIgorI2luY2x1ZGUgIkdkb21DbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJHZG9tS2V5Ym9hcmRF
dmVudC5oIgorI2luY2x1ZGUgIkdkb21NZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tTW91
c2VFdmVudC5oIgorI2luY2x1ZGUgIkdkb21NdXRhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiR2Rv
bU92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1
ZGUgIkdkb21UZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tVUlFdmVudC5oIgorI2luY2x1ZGUg
Ikdkb21XZWJLaXRBbmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdkb21XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Y
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50Lmgi
CisjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgorI2lu
Y2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJPdmVyZmxvd0V2ZW50LmgiCisjaW5j
bHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUgIlRleHRFdmVudC5oIgorI2luY2x1ZGUg
IlVJRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUg
IldlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKKyNpbmNs
dWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKKworI2luY2x1ZGUgIkdkb21IVE1M
Q29sbGVjdGlvbi5oIgorCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiSFRN
TENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNs
dWRlICJHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoRE9NX1NUT1JB
R0UpCisjaW5jbHVkZSAiR2RvbVN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlN0b3JhZ2VFdmVu
dC5oIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoU1ZHKQorI2lmIDAgLyogVE9ETyAtIHNlZSAjMjA1
ODYgKi8KKyNpbmNsdWRlICJHZG9tU1ZHWm9vbUV2ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJH
ZG9tU1ZHWm9vbUV2ZW50LmgiCisjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCisjZW5kaWYKKyNl
bmRpZgorCisjaWYgRU5BQkxFKFNWRykKKyNpZiAwIC8qIFhYWCBUT0RPIC0gc2VlICMyMDU4NiAq
LworI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnlJbnRlcm5hbC5oIgorI2lu
Y2x1ZGUgIkdkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVt
ZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisjaWYgMAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVk
ZSAiR2RvbVNWR0V4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlm
CisjZW5kaWYKKworI2luY2x1ZGUgIkdkb21DbGlwYm9hcmRJbnRlcm5hbC5oIgorI2luY2x1ZGUg
Ikdkb21DU1NSdWxlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tQ0RBVEFTZWN0aW9uSW50ZXJu
YWwuaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudEludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbURv
Y3VtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnRGcmFnbWVudEludGVybmFs
LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50VHlwZUludGVybmFsLmgiCisjaW5jbHVkZSAiR2Rv
bUVudGl0eUludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUVsZW1lbnRJbnRlcm5hbC5oIgorI2lu
Y2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3RJbnRlcm5hbC5oIgorI2luY2x1ZGUgIkdkb21DU1NQcmlt
aXRpdmVWYWx1ZUludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUVudGl0eVJlZmVyZW5jZUludGVy
bmFsLmgiCisjaW5jbHVkZSAiR2RvbU5vdGF0aW9uSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9t
SFRNTERvY3VtZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tUHJvY2Vzc2luZ0luc3RydWN0
aW9uSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tVGV4dEludGVybmFsLmgiCisjaW5jbHVkZSAi
R2RvbUNTU0NoYXJzZXRSdWxlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tQ1NTRm9udEZhY2VS
dWxlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tQ1NTSW1wb3J0UnVsZUludGVybmFsLmgiCisj
aW5jbHVkZSAiR2RvbUNTU01lZGlhUnVsZUludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbUNTU1Bh
Z2VSdWxlSW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCIK
KyNpbmNsdWRlICJHZG9tQ1NTVmFyaWFibGVzUnVsZUludGVybmFsLmgiCisjaW5jbHVkZSAiR2Rv
bUtleWJvYXJkRXZlbnRJbnRlcm5hbC5oIgorI2luY2x1ZGUgIkdkb21NZXNzYWdlRXZlbnRJbnRl
cm5hbC5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJH
ZG9tTXV0YXRpb25FdmVudEludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbU92ZXJmbG93RXZlbnRJ
bnRlcm5hbC5oIgorI2luY2x1ZGUgIkdkb21Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCIKKyNpbmNs
dWRlICJHZG9tVGV4dEV2ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJHZG9tVUlFdmVudEludGVy
bmFsLmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCIKKyNp
bmNsdWRlICJHZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCIKKyNpbmNsdWRlICJH
ZG9tV2hlZWxFdmVudEludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudEludGVybmFsLmgiCisjaW5jbHVkZSAiR2RvbVN0b3JhZ2VFdmVudEludGVybmFs
LmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbkludGVybmFsLmgiCisjaW5j
bHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uSW50ZXJuYWwuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCit0eXBlZGVmIEhhc2hNYXA8dm9pZCos
IGdwb2ludGVyPiBET01PYmplY3RNYXA7CisKK3N0YXRpYyBET01PYmplY3RNYXAmIGRvbU9iamVj
dHMoKQoreworICAgIHN0YXRpYyBET01PYmplY3RNYXAgc3RhdGljRE9NT2JqZWN0czsKKyAgICBy
ZXR1cm4gc3RhdGljRE9NT2JqZWN0czsKK30KKworZ3BvaW50ZXIgR0RPTVNjcmlwdEludGVycHJl
dGVyOjpnZXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlKQoreworICAgIGdwb2ludGVyIHJl
dCA9IGRvbU9iamVjdHMoKS5nZXQob2JqZWN0SGFuZGxlKTsKKyAgICByZXR1cm4gcmV0OworfQor
CitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlX2dkb21fb2JqZWN0KEdET01PYmplY3QgKmRvYikKK3sK
KyAgICAvKiBhbGwgb2YgdGhlIHdvcmsgaW4gY3JlYXRpbmcgdGhlIHRvR0RPTSBmdW5jdGlvbnMs
CisgICAgICogdGhlbiBoYXZpbmcgbmV3IEdET01YeXooc3RhdGljX3R5cGVjYXN0PFh5eio+b2Jq
KSwgCisgICAgICogd2hlcmUgYWxsIEdET01YeXoncyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBwdXJl
IHZpcnR1YWwKKyAgICAgKiBjbGFzcywgR0RPTU9iamVjdCwgZW5kcyB1cCBoZXJlIC0gdG8gY3Jl
YXRlIHRoZQorICAgICAqIHJpZ2h0IHR5cGUgb2YgZ2xpYiBvYmplY3QuCisgICAgICoKKyAgICAg
KiB0aGVyZSBhcmUgbm8gY29uc3RydWN0b3JzICJnZG9tX3h5el9uZXcoKSIgLSB0aGVyZSBpcwor
ICAgICAqIF9vbmx5XyBjcmVhdGVfZ2RvbV9vYmplY3QoKS4gIHRoYXQgbWFrZXMgdGhlIHRvR0RP
TQorICAgICAqIGZ1bmN0aW9ucyB0aGUgb25seSBzYWZlIGFuZCBzYW5lIHdheSB0byBjcmVhdGUK
KyAgICAgKiBnbGliIGJpbmRpbmdzIG9iamVjdHM7IGl0IG1lYW5zIHRoYXQgdGhlIG9iamVjdAor
ICAgICAqIGNhY2hlLCBhbiBhYnNvbHV0ZWx5IGNyaXRpY2FsIHBhcnQgb2YgdGhlIGdsaWIKKyAg
ICAgKiBiaW5kaW5ncywgcmVtYWlucyBjb25zaXN0ZW50LgorICAgICAqLworICAgIGdwb2ludGVy
IHJlcyA9IGdfb2JqZWN0X25ldyhkb2ItPmdldEdvYmpUeXBlKCksIE5VTEwpOworICAgIGdkb21f
ZG9tX29iamVjdF9zZXRfcHJpdmF0ZShHRE9NX0RPTV9PQkpFQ1QocmVzKSwgZG9iKTsKKyAgICBy
ZXR1cm4gcmVzOworfQorCitncG9pbnRlciBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9i
amVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIEdET01PYmplY3QqIHdyYXBwZXIpCit7CisgICAgLy8g
YWRkV3JhcHBlcih3cmFwcGVyKTsKKyAgICBncG9pbnRlciBvYmogPSBjcmVhdGVfZ2RvbV9vYmpl
Y3Qod3JhcHBlcik7CisgICAgZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIG9iaik7Cisg
ICAgcmV0dXJuIG9iajsKK30KKwordm9pZCBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERP
TU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2Jq
ZWN0SGFuZGxlKTsKKyAgICAvL3JlbW92ZVdyYXBwZXIoZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0
SGFuZGxlKSk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKQoreworICAgIGlm
ICghZG9jKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAgIGdw
b2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb2MpOwor
ICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmplY3QgKnJl
dDsKKworICAgIGlmIChkb2MtPmlzSFRNTERvY3VtZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBH
RE9NSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KGRvYykpOworI2lmIEVO
QUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5pc1NWR0RvY3VtZW50KCkpCisgICAgeworICAg
ICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gLSBzZWUgIzIwNTg2ICovCisjaWYgMAorICAg
ICAgICByZXQgPSBuZXcgR0RPTVNWR0RvY3VtZW50KHN0YXRpY19jYXN0PFNWR0RvY3VtZW50Kj4o
ZG9jKSk7CisjZW5kaWYKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlCisgICAgICAgIHJldCA9IG5l
dyBHRE9NRG9jdW1lbnQoZG9jKTsKKworICAgIGRvYy0+cmVmKCk7CisgICAgcmV0dXJuIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvYywgcmV0KTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSk7CisKK2dwb2ludGVyIHRvR0RPTU5ld2x5
Q3JlYXRlZChOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5V
TEw7IC8qIGhtbW0uLi4uICovCisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30K
KworZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm4gTlVMTDsgLyogaG1tbS4uLi4gKi8KKworICAgIERvY3VtZW50KiBkb2MgPSBub2Rl
LT5kb2N1bWVudCgpOworICAgIGdwb2ludGVyIHJldCA9IEdET01TY3JpcHRJbnRlcnByZXRlcjo6
Z2V0RE9NT2JqZWN0KG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiByZXQ7CisK
KyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKENT
U1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gTlVMTDsg
LyogaG1tbS4uLiAqLworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01TY3JpcHRJbnRlcnByZXRl
cjo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4g
Z29iajsKKworICAgIEdET01PYmplY3QgKnJldDsKKworICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxp
c3QoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01DU1NWYWx1ZUxpc3Qoc3RhdGljX2Nhc3Q8Q1NT
VmFsdWVMaXN0Kj4odmFsdWUpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGVsc2UgaWYgKHZhbHVl
LT5pc1NWR1BhaW50KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNl
ZSAjMjA1ODYgKi8KKyAgICAgICAgLy9yZXQgPSBuZXcgR0RPTVNWR1BhaW50KHN0YXRpY19jYXN0
PFNWR1BhaW50Kj4odmFsdWUpKTsKKyAgICB9CisgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHQ29s
b3IoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPIC0gc2VlICMyMDU4NiAq
LworICAgICAgICAvL3JldCA9IG5ldyBHRE9NU1ZHQ29sb3Ioc3RhdGljX2Nhc3Q8U1ZHQ29sb3Iq
Pih2YWx1ZSkpOworICAgIH0KKyNlbmRpZgorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2
ZVZhbHVlKCkpCisgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTUHJpbWl0aXZlVmFsdWUoc3RhdGlj
X2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSkpOworICAgIGVsc2UKKyAgICAgICAgcmV0
ID0gbmV3IEdET01DU1NWYWx1ZSh2YWx1ZSk7CisKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgcmV0
dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KHZhbHVlLCByZXQpOworfQor
CitzdGF0aWMgQUxXQVlTX0lOTElORSBncG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUp
Cit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6Omdl
dERPTU9iamVjdChub2RlKSk7CisKKyAgICBEb2N1bWVudCogZG9jID0gbm9kZS0+ZG9jdW1lbnQo
KTsKKyAgICBHRE9NTm9kZSAqcmV0ID0gTlVMTDsKKworICAgIC8vcHJpbnRmKCJjcmVhdGVXcmFw
cGVyIG5vZGVUeXBlICVkXG4iLCBub2RlLT5ub2RlVHlwZSgpKTsKKworICAgIHN3aXRjaCAobm9k
ZS0+bm9kZVR5cGUoKSkgeworICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKKyAgICAg
ICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgcmV0ID0g
Y3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSkpOwor
I2lmIEVOQUJMRShTVkcpCisgICAgICAgICAgICBlbHNlIGlmIChub2RlLT5pc1NWR0VsZW1lbnQo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyNpZiAwIC8qIFhYWCBUT0RPIC0gc2Vl
ICMyMDU4NiAqLworICAgICAgICAgICAgICAgIHJldCA9IGNyZWF0ZUdET01TVkdXcmFwcGVyKHN0
YXRpY19jYXN0PFNWR0VsZW1lbnQqPihub2RlKSk7CisjZW5kaWYKKyNlbmRpZgorICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRWxlbWVudChzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9k
ZTo6QVRUUklCVVRFX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUF0dHIoc3RhdGlj
X2Nhc3Q8QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5v
ZGU6OlRFWFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NVGV4dChzdGF0aWNfY2Fz
dDxUZXh0Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6
Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01DREFUQVNlY3Rp
b24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcg
R0RPTUVudGl0eShzdGF0aWNfY2FzdDxFbnRpdHkqPihub2RlKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBOb2RlOjpDT01NRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNv
bW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CisgICAgICAgICAgICAvLyB3ZSBkb24n
dCB3YW50IHRvIGNhY2hlIHRoZSBkb2N1bWVudCBpdHNlbGYgaW4gdGhlIHBlci1kb2N1bWVudCBk
aWN0aW9uYXJ5CisgICAgICAgICAgICByZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PERvY3VtZW50
Kj4obm9kZSkpOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NRG9jdW1lbnRUeXBlKHN0YXRpY19jYXN0PERvY3VtZW50VHlw
ZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6Ok5PVEFU
SU9OX05PREU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vdGF0aW9uKHN0YXRpY19jYXN0
PE5vdGF0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NRG9j
dW1lbnRGcmFnbWVudChzdGF0aWNfY2FzdDxEb2N1bWVudEZyYWdtZW50Kj4obm9kZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RF
OgorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01FbnRpdHlSZWZlcmVuY2Uoc3RhdGljX2Nhc3Q8
RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTU5vZGUobm9kZSk7CisgICAgfQorCisg
ICAgZG9jLT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01P
YmplY3Qobm9kZSwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBj
b2xsZWN0aW9uKQoreworICAgIGlmICghY29sbGVjdGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7
IC8qIGhtbW0uLi4uICovCisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJl
dGVyOjpnZXRET01PYmplY3QoY29sbGVjdGlvbik7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAg
cmV0dXJuIGdvYmo7CisKKyAgICBHRE9NT2JqZWN0ICpyZXQ7CisgICAgc3dpdGNoIChjb2xsZWN0
aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBIVE1MQ29sbGVjdGlvbjo6U2VsZWN0T3B0aW9u
czoKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uKHN0YXRp
Y19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAg
IGJyZWFrOworI2lmIDAKKyAgICAgICAgY2FzZSBIVE1MQ29sbGVjdGlvbjo6RG9jQWxsOgorICAg
ICAgICAgICAgcmV0ID0gbmV3IEdET01IVE1MQWxsQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1M
Q29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUhUTUxDb2xsZWN0aW9u
KHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29sbGVjdGlvbikpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgY29sbGVjdGlvbi0+cmVmKCk7CisgICAgcmV0dXJuIEdET01T
Y3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGNvbGxlY3Rpb24sIHJldCk7Cit9CisKK2dw
b2ludGVyIHRvR0RPTShFdmVudCogZXZlbnQpCit7CisgICAgaWYgKCFldmVudCkKKyAgICAgICAg
cmV0dXJuIE5VTEw7IC8qIGhtbW0uLi4uICovCisKKyAgICAvL3ByaW50ZigidG9HRE9NIEV2ZW50
IHR5cGUgJXNcbiIsIGV2ZW50LT50eXBlKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisKKyAg
ICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZXZl
bnQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmpl
Y3QgKnJldDsKKyAgICBpZiAoZXZlbnQtPmlzVUlFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVu
dC0+aXNLZXlib2FyZEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUtleWJvYXJk
RXZlbnQoc3RhdGljX2Nhc3Q8S2V5Ym9hcmRFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2Ug
aWYgKGV2ZW50LT5pc1RleHRFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01UZXh0
RXZlbnQoc3RhdGljX2Nhc3Q8VGV4dEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAo
ZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gbmV3IEdET01Nb3VzZUV2
ZW50KHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlmIChl
dmVudC0+aXNXaGVlbEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTVdoZWVsRXZl
bnQoc3RhdGljX2Nhc3Q8V2hlZWxFdmVudCo+KGV2ZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAg
ICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzU1ZHWm9vbUV2ZW50KCkpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworICAgICAgICAgICAg
Ly9yZXQgPSBuZXcgR0RPTVNWR1pvb21FdmVudChzdGF0aWNfY2FzdDxTVkdab29tRXZlbnQqPihl
dmVudCksIDApOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cmV0ID0gbmV3IEdET01VSUV2ZW50KHN0YXRpY19jYXN0PFVJRXZlbnQqPihldmVudCkpOworICAg
IH0gZWxzZSBpZiAoZXZlbnQtPmlzTXV0YXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSBuZXcg
R0RPTU11dGF0aW9uRXZlbnQoc3RhdGljX2Nhc3Q8TXV0YXRpb25FdmVudCo+KGV2ZW50KSk7Cisg
ICAgZWxzZSBpZiAoZXZlbnQtPmlzT3ZlcmZsb3dFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcg
R0RPTU92ZXJmbG93RXZlbnQoc3RhdGljX2Nhc3Q8T3ZlcmZsb3dFdmVudCo+KGV2ZW50KSk7Cisg
ICAgZWxzZSBpZiAoZXZlbnQtPmlzTWVzc2FnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyBH
RE9NTWVzc2FnZUV2ZW50KHN0YXRpY19jYXN0PE1lc3NhZ2VFdmVudCo+KGV2ZW50KSk7CisgICAg
ZWxzZSBpZiAoZXZlbnQtPmlzUHJvZ3Jlc3NFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+
aXNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IG5ldyBH
RE9NWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KHN0YXRpY19jYXN0PFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9
IG5ldyBHRE9NUHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxQcm9ncmVzc0V2ZW50Kj4oZXZlbnQp
KTsKKyAgICB9CisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorICAgIGVsc2UgaWYgKGV2ZW50LT5p
c1N0b3JhZ2VFdmVudCgpKQorICAgICAgICByZXQgPSBuZXcgR0RPTVN0b3JhZ2VFdmVudChzdGF0
aWNfY2FzdDxTdG9yYWdlRXZlbnQqPihldmVudCkpOworI2VuZGlmCisgICAgZWxzZSBpZiAoZXZl
bnQtPmlzV2ViS2l0QW5pbWF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IEdET01XZWJL
aXRBbmltYXRpb25FdmVudChzdGF0aWNfY2FzdDxXZWJLaXRBbmltYXRpb25FdmVudCo+KGV2ZW50
KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkpCisgICAg
ICAgIHJldCA9IG5ldyBHRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktp
dFRyYW5zaXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcg
R0RPTUV2ZW50KGV2ZW50KTsKKworICAgIGV2ZW50LT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNj
cmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZXZlbnQsIHJldCk7Cit9CisKK2dwb2ludGVy
IHRvR0RPTShUZXh0KiB0ZXh0KQoreworICAgIGlmICghdGV4dCkKKyAgICAgICAgcmV0dXJuIE5V
TEw7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01P
YmplY3QodGV4dCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAg
R0RPTU5vZGUgKnJldCA9IG5ldyBHRE9NVGV4dCh0ZXh0KTsKKyAgICB0ZXh0LT5kb2N1bWVudCgp
LT5yZWYoKTsKKyAgICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qo
dGV4dCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKENTU1J1bGUqIHJ1bGUpCit7CisgICAg
aWYgKCFydWxlKQorICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIGhtbW0uLi4gKi8KKworICAg
IGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChydWxl
KTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIEdET01PYmpl
Y3QgKnJldDsKKyAgICBzd2l0Y2ggKHJ1bGUtPnR5cGUoKSkgeworICAgICAgICBjYXNlIENTU1J1
bGU6OlNUWUxFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1N0eWxlUnVsZShz
dGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDU1NSdWxlOjpNRURJQV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gbmV3IEdE
T01DU1NNZWRpYVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTTWVkaWFSdWxlKj4ocnVsZSkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6CisgICAg
ICAgICAgICByZXQgPSBuZXcgR0RPTUNTU0ZvbnRGYWNlUnVsZShzdGF0aWNfY2FzdDxDU1NGb250
RmFjZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NS
dWxlOjpQQUdFX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1BhZ2VSdWxlKHN0
YXRpY19jYXN0PENTU1BhZ2VSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JUX1JVTEU6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RP
TUNTU0ltcG9ydFJ1bGUoc3RhdGljX2Nhc3Q8Q1NTSW1wb3J0UnVsZSo+KHJ1bGUpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OkNIQVJTRVRfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTQ2hhcnNldFJ1bGUoc3RhdGljX2Nhc3Q8Q1NTQ2hhcnNl
dFJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxl
OjpWQVJJQUJMRVNfUlVMRToKKyAgICAgICAgICAgIHJldCA9IG5ldyBHRE9NQ1NTVmFyaWFibGVz
UnVsZShzdGF0aWNfY2FzdDxDU1NWYXJpYWJsZXNSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBuZXcgR0RPTUNTU1J1
bGUocnVsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBydWxlLT5yZWYoKTsK
KyAgICBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdChydWxlLCByZXQpOworICAg
IHJldHVybiByZXQ7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFbGVtZW50KiBlbGVtZW50KQorewor
ICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBzaG91bGRu
J3QgYmUgb25lPyBBU1NFUlQoIVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZWxlbWVu
dCkpOworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9i
amVjdChlbGVtZW50KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7IC8vIGh1
aD8gZXJyLi4uCisKKyAgICBHRE9NTm9kZSAqcmV0OworICAgIERvY3VtZW50KiBkb2MgPSBlbGVt
ZW50LT5kb2N1bWVudCgpOworCisgICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkKKyAg
ICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0PEhUTUxFbGVtZW50
Kj4oZWxlbWVudCkpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZWxlbWVudC0+aXNT
VkdFbGVtZW50KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAj
MjA1ODYgKi8KKyAgICAgICAgLy9yZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2Fz
dDxTVkdFbGVtZW50Kj4oZWxlbWVudCkpOworICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAg
ICAgcmV0ID0gbmV3IEdET01FbGVtZW50KGVsZW1lbnQpOworCisgICAgZG9jLT5yZWYoKTsKKyAg
ICByZXR1cm4gR0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QoZWxlbWVudCwgcmV0
KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQpCit7CisgICAg
aWYgKCFzdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gTlVMTDsgLyogZXJyLi4uICovCisKKyAg
ICBncG9pbnRlciBnb2JqID0gR0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qoc3R5
bGVTaGVldCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgR0RP
TU9iamVjdCAqcmV0OworICAgIGlmIChzdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKKyAg
ICAgICAgcmV0ID0gbmV3IEdET01DU1NTdHlsZVNoZWV0KHN0YXRpY19jYXN0PENTU1N0eWxlU2hl
ZXQqPihzdHlsZVNoZWV0KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSBuZXcgR0RPTVN0eWxl
U2hlZXQoc3R5bGVTaGVldCk7CisKKyAgICBzdHlsZVNoZWV0LT5yZWYoKTsKKyAgICByZXR1cm4g
R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3Qoc3R5bGVTaGVldCwgcmV0KTsKK30K
KworLyogZGVyaXZlZCBzb3VyY2VzIGF1dG8tZ2VuZXJhdGVkICovCitncG9pbnRlciB0b0dET00o
WE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9iaik7CisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdl
dCogdGFyZ2V0KQoreworICAgIGlmICghdGFyZ2V0KQorICAgICAgICByZXR1cm4gTlVMTDsKKwor
I2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFNWR0VsZW1lbnRJbnN0YW5jZSBzdXBwb3J0
cyBib3RoIHRvU1ZHRWxlbWVudEluc3RhbmNlIGFuZCB0b05vZGUgc2luY2Ugc28gbXVjaCBtb3Vz
ZSBoYW5kbGluZyBjb2RlIGRlcGVuZHMgb24gdG9Ob2RlIHJldHVybmluZyBhIHZhbGlkIG5vZGUu
CisgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSA9IHRhcmdldC0+dG9TVkdFbGVtZW50
SW5zdGFuY2UoKTsKKyAgICBpZiAoaW5zdGFuY2UpCisgICAgICAgIHJldHVybiB0b0dET00oZXhl
YywgaW5zdGFuY2UpOworI2VuZGlmCisjZW5kaWYKKworICAgIE5vZGUqIG5vZGUgPSB0YXJnZXQt
PnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICByZXR1cm4gdG9HRE9NKG5vZGUpOwor
CisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0KiB4aHIgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3Qo
KSkKKyAgICAgICAgLy8gWE1MSHR0cFJlcXVlc3QgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00s
IHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAg
cmV0dXJuIEdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KHhocik7CisKKyAgICBp
ZiAoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVz
dFVwbG9hZCgpKQorICAgICAgICByZXR1cm4gdG9HRE9NKHVwbG9hZCk7CisKKyNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGlmIChET01BcHBsaWNhdGlvbkNhY2hlKiBj
YWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCisgICAgICAgIC8vIERPTUFw
cGxpY2F0aW9uQ2FjaGUgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5l
ZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01TY3Jp
cHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGNhY2hlKTsKKyNlbmRpZgorCisgICAgLy8gVGhl
cmUgYXJlIHR3byBraW5kcyBvZiBFdmVudFRhcmdldHM6IEV2ZW50VGFyZ2V0Tm9kZSBhbmQgWE1M
SHR0cFJlcXVlc3QuCisgICAgLy8gSWYgU1ZHIHN1cHBvcnQgaXMgZW5hYmxlZCwgdGhlcmUgaXMg
YWxzbyBTVkdFbGVtZW50SW5zdGFuY2UuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIE5VTEw7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudFRhcmdldE5vZGUqIHRhcmdl
dCkKK3sKKyAgICBpZiAoIXRhcmdldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBOb2Rl
KiBub2RlID0gdGFyZ2V0LT50b05vZGUoKTsKKyAgICBpZiAobm9kZSkKKyAgICAgICAgcmV0dXJu
IHRvR0RPTShub2RlKTsKKworICAgIHJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8RXZlbnRUYXJn
ZXQqPih0YXJnZXQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rv
cnkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACisvKgorICog
VEhJUyBGSUxFIElTIERFUklWRUQgQlkgSEFORCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJB
VEVEIEZJTEUuCisgKiBJVCBJUyBOT1QgQU4gQVVUTy1HRU5FUkFURUQgRklMRSBJVCBXQVMgQ1JF
QVRFRCBNQU5VQUxMWSAqRlJPTSoKKyAqIEFOIEFVVE8tR0VORVJBVEVEIEZJTEUuCisgKiBrZWVw
aW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAq
IGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICog
Z2VuZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlu
cHV0LgorICoKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIEdET01IVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5X2gKKyNkZWZpbmUgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAor
CisjaW5jbHVkZSAiR2RvbU5vZGVJbnRlcm5hbC5oIgorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7CisKKyAg
ICBHRE9NTm9kZSogY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
KTsKKworfQorCisjZW5kaWYgLy8gR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaApJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdl
dE5vZGUuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAiR2Rv
bUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorCitl
eHRlcm4gIkMiIHsKKwordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9pbml0X2V2ZW50X3Rh
cmdldF9ub2RlIChHZG9tRXZlbnRUYXJnZXROb2RlICp0aGl6KQoreworICAgIGdfcmV0dXJuX2lm
X2ZhaWwgKHRoaXopOworICAgIC8qCisgICAgV2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlICogaXRl
bSA9IGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUodGhpeik7CisgICAgV2ViQ29y
ZTo6U3RyaW5nIF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5n
KGV2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RXZlbnRUYXJnZXRO
b2RlKF9nX2V2ZW50X3RhcmdldF9ub2RlX3R5cGVfYXJnKTsKKyAgICAqLworfQorCit9IC8qIGV4
dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlz
aW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJy
aSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwg
MjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lmbmRlZiBHZG9tRE9NQmluZGlu
Z19oCisjZGVmaW5lIEdkb21ET01CaW5kaW5nX2gKKworI2luY2x1ZGUgPGtqcy9pbnRlcnByZXRl
ci5oPgorI2luY2x1ZGUgPGtqcy9sb29rdXAuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKworI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2lu
Y2x1ZGUgIkdkb21Ob2RlSW50ZXJuYWwuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAg
Y2xhc3MgQXRvbWljU3RyaW5nOworICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNzIEV2ZW50
OworICAgIGNsYXNzIEZyYW1lOworICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgTm9kZTsKKyAg
ICBjbGFzcyBTdHJpbmc7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGNsYXNzIFNWR0VsZW1lbnQ7
CisjZW5kaWYKKworICAgIGNsYXNzIEdET01TY3JpcHRJbnRlcnByZXRlciB7CisgICAgcHVibGlj
OgorICAgICAgICBzdGF0aWMgdm9pZCogZ2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSk7
CisgICAgICAgIHN0YXRpYyB2b2lkKiBwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBH
RE9NT2JqZWN0Kik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU9iamVjdCh2b2lkKiBv
YmplY3RIYW5kbGUpOworICAgIH07CisKKyAgICAvLyBSZXRyaWV2ZSBmcm9tIGNhY2hlLCBvciBj
cmVhdGUsIGEgR2RvbSB3cmFwcGVyIGZvciBhIERPTSBvYmplY3QuCisgICAgdGVtcGxhdGU8Y2xh
c3MgRE9NT2JqLCBjbGFzcyBHZG9tRE9NT2JqPiBpbmxpbmUgdm9pZCogY2FjaGVET01PYmplY3Qo
RE9NT2JqKiBkb21PYmopCisgICAgeworICAgICAgICBpZiAoIWRvbU9iaikKKyAgICAgICAgICAg
IHJldHVybiBOVUxMOyAvKiBYWFggaG1tbS4uLiAqLworICAgICAgICBpZiAodm9pZCogcmV0ID0g
R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZG9tT2JqKSkKKyAgICAgICAgICAg
IHJldHVybiByZXQ7CisgICAgICAgIEdET01PYmplY3QqIHJldCA9IG5ldyBHZG9tRE9NT2JqKGRv
bU9iaik7CisJCWRvbU9iai0+cmVmKCk7CisgICAgICAgIHJldHVybiBHRE9NU2NyaXB0SW50ZXJw
cmV0ZXI6OnB1dERPTU9iamVjdChkb21PYmosIHJldCk7CisgICAgfQorCisjaWYgRU5BQkxFKFNW
RykKKyAgICAvLyBSZXRyaWV2ZSBmcm9tIGNhY2hlLCBvciBjcmVhdGUsIGEgR2RvbSB3cmFwcGVy
IGZvciBhbiBTVkcgRE9NIG9iamVjdC4KKyAgICB0ZW1wbGF0ZTxjbGFzcyBET01PYmosIGNsYXNz
IEdkb21ET01PYmo+IGlubGluZSB2b2lkKiBjYWNoZVNWR0RPTU9iamVjdChET01PYmoqIGRvbU9i
aiwgU1ZHRWxlbWVudCogY29udGV4dCkKKyAgICB7CisgICAgICAgIGlmICghZG9tT2JqKQorICAg
ICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFhYWCBobW1tLi4uICovCisgICAgICAgIGlmICh2b2lk
KiByZXQgPSBHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChkb21PYmopKQorICAg
ICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgR0RPTU9iamVjdCogcmV0ID0gbmV3IEdkb21E
T01PYmooZG9tT2JqLCBjb250ZXh0KTsKKwkJZG9tT2JqLT5yZWYoKTsKKyAgICAgICAgcmV0dXJu
IEdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2JqZWN0KGRvbU9iaiwgcmV0KTsKKyAgICB9
CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gR2RvbURPTUJp
bmRpbmdfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3RQcml2YXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdFBy
aXZhdGUuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01P
YmplY3RQcml2YXRlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wu
bmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1
ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAi
R2RvbURPTU9iamVjdFByaXZhdGUuaCIKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUo
R2RvbURPTU9iamVjdCwgZ2RvbV9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKTsKKworc3RydWN0
IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSB7CisgICAgIEdET01PYmplY3QgKm1fbm9kZTsKK307CisK
KyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQ
cml2YXRlKSkKKwordm9pZAorZ2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKEdkb21ET01PYmpl
Y3QgKnJlcXVlc3QsIEdET01PYmplY3QgKiBpdGVtKQoreworICAgIEdkb21ET01PYmplY3RQcml2
YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHBy
aXYtPm1fbm9kZSA9IGl0ZW07CisgICAgLypwcml2LT5tX25vZGUtPmltcGwoKS0+cmVmKCk7Ki8K
K30KKworR0RPTU9iamVjdCAqCitnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR2RvbURPTU9i
amVjdCAqcmVxdWVzdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01f
RE9NX09CSkVDVF9HRVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXR1cm4gcHJpdi0+bV9ub2Rl
OworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfZmluYWxpemUoR09iamVjdCogb2Jq
ZWN0KQoreworICAgIEdkb21ET01PYmplY3QqIHJlcXVlc3QgPSBHRE9NX0RPTV9PQkpFQ1Qob2Jq
ZWN0KTsKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CisK
KyAgICAvKnByaXYtPm1fbm9kZS0+aW1wbCgpLT5kZXJlZigpOyovCisgICAgZGVsZXRlIHByaXYt
Pm1fbm9kZTsgLyogY2FsbHMgbV9pbXBsLT5kZXJlZigpICovCisKKyAgICBHX09CSkVDVF9DTEFT
UyhnZG9tX2RvbV9vYmplY3RfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKwor
c3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQoR2RvbURPTU9iamVjdENsYXNz
KiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+Zmlu
YWxpemUgPSBnZG9tX2RvbV9vYmplY3RfZmluYWxpemU7CisKKyAgICBnX3R5cGVfY2xhc3NfYWRk
X3ByaXZhdGUocmVxdWVzdENsYXNzLCBzaXplb2YoR2RvbURPTU9iamVjdFByaXZhdGUpKTsKK30K
Kworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2luaXQoR2RvbURPTU9iamVjdCogcmVxdWVz
dCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9H
RVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsKK30KKworfSAv
KiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVj
dC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVj
dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworZXh0ZXJuICJDIiB7
CisKK3ZvaWQKK2dkb21fZG9tX29iamVjdF9pbml0X2RvbV9vYmplY3QgKEdkb21ET01PYmplY3Qg
KnRoaXopCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAodGhpeik7CisJLyoKKyAgICBXZWJDb3Jl
OjpET01PYmplY3QgKiBpdGVtID0gZ2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKHRoaXopOwor
ICAgIFdlYkNvcmU6OlN0cmluZyBfZ19kb21fb2JqZWN0X3R5cGVfYXJnID0gV2ViQ29yZTo6U3Ry
aW5nKGRvbV9vYmplY3RfdHlwZV9hcmcpOworICAgIGl0ZW0tPmluaXRET01PYmplY3QoX2dfZG9t
X29iamVjdF90eXBlX2FyZyk7CisJKi8KK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0J
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdP
YmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTY1OSBAQAorIworIyBDb3B5cmlnaHQg
KEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMg
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisjCisjIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIwor
IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisjIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorIyBCb3N0b24sIE1B
IDAyMTExLTEzMDcsIFVTQS4KKworcGFja2FnZSBDb2RlR2VuZXJhdG9yR09iamVjdDsKKworIyBE
ZWZhdWx0IExpY2VuY2UgVGVtcGxhdGVzCitteSAkbGljZW5jZVRlbXBsYXRlID0gPDwgIkVPRiI7
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xcQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwXEBh
dG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLworRU9GCisK
K215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215ICVoZHJJbmNsdWRlcyA9ICgpOworbXkgJWhkclBy
b3BJbmNsdWRlcyA9ICgpOworbXkgJWltcGxUeXBlZGVmcyA9ICgpOworCisjIERlZmF1bHQgY29u
c3RydWN0b3IKK3N1YiBuZXcKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJl
ZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJhdG9yID0gc2hpZnQ7CisgICAgJG91dHB1
dERpciA9IHNoaWZ0OworCisgICAgYmxlc3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CisgICAgcmV0
dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBmaW5pc2gKK3sKKyAgICBteSAkb2JqZWN0ID0gc2hp
ZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJm
YWNlCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0
OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAgICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+
bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxuIjsKKworICAgICRvYmplY3QtPkdlbmVyYXRlKCRk
YXRhTm9kZSk7CisKKyAgICAjIFdyaXRlIGNoYW5nZXMKKyAgICBteSAkZm5hbWUgPSAiR2RvbV8i
IC4gJG5hbWU7ICNkZWNhbWVsaXplKCRuYW1lKTsKKyAgICAkZm5hbWUgPX4gcy9fLy9nOworICAg
ICRvYmplY3QtPldyaXRlRGF0YSgkZm5hbWUpOworfQorCisjIFBhcmFtczogJ2lkbERvY3VtZW50
JyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZU1vZHVsZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsK
KyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1v
ZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5cGUKK3sKKyAgICBteSAkY2xhc3NOYW1lID0gc2hp
ZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxpemUoJGNsYXNzTmFtZSkpCit9CisKK3N1YiBHZXRQ
YXJlbnRDbGFzc05hbWUKK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICMgPz8g
cXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2Fj
eVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVu
dCJ9OworICAgIHJldHVybiAiR2RvbURPTU9iamVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9
IGVxIDA7CisgICAgcmV0dXJuICJHZG9tIiAuICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgk
ZGF0YU5vZGUtPnBhcmVudHMoMCkpOworfQorc3ViIEdldFBhcmVudEdPYmpUeXBlCit7CisgICAg
bXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdET01f
VFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1
cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2JqVHlwZSgkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1
bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Cit9CisKKworIyBBbGdvcml0aG0gdGFrZW4gZnJv
bSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNo
aWZ0OworICAgIGpvaW4oJycsIG1hcHsgdWNmaXJzdCAkXyB9IHNwbGl0KC8oPzw9W0EtWmEtel0p
Xyg/PVtBLVphLXpdKXxcYi8sICRzKSk7Cit9CisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3Ry
aW5nOjpDYW1lbENhc2UgMC4wMQorc3ViIGRlY2FtZWxpemUKK3sKKyAgICBteSAkcyA9IHNoaWZ0
OworICAgICRzID1+IHN7KFteYS16QS1aXT8pKFtBLVpdKikoW0EtWl0pKFthLXpdPyl9eworICAg
ICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAgICAgICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9
ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBteSAkdCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAn
Xyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/ICIke3AxfV8kcDIkcDMiIDogIiRwMiRwMyIg
OiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAgfWdlOworICAgICRzOworfQorCitzdWIgR2V0
SGRyTmFtZQoreworICAgICAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVs
ZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRDbGFzc05h
bWUKK3sKKyAgICAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hp
ZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitzdWIgR2V0R0luY2x1ZGVIZHIK
K3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldEhkck5hbWUo
JHR5cGUpOworICAgICAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUp
KTsKKworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImludCI7CisgICAgICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAi
c2hvcnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgICAgICBy
ZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsK
KyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgICAgICBy
ZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgICAgICByZXR1cm4gIiIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEg
IkRPTVRpbWVTdGFtcCI7CisgICAgICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0
ZW5lciI7CisgICAgICAgIHJldHVybiAiUmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ci
OworICAgICAgICByZXR1cm4gImdkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiBp
ZiAkdHlwZSBlcSAiRE9NT2JqZWN0IjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBjaGFyIjsKKyAgICAgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7
ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorICAgICAgICByZXR1cm4gImdsaWItb2Jq
ZWN0LmgiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gIkdkb21FdmVu
dFRhcmdldE5vZGUuaCIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKworICAgICAgICByZXR1
cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJmbG9hdCI7CisKKyAgICAgICAgcmV0dXJu
ICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisKKyAgICAgICAgcmV0dXJu
ICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRuYW1l
LmgiOworfQorCisjIHJldHVybnMgMSBpZiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGdvYmplY3Qgd3Jh
cHBlciBhcm91bmQgdGhlIHJldHVybiByZXN1bHQKK3N1YiBJc0dET01DbGFzc1R5cGUKK3sKKyAg
ICBteSAkdHlwZSA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlw
ZSk7CisKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAg
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgICAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJDb21wYXJlSG93IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAg
ICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJib29sZWFuIjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIi
OworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgICAgIHJldHVybiAw
IGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hh
ciI7CisgICAgICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJl
dHVybiAwIGlmICR0eXBlIGVxICJpbnQiOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgaW50IjsKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxv
bmciOworICAgICAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsK
KyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICAgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3
cmFwcGVyCisKKyAgICAgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0
dXJuIDE7Cit9CisKK3N1YiBHZXRQcm9wR1R5cGUKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0Owor
ICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5n
IiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBl
cSAiZmxvYXQiOworICAgIHJldHVybiAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29t
cGFyZUhvdyI7CisgICAgcmV0dXJuICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAg
IHJldHVybiAiYm9vbGVhbiIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hh
ciIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgIHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxv
bmciOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAi
dWNoYXIiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBl
cSAidW5zaWduZWQiOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICBy
ZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWlu
dDY0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25n
IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEg
IlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4g
Im9iamVjdCI7Cit9CisKK3N1YiBHZXRHVHlwZQoreworICAgIG15ICR0eXBlID0gc2hpZnQ7Cisg
ICAgICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKyAgICAgICAgI215ICRuYW1l
ID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAgICAgICAgcmV0dXJuICJHZG9t
RXZlbnRUYXJnZXROb2RlICoiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisgICAgICAgIHJl
dHVybiAiZ2NoYXIgKiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgICAgIHJldHVybiAi
Z2Zsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgICAgICByZXR1cm4gIldlYkNvcmU6OlJh
bmdlOjpDb21wYXJlSG93ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgICAgICByZXR1
cm4gImdkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgICAgICByZXR1cm4gImdib29s
ZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgICAgIHJldHVybiAiZ2NoYXIiIGlmICR0
eXBlIGVxICJjaGFyIjsKKyAgICAgICAgcmV0dXJuICJnbG9uZyIgaWYgJHR5cGUgZXEgImxvbmci
OworICAgICAgICByZXR1cm4gImdzaG9ydCIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICAgICAg
cmV0dXJuICJndWNoYXIiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgICAgIHJldHVybiAiZ3Vp
bnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgICAgIHJldHVybiAiZ2ludCIgaWYgJHR5
cGUgZXEgImludCI7CisgICAgICAgIHJldHVybiAiZ3VpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25l
ZCBpbnQiOworICAgICAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxv
bmciOworICAgICAgICByZXR1cm4gImd1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IGxvbmciOworICAgICAgICByZXR1cm4gImd1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBz
aG9ydCI7CisgICAgICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAj
IFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgICAgICByZXR1cm4gInZvaWQiIGlm
ICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJ
bmNIZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBH
ZXRHSW5jbHVkZUhkcigkdHlwZSk7CisgICAgaWYgKCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlm
ICgkdHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICByZXR1cm4gIkdkb21FdmVu
dFRhcmdldE5vZGUuaCI7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCR0eXBlIGVxICJET01P
YmplY3QiKSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpz
Z2VuZXJhdG9yLgorICAgICAgICAgICAgcmV0dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRy
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNI
ZHIKK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigk
dHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAgICAgaWYgKElzR0RPTUNsYXNzVHlw
ZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRoZHIgPSBzdWJzdHIoJGhkciwgMCwgbGVuZ3RoKCRo
ZHIpLTIpOworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3siZ2RvbS8iLiRoZHIuIi5oIn0g
PSAxOworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3siZ2RvbS8iLiRoZHIuIlByaXZhdGUu
aCJ9ID0gMTsKKyAgICAgICAgICAgICRoZHJQcm9wSW5jbHVkZXN7Imdkb20vIi4kaGRyLiJJbnRl
cm5hbC5oIn0gPSAxOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgJGhk
clByb3BJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9CisKK30KKworc3ViIGFk
ZEluY0hkcgoreworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5j
SGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICBpZiAoSXNHRE9NQ2xh
c3NUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgJGhkckluY2x1ZGVzeyJnZG9tLyRoZHIifSA9
IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkaGRySW5jbHVkZXN7JGhkcn0gPSAx
OworICAgICAgICB9CisgICAgfQorCit9CisKK3N1YiBhZGRJbmNCb2R5Cit7CisgICAgbXkgJHR5
cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgk
aGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyRoZHIifSA9IDE7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0K
K30KKworc3ViIEdldFByaXZGbgoreworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7Cisg
ICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9IHNoaWZ0OworICAgIG15ICRyZXMgPSBzaGlmdDsKKyAg
ICBteSAkcGFybSA9IHNoaWZ0OworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJFdmVudFRh
cmdldCIpIHsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiAkcmVz
ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlKj4oZ2RvbV9ldmVudF90YXJn
ZXRfbm9kZV9nZXRfcHJpdmF0ZShzZWxmKSk7IjsKKyAgICB9CisgICAgcmV0dXJuICJXZWJDb3Jl
Ojoke2ludGVyZmFjZU5hbWV9ICogJHJlcyA9ICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZh
dGUoJHBhcm0pKTsiOworfQorCitzdWIgc2tpcFByb3BUZW1wb3JhcmlseQoreworICAgIG15ICR0
eXBlID0gc2hpZnQ7CisgICAgbXkgJHByb3BfdHlwZSA9IHNoaWZ0OworCisgICAgIyBza2lwIE1l
ZGlhTGlzdAorICAgIGlmICgkcHJvcF90eXBlIGVxICJzdHlsZXNoZWV0czo6TWVkaWFMaXN0Iikg
eworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2
ZW50VGFyZ2V0IikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBD
U1NWYXJpYWJsZXNEZWNsYXJhdGlvbgorICAgIGlmICgkcHJvcF90eXBlIGVxICJDU1NWYXJpYWJs
ZXNEZWNsYXJhdGlvbiIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBza2lw
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJDU1NT
dHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMg
c2tpcCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAi
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24iKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAj
fQorCisgICAgIyBza2lwIEV2ZW50TGlzdGVuZXIKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRXZl
bnRMaXN0ZW5lciIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBza2lwIERP
TVdpbmRvdworICAgICNpZiAoJHByb3BfdHlwZSBlcSAiRE9NV2luZG93IikgeworICAgICMgICAg
cmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDb25zdHJ1Y3RvcnMgKHdoYXRldmVyIHRo
ZXkgYXJlKSBmb3Igbm93LgorICAgIGlmICgkcHJvcF90eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7
CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgY2FudmFzMmQuLi4uCisgICAgaWYg
KCRwcm9wX3R5cGUgZXEgImN1c3RvbSIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisg
ICAgaWYgKCRwcm9wX3R5cGUgZXEgIkFycmF5IikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICAjIFRPRE86IFNWRworICAgIGlmICgkY29kZUdlbmVyYXRvci0+
SXNQb2RUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5
cGUpKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3Vi
IFVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24KK3sKKyAgICBteSAkdHlwZSA9IHNoaWZ0Owor
CisgICAgIyBza2lwcGVkIG91dCBDYW52YXNQaXhlbEFycmF5IC0gc2VlIEpTQ2FudmFzUGl4ZWxB
cnJheUN1c3RvbS5jcHAgZm9yIHdoeS4KKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiTm9kZSIg
b3IgJHR5cGUgZXEgIkRvY3VtZW50IiBvciAkdHlwZSBlcSAiSFRNTENvbGxlY3Rpb24iIG9yICR0
eXBlIGVxICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUgZXEg
IkNTU1J1bGUiIG9yICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IgJHR5cGUgZXEgIkV2ZW50IiBvciAk
dHlwZSBlcSAiRWxlbWVudCIgb3IgJHR5cGUgZXEgIlRleHQiOworICAgIHJldHVybiAwOworfQor
CisKKyMgR2VuZXJhdGUgaGVhZGVyIGFuZCBpbXBsCitzdWIgR2VuZXJhdGUKK3sKKyAgICBteSAk
b2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkaGFz
TGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFy
ZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAw
OworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50
OworICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05hbWUoJGRhdGFOb2Rl
KTsKKyAgICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJlbnRHT2JqVHlwZSgkZGF0YU5vZGUp
OworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRjbGFz
c05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOworICAgIG15ICRoZHJOYW1lID0g
R2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBpbXBs
IGhlYWRlciB0ZW1wbGF0ZQorICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1w
bGF0ZSk7CisgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJH
RE9NQmluZGluZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7Imdkb20vJGhkck5hbWUuaCJ9
ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyR7aGRyTmFtZX1Qcml2YXRlLmgifSA9IDE7
CisKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01PYmplY3QiOworICAgIG15ICRw
YXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15ICRwYXJlbnRIZHJOYW1lID0g
Ikdkb21ET01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NOYW1lIG5lICJHT2JqZWN0IikK
KyAgICB7CisgICAgICAgICRwYXJlbnRJbnRlcmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRDbGFz
c05hbWUsIDQpOworICAgICAgICBpZiAoJHBhcmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9iamVj
dCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigkcGFy
ZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRyTmFt
ZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAg
ICB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICAg
ICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCJ9ID0g
MTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5hbWV9UHJpdmF0ZS5o
In0gPSAxOworICAgICAgICAkaGRySW5jbHVkZXN7Imdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIn0g
PSAxOworICAgICAgICAjJGhkckluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRIZHJOYW1lfS5oIn0g
PSAwOworICAgIH0KKworICAgICMgVE9ETyAtIG1ha2UgdGhlc2Ugb25seSBpbmNsdWRlIHdoZXJl
IG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAgIyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdG9HRE9N
LCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRl
c3siRWxlbWVudC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNTU1ZhbHVlLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVsZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7
IkhUTUxDb2xsZWN0aW9uLmgifSA9IDE7CisgICAgIyRpbXBsSW5jbHVkZXN7IlNWR1BhdGhTZWcu
aCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJTdHlsZVNoZWV0LmgifSA9IDE7CisgICAgJGlt
cGxJbmNsdWRlc3siRXZlbnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDYW52YXNQaXhl
bEFycmF5LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRE9NV2luZG93LmgifSA9IDE7Cisg
ICAgJGltcGxJbmNsdWRlc3siVGV4dC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7Imdkb20v
R1N0cmluZ0NvbnZlcnQuaCJ9ID0gMTsKKworICAgICMgWFhYIFRPRE86IG1ha2UgdGhpcyBvcHRp
b25hbCBvciBpbiBhIGhlYWRlciBmaWxlLiAgb3IgZmluZCBhIGJldHRlciB3YXkuCisgICAgbXkg
JGhhY2tEZWNscyA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGdwb2ludGVy
IHRvR0RPTShOb2RlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIG5vZGUp
OworICAgIGdwb2ludGVyIHRvR0RPTShDU1NSdWxlKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dE
T00oRWxlbWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBub2RlKTsK
KyAgICBncG9pbnRlciB0b0dET00oSFRNTENvbGxlY3Rpb24qIG5vZGUpOworICAgIC8vZ3BvaW50
ZXIgdG9HRE9NKFNWR1BhdGhTZWcqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShTdHlsZVNo
ZWV0KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXROb2RlKiBub2RlKTsK
KyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXQqIG5vZGUpOworICAgIGdwb2ludGVyIHRv
R0RPTShFdmVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKENhbnZhc1BpeGVsQXJyYXkq
IG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShET01XaW5kb3cqIG5vZGUpOworICAgIGdwb2lu
dGVyIHRvR0RPTShUZXh0KiBub2RlKTsKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworRU9GCisK
KyAgICBwdXNoKEBjQm9keSwgJGhhY2tEZWNscyk7CisKKyAgICBwdXNoKEBjQm9keSwgIm5hbWVz
cGFjZSBXZWJDb3JlIHtcbiIpOworCisgICAgIyBHZXQgY29ycmVjdCBwYXNzL3N0b3JlIHR5cGVz
IHJlc3BlY3RpbmcgUE9EVHlwZSBmbGFnCisgICAgbXkgJHBvZFR5cGUgPSAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07CisgICAgbXkgJHBhc3NUeXBlID0gJHBvZFR5
cGUgPyAiSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIiA6ICIkaW50ZXJmYWNlTmFtZSoi
OworCisgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFzUGFy
ZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBh
bmQgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAg
ICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNoKEBjQm9keSwgIkpTQzo6SlNW
YWx1ZSogdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9k
VHlwZT4qIG9iaiwgU1ZHRWxlbWVudCogY29udGV4dClcbiIpOworICAgICAgICAjfSBlbHNpZiAo
SXNTVkdUeXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAg
ICAgICMgICAgIHB1c2goQGNCb2R5LCAiSlNDOjpKU1ZhbHVlKiB0b0pTKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCAkcGFzc1R5cGUgb2JqLCBTVkdFbGVtZW50KiBjb250ZXh0KVxuIik7CisgICAgICAg
ICN9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICJncG9pbnRlciB0b0dET00oV2Vi
Q29yZTo6JHBhc3NUeXBlIG9iailcbiIpOworICAgICAgICAjfQorCisgICAgICAgIHB1c2goQGNC
b2R5LCAie1xuIik7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAgICAgICAgIyAgICBwdXNo
KEBjQm9keSwgIiAgICByZXR1cm4gY2FjaGVTVkdET01PYmplY3Q8SlNTVkdQT0RUeXBlV3JhcHBl
cjwkcG9kVHlwZT4sICRjbGFzc05hbWUsICR7Y2xhc3NOYW1lfVByb3RvdHlwZT4oZXhlYywgb2Jq
LCBjb250ZXh0KTtcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdUeXBlTmVlZGluZ0NvbnRl
eHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMgICAgcHVzaChAY0JvZHks
ICIgICAgcmV0dXJuIGNhY2hlU1ZHRE9NT2JqZWN0PCRpbXBsQ2xhc3NOYW1lLCAkY2xhc3NOYW1l
LCAke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGV4ZWMsIG9iaiwgY29udGV4dCk7XG4iKTsKKyAgICAg
ICAgI30gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gV2ViQ29y
ZTo6Y2FjaGVET01PYmplY3Q8V2ViQ29yZTo6JGludGVyZmFjZU5hbWUsIEdET00kaW50ZXJmYWNl
TmFtZT4ob2JqKTtcbiIpOworICAgICAgICAjfQorICAgICAgICBwdXNoKEBjQm9keSwgIn1cbiIp
OworICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBuYW1lc3BhY2UgV2ViQ29yZSAqL1xu
Iik7CisgICAgbXkgJGltcGxDb250ZW50ID0gIiI7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNC
b2R5LCAidXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAi
ZXh0ZXJuIFwiQ1wiIHtcblxuIik7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVt
cGxhdGUKKyAgICBAaFByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAg
ICAgICAjcHVzaChAaFByZWZpeCwgIlxuIik7CisKKyAgICAjIEhlYWRlciBndWFyZAorICAgICAg
ICBteSAkZ3VhcmQgPSAiX18iIC4gJGNsYXNzTmFtZSAuICJfSF9fIjsKKworICAgIG15ICRjbHND
YXBzID0gc3Vic3RyKENsc1RvR09ialR5cGUoJGNsYXNzTmFtZSksIDUpOworICAgIG15ICRsY2Fz
ZV9pZmFjZW5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAg
I215ICRwYXJlbnRDbHNDYXBzID0gIkdET01fIiAuIENsc1RvR09ialR5cGUoJHBhcmVudEludGVy
ZmFjZU5hbWUpOworCisgICAgQGhQcmVmaXhHdWFyZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3Vh
cmQKKyNkZWZpbmUgJGd1YXJkCitFT0YKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOwor
R19CRUdJTl9ERUNMUworCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQp
OworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNkZWZpbmUgR0RPTV9UWVBFXyR7
Y2xzQ2Fwc30gICAgICAgICAgICAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVm
aW5lIEdET01fJHtjbHNDYXBzfShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9DQVNUKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZp
bmUgR0RPTV8ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2Rl
ZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc30ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFO
Q0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NX0lTXyR7
Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAg
R0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX0NMQVNT
KG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFXyR7Y2xz
Q2Fwc30sICR7Y2xhc3NOYW1lfUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1l
fVByaXZhdGUgJHtjbGFzc05hbWV9UHJpdmF0ZTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX0gewor
ICAgICR7cGFyZW50Q2xhc3NOYW1lfSBwYXJlbnRfaW5zdGFuY2U7CisgICAgJHtjbGFzc05hbWV9
UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdP
YmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCiske2xjYXNl
X2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOworCitFT0YKKworICAgIHB1c2goQGhCb2R5LCAk
aW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7
Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7Z3VhcmR9X1BST1BfCitFT0YKKworICAgIHB1c2goQGhC
b2R5UHJvcFByZSwgJGltcGxDb250ZW50KTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfQkVH
SU5fREVDTFNcbiIpOworCisgICAgJGhkclByb3BJbmNsdWRleyJnbGliLW9iamVjdC5oIn0gPSAx
OworICAgICRoZHJQcm9wSW5jbHVkZXsiZ2RvbS8ke3BhcmVudEhkck5hbWV9SW50ZXJuYWwuaCJ9
ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1ZGV7IkdET01PYmplY3QuaCJ9ID0gMTsKKyAgICAkaGRy
UHJvcEluY2x1ZGV7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKworICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworI2lmbmRlZiAke2d1YXJkfV9JTlRfCisjZGVmaW5lICR7Z3VhcmR9X0lO
VF8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vJHtwYXJlbnRIZHJO
YW1lfUludGVybmFsLmgiCisjaW5jbHVkZSAiR0RPTU9iamVjdC5oIgorI2luY2x1ZGUgIiR7aW50
ZXJmYWNlTmFtZX0uaCIKK0VPRgorCisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgJGltcGxDb250
ZW50KTsKKworICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRo
YXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pT
In0pIGFuZCAhVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsK
KyAgICAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViQ29yZSB7Cisg
ICAgZ3BvaW50ZXIgdG9HRE9NKCR7aW50ZXJmYWNlTmFtZX0qIG5vZGUpOworfSAvKiBuYW1lc3Bh
Y2UgV2ViQ29yZSAqLyAKK0VPRgorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICRpbXBsQ29udGVu
dCk7CisgICAgfQorICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJHX0JFR0lOX0RFQ0xTXG4iKTsK
KworICAgICNDbGFzcyBkZWNsYXJhdGlvbgorICAgICNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRP
TVdpbmRvdyIpIHsKKyAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJjbGFzcyBHRE9NJGlu
dGVyZmFjZU5hbWUge1xuIik7CisgICAgI30gZWxzZSB7CisgICAgICAgIHB1c2goQGhCb2R5SW50
ZXJuYWwsICJjbGFzcyBHRE9NJGludGVyZmFjZU5hbWUgOiBwdWJsaWMgJHBhcmVudEdJZmFjZU5h
bWUge1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgdHlwZWRlZiAkcGFy
ZW50R0lmYWNlTmFtZSBCYXNlO1xuIik7CisgICAgI30KKyAgICBwdXNoKEBoQm9keUludGVybmFs
LCAicHVibGljOlxuIik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIGludCBnZXRH
b2JqVHlwZSgpIHsgcmV0dXJuIEdET01fVFlQRV8ke2Nsc0NhcHN9OyB9XG4iKTsKKworICAgIG15
ICRuZWVkc1NWR0NvbnRleHQgPSAwOworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBoQm9k
eUludGVybmFsLCAiICAgIEdET00kaW50ZXJmYWNlTmFtZShQYXNzUmVmUHRyPFdlYkNvcmU6OiRp
bnRlcmZhY2VOYW1lPiBpbXBsIiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgU1ZHRWxlbWVudCog
Y29udGV4dCIgOiAiIikgLiAiKTtcbiIpOworCisgICAgIyBEZXN0cnVjdG9yCisgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgIiAgICB2aXJ0dWFsIH5HRE9NJGludGVyZmFjZU5hbWUoKTtcbiIpIGlm
ICghJGhhc1BhcmVudCBvciAkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSBvciAkaW50ZXJm
YWNlTmFtZSBlcSAiRE9NV2luZG93IjsKKworICAgIGlmICghJGhhc1BhcmVudCB8fCAoJGludGVy
ZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgICAgICNpZiAoJHBvZFR5cGUpIHsKKyAg
ICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIEpTU1ZHUE9EVHlwZVdyYXBwZXI8
JHBvZFR5cGU+KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9XG4iKTsKKyAg
ICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFNWR0VsZW1lbnQqIGNvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH1cblxuIik7CisgICAgICAgICMgICAg
cHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsKKyAgICAgICAgIyAgICBwdXNoKEBo
Qm9keUludGVybmFsLCAiICAgIFJlZlB0cjxTVkdFbGVtZW50PiBtX2NvbnRleHQ7XG4iKTsKKyAg
ICAgICAgIyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFJlZlB0cjxKU1NWR1BPRFR5cGVX
cmFwcGVyPCRwb2RUeXBlPiA+IG1faW1wbDtcbiIpOworICAgICAgICAjfSBlbHNpZiAoSXNTVkdU
eXBlTmVlZGluZ0NvbnRleHRQYXJhbWV0ZXIoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICMg
ICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wbCgpIGNvbnN0
IHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfVxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZXh0LmdldCgpOyB9XG5cbiIpOworICAgICAgICAjICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICJw
cml2YXRlOlxuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICBSZWZQ
dHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0O1xuIik7CisgICAgICAgICMgICAgcHVzaChAaEJvZHlJ
bnRlcm5hbCwgIiAgICBSZWZQdHI8JGltcGxDbGFzc05hbWUgPiBtX2ltcGw7XG4iKTsKKyAgICAg
ICAgI30gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBoQm9keUludGVybmFsLCAiICAgIFdlYkNv
cmU6OiRpbnRlcmZhY2VOYW1lKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdldCgpOyB9
XG5cbiIpOworICAgICAgICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgInByaXZhdGU6XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgUmVmUHRyPFdlYkNvcmU6OiRp
bnRlcmZhY2VOYW1lPiBtX2ltcGw7XG4iKTsKKyAgICAgICAgI30KKyAgICB9IGVsc2lmICgkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7
CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgV2ViQ29yZTo6JGludGVyZmFjZU5h
bWUqIGltcGwoKSBjb25zdFxuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAg
e1xuIik7CisgICAgICAgIHB1c2goQGhCb2R5SW50ZXJuYWwsICIgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZSo+KEJhc2U6OmltcGwoKSk7XG4iKTsKKyAg
ICAgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiAgICB9XG4iKTsKKyAgICB9CisgICAgcHVzaChA
aEJvZHlJbnRlcm5hbCwgIn07XG4iKTsKKworICAgICMgQ29uc3RydWN0b3IKKyAgICBwdXNoKEBj
Qm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9OjpHRE9NJGludGVyZmFjZU5hbWUoUGFzc1JlZlB0
cjxXZWJDb3JlOjokaW50ZXJmYWNlTmFtZT4gaW1wbCIgLiAoJG5lZWRzU1ZHQ29udGV4dCA/ICIs
IFNWR0VsZW1lbnQqIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOworICAgIGlmICgkaW50ZXJmYWNl
TmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICA6bV9pbXBs
KGltcGwpXG4iKTsKKyAgICB9IGVsc2lmICgkaGFzUGFyZW50KSB7CisgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgIDogJHBhcmVudEdJZmFjZU5hbWUoaW1wbCIgLiAoJHBhcmVudE5lZWRzU1ZHQ29u
dGV4dCA/ICIsIGNvbnRleHQiIDogIiIpIC4gIilcbiIpIGlmICgkaW50ZXJmYWNlTmFtZSBuZSAi
RE9NV2luZG93Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgOiAk
cGFyZW50R0lmYWNlTmFtZSgpXG4iKSA7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICwgbV9j
b250ZXh0KGNvbnRleHQpXG4iKSBpZiAkbmVlZHNTVkdDb250ZXh0OworICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICAsIG1faW1wbChpbXBsKVxuIik7CisgICAgfQorCisgICAgcHVzaChAY0JvZHks
ICJ7XG4iKTsKKyAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisKKyAgICAjIERlc3RydWN0b3IK
KyAgICBpZiAoISRoYXNQYXJlbnQgb3IgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSkg
eworICAgICAgICBwdXNoKEBjQm9keSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRl
cmZhY2VOYW1lKClcbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIntcbiIpOworCisgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIG1faW1wbC5nZXQoKS0+ZGVyZWYoKTtcbiIpOworICAgICAgICAj
aWYgKCRwb2RUeXBlKSB7CisgICAgICAgICMgICAgbXkgJGFuaW1hdGVkVHlwZSA9ICRpbXBsQ2xh
c3NOYW1lOworICAgICAgICAjICAgICRhbmltYXRlZFR5cGUgPX4gcy9TVkcvU1ZHQW5pbWF0ZWQv
OworCisgICAgICAgICMgICAgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVyCisgICAgICAg
ICMgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkYW5pbWF0ZWRUeXBl
KSBhbmQgJHBvZFR5cGUgbmUgImZsb2F0IikgeworICAgICAgICAjICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICBKU1NWR0R5bmFtaWNQT0RUeXBlV3JhcHBlckNhY2hlPCRwb2RUeXBlLCAkYW5pbWF0
ZWRUeXBlPjo6Zm9yZ2V0V3JhcHBlcihtX2ltcGwuZ2V0KCkpO1xuIik7CisgICAgICAgICMgICAg
fQorICAgICAgICAjfQorICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChtX2ltcGwuZ2V0KCkpO1xuIik7CisKKyAg
ICAgICAgcHVzaChAY0JvZHksICJcbn1cblxuIik7CisgICAgfQorCisgICAgIyBEb2N1bWVudCBu
ZWVkcyBhIHNwZWNpYWwgZGVzdHJ1Y3RvciBiZWNhdXNlIGl0J3MgYSBzcGVjaWFsIGNhc2UgZm9y
IGNhY2hpbmcuIEl0IG5lZWRzCisgICAgIyBpdHMgb3duIHNwZWNpYWwgaGFuZGxpbmcgcmF0aGVy
IHRoYW4gcmVseWluZyBvbiB0aGUgY2FjaGluZyB0aGF0IE5vZGUgbm9ybWFsbHkgZG9lcy4KKyAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRvY3VtZW50IikgeworICAgICAgICBwdXNoKEBjQm9k
eSwgIkdET00ke2ludGVyZmFjZU5hbWV9Ojp+R0RPTSRpbnRlcmZhY2VOYW1lKClcbiIpOworICAg
ICAgICBwdXNoKEBjQm9keSwgIntcbiAgICBXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6
OmZvcmdldERPTU9iamVjdChzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4o
aW1wbCgpKSk7XG59XG5cbiIpOworICAgIH0KKworICAgICRpbXBsSW5jbHVkZXN7Imdkb20vJHtw
YXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFt
ZX0uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJHRE9NT2JqZWN0LmgifSA9IDE7CisKKyAg
ICAkaW1wbFR5cGVkZWZzeyIkY2xhc3NOYW1lIn0gPSAxOworICAgICRpbXBsVHlwZWRlZnN7IiR7
Y2xhc3NOYW1lfUNsYXNzIn0gPSAxOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7Cisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3
ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRwcml2YXRlLmg+
IAorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlv
bmFsICovCisjaW5jbHVkZSAiTm9kZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlv
bmFsICovCisjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRo
aXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNQYXR0ZXJuLmgiIC8qIHl1a2s6IFRPRE8g
LSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5oIiAvKiB5
dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzU3R5bGUu
aCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFs
ICovCisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oPiAvKiB5dWtrOiBUT0RP
IC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRUYXJnZXRO
b2RlLmg+IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlIDxn
ZG9tL0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlLmg+IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRo
aXMgb3B0aW9uYWwgb24gRXZlbnRUYXJnZXQqLworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0u
aCIKKyNpbmNsdWRlIDxnZG9tLyR7aGRyTmFtZX0uaD4KKyNpbmNsdWRlIDxnZG9tLyR7aGRyTmFt
ZX1Qcml2YXRlLmg+CisjaW5jbHVkZSA8Z2RvbS8ke2hkck5hbWV9SW50ZXJuYWwuaD4KKyNpbmNs
dWRlIDxnZG9tLyR7aGRyTmFtZX1wcm9wcy5oPgorCisjaW5jbHVkZSAiZ2RvbS9HU3RyaW5nQ29u
dmVydC5oIgorCisjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1ZGUgIkV2ZW50
LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAi
Q1NTUnVsZS5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiU3R5bGVT
aGVldC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAid2Via2l0bWFyc2hhbC5o
IgorI2luY2x1ZGUgPGdkb20vR2RvbUV2ZW50Lmg+CisKKworRU9GCisKKyAgICBwdXNoKEBjQm9k
eVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKwor
JHtoYWNrRGVjbHN9CisKK0dfQkVHSU5fREVDTFMKKworR19ERUZJTkVfVFlQRSgke2NsYXNzTmFt
ZX0sICR7bGNhc2VfaWZhY2VuYW1lfSwgJHtwYXJlbnRHT2JqVHlwZX0pOworCisvKgorc3RydWN0
IF8ke2NsYXNzTmFtZX1Qcml2YXRlIHsKKyAgICBjbGFzcyBXZWJDb3JlOjoke2ludGVyZmFjZU5h
bWV9ICppdGVtOworfTsKKworI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX1BSSVZBVEUob2Jq
KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBz
fSwgJHtjbGFzc05hbWV9UHJpdmF0ZSkpCisqLworR19FTkRfREVDTFMKK1dlYkNvcmU6OiR7aW50
ZXJmYWNlTmFtZX0gKgorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF9wcml2YXRlKCR7Y2xhc3NOYW1l
fSAqcmVxdWVzdCkKK3sKK0VPRgorCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQp
OworCisgICAgICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworICAgIEdET00ke2ludGVyZmFj
ZU5hbWV9ICpyZXM7CisgICAgcmVzID0gc3RhdGljX2Nhc3Q8R0RPTSR7aW50ZXJmYWNlTmFtZX0q
PihnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUoR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpKSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihyZXMt
PmltcGwoKSk7CitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAg
ICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1lUHJlZml4ID0gJGxjYXNlX2lmYWNl
bmFtZTsgCisgICAgU0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUt
PmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90
eXBlKTsKKyAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworICAg
ICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgICAgICBuZXh0IFNL
SVBQUk9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgJGltcGxJbmNsdWRlc3si
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVE
ZWNsYXJhdGlvbiI7CisKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRw
cm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisgICAg
ICAgICAgICAKKyAgICAgICAgYWRkUHJvcEluY0hkcigkcHJvcF90eXBlKTsKKworICAgICAgICAj
cHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSAkdHlwZVxuJGZ1bmN0aW9uTmFtZVByZWZpeCIg
LiAiX3Byb3BfZ2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworICAg
ICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSB2b2lkXG4kZnVuY3Rpb25OYW1lUHJl
Zml4IiAuICJfcHJvcF9zZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZywgJHR5cGUiIC4g
InZhbHVlKTtcblxuIik7CisgICAgfQorCisgICAgIyBQcm9wZXJ0aWVzCisgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7Cit9CisKK0dfQkVHSU5fREVDTFMKKworZW51bSB7CisgICAgQlJPV1NF
Ul9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25h
bHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCitlbnVtIHsKKyAgICBQUk9QXzAsCitFT0YKKyAg
ICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICBteSBAdHh0X2luc3RhbGxf
cHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X3NldF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfZ2V0
X3Byb3BzID0gKCk7CisKKyAgICBteSAkcHJpdl9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNlTmFt
ZSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworCisgICAgbXkgJHR4dF9n
ZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRf
cHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgIEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3Bl
YyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShv
YmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBw
dXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X3By
b3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3Bl
cnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNw
ZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30o
b2JqZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAg
cHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisKKyAgICBTS0lQRU5VTTogZm9y
ZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAg
bXkgJHByb3BfbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgbXkg
JHNldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9wX25hbWUp
OworICAgICAgICBteSAkZ2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmly
c3QoJHByb3BfbmFtZSk7CisKKyAgICAgICAgbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6ZSgkcHJv
cF9uYW1lKTsKKyAgICAgICAgbXkgJHByb3BDYXBzID0gdWMoJHByb3BOYW1lKTsKKyAgICAgICAg
bXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkg
JHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJHtwcm9wRW51bX0gPSAi
UFJPUF8ke3Byb3BDYXBzfSI7CisgICAgICAgIG15ICR7cHJvcF9ndHlwZX0gPSBkZWNhbWVsaXpl
KCRwcm9wX3R5cGUpOworICAgICAgICBpZiAoJHByb3BfZ3R5cGUgZXEgImV2ZW50X3RhcmdldCIp
IHsKKyAgICAgICAgICAgICRwcm9wX2d0eXBlID0gImV2ZW50X3RhcmdldF9ub2RlIjsKKyAgICAg
ICAgfQorICAgICAgICBteSAke3Byb3BHVHlwZX0gPSB1YygkcHJvcF9ndHlwZSk7CisgICAgICAg
IG15ICRsY2FzZV9ndHlwZW5hbWUgPSAiZ2RvbV8iIC4gJHByb3BfZ3R5cGU7CisKKyAgICAgICAg
bXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbSJ9OworCisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5V
TTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFy
YXRpb24iOworICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3JhcmlseSgkdHlwZSwgJHByb3BfdHlw
ZSkpIHsKKyAgICAgICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICBwdXNoKEBjQm9keVByaXYsICIgICAgJHtwcm9wRW51bX0sXG4iKTsKKworICAg
ICAgICBteSAkZ3R5cGUgPSBHZXRQcm9wR1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICRn
cGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBREFCTEUiOworICAgICAgICBteSAkd3JpdGVhYmxlID0g
JGF0dHJpYnV0ZS0+dHlwZSAhfiAvXnJlYWRvbmx5LzsKKyAgICAgICAgbXkgJGNvbnN0ID0gInJl
YWQtb25seSAiOworICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAkY3VzdG9tKSB7CisgICAgICAg
ICAgICAkY29uc3QgPSAicmVhZC1vbmx5IChkdWUgdG8gY3VzdG9tIGZ1bmN0aW9ucyBuZWVkZWQg
aW4gZ2RvbXdlYmtpdCkiOworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQor
ICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAhJGN1c3RvbSkgeworICAgICAgICAgICAgJGdwYXJh
bWZsYWcgPSAiR19QQVJBTV9SRUFEV1JJVEUiOworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQt
d3JpdGUgIjsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRfZ3R5cGUgPSAkZ3R5cGU7CisgICAg
ICAgIGlmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICRfZ3R5cGUgPSAidWlu
dCI7ICMgeXVrLgorICAgICAgICB9CisgICAgICAgICRuaWNrID0gZGVjYW1lbGl6ZSgiJHtpbnRl
cmZhY2VOYW1lfV8ke3Byb3BOYW1lfSIpOworICAgICAgICAkbG9uZyA9ICIke2NvbnN0fSAke3R5
cGV9ICR7aW50ZXJmYWNlTmFtZX0uJHtwcm9wTmFtZX0iOworICAgICAgICBteSAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkg
KGdfa2xhc3MsICR7cHJvcEVudW19LAorICAgICAgICAgICAgZ19wYXJhbV9zcGVjXyR7X2d0eXBl
fSAoIiR7cHJvcE5hbWV9IiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICIkbmljayIsIC8q
IHNob3J0IGRlc2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAgIiRsb25nIiwgLyogbG9uZ2Vy
IC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCitFT0YKKyAgICAg
ICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSAiLyogVE9ETyEgJGd0eXBlICovXG4iOworCisgICAgICAgIGlm
ICgkd3JpdGVhYmxlKSB7CisKKyAgICAgICAgICAgIG15ICRvayA9IDA7CisgICAgICAgICAgICBt
eSAkY29udmVydF9mbiA9ICIiOworICAgICAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikg
eworICAgICAgICAgICAgICAgICRjb252ZXJ0X2ZuID0gIldlYkNvcmU6OlN0cmluZzo6ZnJvbVVU
RjgiOworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBlbHNpZiAoJGd0eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgICAgIGlmICgke2lu
dGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0
IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAg
ICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlw
ZSBlcSAiZmxvYXQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVy
ZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBz
dHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAk
b2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAidWludDY0IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgInVsb25nIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFj
ZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVm
ZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sg
PSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
bG9uZyIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2lu
ZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQg
aXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQiKSB7CisgICAgICAg
ICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0
IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgInVjaGFyIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9
IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICMgWFhYIFRPRE8gLSBza2lwIExvY2F0aW9uCisgICAg
ICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkxvY2F0aW9uIikgeworICAgICAgICAgICAg
ICAgICRvayA9IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgkb2spIHsKKyAg
ICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06
XG4gICAge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNl
dHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIg
ICAgICAgIGdzZWxmLT5zZXQke3NldHByb3BfbmFtZV9mbn0oJHtjb252ZXJ0X2ZufShnX3ZhbHVl
X2dldF8kZ3R5cGUgKHZhbHVlKSkiKTsKKworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRf
cHJvcHMsICIsIGVjIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiKTtcbiIpOworCisgICAgICAgICAgICAg
ICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgYnJlYWs7XG4gICAgfVxuIik7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAg
Y2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKworICAgICAgICBteSAkZXhjZXB0aW9uID0g
IiI7CisgICAgICAgIGlmIChAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7CisgICAg
ICAgICAgICAkZXhjZXB0aW9uID0gImVjIjsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJv
cHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAg
IH0KKworICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkcG9zdF9jb252
ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRkb25lID0gMDsKKyAgICAgICAgaWYgKCRndHlwZSBl
cSAic3RyaW5nIikgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAg
Z192YWx1ZV90YWtlX3N0cmluZyAodmFsdWUsIEdTdHJpbmdDb252ZXJ0KGdzZWxmLT4ke2dldHBy
b3BfbmFtZV9mbn0oJHtleGNlcHRpb259KSkpO1xuIik7CisgICAgICAgICAgICAkZG9uZSA9IDE7
CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAg
ICAgICAgIyRjb252ZXJ0X2ZuID0gIldURjo6Z2V0UHRyKCR7bGNhc2VfZ3R5cGVuYW1lfV9nZXRf
cHJpdmF0ZSgiOworICAgICAgICAgICAgIyRjb252ZXJ0X2ZuID0gR2V0UHJpdkZuKCRpbnRlcmZh
Y2VOYW1lLCAke2xjYXNlX2d0eXBlbmFtZX0sICJnc2VsZiIsICJzZWxmIik7CisgICAgICAgICAg
ICAjJGNvbnZlcnRfZm4gPSAiJHtsY2FzZV9ndHlwZW5hbWV9X2dldF9wcml2YXRlKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PigiOworICAgICAgICAgICAgIyRwb3N0X2NvbnZlcnRf
Zm4gPSAiKSI7CisgICAgICAgICAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBl
OworICAgICAgICAgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICBQYXNzUmVm
UHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4gcHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2Zu
fSgke2V4Y2VwdGlvbn0pOworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QgKHZhbHVlLCBXZWJD
b3JlOjp0b0dET00ocHRyLmdldCgpKSk7CitFT0YKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRf
cHJvcHMsICR0eHRfZ2V0X3Byb3ApOworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKCEkZG9uZSkgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9w
cywgIiAgICAgICAgZ192YWx1ZV9zZXRfJF9ndHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2Vs
Zi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xu
Iik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBi
cmVhaztcbiAgICB9XG4iKTsKKworICAgICAgICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nh
cnk/Pz8KKyAgICAgICAgIyBjYW4gaXQgYmUgZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVj
X2d0eXBlCisgICAgICAgICMgYW5kIGdldHRpbmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUg
bWluLW1heCBmb3IgZXhhbXBsZT8KKyAgICAgICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAg
ICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBH
X01JTklOVCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBt
YXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5z
dGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQg
Ki8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZM
T0FULCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4
ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFs
bF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAv
KiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAg
ICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgk
Z3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwg
IkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAg
ICAgIEdfTUFYVUlOVDY0LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
ZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7Cisg
ICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAg
IDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXgg
Ki8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWlu
ICovCisgICAgICAgICAgICAgICAgR19NQVhMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAg
ICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAidWludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7Cisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFY
VUlOVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8
ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAg
ICAgICAgICAgICAgIEdfTUFYSU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAg
ICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIi
KSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAg
ICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAv
KiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHRE9NX1RZ
UEVfJHtwcm9wR1R5cGV9LCAvKiBnb2JqZWN0IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAg
ICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgKEdQYXJhbUZs
YWdzKSR7Z3BhcmFtZmxhZ30pKTsKKworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3By
b3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisKKworICAgIH0KKworICAgIHB1c2goQGNCb2R5UHJp
diwgIn07XG5cbiIpOworCisKKyAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CisgICBkZWZh
dWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBw
cm9wX2lkLCBwc3BlYyk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KK0VPRgorICAgIHB1c2go
QHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgJHR4dF9zZXRfcHJvcCA9IDw8
ICJFT0YiOworICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BF
UlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9
CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKworICAgIG15
ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8ICJFT0YiOworICAgIGNhc2UgUFJPUF9BR0U6CisgICAg
ICAgIHNlbGYtPmFnZSA9IGdfdmFsdWVfZ2V0X2ludCAodmFsdWUpOworICAgICAgICBicmVhazsK
KworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgc2Vs
Zi0+YWdlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgKyAgIGdfdmFsdWVfaW5pdCgmcGFy
YW1zWzBdLCBHX1RZUEVfRlJPTV9JTlNUQU5DRShvYmplY3QpKTsKKyAgICAgICAgKyAgIGdfdmFs
dWVfc2V0X2luc3RhbmNlKCZwYXJhbXNbMF0sIChncG9pbnRlcilvYmplY3QpOworCitFT0YKKwor
ICAgICMgVE9ETzogd29yayBvdXQgaWYgaXQncyBhcHByb3ByaWF0ZSB0byBzcGxpdCB0aGlzIGlu
dG8gbWFueSBkaWZmZXJlbnQKKyAgICAjIHNpZ25hbHMgZS5nLiAiY2xpY2siIGV0Yy4KKyAgICBt
eSAkdHh0X2luc3RhbGxfc2lnbmFscyA9ICIiOworCisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJET01XaW5kb3ciIG9yCisgICAgICAgICRpbnRlcmZhY2VOYW1lIGVxICJYTUxIdHRwUmVxdWVz
dCIpIHsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3NpZ25hbHMgPSA8PCAiRU9GIjsKKyAgICBldmVu
dF9zaWduYWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwK
KyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocmVxdWVzdENsYXNzKSwKKyAgICAgICAgKEdTaWdu
YWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04gfAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVEICApLAor
ICAgICAgICAwLAorICAgICAgICBOVUxMLAorICAgICAgICBOVUxMLAorICAgICAgICB3ZWJraXRf
bWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAgR19UWVBFX05PTkUsIDIsCisg
ICAgICAgIEdET01fVFlQRV9FVkVOVCwgR19UWVBFX0JPT0xFQU4pOworRU9GCisgICAgfQorCisg
ICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2Vu
YW1lfV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLyoke2NsYXNzTmFtZX0qIHJl
cXVlc3QgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsqLworICAgIC8qJHtjbGFzc05hbWV9UHJp
dmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7Ki8KKworICAgIC8qR09iamVjdENsYXNzICpwYXJl
bnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVlayAoZ190eXBlX3BlZWtfcGFyZW50ICgke3BhcmVu
dEdPYmpUeXBlfSkpOyovCisKKyAgICAvKiBGcmVlIGFueSBtZW1vcnkgb3IgY2xvc2UgYW55IGZp
bGVzICovCisKKyAgICAvKnBhcmVudF9jbGFzcy0+IGZpbmFsaXplIChvYmplY3QpOyovCisKKyAg
ICBHX09CSkVDVF9DTEFTUygke2xjYXNlX2lmYWNlbmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxp
emUob2JqZWN0KTsKK30KKworQHR4dF9zZXRfcHJvcHMKKworQHR4dF9nZXRfcHJvcHMKKworc3Rh
dGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2NsYXNzX2luaXQoJHtjbGFzc05hbWV9Q2xhc3Mq
IHJlcXVlc3RDbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3MgKmdfa2xhc3MgPSBHX09CSkVDVF9D
TEFTUyAocmVxdWVzdENsYXNzKTsKKyAgICBnX2tsYXNzLT5maW5hbGl6ZSA9ICR7bGNhc2VfaWZh
Y2VuYW1lfV9maW5hbGl6ZTsKKyAgICBnX2tsYXNzLT5zZXRfcHJvcGVydHkgPSAke2xjYXNlX2lm
YWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9mbjsKKyAgICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAk
e2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0eV9mbjsKKworQHR4dF9pbnN0YWxsX3Byb3Bz
CisKKyR0eHRfaW5zdGFsbF9zaWduYWxzCisKKyAgICAvKmdfdHlwZV9jbGFzc19yZW1vdmVfcHJp
dmF0ZShyZXF1ZXN0Q2xhc3MsIHNpemVvZigke2NsYXNzTmFtZX1Qcml2YXRlKSk7Ki8KK30KKwor
c3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0
KQoreworICAgIC8qJHtjbGFzc05hbWV9UHJpdmF0ZSogcHJpdiA9IEdET01fJHtjbHNDYXBzfV9H
RVRfUFJJVkFURShyZXF1ZXN0KTsKKyAgICByZXF1ZXN0LT5wcml2ID0gcHJpdjsqLworfQorCitF
T0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsSW5j
bHVkZXN7Imdkb20vR2RvbSR7aW50ZXJmYWNlTmFtZX1JbnRlcm5hbC5oIn0gPSAxOworICAgICRp
bXBsQ29udGVudCA9IDw8ICJFT0YiOworCisjaWZuZGVmICR7Z3VhcmR9X1BSSVZfCisjZGVmaW5l
ICR7Z3VhcmR9X1BSSVZfCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9t
LyR7cGFyZW50SGRyTmFtZX0uaCIKKyNpbmNsdWRlICJHRE9NT2JqZWN0LmgiCisvKiNpbmNsdWRl
ICJnZG9tLyR7cGFyZW50SGRyTmFtZX1Qcml2YXRlLmgiKi8KKy8qR19CRUdJTl9ERUNMUyovCisv
KmNsYXNzIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX07Ki8KKyNpbmNsdWRlICIke2ludGVyZmFj
ZU5hbWV9LmgiCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKwor
ICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworLy9uYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEdET00ke2ludGVyZmFjZU5hbWV9IDogcHVibGljICR7cGFyZW50R0lmYWNlTmFtZX0gewor
CitwdWJsaWM6CisgICAgR0RPTSR7aW50ZXJmYWNlTmFtZX0oV2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfSogaW1wbCkgOiAkcGFyZW50R0lmYWNlTmFtZX0oaW1wbCkKKyAgICB7IGltcGwtPnJlZigp
OyB9CisgICAgfkdET00ke2ludGVyZmFjZU5hbWV9KCkgeyBtX2ltcGwtPmRlcmVmKCk7IH0KKwor
ICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2lt
cGw7IH0KKworCitwcml2YXRlOgorICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKm1faW1w
bDsKK307CisKK0VPRgorCisgICAgICAgICNwdXNoKEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7
CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsKKworV2ViQ29y
ZTo6JHtpbnRlcmZhY2VOYW1lfSAqCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUoJHtj
bGFzc05hbWV9ICpyZXF1ZXN0KTsKKworLypHX0VORF9ERUNMUyovCisKKyNlbmRpZiAvKiAke2d1
YXJkfV9QUklWXyAqLworCitFT0YKKworICAgICNyZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJD
b3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oKFdlYkNvcmU6Ok5vZGUqKShyZXMpKTsKKyAgICAgICAg
cHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAgICAgICNpZiAoJHBhcmFtSURM
VHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBj
b3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgIyAgICAkaW1wbEluY2x1ZGVzeyJKU0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0gPSAxOworICAgICAgICAjfSBlbHNlIHsKKyAgICAg
ICAgIyAgICAkaW1wbEluY2x1ZGVzeyRpbmNsdWRlSGRyfSA9IDE7CisgICAgICAgICN9CisgICAg
ICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGlt
cGxJbmNsdWRlc3siZ2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oIn0gPSAxOworCisgICAgICAg
IExPT1A6IGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewor
ICAgICAgICAgICAgI215ICRmdW5jdGlvbk5hbWUgPSBkZWNhbWVsaXplKCRjbGFzc05hbWUpIC4g
Il8iIC4gZGVjYW1lbGl6ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgICAg
ICAgICAgbXkgJGZuX3NpZ19uYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAg
ICAgICAgICAgICAgbXkgJGZuX3NpZ190eXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7
CisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXpl
KCRpbnRlcmZhY2VOYW1lKSAuICJfIiAuIGRlY2FtZWxpemUoJGZuX3NpZ19uYW1lKTsKKyAgICAg
ICAgICAgICAgICBteSAkcmV0dXJuVHlwZSA9IEdldEdUeXBlKCRmbl9zaWdfdHlwZSk7CisgICAg
ICAgICAgICAgICAgbXkgJHJldF9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkZm5fc2ln
X3R5cGUpOworCisgICAgICAgICAgICAgICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUg
KnRoaXoiOworCisgICAgICAgICAgICAgICAgbXkgJGNhbGxfaW1wbF9wYXJhbXMgPSAiIjsKKyAg
ICAgICAgICAgICAgICBteSAkZ2RvbV9mbl9wcmVmaXggPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgk
Zm5fc2lnX3R5cGUpOworCisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdk
b21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3NldF9wcm9wZXJ0eSIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgIyByZXNlcnZlZCBuYW1lIGNsYXNoIGluIGdsaWIhCisgICAgICAgICAgICAgICAgICAg
ICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X2Nzc19wcm9w
ZXJ0eSI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICMgWFhYIHNraXAgQ29t
cGFyZUhvdyBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX3JhbmdlX2NvbXBhcmVfYm91bmRhcnlfcG9pbnRzIikgeworICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIENvbXBhcmVI
b3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rp
b24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExP
T1A7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgIyBYWFggc2tpcCBTVkdE
b2N1bWVudCBmdW5jdGlvbnMgZm9yIG5vdworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlw
ZSBlcSAiR2RvbVNWR0RvY3VtZW50ICoiKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhC
b2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5j
dGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxu
LyogWFhYIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1l
fSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCBMT09QOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgICMgWFhYIHNraXAgc29tZSBjdXN0b20gZnVuY3Rpb25z
IGZvciBub3cKKyAgICAgICAgICAgICAgICBteSAkaXNfY3VzdG9tX2ZuID0gJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsKKyAgICAgICAgICAgICAg
ICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9odG1sX2NvbGxlY3Rpb25faXRlbSIgfHwKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9odG1sX2NvbGxlY3Rpb25f
bmFtZWRfaXRlbSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2Rv
bV94bWxfaHR0cF9yZXF1ZXN0X29wZW4iIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlv
bk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9zZXRfcmVxdWVzdF9oZWFkZXIiIHx8Cisg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVz
dF9zZW5kIiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3ht
bF9odHRwX3JlcXVlc3RfZ2V0X3Jlc3BvbnNlX2hlYWRlciIgfHwKKyAgICAgICAgICAgICAgICAg
ICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X292ZXJyaWRlX21pbWVf
dHlwZSIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxf
aHR0cF9yZXF1ZXN0X2Rpc3BhdGNoX2V2ZW50IiB8fAorICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb25OYW1lIGVxICJnZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZSIpIHsKKyAgICAgICAgICAg
ICAgICAgICAgJGlzX2N1c3RvbV9mbiA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAjJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2FkZF9l
dmVudF9saXN0ZW5lciIgfHwKKyAgICAgICAgICAgICAgICAgICAgIyRmdW5jdGlvbk5hbWUgZXEg
Imdkb21feG1sX2h0dHBfcmVxdWVzdF9yZW1vdmVfZXZlbnRfbGlzdGVuZXIiIHx8CisgICAgICAg
ICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUiICYmIAorICAgICAgICAg
ICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAK
KyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9j
aGlsZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9k
ZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5l
ICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9kZSIgJiYgCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQi
ICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fs
a2VyX2xhc3RfY2hpbGQiICYmIAorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5l
ICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmciICYmIAorICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYg
CisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJf
cHJldmlvdXNfbm9kZSIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUg
Imdkb21fdHJlZV93YWxrZXJfbmV4dF9ub2RlIiAmJiAKKyAgICAgICAgICAgICAgICAgICAgJGZ1
bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX3ByZXZpb3VzX25vZGUiKSB7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0
aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
Y0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICov
XG5cbiIpOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfSkgeworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFt
LT50eXBlOworICAgICAgICAgICAgICAgICAgICBhZGRJbmNCb2R5KCRwYXJhbUlETFR5cGUpOwor
ICAgICAgICAgICAgICAgICAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAg
ICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsK
KworICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25TaWcgLj0gIiwgJHBhcmFtVHlwZSAkcGFy
YW1OYW1lIjsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJ
c0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgk
cGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1J
RExUeXBlIG5lICJET01PYmplY3QiICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBh
cmFtSURMVHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tJHtwYXJhbUlETFR5cGV9UHJpdmF0ZS5oIn0gPSAx
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7
cGFyYW1JRExUeXBlfUludGVybmFsLmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7ICMgdGhpcyBpc24ndCBz
dHJpY3RseSBuZWNlc3NhcnkgYnV0IG9uZSBvZiB0aGUgYXV0by1nZW5lcmF0ZWQgZmlsZXMgbmVl
ZGVkIGl0IHNvLi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUgfHwgKCRw
YXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAk
cGFyYW1OYW1lID0gIl9nXyIgLiAkcGFyYW1OYW1lOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIGlmICgkY2FsbF9pbXBsX3BhcmFtcykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyA9ICIkcGFyYW1OYW1lIjsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFkZEluY0hk
cigkZm5fc2lnX3R5cGUpOworICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7
CisgICAgICAgICAgICAgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtmbl9zaWdfdHlwZX0i
fSA9IDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5U
eXBlIG5lICJ2b2lkIikgeworCisgICAgICAgICAgICAgICAgICAgIGlmICgkcmV0X2lzX2Nsc190
eXBlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01P
YmplY3QiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6
KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyJnZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7Zm5fc2lnX3R5cGV9
UHJpdmF0ZS5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJnZG9tL0dkb20ke2ZuX3NpZ190eXBlfUludGVybmFsLmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7Zm5fc2ln
X3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFhYWCBza2lwIGN1c3RvbSBmdW5jdGlv
bnMgZm9yIG5vdworICAgICAgICAgICAgICAgICMgYnV0IHNraXAgZnJvbSBoZXJlIHRvIGFsbG93
IHNvbWUgaGVhZGVycyB0byBiZSBjcmVhdGVkCisgICAgICAgICAgICAgICAgIyBmb3IgYSBzdWNj
ZXNzZnVsIGNvbXBpbGUuCisgICAgICAgICAgICAgICAgaWYgKCRpc19jdXN0b21fZm4gJiYKKyAg
ICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGls
ZCIgJiYgCisgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9p
bnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIpIHsKKyAgICAgICAgICAgICAgICAgICAg
cHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5h
bWV9ICovXG5cbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhY
IFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAg
ICAgICAgICAgICAgIG5leHQgTE9PUDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICBteSAkX3JldHVyblR5cGUgPSAkcmV0dXJuVHlwZTsKKyAgICAgICAgICAgICAgICBteSAk
ZG9tb2JqVHlwZSA9ICJHRE9NIi4kZm5fc2lnX3R5cGU7CisgICAgICAgICAgICAgICAgaWYgKCRm
bl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAgICAgICAgICAgICAkZnVuY3Rp
b25OYW1lIGVxICdnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2NvbnRleHQnKSB7CisgICAg
ICAgICAgICAgICAgICAgICMgWFhYIEhBQ0shCisgICAgICAgICAgICAgICAgICAgICRfcmV0dXJu
VHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dCAqJzsKKyAgICAgICAgICAgICAgICAg
ICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRleHQnOworICAgICAgICAg
ICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRl
eHQnOworICAgICAgICAgICAgICAgICAgICBuZXh0IExPT1A7ICMgWFhYIC0gdG9vIGludm9sdmVk
IGZvciBub3cuICBza2lwIGl0LgorICAgICAgICAgICAgICAgICAgICAjIG11c3QgY29udmVydCB0
byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQorICAg
ICAgICAgICAgICAgICAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdET01E
b21PYmplY3QKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICAg
ICAgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNf
Y29udGV4dCcpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggSEFDSyEKKyAgICAgICAgICAg
ICAgICAgICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgKic7
CisgICAgICAgICAgICAgICAgICAgICRkb21vYmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQnOworICAgICAgICAgICAgICAgICAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9j
YW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZCc7CisgICAgICAgICAgICAgICAgICAgIG5leHQgTE9P
UDsgIyBYWFggLSB0b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICAgICAg
ICAgICAgICMgbXVzdCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29k
ZSB0byBmaW5kIG91dCBob3cpCisgICAgICAgICAgICAgICAgICAgICMgYmV0dGVyOiB3b3JrIG91
dCBob3cgdG8gY3JlYXRlIGEgR0RPTURvbU9iamVjdAorICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgcHVzaChAaEJvZHksICJXRUJLSVRf
QVBJICRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKTtcblxuIik7CisK
KyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiRfcmV0dXJuVHlwZVxuJGZ1bmN0aW9uTmFt
ZSAoJGZ1bmN0aW9uU2lnKVxue1xuIik7CisKKyAgICAgICAgICAgICAgICBpZiAoJHJldHVyblR5
cGUgbmUgInZvaWQiKSB7CisgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBw
cm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHRoaXosIDApO1xuIik7CisgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5f
aWZfZmFpbCAodGhpeik7XG4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9ICgk
e2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3ByaXZhdGUodGhpeikpO1xuIik7CisgICAgICAgICAgICAg
ICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAjIFhY
WCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgICAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtcbiIpOwor
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGl0ZW0pO1xuIik7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9
KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJh
bS0+bmFtZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0t
PnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRj
b2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAg
ICAgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1J
RExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5cGUpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAg
ICAgICAgICAgICMgICAgJGltcGxUeXBlZGVmc3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoISRwYXJhbVR5
cGVJc1ByaW1pdGl2ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBl
IG5lICJ2b2lkIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJl
dHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICRyZXR1cm5QYXJhbU5hbWUgPSAi
IjsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9KSB7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0t
PnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFy
YW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxp
emUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1faXNfY2xz
X3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAgICAgICAg
ICAgICMgSEFDSyEKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdk
b21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICRw
YXJhbS0+bmFtZSBlcSAidXJsIikgeworCisgICAgICAgICAgICAgICAgICAgICAgICAjJGltcGxJ
bmNsdWRlc3siS1VSTC5oIn0gPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgV2ViQ29yZTo6S1VSTCBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpLVVJMKCRw
YXJhbU5hbWUpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgZWxzaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OlN0cmluZyBfZ18ke3BhcmFtTmFt
ZX0gPSBXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlw
ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8i
IC4gZGVjYW1lbGl6ZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICNw
dXNoKEBjQm9keSwgIiAgICBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9
PiAqIF9nXyR7cGFyYW1OYW1lfSA9IFdURjo6UmVmUHRyPCR7cGFyYW1fZ2RvbV9mbn1fZ2V0X3By
aXZhdGUoJHBhcmFtTmFtZSk+O1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHBh
cmFtSURMVHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oIn0gPSAx
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6
OkV2ZW50VGFyZ2V0Tm9kZSAqIF9nXyR7cGFyYW1OYW1lfSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OkV2ZW50VGFyZ2V0Tm9kZSo+KGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUoJHBh
cmFtTmFtZSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7cGFyYW1J
RExUeXBlfSAqIF9nXyR7cGFyYW1OYW1lfSA9ICgke3BhcmFtX2dkb21fZm59X2dldF9wcml2YXRl
KCRwYXJhbU5hbWUpKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92
YWxfaWZfZmFpbCAoX2dfJHtwYXJhbU5hbWV9LCAwKTtcbiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBnX3JldHVybl9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIl9nXyIuJHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJSZXR1cm4ifTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBteSAkYXNzaWduID0gIiI7CisgICAgICAgICAgICAgICAgbXkgJGFzc2lnbl9wcmUg
PSAiIjsKKyAgICAgICAgICAgICAgICBteSAkYXNzaWduX3Bvc3QgPSAiIjsKKyAgICAgICAgICAg
ICAgICAkZ19yZXMgPSAwOworICAgICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9p
ZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJHJldF9p
c19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbiA9ICJQYXNzUmVm
UHRyPFdlYkNvcmU6OiR7Zm5fc2lnX3R5cGV9PiBnX3JlcyA9ICI7CisgICAgICAgICAgICAgICAg
ICAgICAgICAkYXNzaWduX3ByZSA9ICJXVEY6OmdldFB0cigiOworICAgICAgICAgICAgICAgICAg
ICAgICAgJGFzc2lnbl9wb3N0ID0gIikiOworICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICAgICAgJGFzc2lnbiA9ICIke19yZXR1cm5UeXBlfSByZXMgPSAi
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIG15ICRleGNlcHRpb25zID0gIiI7CisgICAgICAgICAgICAgICAgaWYgKEB7JGZ1bmN0aW9u
LT5yYWlzZXNFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoJHtjYWxsX2ltcGxfcGFyYW1zfSBuZSAiIikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgJGV4Y2VwdGlvbnMgPSAiLCBlYyI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICJlYyI7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIG5lZWQg
dGhpcyBmb3IgaW5jbHVkaW5nIC4uLiBfc29tZXRoaW5nXyAtIGZvciB0aGUgY2xhc3MgYXJncwor
ICAgICAgICAgICAgICAgICNpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAgICAgICAgICAg
ICMgICAgJGltcGxJbmNsdWRlc3siZ2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgI30KKyAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9u
b2RlX2FwcGVuZF9jaGlsZCIgfHwKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBl
cSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUiIHx8CisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvbk5hbWUgZXEgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiB8fAorICAgICAgICAgICAgICAg
ICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxkIikgeworICAgICAg
ICAgICAgICAgICAgICBteSAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQgPSA8PCAiRU9G
IjsKKyAgICBib29sIG9rID0gaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1z
fSR7ZXhjZXB0aW9uc30pOworICAgIGlmIChvaykKKyAgICB7CisgICAgICAgICR7X3JldHVyblR5
cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihXZWJDb3JlOjp0b0dET00oJHJl
dHVyblBhcmFtTmFtZSkpOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4g
TlVMTDsKK0VPRgorICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgJGN1c3RvbV9nZG9t
X25vZGVfYXBwZW5kX2NoaWxkKTsKKyAgICAgICAgICAgICAgICB9IGVsc2lmICgkZm5fc2lnX3R5
cGUgZXEgIkRPTU9iamVjdCIgJiYKKyAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAnZ2RvbV9kb2N1bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0JykgeworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAvKiBYWFggVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0
IChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkp
OyovXG4iICk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCRmbl9zaWdfdHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICAke2Fzc2lnbn1HU3RyaW5nQ29udmVydChpdGVtLT4ke2ZuX3NpZ19uYW1l
fSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpO1xuIiApOworICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkZ19yZXMpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICRnX3JlcyA9ICIke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtm
bl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0
fSkiIDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3Np
Z19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KTtc
biIgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0Iikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke19yZXR1cm5UeXBlfSByZXMg
PSBzdGF0aWNfY2FzdDwke19yZXR1cm5UeXBlfT4oV2ViQ29yZTo6dG9HRE9NKGdfcmVzLmdldCgp
KSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gTlVMTDsg
LyogWFhYIFRPRE86IHJldHVybiBjYW52YXMgb2JqZWN0ICovXG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IHJldHVybiByZXM7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIlxuIik7CisKKyAgICAgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisgICAgICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAi
fSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7CisgICAgcHVzaChAY0JvZHlQcml2LCAifSAvKiBl
eHRlcm4gXCJDXCIgKi9cblxuIik7CisKKyAgICBwdXNoKEBoQm9keUludGVybmFsLCAiR19FTkRf
REVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlJbnRlcm5hbCwgIiNlbmRpZiAvKiAke2d1YXJk
fV9JTlRfKi9cbiIpOworCisgICAgcHVzaChAaEJvZHksICJHX0VORF9ERUNMU1xuXG4iKTsKKyAg
ICBwdXNoKEBoQm9keSwgIiNlbmRpZiAvKiAkZ3VhcmQgKi9cbiIpOworCisgICAgcHVzaChAaEJv
ZHlQcm9wLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlQcm9wLCAiI2VuZGlm
IC8qICR7Z3VhcmR9X1BST1BfKi9cbiIpOworfQorCisjIEludGVybmFsIGhlbHBlcgorc3ViIFdy
aXRlRGF0YQoreworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkgPSBAXzsKKworCisgICAgIyBXcml0
ZSBJbnRlcm5hbCBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVJbnRlcm5hbCA9ICIkb3V0cHV0RGly
LyIgLiAkbmFtZSAuICJJbnRlcm5hbC5oIjsKKyAgICBvcGVuKElOVEhFQURFUiwgIj4kaGRyRk5h
bWVJbnRlcm5hbCIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZUludGVybmFs
IjsKKworICAgIHByaW50IElOVEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBJTlRIRUFERVIg
IlxuIjsKKyAgICBwcmludCBJTlRIRUFERVIgQGhCb2R5SW50ZXJuYWw7CisgICAgY2xvc2UoSU5U
SEVBREVSKTsKKworICAgICMgV3JpdGUgUHJpdmF0ZSBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVQ
cml2ID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIlByaXZhdGUuaCI7CisgICAgb3BlbihQUklW
SEVBREVSLCAiPiRoZHJGTmFtZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRy
Rk5hbWVQcml2IjsKKworICAgIHByaW50IFBSSVZIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQg
UFJJVkhFQURFUiAiXG4iOworICAgIHByaW50IFBSSVZIRUFERVIgQGhCb2R5UHJpdjsKKyAgICBj
bG9zZShQUklWSEVBREVSKTsKKworICAgICMgV3JpdGUgUHJpdmF0ZSBJbXBsZW1lbnRhdGlvbgor
ICAgICNteSAkaW1wbEZpbGVOYW1lUHJpdiA9ICIkb3V0cHV0RGlyL1ByaXZhdGUiIC4gJG5hbWUg
LiAiLmNwcCI7CisgICAgI29wZW4oUFJJVklNUEwsICI+JGltcGxGaWxlTmFtZVByaXYiKSBvciBk
aWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lUHJpdiI7CisKKyAgICAjcHJpbnQg
UFJJVklNUEwgQGNQcmVmaXg7CisgICAgI3ByaW50IFBSSVZJTVBMICJcbiI7CisgICAgI3ByaW50
IFBSSVZJTVBMIEBjQm9keVByaXY7CisKKyAgICAjY2xvc2UoUFJJVklNUEwpOworCisgICAgIyBX
cml0ZSBwcm9wZXJ0aWVzIGhlYWRlciAoYXZvaWRzIHJlY3Vyc2l2ZSBuaWdodG1hcmUpCisgICAg
bXkgJGhkclByb3BGTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICJwcm9wcy5oIjsKKyAg
ICBvcGVuKFBST1BIRUFERVIsICI+JGhkclByb3BGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3Bl
biBmaWxlICRoZHJQcm9wRk5hbWUiOworCisgICAgJGhkclByb3BJbmNsdWRlc3siZ2xpYi1vYmpl
Y3QuaCJ9ID0gMTsKKworICAgIHByaW50IFBST1BIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQg
UFJPUEhFQURFUiAiLyogcmVjdXJzaXZlIGluY2x1ZGVzIC8gZGVmaW5lcyBpc3N1ZSBmb3JjZXMg
c2VwYXJhdGUgaGVhZGVyIGZvciBwcm9wZXJ0aWVzLlxucGVyaGFwcyAtIGJldHRlciAtIGFsbCBn
ZG9tIGd0ayBmdW5jdGlvbnMgc2hvdWxkIGJlIGluIGhlcmUhKi9cbiI7CisgICAgcHJpbnQgUFJP
UEhFQURFUiBAaEJvZHlQcm9wUHJlOworICAgIHByaW50IFBST1BIRUFERVIgIiNpbmNsdWRlIDx3
ZWJraXQvd2Via2l0ZGVmaW5lcy5oPlxuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIG1hcCB7ICIj
aW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJp
bnQgUFJPUEhFQURFUiAiXG4iIGlmIGtleXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJpbnQg
UFJPUEhFQURFUiAiXG4iOworICAgIHByaW50IFBST1BIRUFERVIgQGhCb2R5UHJvcDsKKworICAg
IGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdyaXRlIHB1YmxpYyBoZWFkZXIuCisgICAgbXkgJGhk
ckZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKEhFQURFUiwg
Ij4kaGRyRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWUiOworCisg
ICAgJGhkckluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgSEVBREVS
IEBoUHJlZml4OworICAgIHByaW50IEhFQURFUiBAaFByZWZpeEd1YXJkOworICAgIHByaW50IEhF
QURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50IEhF
QURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJJbmNsdWRlcyk7
CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50
IEhFQURFUiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaEJvZHlQcmU7CisgICAgcHJpbnQgSEVB
REVSIG1hcCB7ICJ0eXBlZGVmIHN0cnVjdCBfJF8gJF87XG4iIH0gc29ydCBrZXlzKCVpbXBsVHlw
ZWRlZnMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWltcGxUeXBlZGVmcyk7Cisg
ICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdy
aXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBzb3VyY2VzCisgICAgbXkgJGltcGxGaWxlTmFtZSA9ICIk
b3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKElNUEwsICI+JGltcGxGaWxl
TmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWUiOworCisgICAg
cHJpbnQgSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcImNvbmZpZy5o
XCJcblxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8d3RmL0dldFB0ci5oPlxuIjsKKyAg
ICBwcmludCBJTVBMIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJ
bmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7Cisg
ICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAgICBwcmludCBJTVBMICJcbiI7CisgICAgcHJpbnQg
SU1QTCBAY0JvZHlQcml2OworCisgICAgY2xvc2UoSU1QTCk7CisKKyAgICAlaW1wbEluY2x1ZGVz
ID0gKCk7CisgICAgJWltcGxUeXBlZGVmcyA9ICgpOworICAgICVoZHJJbmNsdWRlcyA9ICgpOwor
ICAgIEBoUHJlZml4ID0gKCk7CisgICAgQGhCb2R5ID0gKCk7CisgICAgQGhCb2R5UHJpdiA9ICgp
OworICAgIEBoQm9keUludGVybmFsID0gKCk7CisgICAgQGhCb2R5UHJvcCA9ICgpOworICAgIEBo
Qm9keVByb3BQcmUgPSAoKTsKKworICAgIEBjUHJlZml4ID0gKCk7CisgICAgQGNCb2R5ID0gKCk7
CisgICAgQGNCb2R5UHJpdiA9ICgpOworfQorCisxOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVs
ZW1lbnQuaWRsCShyZXZpc2lvbiAzNzYwMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxl
bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICAgICBdIEhUTUxPcHRp
b25FbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIEhU
TUxGb3JtRWxlbWVudCAgICAgIGZvcm07CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9v
bGVhbiAgICAgICAgICAgICAgZGVmYXVsdFNlbGVjdGVkOwotI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQo
TEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIHRleHQKICAgICAgICAgICAgICAg
ICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbHNlCkluZGV4OiBXZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5pZGwJKHJldmlzaW9uIDM3NjAyKQorKysgV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlYXJjaDsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5H
VUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwog
I2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAkocmV2aXNpb24gMzc2
MDIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSwxNCArMzUsMTQgQEAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNvZGU7CiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb2RlQmFzZTsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGhlaWdodDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBo
c3BhY2U7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3Ry
aW5nXSBsb25nIGhzcGFjZTsKICNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG9iamVjdDsKLSNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2c3BhY2U7CiAjZWxz
ZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBsb25nIHZz
cGFjZTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHJldmlzaW9uIDM3NjAyKQor
KysgV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw3ICszMCw3IEBACiAgICAgICAgIEltcGxlbWVudGF0aW9uVVVJRD05M2UwNDA3YS04MzgwLTRm
ZjAtOTc4ZC1mNzczZjJkZWU2YTMKICAgICBdIEhUTUxFbWJlZEVsZW1lbnQgOiBIVE1MRWxlbWVu
dCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBhbGlnbjsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBoZWlnaHQ7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnRGcm9tU3RyaW5nXSBsb25nIGhlaWdodDsKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBzcmM7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyB0eXBlOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0Vf
R09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIHdpZHRoOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyB3aWR0aDsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3Vt
ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9u
IDM3NjAyKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0x
NTQsNyArMTU0LDcgQEAKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgcmVmZXJyZXI7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQor
I2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBkb21haW47CiAjZWxzZQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGRvbWFpbjsKQEAgLTE4MCw3ICsxODAsNyBAQAogCiAgICAgICAgIE5vZGVMaXN0
IGdldEVsZW1lbnRzQnlOYW1lKGluIERPTVN0cmluZyBlbGVtZW50TmFtZSk7CiAKLSNpZiBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwogI2VuZGlmCiAKQEAgLTE5Myw3ICsxOTMs
NyBAQAogICAgICAgICBFbGVtZW50ICAgICAgICAgICAgZWxlbWVudEZyb21Qb2ludChpbiBsb25n
IHgsIGluIGxvbmcgeSk7CiAKICAgICAgICAgLy8gTW96aWxsYSBleHRlbnNpb25zCi0jaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJ
UFQpIHx8IGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpCiAgICAgICAgIERPTVNlbGVjdGlvbiAg
ICAgICBnZXRTZWxlY3Rpb24oKTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGNoYXJhY3RlclNldDsKQEAgLTIz
NCwxMCArMjM0LDE4IEBACiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUo
aW4gRE9NU3RyaW5nIHRhZ25hbWUpOwogCiAgICAgICAgIC8vIE5vZGVTZWxlY3RvciAtIFNlbGVj
dG9yIEFQSQorI2lmIChkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQorICAgICAgICBbQ3VzdG9t
XSBFbGVtZW50IHF1ZXJ5U2VsZWN0b3IoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBzZWxlY3RvcnMsIGluIE5TUmVzb2x2ZXIgcmVzb2x2ZXIpCisgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgW0N1c3RvbV0gTm9kZUxpc3Qg
cXVlcnlTZWxlY3RvckFsbChpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIHNlbGVjdG9ycywgaW4gTlNSZXNvbHZlciByZXNvbHZlcikKKyAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOworI2Vsc2UKKyAgICAgICAgLy8gRklYTUU6IGFkZCBzdXBw
b3J0IGZvciBOU1Jlc29sdmVyIGluIGxhbmd1YWdlcyBvdGhlciB0aGFuIEpTCiAgICAgICAgIEVs
ZW1lbnQgcXVlcnlTZWxlY3RvcihpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHNlbGVjdG9ycykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgICAgICBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL2Rv
bS9SYW5nZUV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vUmFuZ2VFeGNl
cHRpb24uaWRsCShyZXZpc2lvbiAzNzYwMikKKysrIFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9u
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5H
VUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwog
I2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM3NjAyKQorKysg
V2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICsz
Nyw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJy
aWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERP
TVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2RvbS9LZXlib2FyZEV2
ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2
aXNpb24gMzc2MDIpCisrKyBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtNTksNyArNTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IGJvb2xlYW4gYWx0R3JhcGhLZXkpOwogCiAgICAgICAgIC8vIFdlYktpdCBFeHRlbnNpb25zCi0j
aWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoKCFkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpKSAmJiAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpKQogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKICAgICAgICAgCkluZGV4
OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMzc2MDIpCisrKyBXZWJDb3JlL2Rv
bS9ET01Db3JlRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBh
IE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcg
dG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3NjAyKQorKysgV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEyNTkwLDYgKzEyNTkwLDEzNCBAQAogICAgICAgICAoV2Vi
Q29yZTo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KToKICAgICAgICAgKFdlYkNvcmU6OkFYRGVm
aW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCk6CiAKKzIwMDgtMDktMTIgIGxrY2wgIDxsa2NsQGxr
Y2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgICogR05V
bWFrZWZpbGUuYW06IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1QsIGdsaWIgRE9NIGJpbmRpbmdzIGZp
bGVzLCBpbmNsdWRpbmcgbWFya2luZyBTVkcgYXMgIlRPRE8iCisgICAgICAgICogYmluZGluZ3Mv
Z2RvbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6YWRkV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpy
ZW1vdmVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVdyYXBwZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OndyYXBwZXJTZXQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTU9iamVjdDo6
fkdET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlckNhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OmRvbU9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVy
cHJldGVyOjpnZXRET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlX2dkb21fb2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NT2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9N
T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9N
Tm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRl
cjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3Jp
cHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0QWxsRE9NTm9kZXNGb3JEb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Om1hcmtET01Ob2Rlc0ZvckRv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6dXBkYXRl
RE9NTm9kZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvR0RPTSk6CisgICAgICAgIChX
ZWJDb3JlOjp0b0dET01OZXdseUNyZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV3Jh
cHBlcik6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNhY2hl
U1ZHRE9NT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5LmNwcDogQWRkZWQuICBDb3BpZWQgZnJvbSB0aGUgYXV0by1nZW5lcmF0ZWQg
SlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUFuY2hvcldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXBwbGV0V3JhcHBlcik6
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBcmVhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVCYXNlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCYXNlRm9udFdy
YXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQmxvY2txdW90ZVdyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlQm9keVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlQlJXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1dHRvbldyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ2FudmFzV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRh
YmxlQ29sV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNb2RXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlRGl2V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVETGlzdFdyYXBw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRW1iZWRXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUZpZWxkU2V0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVG
b250V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVGcmFtZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRnJhbWVTZXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhlYWRpbmdXcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhlYWRXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUhSV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVIdG1sV3Jh
cHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJRnJhbWVXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUltYWdlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJ
bnB1dFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSXNJbmRleFdyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTGFiZWxXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUxlZ2VuZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTElXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxpbmtXcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU1hcFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFycXVlZVdy
YXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVudVdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlTWV0YVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT2Jq
ZWN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPTGlzdFdyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlT3B0R3JvdXBXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZU9wdGlvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFyYWdyYXBo
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXJhbVdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlUHJlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVR
dW90ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2NyaXB0V3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVTZWxlY3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVN0eWxlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZVdyYXBw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVRleHRBcmVhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUaXRsZVdy
YXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVSb3dXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVVMaXN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVHRE9NSFRNTFdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuaDogIEFkZGVkLiAgQ29waWVkIGZyb20gdGhlIGF1dG8tZ2VuZXJh
dGVkIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCisgICAgICAgICogYmluZGluZ3MvZ2Rv
bS9HRE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAoR0RPTU9iamVjdDo6fkdET01PYmplY3Qp
OgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHA6IEFkZGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKEdT
dHJpbmdDb252ZXJ0OjpHU3RyaW5nQ29udmVydCk6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9H
ZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJp
dmF0ZUdkb21ET01PYmplY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJp
dmF0ZTo6Z2RvbV9kb21fb2JqZWN0X3NldF9wcml2YXRlKToKKyAgICAgICAgKF9HZG9tRE9NT2Jq
ZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2dldF9wcml2YXRlKToKKyAgICAgICAgKF9HZG9t
RE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2ZpbmFsaXplKToKKyAgICAgICAgKF9H
ZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQpOgorICAgICAg
ICAoX0dkb21ET01PYmplY3RQcml2YXRlOjpnZG9tX2RvbV9vYmplY3RfaW5pdCk6CisgICAgICAg
ICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcDogQWRkZWQuCisg
ICAgICAgIChnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2dldF9wcml2YXRlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9nZG9tL1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21ET01PYmplY3QuaDogQWRkZWQuCisgICAg
ICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oOiBBZGRl
ZC4KKyAgICAgICAgKEdET01FdmVudFRhcmdldE5vZGU6OkdET01FdmVudFRhcmdldE5vZGUpOgor
ICAgICAgICAoR0RPTUV2ZW50VGFyZ2V0Tm9kZTo6Z2V0X2dvYmpfdHlwZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbTogQWRkZWQgZ29iamVjdCBi
aW5kaW5ncyBhdXRvLWdlbmVyYXRvci4KKyAgICAgICAgKiBkb20vRE9NQ29yZUV4Y2VwdGlvbi5p
ZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAg
KiBkb20vRXZlbnRFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmlj
IElETAorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09C
SkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vUmFuZ2VFeGNlcHRpb24uaWRsOiBhZGRl
ZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGh0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAg
ICAqIGh0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNw
ZWNpZmljIElETAorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGw6IGFkZGVkIExB
TkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxl
bWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICog
cGFnZS9ET01TZWxlY3Rpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElE
TAorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1z
cGVjaWZpYyBJREwKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsOiBhZGRlZCBMQU5H
VUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdEV4
Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMIAorICAgICAg
ICAqIHhtbC9YUGF0aEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lm
aWMgSURMCisKIDIwMDgtMDktMTIgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTW92ZSB0aGUgbWVtYmVyIHZhcmlhYmxlcyBvZiBQbGF0Zm9ybVNjcm9sbGJhciB1cCBp
bnRvIFNjcm9sbGJhci4gIE1vdmUgYXV0b3Njcm9sbCB0aW1lciBoYW5kbGluZwpJbmRleDogV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmlkbAkocmV2aXNpb24gMzc2MDIpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTYyLDkgKzYyLDEzIEBACiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyB2b2lkIHNlbmQoKTsKLSAgICAg
ICAgLy8gdm9pZCBzZW5kKGluIERPTVN0cmluZyBkYXRhKTsKKyNpZiBkZWZpbmVkKExBTkdVQUdF
X0dPQkpFQ1QpCisgICAgICAgIHZvaWQgc2VuZChpbiBET01TdHJpbmcgZGF0YSkKKyAgICAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworI2Vsc2UKICAgICAgICAgW0N1c3RvbV0gdm9pZCBz
ZW5kKGluIERvY3VtZW50IGRhdGEpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
KyNlbmRpZgogCiAgICAgICAgIHZvaWQgYWJvcnQoKTsKIApJbmRleDogV2ViQ29yZS94bWwvWFBh
dGhFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9u
LmlkbAkocmV2aXNpb24gMzc2MDIpCisrKyBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQ
VCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VBR0Vf
R09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9y
bWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5k
ZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDM3NjAy
KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw3ICszNiw3IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAg
ICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAg
ICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAkocmV2aXNpb24gMzc2MDIpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjA5LDcgKzIwOSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBib29sZWFuIHVzZUNhcHR1cmUpOwogICAgICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGRpc3BhdGNoRXZlbnQKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VB
R0VfR09CSkVDVCkKICAgICAgICAgLy8gR2xvYmFsIGNvbnN0cnVjdG9ycwogICAgICAgICBhdHRy
aWJ1dGUgU3R5bGVTaGVldENvbnN0cnVjdG9yIFN0eWxlU2hlZXQ7CiAgICAgICAgIGF0dHJpYnV0
ZSBDU1NTdHlsZVNoZWV0Q29uc3RydWN0b3IgQ1NTU3R5bGVTaGVldDsKSW5kZXg6IFdlYkNvcmUv
cGFnZS9ET01TZWxlY3Rpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01TZWxl
Y3Rpb24uaWRsCShyZXZpc2lvbiAzNzYwMikKKysrIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24u
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAgIHZvaWQgcmVtb3Zl
QWxsUmFuZ2VzKCk7CiAgICAgICAgIHZvaWQgYWRkUmFuZ2UoaW4gUmFuZ2UgcmFuZ2UpOwogCi0j
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1d
IERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCiAgICAgfTsKSW5kZXg6IENoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM3NjAyKQorKysgQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDgtMTAtMTQgIGxrY2wgIDxsa2NsQGxr
Y2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06IGFkZCBHZG9tKi5oIGdsaWIgRE9NIGJpbmRpbmdzIGhlYWRlciBm
aWxlcywKKyAgICAgICAgCisgICAgICAgIEFsc28gYWRkZWQgZ2RvbWVudW10eXBlcy5jcHAsaCB3
aGljaCBwcmVzZW50bHkgZG8gbm90CisgICAgICAgIGFjdHVhbGx5IGNvbnRhaW4gYW55dGhpbmcs
IGJlY2F1c2UgdGhlcmUgYXJlIG5vIGVudW1zCisgICAgICAgIGluIHRoZSBnbGliIGJpbmRpbmdz
IC0geWV0LgorCiAyMDA4LTEwLTEzICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KIAogICAg
ICAgICBHVEsrIGJ1aWxkIGZpeDogRW5zdXJlIGNvcnJlY3QgYnVpbGRzIHdoZW4gZGVidWdnaW5n
IGlzCkluZGV4OiBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXRUb29scy9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMzc2MDIpCisrKyBXZWJLaXRUb29scy9H
TlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDggQEAKIFByb2dyYW1zX0d0
a0xhdW5jaGVyX0NQUEZMQUdTID0gXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJCh0
b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0
IFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJJChnbG9iYWxfY3Bw
ZmxhZ3MpIFwKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQogCkBAIC0yOCw2ICszMCw4IEBA
CiAJLUkkKHNyY2RpcikvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrIFwKIAktSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQo
c3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0
ay93ZWJraXQgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29yZV9jcHBm
bGFncykKIApJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMzc2MDIpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTY2OCw2ICs2NjgsMTggQEAKICAgICAgICAgKHdhaXRVbnRp
bERvbmVXYXRjaGRvZ0ZpcmVkKToKICAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvT2JqQ1Bs
dWdpbi5tOgogCisyMDA4LTA5LTEyICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBh
ZGRlZCAtSSBpbmNsdWRlcyB0byBndGsgd2Via2l0IHN1YmRpcmVjdG9yaWVzCisKKyAgICAgICAg
R2RvbSBnbGliIERPTSBiaW5kaW5ncyBoYXZlIHRoZWlyIGhlYWRlciBmaWxlcyBjb250YWluaW5n
CisgICAgICAgICNpbmNsdWRlICJnZG9tKiIgd2hlcmUgI2luY2x1ZGUgPHdlYmtpdC9nZG9tKj4g
aXMgbm90CisgICAgICAgIHBvc3NpYmxlLCBhcyB0aGUgZ2RvbSogc291cmNlIGFuZCBoZWFkZXIg
ZmlsZXMgYXJlIGF1dG8tZ2VuZXJhdGVkCisgICAgICAgIGludG8gRGVyaXZlZFNvdXJjZXMvIG5v
dCBEZXJpdmVkU291cmNlcy93ZWJraXQsIGZvbGxvd2luZyB0aGUKKyAgICAgICAgZXhhbXBsZSBv
ZiB0aGUgSlMgRGVyaXZlZCBTb3VyY2VzLgorCiAyMDA4LTA5LTA4ICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25618</attachid>
            <date>2008-11-30 15:30:44 -0800</date>
            <delta_ts>2008-11-30 15:30:44 -0800</delta_ts>
            <desc>DOM patch updated to version 38852</desc>
            <filename>webkit-dom-38852.patch</filename>
            <type>text/plain</type>
            <size>197118</size>
            <attacher name="Martín Soto">donsoto</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiAzODg1MikKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtODcsNyArODgsOCBAQAogIyBDb252ZW5pZW5jZSBsaWJyYXJpZXMKIG5vaW5zdF9MVExJQlJB
UklFUyA9IFwKIAlsaWJKYXZhU2NyaXB0Q29yZS5sYSBcCi0JbGliV2ViQ29yZS5sYQorCWxpYldl
YkNvcmUubGEgXAorCWxpYmdkb20ubGEKIAogIwogIyBKYXZhU2NyaXB0Q29yZQpAQCAtMTAzLDcg
KzEwNSw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMg
XAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3BhcnNlciBcCiAJLUkkKHNyY2RpcikvSmF2
YVNjcmlwdENvcmUvd3RmIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCS1J
JCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJD
b3JlL2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5IGlu
Y2x1ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVubGVz
cyB5b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTE1MCw2ICsxNTMsMTAgQEAKIHdlYmNvcmVndGtfY3Bw
ZmxhZ3MgOj0KIHdlYmNvcmVndGtfc291cmNlcyA6PQogCit3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9
IFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9nZG9tIFwKKwktSSQoc3JjZGly
KS9XZWJLaXQvZ3RrL2dkb20KKwogbm9kaXN0X0VYVFJBX2xpYldlYkNvcmVfbGFfU09VUkNFUyA9
IFwKIAkkKHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzKQogCkBAIC0yMTIsNiArMjE5LDU1IEBACiAJ
JChQTkdfTElCUykgXAogCS1scHRocmVhZAogCisjIGxpYmdkb20KK2xpYmdkb21fYnVpbHRfc291
cmNlcyA6PQorbGliZ2RvbV9zb3VyY2VzIDo9CitsaWJnZG9tX2hfYXBpIDo9CitsaWJnZG9tX2Nw
cGZsYWdzIDo9CitsaWJnZG9tX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0LTEuMC9n
ZG9tCitsaWJnZG9tX2xhX0hFQURFUlMgPSBcCisgICAgICAgICQobGliZ2RvbV9oX2FwaSkgXAor
CQkkKHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tL2dkb20uaCAKKworbGliZ2RvbV9jcHBmbGFncyAr
PSBcCisJJChnbG9iYWxfY3BwZmxhZ3MpIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwkt
SSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQv
Z2RvbSBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGly
KS9EZXJpdmVkU291cmNlcy9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNl
cworCitsaWJnZG9tX2xhX1NPVVJDRVMgPSBcCisJJChsaWJnZG9tX3NvdXJjZXMpIAorCitub2Rp
c3RfbGliZ2RvbV9sYV9TT1VSQ0VTID0gXAorCSQobGliZ2RvbV9idWlsdF9zb3VyY2VzKSAKKwor
bGliZ2RvbV9sYV9DUFBGTEFHUyA9IFwKKwkkKGdsb2JhbF9jcHBmbGFncykgXAorCSQod2ViY29y
ZV9jcHBmbGFncykgXAorCSQoR0xPQkFMREVQU19DRkxBR1MpIFwKKwkkKFdFQktJVERFUFNfQ0ZM
QUdTKSBcCisJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykgXAorCSQobGliZ2RvbV9jcHBmbGFn
cykgCisKK2xpYmdkb21fbGFfTElCQUREID0gXAorCWxpYldlYkNvcmUubGEgXAorCSQoR0xPQkFM
REVQU19MSUJTKSBcCisJJChXRUJLSVRERVBTX0xJQlMpIFwKKwkkKFhUX0xJQlMpIFwKKwkkKExJ
QkNVUkxfTElCUykgXAorCSQoTElCU09VUF9MSUJTKSBcCisJJChGUkVFVFlQRV9MSUJTKSBcCisJ
JChVTklDT0RFX0xJQlMpIFwKKwkkKFNRTElURTNfTElCUykgXAorCSQoR1NUUkVBTUVSX0xJQlMp
IFwKKwkkKExJQlhTTFRfTElCUykgXAorCSQoSElMRE9OX0xJQlMpIFwKKwkkKEpQRUdfTElCUykg
XAorCS1scHRocmVhZAorCiAjIFdlYktpdAogd2Via2l0Z3RrX2hfYXBpIDo9CiB3ZWJraXRndGtf
c291cmNlcyA6PQpAQCAtMjI2LDggKzI4MiwxNSBAQAogbGlid2Via2l0XzFfMF9sYWRpciA9ICQo
cHJlZml4KS9pbmNsdWRlL3dlYmtpdC0xLjAvd2Via2l0CiBsaWJ3ZWJraXRfMV8wX2xhX0hFQURF
UlMgPSBcCiAJJCh3ZWJraXRndGtfaF9hcGkpIFwKKwkkKGxpYmdkb21faF9hcGkpIFwKIAlXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRlbnVtdHlwZXMuaAogCisjIGNvbW1lbnQgdGhlc2Ugb3V0IGZv
ciBub3csIHNlZSB3aGF0IGhhcHBlbnMKKyMJJChsaWJnZG9tX2hfYXBpKSAKKyMJV2ViS2l0L2d0
ay93ZWJraXQvZ2RvbS5oIAorI1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaAorI1dl
YktpdC9ndGsvd2Via2l0L2dkb21kZWZpbmVzLmgKKwogbGlid2Via2l0XzFfMF9sYV9TT1VSQ0VT
ID0gXAogCSQod2Via2l0Z3RrX3NvdXJjZXMpCiAKQEAgLTI0OCw3ICszMTEsNyBAQAogCSQobm9f
dW5kZWZpbmVkKQogCiBsaWJ3ZWJraXRfMV8wX2xhX0xJQkFERCA9IFwKLQlsaWJXZWJDb3JlLmxh
CisJbGliZ2RvbS5sYSAKIAogIwogIyBFeHRyYSBjaGVja3MgYW5kIGZsYWdzCkBAIC0yOTksNiAr
MzYyLDE3OCBAQAogd2ViY29yZV9saWJhZGQgKz0gLWxnc3RpbnRlcmZhY2VzLTAuMTAgLWxnc3R2
aWRlby0wLjEwCiBlbmRpZgogCisKK1dlYktpdC9ndGsvZ2RvbS9nZG9tLmg6CisjIFRPRE86IGF1
dG8tZ2VuZXJhdGUgdGhpcyBmaWxlCisKKyMkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L1ByaXZhdGVHZG9tRXZlbnRUYXJnZXROb2RlLmNwcDogXAorIwkJJCh0b3BfYnVpbGRkaXIpL1dl
YktpdC9ndGsvZ2RvbS9Qcml2YXRlSW50R2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCisKKworbGliZ2Rv
bV9oX2FwaSArPSBcCisJJChzcmNkaXIpL1dlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXRO
b2RlLmhcCisJJChzcmNkaXIpL1dlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21BdHRyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQmFySW5mby5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNhbnZhc0dyYWRpZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ2FudmFzUGF0dGVybi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1BpeGVs
QXJyYXkuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DREFUQVNlY3Rpb24uaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DaGFyYWN0ZXJEYXRhLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ2xpcGJvYXJkLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ29tbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvbnNvbGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21Db3VudGVyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTQ2hhcnNldFJ1bGUuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NGb250RmFjZVJ1bGUuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DU1NJbXBvcnRSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q1NTTWVkaWFSdWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUGFnZVJ1bGUuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQcmltaXRpdmVWYWx1ZS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU1J1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NS
dWxlTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24u
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZVJ1bGUuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DU1NTdHlsZVNoZWV0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q1NTVmFsdWUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYWx1ZUxpc3QuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlvbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21EYXRhYmFzZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURvY3VtZW50RnJh
Z21lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudFR5cGUuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tRE9NQ29yZUV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bURPTUltcGxlbWVudGF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NUGFyc2Vy
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NU2VsZWN0aW9uLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tRE9NV2luZG93LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eS5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUVudGl0eVJlZmVyZW5jZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUV2ZW50RXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
RmlsZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IaXN0b3J5LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFuY2hvckVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MQXBwbGV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxBcmVhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MQm9keUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MQlJFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJ1dHRv
bkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxDb2xsZWN0aW9uLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxE
TGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRG9jdW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxFbWJlZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MRmllbGRTZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvbnRF
bGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1lRWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MSGVhZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVh
ZGluZ0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSFJFbGVtZW50Lmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MSW1hZ2VFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElu
cHV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJc0luZGV4RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxMSUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
TGlua0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWFwRWxlbWVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxNZXRhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxN
b2RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9iamVjdEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT0xpc3RFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTE9wdGlvbnNDb2xsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFBh
cmFncmFwaEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUGFyYW1FbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MUXVvdGVFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MU2VsZWN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTdHlsZUVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGV4
dEFyZWFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxVTGlzdEVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21JbWFnZURhdGEuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21KYXZhU2NyaXB0Q2FsbEZyYW1lLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tS2V5Ym9h
cmRFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0aW9uLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
TWVzc2FnZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVzc2FnZVBvcnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5LmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tTWltZVR5cGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Nb3VzZUV2
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTXV0YXRpb25FdmVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbU5hdmlnYXRvci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0ZXIuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTm9kZUl0ZXJhdG9yLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUxpc3QuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbU92ZXJmbG93RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW5B
cnJheS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZUV4
Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tUmVjdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNjcmVlbi5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTEVycm9yLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1FMUmVzdWx0U2V0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMUmVz
dWx0U2V0Um93TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFRyYW5zYWN0aW9u
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZUV2ZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU3RvcmFnZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxl
U2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVRleHRNZXRyaWNzLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVRyZWVXYWxrZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21VSUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVhNTEh0dHBSZXF1ZXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJl
cXVlc3RVcGxvYWQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxTZXJpYWxpemVyLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVhQYXRoRXhwcmVzc2lvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoTlNSZXNv
bHZlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoUmVzdWx0LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tWFNMVFByb2Nlc3Nvci5oCisKIHdlYmtpdGd0a19oX2FwaSArPSBc
CiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtp
dGRlZmluZXMuaCBcCkBAIC0zMTIsMTIgKzU0NywxNyBAQAogCVdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYndpbmRvd2ZlYXR1cmVzLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZp
ZXcuaAogCisjIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdkb21kZWZpbmVzLmgKKwogd2Via2l0
Z3RrX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdGVudW10eXBlcy5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy93ZWJraXRtYXJzaGFsLmggXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5o
CiAKKyMJRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5jcHAgCisjCVdlYktpdC9ndGsvd2Vi
a2l0L2dkb21lbnVtdHlwZXMuaAorCiB3ZWJraXRndGtfc291cmNlcyArPSBcCiAJV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIFwKIAlXZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIFwKQEAgLTM0Myw2ICs1ODMsNyBAQAogCVdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAgXAorCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcCBcCiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuY3BwCiAKIHdlYmtpdGd0a19jcHBm
bGFncyArPSBcCkBAIC0zNTAsNyArNTkxLDkgQEAKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwK
IAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0IFwKIAktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrL3dlYmtpdCBcCi0JLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQK
KwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9idWlsZGRp
cikvV2ViS2l0L2d0a1wKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcwogCiB3ZWJr
aXRndGtfY2xlYW5maWxlcyArPSBcCiAJJCh0b3BfYnVpbGRkaXIpL1Byb2dyYW1zL0d0a0xhdW5j
aGVyIFwKQEAgLTM2Niw2ICs2MDksOSBAQAogCXN0YW1wLXdlYmtpdGVudW10eXBlcy5jcHAgXAog
CXN0YW1wLXdlYmtpdGVudW10eXBlcy5oCiAKKyMJc3RhbXAtZ2RvbWVudW10eXBlcy5jcHAgCisj
CXN0YW1wLWdkb21lbnVtdHlwZXMuaCAKKwogV0VCS0lUX01BUlNIQUwgPSAkKEdFTlNPVVJDRVMp
L3dlYmtpdG1hcnNoYWwKIFdFQktJVF9NQVJTSEFMX0xJU1QgPSAkKFdFQktJVF9NQVJTSEFMKS5s
aXN0CiAKQEAgLTQ0Miw2ICs2ODgsNTQgQEAKIAkmJiBjcCB4Z2VuLWd0YyAkQCBcCiAJJiYgcm0g
LWYgeGdlbi1ndGMKIAorV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oOiBzdGFtcC1n
ZG9tZW51bXR5cGVzLmgKKwlAdHJ1ZQorc3RhbXAtZ2RvbWVudW10eXBlcy5oOiAkKGxpYmdkb21f
aF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYgZ2xpYi1ta2VudW1zIFwK
KwkJCS0tZmhlYWQgIiNpZm5kZWYgR0RPTV9FTlVNX1RZUEVTX0hcbiIgXAorCQkJLS1maGVhZCAi
I2RlZmluZSBHRE9NX0VOVU1fVFlQRVNfSFxuXG4iIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPlxuXG4iIFwKKwkJCS0tZmhlYWQgIkdfQkVHSU5fREVDTFNcblxuIiBcCisJ
CQktLWZ0YWlsICJHX0VORF9ERUNMU1xuXG4iIFwKKwkJCS0tZnRhaWwgIiNlbmRpZlxuIiBcCisJ
CQktLWZwcm9kICIjaW5jbHVkZSA8QGZpbGVuYW1lQD5cblxuIiBcCisJCQktLWVwcm9kICIjZGVm
aW5lIEdET01fVFlQRV9ARU5VTVNIT1JUQCBAZW51bV9uYW1lQF9nZXRfdHlwZSgpXG5cbiIgXAor
CQkJLS1lcHJvZCAiV0VCS0lUX0FQSSBHVHlwZVxuQGVudW1fbmFtZUBfZ2V0X3R5cGUodm9pZCk7
XG5cbiIgXAorCQkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJCXNlZCAncyxXZWJLaXQvZ3RrLyws
JyB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIHwgXAorCQlzZWQgJ3MsR0RPTV9UWVBFX0tJ
VCxHRE9NX1RZUEUsJyBcCisJCSkgPiB4Z2VuLWNndGggXAorCSYmIChjbXAgLXMgeGdlbi1jZ3Ro
IFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCB8fCBjcCB4Z2VuLWNndGggV2ViS2l0
L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oKSBcCisJJiYgcm0gLWYgeGdlbi1jZ3RoIFwKKwkm
JiBlY2hvIHRpbWVzdGFtcCA+ICQoQEYpCisKKyMgICAgICAgICAgICAgIC0tZmhlYWQgIiNpbmNs
dWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD5cblxuIiAKKworRGVyaXZlZFNvdXJjZXMvZ2RvbWVu
dW10eXBlcy5jcHA6ICQobGliZ2RvbV9oX2FwaSkgR05VbWFrZWZpbGUKKwkoY2QgJChzcmNkaXIp
IFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGNvbmZpZy5oPlxu
IiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cbiIgXAorCQkJLS1maGVh
ZCAiI2luY2x1ZGUgXCIkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10
eXBlcy5oXCJcblxuIiBcCisJCQktLWZoZWFkICJleHRlcm4gXCJDXCIge1xuXG4iIFwKKwkJCS0t
ZnByb2QgIlxuLyogZW51bWVyYXRpb25zIGZyb20gXCJAZmlsZW5hbWVAXCIgKi8iIFwKKwkJCS0t
dmhlYWQgInN0YXRpYyBjb25zdCBHQFR5cGVAVmFsdWUgX0BlbnVtX25hbWVAX3ZhbHVlc1tdID0g
eyIgXAorCQkJLS12cHJvZCAiICAgIHsgQFZBTFVFTkFNRUAsIFwiQFZBTFVFTkFNRUBcIiwgXCJA
dmFsdWVuaWNrQFwiIH0sIiBcCisJCQktLXZ0YWlsICIgICAgeyAwLCBOVUxMLCBOVUxMIH1cbn07
XG5cbiIgXAorCQkJLS12dGFpbCAiR1R5cGUgQGVudW1fbmFtZUBfZ2V0X3R5cGUodm9pZClcbntc
biIgXAorCQkJLS12dGFpbCAiICAgIHN0YXRpYyBHVHlwZSB0eXBlID0gMDtcblxuIiBcCisJCQkt
LXZ0YWlsICIgICAgaWYgKCF0eXBlKVxuIiBcCisJCQktLXZ0YWlsICIgICAgICAgIHR5cGUgPSBn
X0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMoXCJARW51bU5hbWVAXCIsIF9AZW51bV9uYW1lQF92YWx1
ZXMpO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAgICByZXR1cm4gdHlwZTtcbn1cblxuIiBcCisJCQkt
LWZ0YWlsICJ9XG4iIFwKKwkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJc2VkICdzLHdlYl9raXQs
Z2RvbSwnIFwKKwkJKSA+IHhnZW4tY2d0YyBcCisJJiYgY3AgeGdlbi1jZ3RjICRAIFwKKwkmJiBy
bSAtZiB4Z2VuLWNndGMKKwogIyBFTkQgV0VCS0lUIEdUSysKICMKICMgRmlsZXMgdGhhdCB3aWxs
IGJlIGRpc3RyaWJ1dGVkCkBAIC00NjUsNiArNzU5LDggQEAKIEJVSUxUX1NPVVJDRVMgOj0gXAog
CSQoamF2YXNjcmlwdGNvcmVfYnVpbHRfc291cmNlcykgXAogCSQoamF2YXNjcmlwdGNvcmVfYnVp
bHRfbm9zb3VyY2VzKSBcCisJJChsaWJnZG9tX2J1aWx0X3NvdXJjZXMpIFwKKwkkKGxpYmdkb21f
YnVpbHRfbm9zb3VyY2VzKSBcCiAJJCh3ZWJjb3JlX2J1aWx0X3NvdXJjZXMpIFwKIAkkKHdlYmNv
cmVfYnVpbHRfbm9zb3VyY2VzKSBcCiAJJCh3ZWJraXRndGtfYnVpbHRfc291cmNlcykgXApJbmRl
eDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAkocmV2aXNpb24gMzg4NTIpCisrKyBX
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTEgKzEsMTMgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggSG9sZ2VyIEhhbnMg
UGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29u
IExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tl
ciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLgogICog
Q29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29t
PgogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDggTnVhbnRpIEx0ZC4KICAqCisgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtMzAs
MTggKzMyLDI4IEBACiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogCiAjaW5jbHVkZSAiQ1N0
cmluZy5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXaW5kb3cuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3RrLmgiCiAjaW5jbHVkZSAi
RnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR2RvbURPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIkdkb21ET01XaW5kb3dQcml2YXRlLmgiCisjaW5jbHVkZSAiR2Rv
bURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUg
Ikdkb21FdmVudC5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUg
Ikdkb21YTUxIdHRwUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIlByaW50Q29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlRleHREb2N1bWVudC5o
IgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogCkBAIC00OSw2ICs2MSwx
MiBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCitu
YW1lc3BhY2UgV2ViS2l0IHsKKyAgICBncG9pbnRlciB0b0dET00oRE9NV2luZG93KiBkb2MpOwor
ICAgIGdwb2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00o
WE1MSHR0cFJlcXVlc3QqIG9iaik7Cit9CisKIGV4dGVybiAiQyIgewogCiBlbnVtIHsKQEAgLTU3
LDYgKzc1LDcgQEAKICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAgICBIT1ZF
UklOR19PVkVSX0xJTkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05BTAogfTsK
IApAQCAtMTYyLDYgKzE4MSwxNyBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAg
ICAgICAgICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtpdF93ZWJf
ZnJhbWVfc2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVu
dCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAg
ICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVEKSwKKyAgICAgICAg
ICAgIDAsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAg
IHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICAgICAgR19UWVBF
X05PTkUsIDIsCisgICAgICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsK
KwogICAgIC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAg
ICAqLwpAQCAtMjk3LDYgKzMyNyw5MiBAQAogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X3htbF9odHRwX3JlcXVlc3Q6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgor
ICogcmV0dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYW4gWE1MSHR0cFJlcXVlc3QKKyAqCisg
KiBSZXR1cm4gdmFsdWU6IGEgR2RvbVhNTEh0dHBSZXF1ZXN0CisgKi8KK0dkb21YTUxIdHRwUmVx
dWVzdCogd2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdChXZWJLaXRXZWJGcmFt
ZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFN
RShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBm
cmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBB
U1NFUlQoY29yZUZyYW1lKTsKKyAgICByZXR1cm4gR0RPTV9YTUxfSFRUUF9SRVFVRVNUKFdlYktp
dDo6dG9HRE9NKFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoY29yZUZyYW1lLT5kb2N1bWVudCgpKS5n
ZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3c6Cisg
KiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJucyBhIEdkb20gd3JhcHBl
ciBhcm91bmQgYSBET01XaW5kb3cKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgR2RvbURPTVdpbmRv
dworICovCitHZG9tRE9NV2luZG93KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93KFdl
YktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
SVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJpdmF0
ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJh
bWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIFBhc3NSZWZQdHI8RE9NV2luZG93PiB3
aW4gPSBjb3JlRnJhbWUtPmRvbVdpbmRvdygpOworICAgIHJldHVybiBHRE9NX0RPTV9XSU5ET1co
V2ViS2l0Ojp0b0dET00od2luLmdldCgpKSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFt
ZV9nZXRfZG9tX2RvY3VtZW50OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAq
IHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGEgRG9jdW1lbnQgCisgKgorICogUmV0dXJu
IHZhbHVlOiBhIEdkb21Eb2N1bWVudAorICovCitHZG9tRG9jdW1lbnQqIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAg
Ly9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1l
KiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICBy
ZXR1cm4gR0RPTV9ET0NVTUVOVChXZWJLaXQ6OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50KCkp
KTsKK30KKworLyogWFhYIFRPRE86IG1ha2UgdGhpcyBub3QgdGFrZSBmcmFtZSogYXMgYW4gYXJn
dW1lbnQsCisgKiBhbmQgbWFrZSBpdCByZXR1cm4gYSBHZG9tRXZlbnRMaXN0ZW5lciBjbGFzcyAq
LworZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJIGdib29sZWFuCithZGRfd2luZG93X2V2ZW50X2xp
c3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3ZiwgRnJhbWUgKmZyYW1lLCBjb25zdCBjaGFyICpuYW1l
KTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoKKyAq
IEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVy
IHRvIHRoZSBmcmFtZSdzIGRvY3VtZW50CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBv
ZiBAZnJhbWUKKyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVu
ZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGV2ZW50X3R5cGUpCit7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIEZBTFNFKTsKKworICAgIC8v
V2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSog
Y29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisKKyAgICBy
ZXR1cm4gYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcihmcmFtZSwgY29yZUZyYW1lLCBldmVudF90
eXBlKTsKK30KKworLyoqCiAgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lOgogICogQGZyYW1l
OiBhICNXZWJLaXRXZWJGcmFtZQogICoKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlz
dGVuZXJOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5l
ck5vZGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJO
b2RlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZu
ZGVmIEV2ZW50TGlzdGVuZXJOb2RlX2gKKyNkZWZpbmUgRXZlbnRMaXN0ZW5lck5vZGVfaAorCisj
aW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKwor
I2luY2x1ZGUgImdkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIgorCisvKiBUT0RPOiByZXR1cm4g
dGhlIGFjdHVhbCBldmVudCBsaXN0ZW5lciBjcmVhdGVkLCB3aGljaCByZXF1aXJlcworICogYSBn
bGliIHdyYXBwZXIgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCisgKiBUT0RPOiBwcm92aWRlIGEgJ3Jl
bW92ZV9ldmVudF9saXN0ZW5lcicgd2hpY2ggdGFrZXMgdGhhdCBnbGliCisgKiBvYmplY3QgYXMg
YW4gYXJndW1lbnQgKi8KK2V4dGVybiAiQyIgeworV0VCS0lUX0FQSQorZ2Jvb2xlYW4gYWRkX2V2
ZW50X2xpc3RlbmVyKEdkb21FdmVudFRhcmdldE5vZGUgKndmLCBjb25zdCBjaGFyICpuYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNhcHR1cmUpOworfQorCisj
ZW5kaWYgLypFdmVudExpc3RlbmVyTm9kZV9oKi8KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYmZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuaAkocmV2aXNpb24gMzg4NTIpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJm
cmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA3
IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjYsNiArMjcsOSBAQAogCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4K
ICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21Eb2N1bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVdpbmRvdy5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNjUs
NiArNjksMTUgQEAKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogI2VuZGlmCiAKK1dFQktJVF9BUEkgR2RvbVhNTEh0
dHBSZXF1ZXN0ICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X3htbF9odHRwX3JlcXVlc3QgICAgICAg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbURPTVdpbmRv
dyAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93ICAgICAgIChXZWJLaXRXZWJGcmFt
ZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21Eb2N1bWVudCAqCit3ZWJraXRfd2Vi
X2ZyYW1lX2dldF9kb21fZG9jdW1lbnQgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFt
ZSk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF93
ZWJfdmlldyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIApAQCAtOTcsNiAr
MTEwLDEwIEBACiBXRUJLSVRfQVBJIEpTR2xvYmFsQ29udGV4dFJlZgogd2Via2l0X3dlYl9mcmFt
ZV9nZXRfZ2xvYmFsX2NvbnRleHQgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKK1dF
QktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfZnJhbWVfYWRkX2V2ZW50X2xpc3RlbmVyKFdl
YktpdFdlYkZyYW1lKiBmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBnY2hhciAgICAgICAgICAqbmFtZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpJ
bmRleDogV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lcldpbmRvdy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGgg
Q2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgRXZlbnRMaXN0ZW5lcldp
bmRvd19oCisjZGVmaW5lIEV2ZW50TGlzdGVuZXJXaW5kb3dfaAorCisjaW5jbHVkZSA8Z2xpYi5o
PgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKworZXh0ZXJuICJDIiB7Cisv
KiBUT0RPOiBtYWtlIGEgR2RvbUV2ZW50TGlzdGVuZXIgY2xhc3MsIHRvIGJlIHJldHVybmVkIGhl
cmUgKi8KK30KKworI2VuZGlmIC8qRXZlbnRMaXN0ZW5lcldpbmRvd19oKi8KSW5kZXg6IFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJldmVudC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJldmVudC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjA0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2Ns
Lm5ldD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1
ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2
ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRXZlbnRM
aXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5o
IgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJOb2RlLmgiCisjaW5jbHVkZSAiRXZlbnRUYXJnZXRO
b2RlLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSAi
R2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuaCIKKyNp
bmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJOb2Rl
LmgiCisjaW5jbHVkZSAiU3RyaW5nSW1wbC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5j
bHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKKworCisKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudCogZG9jKTsK
KyAgICBncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXROb2RlKiBub2RlKTsKKyAgICBncG9pbnRl
ciB0b0dET00oWE1MSHR0cFJlcXVlc3QqIG5vZGUpOworfQorCisKK2NsYXNzIFhNTEh0dHBSZXF1
ZXN0RXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9t
WE1MSHR0cFJlcXVlc3QqIHdmKQorICAgIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBYTUxIdHRwUmVx
dWVzdEV2ZW50TGlzdGVuZXIod2YpKTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChF
dmVudCosIGJvb2wgdXNlQ2FwdHVyZSk7CisKKyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNoYXIg
KmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0cmR1cChldnR5cGUpOyB9CisgICAgcHJpdmF0ZToKKyAg
ICBjaGFyICptX3R5cGU7CisgICAgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKEdkb21YTUxI
dHRwUmVxdWVzdCogd2YpCisgICAgICAgICAgIDogbV93Zih3ZikKKyAgICAgICAgICAgLCBtX3R5
cGUoTlVMTCkKKyAgICB7fQorICAgIH5YTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoKQorICAg
IHsKKyAgICAgICAgaWYgKG1fdHlwZSkKKyAgICAgICAgICAgIGdfZnJlZShtX3R5cGUpOworICAg
IH0KKyAgICBHZG9tWE1MSHR0cFJlcXVlc3QqIG1fd2Y7Cit9OworCit2b2lkIFhNTEh0dHBSZXF1
ZXN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIHVzZUNhcHR1
cmUpCit7CisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVw
X3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5cGUpOworICAgIEdkb21FdmVudCAqd2V2
ID0gR0RPTV9FVkVOVChXZWJLaXQ6OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShtX3dmLCBldm5hbWUsIHdldiwgdXNlQ2FwdHVyZSwgJnJldHZhbCk7CisgICAgZ19m
cmVlKGV2bmFtZSk7Cit9CisKK2NsYXNzIE5vZGVFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50
TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vZGVFdmVudExpc3Rl
bmVyPiBjcmVhdGUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogd2YpCisgICAgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IE5vZGVFdmVudExpc3RlbmVyKHdmKSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
RXZlbnQoRXZlbnQqLCBib29sIHVzZUNhcHR1cmUpOworCisgICAgdm9pZCBzZXRfdHlwZShjb25z
dCBjaGFyICpldnR5cGUpIHsgbV90eXBlID0gZ19zdHJkdXAoZXZ0eXBlKTsgfQorcHJpdmF0ZToK
KyAgICBjaGFyICptX3R5cGU7CisgICAgTm9kZUV2ZW50TGlzdGVuZXIoR2RvbUV2ZW50VGFyZ2V0
Tm9kZSogd2YpCisgICAgICAgICAgICA6IG1fd2Yod2YpCisgICAgICAgICAgICAsIG1fdHlwZShO
VUxMKQorICAgIHt9CisgICAgfk5vZGVFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlm
IChtX3R5cGUpCisgICAgICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgR2RvbUV2
ZW50VGFyZ2V0Tm9kZSogbV93ZjsKK307CisKK3ZvaWQgTm9kZUV2ZW50TGlzdGVuZXI6OmhhbmRs
ZUV2ZW50KEV2ZW50KiBldmVudCwgYm9vbCB1c2VDYXB0dXJlKQoreworICAgIGdib29sZWFuIHJl
dHZhbDsKKyAgICBjaGFyICpldm5hbWUgPSBnX3N0cmR1cF9wcmludGYoImJyb3dzZXItZXZlbnQ6
OiVzIiwgbV90eXBlKTsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViS2l0Ojp0
b0dET00oZXZlbnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgZXZuYW1lLCB3
ZXYsIHVzZUNhcHR1cmUsICZyZXR2YWwpOworICAgIGdfZnJlZShldm5hbWUpOworfQorCitjbGFz
cyBXaW5kb3dFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVuZXI+IGNyZWF0ZShXZWJLaXRX
ZWJGcmFtZSogd2YpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdpbmRvd0V2
ZW50TGlzdGVuZXIod2YpKTsgCisgICAgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChF
dmVudCosIGJvb2wgaXNXaW5kb3dFdmVudCk7CisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFy
ICpldnR5cGUpIHsgbV90eXBlID0gZ19zdHJkdXAoZXZ0eXBlKTsgfQorcHJpdmF0ZToKKyAgICBj
aGFyICptX3R5cGU7CisgICAgV2luZG93RXZlbnRMaXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogd2Yp
CisgICAgICAgICAgIDogbV93Zih3ZikKKyAgICAgICAgICAgLCBtX3R5cGUoTlVMTCkKKyAgICB7
fQorICAgIH5XaW5kb3dFdmVudExpc3RlbmVyKCkKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUp
CisgICAgICAgICAgICBnX2ZyZWUobV90eXBlKTsKKyAgICB9CisgICAgV2ViS2l0V2ViRnJhbWUq
IG1fd2Y7Cit9OworCit2b2lkIFdpbmRvd0V2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KEV2ZW50
KiBldmVudCwgYm9vbCBpc1dpbmRvd0V2ZW50KQoreworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3Ry
ZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVudDo6JXMiLCBtX3R5cGUpOworICAgIGdib29sZWFuIHJl
dHZhbDsKKyAgICBHZG9tRXZlbnQgKndldiA9IEdET01fRVZFTlQoV2ViS2l0Ojp0b0dET00oZXZl
bnQpKTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZiwgZXZuYW1lLCB3ZXYsIGlzV2lu
ZG93RXZlbnQsICZyZXR2YWwpOworICAgIGdfZnJlZShldm5hbWUpOworfQorCitleHRlcm4gIkMi
IHsKKworZ2Jvb2xlYW4gYWRkX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIoR2RvbVhN
TEh0dHBSZXF1ZXN0ICp3ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy
ICpuYW1lKQoreworICAgIFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0ICpyZXEgPSBXZWJLaXQ6OmNv
cmUod2YpOworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIGlmICgh
cmVxKQorICAgICAgICByZXR1cm4gRkFMU0U7CisKKyAgICBpZiAoc3RyY21wKG5hbWUsICJvbnJl
YWR5c3RhdGVjaGFuZ2UiKSA9PSAwKQorICAgIHsKKyAgICAgICAgUmVmUHRyPFhNTEh0dHBSZXF1
ZXN0RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXI7CisgICAgICAgIGxpc3RlbmVyID0gWE1MSHR0cFJl
cXVlc3RFdmVudExpc3RlbmVyOjpjcmVhdGUod2YpOworICAgICAgICBsaXN0ZW5lci0+c2V0X3R5
cGUobmFtZSk7CisgICAgICAgIHJlcS0+c2V0T25yZWFkeXN0YXRlY2hhbmdlKGxpc3RlbmVyKTsK
KyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfQorICAgIHJldHVybiBGQUxTRTsKK30gCisKK2di
b29sZWFuIGFkZF9ldmVudF9saXN0ZW5lcihHZG9tRXZlbnRUYXJnZXROb2RlICp3ZiwgY29uc3Qg
Y2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiB1c2VDYXB0
dXJlKQoreworICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBub2RlID0gV2ViS2l0Ojpjb3JlKHdm
KTsKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzRXZlbnRUYXJnZXROb2RlKCkpCisgICAgICAg
IHJldHVybiBGQUxTRTsKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKiBldG4gPSAoV1RG
OjpzdGF0aWNfcG9pbnRlcl9jYXN0PFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZT4obm9kZSkpLT50
b05vZGUoKTsKKyAgICBpZiAoIWV0bikKKyAgICAgICAgcmV0dXJuIEZBTFNFOworCisgICAgUmVm
UHRyPE5vZGVFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IE5vZGVFdmVudExpc3RlbmVyOjpjcmVh
dGUod2YpOworICAgIGxpc3RlbmVyLT5zZXRfdHlwZShuYW1lKTsKKyAgICBldG4tPmFkZEV2ZW50
TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpOworCisgICAgcmV0dXJuIFRSVUU7
CisKK30gCisKK2dib29sZWFuIGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJh
bWUgKndmLCBGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgRG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVu
dCgpOworCisgICAgUmVmUHRyPFdpbmRvd0V2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gV2luZG93
RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKHdmKTsKKyAgICBsaXN0ZW5lci0+c2V0X3R5cGUobmFtZSk7
CisgICAgZG9jLT5hZGRXaW5kb3dFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB0cnVlKTsK
KworICAgIHJldHVybiBUUlVFOworCit9IAorCit9IC8qIGV4dGVybiBDICovCkluZGV4OiBXZWJL
aXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNp
b24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKworI2lmbmRlZiBF
dmVudExpc3RlbmVyWG1sSHR0cFJlcXVlc3RfaAorI2RlZmluZSBFdmVudExpc3RlbmVyWG1sSHR0
cFJlcXVlc3RfaAorCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRk
ZWZpbmVzLmg+CisKKworI2luY2x1ZGUgImdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisKKy8q
IFRPRE86IHJldHVybiB0aGUgYWN0dWFsIGV2ZW50IGxpc3RlbmVyIGNyZWF0ZWQsIHdoaWNoIHJl
cXVpcmVzCisgKiBhIGdsaWIgd3JhcHBlciBvYmplY3QgdG8gYmUgY3JlYXRlZC4KKyAqIFRPRE86
IHByb3ZpZGUgYSAncmVtb3ZlX2V2ZW50X2xpc3RlbmVyJyB3aGljaCB0YWtlcyB0aGF0IGdsaWIK
KyAqIG9iamVjdCBhcyBhbiBhcmd1bWVudCAqLworZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJCitn
Ym9vbGVhbiBhZGRfeG1sX2h0dHBfcmVxdWVzdF9ldmVudF9saXN0ZW5lcihHZG9tWE1MSHR0cFJl
cXVlc3QgKndmLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSk7Cit9CisKKyNlbmRp
ZiAvKkV2ZW50TGlzdGVuZXJYbWxIdHRwUmVxdWVzdF9oKi8KSW5kZXg6IFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRkZWZpbmVzLmgJKHJldmlzaW9uIDM4ODUyKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZGVmaW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw5IEBACiAKIEdfQkVHSU5fREVD
TFMKIAordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50IFdlYktpdEV2ZW50OwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgV2ViS2l0RXZlbnRDbGFzczsKKwogdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0IFdlYktpdE5ldHdvcmtSZXF1ZXN0OwogdHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3MgV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFz
czsKIApJbmRleDogV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0
L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxs
a2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZy
ZWVkZXNrdG9wLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEdkb21E
T01PYmplY3RfaAorI2RlZmluZSBHZG9tRE9NT2JqZWN0X2gKKyNpbmNsdWRlICJnbGliLW9iamVj
dC5oIgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMK
KwordHlwZWRlZiBzdHJ1Y3QgX0dkb21ET01PYmplY3QgR2RvbURPTU9iamVjdDsKK3R5cGVkZWYg
c3RydWN0IF9HZG9tRE9NT2JqZWN0Q2xhc3MgR2RvbURPTU9iamVjdENsYXNzOworCisjZGVmaW5l
IEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdkb21fZG9tX29iamVjdF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmpl
Y3QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmpl
Y3RDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVChvYmopICAgICAgICAgKEdfVFlQ
RV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVm
aW5lIEdET01fSVNfRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19U
WVBFKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIEdET01fRE9NX09C
SkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBH
RE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1
Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIEdkb21ET01PYmplY3RQcml2YXRlOworCitzdHJ1Y3Qg
X0dkb21ET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAgR2Rv
bURPTU9iamVjdFByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX0dkb21ET01PYmplY3RDbGFz
cyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5
cGUKK2dkb21fZG9tX29iamVjdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNl
bmRpZiAvKiBHZG9tRE9NT2JqZWN0X2ggKi8KKwpJbmRleDogV2ViS2l0L2d0ay9nZG9tL0dTdHJp
bmdDb252ZXJ0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dTdHJpbmdDb252ZXJ0
LmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR1N0cmluZ0NvbnZlcnQuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgR1N0cmlu
Z0NvbnZlcnRfaAorI2RlZmluZSBHU3RyaW5nQ29udmVydF9oCisKKy8qIGNvbnZlbmllbmNlIGMr
KyBjbGFzcyBmb3IgY29udmVydGluZyB2YXJpb3VzIGRpZmZlcmVudCB3ZWJraXQKKyAqIHN0cmlu
ZyB0eXBlcyBpbnRvIGEgdXRmOCBnbGliIHN0cmluZy4KKyAqLworCisjaW5jbHVkZSAiQXRvbWlj
U3RyaW5nLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXN0cmluZy5oIgorCitp
bmxpbmUgZ2NoYXIgKiBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMpIHsg
cmV0dXJuIGdfc3RyZHVwKHMudXRmOCgpLmRhdGEoKSk7IH0KK2lubGluZSBnY2hhciAqIEdTdHJp
bmdDb252ZXJ0KFdlYkNvcmU6OktVUkwgY29uc3QmIHMpIHsgcmV0dXJuIGdfc3RyZHVwKHMuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7IH0KK2lubGluZSBnY2hhciAqIEdTdHJpbmdDb252ZXJ0KGNv
bnN0IEpTQzo6VVN0cmluZyAmIHMpIHsgcmV0dXJuIGdfc3RyZHVwKHMuVVRGOFN0cmluZygpLmNf
c3RyKCkpOyB9CitpbmxpbmUgZ2NoYXIgKiBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpBdG9taWNT
dHJpbmcgY29uc3QmcykgeyByZXR1cm4gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsgfQorCisjZW5kaWYgLyogR1N0cmluZ0NvbnZlcnRfaCovCkluZGV4OiBXZWJLaXQvZ3RrL2dk
b20vR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3Rr
L2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuaAkocmV2aXNpb24gMCkKKysrIFdlYktp
dC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisg
Ki8KKworI2lmbmRlZiBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZV9oCisjZGVmaW5lIEdkb21F
dmVudFRhcmdldE5vZGVQcml2YXRlX2gKKworI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Tm9kZS5oIgor
I2luY2x1ZGUgImdkb20vR2RvbU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3Qu
aCIKKwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0
Tm9kZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqCisg
ICAgd3JhcChQYXNzUmVmUHRyPFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZT4gcHJwQ29yZU9iamVj
dCk7CisKKyAgICBXZWJDb3JlOjpFdmVudFRhcmdldE5vZGUgKgorICAgIGNvcmUoR2RvbUV2ZW50
VGFyZ2V0Tm9kZSAqcmVxdWVzdCk7Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCklu
ZGV4OiBXZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24g
TGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2Vy
IDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8K
KworI2lmbmRlZiBHZG9tRXZlbnRUYXJnZXROb2RlX2gKKyNkZWZpbmUgR2RvbUV2ZW50VGFyZ2V0
Tm9kZV9oCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0
ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRU
YXJnZXROb2RlIEdkb21FdmVudFRhcmdldE5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50
VGFyZ2V0Tm9kZUNsYXNzIEdkb21FdmVudFRhcmdldE5vZGVDbGFzczsKKworI2RlZmluZSBHRE9N
X1RZUEVfRVZFTlRfVEFSR0VUX05PREUgICAgICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9k
ZV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9FVkVOVF9U
QVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZSkpCisjZGVmaW5lIEdET01fRVZFTlRfVEFS
R0VUX05PREVfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3Mp
LCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3Mp
KQorI2RlZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFKG9iaikgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkp
CisjZGVmaW5lIEdET01fSVNfRVZFTlRfVEFSR0VUX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZUEVf
Q0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFKSkK
KyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9J
TlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdk
b21FdmVudFRhcmdldE5vZGVDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJn
ZXROb2RlUHJpdmF0ZSBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZTsKKworI2luY2x1ZGUgImdk
b20vR2RvbU5vZGUuaCIKKworc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlIHsKKyAgICBHZG9t
Tm9kZSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAq
cHJpdjsKK307CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9t
Tm9kZUNsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK2dkb21fZXZl
bnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIHZvaWQKK2dkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0
Tm9kZSAqdGhpeik7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBkb21FdmVudFRhcmdldE5v
ZGVfaCAqLworCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvZ2RvbS9nZG9tLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vZ2Rv
bS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2MCBAQAorI2luY2x1ZGUgPGdkb20vR2RvbUV2
ZW50VGFyZ2V0Tm9kZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTU9iamVjdC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUF0dHIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21CYXJJbmZvLmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tQ2FudmFzR3JhZGllbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DYW52
YXNQYXR0ZXJuLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUNEQVRBU2VjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNoYXJhY3RlckRhdGEu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DbGlwYm9hcmQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21D
b21tZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ29uc29sZS5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUNvdW50ZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNT
U0ltcG9ydFJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NNZWRpYVJ1bGUuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21DU1NQYWdlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ByaW1p
dGl2ZVZhbHVlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTUnVsZS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUNTU1J1bGVMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJh
dGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1N0eWxlUnVsZS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUNTU1N0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NWYWx1ZS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUNTU1ZhbHVlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNT
U1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTVmFyaWFibGVz
UnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURhdGFiYXNlLmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tRG9jdW1lbnRGcmFnbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURvY3VtZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnRUeXBlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9N
QXBwbGljYXRpb25DYWNoZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTUNvcmVFeGNlcHRpb24u
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01JbXBsZW1lbnRhdGlvbi5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbURPTVBhcnNlci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVNlbGVjdGlvbi5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbURPTVdpbmRvdy5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUVsZW1l
bnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FbnRpdHkuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21F
bnRpdHlSZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FdmVudEV4Y2VwdGlvbi5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRmlsZS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUZpbGVMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSGlzdG9y
eS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxBbmNob3JFbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQXJl
YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTEJsb2NrcXVvdGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJvZHlFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJSRWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxCdXR0b25FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTENhbnZh
c0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQ29sbGVjdGlvbi5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTERpdkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRExpc3RFbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTERvY3VtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxGb250RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGb3JtRWxlbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEhl
YWRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxIdG1sRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxJbnB1dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSXNJbmRleEVs
ZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
TElFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExpbmtFbGVtZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
TWFycXVlZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21IVE1MTW9kRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT3B0
aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxQcmVF
bGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUhUTUxTY3JpcHRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRN
TFNlbGVjdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxUYWJsZUNvbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGFibGVFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTFRleHRBcmVhRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUaXRsZUVsZW1l
bnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSW1hZ2VEYXRhLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSmF2YVNjcmlwdENhbGxG
cmFtZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUtleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21Mb2NhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1lZGlhTGlzdC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbU1lc3NhZ2VFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU1pbWVU
eXBlQXJyYXkuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NaW1lVHlwZS5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbU1vdXNlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NdXRhdGlvbkV2ZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tTmFtZWROb2RlTWFwLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
TmF2aWdhdG9yLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZUZpbHRlci5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbU5vZGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Ob2RlSXRlcmF0b3IuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21Ob2RlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vdGF0aW9u
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbVBsdWdpbkFycmF5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUGx1Z2luLmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
UHJvZ3Jlc3NFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tUmFuZ2UuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21SZWN0Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tU2NyZWVuLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMRXJyb3Iu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TUUxSZXN1bHRTZXQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21TUUxSZXN1bHRTZXRSb3dMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMVHJhbnNhY3Rp
b24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TdG9yYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21TdG9yYWdlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU3R5bGVTaGVldC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbVN0eWxlU2hlZXRMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVGV4dEV2
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVGV4dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVRy
ZWVXYWxrZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21VSUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVdlYktpdFRyYW5zaXRpb25F
dmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVdoZWVsRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0
dHBSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21YTUxTZXJpYWxpemVyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhF
dmFsdWF0b3IuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbVhQYXRoRXhwcmVzc2lvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQYXRo
TlNSZXNvbHZlci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQYXRoUmVzdWx0Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tWFNMVFByb2Nlc3Nvci5oPgpJbmRleDogV2ViS2l0L2d0ay9nZG9tL0dkb21E
T01PYmplY3RQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9nZG9tL0dkb21ET01P
YmplY3RQcml2YXRlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9i
amVjdFByaXZhdGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9y
Zz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5k
ZWYgUHJpdmF0ZUdkb21ET01PYmplY3RfaAorI2RlZmluZSBQcml2YXRlR2RvbURPTU9iamVjdF9o
CisKKyNpbmNsdWRlICJnZG9tL0dkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJnbGliLW9iamVj
dC5oIgorCitzdHJ1Y3QgX0dkb21ET01PYmplY3RQcml2YXRlIHsKKyAgICBncG9pbnRlciBjb3Jl
T2JqZWN0OworfTsKKworI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUob2JqKSAo
R19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwg
R2RvbURPTU9iamVjdFByaXZhdGUpKQorCisjZW5kaWYKKwpJbmRleDogV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDM4ODUy
KQorKysgV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NSBA
QAorMjAwOC0xMS0zMCAgbGtjbCAgPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpwb3N0
UHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWROb3RpZmljYXRpb24pOgorICAgICAgICAqIHdlYmtpdC9F
dmVudExpc3RlbmVyTm9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvRXZlbnRMaXN0ZW5l
cldpbmRvdy5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvRXZlbnRMaXN0ZW5lclhNTEh0dHBS
ZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC9nZG9tLmg6IEFkZGVkLiAgVGhpcyBm
aWxlIHB1bGxzIGluIGFsbCBvZiB0aGUgZ2RvbSBnbGliIGhlYWRlcnMuICBpdCdzIHRoZXJlIGZv
ciBwZW9wbGUgd2hvIHdhbnQgdG8gYmUgbGF6eSBhbmQgbm90IGhhdmUgdG8gI2luY2x1ZGUgMzAw
IGZpbGVzLgorICAgICAgICAqIHdlYmtpdC93ZWJraXRkZWZpbmVzLmg6CisgICAgICAgICogd2Vi
a2l0L3dlYmtpdGV2ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRl
Ojp3ZWJraXRfZXZlbnRfZmluYWxpemUpOgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6
d2Via2l0X2V2ZW50X2NsYXNzX2luaXQpOgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6
d2Via2l0X2V2ZW50X2luaXQpOgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0
X2V2ZW50X25ldyk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3ZWJraXRfZXZlbnRf
Z2V0X2V2ZW50X3R5cGUpOgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2
ZW50X2NhbmNlbF9idWJibGUpOgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0
X2V2ZW50X3ByZXZlbnRfZGVmYXVsdCk6CisgICAgICAgIChfV2ViS2l0RXZlbnRQcml2YXRlOjp3
ZWJraXRfZXZlbnRfc3RvcF9wcm9wYWdhdGlvbik6CisgICAgICAgIChYTUxIdHRwUmVxdWVzdEV2
ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVu
ZXI6OnNldF90eXBlKToKKyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcjo6WE1M
SHR0cFJlcXVlc3RFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFhNTEh0dHBSZXF1ZXN0RXZlbnRM
aXN0ZW5lcjo6flhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChYTUxIdHRw
UmVxdWVzdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KToKKyAgICAgICAgKE5vZGVFdmVudExp
c3RlbmVyOjpjcmVhdGUpOgorICAgICAgICAoTm9kZUV2ZW50TGlzdGVuZXI6OnNldF90eXBlKToK
KyAgICAgICAgKE5vZGVFdmVudExpc3RlbmVyOjpOb2RlRXZlbnRMaXN0ZW5lcik6CisgICAgICAg
IChOb2RlRXZlbnRMaXN0ZW5lcjo6fk5vZGVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKE5vZGVF
dmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChXaW5kb3dFdmVudExpc3RlbmVy
OjpjcmVhdGUpOgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6c2V0X3R5cGUpOgorICAg
ICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6V2luZG93RXZlbnRMaXN0ZW5lcik6CisgICAgICAg
IChXaW5kb3dFdmVudExpc3RlbmVyOjp+V2luZG93RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChX
aW5kb3dFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChhZGRfeG1sX2h0dHBf
cmVxdWVzdF9ldmVudF9saXN0ZW5lcik6CisgICAgICAgIChhZGRfZXZlbnRfbGlzdGVuZXIpOgor
ICAgICAgICAoYWRkX3dpbmRvd19ldmVudF9saXN0ZW5lcik6CisgICAgICAgICogd2Via2l0L3dl
YmtpdGV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6
IGFkZGVkIGJyb3dzZXItZXZlbnQsIHN1cHBvcnQgZm9yIFhNTEh0dHBSZXF1ZXN0LCBnZXR0aW5n
IERPTSBXaW5kb3csIERPTSBEb2N1bWVudCwgYW5kIFdpbmRvdyBldmVudCBsaXN0ZW5lci4KKyAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuaDoKKwogMjAwOC0xMS0yOSAgQ2hyaXN0aWFu
IER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KIAogICAgICAgICBSZXZpZXdlZCBieSBI
b2xnZXIgRnJleXRoZXIuCkluZGV4OiBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2aXNpb24gMzg4NTIp
CisrKyBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTks
NyArNTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gYWx0
R3JhcGhLZXkpOwogCiAgICAgICAgIC8vIFdlYktpdCBFeHRlbnNpb25zCi0jaWYgIWRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoKCFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
KSAmJiAoIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkpKQogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMzg4NTIp
CisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyOCBAQAor
MjAwOC0xMS0zMCAgbGtjbCAgPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBP
UiBDSEFOR0VECisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogYWRkZWQgTEFOR1VBR0VfR09C
SkVDVCwgZ2xpYiBET00gYmluZGluZ3MgZmlsZXMsIGluY2x1ZGluZyBtYXJraW5nIFNWRyBhcyAi
VE9ETyIKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9nZG9tL0dET01CaW5kaW5nLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjphZGRXcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6cmVtb3ZlV3JhcHBlcnMpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlclNldCk6CisgICAg
ICAgIChXZWJDb3JlOjp3cmFwcGVyQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6ZG9tT2JqZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVfZ2RvbV9vYmplY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRET01PYmplY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01PYmplY3QpOgorICAgICAgICAo
V2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01Ob2RlRm9yRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpmb3JnZXRET01Ob2RlRm9y
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjpwdXRE
T01Ob2RlRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJl
dGVyOjpmb3JnZXRBbGxET01Ob2Rlc0ZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdE
T01TY3JpcHRJbnRlcnByZXRlcjo6bWFya0RPTU5vZGVzRm9yRG9jdW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R0RPTVNjcmlwdEludGVycHJldGVyOjp1cGRhdGVET01Ob2RlRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6dG9HRE9NKToKKyAgICAgICAgKFdlYkNvcmU6OnRvR0RPTU5ld2x5
Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y2Fj
aGVET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6Y2FjaGVTVkdET01PYmplY3QpOgorICAg
ICAgICAqIGJpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOiBB
ZGRlZC4gIENvcGllZCBmcm9tIHRoZSBhdXRvLWdlbmVyYXRlZCBKU0hUTUxFbGVtZW50V3JhcHBl
ckZhY3RvcnkuY3BwIAorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQW5jaG9yV3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVBcHBsZXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZUFyZWFXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJhc2VXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJhc2VGb250V3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVCb2R5V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCUldyYXBwZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlQnV0dG9uV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVDYW52YXNXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxlQ2FwdGlv
bldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVDb2xXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1vZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRGlyZWN0b3J5V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEaXZXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURMaXN0V3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVFbWJlZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRmllbGRT
ZXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZvbnRXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUZvcm1XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUZyYW1lV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcmFtZVNldFdyYXBwZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSGVhZGluZ1dyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSGVhZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSFJXcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUh0bWxXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZUlGcmFtZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSW1h
Z2VXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlucHV0V3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVJc0luZGV4V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVMYWJlbFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTGVnZW5kV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVMSVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlTGlua1dyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFwV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNYXJxdWVlV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVNZW51V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVNZXRh
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPYmplY3RXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZU9MaXN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVPcHRHcm91cFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3B0aW9uV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXJhZ3JhcGhXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVBhcmFtV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQ
cmVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVF1b3RlV3JhcHBlcik6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVTY3JpcHRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZVNlbGVjdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3R5bGVXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRhYmxlV3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZVRhYmxlQ2VsbFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGV4dEFyZWFXcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRpdGxlV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVUYWJsZVJvd1dyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
VUxpc3RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdET01IVE1MV3JhcHBlcik6
CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5o
OiAgQWRkZWQuICBDb3BpZWQgZnJvbSB0aGUgYXV0by1nZW5lcmF0ZWQgSlNIVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5LmgKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaDogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcDogQWRkZWQu
CisgICAgICAgIChHU3RyaW5nQ29udmVydDo6R1N0cmluZ0NvbnZlcnQpOgorICAgICAgICAqIGJp
bmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAgIChfR2Rv
bURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9zZXRfcHJpdmF0ZSk6CisgICAgICAg
IChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9nZXRfcHJpdmF0ZSk6Cisg
ICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9maW5hbGl6ZSk6
CisgICAgICAgIChfR2RvbURPTU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9jbGFzc19p
bml0KToKKyAgICAgICAgKF9HZG9tRE9NT2JqZWN0UHJpdmF0ZTo6Z2RvbV9kb21fb2JqZWN0X2lu
aXQpOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21ET01PYmplY3QuaDogQWRk
ZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHA6IEFkZGVkLgorICAgICAgICAoZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9nZXRfcHJpdmF0ZSk6
CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRE9NT2JqZWN0Lmg6
IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vUHJpdmF0ZUludEdkb21FdmVudFRhcmdl
dE5vZGUuaDogQWRkZWQuCisgICAgICAgIChHRE9NRXZlbnRUYXJnZXROb2RlOjpHRE9NRXZlbnRU
YXJnZXROb2RlKToKKyAgICAgICAgKEdET01FdmVudFRhcmdldE5vZGU6OmdldF9nb2JqX3R5cGUp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06IEFk
ZGVkIGdvYmplY3QgYmluZGluZ3MgYXV0by1nZW5lcmF0b3IuCisgICAgICAgICogZG9tL0RPTUNv
cmVFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMg
SURMCisgICAgICAgICogZG9tL0V2ZW50RXhjZXB0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09C
SkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vS2V5Ym9hcmRFdmVudC5pZGw6IGFkZGVk
IExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogZG9tL1JhbmdlRXhjZXB0
aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBo
dG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZp
YyBJREwKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbDogYWRkZWQgTEFOR1VB
R0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBodG1sL0hUTUxFbWJlZEVsZW1lbnQu
aWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGh0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElE
TAorICAgICAgICAqIHBhZ2UvRE9NU2VsZWN0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVD
VC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IGFkZGVkIExBTkdV
QUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmlk
bDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiB4bWwvWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmlj
IElETCAKKyAgICAgICAgKiB4bWwvWFBhdGhFeGNlcHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9H
T0JKRUNULXNwZWNpZmljIElETAorCiAyMDA4LTExLTMwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRl
eDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCShyZXZpc2lvbiAzODg1MikKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtp
bmcgY29weSkKQEAgLTIsMTMgKzIsMjQgQEAKIFdlYkNvcmUgOj0gJChzcmNkaXIpL1dlYkNvcmUK
IAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgOj0gTEFOR1VBR0VfSkFWQVNDUklQVD0xCitG
RUFUVVJFX0RFRklORVNfR0RPTSA6PSBMQU5HVUFHRV9HT0JKRUNUPTEKIFNWR19GRUFUVVJFUyA6
PQogSFRNTF9GRUFUVVJFUyA6PQogCiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUyA6PSAkKFdl
YkNvcmUpL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCiBXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JE
UyA6PSAkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCiAKK2xpYmdkb21fY3BwZmxh
Z3MgKz0gXAorCSQoQ0FJUk9fQ0ZMQUdTKSBcCisJJChHVEtfQ0ZMQUdTKSBcCisJJChMSUJYTUxf
Q0ZMQUdTKSBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKKwktSSQodG9w
X2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQo
c3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJLUkkKHNyY2RpcikvV2Vi
Q29yZSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9qcyBcCiAJLUkkKHNyY2Rpcikv
V2ViQ29yZS9icmlkZ2UgXApAQCAtMjgsNiArMzksNyBAQAogCS1JJChzcmNkaXIpL1dlYkNvcmUv
cGxhdGZvcm0gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MgXAogCS1J
JChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyBcCisJLUkkKHNyY2Rp
cikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL2JtcCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9naWYgXApAQCAtNzIsNyArODQsMzA2IEBACiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oCiAKLUlETF9CSU5ESU5HUyArPSBcCitsaWJn
ZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUF0dHIuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21BdHRyLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21CYXJJbmZvLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NDaGFyc2V0UnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0NoYXJz
ZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DU1NJbXBvcnRSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRp
YVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1bGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUGFnZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ByaW1pdGl2
ZVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZUxpc3Qu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlRGVjbGFyYXRpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxl
U2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZVNoZWV0LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWVM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWVMaXN0LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24uaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q2FudmFzR3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNHcmFk
aWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQYXR0ZXJuLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGF0dGVybi5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2hhcmFjdGVy
RGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNoYXJhY3RlckRhdGEuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2xpcGJvYXJkLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvbW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21tZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db25z
b2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvdW50ZXIuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21Db3VudGVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURP
TUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01Db3JlRXhj
ZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUltcGxlbWVudGF0aW9uLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NSW1wbGVtZW50YXRpb24uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NUGFyc2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVNlbGVjdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVNlbGVjdGlvbi5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21ET01XaW5kb3cuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21ET01XaW5kb3cuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21Eb2N1bWVudEZyYWdtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVu
dFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudFR5cGUuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVu
dGl0eVJlZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUV2ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnRF
eGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnRMaXN0ZW5lci5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50TGlzdGVuZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tRmlsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
QW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBbmNob3JF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFwcGxldEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxCUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQlJFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJv
ZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxDb2xsZWN0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxETGlzdEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRExpc3RFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
RGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRG9jdW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRG9jdW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRW1iZWRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZv
cm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSFJFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIZWFkRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIZWFkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEh0bWxF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTElucHV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJ
bnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMSUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
TGFiZWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMZWdlbmRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1vZEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTW9kRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT0xpc3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxPYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRHcm91
cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTFBhcmFtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJh
bUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUHJlRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MUXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTY3Jp
cHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTZWxlY3RFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJs
ZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDb2xF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRpdGxl
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSGlzdG9yeS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhpc3Rv
cnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRhLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21KYXZh
U2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUtleWJvYXJkRXZl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21LZXlib2FyZEV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFMaXN0LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZXNzYWdlUG9ydC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VQb3J0LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbU1pbWVUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
TWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGVBcnJheS5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1pbWVUeXBlQXJyYXkuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tTW91c2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTXV0YXRpb25FdmVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU11dGF0aW9uRXZlbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTmFtZWROb2RlTWFwLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hdmlnYXRv
ci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hdmlnYXRvci5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21Ob2RlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9k
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlRmlsdGVyLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUZpbHRlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21Ob2RlSXRlcmF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlSXRlcmF0
b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21Ob2RlTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21O
b3RhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vdGF0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbU92ZXJmbG93RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21PdmVyZmxvd0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBs
dWdpbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21QbHVnaW5BcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVBsdWdpbkFycmF5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2Nlc3NpbmdJbnN0
cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Qcm9ncmVzc0V2ZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJvZ3Jlc3NFdmVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21SYW5nZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdl
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmFuZ2VFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJlY3QuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU2NyZWVuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU2NyZWVuLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVN0eWxlU2hlZXRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dEV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRNZXRyaWNzLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dE1ldHJpY3MuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRyZWVXYWxrZXIu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVUlFdmVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0
QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRBbmlt
YXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdENTU1RyYW5zZm9y
bVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdFRyYW5zaXRpb25FdmVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XaGVlbEV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tV2hlZWxFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
TUxIdHRwUmVxdWVzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1
ZXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9u
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RVcGxvYWQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxTZXJpYWxpemVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tWE1MU2VyaWFsaXplci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
U0xUUHJvY2Vzc29yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFNMVFByb2Nlc3Nv
ci5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3Rv
cnkuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuaCAKKworSURMX0JJTkRJTkdTICs9ICBcCiAJV2ViQ29yZS9jc3MvQ1NTQ2hhcnNldFJ1
bGUuaWRsIFwKIAlXZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKIAlXZWJDb3JlL2Nz
cy9DU1NJbXBvcnRSdWxlLmlkbCBcCkBAIC0yMzEsNiArNTQyLDE4IEBACiAJV2ViQ29yZS94bWwv
WE1MU2VyaWFsaXplci5pZGwgXAogCVdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAKK2xp
Ymdkb21fc291cmNlcyArPSBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmNw
cCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmggXAorCVdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dk
b21ET01PYmplY3QuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3RQcml2
YXRlLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcCBc
CisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaCBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlLmNwcCBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlLmgKKworCiB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvV2ViQ29yZVByZWZpeC5oIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggXApAQCAtMTgwNiw3ICsyMTI5LDEx
IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKIEZFQVRVUkVf
REVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQor
RkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0x
CiAKK2xpYmdkb21fYnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
RE9NQXBwbGljYXRpb25DYWNoZS5jcHAKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbAogCkBAIC0xODQ3LDcgKzIxNzQs
MjAgQEAKICMgLS0tLQogaWYgRU5BQkxFX0RBVEFCQVNFCiBGRUFUVVJFX0RFRklORVNfSkFWQVND
UklQVCArPSBFTkFCTEVfREFUQUJBU0U9MQorRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxF
X0RBVEFCQVNFPTEKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21EYXRhYmFzZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURhdGFi
YXNlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTEVycm9yLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1FMRXJyb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1FMUmVzdWx0U2V0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFRyYW5zYWN0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uaCAKKwogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaWRsIFwK
QEAgLTE5MjAsNyArMjI2MCwxNCBAQAogIyAtLS0tCiBpZiBFTkFCTEVfRE9NX1NUT1JBR0UKIEZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCitGRUFUVVJF
X0RFRklORVNfR0RPTSArPSBFTkFCTEVfRE9NX1NUT1JBR0U9MQogCitsaWJnZG9tX2J1aWx0X3Nv
dXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0b3JhZ2UuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TdG9yYWdlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVN0b3JhZ2VFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0b3JhZ2VFdmVu
dC5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmlkbCBc
CiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudC5pZGwKQEAgLTE5NzksNiArMjMyNiw3IEBA
CiAjIC0tLS0KIGlmIEVOQUJMRV9WSURFTwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX1ZJREVPPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9WSURFTz0xCiAK
IEhUTUxfRkVBVFVSRVMgKz0gRU5BQkxFX1ZJREVPPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURF
TkFCTEVfVklERU89MQpAQCAtMTk4Nyw2ICsyMzM1LDIyIEBACiB3ZWJjb3JlX2NwcGZsYWdzICs9
IC1ER1NUX0RJU0FCTEVfREVQUkVDQVRFRAogZW5kaWYgIyBFTkQgRU5BQkxFX0RFQlVHCiAKK2xp
Ymdkb21fYnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEF1
ZGlvRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBdWRpb0VsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1lZGlhRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZWRpYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTFNvdXJjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MU291cmNlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MVmlkZW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFZpZGVv
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZWRpYUVycm9yLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFFcnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21UaW1lUmFuZ2VzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGltZVJh
bmdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Wb2lkQ2FsbGJhY2suY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21Wb2lkQ2FsbGJhY2suaCAKKwogSURMX0JJTkRJTkdTICs9
IFwKIAlXZWJDb3JlL2h0bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGwgXAogCVdlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmlkbCBcCkBAIC0yMDI5LDEzICsyMzkzLDI2IEBACiAjIC0tLS0KIGlm
IEVOQUJMRV9YUEFUSAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hQQVRI
PTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9YUEFUSD0xCiAKIHdlYmNvcmVfY3Bw
ZmxhZ3MgKz0gLURFTkFCTEVfWFBBVEg9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAog
CURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hQYXRo
R3JhbW1hci5oCisJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmggCiAKK2xpYmdkb21fYnVp
bHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3Iu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQ
YXRoRXhwcmVzc2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVz
c2lvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21YUGF0aFJlc3VsdC5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUveG1sL1hQYXRo
RXZhbHVhdG9yLmlkbCBcCiAJV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsIFwKQEAgLTIw
OTksNiArMjQ3Niw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9YU0xUCiBGRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfWFNMVD0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFC
TEVfWFNMVD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFNMVD0xCiAKQEAgLTIy
MDEsNiArMjU3OSw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9TVkcKIEZFQVRVUkVfREVGSU5FU19K
QVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJM
RV9TVkc9MSAtIGJpZyBUT0RPISA6KQogCiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUyArPSAk
KFdlYkNvcmUpL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluIAogV0VCQ09SRV9DU1NfVkFMVUVf
S0VZV09SRFMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMjIx
NCw2ICsyNTkzLDI3MyBAQAogCURlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvWExpbmtOYW1lcy5jcHAKIAorbm90LXlldDoKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0FuZ2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVDb2xv
ckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlQ29sb3JF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdBbmltYXRlZEJvb2xlYW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdBbmltYXRlZEJvb2xlYW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVk
RW51bWVyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRl
Z2VyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0FuaW1hdGVkTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
QW5pbWF0ZWROdW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRO
dW1iZXJMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1i
ZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVB
c3BlY3RSYXRpby5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJl
c2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRl
ZFJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJlY3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0FuaW1hdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
Q2lyY2xlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NpcmNsZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHQ3Vyc29yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZWZpbml0
aW9uU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZmluaXRp
b25TcmNFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZnNFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVmc0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdEZXNjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdEb2N1bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RvY3VtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0VsZW1lbnRJbnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1l
bnRJbnN0YW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50SW5zdGFu
Y2VMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudEluc3RhbmNl
TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3Rv
cnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGxpcHNlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0V4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUJs
ZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQmxlbmRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFw
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFRnVuY0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFRnVuY0JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
RkVGdW5jQkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jR0Vs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNSRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRUltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
TWVyZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHRkVUaWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0ZFVGlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVUdXJidWxl
bmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFVHVyYnVsZW5j
ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRmlsdGVyRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdGb250RmFjZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250
RmFjZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3Jt
YXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3Jt
YXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlTmFtZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZU5hbWVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0dFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHTGVuZ3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMaW5lRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNYXJrZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdNYXNrRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01h
c2tFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdNZXRhZGF0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdNZXRhZGF0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWlz
c2luZ0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01pc3Np
bmdHbHlwaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR051bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdOdW1iZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhaW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGFpbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdQYXRoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aFNlZ0FyY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXRoU2VnQXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0FyY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRo
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Nt
b290aEFicy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Nt
b290aFJlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljU21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhT
ZWdMaW5ldG9BYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGlu
ZXRvQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xp
bmV0b0hvcml6b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXRoU2VnTGluZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRv
VmVydGljYWxBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGlu
ZXRvVmVydGljYWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0xpbmV0b1ZlcnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhT
ZWdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUGF0dGVybkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQ
YXR0ZXJuRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2ludC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1BvaW50TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1BvaW50TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2x5Z29uRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlnb25FbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1JlY3QuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdSZW5kZXJpbmdJbnRlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdS
ZW5kZXJpbmdJbnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU1ZHRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NWR0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHU2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NldEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RvcEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdG9wRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdTdHJpbmdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHU3RyaW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N3aXRjaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1N5bWJvbEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFJlZkVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUUmVmRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHVGV4dENvbnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R1RleHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1RpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdUcmFuc2Zvcm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zvcm0u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHVW5pdFR5cGVzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHVW5pdFR5cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1VzZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdVc2VFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHVmlld0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
Wm9vbUV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50Lmgg
CisKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlk
bCBcCiAJV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTI3OTAsMzYgKzM0MzYsNDIg
QEAKICMgU1ZHIEZlYXR1cmVzCiBpZiBFTkFCTEVfU1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19VU0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVO
QUJMRV9TVkdfVVNFPTEgIyBiaWcgVE9ETyEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VT
RT0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYg
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5B
QkxFX1NWR19GT1JFSUdOX09CSkVDVD0xIAogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9S
RUlHTl9PQkpFQ1Q9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9P
QkpFQ1Q9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT05UUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0g
RU5BQkxFX1NWR19GT05UUz0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3
ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFC
TEVfU1ZHX0ZJTFRFUlMKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdf
RklMVEVSUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GSUxURVJTPTEK
IFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyAr
PSAtREVOQUJMRV9TVkdfRklMVEVSUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdF
CiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNG
RUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJF
UyArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
U1ZHX0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9E
RUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVO
QUJMRV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FO
SU1BVElPTj0xCiBlbmRpZgpAQCAtMjgyNyw2ICszNDc5LDcgQEAKICMgU1ZHIHRhZyBhbmQgYXR0
cmlidXRlIG5hbWVzIChuZWVkIHRvIHBhc3MgYW4gZXh0cmEgZmxhZyBpZiBzdmcgZXhwZXJpbWVu
dGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkKQogRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwOiBE
ZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA7CiBEZXJpdmVkU291cmNlcy9KU1NW
R0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0
b3J5LmNwcAorRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFH
UwogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9t
YWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3Zn
YXR0cnMuaW4KQEAgLTI5NTAsNiArMzYwMywxMyBAQAogCiB2cGF0aCAlLmlkbCA9ICQoSURMX1BB
VEgpCiAKKworRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5oOiBEZXJpdmVkU291cmNlcy9nZG9t
L0dkb20lLmNwcDsKKworRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA6ICUuaWRsICQoU0NS
SVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNv
cmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1pbmNsdWRlICQoV2Vi
Q29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUpL2h0bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkv
Y3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2UgLS1pbmNsdWRlICQoV2ViQ29yZSkveG1sIC0t
aW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTR0RPTSkiIC0t
ZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVNfR0RPTSkiIC0tZ2VuZXJhdG9yIEdPYmplY3QgJDwK
KworCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDsKIAogLlNF
Q09OREFSWToKQEAgLTMwMDksNiArMzY2OSw3IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1i
aW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIFwK
IAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1aXJrcy5jc3MgXAogCVdl
YkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBcCkBAIC0zMDU2LDQgKzM3MTcsMyBAQAogCWxpYldl
YkNvcmVKUy5sYSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UubHV0Lmgg
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5sdXQuaAotCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9y
eS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVt
ZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVk
ZXNrdG9wLm9yZz4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisvKiBOb3RlOiBUaGlzIGZpbGUgaXMg
ZGVyaXZlZCBieSBoYW5kIGZyb20gYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQKKyBmaWxlLgor
IAorIEtlZXBpbmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBkb25lIGJ5IGFk
ZGluZyBhCisgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0
ZSBnZW5lcmF0ZXIgd2hpY2gKKyB0YWtlcyBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBh
cyBpbnB1dC4KKyovCisKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJnZG9t
L0dkb21Ob2RlLmgiCisjaW5jbHVkZSAiR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFyZWFFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxC
bG9ja3F1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCb2R5RWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxDYW52YXNFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTE1vZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxFbWJl
ZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZyYW1lRWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSGVh
ZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSFJFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElG
cmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxMYWJlbEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGlua0Vs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxN
ZW51RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNZXRhRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPcHRHcm91cEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TFBhcmFtRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQcmVFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFNlbGVjdEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxU
YWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50Lmgi
CisKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MQXBwbGV0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQXJlYUVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCYXNlRm9udEVsZW1lbnRQcml2YXRlLmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxCb2R5RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MQlJFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCdXR0b25F
bGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50UHJp
dmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRQcml2YXRlLmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1vZEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTERpdkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERMaXN0RWxl
bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnRQcml2YXRlLmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxGb3JtRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
RnJhbWVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGcmFtZVNldEVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50UHJp
dmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIZWFkRWxlbWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MSFJFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxIdG1sRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSUZy
YW1lRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50
UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTExlZ2VuZEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExJ
RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGlua0VsZW1lbnRQcml2
YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnRQcml2YXRlLmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxNZW51RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
TWV0YUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9iamVjdEVsZW1l
bnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxQYXJhbUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFByZUVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MU2VsZWN0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxUYWJsZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudFByaXZhdGUuaCIKKworI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgorCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
QXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQm9keUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJ1dHRvbkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ29sRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpcmVjdG9yeUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxETGlzdEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZp
ZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRpbmdFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhSRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJ
bnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFycXVlZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWV0YUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPTGlz
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyYWdyYXBoRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUHJlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2NyaXB0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFN0
eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUaXRs
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU6OkhUTUxOYW1lczsKKwordHlwZWRlZiBncG9pbnRlciAoKkNyZWF0ZUhUTUxFbGVtZW50V3Jh
cHBlckZ1bmN0aW9uKShQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK3N0YXRpYyBncG9pbnRl
ciBjcmVhdGVBbmNob3JXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIHdyYXBIVE1MQW5jaG9yRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQW5jaG9y
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUFw
cGxldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxBcHBsZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBcHBsZXRFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQXJlYVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxB
cmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVCYXNlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJhc2VFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxCYXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZUJhc2VGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJhc2VGb250RWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQmFzZUZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50
ZXIgY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxCbG9ja3F1b3RlRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MQmxvY2txdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9p
bnRlciBjcmVhdGVCb2R5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTEJvZHlFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCb2R5RWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUJSV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFw
SFRNTEJSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQlJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQnV0dG9uV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJ1dHRvbkVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBncG9pbnRlciBjcmVhdGVDYW52YXNXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MQ2FudmFzRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MQ2FudmFzRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2lu
dGVyIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVDb2xXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGFibGVDb2xFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxUYWJsZUNvbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVNb2RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIHdyYXBIVE1MTW9kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTW9kRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZURpcmVj
dG9yeVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxEaXJlY3RvcnlFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxEaXJlY3RvcnlFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGl2V3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFw
SFRNTERpdkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERpdkVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVETGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxETGlzdEVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTERMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIGdwb2ludGVyIGNyZWF0ZUVtYmVkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEVtYmVkRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MRW1iZWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIg
Y3JlYXRlRmllbGRTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIHdyYXBIVE1MRmllbGRTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGaWVs
ZFNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVh
dGVGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiB3cmFwSFRNTEZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb250RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUZvcm1XcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRm9y
bUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRnJhbWVFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVGcmFtZVNldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxGcmFtZVNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEZyYW1lU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2lu
dGVyIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIHdyYXBIVE1MSGVhZGluZ0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhl
YWRpbmdFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3Jl
YXRlSGVhZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gd3JhcEhUTUxIZWFkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVIUldyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxIUkVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIGdwb2ludGVyIGNyZWF0ZUh0bWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSHRtbEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEh0bWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIg
Y3JlYXRlSUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTElGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVJbWFn
ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4g
d3JhcEhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUlucHV0V3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTElucHV0
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSXNJbmRleFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxJc0luZGV4RWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBncG9pbnRlciBjcmVhdGVMYWJlbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxMYWJlbEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTExhYmVsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVy
IGNyZWF0ZUxlZ2VuZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gd3JhcEhUTUxMZWdlbmRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMZWdlbmRF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTElX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdy
YXBIVE1MTElFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMSUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVMaW5rV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTExpbmtFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IGdwb2ludGVyIGNyZWF0ZU1hcFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxNYXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNYXBF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTWFy
cXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxNYXJxdWVlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFycXVlZUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVNZW51V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRN
TE1lbnVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNZW51RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU1ldGFXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTWV0YUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlT2JqZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE9iamVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBj
cmVhdGVPTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gd3JhcEhUTUxPTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9MaXN0RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU9wdEdyb3Vw
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3
cmFwSFRNTE9wdEdyb3VwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlT3B0aW9uV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRN
TE9wdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVQYXJhZ3JhcGhXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MUGFyYWdy
YXBoRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYWdyYXBoRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVBhcmFtV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFBhcmFtRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MUGFyYW1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgZ3BvaW50ZXIgY3JlYXRlUHJlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFByZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TFByZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVh
dGVRdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gd3JhcEhUTUxRdW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVNjcmlwdFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhU
TUxTY3JpcHRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTY3JpcHRFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlU2VsZWN0V3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFNlbGVjdEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVTdHlsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxTdHlsZUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZVRhYmxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreworICAgIHJldHVybiB3cmFwSFRNTFRhYmxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFi
bGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
VGFibGVTZWN0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRl
ciBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGFibGVDZWxsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
VGFibGVDZWxsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVy
IGNyZWF0ZVRleHRBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTFRleHRBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGV4
dEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3Jl
YXRlVGl0bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAg
cmV0dXJuIHdyYXBIVE1MVGl0bGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUaXRsZUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUYWJsZVJvd1dy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3Jh
cEhUTUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlUm93RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVVMaXN0V3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFVM
aXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVUxpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitncG9pbnRlciBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3JlOjpB
dG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24+IG1hcDsK
KyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAgIG1hcC5zZXQoYVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYXBwbGV0VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0V3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXJlYVdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmFz
ZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJsb2NrcXVvdGVUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChib2R5VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
YnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCUldyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQnV0dG9uV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVDYW52YXNX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChkZWxU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGl2V3JhcHBlcik7
CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURMaXN0V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmaWVsZHNldFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb250VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZm9y
bVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1XcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVT
ZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaGVhZFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhyVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGh0bWxUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpZnJh
bWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJhbWVXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlucHV0V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGFiZWxUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGVnZW5kVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBlcik7CisgICAgICAgbWFwLnNldChs
aVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGlua1dyYXBwZXIpOworICAgICAg
IG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFwV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFycXVl
ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1ldGFUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChvYmplY3RUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9sVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0R3JvdXBXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9wdGlv
bldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocGFyYW1UYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocHJlVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChxVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHNj
cmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNjcmlwdFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVN0
eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Ym9keVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGV4dEFyZWFXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
VGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHVsVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbGdyb3VwVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRp
bmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDZUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbWFnZVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbnNU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVU
YWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aGVhZFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAg
fQorCisgICAgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1
bmN0aW9uID0KKyAgICAgICAgbWFwLmdldChlbGVtZW50LT5sb2NhbE5hbWUoKS5pbXBsKCkpOwor
ICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBjcmVhdGVXcmFw
cGVyRnVuY3Rpb24oZWxlbWVudCk7CisgICAgcmV0dXJuIHdyYXBIVE1MRWxlbWVudChlbGVtZW50
LmdldCgpKTsKK30KKworfQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50
VGFyZ2V0Tm9kZVByaXZhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0
aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJ
bmMuCisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3Qu
aCIKKyNpbmNsdWRlICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJn
ZXROb2RlLmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuaCIKKyNpbmNs
dWRlICJHZG9tRE9NT2JqZWN0UHJpdmF0ZS5oIiAKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgi
CisjaW5jbHVkZSAiR2RvbUV2ZW50LmgiCitlbnVtIHsKKyAgICBCUk9XU0VSX0VWRU5ULAorICAg
IExBU1RfU0lHTkFMCit9OworCitzdGF0aWMgZ3VpbnQgZXZlbnRfc2lnbmFsc1tMQVNUX1NJR05B
TF0gPSB7IDAsIH07CisKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0dkb21FdmVudFRhcmdldE5v
ZGUgKgord3JhcChQYXNzUmVmUHRyPFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZT4gcHJwQ29yZU9i
amVjdCkKK3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6RXZlbnRUYXJnZXROb2RlPiBjb3JlT2JqZWN0
ID0gcHJwQ29yZU9iamVjdDsKKworICAgIEdkb21FdmVudFRhcmdldE5vZGUgKndyYXBwZXIgPSBH
RE9NX0VWRU5UX1RBUkdFVF9OT0RFKGdfb2JqZWN0X25ldyhHRE9NX1RZUEVfRVZFTlRfVEFSR0VU
X05PREUsIE5VTEwpKTsKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9N
X09CSkVDVF9HRVRfUFJJVkFURShHRE9NX0RPTV9PQkpFQ1Qod3JhcHBlcikpOworCisgICAgV2Vi
Q29yZTo6RXZlbnRUYXJnZXROb2RlICpyYXdDb3JlT2JqZWN0ID0gY29yZU9iamVjdC5nZXQoKTsK
KyAgICByYXdDb3JlT2JqZWN0LT5yZWYoKTsKKyAgICBwcml2LT5jb3JlT2JqZWN0ID0gcmF3Q29y
ZU9iamVjdDsKKworICAgIHJldHVybiB3cmFwcGVyOworfQorCitXZWJDb3JlOjpFdmVudFRhcmdl
dE5vZGUgKgorY29yZShHZG9tRXZlbnRUYXJnZXROb2RlICpyZXF1ZXN0KQoreworICAgIEdkb21E
T01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKEdET01f
RE9NX09CSkVDVChyZXF1ZXN0KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2
ZW50VGFyZ2V0Tm9kZSAqPihwcml2LT5jb3JlT2JqZWN0KTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5FX1RZUEUoR2RvbUV2ZW50VGFyZ2V0
Tm9kZSwgZ2RvbV9ldmVudF90YXJnZXRfbm9kZSwgR0RPTV9UWVBFX05PREUpOworCisjZGVmaW5l
IEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNF
X0dFVF9QUklWQVRFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUsIEdkb21FdmVu
dFRhcmdldE5vZGVQcml2YXRlKSkKKworCitzdGF0aWMgdm9pZCBnZG9tX2V2ZW50X3RhcmdldF9u
b2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBHX09CSkVDVF9DTEFTUyhnZG9t
X2V2ZW50X3RhcmdldF9ub2RlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisK
K3N0YXRpYyB2b2lkIGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfY2xhc3NfaW5pdChHZG9tRXZlbnRU
YXJnZXROb2RlQ2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBldmVudF9zaWduYWxzW0JST1dT
RVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2ZW50IiwKKyAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1MocmVxdWVzdENsYXNzKSwKKyAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdO
QUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04gfAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHX1NJR05BTF9ERVRBSUxFRCAgICApLAorICAgICAgICAwLAorICAgICAgICBO
VUxMLAorICAgICAgICBOVUxMLAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1Rf
Qk9PTEVBTiwKKyAgICAgICAgR19UWVBFX05PTkUsIDIsCisgICAgICAgIEdET01fVFlQRV9FVkVO
VCwgR19UWVBFX0JPT0xFQU4pOworCisgICAgR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKS0+
ZmluYWxpemUgPSBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2ZpbmFsaXplOworfQorCitzdGF0aWMg
dm9pZCBnZG9tX2V2ZW50X3RhcmdldF9ub2RlX2luaXQoR2RvbUV2ZW50VGFyZ2V0Tm9kZSogcmVx
dWVzdCkKK3sKK30KKworfSAvKiBleHRlcm4gIkMiICovCisKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvZ2RvbS9HRE9NQmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9HRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjI1IEBACisvKgorICog
IENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisg
KiAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5p
ZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IE1h
cnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKy8vIGdjYyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUgSGFzaE1hcCBw
b2ludGVyIHNwZWNpYWxpemF0aW9uCisvLyBpbiB0aGlzIGZpbGUKKyNpZiBkZWZpbmVkIF9fR05V
Q19fICYmICFkZWZpbmVkIF9fR0xJQkNYWF9fIC8vIGxlc3MgdGhhbiBnY2MgMy40CisjZGVmaW5l
IEhBU0hfTUFQX1BUUl9TUEVDX1dPUktBUk9VTkQgMQorI2VuZGlmCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNp
bmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdFByaXZhdGUu
aCIKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdy
YXBwZXJGYWN0b3J5LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAi
R2RvbUNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVTaGVldFByaXZhdGUu
aCIKKworI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJHZG9tTm9kZVByaXZhdGUuaCIKKworI2luY2x1ZGUgIkF0
dHIuaCIKKyNpbmNsdWRlICJDREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgor
I2luY2x1ZGUgIkNvbW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJF
bnRpdHkuaCIKKyNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21FdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJHZG9t
QXR0ci5oIgorI2luY2x1ZGUgIkdkb21BdHRyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DaGFy
YWN0ZXJEYXRhLmgiCisjaW5jbHVkZSAiR2RvbVRleHQuaCIKKyNpbmNsdWRlICJHZG9tQ0RBVEFT
ZWN0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUNvbW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnRGcmFnbWVudC5oIgorI2luY2x1ZGUgIkdkb21E
b2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5LmgiCisjaW5jbHVkZSAiR2RvbUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiR2RvbUNT
U1ByaW1pdGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiR2RvbUVudGl0eVJlZmVyZW5jZS5oIgorI2lu
Y2x1ZGUgIkdkb21Ob3RhdGlvbi5oIgorI2luY2x1ZGUgIkdkb21IVE1MRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiTm90YXRpb24u
aCIKKyNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisK
KyNpbmNsdWRlICJHZG9tQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgiCisj
aW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5oIgor
I2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisjaW5j
bHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTVmFyaWFibGVzUnVsZS5oIgorI2lu
Y2x1ZGUgIkdkb21DU1NDaGFyc2V0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1
bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTSW1wb3J0UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NN
ZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUGFnZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9t
Q1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdkb21FdmVudFByaXZhdGUuaCIKKworI2luY2x1
ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUNsaXBi
b2FyZC5oIgorI2luY2x1ZGUgIkdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU1l
c3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiR2Rv
bU11dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1
ZGUgIkdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVRleHRFdmVudC5oIgorI2lu
Y2x1ZGUgIkdkb21VSUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50
LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdk
b21XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dC5oIgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNZXNzYWdlRXZlbnQu
aCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgor
I2luY2x1ZGUgIk92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisj
aW5jbHVkZSAiVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1ZGUgIldl
YktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmgi
CisjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5oIgorCisjaW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRl
ICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUg
IkhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkdkb21IVE1MT3B0aW9uc0NvbGxl
Y3Rpb24uaCIKKworI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyNpbmNsdWRlICJHZG9tU3RvcmFn
ZUV2ZW50LmgiCisjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCisjZW5kaWYKKworI2lmIEVOQUJM
RShTVkcpCisjaWYgMCAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworI2luY2x1ZGUgIkdkb21TVkda
b29tRXZlbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1
ZGUgIlNWR1pvb21FdmVudC5oIgorI2VuZGlmCisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisj
aWYgMCAvKiBYWFggVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyNpbmNsdWRlICJHZG9tU1ZHRWxlbWVu
dFdyYXBwZXJGYWN0b3J5UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50V3JhcHBl
ckZhY3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisj
aWYgMAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiR2RvbVNWR0V4Y2VwdGlvbi5oIgorI2lu
Y2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgIkdkb21D
REFUQVNlY3Rpb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0NoYXJzZXRSdWxlUHJpdmF0
ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAi
R2RvbUNTU0ltcG9ydFJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU01lZGlhUnVsZVBy
aXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUGFnZVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAi
R2RvbUNTU1ByaW1pdGl2ZVZhbHVlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NSdWxlUHJp
dmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NTdHlsZVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAi
R2RvbUNTU1ZhbHVlTGlzdFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFsdWVQcml2YXRl
LmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxlc1J1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAi
R2RvbUNsaXBib2FyZFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudFByaXZhdGUuaCIK
KyNpbmNsdWRlICJHZG9tRG9jdW1lbnRGcmFnbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9t
RG9jdW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50VHlwZVByaXZhdGUuaCIK
KyNpbmNsdWRlICJHZG9tRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHlSZWZlcmVuY2VQcml2YXRlLmgiCisjaW5jbHVk
ZSAiR2RvbUhUTUxDb2xsZWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21IVE1MRG9jdW1l
bnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvblByaXZhdGUu
aCIKKyNpbmNsdWRlICJHZG9tS2V5Ym9hcmRFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9t
TWVzc2FnZUV2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIkdkb21NdXRhdGlvbkV2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21O
b3RhdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudFByaXZhdGUuaCIK
KyNpbmNsdWRlICJHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUg
Ikdkb21Qcm9ncmVzc0V2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21TdG9yYWdlRXZlbnRQ
cml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVN0eWxlU2hlZXRQcml2YXRlLmgiCisjaW5jbHVkZSAi
R2RvbVRleHRFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tVGV4dFByaXZhdGUuaCIKKyNp
bmNsdWRlICJHZG9tVUlFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tV2ViS2l0QW5pbWF0
aW9uRXZlbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tV2hlZWxFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJH
ZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50UHJpdmF0ZS5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTo6SFRNTE5hbWVzOworCit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBET01PYmpl
Y3RNYXA7CisKK3N0YXRpYyBET01PYmplY3RNYXAmIGRvbU9iamVjdHMoKQoreworICAgIHN0YXRp
YyBET01PYmplY3RNYXAgc3RhdGljRE9NT2JqZWN0czsKKyAgICByZXR1cm4gc3RhdGljRE9NT2Jq
ZWN0czsKK30KKworZ3BvaW50ZXIgR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3Qodm9pZCog
b2JqZWN0SGFuZGxlKQoreworICAgIGdwb2ludGVyIHJldCA9IGRvbU9iamVjdHMoKS5nZXQob2Jq
ZWN0SGFuZGxlKTsKKyAgICByZXR1cm4gcmV0OworfQorCitncG9pbnRlciBHRE9NT2JqZWN0Q2Fj
aGU6OnB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIGdwb2ludGVyIHdyYXBwZXIpCit7
CisgICAgZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIHdyYXBwZXIpOworICAgIHJldHVy
biB3cmFwcGVyOworfQorCit2b2lkIEdET01PYmplY3RDYWNoZTo6Zm9yZ2V0RE9NT2JqZWN0KHZv
aWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICBkb21PYmplY3RzKCkudGFrZShvYmplY3RIYW5kbGUp
OworfQorCitncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBpZiAoIWRvYykK
KyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENh
Y2hlOjpnZXRET01PYmplY3QoZG9jKTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdv
Ymo7CisKKyAgICBncG9pbnRlciByZXQ7CisKKyAgICBpZiAoZG9jLT5pc0hUTUxEb2N1bWVudCgp
KQorICAgICAgICByZXQgPSB3cmFwSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxEb2N1bWVu
dCo+KGRvYykpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5pc1NWR0RvY3Vt
ZW50KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gLSBzZWUgIzIw
NTg2ICovCisjaWYgMAorICAgICAgICByZXQgPSB3cmFwU1ZHRG9jdW1lbnQoc3RhdGljX2Nhc3Q8
U1ZHRG9jdW1lbnQqPihkb2MpKTsKKyNlbmRpZgorICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAg
ICAgICAgcmV0ID0gd3JhcERvY3VtZW50KGRvYyk7CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENh
Y2hlOjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
V3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3bHlDcmVhdGVkKE5vZGUq
IG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJl
dHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOworfQorCitncG9pbnRlciB0b0dET00oTm9kZSogbm9k
ZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50
ZXIgcmV0ID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3Qobm9kZSk7CisgICAgaWYgKHJl
dCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUp
OworfQorCitncG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIHZhbHVlKQoreworICAgIGlmICghdmFs
dWUpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmpl
Y3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICBy
ZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldDsKKworICAgIGlmICh2YWx1ZS0+aXNWYWx1
ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gd3JhcENTU1ZhbHVlTGlzdChzdGF0aWNfY2FzdDxDU1NW
YWx1ZUxpc3QqPih2YWx1ZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAodmFsdWUt
PmlzU1ZHUGFpbnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPIC0gc2Vl
ICMyMDU4NiAqLworICAgICAgICAvL3JldCA9IHdyYXBTVkdQYWludChzdGF0aWNfY2FzdDxTVkdQ
YWludCo+KHZhbHVlKSk7CisgICAgfQorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR0NvbG9yKCkp
CisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyAg
ICAgICAgLy9yZXQgPSB3cmFwU1ZHQ29sb3Ioc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSkp
OworICAgIH0KKyNlbmRpZgorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkp
CisgICAgICAgIHJldCA9IHdyYXBDU1NQcmltaXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcmlt
aXRpdmVWYWx1ZSo+KHZhbHVlKSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwQ1NTVmFs
dWUodmFsdWUpOworCisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KHZh
bHVlLCByZXQpOworfQorCitzdGF0aWMgQUxXQVlTX0lOTElORSBncG9pbnRlciBjcmVhdGVXcmFw
cGVyKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCghU2NyaXB0
SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChub2RlKSk7CisKKyAgICBEb2N1bWVudCogZG9jID0g
bm9kZS0+ZG9jdW1lbnQoKTsKKyAgICBncG9pbnRlciByZXQgPSBOVUxMOworCisgICAgc3dpdGNo
IChub2RlLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgor
ICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICBy
ZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2Rl
KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmlzU1ZHRWxl
bWVudCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2lmIDAgLyogWFhYIFRPRE8g
LSBzZWUgIzIwNTg2ICovCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBw
ZXIoc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG5vZGUpKTsKKyNlbmRpZgorI2VuZGlmCisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0ID0gd3JhcEVsZW1lbnQoc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5v
ZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcEF0dHIoc3RhdGljX2Nh
c3Q8QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OlRFWFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBUZXh0KHN0YXRpY19jYXN0PFRleHQq
Pihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9T
RUNUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ0RBVEFTZWN0aW9uKHN0YXRpY19j
YXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcEVudGl0eShzdGF0
aWNfY2FzdDxFbnRpdHkqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSB3
cmFwUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlv
bio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkNPTU1F
TlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDb21tZW50KHN0YXRpY19jYXN0PENvbW1l
bnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgorICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9j
dW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQorICAgICAgICAgICAg
cmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUpKTsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwRG9jdW1l
bnRUeXBlKHN0YXRpY19jYXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6CisgICAgICAgICAgICByZXQg
PSB3cmFwTm90YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihub2RlKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgorICAg
ICAgICAgICAgcmV0ID0gd3JhcERvY3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRG
cmFnbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBFbnRpdHlSZWZl
cmVuY2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSB3cmFwTm9kZShub2Rl
KTsKKyAgICB9CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3Qobm9k
ZSwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9u
KQoreworICAgIGlmICghY29sbGVjdGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBn
cG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QoY29sbGVjdGlvbik7
CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciBy
ZXQ7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBIVE1M
Q29sbGVjdGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJldCA9IHdyYXBIVE1MT3B0
aW9uc0NvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbnNDb2xsZWN0aW9uKj4oY29sbGVj
dGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisjaWYgMAorICAgICAgICBjYXNlIEhUTUxDb2xs
ZWN0aW9uOjpEb2NBbGw6CisgICAgICAgICAgICByZXQgPSB3cmFwSFRNTENvbGxlY3Rpb24oc3Rh
dGljX2Nhc3Q8SFRNTENvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVh
azsKKyNlbmRpZgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gd3JhcEhUTUxD
b2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29sbGVjdGlvbikpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0
RE9NT2JqZWN0KGNvbGxlY3Rpb24sIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFdmVudCog
ZXZlbnQpCit7CisgICAgaWYgKCFldmVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBn
cG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QoZXZlbnQpOworICAg
IGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldDsKKyAg
ICBpZiAoZXZlbnQtPmlzVUlFdmVudCgpKSB7CisgICAgICAgIGlmIChldmVudC0+aXNLZXlib2Fy
ZEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSB3cmFwS2V5Ym9hcmRFdmVudChzdGF0aWNfY2Fz
dDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzVGV4
dEV2ZW50KCkpCisgICAgICAgICAgICByZXQgPSB3cmFwVGV4dEV2ZW50KHN0YXRpY19jYXN0PFRl
eHRFdmVudCo+KGV2ZW50KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc01vdXNlRXZlbnQo
KSkKKyAgICAgICAgICAgIHJldCA9IHdyYXBNb3VzZUV2ZW50KHN0YXRpY19jYXN0PE1vdXNlRXZl
bnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNXaGVlbEV2ZW50KCkpCisg
ICAgICAgICAgICByZXQgPSB3cmFwV2hlZWxFdmVudChzdGF0aWNfY2FzdDxXaGVlbEV2ZW50Kj4o
ZXZlbnQpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICBlbHNlIGlmIChldmVudC0+aXNTVkda
b29tRXZlbnQoKSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE8g
LSBzZWUgIzIwNTg2ICovCisgICAgICAgICAgICAvL3JldCA9IHdyYXBTVkdab29tRXZlbnQoc3Rh
dGljX2Nhc3Q8U1ZHWm9vbUV2ZW50Kj4oZXZlbnQpLCAwKTsKKyAgICAgICAgfQorI2VuZGlmCisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9IHdyYXBVSUV2ZW50KHN0YXRpY19jYXN0PFVJ
RXZlbnQqPihldmVudCkpOworICAgIH0gZWxzZSBpZiAoZXZlbnQtPmlzTXV0YXRpb25FdmVudCgp
KQorICAgICAgICByZXQgPSB3cmFwTXV0YXRpb25FdmVudChzdGF0aWNfY2FzdDxNdXRhdGlvbkV2
ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNPdmVyZmxvd0V2ZW50KCkpCisg
ICAgICAgIHJldCA9IHdyYXBPdmVyZmxvd0V2ZW50KHN0YXRpY19jYXN0PE92ZXJmbG93RXZlbnQq
PihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5pc01lc3NhZ2VFdmVudCgpKQorICAgICAg
ICByZXQgPSB3cmFwTWVzc2FnZUV2ZW50KHN0YXRpY19jYXN0PE1lc3NhZ2VFdmVudCo+KGV2ZW50
KSk7CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzUHJvZ3Jlc3NFdmVudCgpKSB7CisgICAgICAgIGlm
IChldmVudC0+aXNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoKSkKKyAgICAgICAgICAgIHJl
dCA9IHdyYXBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8WE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cmV0ID0gd3JhcFByb2dyZXNzRXZlbnQoc3RhdGljX2Nhc3Q8UHJvZ3Jlc3NFdmVudCo+KGV2ZW50
KSk7CisgICAgfQorI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyAgICBlbHNlIGlmIChldmVudC0+
aXNTdG9yYWdlRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gd3JhcFN0b3JhZ2VFdmVudChzdGF0aWNf
Y2FzdDxTdG9yYWdlRXZlbnQqPihldmVudCkpOworI2VuZGlmCisgICAgZWxzZSBpZiAoZXZlbnQt
PmlzV2ViS2l0QW5pbWF0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gd3JhcFdlYktpdEFuaW1h
dGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdEFuaW1hdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAg
ICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRUcmFuc2l0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0
ID0gd3JhcFdlYktpdFRyYW5zaXRpb25FdmVudChzdGF0aWNfY2FzdDxXZWJLaXRUcmFuc2l0aW9u
RXZlbnQqPihldmVudCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gd3JhcEV2ZW50KGV2ZW50
KTsKKworICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChldmVudCwgcmV0
KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKFRleHQqIHRleHQpCit7CisgICAgaWYgKCF0ZXh0KQor
ICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2Fj
aGU6OmdldERPTU9iamVjdCh0ZXh0KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdv
Ymo7CisKKyAgICBncG9pbnRlciByZXQgPSB3cmFwVGV4dCh0ZXh0KTsKKyAgICByZXR1cm4gR0RP
TU9iamVjdENhY2hlOjpwdXRET01PYmplY3QodGV4dCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9H
RE9NKENTU1J1bGUqIHJ1bGUpCit7CisgICAgaWYgKCFydWxlKQorICAgICAgICByZXR1cm4gTlVM
TDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChy
dWxlKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIGdwb2lu
dGVyIHJldDsKKyAgICBzd2l0Y2ggKHJ1bGUtPnR5cGUoKSkgeworICAgICAgICBjYXNlIENTU1J1
bGU6OlNUWUxFX1JVTEU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NTU3R5bGVSdWxlKHN0YXRp
Y19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NTTWVk
aWFSdWxlKHN0YXRpY19jYXN0PENTU01lZGlhUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OkZPTlRfRkFDRV9SVUxFOgorICAgICAgICAgICAg
cmV0ID0gd3JhcENTU0ZvbnRGYWNlUnVsZShzdGF0aWNfY2FzdDxDU1NGb250RmFjZVJ1bGUqPihy
dWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpQQUdFX1JV
TEU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NTUGFnZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFn
ZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxl
OjpJTVBPUlRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NJbXBvcnRSdWxlKHN0YXRp
Y19jYXN0PENTU0ltcG9ydFJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NSdWxlOjpDSEFSU0VUX1JVTEU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NT
Q2hhcnNldFJ1bGUoc3RhdGljX2Nhc3Q8Q1NTQ2hhcnNldFJ1bGUqPihydWxlKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpWQVJJQUJMRVNfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IHdyYXBDU1NWYXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1ZhcmlhYmxl
c1J1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHJldCA9IHdyYXBDU1NSdWxlKHJ1bGUpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3QocnVsZSwgcmV0KTsKKyAg
ICByZXR1cm4gcmV0OworfQorCitncG9pbnRlciB0b0dET00oRWxlbWVudCogZWxlbWVudCkKK3sK
KyAgICBpZiAoIWVsZW1lbnQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8gc2hvdWxk
bid0IGJlIG9uZT8gQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KGVsZW1l
bnQpKTsKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3Qo
ZWxlbWVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3Bv
aW50ZXIgcmV0OworICAgIERvY3VtZW50KiBkb2MgPSBlbGVtZW50LT5kb2N1bWVudCgpOworCisg
ICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0ID0gY3JlYXRlR0RP
TUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oZWxlbWVudCkpOworI2lmIEVO
QUJMRShTVkcpCisgICAgZWxzZSBpZiAoZWxlbWVudC0+aXNTVkdFbGVtZW50KCkpCisgICAgewor
ICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyAgICAgICAgLy9y
ZXQgPSBjcmVhdGVHRE9NU1ZHV3JhcHBlcihzdGF0aWNfY2FzdDxTVkdFbGVtZW50Kj4oZWxlbWVu
dCkpOworICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAgICAgcmV0ID0gd3JhcEVsZW1lbnQo
ZWxlbWVudCk7CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3QoZWxl
bWVudCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQp
Cit7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdw
b2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChzdHlsZVNoZWV0KTsK
KyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7
CisgICAgaWYgKHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAgICAgICByZXQgPSB3
cmFwQ1NTU3R5bGVTaGVldChzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCkp
OworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gd3JhcFN0eWxlU2hlZXQoc3R5bGVTaGVldCk7CisK
KyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3Qoc3R5bGVTaGVldCwgcmV0
KTsKK30KKworLyogZGVyaXZlZCBzb3VyY2VzIGF1dG8tZ2VuZXJhdGVkICovCitncG9pbnRlciB0
b0dET00oWE1MSHR0cFJlcXVlc3RVcGxvYWQqIG9iaik7CisKK2dwb2ludGVyIHRvR0RPTShFdmVu
dFRhcmdldCogdGFyZ2V0KQoreworICAgIGlmICghdGFyZ2V0KQorICAgICAgICByZXR1cm4gTlVM
TDsKKworI2lmIDAKKyNpZiBFTkFCTEUoU1ZHKQorICAgIC8vIFNWR0VsZW1lbnRJbnN0YW5jZSBz
dXBwb3J0cyBib3RoIHRvU1ZHRWxlbWVudEluc3RhbmNlIGFuZAorICAgIC8vIHRvTm9kZSBzaW5j
ZSBzbyBtdWNoIG1vdXNlIGhhbmRsaW5nIGNvZGUgZGVwZW5kcyBvbiB0b05vZGUKKyAgICAvLyBy
ZXR1cm5pbmcgYSB2YWxpZCBub2RlLgorICAgIFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2Ug
PSB0YXJnZXQtPnRvU1ZHRWxlbWVudEluc3RhbmNlKCk7CisgICAgaWYgKGluc3RhbmNlKQorICAg
ICAgICByZXR1cm4gdG9HRE9NKGV4ZWMsIGluc3RhbmNlKTsKKyNlbmRpZgorI2VuZGlmCisKKyAg
ICBOb2RlKiBub2RlID0gdGFyZ2V0LT50b05vZGUoKTsKKyAgICBpZiAobm9kZSkKKyAgICAgICAg
cmV0dXJuIHRvR0RPTShub2RlKTsKKworICAgIGlmIChYTUxIdHRwUmVxdWVzdCogeGhyID0gdGFy
Z2V0LT50b1hNTEh0dHBSZXF1ZXN0KCkpCisgICAgICAgIC8vIFhNTEh0dHBSZXF1ZXN0IGlzIGFs
d2F5cyBjcmVhdGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndCBuZWVkCisgICAgICAgIC8vIHRvIHVz
ZSBjYWNoZURPTU9iamVjdCgpIGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6
OmdldERPTU9iamVjdCh4aHIpOworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiB1cGxv
YWQgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVlc3RVcGxvYWQoKSkKKyAgICAgICAgcmV0dXJuIHRv
R0RPTSh1cGxvYWQpOworCisjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAg
ICBpZiAoRE9NQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSB0YXJnZXQtPnRvRE9NQXBwbGljYXRp
b25DYWNoZSgpKQorICAgICAgICAvLyBET01BcHBsaWNhdGlvbkNhY2hlIGlzIGFsd2F5cyBjcmVh
dGVkIHZpYSBHRE9NLCBzbyB3ZSBkb24ndAorICAgICAgICAvLyBuZWVkIHRvIHVzZSBjYWNoZURP
TU9iamVjdCgpIGhlcmUuCisgICAgICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9i
amVjdChjYWNoZSk7CisjZW5kaWYKKworICAgIC8vIFRoZXJlIGFyZSB0d28ga2luZHMgb2YgRXZl
bnRUYXJnZXRzOiBFdmVudFRhcmdldE5vZGUgYW5kCisgICAgLy8gWE1MSHR0cFJlcXVlc3QuICBJ
ZiBTVkcgc3VwcG9ydCBpcyBlbmFibGVkLCB0aGVyZSBpcyBhbHNvCisgICAgLy8gU1ZHRWxlbWVu
dEluc3RhbmNlLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOVUxMOwor
fQorCitncG9pbnRlciB0b0dET00oRXZlbnRUYXJnZXROb2RlKiB0YXJnZXQpCit7CisgICAgaWYg
KCF0YXJnZXQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgTm9kZSogbm9kZSA9IHRhcmdl
dC0+dG9Ob2RlKCk7CisgICAgaWYgKG5vZGUpCisgICAgICAgIHJldHVybiB0b0dET00obm9kZSk7
CisKKyAgICByZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PEV2ZW50VGFyZ2V0Kj4odGFyZ2V0KSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9y
eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACisvKgorICogVEhJUyBGSUxFIElTIERF
UklWRUQgQlkgSEFORCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBJ
VCBJUyBOT1QgQU4gQVVUTy1HRU5FUkFURUQgRklMRSBJVCBXQVMgQ1JFQVRFRCBNQU5VQUxMWSAq
RlJPTSoKKyAqIEFOIEFVVE8tR0VORVJBVEVEIEZJTEUuCisgKiBrZWVwaW5nIGl0IHVwLXRvLWRh
dGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqIGEgbWFrZV9uYW1lcy5w
bCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogZ2VuZXJhdGVyIHdoaWNo
IHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworCisjaWZuZGVmIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gK
KyNkZWZpbmUgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAorCisjaW5jbHVkZSAiR2Rv
bU5vZGVQcml2YXRlLmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworICAgIGdwb2ludGVyIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPFdlYkNvcmU6
OkhUTUxFbGVtZW50Pik7Cit9CisKKyNlbmRpZiAvLyBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeV9oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRhcmdldE5v
ZGUuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRh
cmdldE5vZGUuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0b3Aub3Jn
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRl
ICJFdmVudFRhcmdldE5vZGUuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlLmgiCisj
aW5jbHVkZSAiR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGUuaCIKKyNpbmNsdWRlICJnbGliLW9i
amVjdC5oIgorCitleHRlcm4gIkMiIHsKKwordm9pZAorZ2RvbV9ldmVudF90YXJnZXRfbm9kZV9p
bml0X2V2ZW50X3RhcmdldF9ub2RlIChHZG9tRXZlbnRUYXJnZXROb2RlICp0aGl6KQoreworICAg
IGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOworICAgIC8qCisgICAgV2ViQ29yZTo6RXZlbnRUYXJn
ZXROb2RlICogaXRlbSA9IGNvcmUodGhpeik7CisgICAgV2ViQ29yZTo6U3RyaW5nIF9nX2V2ZW50
X3RhcmdldF9ub2RlX3R5cGVfYXJnID0gV2ViQ29yZTo6U3RyaW5nKGV2ZW50X3RhcmdldF9ub2Rl
X3R5cGVfYXJnKTsKKyAgICBpdGVtLT5pbml0RXZlbnRUYXJnZXROb2RlKF9nX2V2ZW50X3Rhcmdl
dF9ub2RlX3R5cGVfYXJnKTsKKyAgICAqLworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5nLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3OCBA
QAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBr
ZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNh
bXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogIENvcHlyaWdodCAo
QykgMjAwOCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIEdkb21ET01CaW5kaW5nX2gKKyNkZWZpbmUgR2Rv
bURPTUJpbmRpbmdfaAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRl
ICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJFbGVtZW50Lmgi
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUg
IkV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVk
ZSAiTm9kZS5oIgorI2luY2x1ZGUgIlN0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisK
KyNpbmNsdWRlICJHZG9tTm9kZS5oIgorI2luY2x1ZGUgIkdkb21Ob2RlUHJpdmF0ZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBBdG9taWNTdHJpbmc7CisgICAgY2xhc3Mg
RG9jdW1lbnQ7CisgICAgY2xhc3MgRXZlbnQ7CisgICAgY2xhc3MgRnJhbWU7CisgICAgY2xhc3Mg
S1VSTDsKKyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIFN0cmluZzsKKworI2lmIEVOQUJMRShT
VkcpCisgICAgY2xhc3MgU1ZHRWxlbWVudDsKKyNlbmRpZgorfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6Q1NT
UnVsZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkNTU1ZhbHVlKiBub2Rl
KTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6RG9jdW1lbnQqIG5vZGUpOworICAgIGdw
b2ludGVyIHRvR0RPTShXZWJDb3JlOjpFbGVtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dE
T00oV2ViQ29yZTo6RXZlbnQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpF
dmVudFRhcmdldCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkV2ZW50VGFy
Z2V0Tm9kZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkhUTUxDb2xsZWN0
aW9uKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6Tm9kZSogbm9kZSk7Cisg
ICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OlN0eWxlU2hlZXQqIG5vZGUpOworICAgIGdwb2lu
dGVyIHRvR0RPTShXZWJDb3JlOjpUZXh0KiBub2RlKTsKKworICAgIGNsYXNzIEdET01PYmplY3RD
YWNoZSB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgZ3BvaW50ZXIgZ2V0RE9NT2JqZWN0
KHZvaWQgKm9iamVjdEhhbmRsZSk7CisgICAgICAgIHN0YXRpYyBncG9pbnRlciBwdXRET01PYmpl
Y3Qodm9pZCAqb2JqZWN0SGFuZGxlLCBncG9pbnRlciB3cmFwcGVyKTsKKyAgICAgICAgc3RhdGlj
IHZvaWQgZm9yZ2V0RE9NT2JqZWN0KHZvaWQgKm9iamVjdEhhbmRsZSk7CisgICAgfTsKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gR2RvbURPTUJpbmRpbmdfaApJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3Rv
IDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4KKyAqLwor
CisKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIK
KyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBF
KEdkb21ET01PYmplY3QsIGdkb21fZG9tX29iamVjdCwgR19UWVBFX09CSkVDVCk7CisKK3N0YXRp
YyB2b2lkIGdkb21fZG9tX29iamVjdF9pbml0KEdkb21ET01PYmplY3QqIHJlcXVlc3QpCit7Cisg
ICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZB
VEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7Cit9CisKK3N0YXRpYyB2b2lk
IGdkb21fZG9tX29iamVjdF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgR19PQkpF
Q1RfQ0xBU1MoZ2RvbV9kb21fb2JqZWN0X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7
Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9jbGFzc19pbml0KEdkb21ET01PYmpl
Y3RDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFz
cyktPmZpbmFsaXplID0gZ2RvbV9kb21fb2JqZWN0X2ZpbmFsaXplOworCisgICAgZ190eXBlX2Ns
YXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdkb21ET01PYmplY3RQcml2YXRl
KSk7Cit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE0NzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisjIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0
aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisjIENvcHlyaWdodCAoQykgMjAwOCBBbHAg
VG9rZXIgPGFscEBhdG9rZXIuY29tPgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBh
aW50IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyMgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisKK3Bh
Y2thZ2UgQ29kZUdlbmVyYXRvckdPYmplY3Q7CisKKyMgRGVmYXVsdCBMaWNlbmNlIFRlbXBsYXRl
cworbXkgJGxpY2VuY2VUZW1wbGF0ZSA9IDw8ICJFT0YiOworLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsXEBsa2NsLm5ldD4KKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscFxAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKi8KK0VPRgorCitteSAlaW1wbEluY2x1ZGVzID0gKCk7
CitteSAlaGRySW5jbHVkZXMgPSAoKTsKK215ICVoZHJQcm9wSW5jbHVkZXMgPSAoKTsKK215ICVp
bXBsVHlwZWRlZnMgPSAoKTsKKworIyBEZWZhdWx0IGNvbnN0cnVjdG9yCitzdWIgbmV3IHsKKyAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRj
b2RlR2VuZXJhdG9yID0gc2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxl
c3MoJHJlZmVyZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1
YiBmaW5pc2ggeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKK30KKworIyBQYXJhbXM6ICdkb21D
bGFzcycgc3RydWN0CitzdWIgR2VuZXJhdGVJbnRlcmZhY2UgeworICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkZGVmaW5lcyA9IHNoaWZ0
OworCisgICAgbXkgJG5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CisKKyAgICBwcmludCAiJG5hbWVc
biI7CisKKyAgICAkb2JqZWN0LT5HZW5lcmF0ZSgkZGF0YU5vZGUpOworCisgICAgIyBXcml0ZSBj
aGFuZ2VzCisgICAgbXkgJGZuYW1lID0gIkdkb21fIiAuICRuYW1lOyAjZGVjYW1lbGl6ZSgkbmFt
ZSk7CisgICAgJGZuYW1lID1+IHMvXy8vZzsKKyAgICAkb2JqZWN0LT5Xcml0ZURhdGEoJGZuYW1l
KTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVudCcgc3RydWN0CitzdWIgR2VuZXJhdGVNb2R1
bGUgeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
KworICAgICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsKK30KKworc3ViIENsc1RvR09ialR5
cGUgeworICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICByZXR1cm4gdWMoZGVjYW1lbGl6
ZSgkY2xhc3NOYW1lKSkKK30KKworc3ViIEdldFBhcmVudENsYXNzTmFtZSB7CisgICAgbXkgJGRh
dGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdkb21ET01PYmpl
Y3QiIGlmIEB7JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiR2RvbSIgLiAk
Y29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKTsKK30KKwor
c3ViIEdldFBhcmVudEdPYmpUeXBlIHsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAg
ICMgPz8gcXVlPz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkxlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2Fj
eVBhcmVudCJ9OworICAgIHJldHVybiAiR0RPTV9UWVBFX0RPTV9PQkpFQ1QiIGlmIEB7JGRhdGFO
b2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiR0RPTV9UWVBFXyIgLiBDbHNUb0dPYmpU
eXBlKCRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpKTsK
K30KKworCisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1
YiBjYW1lbGl6ZSB7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICBqb2luKCcnLCBtYXB7IHVjZmly
c3QgJF8gfSBzcGxpdCgvKD88PVtBLVphLXpdKV8oPz1bQS1aYS16XSl8XGIvLCAkcykpOworfQor
CisjIEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1YiBkZWNh
bWVsaXplIHsKKyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8pKFtB
LVpdKikoW0EtWl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAg
ICAgICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBt
eSAkdCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/
ICIke3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAg
fWdlOworICAgICRzOworfQorCitzdWIgR2V0SGRyTmFtZSB7CisgICAgbXkgJG5hbWUgPSAkY29k
ZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUi
OworfQorCitzdWIgR2V0Q2xhc3NOYW1lIHsKKyAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9y
LT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1
YiBHZXRHSW5jbHVkZUhkciB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9
IEdldEhkck5hbWUoJHR5cGUpOworICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFt
ZSgkdHlwZSkpOworCisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJzaG9y
dCI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgImZsb2F0IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImRvdWJsZSI7Cisg
ICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICIiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgbG9uZyI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmci
OworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUg
ZXEgIkV2ZW50TGlzdGVuZXIiOworICAgIHJldHVybiAiUmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNv
bXBhcmVIb3ciOworICAgIHJldHVybiAiZ2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmgiIGlmICR0eXBlIGVxICJET01PYmplY3QiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgY2hhciI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMg
WFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIg
aWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuICJHZG9tRXZlbnRUYXJnZXROb2Rl
LmgiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCI7CisKKyAgICByZXR1cm4gImdsaWItb2JqZWN0
LmgiIGlmICR0eXBlIGVxICJmbG9hdCI7CisKKyAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlm
ICR0eXBlIGVxICJib29sZWFuIjsKKworICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5
cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1cm5zIDEg
aWYgd2UgbmVlZCB0byBjcmVhdGUgYSBnb2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSByZXR1cm4g
cmVzdWx0CitzdWIgSXNHRE9NQ2xhc3NUeXBlIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAg
IG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJET01UaW1lU3RhbXAiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01TdHJpbmci
OworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsKKyAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImZs
b2F0IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOwor
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBl
cSAic2hvcnQiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiaW50
IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVk
IHNob3J0IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RP
IC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ2b2lkIjsK
KworICAgIHJldHVybiAxOworfQorCitzdWIgR2V0UHJvcEdUeXBlIHsKKyAgICBteSAkdHlwZSA9
IHNoaWZ0OworICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVy
biAic3RyaW5nIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBp
ZiAkdHlwZSBlcSAiZmxvYXQiOworICAgIHJldHVybiAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlw
ZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgcmV0dXJuICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3Vi
bGUiOworICAgIHJldHVybiAiYm9vbGVhbiIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJl
dHVybiAiY2hhciIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgIHJldHVybiAibG9uZyIgaWYgJHR5
cGUgZXEgImxvbmciOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAg
IHJldHVybiAidWNoYXIiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBp
ZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50
IjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJl
dHVybiAidWludDY0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1
cm4gInVsb25nIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hv
cnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYg
JHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAg
ICByZXR1cm4gIm9iamVjdCI7Cit9CisKK3N1YiBHZXRHVHlwZSB7CisgICAgbXkgJHR5cGUgPSBz
aGlmdDsKKyAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisgICAgI215ICRuYW1l
ID0gY2FtZWxpemUoR2V0Q2xhc3NOYW1lKCR0eXBlKSk7CisKKyAgICByZXR1cm4gIkdkb21FdmVu
dFRhcmdldE5vZGUgKiIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsKKyAgICByZXR1cm4gImdj
aGFyICoiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgIHJldHVybiAiZ2Zsb2F0IiBpZiAk
dHlwZSBlcSAiZmxvYXQiOworICAgIHJldHVybiAiV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVIb3cg
IiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgcmV0dXJuICJnZG91YmxlIiBpZiAkdHlw
ZSBlcSAiZG91YmxlIjsKKyAgICByZXR1cm4gImdib29sZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVh
biI7CisgICAgcmV0dXJuICJnY2hhciIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgIHJldHVybiAi
Z2xvbmciIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gImdzaG9ydCIgaWYgJHR5cGUg
ZXEgInNob3J0IjsKKyAgICByZXR1cm4gImd1Y2hhciIgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAg
ICByZXR1cm4gImd1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgIHJldHVybiAiZ2lu
dCIgaWYgJHR5cGUgZXEgImludCI7CisgICAgcmV0dXJuICJndWludCIgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIGludCI7CisgICAgcmV0dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIjsKKyAgICByZXR1cm4gImd1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxv
bmciOworICAgIHJldHVybiAiZ3VzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsK
KyAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAt
IERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lk
IjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJbmNIZHIgeworICAgIG15
ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaW5jbHVkZUhkciA9IEdldEdJbmNsdWRlSGRyKCR0
eXBlKTsKKyAgICBpZiAoJGluY2x1ZGVIZHIpIHsKKyAgICAgICAgaWYgKCR0eXBlIGVxICJFdmVu
dFRhcmdldCIpIHsKKyAgICAgICAgICAgIHJldHVybiAiR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oIjsK
KyAgICAgICAgfSBlbHNpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICMg
WFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICAgICBy
ZXR1cm4gIkdkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCI7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICByZXR1cm4gJGluY2x1ZGVIZHI7CisgICAgICAgIH0KKyAgICB9CisgICAg
cmV0dXJuICIiOworfQorCitzdWIgYWRkUHJvcEluY0hkciB7CisgICAgbXkgJHR5cGUgPSBzaGlm
dDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIi
KSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAk
aGRyID0gc3Vic3RyKCRoZHIsIDAsIGxlbmd0aCgkaGRyKS0yKTsKKyAgICAgICAgICAgICRoZHJQ
cm9wSW5jbHVkZXN7Imdkb20vIi4kaGRyLiIuaCJ9ID0gMTsKKyAgICAgICAgICAgICRoZHJQcm9w
SW5jbHVkZXN7Imdkb20vIi4kaGRyLiJQcml2YXRlLmgifSA9IDE7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAg
IH0KKworfQorCitzdWIgYWRkSW5jSGRyIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAg
bXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIpIHsKKyAgICAg
ICAgaWYgKElzR0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRoZHJJbmNsdWRl
c3siZ2RvbS8kaGRyIn0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGhkcklu
Y2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0KKworfQorCitzdWIgYWRkSW5jQm9k
eSB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5
cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUo
JHR5cGUpKSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyRoZHIifSA9IDE7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAg
ICAgICAgfQorICAgIH0KK30KKworc3ViIEdldFByaXZGbiB7CisgICAgbXkgJGludGVyZmFjZU5h
bWUgPSBzaGlmdDsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gc2hpZnQ7CisgICAgbXkgJHJl
cyA9IHNoaWZ0OworICAgIG15ICRwYXJtID0gc2hpZnQ7CisKKyAgICBpZiAoJGludGVyZmFjZU5h
bWUgZXEgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICByZXR1cm4gIldlYkNvcmU6OkV2ZW50VGFy
Z2V0Tm9kZSAqICRyZXMgPSBXZWJLaXQ6OmNvcmUoc2VsZik7IjsKKyAgICB9CisgICAgcmV0dXJu
ICJXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogJHJlcyA9IFdlYktpdDo6Y29yZSgkcGFybSk7
IjsKK30KKworc3ViIHNraXBQcm9wVGVtcG9yYXJpbHkgeworICAgIG15ICR0eXBlID0gc2hpZnQ7
CisgICAgbXkgJHByb3BfdHlwZSA9IHNoaWZ0OworCisgICAgIyBza2lwIE1lZGlhTGlzdAorICAg
IGlmICgkcHJvcF90eXBlIGVxICJzdHlsZXNoZWV0czo6TWVkaWFMaXN0IikgeworICAgICAgICBy
ZXR1cm4gMTsKKyAgICB9CisKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50VGFyZ2V0Iikg
eworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDU1NWYXJpYWJsZXNE
ZWNsYXJhdGlvbgorICAgIGlmICgkcHJvcF90eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlv
biIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBza2lwIENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uCisgICAgI2lmICgkcHJvcF90eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0
aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAgICMgc2tpcCBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24iKSB7CisgICAgIyAgICByZXR1cm4gMTsKKyAgICAjfQorCisgICAgIyBz
a2lwIEV2ZW50TGlzdGVuZXIKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIp
IHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgIyBza2lwIERPTVdpbmRvdworICAg
ICNpZiAoJHByb3BfdHlwZSBlcSAiRE9NV2luZG93IikgeworICAgICMgICAgcmV0dXJuIDE7Cisg
ICAgI30KKworICAgICMgc2tpcCBDb25zdHJ1Y3RvcnMgKHdoYXRldmVyIHRoZXkgYXJlKSBmb3Ig
bm93LgorICAgIGlmICgkcHJvcF90eXBlID1+IC9Db25zdHJ1Y3RvciQvKSB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKworICAgICMgY2FudmFzMmQuLi4uCisgICAgaWYgKCRwcm9wX3R5cGUg
ZXEgImN1c3RvbSIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYgKCRwcm9w
X3R5cGUgZXEgIkFycmF5IikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAo
JHByb3BfdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisKKyAgICAjIFRPRE86IFNWRworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQb2RUeXBlKCR0
eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7CisgICAg
ICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIFVzZXNNYW51YWxU
b0pTSW1wbGVtZW50YXRpb24geworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXBw
ZWQgb3V0IENhbnZhc1BpeGVsQXJyYXkgLSBzZWUgSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNw
cCBmb3Igd2h5LgorICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJOb2RlIiBvciAkdHlwZSBlcSAi
RG9jdW1lbnQiIG9yICR0eXBlIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IKKyAgICAgICR0eXBlIGVx
ICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUgZXEgIkNTU1J1
bGUiIG9yICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IKKwkkdHlwZSBlcSAiRXZlbnQiIG9yICR0eXBl
IGVxICJFbGVtZW50IiBvciAkdHlwZSBlcSAiVGV4dCI7CisgICAgcmV0dXJuIDA7Cit9CisKKwor
IyBHZW5lcmF0ZSBoZWFkZXIgYW5kIGltcGwKK3N1YiBHZW5lcmF0ZSB7CisgICAgbXkgJG9iamVj
dCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgbXkgJGhhc0xlZ2Fj
eVBhcmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9
OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMDsKKyAg
ICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVudDsKKyAg
ICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRkYXRhTm9kZSk7Cisg
ICAgbXkgJHBhcmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUoJGRhdGFOb2RlKTsKKyAg
ICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkY2xhc3NOYW1l
ID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkaGRyTmFtZSA9IEdldEhk
ck5hbWUoJGludGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1wbCBoZWFk
ZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUp
OworICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNsdWRlc3siR0RPTUJp
bmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyRoZHJOYW1lLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke2hkck5hbWV9UHJpdmF0ZS5oIn0gPSAxOworCisg
ICAgbXkgJHBhcmVudEludGVyZmFjZU5hbWUgPSAiRE9NT2JqZWN0IjsKKyAgICBteSAkcGFyZW50
R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICBteSAkcGFyZW50SGRyTmFtZSA9ICJHZG9t
RE9NT2JqZWN0IjsKKyAgICBpZiAoJHBhcmVudENsYXNzTmFtZSBuZSAiR09iamVjdCIpIHsKKyAg
ICAgICAgJHBhcmVudEludGVyZmFjZU5hbWUgPSBzdWJzdHIoJHBhcmVudENsYXNzTmFtZSwgNCk7
CisgICAgICAgIGlmICgkcGFyZW50SW50ZXJmYWNlTmFtZSBuZSAiRE9NT2JqZWN0IikgeworICAg
ICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTSIuc3Vic3RyKCRwYXJlbnRDbGFzc05h
bWUsIDQpOworICAgICAgICAgICAgJHBhcmVudEhkck5hbWUgPSBHZXRIZHJOYW1lKCRwYXJlbnRJ
bnRlcmZhY2VOYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRwYXJlbnRHSWZh
Y2VOYW1lID0gIkdET01PYmplY3QiOworICAgICAgICB9CisgICAgICAgICRpbXBsSW5jbHVkZXN7
Imdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJn
ZG9tLyR7cGFyZW50SGRyTmFtZX1Qcml2YXRlLmgifSA9IDE7CisgICAgICAgICRoZHJJbmNsdWRl
c3siZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICMkaGRySW5jbHVkZXN7
IlByaXZhdGUke3BhcmVudEhkck5hbWV9LmgifSA9IDA7CisgICAgfQorCisgICAgIyBUT0RPIC0g
bWFrZSB0aGVzZSBvbmx5IGluY2x1ZGUgd2hlcmUgbmVlZGVkLCBsaWtld2lzZSB0aGUKKyAgICAj
IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0b0dET00sIHRvbworICAgICRpbXBsSW5jbHVkZXN7Ik5v
ZGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFbGVtZW50LmgifSA9IDE7CisgICAgJGlt
cGxJbmNsdWRlc3siQ1NTVmFsdWUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDU1NSdWxl
LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siSFRNTENvbGxlY3Rpb24uaCJ9ID0gMTsKKyAg
ICAjJGltcGxJbmNsdWRlc3siU1ZHUGF0aFNlZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7
IlN0eWxlU2hlZXQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFdmVudC5oIn0gPSAxOwor
ICAgICRpbXBsSW5jbHVkZXN7IkNhbnZhc1BpeGVsQXJyYXkuaCJ9ID0gMTsKKyAgICAkaW1wbElu
Y2x1ZGVzeyJET01XaW5kb3cuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJUZXh0LmgifSA9
IDE7CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HU3RyaW5nQ29udmVydC5oIn0gPSAxOworCisg
ICAgIyBYWFggVE9ETzogbWFrZSB0aGlzIG9wdGlvbmFsIG9yIGluIGEgaGVhZGVyIGZpbGUuICBv
ciBmaW5kIGEgYmV0dGVyIHdheS4KKyAgICBteSAkaGFja0RlY2xzID0gPDwgIkVPRiI7CituYW1l
c3BhY2UgV2ViS2l0IHsKKyAgICAvL2dwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpTVkdQYXRoU2Vn
KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6Q2FudmFzUGl4ZWxBcnJheSog
bm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkRPTVdpbmRvdyogbm9kZSk7Cit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworRU9GCisKKyAgICBwdXNoKEBjQm9keSwgJGhhY2tEZWNs
cyk7CisKKyAgICBwdXNoKEBjQm9keSwgIm5hbWVzcGFjZSBXZWJLaXQge1xuIik7CisKKyAgICAj
IEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQT0RUeXBlIGZsYWcKKyAg
ICBteSAkcG9kVHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlBPRFR5cGUi
fTsKKyAgICBteSAkcGFzc1R5cGUgPSAkcG9kVHlwZSA/ICJKU1NWR1BPRFR5cGVXcmFwcGVyPCRw
b2RUeXBlPioiIDogIiRpbnRlcmZhY2VOYW1lKiI7CisKKyAgICBpZiAoJHtpbnRlcmZhY2VOYW1l
fSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pCisJYW5kICFVc2VzTWFudWFsVG9KU0ltcGxlbWVu
dGF0aW9uKCRpbnRlcmZhY2VOYW1lKSkgeworCSRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworZ3Bv
aW50ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNzVHlwZSBvYmopCit7CisgICAgaWYgKCFvYmopCisJ
cmV0dXJuIE5VTEw7CisKKyAgICBpZiAoZ3BvaW50ZXIgcmV0ID0gR0RPTU9iamVjdENhY2hlOjpn
ZXRET01PYmplY3Qob2JqKSkKKwlyZXR1cm4gcmV0OworCisgICAgcmV0dXJuIEdET01PYmplY3RD
YWNoZTo6cHV0RE9NT2JqZWN0KG9iaiwgV2ViS2l0Ojp3cmFwJHtpbnRlcmZhY2VOYW1lfShvYmop
KTsKK30KK0VPRgorCisgICAgICAgIHB1c2goQGNCb2R5LCAkaW1wbENvbnRlbnQpOworICAgIH0K
KworICAgIHB1c2goQGNCb2R5LCAifSAvKiBuYW1lc3BhY2UgV2ViS2l0ICovXG4iKTsKKyAgICBt
eSAkaW1wbENvbnRlbnQgPSAiIjsKKworICAgICMgWFhYIFRPRE8gcHVzaChAY0JvZHksICJ1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTtcblxuIik7CisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJD
XCIge1xuXG4iKTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQorICAg
IEBoUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgI3B1c2goQGhQ
cmVmaXgsICJcbiIpOworCisgICAgIyBIZWFkZXIgZ3VhcmQKKyAgICBteSAkZ3VhcmQgPSAiX18i
IC4gJGNsYXNzTmFtZSAuICJfSF9fIjsKKworICAgIG15ICRjbHNDYXBzID0gc3Vic3RyKENsc1Rv
R09ialR5cGUoJGNsYXNzTmFtZSksIDUpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSAiZ2Rv
bV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgI215ICRwYXJlbnRDbHNDYXBz
ID0gIkdET01fIiAuIENsc1RvR09ialR5cGUoJHBhcmVudEludGVyZmFjZU5hbWUpOworCisgICAg
QGhQcmVmaXhHdWFyZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUgJGd1YXJk
CitFT0YKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworR19CRUdJTl9ERUNMUworCitF
T0YKKworICAgIHB1c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7CisKKyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAg
ICAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBz
fShvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9N
X1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9
X0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01f
VFlQRV8ke2Nsc0NhcHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xz
Q2Fwc30ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RP
TV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fw
c30pKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5T
VEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1l
fUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtjbGFzc05h
bWV9UHJpdmF0ZTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFyZW50Q2xhc3NO
YW1lfSBwYXJlbnRfaW5zdGFuY2U7CisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307
CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRf
Y2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5
cGUgKHZvaWQpOworCitFT0YKKworICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisg
ICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVm
aW5lICR7Z3VhcmR9X1BST1BfCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxD
b250ZW50KTsKKworICAgIHB1c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisg
ICAgJGhkclByb3BJbmNsdWRleyJnbGliLW9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5j
bHVkZXsiZ2RvbS8ke3BhcmVudEhkck5hbWV9UHJpdmF0ZS5oIn0gPSAxOworICAgICRoZHJQcm9w
SW5jbHVkZXsiJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworCisgICAgJGltcGxJbmNsdWRlc3si
Z2RvbS8ke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siJHtpbnRl
cmZhY2VOYW1lfS5oIn0gPSAxOworCisgICAgJGltcGxUeXBlZGVmc3siJGNsYXNzTmFtZSJ9ID0g
MTsKKyAgICAkaW1wbFR5cGVkZWZzeyIke2NsYXNzTmFtZX1DbGFzcyJ9ID0gMTsKKworICAgICRp
bXBsQ29udGVudCA9IDw8ICJFT0YiOworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImds
aWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKyNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0cHJpdmF0ZS5oPiAKKyNpbmNsdWRlICJET01XaW5kb3cuaCIgLyogeXVr
azogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIk5vZGUuaCIgLyogeXVr
azogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5o
IiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFz
UGF0dGVybi5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVk
ZSAiQ2FudmFzR3JhZGllbnQuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAq
LworI2luY2x1ZGUgIkNhbnZhc1N0eWxlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0
aW9uYWwgKi8KKyNpbmNsdWRlICJDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgLyogeXVrazog
VE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgPGdkb20vR2RvbURPTU9iamVj
dFByaXZhdGUuaD4gLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1
ZGUgPGdkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oPiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlz
IG9wdGlvbmFsICovCisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5o
PiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsIG9uIEV2ZW50VGFyZ2V0Ki8KKyNp
bmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCisjaW5jbHVkZSA8Z2RvbS8ke2hkck5hbWV9Lmg+
CisjaW5jbHVkZSA8Z2RvbS8ke2hkck5hbWV9UHJpdmF0ZS5oPgorI2luY2x1ZGUgPGdkb20vJHto
ZHJOYW1lfXByb3BzLmg+CisKKyNpbmNsdWRlICJnZG9tL0dTdHJpbmdDb252ZXJ0LmgiCisKKyNp
bmNsdWRlICJDYW52YXNQaXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRl
ICJUZXh0LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisj
aW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSA8
Z2RvbS9HZG9tRXZlbnQuaD4KKworCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxD
b250ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCiske2hhY2tEZWNsc30K
KworR19CRUdJTl9ERUNMUworCitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHtsY2FzZV9p
ZmFjZW5hbWV9LCAke3BhcmVudEdPYmpUeXBlfSk7CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9UHJp
dmF0ZSB7CisgICAgUmVmUHRyPFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0+IGNvcmVPYmplY3Q7
Cit9OworCitHX0VORF9ERUNMUworCituYW1lc3BhY2UgV2ViS2l0IHsKKworJHtjbGFzc05hbWV9
ICoKK3dyYXAke2ludGVyZmFjZU5hbWV9KFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfT4gcHJwQ29yZU9iamVjdCkKK3sKKyAgICBSZWZQdHI8V2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfT4gY29yZU9iamVjdCA9IHBycENvcmVPYmplY3Q7CisKKyAgICAke2NsYXNzTmFtZX0gKndy
YXBwZXIgPSBHRE9NXyR7Y2xzQ2Fwc30oZ19vYmplY3RfbmV3KEdET01fVFlQRV8ke2Nsc0NhcHN9
LCBOVUxMKSk7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpF
Q1RfR0VUX1BSSVZBVEUoR0RPTV9ET01fT0JKRUNUKHdyYXBwZXIpKTsKKworICAgIFdlYkNvcmU6
OiR7aW50ZXJmYWNlTmFtZX0gKnJhd0NvcmVPYmplY3QgPSBjb3JlT2JqZWN0LmdldCgpOworICAg
IHJhd0NvcmVPYmplY3QtPnJlZigpOworICAgIHByaXYtPmNvcmVPYmplY3QgPSByYXdDb3JlT2Jq
ZWN0OworCisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKK1dlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKgorY29yZSgke2NsYXNzTmFtZX0gKnJlcXVlc3QpCit7CisgICAgR2RvbURPTU9iamVjdFBy
aXZhdGUqIHByaXYgPSBHRE9NX0RPTV9PQkpFQ1RfR0VUX1BSSVZBVEUoR0RPTV9ET01fT0JKRUNU
KHJlcXVlc3QpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfSAqPihwcml2LT5jb3JlT2JqZWN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
K0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICMgUHJvcGVy
dGllcworICAgIG15ICRmdW5jdGlvbk5hbWVQcmVmaXggPSAkbGNhc2VfaWZhY2VuYW1lOyAKKyAg
U0tJUFBST1A6IGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9
KSB7CisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5uYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAg
ICAgbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOworICAgICAgICBteSAkY3Vz
dG9tID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
In07CisKKyAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisgICAgICAgICAgICBuZXh0IFNLSVBQUk9QOworICAg
ICAgICB9CisKKyAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCJ9ID0gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisKKyAgICAgICAg
aWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAgICAgICAg
ICBuZXh0IFNLSVBQUk9QOworICAgICAgICB9CisKKyAgICAgICAgYWRkUHJvcEluY0hkcigkcHJv
cF90eXBlKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSAkdHlwZVxu
JGZ1bmN0aW9uTmFtZVByZWZpeCIgLiAiX3Byb3BfZ2V0XyIgLiAiJHByb3BOYW1lICgkZnVuY3Rp
b25TaWcpO1xuXG4iKTsKKworICAgICAgICAjcHVzaChAaEJvZHlQcm9wLCAiV0VCS0lUX0FQSSB2
b2lkXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAuICJfcHJvcF9zZXRfIiAuICIkcHJvcE5hbWUgKCRm
dW5jdGlvblNpZywgJHR5cGUiIC4gInZhbHVlKTtcblxuIik7CisgICAgfQorCisgICAgIyBQcm9w
ZXJ0aWVzCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitHX0JFR0lOX0RFQ0xTCisKK2Vu
dW0geworICAgIEJST1dTRVJfRVZFTlQsCisgICAgTEFTVF9TSUdOQUwKK307CisKK3N0YXRpYyBn
dWludCBldmVudF9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKKworZW51bSB7CisgICAg
UFJPUF8wLAorRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
bXkgQHR4dF9pbnN0YWxsX3Byb3BzID0gKCk7CisgICAgbXkgQHR4dF9zZXRfcHJvcHMgPSAoKTsK
KyAgICBteSBAdHh0X2dldF9wcm9wcyA9ICgpOworCisgICAgbXkgJHByaXZfZm4gPSBHZXRQcml2
Rm4oJGludGVyZmFjZU5hbWUsICR7bGNhc2VfaWZhY2VuYW1lfSwgImdzZWxmIiwgInNlbGYiKTsK
KworICAgIG15ICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2Vf
aWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3Bf
aWQsCisgICAgICAgICAgICAgICAgICAgICBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAg
ICAgICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBH
RE9NXyR7Y2xzQ2Fwc30ob2JqZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9p
ZCkgeworRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAg
ICBteSAkdHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNl
bmFtZX1fX3NldF9wcm9wZXJ0eV9mbihHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAor
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgR1ZhbHVlICogdmFsdWUsCisgICAgICAgICAgICAg
ICAgICAgICBHUGFyYW1TcGVjICogcHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9ICpzZWxmID0g
R0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKyAgICBzd2l0Y2ggKHByb3Bf
aWQpIHsKK0VPRgorICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICR0eHRfc2V0X3Byb3ApOworICAg
ICMgSXRlcmF0ZSBvdmVyIHRoZSBpbnRlcmZhY2UgYXR0cmlidXRlcyBhbmQgZ2VuZXJhdGUgYSBw
cm9wZXJ0eSBmb3IKKyAgICAjIGVhY2ggb25lIG9mIHRoZW0uCisgIFNLSVBFTlVNOgorICAgIGZv
cmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAg
IG15ICRwcm9wX25hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgIG15
ICRzZXRwcm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkcHJvcF9uYW1l
KTsKKyAgICAgICAgbXkgJGdldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2Zp
cnN0KCRwcm9wX25hbWUpOworCisgICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJHBy
b3BfbmFtZSk7CisgICAgICAgIG15ICRwcm9wQ2FwcyA9IHVjKCRwcm9wTmFtZSk7CisgICAgICAg
IG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15
ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICR7cHJvcEVudW19ID0g
IlBST1BfJHtwcm9wQ2Fwc30iOworICAgICAgICBteSAke3Byb3BfZ3R5cGV9ID0gZGVjYW1lbGl6
ZSgkcHJvcF90eXBlKTsKKyAgICAgICAgaWYgKCRwcm9wX2d0eXBlIGVxICJldmVudF90YXJnZXQi
KSB7CisgICAgICAgICAgICAkcHJvcF9ndHlwZSA9ICJldmVudF90YXJnZXRfbm9kZSI7CisgICAg
ICAgIH0KKyAgICAgICAgbXkgJHtwcm9wR1R5cGV9ID0gdWMoJHByb3BfZ3R5cGUpOworICAgICAg
ICBteSAkbGNhc2VfZ3R5cGVuYW1lID0gImdkb21fIiAuICRwcm9wX2d0eXBlOworCisgICAgICAg
IG15ICRjdXN0b20gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b20ifTsKKworICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0pIHsKKyAgICAgICAgICAgIG5leHQgU0tJUEVO
VU07CisgICAgICAgIH0KKworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbi5oIn0gPSAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKyAg
ICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRwcm9wX3R5cGUpKSB7CisgICAg
ICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisKKyAgICAgICAgcHVzaChAY0JvZHlQ
cml2LCAiICAgICR7cHJvcEVudW19LFxuIik7CisKKyAgICAgICAgbXkgJGd0eXBlID0gR2V0UHJv
cEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JF
QURBQkxFIjsKKyAgICAgICAgbXkgJHdyaXRlYWJsZSA9ICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15y
ZWFkb25seS87CisgICAgICAgIG15ICRjb25zdCA9ICJyZWFkLW9ubHkgIjsKKyAgICAgICAgaWYg
KCR3cml0ZWFibGUgJiYgJGN1c3RvbSkgeworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtb25s
eSAoZHVlIHRvIGN1c3RvbSBmdW5jdGlvbnMgbmVlZGVkIGluIGdkb213ZWJraXQpIjsKKyAgICAg
ICAgICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCR3cml0ZWFibGUg
JiYgISRjdXN0b20pIHsKKyAgICAgICAgICAgICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBRFdS
SVRFIjsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLXdyaXRlICI7CisgICAgICAgIH0KKwor
ICAgICAgICBteSAkX2d0eXBlID0gJGd0eXBlOworICAgICAgICBpZiAoJGd0eXBlIGVxICJ1c2hv
cnQiKSB7CisgICAgICAgICAgICAkX2d0eXBlID0gInVpbnQiOyAjIHl1ay4KKyAgICAgICAgfQor
ICAgICAgICAkbmljayA9IGRlY2FtZWxpemUoIiR7aW50ZXJmYWNlTmFtZX1fJHtwcm9wTmFtZX0i
KTsKKyAgICAgICAgJGxvbmcgPSAiJHtjb25zdH0gJHt0eXBlfSAke2ludGVyZmFjZU5hbWV9LiR7
cHJvcE5hbWV9IjsKKyAgICAgICAgbXkgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnX2tsYXNzLCAke3Byb3BFbnVtfSwK
KyAgICAgICAgICAgIGdfcGFyYW1fc3BlY18ke19ndHlwZX0gKCIke3Byb3BOYW1lfSIsIC8qIG5h
bWUgKi8KKyAgICAgICAgICAgICAgICAiJG5pY2siLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwor
ICAgICAgICAgICAgICAgICIkbG9uZyIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBl
eHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3By
b3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gIi8q
IFRPRE8hICRndHlwZSAqL1xuIjsKKworICAgICAgICBpZiAoJHdyaXRlYWJsZSkgeworICAgICAg
ICAgICAgbXkgJG9rID0gMDsKKyAgICAgICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisKKyAg
ICAgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAkY29u
dmVydF9mbiA9ICJXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4IjsKKyAgICAgICAgICAgICAgICAk
b2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzaWYgKCRndHlwZSBlcSAiYm9v
bGVhbiIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2lu
ZG93IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQg
aXQncyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAg
ICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJs
ZSIpIHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93
IikgeyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQn
cyBhYm91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAg
ICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIp
IHsKKyAgICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93Iikg
eyAjWFhYIFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBh
Ym91dCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImxvbmciKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lw
ICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAg
ICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAg
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICAgICAk
b2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAg
ICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJjaGFy
IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAjIFhYWCBUT0RPIC0gc2tpcCBMb2NhdGlvbgorICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJMb2NhdGlvbiIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAwOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAoJG9rKSB7CisgICAgICAgICAgICAgICAgcHVzaChAdHh0
X3NldF9wcm9wcywgIiAgICBjYXNlICR7cHJvcEVudW19OlxuICAgIHtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBnc2VsZi0+c2V0JHtzZXRw
cm9wX25hbWVfZm59KCR7Y29udmVydF9mbn0oZ192YWx1ZV9nZXRfJGd0eXBlICh2YWx1ZSkpIik7
CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiLCBlYyIpIGlmIEB7JGF0
dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3Nl
dF9wcm9wcywgIik7XG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMs
ICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAg
e1xuIik7CisKKyAgICAgICAgbXkgJGV4Y2VwdGlvbiA9ICIiOworICAgICAgICBpZiAoQHskYXR0
cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgJGV4Y2VwdGlvbiA9ICJl
YyI7CisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpF
eGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgbXkgJGNvbnZl
cnRfZm4gPSAiIjsKKyAgICAgICAgbXkgJHBvc3RfY29udmVydF9mbiA9ICIiOworICAgICAgICBt
eSAkZG9uZSA9IDA7CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAg
ICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcgKHZh
bHVlLCBHU3RyaW5nQ29udmVydChnc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9u
fSkpKTtcbiIpOworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisgICAgICAgIGVs
c2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgICAgIG15ICRkb21vYmpUeXBlID0g
IkdET00iLiRwcm9wX3R5cGU7CisKKyAgICAgICAgICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9G
IjsKKyAgICAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+IHB0ciA9IGdzZWxm
LT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KTsKKyAgICAgICAgZ192YWx1ZV9zZXRf
b2JqZWN0ICh2YWx1ZSwgV2ViS2l0Ojp0b0dET00ocHRyLmdldCgpKSk7CitFT0YKKyAgICAgICAg
ICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgICAgICAgICAk
ZG9uZSA9IDE7CisgICAgICAgIH0KKworICAgICAgICBpZiAoISRkb25lKSB7CisgICAgICAgICAg
ICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF8kX2d0eXBlICh2YWx1
ZSwgJHtjb252ZXJ0X2ZufWdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KSR7
cG9zdF9jb252ZXJ0X2ZufSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9n
ZXRfcHJvcHMsICIgICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworCisgICAgICAgICMgaXMgdGhp
cyBfZW50aXJlbHlfIG5lY2Vzc2FyeT8/PworICAgICAgICAjIGNhbiBpdCBiZSBkb25lIHdpdGgg
Z2VuZXJpYyBnX3BhcmFtX3NwZWNfZ3R5cGUKKyAgICAgICAgIyBhbmQgZ2V0dGluZyBhIGZldyB0
aGluZ3MsIGlnbm9yaW5nIHRoZSBtaW4tbWF4IGZvciBleGFtcGxlPworICAgICAgICBpZiAoJGd0
eXBlIGVxICJpbnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0Yi
OworICAgICAgICAgICAgICAgIEdfTUlOSU5ULCAgICAgICAgLyogbWluICovCisgICAgICAgICAg
ICAgICAgR19NQVhJTlQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBk
ZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJib29sZWFuIikgewor
ICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAg
ICBGQUxTRSwgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
ZmxvYXQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAg
ICAgICAgICAgICAgIEdfTUlORkxPQVQsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAg
ICBHX01BWEZMT0FULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVm
YXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAg
ICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBH
X01JTkRPVUJMRSwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYRE9VQkxF
LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
bWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5UNjQsIC8qIG1heCAqLworICAgICAgICAg
ICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVP
RiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAg
IEdfTUFYVUxPTkcsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZh
dWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01J
TkxPTkcsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWExPTkcsIC8qIG1h
eCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAg
ICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisg
ICAgICAgICAgICAgICAgR19NQVhVSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAg
ICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNo
b3J0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAg
ICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5U
MTYsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5JTlQ4LCAg
ICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhJTlQ4LCAvKiBtYXggKi8KKyAg
ICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxz
aWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0g
PDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAg
ICAgICAgIEdfTUFYVUlOVDgsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAv
KiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7
CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAg
ICAgICIiLCAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJv
YmplY3QiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAg
ICAgICAgICAgICAgIEdET01fVFlQRV8ke3Byb3BHVHlwZX0sIC8qIGdvYmplY3QgdHlwZSAqLwor
RU9GCisgICAgICAgIH0KKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5z
dGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAg
ICAgICAgICAgICAoR1BhcmFtRmxhZ3MpJHtncGFyYW1mbGFnfSkpOworCitFT0YKKyAgICAgICAg
cHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICB9CisKKyAg
ICBwdXNoKEBjQm9keVByaXYsICJ9O1xuXG4iKTsKKworCisgICAgJHR4dF9nZXRfcHJvcCA9IDw8
ICJFT0YiOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q
RVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
fQorRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICAk
dHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1Rf
V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAg
ICBicmVhazsKKyAgICB9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3Nl
dF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8ICJFT0YiOworICAgIGNh
c2UgUFJPUF9BR0U6CisgICAgICAgIHNlbGYtPmFnZSA9IGdfdmFsdWVfZ2V0X2ludCAodmFsdWUp
OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIGdfdmFsdWVf
c2V0X2ludCh2YWx1ZSwgc2VsZi0+YWdlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgKyAg
IGdfdmFsdWVfaW5pdCgmcGFyYW1zWzBdLCBHX1RZUEVfRlJPTV9JTlNUQU5DRShvYmplY3QpKTsK
KyAgICAgICAgKyAgIGdfdmFsdWVfc2V0X2luc3RhbmNlKCZwYXJhbXNbMF0sIChncG9pbnRlcilv
YmplY3QpOworCitFT0YKKworICAgICMgVE9ETzogd29yayBvdXQgaWYgaXQncyBhcHByb3ByaWF0
ZSB0byBzcGxpdCB0aGlzIGludG8gbWFueSBkaWZmZXJlbnQKKyAgICAjIHNpZ25hbHMgZS5nLiAi
Y2xpY2siIGV0Yy4KKyAgICBteSAkdHh0X2luc3RhbGxfc2lnbmFscyA9ICIiOworCisgICAgaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIG9yCisgICAgICAgICRpbnRlcmZhY2VOYW1l
IGVxICJYTUxIdHRwUmVxdWVzdCIpIHsKKyAgICAgICAgJHR4dF9pbnN0YWxsX3NpZ25hbHMgPSA8
PCAiRU9GIjsKKyAgICBldmVudF9zaWduYWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3
KCJicm93c2VyLWV2ZW50IiwKKyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MocmVxdWVzdENsYXNz
KSwKKyAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9B
Q1RJT04gfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfU0lH
TkFMX0RFVEFJTEVEICApLAorICAgICAgICAwLAorICAgICAgICBOVUxMLAorICAgICAgICBOVUxM
LAorICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfQk9PTEVBTiwKKyAgICAgICAg
R19UWVBFX05PTkUsIDIsCisgICAgICAgIEdET01fVFlQRV9FVkVOVCwgR19UWVBFX0JPT0xFQU4p
OworRU9GCisgICAgfQorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKK3N0YXRpYyB2
b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAg
R2RvbURPTU9iamVjdCogZG9tX29iamVjdCA9IEdET01fRE9NX09CSkVDVChvYmplY3QpOworICAg
IEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gZG9tX29iamVjdC0+cHJpdjsKKworICAgIGlm
IChwcml2LT5jb3JlT2JqZWN0ICE9IDApIHsKKwlXZWJLaXQ6OkdET01PYmplY3RDYWNoZTo6Zm9y
Z2V0RE9NT2JqZWN0KHByaXYtPmNvcmVPYmplY3QpOworCXN0YXRpY19jYXN0PFdlYkNvcmU6OiR7
aW50ZXJmYWNlTmFtZX0gKj4ocHJpdi0+Y29yZU9iamVjdCktPmRlcmVmKCk7CisJcHJpdi0+Y29y
ZU9iamVjdCA9IDA7CisgICAgfQorCisgICAgR19PQkpFQ1RfQ0xBU1MoJHtsY2FzZV9pZmFjZW5h
bWV9X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK0B0eHRfc2V0X3Byb3Bz
CisKK0B0eHRfZ2V0X3Byb3BzCisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9jbGFz
c19pbml0KCR7Y2xhc3NOYW1lfUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR09iamVjdENs
YXNzICpnX2tsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKHJlcXVlc3RDbGFzcyk7CisgICAgZ19rbGFz
cy0+ZmluYWxpemUgPSAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemU7CisgICAgZ19rbGFzcy0+
c2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlfZm47CisgICAg
Z19rbGFzcy0+Z2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlf
Zm47CisKK0B0eHRfaW5zdGFsbF9wcm9wcworCiskdHh0X2luc3RhbGxfc2lnbmFscworfQorCitz
dGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1faW5pdCgke2NsYXNzTmFtZX0qIHJlcXVlc3Qp
Cit7Cit9CisKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAg
ICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7aW50ZXJmYWNlTmFtZX1Qcml2YXRlLmgifSA9IDE7
CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNpZm5kZWYgJHtndWFyZH1fUFJJVl8K
KyNkZWZpbmUgJHtndWFyZH1fUFJJVl8KKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1
ZGUgImdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIgorI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFtZX0u
aCIKK0VPRgorICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworLy99IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwordHlwZWRlZiBz
dHJ1Y3QgXyR7Y2xhc3NOYW1lfSAke2NsYXNzTmFtZX07CisKK25hbWVzcGFjZSBXZWJLaXQgewor
ICAgICR7Y2xhc3NOYW1lfSAqCisgICAgd3JhcCR7aW50ZXJmYWNlTmFtZX0oUGFzc1JlZlB0cjxX
ZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9PiBwcnBDb3JlT2JqZWN0KTsKKworICAgIFdlYkNvcmU6
OiR7aW50ZXJmYWNlTmFtZX0gKgorICAgIGNvcmUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKK0VP
RgorICAgIHB1c2goQGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgIGlmICgke2ludGVy
ZmFjZU5hbWV9IGVxICJET01XaW5kb3ciIHx8ICghJGhhc1BhcmVudCBvciAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkgYW5kCisJIVVzZXNNYW51YWxUb0pT
SW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAgICRpbXBsQ29udGVudCA9
IDw8ICJFT0YiOworCisgICAgZ3BvaW50ZXIKKyAgICB0b0dET00oV2ViQ29yZTo6JHtpbnRlcmZh
Y2VOYW1lfSogbm9kZSk7CitFT0YKKyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRl
bnQpOworICAgIH0KKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvKiAke2d1YXJkfV9QUklWXyAqLworCitFT0YKKyAgICBwdXNo
KEBoQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICAjaWYgKCRwYXJhbUlETFR5cGUgZXEg
IkRPTU9iamVjdCIpIHsKKyAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2Vu
ZXJhdG9yLgorICAgICMgICAgJGltcGxJbmNsdWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaCJ9ID0gMTsKKyAgICAjfSBlbHNlIHsKKyAgICAjICAgICRpbXBsSW5jbHVkZXN7JGluY2x1
ZGVIZHJ9ID0gMTsKKyAgICAjfQorICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0u
aCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb21ET01PYmplY3RQcml2YXRlLmgi
fSA9IDE7CisKKyAgTE9PUDoKKyAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUt
PmZ1bmN0aW9uc30pIHsKKwkjbXkgJGZ1bmN0aW9uTmFtZSA9IGRlY2FtZWxpemUoJGNsYXNzTmFt
ZSkgLiAiXyIgLiBkZWNhbWVsaXplKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKwlteSAk
Zm5fc2lnX25hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKKwlteSAkZm5fc2lnX3R5
cGUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZTsKKwlteSAkZnVuY3Rpb25OYW1lID0gImdk
b21fIiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZm5f
c2lnX25hbWUpOworCW15ICRyZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKwlt
eSAkcmV0X2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRmbl9zaWdfdHlwZSk7CisKKwlt
eSAkZnVuY3Rpb25TaWcgPSAiJGNsYXNzTmFtZSAqdGhpeiI7CisKKwlteSAkY2FsbF9pbXBsX3Bh
cmFtcyA9ICIiOworCW15ICRnZG9tX2ZuX3ByZWZpeCA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRm
bl9zaWdfdHlwZSk7CisKKwlpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9jc3Nfc3R5bGVfZGVj
bGFyYXRpb25fc2V0X3Byb3BlcnR5IikgeworCSAgICAjIHJlc2VydmVkIG5hbWUgY2xhc2ggaW4g
Z2xpYiEKKwkgICAgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9z
ZXRfY3NzX3Byb3BlcnR5IjsKKwl9CisJIyBYWFggc2tpcCBDb21wYXJlSG93IGZ1bmN0aW9ucyBm
b3Igbm93CisJaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fcmFuZ2VfY29tcGFyZV9ib3VuZGFy
eV9wb2ludHMiKSB7CisJICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcg
Q29tcGFyZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisJICAgIHB1c2go
QGNCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAke2Z1
bmN0aW9uTmFtZX0gKi9cblxuIik7CisJICAgIG5leHQgTE9PUDsKKwl9CisKKwkjIFhYWCBza2lw
IFNWR0RvY3VtZW50IGZ1bmN0aW9ucyBmb3Igbm93CisJaWYgKCRyZXR1cm5UeXBlIGVxICJHZG9t
U1ZHRG9jdW1lbnQgKiIpIHsKKwkgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lw
cGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisJICAg
IHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rp
b24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworCSAgICBuZXh0IExPT1A7CisJfQorCisJIyBY
WFggc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworCW15ICRpc19jdXN0b21fZm4g
PSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9Owor
CWlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9pdGVtIiB8fAorCSAg
ICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9uYW1lZF9pdGVtIiB8fAor
CSAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfb3BlbiIgfHwKKwkg
ICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3NldF9yZXF1ZXN0X2hl
YWRlciIgfHwKKwkgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X3Nl
bmQiIHx8CisJICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9nZXRf
cmVzcG9uc2VfaGVhZGVyIiB8fAorCSAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRw
X3JlcXVlc3Rfb3ZlcnJpZGVfbWltZV90eXBlIiB8fAorCSAgICAkZnVuY3Rpb25OYW1lIGVxICJn
ZG9tX3htbF9odHRwX3JlcXVlc3RfZGlzcGF0Y2hfZXZlbnQiIHx8CisJICAgICRmdW5jdGlvbk5h
bWUgZXEgImdkb21fZWxlbWVudF9zZXRfYXR0cmlidXRlIikgeworCSAgICAkaXNfY3VzdG9tX2Zu
ID0gMDsKKwl9CisJIyRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9hZGRf
ZXZlbnRfbGlzdGVuZXIiIHx8CisJIyRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVx
dWVzdF9yZW1vdmVfZXZlbnRfbGlzdGVuZXIiIHx8CisJaWYgKCRpc19jdXN0b21fZm4gJiYgCisJ
ICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUiICYmIAor
CSAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKwkgICAg
JGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisJICAgICRmdW5j
dGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorCSAgICAkZnVuY3Rpb25O
YW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKwkgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAiZ2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9kZSIgJiYgCisJICAgICRmdW5jdGlvbk5hbWUg
bmUgImdkb21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorCSAgICAkZnVuY3Rpb25OYW1l
IG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAorCSAgICAkZnVuY3Rpb25OYW1l
IG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmciICYmIAorCSAgICAkZnVuY3Rp
b25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisJICAgICRmdW5j
dGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYgCisJICAgICRm
dW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9ub2RlIiAmJiAKKwkgICAgJGZ1
bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX3ByZXZpb3VzX25vZGUiKSB7CisJICAg
IHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25O
YW1lfSAqL1xuXG4iKTsKKwkgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20g
ZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworCSAgICBuZXh0IExPT1A7CisJfQor
CisJZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworCSAgICBt
eSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworCSAgICBhZGRJbmNCb2R5KCRwYXJhbUlE
TFR5cGUpOworCSAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisJICAgIG15ICRwYXJhbVR5
cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKwkgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2Ft
ZWxpemUoJHBhcmFtLT5uYW1lKTsKKworCSAgICAkZnVuY3Rpb25TaWcgLj0gIiwgJHBhcmFtVHlw
ZSAkcGFyYW1OYW1lIjsKKworCSAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFz
c1R5cGUoJHBhcmFtSURMVHlwZSk7CisJICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKwkJ
aWYgKCRwYXJhbUlETFR5cGUgbmUgIkRPTU9iamVjdCIgJiYKKwkJICAgICRwYXJhbUlETFR5cGUg
bmUgIkV2ZW50VGFyZ2V0IikgeworCQkgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tJHtwYXJh
bUlETFR5cGV9UHJpdmF0ZS5oIn0gPSAxOworCQkgICAgIyB0aGlzIGlzbid0IHN0cmljdGx5IG5l
Y2Vzc2FyeSBidXQgb25lIG9mIHRoZQorCQkgICAgIyBhdXRvLWdlbmVyYXRlZCBmaWxlcyBuZWVk
ZWQgaXQgc28uLi4uCisJCSAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmFtSURMVHlwZX0uaCJ9ID0g
MTsKKwkJfQorCSAgICB9CisJICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUgfHwgKCRwYXJhbUlE
TFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7CisJCSRwYXJhbU5hbWUgPSAiX2dfIiAuICRwYXJhbU5h
bWU7CisJICAgIH0KKwkgICAgaWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7CisJCSRjYWxsX2ltcGxf
cGFyYW1zIC49ICIsICRwYXJhbU5hbWUiOworCSAgICB9IGVsc2UgeworCQkkY2FsbF9pbXBsX3Bh
cmFtcyA9ICIkcGFyYW1OYW1lIjsKKwkgICAgfQorCX0KKworCWFkZEluY0hkcigkZm5fc2lnX3R5
cGUpOworCWlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisJICAgICMgICAgJGltcGxUeXBlZGVmc3si
R2RvbSR7Zm5fc2lnX3R5cGV9In0gPSAxOworCX0KKworCWlmICgkcmV0dXJuVHlwZSBuZSAidm9p
ZCIpIHsKKworCSAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworCQlpZiAoJGZuX3NpZ190eXBl
IGVxICJET01PYmplY3QiKSB7CisJCSAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9t
IGpzZ2VuZXJhdG9yLgorCQkgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmgifSA9IDE7CisJCX0gZWxzZSB7CisJCSAgICBpZiAoJGZuX3NpZ190eXBl
IG5lICJFdmVudFRhcmdldCIpIHsKKwkJCSRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7Zm5fc2ln
X3R5cGV9UHJpdmF0ZS5oIn0gPSAxOworCQkJJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tJHtmbl9z
aWdfdHlwZX0uaCJ9ID0gMTsKKwkJICAgIH0KKwkJICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2ln
X3R5cGV9LmgifSA9IDE7CisJCX0KKwkgICAgfQorCX0KKworCSMgWFhYIHNraXAgY3VzdG9tIGZ1
bmN0aW9ucyBmb3Igbm93CisJIyBidXQgc2tpcCBmcm9tIGhlcmUgdG8gYWxsb3cgc29tZSBoZWFk
ZXJzIHRvIGJlIGNyZWF0ZWQKKwkjIGZvciBhIHN1Y2Nlc3NmdWwgY29tcGlsZS4KKwlpZiAoJGlz
X2N1c3RvbV9mbiAmJgorCSAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVtb3ZlX2No
aWxkIiAmJiAKKwkgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUi
ICYmCisJICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgor
CSAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIikgeworCSAgICBw
dXNoKEBoQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFt
ZX0gKi9cblxuIik7CisJICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1
bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKwkgICAgbmV4dCBMT09QOworCX0KKwor
CW15ICRfcmV0dXJuVHlwZSA9ICRyZXR1cm5UeXBlOworCW15ICRkb21vYmpUeXBlID0gIkdET00i
LiRmbl9zaWdfdHlwZTsKKwlpZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisJICAg
ICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfY29udGV4dCcp
IHsKKwkgICAgIyBYWFggSEFDSyEKKwkgICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5k
ZXJpbmdDb250ZXh0IConOworCSAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFzUmVuZGVyaW5n
Q29udGV4dCc7CisJICAgICRnZG9tX2ZuX3ByZWZpeCA9ICdnZG9tX2NhbnZhc19yZW5kZXJpbmdf
Y29udGV4dCc7CisJICAgIG5leHQgTE9PUDsJICAgICAgICMgWFhYIC0gdG9vIGludm9sdmVkIGZv
ciBub3cuICBza2lwIGl0LgorCSAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9E
TzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQorCSAgICAjIGJldHRlcjogd29yayBv
dXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKwl9CisKKwlpZiAoJGZuX3NpZ190eXBl
IGVxICdET01PYmplY3QnICYmCisJICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21fZG9jdW1lbnRf
Z2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKwkgICAgIyBYWFggSEFDSyEKKwkgICAgJF9yZXR1
cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgKic7CisJICAgICRkb21vYmpU
eXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnOworCSAgICAkZ2RvbV9mbl9wcmVm
aXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZCc7CisJICAgIG5leHQgTE9PUDsJ
ICAgICAgICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorCSAgICAjIG11
c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBv
dXQgaG93KQorCSAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21P
YmplY3QKKwl9CisKKworCXB1c2goQGhCb2R5LCAiV0VCS0lUX0FQSSAkX3JldHVyblR5cGVcbiRm
dW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisJcHVzaChAY0JvZHksICIkX3Jl
dHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZylcbntcbiIpOworCisJaWYgKCRy
ZXR1cm5UeXBlIG5lICJ2b2lkIikgeworCSAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRl
ZmF1bHQgcmVzdWx0CisJICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
ICh0aGl6LCAwKTtcbiIpOworCX0gZWxzZSB7CisJICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0
dXJuX2lmX2ZhaWwgKHRoaXopO1xuIik7CisJfQorCisJcHVzaChAY0JvZHksICIgICAgV2ViQ29y
ZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUodGhpeik7XG4iKTsKKwlp
ZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisJICAgICMgWFhYIFRPRE86IHJldHVybiBwcm9w
ZXIgZGVmYXVsdCByZXN1bHQKKwkgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwgKGl0ZW0sIDApO1xuIik7CisJfSBlbHNlIHsKKwkgICAgcHVzaChAY0JvZHksICIgICAg
Z19yZXR1cm5faWZfZmFpbCAoaXRlbSk7XG4iKTsKKwl9CisKKwlmb3JlYWNoIG15ICRwYXJhbSAo
QHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisJICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVs
aXplKCRwYXJhbS0+bmFtZSk7CisJICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7
CisJICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1p
dGl2ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisJICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElz
R0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKwkgICAgYWRkSW5jSGRyKCRwYXJhbUlETFR5
cGUpOworCSAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisJCSMgICAgJGltcGxUeXBlZGVm
c3siR2RvbSR7cGFyYW1JRExUeXBlfSJ9ID0gMTsKKwkgICAgfQorCSAgICBpZiAoISRwYXJhbVR5
cGVJc1ByaW1pdGl2ZSkgeworCQlpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisJCSAgICAj
IFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisJCSAgICBwdXNoKEBjQm9k
eSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFtTmFtZSwgMCk7XG4iKTsKKwkJfSBl
bHNlIHsKKwkJICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKCRwYXJhbU5h
bWUpO1xuIik7CisJCX0KKwkgICAgfQorCX0KKworCSRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKwlm
b3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisJICAgIG15ICRw
YXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisJICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlw
ZSgkcGFyYW1JRExUeXBlKTsKKwkgICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFt
LT5uYW1lKTsKKworCSAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUo
JHBhcmFtSURMVHlwZSk7CisJICAgICMgSEFDSyEKKwkgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEg
Imdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiAmJgorCQkkcGFyYW0tPm5hbWUgZXEgInVybCIp
IHsKKworCQkjJGltcGxJbmNsdWRlc3siS1VSTC5oIn0gPSAxOworCQlwdXNoKEBjQm9keSwgIiAg
ICBXZWJDb3JlOjpLVVJMIF9nXyR7cGFyYW1OYW1lfSA9IFdlYkNvcmU6OktVUkwoJHBhcmFtTmFt
ZSk7XG4iKTsKKwkgICAgfSBlbHNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikgewor
CQlwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2Vi
Q29yZTo6U3RyaW5nOjpmcm9tVVRGOCgkcGFyYW1OYW1lKTtcbiIpOworCSAgICB9CisJICAgIGlm
ICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKwkJbXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4g
ZGVjYW1lbGl6ZSgkcGFyYW1JRExUeXBlKTsKKwkJaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2ZW50
VGFyZ2V0IikgeworCQkgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2Rl
UHJpdmF0ZS5oIn0gPSAxOworCQkgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXZlbnRU
YXJnZXROb2RlICogX2dfJHtwYXJhbU5hbWV9ID0gV2ViS2l0Ojpjb3JlKCRwYXJhbU5hbWUpO1xu
Iik7CisJCX0gZWxzZSB7CisJCSAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFt
SURMVHlwZX0gKiBfZ18ke3BhcmFtTmFtZX0gPSBXZWJLaXQ6OmNvcmUoJHBhcmFtTmFtZSk7XG4i
KTsKKwkJfQorCQlpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisJCSAgICAjIFhYWCBUT0RP
OiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisJCSAgICBwdXNoKEBjQm9keSwgIiAgICBn
X3JldHVybl92YWxfaWZfZmFpbCAoX2dfJHtwYXJhbU5hbWV9LCAwKTtcbiIpOworCQl9IGVsc2Ug
eworCQkgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoX2dfJHtwYXJhbU5h
bWV9KTtcbiIpOworCQl9CisKKwkgICAgfQorCSAgICAkcmV0dXJuUGFyYW1OYW1lID0gIl9nXyIu
JHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXR1cm4ifTsKKwl9
CisKKwlteSAkYXNzaWduID0gIiI7CisJbXkgJGFzc2lnbl9wcmUgPSAiIjsKKwlteSAkYXNzaWdu
X3Bvc3QgPSAiIjsKKwkkZ19yZXMgPSAwOworCWlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYg
ISRpc19jdXN0b21fZm4pIHsKKworCSAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworCQkkYXNz
aWduID0gIlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtmbl9zaWdfdHlwZX0+IGdfcmVzID0gIjsKKwkJ
JGFzc2lnbl9wcmUgPSAiV1RGOjpnZXRQdHIoIjsKKwkJJGFzc2lnbl9wb3N0ID0gIikiOworCSAg
ICB9IGVsc2UgeworCQkkYXNzaWduID0gIiR7X3JldHVyblR5cGV9IHJlcyA9ICI7CisJICAgIH0K
Kwl9CisJbXkgJGV4Y2VwdGlvbnMgPSAiIjsKKwlpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2Vw
dGlvbnN9KSB7CisJICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwO1xuIik7CisJICAgIGlmICgke2NhbGxfaW1wbF9wYXJhbXN9IG5lICIiKSB7CisJCSRl
eGNlcHRpb25zID0gIiwgZWMiOworCSAgICB9IGVsc2UgeworCQkkZXhjZXB0aW9ucyA9ICJlYyI7
CisJICAgIH0KKwl9CisKKwkjIG5lZWQgdGhpcyBmb3IgaW5jbHVkaW5nIC4uLiBfc29tZXRoaW5n
XyAtIGZvciB0aGUgY2xhc3MgYXJncworCSNpZiAoJHJldF9pc19jbHNfdHlwZSkgeworCSMgICAg
JGltcGxJbmNsdWRlc3siZ2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisJI30KKwlpZiAoJGZ1
bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIgfHwKKwkgICAgJGZ1bmN0aW9u
TmFtZSBlcSAiZ2RvbV9ub2RlX2luc2VydF9iZWZvcmUiIHx8CisJICAgICRmdW5jdGlvbk5hbWUg
ZXEgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiB8fAorCSAgICAkZnVuY3Rpb25OYW1lIGVxICJn
ZG9tX25vZGVfcmVtb3ZlX2NoaWxkIikgeworCSAgICBteSAkY3VzdG9tX2dkb21fbm9kZV9hcHBl
bmRfY2hpbGQgPSA8PCAiRU9GIjsKKyAgICBib29sIG9rID0gaXRlbS0+JHtmbl9zaWdfbmFtZX0o
JHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pOworICAgIGlmIChvaykKKyAgICB7Cisg
ICAgICAgICR7X3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihX
ZWJLaXQ6OnRvR0RPTSgkcmV0dXJuUGFyYW1OYW1lKSk7CisgICAgICAgIHJldHVybiByZXM7Cisg
ICAgfQorICAgIHJldHVybiBOVUxMOworRU9GCisJICAgIHB1c2goQGNCb2R5LCAkY3VzdG9tX2dk
b21fbm9kZV9hcHBlbmRfY2hpbGQpOworCX0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2Jq
ZWN0IiAmJgorCQkgJGZ1bmN0aW9uTmFtZSBuZSAnZ2RvbV9kb2N1bWVudF9nZXRfY3NzX2NhbnZh
c19jb250ZXh0JykgeworCSAgICBwdXNoKEBjQm9keSwgIiAgICAvKiBYWFggVE9ETyAtIGdldCBj
YW52YXMgb2JqZWN0IChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtl
eGNlcHRpb25zfSkpOyovXG4iICk7CisKKwl9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTVN0
cmluZyIpIHsKKwkgICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259R1N0cmluZ0NvbnZlcnQo
aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTtc
biIgKTsKKwl9IGVsc2UgeworCSAgICBpZiAoJGdfcmVzKSB7CisJCSRnX3JlcyA9ICIke2Fzc2ln
bn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7
ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSkiIDsKKwkgICAgfSBlbHNlIHsKKwkJcHVzaChAY0Jv
ZHksICIgICAgJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2Fs
bF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0pO1xuIiApOworCSAgICB9
CisJfQorCWlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKwor
CSAgICBpZiAoJGZuX3NpZ190eXBlIG5lICJET01PYmplY3QiKSB7CisJCWlmICgkcmV0X2lzX2Ns
c190eXBlKSB7CisJCSAgICBwdXNoKEBjQm9keSwgIiAgICAke19yZXR1cm5UeXBlfSByZXMgPSBz
dGF0aWNfY2FzdDwke19yZXR1cm5UeXBlfT4oV2ViS2l0Ojp0b0dET00oZ19yZXMuZ2V0KCkpKTtc
biIpOworCQl9CisJICAgIH0KKwkgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0Iikg
eworCQlwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE86IHJldHVybiBj
YW52YXMgb2JqZWN0ICovXG4iKTsKKwkgICAgfSBlbHNlIHsKKwkJcHVzaChAY0JvZHksICIgICAg
cmV0dXJuIHJlcztcbiIpOworCSAgICB9CisJfQorCXB1c2goQGNCb2R5LCAiXG4iKTsKKworCXB1
c2goQGNCb2R5LCAifVxuXG4iKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogZXh0
ZXJuIFwiQ1wiICovXG5cbiIpOworICAgIHB1c2goQGNCb2R5UHJpdiwgIn0gLyogZXh0ZXJuIFwi
Q1wiICovXG5cbiIpOworCisgICAgcHVzaChAaEJvZHksICJHX0VORF9ERUNMU1xuXG4iKTsKKyAg
ICBwdXNoKEBoQm9keSwgIiNlbmRpZiAvKiAkZ3VhcmQgKi9cbiIpOworCisgICAgcHVzaChAaEJv
ZHlQcm9wLCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHlQcm9wLCAiI2VuZGlm
IC8qICR7Z3VhcmR9X1BST1BfKi9cbiIpOworfQorCisjIEludGVybmFsIGhlbHBlcgorc3ViIFdy
aXRlRGF0YSB7CisgICAgbXkgKCRvYmplY3QsICRuYW1lKSA9IEBfOworCisgICAgIyBXcml0ZSBQ
cml2YXRlIGhlYWRlcgorICAgIG15ICRoZHJGTmFtZVByaXYgPSAiJG91dHB1dERpci8iIC4gJG5h
bWUgLiAiUHJpdmF0ZS5oIjsKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGhkckZOYW1lUHJpdiIp
IG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFtZVByaXYiOworICAgIHByaW50IFBS
SVZIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgUFJJVkhFQURFUiAiXG4iOworICAgIHByaW50
IFBSSVZIRUFERVIgQGhCb2R5UHJpdjsKKyAgICBjbG9zZShQUklWSEVBREVSKTsKKworICAgICMg
V3JpdGUgcHJvcGVydGllcyBoZWFkZXIgKGF2b2lkcyByZWN1cnNpdmUgbmlnaHRtYXJlKQorICAg
IG15ICRoZHJQcm9wRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAicHJvcHMuaCI7Cisg
ICAgb3BlbihQUk9QSEVBREVSLCAiPiRoZHJQcm9wRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9w
ZW4gZmlsZSAkaGRyUHJvcEZOYW1lIjsKKworICAgICRoZHJQcm9wSW5jbHVkZXN7ImdsaWItb2Jq
ZWN0LmgifSA9IDE7CisKKyAgICBwcmludCBQUk9QSEVBREVSIEBoUHJlZml4OworICAgIHByaW50
IFBST1BIRUFERVIgIi8qIHJlY3Vyc2l2ZSBpbmNsdWRlcyAvIGRlZmluZXMgaXNzdWUgZm9yY2Vz
IHNlcGFyYXRlIGhlYWRlciBmb3IgcHJvcGVydGllcy5cbnBlcmhhcHMgLSBiZXR0ZXIgLSBhbGwg
Z2RvbSBndGsgZnVuY3Rpb25zIHNob3VsZCBiZSBpbiBoZXJlISovXG4iOworICAgIHByaW50IFBS
T1BIRUFERVIgQGhCb2R5UHJvcFByZTsKKyAgICBwcmludCBQUk9QSEVBREVSICIjaW5jbHVkZSA8
d2Via2l0L3dlYmtpdGRlZmluZXMuaD5cbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBtYXAgeyAi
I2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJQcm9wSW5jbHVkZXMpOworICAgIHBy
aW50IFBST1BIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJQcm9wSW5jbHVkZXMpOworICAgIHByaW50
IFBST1BIRUFERVIgIlxuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIEBoQm9keVByb3A7CisKKyAg
ICBjbG9zZShIRUFERVIpOworCisgICAgIyBXcml0ZSBwdWJsaWMgaGVhZGVyLgorICAgIG15ICRo
ZHJGTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuaCI7CisgICAgb3BlbihIRUFERVIs
ICI+JGhkckZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lIjsKKwor
ICAgICRoZHJJbmNsdWRlc3siZ2xpYi1vYmplY3QuaCJ9ID0gMTsKKworICAgIHByaW50IEhFQURF
UiBAaFByZWZpeDsKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXhHdWFyZDsKKyAgICBwcmludCBI
RUFERVIgIiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPlxuIjsKKyAgICBwcmludCBI
RUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRySW5jbHVkZXMp
OworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWhkckluY2x1ZGVzKTsKKyAgICBwcmlu
dCBIRUFERVIgIlxuIjsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5UHJlOworICAgIHByaW50IEhF
QURFUiBtYXAgeyAidHlwZWRlZiBzdHJ1Y3QgXyRfICRfO1xuIiB9IHNvcnQga2V5cyglaW1wbFR5
cGVkZWZzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVpbXBsVHlwZWRlZnMpOwor
ICAgIHByaW50IEhFQURFUiBAaEJvZHk7CisKKyAgICBjbG9zZShIRUFERVIpOworCisgICAgIyBX
cml0ZSB0aGUgaW1wbGVtZW50YXRpb24gc291cmNlcworICAgIG15ICRpbXBsRmlsZU5hbWUgPSAi
JG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihJTVBMLCAiPiRpbXBsRmls
ZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lIjsKKworICAg
IHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJjb25maWcu
aFwiXG5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD5cbiI7Cisg
ICAgcHJpbnQgSU1QTCBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVpbXBs
SW5jbHVkZXMpOworICAgIHByaW50IElNUEwgIlxuIiBpZiBrZXlzKCVpbXBsSW5jbHVkZXMpOwor
ICAgIHByaW50IElNUEwgQGNCb2R5OworCisgICAgcHJpbnQgSU1QTCAiXG4iOworICAgIHByaW50
IElNUEwgQGNCb2R5UHJpdjsKKworICAgIGNsb3NlKElNUEwpOworCisgICAgJWltcGxJbmNsdWRl
cyA9ICgpOworICAgICVpbXBsVHlwZWRlZnMgPSAoKTsKKyAgICAlaGRySW5jbHVkZXMgPSAoKTsK
KyAgICBAaFByZWZpeCA9ICgpOworICAgIEBoQm9keSA9ICgpOworICAgIEBoQm9keVByaXYgPSAo
KTsKKyAgICBAaEJvZHlQcm9wID0gKCk7CisgICAgQGhCb2R5UHJvcFByZSA9ICgpOworCisgICAg
QGNQcmVmaXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7Cit9
CisKKzE7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwJKHJldmlzaW9uIDM4ODUy
KQorKysgV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMzUsMTQgKzM1LDE0IEBACiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBjb2RlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29kZUJhc2U7CiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBo
ZWlnaHQ7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaHNw
YWNlOwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmlu
Z10gbG9uZyBoc3BhY2U7CiAjZW5kaWYKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBvYmplY3Q7Ci0jaWYg
ZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdnNwYWNlOwogI2Vsc2UK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0RnJvbVN0cmluZ10gbG9uZyB2c3Bh
Y2U7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzODg1MikKKysr
IFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NyArMzAsNyBAQAogICAgICAgICBJbXBsZW1lbnRhdGlvblVVSUQ9OTNlMDQwN2EtODM4MC00ZmYw
LTk3OGQtZjc3M2YyZGVlNmEzCiAgICAgXSBIVE1MRW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQg
ewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgYWxpZ247Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRl
ZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgaGVpZ2h0OwogI2Vsc2UKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
RnJvbVN0cmluZ10gbG9uZyBoZWlnaHQ7CkBAIC0zOCw3ICszOCw3IEBACiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgc3JjOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgdHlwZTsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
CisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyB3aWR0aDsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBb
Q29udmVydEZyb21TdHJpbmddIGxvbmcgd2lkdGg7CkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRs
CShyZXZpc2lvbiAzODg1MikKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtNjIsOSArNjIsMTMgQEAKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOwogCiAgICAgICAgIC8vIHZvaWQgc2VuZCgpOwotICAgICAgICAvLyB2b2lkIHNlbmQo
aW4gRE9NU3RyaW5nIGRhdGEpOworI2lmIGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkKKyAgICAg
ICAgdm9pZCBzZW5kKGluIERPTVN0cmluZyBkYXRhKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CisjZWxzZQogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNlbmQoaW4gRG9jdW1lbnQg
ZGF0YSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworI2VuZGlmCiAKICAgICAg
ICAgdm9pZCBhYm9ydCgpOwogCkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdl
TG9nCShyZXZpc2lvbiAzODg1MikKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDA4LTExLTMwICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBh
ZGQgR2RvbSouaCBnbGliIERPTSBiaW5kaW5ncyBoZWFkZXIgZmlsZXMsCisgICAgICAgIAorICAg
ICAgICBBbHNvIGFkZGVkIGdkb21lbnVtdHlwZXMuY3BwLGggd2hpY2ggcHJlc2VudGx5IGRvIG5v
dAorICAgICAgICBhY3R1YWxseSBjb250YWluIGFueXRoaW5nLCBiZWNhdXNlIHRoZXJlIGFyZSBu
byBlbnVtcworICAgICAgICBpbiB0aGUgZ2xpYiBiaW5kaW5ncyAtIHlldC4KKwogMjAwOC0xMS0y
OCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBhbmQgc2xpZ2h0bHkgbW9kaWZpZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpJbmRleDogV2Vi
S2l0VG9vbHMvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvR05VbWFr
ZWZpbGUuYW0JKHJldmlzaW9uIDM4ODUyKQorKysgV2ViS2l0VG9vbHMvR05VbWFrZWZpbGUuYW0J
KHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw4IEBACiBQcm9ncmFtc19HdGtMYXVuY2hlcl9DUFBG
TEFHUyA9IFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGlyKS9X
ZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkkKHRvcF9i
dWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChq
YXZhc2NyaXB0Y29yZV9jcHBmbGFncykKIApAQCAtMzIsNiArMzQsOCBAQAogCS1JJChzcmNkaXIp
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ayBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0
ayBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2RpcikvV2ViS2l0
L2d0ay93ZWJraXQgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKIAkt
RFRFU1RfUExVR0lOX0RJUj1cIiR7c2hlbGwgcHdkfS8ke3RvcF9idWlsZGRpcn0vVGVzdE5ldHNj
YXBlUGx1Z2luLy5saWJzXCIgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0
Y29yZV9jcHBmbGFncykKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM4ODUyKQorKysgV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDgtMTEtMzAgIGxr
Y2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IGFkZGVkIC1JIGluY2x1ZGVzIHRvIGd0ayB3
ZWJraXQgc3ViZGlyZWN0b3JpZXMKKworICAgICAgICBHZG9tIGdsaWIgRE9NIGJpbmRpbmdzIGhh
dmUgdGhlaXIgaGVhZGVyIGZpbGVzIGNvbnRhaW5pbmcKKyAgICAgICAgI2luY2x1ZGUgImdkb20q
IiB3aGVyZSAjaW5jbHVkZSA8d2Via2l0L2dkb20qPiBpcyBub3QKKyAgICAgICAgcG9zc2libGUs
IGFzIHRoZSBnZG9tKiBzb3VyY2UgYW5kIGhlYWRlciBmaWxlcyBhcmUgYXV0by1nZW5lcmF0ZWQK
KyAgICAgICAgaW50byBEZXJpdmVkU291cmNlcy8gbm90IERlcml2ZWRTb3VyY2VzL3dlYmtpdCwg
Zm9sbG93aW5nIHRoZQorICAgICAgICBleGFtcGxlIG9mIHRoZSBKUyBEZXJpdmVkIFNvdXJjZXMu
CisKIDIwMDgtMTEtMjcgIEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgogCiAgICAgICAgIEJ1
aWxkIEd0a0xhdW5jaGVyIGFuZCBtaW5pZG9tIHdpdGggdGhlICctYW5zaScgY29tcGlsZXIgZmxh
ZyB0byBkZXRlY3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25671</attachid>
            <date>2008-12-02 09:10:31 -0800</date>
            <delta_ts>2009-07-12 14:28:05 -0700</delta_ts>
            <desc>patch for martin to add</desc>
            <filename>x</filename>
            <type>text/plain</type>
            <size>5555</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsIGIvV2ViQ29yZS9k
b20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKaW5kZXggYzlhYzM1Ni4uOGNiMDRiNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKKysrIGIvV2ViQ29yZS9kb20vRE9N
Q29yZUV4Y2VwdGlvbi5pZGwKQEAgLTM2LDcgKzM2LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemls
bGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJp
bmcoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4IDk2OGQ1MmEuLmJlODA1N2IgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwK
QEAgLTE1NCw3ICsxNTQsNyBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHRpdGxlOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlZmVycmVyOwotI2lmIGRlZmluZWQoTEFO
R1VBR0VfSkFWQVNDUklQVCkKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZG9tYWluOwogI2Vsc2UKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb21haW47CkBAIC0xODAsNyArMTgwLDcgQEAg
bW9kdWxlIGNvcmUgewogCiAgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlOYW1lKGluIERP
TVN0cmluZyBlbGVtZW50TmFtZSk7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
CisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFHRV9H
T0JKRUNUKSkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxv
Y2F0aW9uOwogI2VuZGlmCiAKQEAgLTE5Myw3ICsxOTMsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAg
ICAgIEVsZW1lbnQgICAgICAgICAgICBlbGVtZW50RnJvbVBvaW50KGluIGxvbmcgeCwgaW4gbG9u
ZyB5KTsKIAogICAgICAgICAvLyBNb3ppbGxhIGV4dGVuc2lvbnMKLSNpZiBkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVm
aW5lZChMQU5HVUFHRV9HT0JKRUNUKSkKICAgICAgICAgRE9NU2VsZWN0aW9uICAgICAgIGdldFNl
bGVjdGlvbigpOwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51
bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgY2hhcmFjdGVyU2V0OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsIGIvV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24u
aWRsCmluZGV4IDYxY2ZkNjUuLjUzNjlhOWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50
RXhjZXB0aW9uLmlkbAorKysgYi9XZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwKQEAgLTM3
LDcgKzM3LDcgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpF
Q1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAog
ICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgYi9XZWJDb3JlL2RvbS9SYW5nZUV4
Y2VwdGlvbi5pZGwKaW5kZXggMzZjZGUxNi4uMzg2OGY0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vUmFuZ2VFeGNlcHRpb24uaWRsCisrKyBiL1dlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlk
bApAQCAtMjcsNyArMjcsNyBAQCBtb2R1bGUgcmFuZ2VzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IGRlZmluZWQoTEFOR1VB
R0VfR09CSkVDVCkKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsIGIv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAppbmRleCBmM2ExNWVlLi5kNTBmNmNh
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKQEAgLTQ3LDcgKzQ3LDcgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNlYXJjaDsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0OwogCi0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwg
ZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyBv
U3RyaW5nKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRF
bGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwKaW5kZXggNzk0
ZjAwMC4uZTY2ZTkzOCAxMDA2NDQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCmluZGV4IDM0
ZmE5OTkuLjQ4MTRkNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVu
dC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbApAQCAtMjgsNyAr
MjgsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgXSBIVE1MT3B0aW9uRWxlbWVudCA6IEhUTUxFbGVt
ZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBm
b3JtOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRl
ZmF1bHRTZWxlY3RlZDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisjaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgICAgICAgICAgICB0ZXh0CiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVNlbGVj
dGlvbi5pZGwgYi9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAppbmRleCA4NWQyM2JmLi40
ZDQ0NzdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAorKysgYi9X
ZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbApAQCAtNjIsNyArNjIsNyBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgdm9pZCByZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgdm9pZCBhZGRS
YW5nZShpbiBSYW5nZSByYW5nZSk7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
CisjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYK
ICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24u
aWRsIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCmluZGV4IDJmZWI1
NzQuLjRiMGZkMWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uLmlkbAorKysgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwKQEAg
LTM2LDcgKzM2LDcgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCisj
aWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBkZWZpbmVkKExBTkdVQUdFX0dPQkpF
Q1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAog
ICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwgYi9XZWJDb3JlL3htbC9YUGF0aEV4
Y2VwdGlvbi5pZGwKaW5kZXggNmUyNTUxNC4uMDZlNWU4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS94
bWwvWFBhdGhFeGNlcHRpb24uaWRsCisrKyBiL1dlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlk
bApAQCAtMzcsNyArMzcsNyBAQCBtb2R1bGUgeHBhdGggewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKQorI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgZGVmaW5lZChMQU5HVUFH
RV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0aWJsZSBm
b3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpp
bmRleCBlMDIzMDZjLi42NmM2ZmFlIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26025</attachid>
            <date>2008-12-15 03:40:50 -0800</date>
            <delta_ts>2009-07-12 14:28:05 -0700</delta_ts>
            <desc>add gdom_event_target_node_dispatch_event()</desc>
            <filename>f</filename>
            <type>text/plain</type>
            <size>1940</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmNwcAppbmRleCAy
YjU2YTIzLi5hNWNjM2Q4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbUV2
ZW50VGFyZ2V0Tm9kZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21FdmVudFRh
cmdldE5vZGUuY3BwCkBAIC0xMSw3ICsxMSwxMCBAQAogI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCisjaW5jbHVkZSAi
R2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIkdk
b21FdmVudFRhcmdldE5vZGUuaCIKICNpbmNsdWRlICJHZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0
ZS5oIgogI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCkBAIC0yOSw1ICszMiwyMCBAQCBnZG9tX2V2
ZW50X3RhcmdldF9ub2RlX2luaXRfZXZlbnRfdGFyZ2V0X25vZGUgKEdkb21FdmVudFRhcmdldE5v
ZGUgKnRoaXopCiAgICAgKi8KIH0KIAorZ2Jvb2xlYW4KK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVf
ZGlzcGF0Y2hfZXZlbnQgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXosIEdkb21FdmVudCAqIGV2
dCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAodGhpeiwgMCk7CisgICAgV2ViQ29yZTo6
RXZlbnRUYXJnZXROb2RlICogaXRlbSA9IFdlYktpdDo6Y29yZSh0aGl6KTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCAoaXRlbSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGV2dCwg
MCk7CisgICAgV2ViQ29yZTo6RXZlbnQgKiBfZ19ldnQgPSBXZWJLaXQ6OmNvcmUoZXZ0KTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCAoX2dfZXZ0LCAwKTsKKyAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlIGVjID0gMDsKKyAgICBnYm9vbGVhbiByZXMgPSBpdGVtLT5kaXNwYXRjaEV2ZW50KF9n
X2V2dCwgZWMpOworICAgIHJldHVybiByZXM7CisKK30KKwogfSAvKiBleHRlcm4gIkMiICovCiAK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmggYi9XZWJL
aXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCmluZGV4IDVkODg3N2EuLmMyYWYwNzgg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlLmgKKysrIGIv
V2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaApAQCAtMjQsNiArMjQsNyBAQCB0
eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzIEdkb21FdmVudFRhcmdldE5v
ZGVDbGFzczsKIHR5cGVkZWYgc3RydWN0IF9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZSBHZG9t
RXZlbnRUYXJnZXROb2RlUHJpdmF0ZTsKIAogI2luY2x1ZGUgImdkb20vR2RvbU5vZGUuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21FdmVudC5oIgogCiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUg
ewogICAgIEdkb21Ob2RlIHBhcmVudF9pbnN0YW5jZTsKQEAgLTQxLDYgKzQyLDkgQEAgZ2RvbV9l
dmVudF90YXJnZXRfbm9kZV9nZXRfdHlwZSAodm9pZCk7CiBXRUJLSVRfQVBJIHZvaWQKIGdkb21f
ZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJnZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0
Tm9kZSAqdGhpeik7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK2dkb21fZXZlbnRfdGFyZ2V0X25v
ZGVfZGlzcGF0Y2hfZXZlbnQgKEdkb21FdmVudFRhcmdldE5vZGUgKnRoaXosIEdkb21FdmVudCAq
IGV2dCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBkb21FdmVudFRhcmdldE5vZGVfaCAq
Lwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27549</attachid>
            <date>2009-02-10 20:12:44 -0800</date>
            <delta_ts>2009-02-18 14:28:30 -0800</delta_ts>
            <desc>DOM patch with lots of fixes, updated to revision 40813</desc>
            <filename>dom.diff</filename>
            <type>text/plain</type>
            <size>118761</size>
            <attacher name="Adam Dingle">adam</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA0MDgxMykKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtMTAzLDcgKzEwNCw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMgXAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3BhcnNlciBcCiAJLUkkKHNy
Y2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291
cmNlcworCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQoc3JjZGlyKS9X
ZWJDb3JlL2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5
IGluY2x1ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVu
bGVzcyB5b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTE1MCw2ICsxNTIsMTEgQEAKIHdlYmNvcmVndGtf
Y3BwZmxhZ3MgOj0KIHdlYmNvcmVndGtfc291cmNlcyA6PQogCit3ZWJjb3JlZ3RrX2NwcGZsYWdz
ICs9IFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9nZG9tIFwKKwktSSQoc3Jj
ZGlyKS9XZWJDb3JlL2JpbmRpbmdzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dk
b20KKwogbm9kaXN0X0VYVFJBX2xpYldlYkNvcmVfbGFfU09VUkNFUyA9IFwKIAkkKHdlYmNvcmVf
YnVpbHRfbm9zb3VyY2VzKQogCkBAIC0xOTQsNiArMjAxLDcgQEAKIGxpYldlYkNvcmVfbGFfTElC
QUREID0gXAogCWxpYkphdmFTY3JpcHRDb3JlLmxhIFwKIAlsaWJXZWJDb3JlSlMubGEgXAorCWxp
Ymdkb20ubGEgXAogCSQod2ViY29yZV9saWJhZGQpIFwKIAkkKEdMSUJfTElCUykgXAogCSQoTElC
WE1MX0xJQlMpIFwKQEAgLTIxNCw2ICsyMjIsMTAgQEAKIAkkKEdFT0NMVUVfTElCUykgXAogCS1s
cHRocmVhZAogCitsaWJnZG9tX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0LTEuMC9n
ZG9tCitsaWJnZG9tX2xhX0hFQURFUlMgPSBcCisgICAgICAgICQobGliZ2RvbV9oX2FwaSkKKwog
IyBXZWJLaXQKIHdlYmtpdGd0a19oX2FwaSA6PQogd2Via2l0Z3RrX3NvdXJjZXMgOj0KQEAgLTM1
NiwxMiArMzY4LDEyIEBACiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHNyY2Rpcikv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydCBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJr
aXQgXAotCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0CisJLUkkKHRvcF9idWls
ZGRpcikvRGVyaXZlZFNvdXJjZXMKIAogd2Via2l0Z3RrX2NsZWFuZmlsZXMgKz0gXAogCSQodG9w
X2J1aWxkZGlyKS9Qcm9ncmFtcy9HdGtMYXVuY2hlciBcCi0JJCh0b3BfYnVpbGRkaXIpL1dlYktp
dC9ndGsvd2Via2l0LTEuMC5wYyBcCi0JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGVudW10eXBlcy5oCisJJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0LTEuMC5wYyBc
CisJJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCiAKIHBrZ2Nv
bmZpZ2RpciA9ICQobGliZGlyKS9wa2djb25maWcKIHBrZ2NvbmZpZ19EQVRBID0gV2ViS2l0L2d0
ay93ZWJraXQtMS4wLnBjCkBAIC00NDgsNiArNDYwLDUyIEBACiAJJiYgY3AgeGdlbi1ndGMgJEAg
XAogCSYmIHJtIC1mIHhnZW4tZ3RjCiAKK1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMu
aDogc3RhbXAtZ2RvbWVudW10eXBlcy5oCisJQHRydWUKK3N0YW1wLWdkb21lbnVtdHlwZXMuaDog
JChsaWJnZG9tX2hfYXBpKSBHTlVtYWtlZmlsZQorCShjZCAkKHNyY2RpcikgXAorCSYmIGdsaWIt
bWtlbnVtcyBcCisJCQktLWZoZWFkICIjaWZuZGVmIEdET01fRU5VTV9UWVBFU19IXG4iIFwKKwkJ
CS0tZmhlYWQgIiNkZWZpbmUgR0RPTV9FTlVNX1RZUEVTX0hcblxuIiBcCisJCQktLWZoZWFkICIj
aW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cblxuIiBcCisJCQktLWZoZWFkICJHX0JFR0lOX0RFQ0xT
XG5cbiIgXAorCQkJLS1mdGFpbCAiR19FTkRfREVDTFNcblxuIiBcCisJCQktLWZ0YWlsICIjZW5k
aWZcbiIgXAorCQkJLS1mcHJvZCAiI2luY2x1ZGUgPEBmaWxlbmFtZUA+XG5cbiIgXAorCQkJLS1l
cHJvZCAiI2RlZmluZSBHRE9NX1RZUEVfQEVOVU1TSE9SVEAgQGVudW1fbmFtZUBfZ2V0X3R5cGUo
KVxuXG4iIFwKKwkJCS0tZXByb2QgIldFQktJVF9BUEkgR1R5cGVcbkBlbnVtX25hbWVAX2dldF90
eXBlKHZvaWQpO1xuXG4iIFwKKwkJCSQobGliZ2RvbV9oX2FwaSkgfCBcCisJCQlzZWQgJ3MsV2Vi
S2l0L2d0ay8sLCcgfCBcCisJCXNlZCAncyx3ZWJfa2l0LGdkb20sJyB8IFwKKwkJc2VkICdzLEdE
T01fVFlQRV9LSVQsR0RPTV9UWVBFLCcgXAorCQkpID4geGdlbi1jZ3RoIFwKKwkmJiAoY21wIC1z
IHhnZW4tY2d0aCBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmggfHwgY3AgeGdlbi1j
Z3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCkgXAorCSYmIHJtIC1mIHhnZW4t
Y2d0aCBcCisJJiYgZWNobyB0aW1lc3RhbXAgPiAkKEBGKQorCitEZXJpdmVkU291cmNlcy9nZG9t
ZW51bXR5cGVzLmNwcDogJChsaWJnZG9tX2hfYXBpKSBHTlVtYWtlZmlsZQorCShjZCAkKHNyY2Rp
cikgXAorCSYmIGdsaWItbWtlbnVtcyBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Y29uZmlnLmg+
XG4iIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuIiBcCisJCQktLWZo
ZWFkICIjaW5jbHVkZSBcIiQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51
bXR5cGVzLmhcIlxuXG4iIFwKKwkJCS0tZmhlYWQgImV4dGVybiBcIkNcIiB7XG5cbiIgXAorCQkJ
LS1mcHJvZCAiXG4vKiBlbnVtZXJhdGlvbnMgZnJvbSBcIkBmaWxlbmFtZUBcIiAqLyIgXAorCQkJ
LS12aGVhZCAic3RhdGljIGNvbnN0IEdAVHlwZUBWYWx1ZSBfQGVudW1fbmFtZUBfdmFsdWVzW10g
PSB7IiBcCisJCQktLXZwcm9kICIgICAgeyBAVkFMVUVOQU1FQCwgXCJAVkFMVUVOQU1FQFwiLCBc
IkB2YWx1ZW5pY2tAXCIgfSwiIFwKKwkJCS0tdnRhaWwgIiAgICB7IDAsIE5VTEwsIE5VTEwgfVxu
fTtcblxuIiBcCisJCQktLXZ0YWlsICJHVHlwZSBAZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKVxu
e1xuIiBcCisJCQktLXZ0YWlsICIgICAgc3RhdGljIEdUeXBlIHR5cGUgPSAwO1xuXG4iIFwKKwkJ
CS0tdnRhaWwgIiAgICBpZiAoIXR5cGUpXG4iIFwKKwkJCS0tdnRhaWwgIiAgICAgICAgdHlwZSA9
IGdfQHR5cGVAX3JlZ2lzdGVyX3N0YXRpYyhcIkBFbnVtTmFtZUBcIiwgX0BlbnVtX25hbWVAX3Zh
bHVlcyk7XG5cbiIgXAorCQkJLS12dGFpbCAiICAgIHJldHVybiB0eXBlO1xufVxuXG4iIFwKKwkJ
CS0tZnRhaWwgIn1cbiIgXAorCQkkKGxpYmdkb21faF9hcGkpIHwgXAorCQlzZWQgJ3Msd2ViX2tp
dCxnZG9tLCcgXAorCQkpID4geGdlbi1jZ3RjIFwKKwkmJiBjcCB4Z2VuLWNndGMgJEAgXAorCSYm
IHJtIC1mIHhnZW4tY2d0YworCiAjIEVORCBXRUJLSVQgR1RLKwogIwogIyBGaWxlcyB0aGF0IHdp
bGwgYmUgZGlzdHJpYnV0ZWQKQEAgLTQ3MCw4ICs1MjgsOCBAQAogIyBCdWlsZCB1bml0IHRlc3QK
IG5vaW5zdF9QUk9HUkFNUyArPSBQcm9ncmFtcy9Vbml0VGVzdHMKIFByb2dyYW1zX1VuaXRUZXN0
c19DUFBGTEFHUyA9IFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzIFwKIAktSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrIFwKLQktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKIAkkKGds
b2JhbF9jcHBmbGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpCiAKQEAgLTQ5Niw3
ICs1NTQsOCBAQAogCSQod2ViY29yZV9idWlsdF9zb3VyY2VzKSBcCiAJJCh3ZWJjb3JlX2J1aWx0
X25vc291cmNlcykgXAogCSQod2Via2l0Z3RrX2J1aWx0X3NvdXJjZXMpIFwKLQkkKHdlYmtpdGd0
a19idWlsdF9ub3NvdXJjZXMpCisJJCh3ZWJraXRndGtfYnVpbHRfbm9zb3VyY2VzKSBcCisJJChn
ZG9tX2J1aWx0X25vc291cmNlcykKIAogIyBQcm9qZWN0LXdpZGUgY2xlYW4gcnVsZXMKIENMRUFO
RklMRVMgKz0gXApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAkocmV2aXNp
b24gNDA4MTMpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4
IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqIENvcHlyaWdodCAoQykg
MjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFw
cGxlIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlh
bkBpbWVuZGlvLmNvbT4KQEAgLTM1LDE0ICszNiwyMyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50R3RrLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCisjaW5jbHVkZSAiZ2RvbWJpbmRpbmcuaCIKKyNpbmNsdWRlICJHZG9tRE9NV2luZG93Lmgi
CisjaW5jbHVkZSAiR2RvbURPTVdpbmRvd1ByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVhN
TEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIK
LSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CisjaW5jbHVkZSAiVGV4dERvY3VtZW50LmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9B
UElDYXN0Lmg+CiAKQEAgLTMyOCw2ICszMzgsNTggQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFt
ZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGFuIFhNTEh0dHBSZXF1ZXN0
CisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21YTUxIdHRwUmVxdWVzdAorICovCitHZG9tWE1M
SHR0cFJlcXVlc3QqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3htbF9odHRwX3JlcXVlc3QoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZy
YW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICByZXR1cm4gR0RPTV9YTUxfSFRUUF9S
RVFVRVNUKFdlYktpdDo6dG9HRE9NKFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoY29yZUZyYW1lLT5k
b2N1bWVudCgpKS5nZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2Rv
bV93aW5kb3c6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJucyBh
IEdkb20gd3JhcHBlciBhcm91bmQgYSBET01XaW5kb3cKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEg
R2RvbURPTVdpbmRvdworICovCitHZG9tRE9NV2luZG93KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9k
b21fd2luZG93KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisgICAgUGFzc1Jl
ZlB0cjxET01XaW5kb3c+IHdpbiA9IGNvcmVGcmFtZS0+ZG9tV2luZG93KCk7CisgICAgcmV0dXJu
IEdET01fRE9NX1dJTkRPVyhXZWJLaXQ6OnRvR0RPTSh3aW4uZ2V0KCkpKTsKK30KKworLyoqCisg
KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQ6CisgKiBAZnJhbWU6IGEgI1dlYktp
dFdlYkZyYW1lCisgKgorICogcmV0dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYSBEb2N1bWVu
dCAKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgR2RvbURvY3VtZW50CisgKi8KK0dkb21Eb2N1bWVu
dCogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50KFdlYktpdFdlYkZyYW1lKiBmcmFt
ZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1l
KSwgTlVMTCk7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNT
RVJUKGNvcmVGcmFtZSk7CisgICAgcmV0dXJuIEdET01fRE9DVU1FTlQoV2ViS2l0Ojp0b0dET00o
Y29yZUZyYW1lLT5kb2N1bWVudCgpKSk7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl9mcmFtZV9n
ZXRfbmFtZToKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKICAqCkluZGV4OiBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmgJKHJldmlzaW9uIDQwODEzKQorKysgV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAqIENvcHly
aWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTI2LDYgKzI3LDkgQEAKIAogI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01XaW5k
b3cuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxIdHRwUmVxdWVzdC5oPgogCiBHX0JFR0lOX0RF
Q0xTCiAKQEAgLTY1LDYgKzY5LDE1IEBACiB3ZWJraXRfd2ViX2ZyYW1lX25ldyAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKICNlbmRpZgogCitXRUJLSVRf
QVBJIEdkb21YTUxIdHRwUmVxdWVzdCAqCit3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9y
ZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCitXRUJLSVRfQVBJ
IEdkb21ET01XaW5kb3cgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyAgICAgICAo
V2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBHZG9tRG9jdW1lbnQg
Kgord2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50ICAgICAgIChXZWJLaXRXZWJGcmFt
ZSAgICAgICAqZnJhbWUpOworCiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXcgKgogd2Via2l0X3dl
Yl9mcmFtZV9nZXRfd2ViX3ZpZXcgICAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7
CiAKSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxv
ZwkocmV2aXNpb24gNDA4MTMpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTAgQEAKKzIwMDktMDItMTAgIEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgSW1wbGVtZW50ZWQgR1RLIERPTSBiaW5kaW5nLgor
CisgICAgICAgICogZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICogZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgorCiAyMDA5LTAyLTA3ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICAqIFN0cmluZ3NOb3RUb0JlTG9jYWxpemVkLnR4dDog
VXBkYXRlZCBmb3IgcmVjZW50IGNoYW5nZXMuCkluZGV4OiBXZWJDb3JlL2RvbS9LZXlib2FyZEV2
ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2
aXNpb24gNDA4MTMpCisrKyBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtNjIsNyArNjIsOSBAQAogI2lmICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOwotICAg
ICAgICAKKworICAgICAgICAvLyBGSVhNRTogR09iamVjdCBpcyBpbiBDLCB3aGljaCBkb2VzIG5v
dCBzdXBwb3J0IG92ZXJsb2FkZWQgZnVuY3Rpb25zCisjaWYgIWRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkKICAgICAgICAgdm9pZCBpbml0S2V5Ym9hcmRFdmVudChpbiBET01TdHJpbmcgdHlwZSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGUsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuY2VsYWJsZSwgCkBA
IC03NSw2ICs3Nyw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVh
biBtZXRhS2V5KTsKICNlbmRpZgogCisjZW5kaWYKKwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0
MDgxMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMDktMDItMTAgIEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgICAgICAgICAgICBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisgICAg
ICAgICAgICBBZGFtIERpbmdsZSA8YWRhbUB5b3JiYS5vcmc+CisgICAgICAgICAgICBKaW0gTmVs
c29uIDxqaW1AeW9yYmEub3JnPgorICAgICAgICAgICAgCisgICAgICAgIEltcGxlbWVudGVkIEdU
SyBET00gYmluZGluZy4KKworICAgICAgICAqIGJpbmRpbmdzL2dkb20vZ2RvbWJpbmRpbmcuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vZ2RvbWJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR2Rv
bURPTU9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdFByaXZh
dGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL2dkb21odG1sZWxlbWVudHdyYXBwZXJmYWN0
b3J5LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL2dkb21odG1sZWxlbWVudHdyYXBwZXJm
YWN0b3J5Lmg6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9nc3RyaW5nY29udmVydC5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRlLnBsOgorICAgICAgICAqIGRvbS9L
ZXlib2FyZEV2ZW50LmlkbDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKwogMjAwOS0wMi0x
MCAgU3ZlcnJpciBCZXJnICA8c3ZlcnJpckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDQwODEzKQorKysgV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIAogV2ViQ29y
ZSA6PSAkKHNyY2RpcikvV2ViQ29yZQogCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCA6PSBM
QU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVfREVGSU5FUyA6PQogU1ZHX0ZFQVRVUkVTIDo9
CiBIVE1MX0ZFQVRVUkVTIDo9CiAKQEAgLTksNyArOSwxMSBAQAogV0VCQ09SRV9DU1NfVkFMVUVf
S0VZV09SRFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCiB3ZWJjb3Jl
X2NwcGZsYWdzICs9IFwKKyAgICAtSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKyAgICAtSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0IFwKKyAgICAtSSQoc3JjZGlyKS9XZWJLaXQv
Z3RrL3dlYmtpdCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZSBcCisgCS1JJChzcmNkaXIpL1dlYkNv
cmUvYmluZGluZ3MvZ2RvbSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9qcyBcCiAJ
LUkkKHNyY2RpcikvV2ViQ29yZS9icmlkZ2UgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYnJpZGdl
L2MgXApAQCAtNTYsNiArNjAsNyBAQAogCURlcml2ZWRTb3VyY2VzL0RvY1R5cGVTdHJpbmdzLmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvdG9rZW5pemVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvQ29s
b3JEYXRhLmMgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vZ2RvbWR1bW15LmMgXAogCVdlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUkdCQ29sb3IubHV0LmgKIApAQCAtMjM0LDYgKzIzOSwxNSBAQAogCVdlYkNvcmUveG1sL1hN
TFNlcmlhbGl6ZXIuaWRsIFwKIAlXZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmlkbAogCit3ZWJj
b3JlZ3RrX3NvdXJjZXMgKz0gXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tYmluZGluZy5j
cHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tYmluZGluZy5oIFwKKwlXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9H
ZG9tRE9NT2JqZWN0LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0UHJp
dmF0ZS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbWh0bWxlbGVtZW50d3JhcHBlcmZh
Y3RvcnkuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbWh0bWxlbGVtZW50d3JhcHBl
cmZhY3RvcnkuaCAKKwogd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL1dlYkNvcmVQcmVm
aXguaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5o
IFwKQEAgLTE4NTUsNyArMTg2OSw3IEBACiAjIE9mZmxpbmUgV2ViIEFwcGxpY2F0aW9ucwogIyAt
LS0tCiBpZiBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TCi1GRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKK0ZFQVRVUkVf
REVGSU5FUyArPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAogSURMX0JJTkRJ
TkdTICs9IFwKIAlXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlk
bApAQCAtMTg5Niw3ICsxOTEwLDcgQEAKICMgRGF0YWJhc2UgU3VwcG9ydAogIyAtLS0tCiBpZiBF
TkFCTEVfREFUQUJBU0UKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9EQVRB
QkFTRT0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX0RBVEFCQVNFPTEKIAogSURMX0JJTkRJ
TkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaWRsIFwKQEAgLTE5NjksNyArMTk4
Myw3IEBACiAjIEhUTUw1IGNsaWVudC1zaWRlIHNlc3Npb24gYW5kIHBlcnNpc3RlbnQgc3RvcmFn
ZQogIyAtLS0tCiBpZiBFTkFCTEVfRE9NX1NUT1JBR0UKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX0RP
TV9TVE9SQUdFPTEKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZS5pZGwgXApAQCAtMjAyOCw3ICsyMDQyLDcgQEAKICMgVmlkZW8gU3VwcG9ydAogIyAtLS0tCiBp
ZiBFTkFCTEVfVklERU8KLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9WSURF
Tz0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyAr
PSBFTkFCTEVfVklERU89MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBA
IC0yMDc4LDcgKzIwOTIsNyBAQAogIyBYUGF0aCBTdXBwb3J0CiAjIC0tLS0KIGlmIEVOQUJMRV9Y
UEFUSAotRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hQQVRIPTEKK0ZFQVRV
UkVfREVGSU5FUyArPSBFTkFCTEVfWFBBVEg9MQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX1hQQVRIPTEKIApAQCAtMjE0OCw3ICsyMTYyLDcgQEAKICMgWFNMVCBTdXBwb3J0CiAjIC0t
LS0KIGlmIEVOQUJMRV9YU0xUCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
WFNMVD0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1hTTFQ9MQogCiB3ZWJjb3JlX2NwcGZs
YWdzICs9IC1ERU5BQkxFX1hTTFQ9MQogCkBAIC0yMTY5LDcgKzIxODMsNyBAQAogIyBXZWIgV29y
a2VycyBzdXBwb3J0CiAjIC0tLS0KIGlmIEVOQUJMRV9XT1JLRVJTCi1GRUFUVVJFX0RFRklORVNf
SkFWQVNDUklQVCArPSBFTkFCTEVfV09SS0VSUz0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxF
X1dPUktFUlM9MQogCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktREVOQUJMRV9XT1JLRVJTPTEK
QEAgLTIyMTEsNyArMjIyNSw3IEBACiAjIFdNTCBTdXBwb3J0CiAjIC0tLS0KIGlmIEVOQUJMRV9X
TUwKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9XTUw9MQorRkVBVFVSRV9E
RUZJTkVTICs9IEVOQUJMRV9XTUw9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL1dNTEVsZW1lbnRGYWN0b3J5LmNwcCBcCkBAIC0yMjcwLDcgKzIyODQsNyBA
QAogIyAtLS0tCiBpZiBFTkFCTEVfR0VPTE9DQVRJT04KIAotRkVBVFVSRV9ERUZJTkVTX0pBVkFT
Q1JJUFQgKz0gRU5BQkxFX0dFT0xPQ0FUSU9OPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVf
R0VPTE9DQVRJT049MQogd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLURFTkFCTEVfR0VPTE9DQVRJ
T049MQogCkBAIC0yMjg2LDcgKzIzMDAsNyBAQAogIyBGSVhNRTogYWxsb3cgYSBtb3JlIGZpbmUt
Z3JhaW5lZCBpbmNsdXNpb24vZ2VuZXJhdGlvbiBvZiBzb3VyY2VzIHBlciBTVkcgZmVhdHVyZQog
IyAtLS0tCiBpZiBFTkFCTEVfU1ZHCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFC
TEVfU1ZHPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfU1ZHPTEKIAogV0VCQ09SRV9DU1Nf
UFJPUEVSVFlfTkFNRVMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbiAK
IFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTICs9ICQoV2ViQ29yZSkvY3NzL1NWR0NTU1ZhbHVl
S2V5d29yZHMuaW4KQEAgLTI4NzEsMzcgKzI4ODUsMzcgQEAKIAogIyBTVkcgRmVhdHVyZXMKIGlm
IEVOQUJMRV9TVkdfVVNFCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZH
X1VTRT0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1NWR19VU0U9MQogU1ZHX0ZFQVRVUkVT
ICs9IEVOQUJMRV9TVkdfVVNFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX1VT
RT0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUCi1GRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEKK0ZFQVRVUkVfREVG
SU5FUyArPSBFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEKIFNWR19GRUFUVVJFUyArPSBFTkFC
TEVfU1ZHX0ZPUkVJR05fT0JKRUNUPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZH
X0ZPUkVJR05fT0JKRUNUPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfRk9OVFMKLUZFQVRVUkVf
REVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRk9OVFM9MQorRkVBVFVSRV9ERUZJTkVT
ICs9IEVOQUJMRV9TVkdfRk9OVFM9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9OVFM9
MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9OVFM9MQogZW5kaWYKIAogaWYg
RU5BQkxFX1NWR19GSUxURVJTCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
U1ZHX0ZJTFRFUlM9MQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCiBT
VkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0g
LURFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19BU19JTUFHRQot
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19BU19JTUFHRT0xCitGRUFU
VVJFX0RFRklORVMgKz0gRU5BQkxFX1NWR19BU19JTUFHRT0xCiBTVkdfRkVBVFVSRVMgKz0gRU5B
QkxFX1NWR19BU19JTUFHRT0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19BU19J
TUFHRT0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FOSU1BVElPTgotRkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQorRkVBVFVSRV9ERUZJTkVTICs9
IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FOSU1B
VElPTj0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19BTklNQVRJT049MQogZW5k
aWYKQEAgLTMwMzcsNyArMzA1MSw3IEBACiAKIC5TRUNPTkRBUlk6CiBEZXJpdmVkU291cmNlcy9K
UyUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29yZSkvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KLQkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAk
KElETF9QQVRIOiU9LS1pbmNsdWRlICIlIikgLS1vdXRwdXREaXIgIiQoR0VOU09VUkNFUykiIC0t
ZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCkiIC0tZ2VuZXJhdG9yIEpTICQ8
CisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgJChJRExfUEFUSDolPS0taW5jbHVkZSAi
JSIpIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmluZXMgIkxBTkdVQUdFX0pBVkFT
Q1JJUFQ9MSAkKEZFQVRVUkVfREVGSU5FUykiIC0tZ2VuZXJhdG9yIEpTICQ8CiAKIElETF9CSU5E
SU5HU19KU19QVVJFIDo9IFwKIAlXZWJDb3JlL3N2Zy9FbGVtZW50VGltZUNvbnRyb2wuaWRsIFwK
QEAgLTMwNzcsNyArMzA5MSw3MyBAQAogbGliV2ViQ29yZUpTLmxhOiAkKGxpYldlYkNvcmVKU19v
YmplY3RzKQogCSQoQ1hYTElOSykgJChsaWJXZWJDb3JlSlNfb2JqZWN0cykgJChMSUJTKQogCisj
IFRoaXMgZHVtbXkgZmlsZSBjYXVzZXMgY29uZmlndXJlIHRvIGdlbmVyYXRlIHRoZSBEZXJpdmVk
U291cmNlcy9nZG9tLy5kZXBzIGRpcmVjdG9yeSwgd2hpY2ggbXVzdAorIyBleGlzdCBmb3IgdXMg
dG8gYmUgYWJsZSB0byBidWlsZCBvdGhlciBzb3VyY2VzIGluIERlcml2ZWRTb3VyY2VzL2dkb20g
d2l0aCBkeW5hbWljYWxseSBnZW5lcmF0ZWQKKyMgbmFtZXMuCitEZXJpdmVkU291cmNlcy9nZG9t
L2dkb21kdW1teS5jOgorCWVjaG8gPiAkQAogCisjIEJpbmRpbmdzIGF1dG9nZW5lcmF0ZWQgaW4g
R0RPTSwgYnV0IG5vdCBpbiBKUy4KK0lETF9CSU5ESU5HU19HRE9NX0VYVFJBIDo9IFwKKwlXZWJD
b3JlL2h0bWwvQ2FudmFzUGl4ZWxBcnJheS5pZGwKKworIyBCaW5kaW5ncyBhdXRvZ2VuZXJhdGVk
IGluIEpTLCBidXQgbm90IGluIEdET00uCitJRExfQklORElOR1NfR0RPTV9NSU5VUyA6PSAKKwor
IyBBbGwgSURMIGZpbGVzIHVzZWQgZm9yIGF1dG9nZW5lcmF0aW9uIGluIEdET00uICBXZSBmaWx0
ZXIgb3V0IFNWRyBhbmQgZXZlbnRzIGZvciBub3cuCitJRExfQklORElOR1NfR0RPTSA6PSAkKGZp
bHRlci1vdXQgJChJRExfQklORElOR1NfR0RPTV9NSU5VUykgV2ViQ29yZS9zdmclIFdlYkNvcmUv
ZG9tL0V2ZW50JS5pZGwgV2ViQ29yZS8lRXZlbnQuaWRsLCBcCisgICAgICAgICAgICAgICAgICAg
ICAgICQoSURMX0JJTkRJTkdTKSAkKElETF9CSU5ESU5HU19HRE9NX0VYVFJBKSkKKworIyBBbGwg
Y2xhc3NlcyBhdXRvZ2VuZXJhdGVkIGluIEdET00uCitHRE9NX0FVVE9fQ0xBU1NFUyA6PSAkKGJh
c2VuYW1lICQobm90ZGlyICQoSURMX0JJTkRJTkdTX0dET00pKSkKKworIyBDbGFzc2VzIHdoaWNo
IHdlJ3ZlIGNvZGVkIGJ5IGhhbmQuCitHRE9NX0ZJWEVEX0NMQVNTRVMgOj0gRE9NT2JqZWN0CisK
K0dET01fQ0xBU1NFUyA6PSAkKEdET01fQVVUT19DTEFTU0VTKSAkKEdET01fRklYRURfQ0xBU1NF
UykKKworIyBGaWx0ZXIgb3V0IFNWRyBmb3Igbm93LgorRkVBVFVSRV9ERUZJTkVTX0dET00gOj0g
JChmaWx0ZXItb3V0IEVOQUJMRV9TVkclLCAkKEZFQVRVUkVfREVGSU5FUykpCisKKyMgQXV0b2dl
bmVyYXRlZCBoZWFkZXIgZmlsZXMuCitHRE9NX0hFQURFUlNfQlVJTFQgOj0gJChwYXRzdWJzdCAl
LERlcml2ZWRTb3VyY2VzL2dkb20vR2RvbSUuaCwgJChHRE9NX0FVVE9fQ0xBU1NFUykpIFwKKyAg
ICAgICAgICAgICAgICAgICAgICQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9nZG9tL2dk
b20uaCBcCisgICAgICAgICAgICAgICAgICAgICAkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9nZG9tZGVmaW5lcy5oCisKKyMgQXV0b2dlbmVyYXRlZCBzb3VyY2UgZmlsZXMuCitH
RE9NX1NPVVJDRVNfQlVJTFQgOj0gJChwYXRzdWJzdCAlLERlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bSUuY3BwLCAkKEdET01fQVVUT19DTEFTU0VTKSkKKworIyBIYW5kLWNvZGVkIGhlYWRlciBmaWxl
cy4KK0dET01fSEVBREVSU19GSVhFRCA6PSAkKHBhdHN1YnN0ICUsICQoc3JjZGlyKS9XZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR2RvbSUuaCwgJChHRE9NX0ZJWEVEX0NMQVNTRVMpKQorCisjIEFsbCBo
ZWFkZXIgZmlsZXMgdGhhdCBnZXQgaW5zdGFsbGVkLgorbGliZ2RvbV9oX2FwaSA6PSAkKEdET01f
SEVBREVSU19GSVhFRCkgJChHRE9NX0hFQURFUlNfQlVJTFQpCisKK0Rlcml2ZWRTb3VyY2VzL2dk
b20vZ2RvbS5oOiAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5w
bAorCWVjaG8gJChHRE9NX0NMQVNTRVMpIHwgJChQRVJMKSAkPCBnZG9tID4gJEAKKworRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9nZG9tZGVmaW5lcy5oOiAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
Z29iamVjdC1nZW5lcmF0ZS5wbAorCWVjaG8gJChHRE9NX0NMQVNTRVMpIHwgJChQRVJMKSAkPCBk
ZWZpbmVzID4gJEAKKworRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5oOiBEZXJpdmVkU291cmNl
cy9nZG9tL0dkb20lLmNwcDsKKworRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA6ICUuaWRs
ICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAk
KFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1pbmNsdWRl
ICQoV2ViQ29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUpL2h0bWwgLS1pbmNsdWRlICQoV2Vi
Q29yZSkvY3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2UgLS1pbmNsdWRlICQoV2ViQ29yZSkv
eG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTR0RP
TSkiIC0tZGVmaW5lcyAiTEFOR1VBR0VfR09CSkVDVD0xICQoRkVBVFVSRV9ERUZJTkVTX0dET00p
IiAtLWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKK2dkb21fYnVpbHRfbm9zb3VyY2VzIDo9ICQoR0RP
TV9IRUFERVJTX0JVSUxUKSAkKEdET01fU09VUkNFU19CVUlMVCkKKworbGliZ2RvbV9vYmplY3Rz
IDo9ICQoc3Vic3QgLmNwcCwubG8sJChHRE9NX1NPVVJDRVNfQlVJTFQpKQorCistaW5jbHVkZSBX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vJChERVBESVIpLyUuUGxvCistaW5jbHVkZSBEZXJpdmVkU291
cmNlcy9nZG9tLyQoREVQRElSKS8lLlBsbworCiskKGxpYmdkb21fb2JqZWN0cyk6IEFNX0NQUEZM
QUdTKz0kKGxpYldlYkNvcmVfbGFfQ1BQRkxBR1MpCisKKyQobGliZ2RvbV9vYmplY3RzKTogQU1f
Q1hYRkxBR1MrPSQobGliV2ViQ29yZV9sYV9DWFhGTEFHUykKKworbGliZ2RvbS5sYTogJChsaWJn
ZG9tX29iamVjdHMpCisJJChDWFhMSU5LKSAkKGxpYmdkb21fb2JqZWN0cykgJChMSUJTKQorCiBu
b2luc3RfSEVBREVSUyArPSBcCiAJJChJRExfQklORElOR1MpCiAKQEAgLTMwOTIsNiArMzE3Miw3
IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAog
CVdlYkNvcmUvY3NzL3F1aXJrcy5jc3MgXAogCVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBc
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ2RvbWh0bWxlbGVtZW50d3JhcHBlcmZhY3Rv
cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9taHRtbGVsZW1l
bnR3cmFwcGVyZmFjdG9yeS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vZ2RvbWh0bWxlbGVtZW50d3JhcHBlcmZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDU4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4
IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqCisgKiBUaGlzIGZpbGUgaXMg
ZGVyaXZlZCBieSBoYW5kIGZyb20gYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZmlsZS4KKyAq
IEtlZXBpbmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBkb25lIGJ5IGFkZGlu
ZworICogYSBtYWtlX25hbWVzLnBsIGdlbmVyYXRvciwgb3IgYnkgd3JpdGluZyBhIHNlcGFyYXRl
CisgKiBnZW5lcmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmgg
YXMgaW5wdXQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tTm9kZS5oIgorI2luY2x1ZGUgImdkb21odG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxBcmVhRWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQmxv
Y2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQm9keUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRW1iZWRF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhlYWRF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxJRnJh
bWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExpbmtFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWVu
dUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQ
YXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUHJlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxTZWxlY3RFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFi
bGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oIgor
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEFuY2hvckVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TEFwcGxldEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFyZWFFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCYXNlRWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJnZG9tL0dkb21IVE1MQm9keUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEJSRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQnV0dG9uRWxl
bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxNb2RFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxEaXZFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxETGlzdEVsZW1l
bnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRmllbGRTZXRFbGVtZW50UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxGb250RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MRm9ybUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZy
YW1lRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIZWFkaW5nRWxlbWVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSGVhZEVsZW1lbnRQcml2YXRlLmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTEhSRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MSHRtbEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElGcmFt
ZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVudFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxJc0luZGV4RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJnZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxMZWdlbmRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxMSUVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNYXBFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MTWVudUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1l
dGFFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50
UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MUGFyYW1FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQcmVFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1lbnRQcml2YXRlLmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTFNlbGVjdEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTFN0eWxlRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
VGFibGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnRQcml2
YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxVTGlzdEVsZW1lbnRQcml2YXRlLmgiCisKKyNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKKworI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFw
cGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUZvbnRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCdXR0b25FbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFi
bGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MTW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxEaXJlY3RvcnlFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRExpc3RFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGaWVs
ZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MRm9ybUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIZWFkaW5nRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIUkVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSUZyYW1lRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElzSW5kZXhFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTExJRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcnF1ZWVFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1ldGFFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT0xpc3RF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MUGFyYW1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFByZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MUXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTdHls
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGl0bGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxVTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OjpIVE1MTmFtZXM7CisKK3R5cGVkZWYgZ3BvaW50ZXIgKCpDcmVhdGVIVE1MRWxlbWVudFdyYXBw
ZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4pOworCitzdGF0aWMgZ3BvaW50ZXIg
Y3JlYXRlQW5jaG9yV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTEFuY2hvckVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFuY2hvckVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVBcHBs
ZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IHdyYXBIVE1MQXBwbGV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXBwbGV0RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUFyZWFXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MQXJl
YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQmFzZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxCYXNlRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MQmFzZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9p
bnRlciBjcmVhdGVCYXNlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxCYXNlRm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TEJhc2VGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVy
IGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIHdyYXBIVE1MQmxvY2txdW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TEJsb2NrcXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50
ZXIgY3JlYXRlQm9keVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gd3JhcEhUTUxCb2R5RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQm9keUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVCUldyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhU
TUxCUkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUJ1dHRvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxCdXR0b25FbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxCdXR0b25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgZ3BvaW50ZXIgY3JlYXRlQ2FudmFzV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTENhbnZhc0VsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTENhbnZhc0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRl
ciBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGFibGVDYXB0aW9uRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MVGFibGVDYXB0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IGdwb2ludGVyIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRhYmxlQ29sRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MVGFibGVDb2xFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3Bv
aW50ZXIgY3JlYXRlTW9kV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTE1vZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1vZEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVEaXJlY3Rv
cnlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IHdyYXBIVE1MRGlyZWN0b3J5RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGlyZWN0b3J5RWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZURpdldyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhU
TUxEaXZFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxEaXZFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRExpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRExpc3RFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxETGlzdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBncG9pbnRlciBjcmVhdGVFbWJlZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxFbWJlZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TEVtYmVkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNy
ZWF0ZUZpZWxkU2V0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTEZpZWxkU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRmllbGRT
ZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
Rm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxGb250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9udEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVGb3JtV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEZvcm1F
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEZyYW1lRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MRnJhbWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3Bv
aW50ZXIgY3JlYXRlRnJhbWVTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRnJhbWVTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxGcmFtZVNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRl
ciBjcmVhdGVIZWFkaW5nV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTEhlYWRpbmdFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFk
aW5nRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0
ZUhlYWRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIHdyYXBIVE1MSGVhZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSFJXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSFJFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxIUkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBncG9pbnRlciBjcmVhdGVIdG1sV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEh0bWxFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxIdG1sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNy
ZWF0ZUlGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gd3JhcEhUTUxJRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSW1hZ2VX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdy
YXBIVE1MSW1hZ2VFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVJbnB1dFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxJbnB1dEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUlzSW5kZXhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSXNJbmRleEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTElzSW5kZXhFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgZ3BvaW50ZXIgY3JlYXRlTGFiZWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTGFiZWxFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxMYWJlbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBj
cmVhdGVMZWdlbmRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIHdyYXBIVE1MTGVnZW5kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGVnZW5kRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUxJV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFw
SFRNTExJRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTElFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTGlua1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxMaW5rRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVNYXBXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIHdyYXBIVE1MTWFwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFwRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU1hcnF1
ZWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IHdyYXBIVE1MTWFycXVlZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1hcnF1ZWVFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTWVudVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxN
ZW51RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWVudUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVNZXRhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE1ldGFFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxNZXRhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZU9iamVjdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxPYmplY3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxP
YmplY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3Jl
YXRlT0xpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAg
cmV0dXJuIHdyYXBIVE1MT0xpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPTGlzdEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVPcHRHcm91cFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3Jh
cEhUTUxPcHRHcm91cEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU9wdGlvbldyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxP
cHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlUGFyYWdyYXBoV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFBhcmFncmFw
aEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFncmFwaEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVQYXJhbVdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxQYXJhbUVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIGdwb2ludGVyIGNyZWF0ZVByZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxQcmVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQ
cmVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
UXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIHdyYXBIVE1MUXVvdGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxRdW90ZUVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVTY3JpcHRXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1M
U2NyaXB0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVNlbGVjdFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxTZWxlY3RFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlU3R5bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MU3R5bGVFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxTdHlsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9p
bnRlciBjcmVhdGVUYWJsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gd3JhcEhUTUxUYWJsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxl
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRh
YmxlU2VjdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gd3JhcEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIg
Y3JlYXRlVGFibGVDZWxsV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTFRhYmxlQ2VsbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRh
YmxlQ2VsbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBj
cmVhdGVUZXh0QXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gd3JhcEhUTUxUZXh0QXJlYUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRleHRB
cmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0
ZVRpdGxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiB3cmFwSFRNTFRpdGxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGl0bGVFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVSb3dXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBI
VE1MVGFibGVSb3dFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVJvd0VsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVVTGlzdFdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxVTGlz
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFVMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworZ3BvaW50ZXIgY3JlYXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgc3RhdGljIEhhc2hNYXA8V2ViQ29yZTo6QXRv
bWljU3RyaW5nSW1wbCosIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uPiBtYXA7Cisg
ICAgaWYgKG1hcC5pc0VtcHR5KCkpIHsKKyAgICAgICBtYXAuc2V0KGFUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVBbmNob3JXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFwcGxldFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFwcGxldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
YXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFyZWFXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGJhc2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChiYXNlZm9udFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VG
b250V3JhcHBlcik7CisgICAgICAgbWFwLnNldChibG9ja3F1b3RlVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYm9keVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJvZHlXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJy
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQlJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJ1dHRvbldyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoY2FudmFzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQ2FudmFzV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChjYXB0aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlVGFibGVDYXB0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGVsVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFwLnNldChk
aXJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGRpdlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpdldyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoZGxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVETGlzdFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoZW1iZWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVF
bWJlZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZmllbGRzZXRUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVGaWVsZFNldFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZm9udFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZvcm1U
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGb3JtV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1lV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChmcmFtZXNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1lU2V0
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChoMVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhlYWRUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVIZWFkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoclRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUhSV3JhcHBlcik7CisgICAgICAgbWFwLnNldChodG1sVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlSHRtbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaWZyYW1l
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSUZyYW1lV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChpbWdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoaW5wdXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbnB1dFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoaXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUlzSW5kZXhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxhYmVsVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlTGFiZWxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxlZ2VuZFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxlZ2VuZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMSVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
bGlua1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxpbmtXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KG1hcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1hcFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQobWFycXVlZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1hcnF1ZWVX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1lbnVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVNZW51V3JhcHBlcik7CisgICAgICAgbWFwLnNldChtZXRhVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlTWV0YVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob2JqZWN0VGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlT2JqZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChvbFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9MaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChv
cHRncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRpb25X
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQ
YXJhZ3JhcGhXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBhcmFtVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlUGFyYW1XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHByZVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVF1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChzY3Jp
cHRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTY3JpcHRXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KHNlbGVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoc3R5bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTdHls
ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGFibGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVUYWJsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGJvZHlUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRkVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFw
LnNldCh0ZXh0YXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRleHRBcmVhV3JhcHBl
cik7CisgICAgICAgbWFwLnNldCh0aXRsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRp
dGxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0clRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVRhYmxlUm93V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh1bFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVVMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChjb2xncm91cFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChoMlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGgzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoaDRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5n
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg2VGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1hZ2VUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW5zVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9kV3JhcHBlcik7CisgICAgICAgbWFwLnNldChr
ZXlnZW5UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGxpc3RpbmdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KHRmb290VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFi
bGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGhlYWRUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KHhtcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgIH0K
KworICAgIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXJGdW5j
dGlvbiA9CisgICAgICAgIG1hcC5nZXQoZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAg
ICBpZiAoY3JlYXRlV3JhcHBlckZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBl
ckZ1bmN0aW9uKGVsZW1lbnQpOworICAgIHJldHVybiB3cmFwSFRNTEVsZW1lbnQoZWxlbWVudC5n
ZXQoKSk7Cit9CisKK30KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tYmluZGluZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21iaW5kaW5nLmNwcAko
cmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9tYmluZGluZy5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDA2IEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0y
MDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+Cisg
KiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xA
bGtjbC5uZXQ+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVk
ZXNrdG9wLm9yZz4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKy8vIGdjYyAzLngg
Y2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUgSGFzaE1hcCBwb2ludGVyIHNwZWNpYWxpemF0aW9u
CisvLyBpbiB0aGlzIGZpbGUKKyNpZiBkZWZpbmVkIF9fR05VQ19fICYmICFkZWZpbmVkIF9fR0xJ
QkNYWF9fIC8vIGxlc3MgdGhhbiBnY2MgMy40CisjZGVmaW5lIEhBU0hfTUFQX1BUUl9TUEVDX1dP
UktBUk9VTkQgMQorI2VuZGlmCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0
LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tYmlu
ZGluZy5oIgorI2luY2x1ZGUgImdkb21odG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmgiCisKKyNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiR2RvbUNTU1N0eWxlU2hlZXQuaCIK
KyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVTaGVldFByaXZhdGUuaCIKKworI2luY2x1ZGUgIkV2ZW50
RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgorI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJHZG9tTm9kZVByaXZhdGUuaCIKKworI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDREFU
QVNlY3Rpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbW1lbnQuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJFbnRpdHkuaCIKKyNpbmNsdWRlICJF
bnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkdk
b21BdHRyLmgiCisjaW5jbHVkZSAiR2RvbUF0dHJQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNo
YXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJHZG9tVGV4dC5oIgorI2luY2x1ZGUgIkdkb21DREFU
QVNlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1
bWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiR2Rv
bURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHkuaCIKKyNpbmNsdWRlICJHZG9t
RWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJHZG9t
Q1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UmVmZXJlbmNlLmgiCisj
aW5jbHVkZSAiR2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJOb3RhdGlv
bi5oIgorI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KworI2luY2x1ZGUgIkdkb21DU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NTQ2hhcnNldFJ1bGUuaCIK
KyNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgi
CisjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKKyNp
bmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NWYXJpYWJsZXNSdWxlLmgiCisj
aW5jbHVkZSAiR2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0ZvbnRGYWNl
UnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNT
U01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgIkdk
b21DU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFyaWFibGVzUnVsZS5oIgorCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIkdkb21DbGlwYm9hcmQuaCIKKworI2luY2x1ZGUgIkdkb21IVE1M
Q29sbGVjdGlvbi5oIgorCisjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiSFRN
TENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNs
dWRlICJHZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJHZG9tQ0RBVEFT
ZWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NDaGFyc2V0UnVsZVByaXZhdGUuaCIK
KyNpbmNsdWRlICJHZG9tQ1NTRm9udEZhY2VSdWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21D
U1NJbXBvcnRSdWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NNZWRpYVJ1bGVQcml2YXRl
LmgiCisjaW5jbHVkZSAiR2RvbUNTU1BhZ2VSdWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21D
U1NQcmltaXRpdmVWYWx1ZVByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUnVsZVByaXZhdGUu
aCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVSdWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21D
U1NWYWx1ZUxpc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhbHVlUHJpdmF0ZS5oIgor
I2luY2x1ZGUgIkdkb21DU1NWYXJpYWJsZXNSdWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21D
bGlwYm9hcmRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNvbW1lbnRQcml2YXRlLmgiCisjaW5j
bHVkZSAiR2RvbURvY3VtZW50RnJhZ21lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbURvY3Vt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudFR5cGVQcml2YXRlLmgiCisjaW5j
bHVkZSAiR2RvbUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUVudGl0eVByaXZhdGUu
aCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UmVmZXJlbmNlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdk
b21IVE1MQ29sbGVjdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tSFRNTERvY3VtZW50UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIkdkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb25Qcml2YXRlLmgiCisj
aW5jbHVkZSAiR2RvbU5vdGF0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVN0eWxlU2hlZXRQcml2YXRlLmgi
CisjaW5jbHVkZSAiR2RvbVRleHRQcml2YXRlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOjpIVE1MTmFt
ZXM7CisKK3R5cGVkZWYgSGFzaE1hcDx2b2lkKiwgZ3BvaW50ZXI+IERPTU9iamVjdE1hcDsKKwor
c3RhdGljIERPTU9iamVjdE1hcCYgZG9tT2JqZWN0cygpCit7CisgICAgc3RhdGljIERPTU9iamVj
dE1hcCBzdGF0aWNET01PYmplY3RzOworICAgIHJldHVybiBzdGF0aWNET01PYmplY3RzOworfQor
CitncG9pbnRlciBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5k
bGUpCit7CisgICAgZ3BvaW50ZXIgcmV0ID0gZG9tT2JqZWN0cygpLmdldChvYmplY3RIYW5kbGUp
OworICAgIHJldHVybiByZXQ7Cit9CisKK2dwb2ludGVyIEdET01PYmplY3RDYWNoZTo6cHV0RE9N
T2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSwgZ3BvaW50ZXIgd3JhcHBlcikKK3sKKyAgICBkb21P
YmplY3RzKCkuc2V0KG9iamVjdEhhbmRsZSwgd3JhcHBlcik7CisgICAgcmV0dXJuIHdyYXBwZXI7
Cit9CisKK3ZvaWQgR0RPTU9iamVjdENhY2hlOjpmb3JnZXRET01PYmplY3Qodm9pZCogb2JqZWN0
SGFuZGxlKQoreworICAgIGRvbU9iamVjdHMoKS50YWtlKG9iamVjdEhhbmRsZSk7Cit9CisKK2dw
b2ludGVyIHRvR0RPTShEb2N1bWVudCogZG9jKQoreworICAgIGlmICghZG9jKQorICAgICAgICBy
ZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERP
TU9iamVjdChkb2MpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAg
IGdwb2ludGVyIHJldDsKKworICAgIGlmIChkb2MtPmlzSFRNTERvY3VtZW50KCkpCisgICAgICAg
IHJldCA9IHdyYXBIVE1MRG9jdW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oZG9jKSk7
CisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwRG9jdW1lbnQoZG9jKTsKKworICAgIHJldHVy
biBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChkb2MsIHJldCk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpOworCitncG9pbnRlciB0b0dET01OZXds
eUNyZWF0ZWQoTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBO
VUxMOworCisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXIobm9kZSk7Cit9CisKK2dwb2ludGVyIHRv
R0RPTShOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisKKyAgICBncG9pbnRlciByZXQgPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChub2Rl
KTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gcmV0OworCisgICAgcmV0dXJuIGNyZWF0
ZVdyYXBwZXIobm9kZSk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShDU1NWYWx1ZSogdmFsdWUpCit7
CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBn
b2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QodmFsdWUpOworCisgICAgaWYgKGdv
YmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3BvaW50ZXIgcmV0OworCisgICAgaWYg
KHZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICByZXQgPSB3cmFwQ1NTVmFsdWVMaXN0KHN0
YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKSk7CisgICAgZWxzZSBpZiAodmFsdWUtPmlz
UHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0ID0gd3JhcENTU1ByaW1pdGl2ZVZhbHVlKHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpKTsKKyAgICBlbHNlCisgICAgICAg
IHJldCA9IHdyYXBDU1NWYWx1ZSh2YWx1ZSk7CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hl
OjpwdXRET01PYmplY3QodmFsdWUsIHJldCk7Cit9CisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIGdw
b2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7Cisg
ICAgQVNTRVJUKCFTY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KG5vZGUpKTsKKworICAg
IERvY3VtZW50KiBkb2MgPSBub2RlLT5kb2N1bWVudCgpOworICAgIGdwb2ludGVyIHJldCA9IE5V
TEw7CisKKyAgICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBOb2Rl
OjpFTEVNRU5UX05PREU6CisgICAgICAgICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKQor
ICAgICAgICAgICAgICAgIHJldCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNfY2FzdDxI
VE1MRWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBy
ZXQgPSB3cmFwRWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSkpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6CisgICAgICAgICAg
ICByZXQgPSB3cmFwQXR0cihzdGF0aWNfY2FzdDxBdHRyKj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0g
d3JhcFRleHQoc3RhdGljX2Nhc3Q8VGV4dCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE5vZGU6OkNEQVRBX1NFQ1RJT05fTk9ERToKKyAgICAgICAgICAgIHJldCA9
IHdyYXBDREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFTZWN0aW9uKj4obm9kZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6CisgICAgICAg
ICAgICByZXQgPSB3cmFwRW50aXR5KHN0YXRpY19jYXN0PEVudGl0eSo+KG5vZGUpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05f
Tk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oc3RhdGlj
X2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgTm9kZTo6Q09NTUVOVF9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3Jh
cENvbW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6CisgICAgICAgICAgICAvLyB3ZSBk
b24ndCB3YW50IHRvIGNhY2hlIHRoZSBkb2N1bWVudCBpdHNlbGYgaW4gdGhlIHBlci1kb2N1bWVu
dCBkaWN0aW9uYXJ5CisgICAgICAgICAgICByZXR1cm4gdG9HRE9NKHN0YXRpY19jYXN0PERvY3Vt
ZW50Kj4obm9kZSkpOworICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKKyAg
ICAgICAgICAgIHJldCA9IHdyYXBEb2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRUeXBl
Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Tk9UQVRJ
T05fTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBOb3RhdGlvbihzdGF0aWNfY2FzdDxOb3Rh
dGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkRP
Q1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwRG9jdW1lbnRGcmFn
bWVudChzdGF0aWNfY2FzdDxEb2N1bWVudEZyYWdtZW50Kj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RFOgorICAgICAg
ICAgICAgcmV0ID0gd3JhcEVudGl0eVJlZmVyZW5jZShzdGF0aWNfY2FzdDxFbnRpdHlSZWZlcmVu
Y2UqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldCA9IHdyYXBOb2RlKG5vZGUpOworICAgIH0KKworICAgIHJldHVybiBHRE9NT2Jq
ZWN0Q2FjaGU6OnB1dERPTU9iamVjdChub2RlLCByZXQpOworfQorCitncG9pbnRlciB0b0dET00o
SFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24pCit7CisgICAgaWYgKCFjb2xsZWN0aW9uKQorICAg
ICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6
OmdldERPTU9iamVjdChjb2xsZWN0aW9uKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1
cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldDsKKyAgICBzd2l0Y2ggKGNvbGxlY3Rpb24tPnR5
cGUoKSkgeworICAgICAgICBjYXNlIEhUTUxDb2xsZWN0aW9uOjpTZWxlY3RPcHRpb25zOgorICAg
ICAgICAgICAgcmV0ID0gd3JhcEhUTUxPcHRpb25zQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1M
T3B0aW9uc0NvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldCA9IHdyYXBIVE1MQ29sbGVjdGlvbihzdGF0
aWNfY2FzdDxIVE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgIH0KKworICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChjb2xs
ZWN0aW9uLCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oVGV4dCogdGV4dCkKK3sKKyAgICBp
ZiAoIXRleHQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdE
T01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHRleHQpOworICAgIGlmIChnb2JqKQorICAgICAg
ICByZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldCA9IHdyYXBUZXh0KHRleHQpOworICAg
IHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdCh0ZXh0LCByZXQpOworfQorCitn
cG9pbnRlciB0b0dET00oQ1NTUnVsZSogcnVsZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAg
IHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0
RE9NT2JqZWN0KHJ1bGUpOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOwor
CisgICAgZ3BvaW50ZXIgcmV0OworICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7CisgICAgICAg
IGNhc2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NTdHls
ZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6TUVESUFfUlVMRToKKyAgICAgICAgICAgIHJldCA9
IHdyYXBDU1NNZWRpYVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTTWVkaWFSdWxlKj4ocnVsZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6Cisg
ICAgICAgICAgICByZXQgPSB3cmFwQ1NTRm9udEZhY2VSdWxlKHN0YXRpY19jYXN0PENTU0ZvbnRG
YWNlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1
bGU6OlBBR0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NQYWdlUnVsZShzdGF0aWNf
Y2FzdDxDU1NQYWdlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1J1bGU6OklNUE9SVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU0ltcG9y
dFJ1bGUoc3RhdGljX2Nhc3Q8Q1NTSW1wb3J0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OkNIQVJTRVRfUlVMRToKKyAgICAgICAgICAgIHJl
dCA9IHdyYXBDU1NDaGFyc2V0UnVsZShzdGF0aWNfY2FzdDxDU1NDaGFyc2V0UnVsZSo+KHJ1bGUp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OlZBUklBQkxFU19S
VUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU1ZhcmlhYmxlc1J1bGUoc3RhdGljX2Nhc3Q8
Q1NTVmFyaWFibGVzUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU1J1bGUocnVsZSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICB9CisKKyAgICBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChydWxl
LCByZXQpOworICAgIHJldHVybiByZXQ7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFbGVtZW50KiBl
bGVtZW50KQoreworICAgIGlmICghZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAg
ICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QoZWxlbWVudCk7
CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3BvaW50ZXIgcmV0
OworICAgIERvY3VtZW50KiBkb2MgPSBlbGVtZW50LT5kb2N1bWVudCgpOworCisgICAgaWYgKGVs
ZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0ID0gY3JlYXRlR0RPTUhUTUxXcmFw
cGVyKHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oZWxlbWVudCkpOworICAgIGVsc2UKKyAgICAg
ICAgcmV0ID0gd3JhcEVsZW1lbnQoZWxlbWVudCk7CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENh
Y2hlOjpwdXRET01PYmplY3QoZWxlbWVudCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKFN0
eWxlU2hlZXQqIHN0eWxlU2hlZXQpCit7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAgICAgICBy
ZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERP
TU9iamVjdChzdHlsZVNoZWV0KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7
CisKKyAgICBncG9pbnRlciByZXQ7CisgICAgaWYgKHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVl
dCgpKQorICAgICAgICByZXQgPSB3cmFwQ1NTU3R5bGVTaGVldChzdGF0aWNfY2FzdDxDU1NTdHls
ZVNoZWV0Kj4oc3R5bGVTaGVldCkpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gd3JhcFN0eWxl
U2hlZXQoc3R5bGVTaGVldCk7CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01P
YmplY3Qoc3R5bGVTaGVldCwgcmV0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290
byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2Vy
IDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKworI2lmbmRlZiBHZG9tRE9NT2JqZWN0X2gKKyNkZWZpbmUgR2RvbURP
TU9iamVjdF9oCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tL2dkb21k
ZWZpbmVzLmgiCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworR19CRUdJTl9E
RUNMUworCisjZGVmaW5lIEdET01fVFlQRV9ET01fT0JKRUNUICAgICAgICAgICAgKGdkb21fZG9t
X29iamVjdF9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpF
Q1QsIEdkb21ET01PYmplY3QpKQorI2RlZmluZSBHRE9NX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3Mp
ICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpF
Q1QsIEdkb21ET01PYmplY3RDbGFzcykpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVChvYmop
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRE9N
X09CSkVDVCkpCisjZGVmaW5lIEdET01fSVNfRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQ
RV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCkpCisjZGVm
aW5lIEdET01fRE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRf
Q0xBU1MoKG9iaiksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwgR2RvbURPTU9iamVjdENsYXNzKSkK
Kworc3RydWN0IF9HZG9tRE9NT2JqZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsK
KworICAgIHZvaWQgKmNvcmVPYmplY3Q7Cit9OworCitzdHJ1Y3QgX0dkb21ET01PYmplY3RDbGFz
cyB7CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5
cGUKK2dkb21fZG9tX29iamVjdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNl
bmRpZiAvKiBHZG9tRE9NT2JqZWN0X2ggKi8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L2dzdHJpbmdjb252ZXJ0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dz
dHJpbmdjb252ZXJ0LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ3N0
cmluZ2NvbnZlcnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisKKyNpZm5kZWYgR1NUUklOR19DT05WRVJUX0gKKyNkZWZpbmUgR1NUUklOR19DT05WRVJUX0gK
KworLyogY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIHZhcmlvdXMgd2Via2l0
IHN0cmluZyB0eXBlcyBpbnRvIGEgdXRmOCBnbGliIHN0cmluZyAqLworCisjaW5jbHVkZSAiQXRv
bWljU3RyaW5nLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIktVUkwuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgInVuaWNvZGUvdXN0cmluZy5oIgor
CitpbmxpbmUgZ2NoYXIgKiBnZG9tX2dzdHJpbmdfY29udmVydChXZWJDb3JlOjpTdHJpbmcgY29u
c3QmIHMpIHsgcmV0dXJuIGdfc3RyZHVwKHMudXRmOCgpLmRhdGEoKSk7IH0KK2lubGluZSBnY2hh
ciAqIGdkb21fZ3N0cmluZ19jb252ZXJ0KFdlYkNvcmU6OktVUkwgY29uc3QmIHMpIHsgcmV0dXJu
IGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7IH0KK2lubGluZSBnY2hhciAqIGdk
b21fZ3N0cmluZ19jb252ZXJ0KGNvbnN0IEpTQzo6VVN0cmluZyAmIHMpIHsgcmV0dXJuIGdfc3Ry
ZHVwKHMuVVRGOFN0cmluZygpLmNfc3RyKCkpOyB9CitpbmxpbmUgZ2NoYXIgKiBnZG9tX2dzdHJp
bmdfY29udmVydChXZWJDb3JlOjpBdG9taWNTdHJpbmcgY29uc3QmcykgeyByZXR1cm4gZ19zdHJk
dXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQorCisjZW5kaWYgLyogR1NUUklOR19DT05W
RVJUX0ggKi8KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9taHRtbGVsZW1lbnR3cmFw
cGVyZmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9taHRt
bGVsZW1lbnR3cmFwcGVyZmFjdG9yeS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL2dkb21odG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIEdET01fSFRNTF9FTEVNRU5U
X1dSQVBQRVJfRkFDVE9SWV9ICisjZGVmaW5lIEdET01fSFRNTF9FTEVNRU5UX1dSQVBQRVJfRkFD
VE9SWV9ICisKKyNpbmNsdWRlICJHZG9tTm9kZVByaXZhdGUuaCIKKworI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBIVE1MRWxlbWVudDsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgZ3BvaW50ZXIgY3JlYXRlR0RPTUhUTUxXcmFw
cGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTEVsZW1lbnQ+KTsKK30KKworI2VuZGlmIC8vIEdE
T01fSFRNTF9FTEVNRU5UX1dSQVBQRVJfRkFDVE9SWV9ICkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vZ2RvbWJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20v
Z2RvbWJpbmRpbmcuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
YmluZGluZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc3IEBACisvKgorICogIENvcHlyaWdo
dCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJp
Z2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdl
YmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3Rv
IDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisK
KyNpZm5kZWYgR0RPTV9CSU5ESU5HX0gKKyNkZWZpbmUgR0RPTV9CSU5ESU5HX0gKKworI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisjaW5jbHVkZSAiQ1NTUnVsZS5oIgorI2luY2x1ZGUg
IkNTU1ZhbHVlLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisj
aW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2lu
Y2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiVGV4dC5o
IgorI2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKKworI2luY2x1ZGUgIkdkb21Ob2RlLmgi
CisjaW5jbHVkZSAiR2RvbU5vZGVQcml2YXRlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ICAgIGNsYXNzIEF0b21pY1N0cmluZzsKKyAgICBjbGFzcyBEb2N1bWVudDsKKyAgICBjbGFzcyBF
dmVudDsKKyAgICBjbGFzcyBGcmFtZTsKKyAgICBjbGFzcyBLVVJMOworICAgIGNsYXNzIE5vZGU7
CisgICAgY2xhc3MgU3RyaW5nOworCisjaWYgRU5BQkxFKFNWRykKKyAgICBjbGFzcyBTVkdFbGVt
ZW50OworI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXZWJLaXQg
eworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpDU1NSdWxlKiBub2RlKTsKKyAgICBncG9p
bnRlciB0b0dET00oV2ViQ29yZTo6Q1NTVmFsdWUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RP
TShXZWJDb3JlOjpEb2N1bWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6
OkVsZW1lbnQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpIVE1MQ29sbGVj
dGlvbiogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6Ok5vZGUqIG5vZGUpOwor
ICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpTdHlsZVNoZWV0KiBub2RlKTsKKyAgICBncG9p
bnRlciB0b0dET00oV2ViQ29yZTo6VGV4dCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdl
YkNvcmU6OkNhbnZhc1BpeGVsQXJyYXkqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShXZWJD
b3JlOjpET01XaW5kb3cqIG5vZGUpOworCisgICAgY2xhc3MgR0RPTU9iamVjdENhY2hlIHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBncG9pbnRlciBnZXRET01PYmplY3Qodm9pZCAqb2Jq
ZWN0SGFuZGxlKTsKKyAgICAgICAgc3RhdGljIGdwb2ludGVyIHB1dERPTU9iamVjdCh2b2lkICpv
YmplY3RIYW5kbGUsIGdwb2ludGVyIHdyYXBwZXIpOworICAgICAgICBzdGF0aWMgdm9pZCBmb3Jn
ZXRET01PYmplY3Qodm9pZCAqb2JqZWN0SGFuZGxlKTsKKyAgICB9OworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBHRE9NX0JJTkRJTkdfSApJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dkb21ET01PYmplY3RQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dkb21ET01PYmplY3RQcml2YXRlLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdFByaXZhdGUuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29u
IExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBT
b3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9r
ZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgUHJpdmF0ZUdkb21ET01PYmplY3RfaAorI2RlZmlu
ZSBQcml2YXRlR2RvbURPTU9iamVjdF9oCisKKyNlbmRpZgorCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9AZnJl
ZWRlc2t0b3Aub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tl
ci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICovCisKKworI2luY2x1ZGUgImdkb21iaW5kaW5nLmgiCisjaW5jbHVkZSAiR2RvbURP
TU9iamVjdC5oIgorI2luY2x1ZGUgIkdkb21ET01PYmplY3RQcml2YXRlLmgiCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKworZXh0ZXJuICJDIiB7CisKK0df
REVGSU5FX1RZUEUoR2RvbURPTU9iamVjdCwgZ2RvbV9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNU
KTsKKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2luaXQoR2RvbURPTU9iamVjdCogcmVx
dWVzdCkKK3sKK30KKworc3RhdGljIHZvaWQgZ2RvbV9kb21fb2JqZWN0X2NsYXNzX2luaXQoR2Rv
bURPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7Cit9CisKK30gLyogZXh0ZXJuICJDIiAq
LworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5wbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5w
bAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVy
YXRlLnBsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc4IEBACisjIS91c3IvYmluL3BlcmwgLXcK
KyMKKyMgQ29weXJpZ2h0IChDKSAyMDA5IEFkYW0gRGluZ2xlIDxhZGFtQHlvcmJhLm9yZz4KKyMK
KyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgV2ViS2l0CisjIAorIyBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
IyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisjIAorIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjIAorIyBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisjIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyMgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisjIAorCitteSAkY2xhc3NsaXN0ID0gPFNURElOPjsKK2Nob21wKCRjbGFzc2xp
c3QpOworbXkgQGNsYXNzZXMgPSBzcGxpdCAvIC8sICRjbGFzc2xpc3Q7CitAY2xhc3NlcyA9IHNv
cnQgQGNsYXNzZXM7CisKK3ByaW50IDw8RU9GOworLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVy
YXRlZCBieSBnb2JqZWN0LWdlbmVyYXRlLnBsLiAgRE8gTk9UIE1PRElGWSEKKyAgIAorICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCitFT0YKKworbXkgJG91dFR5
cGUgPSAkQVJHVlswXTsKK215ICRoZWFkZXI7CitpZiAoJG91dFR5cGUgZXEgImRlZmluZXMiKSB7
CisgICAgJGhlYWRlciA9ICJnZG9tZGVmaW5lc19oIjsKK30gZWxzaWYgKCRvdXRUeXBlIGVxICJn
ZG9tIikgeworICAgICRoZWFkZXIgPSAiZ2RvbV9oIjsKK30gZWxzZSB7CisgICAgZGllICJ1bmtu
b3duIG91dHB1dCB0eXBlIjsKK30KKworcHJpbnQgIiNpZm5kZWYgJHtoZWFkZXJ9XG4iOworcHJp
bnQgIiNkZWZpbmUgJHtoZWFkZXJ9XG4iOworcHJpbnQgIlxuIjsKKworaWYgKCRvdXRUeXBlIGVx
ICJkZWZpbmVzIikgeworICAgIGZvcmVhY2ggbXkgJGNsYXNzIChAY2xhc3NlcykgeworICAgICAg
ICBwcmludCAidHlwZWRlZiBzdHJ1Y3QgX0dkb20ke2NsYXNzfSBHZG9tJHtjbGFzc307XG4iOwor
ICAgICAgICBwcmludCAidHlwZWRlZiBzdHJ1Y3QgX0dkb20ke2NsYXNzfUNsYXNzIEdkb20ke2Ns
YXNzfUNsYXNzO1xuIjsKKyAgICAgICAgcHJpbnQgIlxuIjsKKyAgICB9Cit9IGVsc2lmICgkb3V0
VHlwZSBlcSAiZ2RvbSIpIHsKKyAgICBmb3JlYWNoIG15ICRjbGFzcyAoQGNsYXNzZXMpIHsKKyAg
ICAgICAgcHJpbnQgIiNpbmNsdWRlIDxnZG9tL0dkb20ke2NsYXNzfS5oPlxuIjsKKyAgICB9Cit9
CisKK3ByaW50ICJcbiI7CitwcmludCAiI2VuZGlmXG4iOworCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5wbApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE0MzAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBD
YXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisjIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0
aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisjIENvcHlyaWdodCAoQykgMjAwOCBBbHAg
VG9rZXIgPGFscEBhdG9rZXIuY29tPgorIyBDb3B5cmlnaHQgKEMpIDIwMDkgQWRhbSBEaW5nbGUg
PGFkYW1AeW9yYmEub3JnPgorIyBDb3B5cmlnaHQgKEMpIDIwMDkgSmltIE5lbHNvbiA8amltQHlv
cmJhLm9yZz4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyMg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3Vp
dGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKworcGFja2FnZSBDb2RlR2Vu
ZXJhdG9yR09iamVjdDsKKworbXkgJGxpY2VuY2VUZW1wbGF0ZSA9IDw8ICJFT0YiOworLyoKKyAg
ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCisg
ICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4g
RE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KK0VPRgorCitteSAlaW1wbEluY2x1ZGVzID0gKCk7CitteSAlaGRy
SW5jbHVkZXMgPSAoKTsKK215ICVoZHJQcm9wSW5jbHVkZXMgPSAoKTsKKworIyBEZWZhdWx0IGNv
bnN0cnVjdG9yCitzdWIgbmV3IHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJl
ZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJhdG9yID0gc2hpZnQ7CisgICAgJG91dHB1
dERpciA9IHNoaWZ0OworICAgIG1rZGlyICRvdXRwdXREaXI7CisKKyAgICBibGVzcygkcmVmZXJl
bmNlLCAkb2JqZWN0KTsKKyAgICByZXR1cm4gJHJlZmVyZW5jZTsKK30KKworc3ViIGZpbmlzaCB7
CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworfQorCisjIFBhcmFtczogJ2RvbUNsYXNzJyBzdHJ1
Y3QKK3N1YiBHZW5lcmF0ZUludGVyZmFjZSB7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAg
IG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0gc2hpZnQ7CisKKyAgICBt
eSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKworICAgIHByaW50ICIkbmFtZVxuIjsKKyAgICAK
KyAgICAkb2JqZWN0LT5HZW5lcmF0ZSgkZGF0YU5vZGUpOworCisgICAgIyBXcml0ZSBwcml2YXRl
IGhlYWRlcgorICAgICRvYmplY3QtPldyaXRlUHJpdmF0ZUhlYWRlcigkZGF0YU5vZGUpOworCisg
ICAgIyBXcml0ZSBjaGFuZ2VzCisgICAgbXkgJGZuYW1lID0gIkdkb21fIiAuICRuYW1lOworICAg
ICRmbmFtZSA9fiBzL18vL2c7CisgICAgJG9iamVjdC0+V3JpdGVEYXRhKCRmbmFtZSk7Cit9CisK
KyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdlbmVyYXRlTW9kdWxlIHsKKyAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAk
bW9kdWxlID0gJGRhdGFOb2RlLT5tb2R1bGU7Cit9CisKK3N1YiBDbHNUb0dPYmpUeXBlIHsKKyAg
ICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxpemUoJGNsYXNz
TmFtZSkpCit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUgeworICAgIG15ICRkYXRhTm9kZSA9
IHNoaWZ0OworCisgICAgIyA/PyBxdWU/PworICAgICNyZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgcmV0dXJuICJHZG9tRE9NT2JqZWN0IiBpZiBA
eyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdkb20iIC4gJGNvZGVHZW5l
cmF0b3ItPlN0cmlwTW9kdWxlKCRkYXRhTm9kZS0+cGFyZW50cygwKSk7Cit9CisKK3N1YiBHZXRQ
YXJlbnRHT2JqVHlwZSB7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1
ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQ
YXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQi
fTsKKyAgICByZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRhTm9kZS0+cGFy
ZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2JqVHlwZSgkY29k
ZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Cit9CisKKwor
IyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgY2FtZWxp
emUgeworICAgIG15ICRzID0gc2hpZnQ7CisgICAgam9pbignJywgbWFweyB1Y2ZpcnN0ICRfIH0g
c3BsaXQoLyg/PD1bQS1aYS16XSlfKD89W0EtWmEtel0pfFxiLywgJHMpKTsKK30KKworIyBBbGdv
cml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgZGVjYW1lbGl6ZSB7
CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICAkcyA9fiBzIyhbXmEtekEtWl0/KShbQS1aXSopKFtB
LVpdKShbYS16XT8pIworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAgICAgICBteSAo
JHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBteSAkdCA9ICRw
MCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/ICIke3AxfV8k
cDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAgI2dlOworICAg
ICRzOworfQorCitzdWIgR2V0SGRyTmFtZSB7CisgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRv
ci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitz
dWIgR2V0Q2xhc3NOYW1lIHsKKyAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1v
ZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRHSW5j
bHVkZUhkciB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IEdldEhkck5h
bWUoJHR5cGUpOworCisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJzaG9y
dCI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgImZsb2F0IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImRvdWJsZSI7Cisg
ICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICIiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQgbG9uZyI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmci
OworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUg
ZXEgIkV2ZW50TGlzdGVuZXIiOworICAgIHJldHVybiAiUmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNv
bXBhcmVIb3ciOworICAgIHJldHVybiAiZ2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmgiIGlmICR0eXBlIGVxICJET01PYmplY3QiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgY2hhciI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMg
VE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01T
dHJpbmciOworCisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJmbG9hdCI7CisKKyAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworCisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVx
ICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUuaCI7Cit9CisKKyMgcmV0dXJucyAxIGlmIHdl
IG5lZWQgdG8gY3JlYXRlIGEgZ29iamVjdCB3cmFwcGVyIGFyb3VuZCB0aGUgcmV0dXJuIHJlc3Vs
dAorc3ViIElzR0RPTUNsYXNzVHlwZSB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAk
bmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAi
RE9NVGltZVN0YW1wIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CisgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJmbG9hdCI7
CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInNo
b3J0IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImludCI7Cisg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9y
dCI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBUT0RPIC0gRE9NIGNs
YXNzIHdyYXBwZXIKKworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJl
dHVybiAxOworfQorCitzdWIgR2V0UHJvcEdUeXBlIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0Owor
ICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5n
IiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBl
cSAiZmxvYXQiOworICAgIHJldHVybiAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29t
cGFyZUhvdyI7CisgICAgcmV0dXJuICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAg
IHJldHVybiAiYm9vbGVhbiIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hh
ciIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgIHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxv
bmciOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAi
dWNoYXIiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBl
cSAidW5zaWduZWQiOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICBy
ZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWlu
dDY0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25n
IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgcmV0dXJuICJ1bG9uZyIgaWYgJHR5cGUgZXEg
IlJHQkNvbG9yIjsgIyBUT0RPIC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2Jq
ZWN0IjsKK30KKworc3ViIEdldEdUeXBlIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15
ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAiZ2NoYXIgKiIgaWYg
JHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuICJnZmxvYXQiIGlmICR0eXBlIGVxICJm
bG9hdCI7CisgICAgcmV0dXJuICJXZWJDb3JlOjpSYW5nZTo6Q29tcGFyZUhvdyAiIGlmICR0eXBl
IGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gImdkb3VibGUiIGlmICR0eXBlIGVxICJkb3Vi
bGUiOworICAgIHJldHVybiAiZ2Jvb2xlYW4iIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICBy
ZXR1cm4gImdjaGFyIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgcmV0dXJuICJnbG9uZyIgaWYg
JHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAiZ3Nob3J0IiBpZiAkdHlwZSBlcSAic2hvcnQi
OworICAgIHJldHVybiAiZ3VjaGFyIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgIHJldHVybiAi
Z3VpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICJnaW50IiBpZiAkdHlw
ZSBlcSAiaW50IjsKKyAgICByZXR1cm4gImd1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50
IjsKKyAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAg
IHJldHVybiAiZ3VpbnQ2NCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAg
cmV0dXJuICJndXNob3J0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJldHVy
biAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFRPRE8gLSBET00gY2xhc3Mgd3Jh
cHBlcgorCisgICAgcmV0dXJuICJ2b2lkIiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1
cm4gIiRuYW1lICoiOworfQorCitzdWIgZ2V0SW5jSGRyIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworCisgICAgbXkgJGluY2x1ZGVIZHIgPSBHZXRHSW5jbHVkZUhkcigkdHlwZSk7CisgICAgaWYg
KCRpbmNsdWRlSGRyKSB7CisgICAgICAgIGlmICgkdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAg
ICAgICAgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAg
ICAgICAgICAgIHJldHVybiAiR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIjsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiAkaW5jbHVkZUhkcjsKKyAgICAgICAgfQor
ICAgIH0KKyAgICByZXR1cm4gIiI7Cit9CisKK3N1YiBhZGRQcm9wSW5jSGRyIHsKKyAgICBteSAk
dHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYg
KCRoZHIgbmUgIiIpIHsKKyAgICAgICAgaWYgKElzR0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAg
ICAgICAgICAgICRoZHIgPSBzdWJzdHIoJGhkciwgMCwgbGVuZ3RoKCRoZHIpLTIpOworICAgICAg
ICAgICAgJGhkclByb3BJbmNsdWRlc3siZ2RvbS8iLiRoZHIuIi5oIn0gPSAxOworICAgICAgICAg
ICAgJGhkclByb3BJbmNsdWRlc3siZ2RvbS8iLiRoZHIuIlByaXZhdGUuaCJ9ID0gMTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRoZHJQcm9wSW5jbHVkZXN7JGhkcn0gPSAxOworICAg
ICAgICB9CisgICAgfQorfQorCitzdWIgYWRkSW5jSGRyIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0
OworCisgICAgbXkgJGhkciA9IGdldEluY0hkcigkdHlwZSk7CisgICAgaWYgKCRoZHIgbmUgIiIp
IHsKKyAgICAgICAgaWYgKElzR0RPTUNsYXNzVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICRo
ZHJJbmNsdWRlc3siZ2RvbS8kaGRyIn0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgJGhkckluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0KKworfQorCitzdWIg
YWRkSW5jQm9keSB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJ
bmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJc0dET01D
bGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyRoZHIi
fSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9
ID0gMTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIEdldFByaXZGbiB7CisgICAgbXkgJGlu
dGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gc2hpZnQ7Cisg
ICAgbXkgJHJlcyA9IHNoaWZ0OworICAgIG15ICRwYXJtID0gc2hpZnQ7CisKKyAgICByZXR1cm4g
IldlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiAkcmVzID0gV2ViS2l0Ojpjb3JlKCRwYXJtKTsi
OworfQorCitzdWIgc2tpcEF0dHJpYnV0ZSB7CisgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0Owor
ICAgIAorICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21HZXR0ZXIifSB8fAorICAgICAgICAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21TZXR0ZXIifSkgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisgICAgCisgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlw
ZTsKKworICAgIGlmICgkcHJvcF90eXBlIGVxICJzdHlsZXNoZWV0czo6TWVkaWFMaXN0Iikgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQ1NTVmFy
aWFibGVzRGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlm
ICgkcHJvcF90eXBlIGVxICJFdmVudExpc3RlbmVyIikgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisKKyAgICAjIHNraXAgQ29uc3RydWN0b3JzICh3aGF0ZXZlciB0aGV5IGFyZSkgZm9yIG5v
dy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29uc3RydWN0b3IkLykgeworICAgICAgICByZXR1
cm4gMTsKKyAgICB9CisKKyAgICAjIGNhbnZhczJkLi4uLgorICAgIGlmICgkcHJvcF90eXBlIGVx
ICJjdXN0b20iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmICgkcHJvcF90
eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYgKCRw
cm9wX3R5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAKKyAgICAjIFRPRE86
IFNWRworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQb2RUeXBlKCR0eXBlKSB8fCAkY29kZUdl
bmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7CisgICAgICAgIHJldHVybiAxOwor
ICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIFVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRp
b24geworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXBwZWQgb3V0IENhbnZhc1Bp
eGVsQXJyYXkgLSBzZWUgSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBmb3Igd2h5LgorICAg
IHJldHVybiAxIGlmICR0eXBlIGVxICJOb2RlIiBvciAkdHlwZSBlcSAiRG9jdW1lbnQiIG9yICR0
eXBlIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IKKyAgICAgICR0eXBlIGVxICJTVkdQYXRoU2VnIiBv
ciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUgZXEgIkNTU1J1bGUiIG9yICR0eXBlIGVx
ICJDU1NWYWx1ZSIgb3IKKyAgICAgICR0eXBlIGVxICJFdmVudCIgb3IgJHR5cGUgZXEgIkVsZW1l
bnQiIG9yICR0eXBlIGVxICJUZXh0IjsKKyAgICByZXR1cm4gMDsKK30KKworc3ViIFdyaXRlUHJp
dmF0ZUhlYWRlciB7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9
IHNoaWZ0OworCisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CisgICAg
bXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgbXkgJGZp
bGVuYW1lID0gIiRvdXRwdXREaXIvIiAuICRjbGFzc05hbWUgLiAiUHJpdmF0ZS5oIjsKKyAgICBt
eSAkZ3VhcmQgPSB1YyhkZWNhbWVsaXplKCRjbGFzc05hbWUpKSAuICJfUFJJVkFURV9IIjsKKyAg
ICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRkYXRhTm9kZSk7CisK
KyAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTGVnYWN5UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+
cGFyZW50c30gPiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRo
YXNSZWFsUGFyZW50OworICAgIAorICAgIG9wZW4oUFJJVkhFQURFUiwgIj4kZmlsZW5hbWUiKSBv
ciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkZmlsZW5hbWUgZm9yIHdyaXRpbmciOworICAgIAor
ICAgIHByaW50IFBSSVZIRUFERVIgc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAg
cHJpbnQgUFJJVkhFQURFUiAiXG4iOworICAgIAorICAgIG15ICR0ZXh0ID0gPDwgIkVPRiI7Cisj
aWZuZGVmICRndWFyZAorI2RlZmluZSAkZ3VhcmQKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+
CisjaW5jbHVkZSA8Z2RvbS8ke3BhcmVudENsYXNzTmFtZX0uaD4KKyNpbmNsdWRlICIke2ludGVy
ZmFjZU5hbWV9LmgiCitFT0YKKworICAgIHByaW50IFBSSVZIRUFERVIgJHRleHQ7CisgICAgCisg
ICAgcHJpbnQgUFJJVkhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlz
KCVoZHJQcm9wSW5jbHVkZXMpOworICAgIHByaW50IFBSSVZIRUFERVIgIlxuIiBpZiBrZXlzKCVo
ZHJQcm9wSW5jbHVkZXMpOworICAgIAorICAgICR0ZXh0ID0gPDwgIkVPRiI7Cit0eXBlZGVmIHN0
cnVjdCBfJHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsKKworbmFtZXNwYWNlIFdlYktpdCB7Cisg
ICAgJHtjbGFzc05hbWV9ICoKKyAgICB3cmFwJHtpbnRlcmZhY2VOYW1lfShXZWJDb3JlOjoke2lu
dGVyZmFjZU5hbWV9ICpjb3JlT2JqZWN0KTsKKworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKgorICAgIGNvcmUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKworRU9GCisKKyAgICBwcmlu
dCBQUklWSEVBREVSICR0ZXh0OworCisgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRPTVdp
bmRvdyIgfHwgKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkdlbmVyYXRlVG9KUyJ9KSBhbmQKKyAgICAgICAgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRp
b24oJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAgICR0ZXh0ID0gPDwgIkVPRiI7CisgICAgZ3Bv
aW50ZXIKKyAgICB0b0dET00oV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogbm9kZSk7CisKK0VP
RgorCisgICAgICAgIHByaW50IFBSSVZIRUFERVIgJHRleHQ7CisgICAgfQorCisgICAgJHRleHQg
PSA8PCAiRU9GIjsKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLyogJHtndWFyZH0g
Ki8KKworRU9GCisKKyAgICBwcmludCBQUklWSEVBREVSICR0ZXh0OworICAgIAorICAgIGNsb3Nl
KFBSSVZIRUFERVIpOworfQorCitzdWIgQ2xhc3NIYXNGdW5jdGlvbiB7CisgICAgICAgIG15ICRj
bGFzcyA9IHNoaWZ0OworICAgICAgICBteSAkbmFtZSA9IHNoaWZ0OworICAgICAgICBmb3JlYWNo
IG15ICRmdW5jdGlvbiAoQHskY2xhc3MtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgICAgIGlmICgk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSBlcSAkbmFtZSkgeworICAgICAgICAgICAgICAgIHJl
dHVybiAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1
YiBHZW5lcmF0ZUZ1bmN0aW9uIHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGlu
dGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKKyAgICBteSAk
cHJlZml4ID0gc2hpZnQ7CisKKyAgICBteSAkY2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRl
cmZhY2VOYW1lKTsKKworICAgIG15ICRmbl9zaWdfbmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5uYW1lOworICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBl
OworICAgIG15ICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNl
TmFtZSkgLiAiXyIgLiAkcHJlZml4IC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25hbWUpOworICAgIG15
ICRyZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKyAgICBteSAkcmV0X2lzX2Ns
c190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRmbl9zaWdfdHlwZSk7CisKKyAgICBteSAkZnVuY3Rp
b25TaWcgPSAiJGNsYXNzTmFtZSAqdGhpeiI7CisKKyAgICBteSAkY2FsbF9pbXBsX3BhcmFtcyA9
ICIiOworICAgIG15ICRnZG9tX2ZuX3ByZWZpeCA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRmbl9z
aWdfdHlwZSk7CisKKyAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9jc3Nfc3R5bGVfZGVj
bGFyYXRpb25fc2V0X3Byb3BlcnR5IikgeworICAgICAgICAjIHJlc2VydmVkIG5hbWUgY2xhc2gg
aW4gZ2xpYiEKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJh
dGlvbl9zZXRfY3NzX3Byb3BlcnR5IjsKKyAgICB9CisgICAgIyBza2lwIENvbXBhcmVIb3cgZnVu
Y3Rpb25zIGZvciBub3cKKyAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9yYW5nZV9jb21w
YXJlX2JvdW5kYXJ5X3BvaW50cyIpIHsKKyAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFRPRE86
IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwor
ICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5j
dGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICAjIHNraXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICBpZiAoJHJldHVy
blR5cGUgZXEgIkdkb21TVkdEb2N1bWVudCAqIikgeworICAgICAgICBwdXNoKEBoQm9keSwgIlxu
LyogVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICov
XG5cbiIpOworICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogVE9ETzogc2tpcHBpbmcgU1ZHRG9j
dW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgIyBza2lwIHNvbWUgY3VzdG9tIGZ1bmN0aW9ucyBmb3Igbm93CisgICAg
bXkgJGlzX2N1c3RvbV9mbiA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tIn0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Bcmd1bWVudEhhbmRsaW5nIn07Cisg
ICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xsZWN0aW9uX2l0ZW0iIHx8Cisg
ICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21faHRtbF9jb2xsZWN0aW9uX25hbWVkX2l0ZW0i
IHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVu
IiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfc2V0
X3JlcXVlc3RfaGVhZGVyIiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9o
dHRwX3JlcXVlc3Rfc2VuZCIgfHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxf
aHR0cF9yZXF1ZXN0X2dldF9yZXNwb25zZV9oZWFkZXIiIHx8CisgICAgICAgICRmdW5jdGlvbk5h
bWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vdmVycmlkZV9taW1lX3R5cGUiIHx8CisgICAg
ICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9kaXNwYXRjaF9ldmVu
dCIgfHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1
dGUiKSB7CisgICAgICAgICRpc19jdXN0b21fZm4gPSAwOworICAgIH0KKyAgICBpZiAoJGlzX2N1
c3RvbV9mbiAmJiAKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9y
X25leHRfbm9kZSIgJiYgCisgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9hcHBl
bmRfY2hpbGQiICYmIAorICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVtb3Zl
X2NoaWxkIiAmJiAKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2luc2VydF9i
ZWZvcmUiICYmCisgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZXBsYWNlX2No
aWxkIiAmJgorICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3BhcmVu
dF9ub2RlIiAmJiAKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9m
aXJzdF9jaGlsZCIgJiYgCisgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxr
ZXJfbGFzdF9jaGlsZCIgJiYgCisgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93
YWxrZXJfcHJldmlvdXNfc2libGluZyIgJiYgCisgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fdHJlZV93YWxrZXJfbmV4dF9zaWJsaW5nIiAmJiAKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAiZ2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19ub2RlIiAmJiAKKyAgICAgICAgJGZ1bmN0aW9u
TmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9uZXh0X25vZGUiICYmIAorICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3JfcHJldmlvdXNfbm9kZSIpIHsKKyAgICAgICAg
cHVzaChAaEJvZHksICJcbi8qIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0g
Ki9cblxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBUT0RPOiBjdXN0b20gZnVuY3Rp
b24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAg
ICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICBpZiAoJHBhcmFtSURM
VHlwZSBlcSAiRXZlbnQiKSB7CisgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogVE9ETzog
ZXZlbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgcHVz
aChAY0JvZHksICJcbi8qIFRPRE86IGV2ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xu
XG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBhZGRJbmNCb2R5
KCRwYXJhbUlETFR5cGUpOworICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFt
SURMVHlwZSk7CisgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJhbS0+bmFt
ZSk7CisKKyAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsICRwYXJhbVR5cGUgJHBhcmFtTmFtZSI7
CisKKyAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRwYXJh
bUlETFR5cGUpOworICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAg
ICBpZiAoJHBhcmFtSURMVHlwZSBuZSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgICAgICAgICRw
YXJhbUlETFR5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICRpbXBsSW5j
bHVkZXN7Imdkb20vR2RvbSR7cGFyYW1JRExUeXBlfVByaXZhdGUuaCJ9ID0gMTsKKyAgICAgICAg
ICAgICAgICAjIHRoaXMgaXNuJ3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGJ1dCBvbmUgb2YgdGhlCisg
ICAgICAgICAgICAgICAgIyBhdXRvLWdlbmVyYXRlZCBmaWxlcyBuZWVkZWQgaXQgc28uLi4uCisg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtwYXJhbUlETFR5cGV9LmgifSA9IDE7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRwYXJhbV9pc19jbHNfdHlwZSB8
fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikpIHsKKyAgICAgICAgICAgICRwYXJhbU5h
bWUgPSAiX2dfIiAuICRwYXJhbU5hbWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRjYWxsX2lt
cGxfcGFyYW1zKSB7CisgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyAuPSAiLCAkcGFyYW1O
YW1lIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRjYWxsX2ltcGxfcGFyYW1zID0g
IiRwYXJhbU5hbWUiOworICAgICAgICB9CisgICAgfQorCisgICAgICAgIGlmICgkZm5fc2lnX3R5
cGUgZXEgIkV2ZW50IikgeworICAgICAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFRPRE86IGV2
ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgIHB1c2go
QGNCb2R5LCAiXG4vKiBUT0RPOiBldmVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxu
Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgIGlmICgkcmV0dXJuVHlw
ZSBuZSAidm9pZCIpIHsKKworICAgICAgICBpZiAoJHJldF9pc19jbHNfdHlwZSkgeworICAgICAg
ICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAg
ICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNnZW5lcmF0b3IuCisgICAgICAgICAg
ICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgi
fSA9IDE7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmICgkZm5fc2ln
X3R5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
Imdkb20vR2RvbSR7Zm5fc2lnX3R5cGV9UHJpdmF0ZS5oIn0gPSAxOworICAgICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2lnX3R5cGV9
LmgifSA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAjIHNraXAg
Y3VzdG9tIGZ1bmN0aW9ucyBmb3Igbm93CisgICAgIyBidXQgc2tpcCBmcm9tIGhlcmUgdG8gYWxs
b3cgc29tZSBoZWFkZXJzIHRvIGJlIGNyZWF0ZWQKKyAgICAjIGZvciBhIHN1Y2Nlc3NmdWwgY29t
cGlsZS4KKyAgICBpZiAoJGlzX2N1c3RvbV9mbiAmJgorICAgICAgICAkZnVuY3Rpb25OYW1lIG5l
ICJnZG9tX25vZGVfcmVtb3ZlX2NoaWxkIiAmJiAKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAi
Z2RvbV9ub2RlX2luc2VydF9iZWZvcmUiICYmCisgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdk
b21fbm9kZV9yZXBsYWNlX2NoaWxkIiAmJgorICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9t
X25vZGVfYXBwZW5kX2NoaWxkIikgeworICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogVE9ETzog
Y3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgcHVzaChA
Y0JvZHksICJcbi8qIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxu
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBteSAkX3JldHVyblR5cGUgPSAkcmV0
dXJuVHlwZTsKKyAgICBteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kZm5fc2lnX3R5cGU7CisgICAg
aWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorICAgICAgICAkZnVuY3Rpb25OYW1l
IGVxICdnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2NvbnRleHQnKSB7CisgICAgICAgIHJl
dHVybjsgICAgICAgIyB0b28gaW52b2x2ZWQgZm9yIG5vdy4gIHNraXAgaXQuCisgICAgICAgICMg
bXVzdCBjb252ZXJ0IHRvIGEgRE9NT2JqZWN0IChUT0RPOiBicm93c2UgSlMgY29kZSB0byBmaW5k
IG91dCBob3cpCisgICAgICAgICMgYmV0dGVyOiB3b3JrIG91dCBob3cgdG8gY3JlYXRlIGEgR0RP
TURvbU9iamVjdAorICAgIH0KKworICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgJ0RPTU9iamVjdCcg
JiYKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAnZ2RvbV9kb2N1bWVudF9nZXRfY3NzX2NhbnZh
c19jb250ZXh0JykgeworICAgICAgICByZXR1cm47ICAgICAgICMgdG9vIGludm9sdmVkIGZvciBu
b3cuICBza2lwIGl0LgorICAgICAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9E
TzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQorICAgICAgICAjIGJldHRlcjogd29y
ayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKyAgICB9CisKKyAgICBpZihAeyRm
dW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIs
IEdFcnJvciAqKmVycm9yIjsKKyAgICB9CisKKyAgICBwdXNoKEBoQm9keSwgIldFQktJVF9BUEkg
JF9yZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworICAg
IHB1c2goQGNCb2R5LCAiJF9yZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcp
XG57XG4iKTsKKworICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgIyBU
T0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0CisgICAgICAgIHB1c2goQGNCb2R5LCAi
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAwKTtcbiIpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopO1xuIik7Cisg
ICAgfQorCisgICAgIyBUaGUgV2ViS2l0Ojpjb3JlIGltcGxlbWVudGF0aW9ucyBjaGVjayBmb3Ig
TlVMTCBhbHJlYWR5OyBubyBuZWVkIHRvCisgICAgIyBkdXBsaWNhdGUgZWZmb3J0LgorICAgIHB1
c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHRoaXopO1xuIik7CisKKyAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24t
PnBhcmFtZXRlcnN9KSB7CisgICAgICAgIG15ICRwYXJhbU5hbWUgPSBkZWNhbWVsaXplKCRwYXJh
bS0+bmFtZSk7CisgICAgICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAg
ICAgIG15ICRwYXJhbVR5cGVJc1ByaW1pdGl2ZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2
ZVR5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElz
R0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgaWYgKCEkcGFyYW1UeXBlSXNQ
cmltaXRpdmUpIHsKKyAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAg
ICAgICAgICAgICAgICAjIFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAg
ICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoJHBhcmFt
TmFtZSwgMCk7XG4iKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiIjsK
KyAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAg
ICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgIG15ICRwYXJhbVR5
cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgbXkgJHBhcmFtTmFtZSA9IGRl
Y2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUg
PSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICMgSEFDSyEKKyAgICAg
ICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiAmJgor
ICAgICAgICAkcGFyYW0tPm5hbWUgZXEgInVybCIpIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5
LCAiICAgIFdlYkNvcmU6OktVUkwgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6S1VSTCgkcGFy
YW1OYW1lKTtcbiIpOworICAgICAgICB9IGVsc2lmICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJp
bmciKSB7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2df
JHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCgkcGFyYW1OYW1lKTtcbiIp
OworICAgICAgICB9CisgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKyAgICAgICAg
ICAgIG15ICRwYXJhbV9nZG9tX2ZuID0gImdkb21fIiAuIGRlY2FtZWxpemUoJHBhcmFtSURMVHlw
ZSk7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlw
ZX0gKiBfZ18ke3BhcmFtTmFtZX0gPSBXZWJLaXQ6OmNvcmUoJHBhcmFtTmFtZSk7XG4iKTsKKyAg
ICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKyAgICAgICAgICAgICAgICAj
IFRPRE86IHJldHVybiBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICAgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoX2dfJHtwYXJhbU5hbWV9LCAwKTtc
biIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwg
IiAgICBnX3JldHVybl9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0pO1xuIik7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgJHJldHVyblBhcmFtTmFtZSA9ICJfZ18iLiRwYXJhbU5h
bWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmV0dXJuIn07CisgICAgfQorCisg
ICAgbXkgJGFzc2lnbiA9ICIiOworICAgIG15ICRhc3NpZ25fcHJlID0gIiI7CisgICAgbXkgJGFz
c2lnbl9wb3N0ID0gIiI7CisgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1
c3RvbV9mbikgeworCisgICAgICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisgICAgICAgICAg
ICAkYXNzaWduID0gIlBhc3NSZWZQdHI8V2ViQ29yZTo6JHtmbl9zaWdfdHlwZX0+IGdfcmVzID0g
IjsKKyAgICAgICAgICAgICRhc3NpZ25fcHJlID0gIldURjo6Z2V0UHRyKCI7CisgICAgICAgICAg
ICAkYXNzaWduX3Bvc3QgPSAiKSI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkYXNz
aWduID0gIiR7X3JldHVyblR5cGV9IHJlcyA9ICI7CisgICAgICAgIH0KKyAgICB9CisgICAgbXkg
JGV4Y2VwdGlvbnMgPSAiIjsKKyAgICBpZiAoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9
KSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMg
PSAwO1xuIik7CisgICAgICAgIGlmICgke2NhbGxfaW1wbF9wYXJhbXN9IG5lICIiKSB7CisgICAg
ICAgICAgICAkZXhjZXB0aW9ucyA9ICIsIGVjIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICRleGNlcHRpb25zID0gImVjIjsKKyAgICAgICAgfQorICAgIH0KKworICAgICMgV2UgbmVl
ZCB0byBzcGVjaWFsLWNhc2UgdGhlc2UgTm9kZSBtZXRob2RzIGJlY2F1c2UgdGhlaXIgQysrIHNp
Z25hdHVyZSBpcyBkaWZmZXJlbnQKKyAgICAjIGZyb20gd2hhdCB3ZSdkIGV4cGVjdCBnaXZlbiB0
aGVpciBJREwgZGVzY3JpcHRpb247IHNlZSBOb2RlLmguCisgICAgaWYgKCRmdW5jdGlvbk5hbWUg
ZXEgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEg
Imdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJn
ZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgfHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2Rv
bV9ub2RlX3JlbW92ZV9jaGlsZCIpIHsKKyAgICAgICAgbXkgJGN1c3RvbV9nZG9tX25vZGVfYXBw
ZW5kX2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0tPiR7Zm5fc2lnX25hbWV9
KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KTsKKyAgICBpZiAob2spCisgICAgewor
ICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke19yZXR1cm5UeXBlfT4o
V2ViS2l0Ojp0b0dET00oJHJldHVyblBhcmFtTmFtZSkpOworICAgICAgICByZXR1cm4gcmVzOwor
ICAgIH0KK0VPRgorICAgICAgICBwdXNoKEBjQm9keSwgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5k
X2NoaWxkKTsKKyAgICAKKyAgICAgICAgaWYoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9
KSB7CisgICAgICAgICAgICBteSAkZXhjZXB0aW9uX2hhbmRsaW5nID0gPDwgIkVPRiI7CisKKyAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjOworICAgIFdlYkNvcmU6
OmdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihlYywgZWNkZXNjKTsKKyAgICBnX3NldF9lcnJv
cl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJHRE9NIiksIGVjZGVzYy5jb2Rl
LCBlY2Rlc2MubmFtZSk7CitFT0YKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAkZXhjZXB0aW9u
X2hhbmRsaW5nKTsKKyAgICAgICAgfQorICAgICAgICBwdXNoKEBjQm9keSwgInJldHVybiBOVUxM
OyIpOworICAgICAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIgJiYKKyAgICAgICAgICRmdW5j
dGlvbk5hbWUgbmUgJ2dkb21fZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKyAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgLyogVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0IChpdGVt
LT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpOyovXG4i
ICk7CisKKyAgICB9IGVsc2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAg
ICAgcHVzaChAY0JvZHksICIgICAgJHthc3NpZ259Z2RvbV9nc3RyaW5nX2NvbnZlcnQoaXRlbS0+
JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTtcbiIgKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn0ke2Fzc2ln
bl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9u
c30ke2Fzc2lnbl9wb3N0fSk7XG4iICk7CisgICAgICAgIAorICAgICAgICBpZihAeyRmdW5jdGlv
bi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgIG15ICRleGNlcHRpb25faGFuZGxp
bmcgPSA8PCAiRU9GIjsKKyAgICBpZihlYykgeworICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlRGVzY3JpcHRpb24gZWNkZXNjOworICAgICAgICBXZWJDb3JlOjpnZXRFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24oZWMsIGVjZGVzYyk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJy
b3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIkdET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1l
KTsKKyAgICB9CitFT0YKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAkZXhjZXB0aW9uX2hhbmRs
aW5nKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYm
ICEkaXNfY3VzdG9tX2ZuKSB7CisKKyAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRE9NT2Jq
ZWN0IikgeworICAgICAgICAgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwk
e19yZXR1cm5UeXBlfT4oV2ViS2l0Ojp0b0dET00oZ19yZXMuZ2V0KCkpKTtcbiIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVj
dCIpIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBOVUxMOyAvKiBUT0RP
OiByZXR1cm4gY2FudmFzIG9iamVjdCAqL1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICByZXR1cm4gcmVzO1xuIik7CisgICAgICAgIH0KKyAgICB9
CisgICAgcHVzaChAY0JvZHksICJcbiIpOworCisgICAgcHVzaChAY0JvZHksICJ9XG5cbiIpOwor
fQorCisjIEdlbmVyYXRlIGhlYWRlciBhbmQgaW1wbAorc3ViIEdlbmVyYXRlIHsKKyAgICBteSAk
b2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICBteSAkaGFz
TGVnYWN5UGFyZW50ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFy
ZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAw
OworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50
OworICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05hbWUoJGRhdGFOb2Rl
KTsKKyAgICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJlbnRHT2JqVHlwZSgkZGF0YU5vZGUp
OworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRjbGFz
c05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOworICAgIG15ICRoZHJOYW1lID0g
R2V0SGRyTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgCisgICAgIyBBZGQgdGhlIGRlZmF1bHQg
aW1wbCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNl
VGVtcGxhdGUpOworICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNsdWRl
c3sid2Via2l0bWFyc2hhbC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7Imdkb21iaW5kaW5n
LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8kaGRyTmFtZS5oIn0gPSAxOworICAg
ICRpbXBsSW5jbHVkZXN7Imdkb20vJHtoZHJOYW1lfVByaXZhdGUuaCJ9ID0gMTsKKyAgICAkaW1w
bEluY2x1ZGVzeyJnZG9tL2dzdHJpbmdjb252ZXJ0LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRl
c3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkV4Y2VwdGlv
bkNvZGUuaCJ9ID0gMTsKKyAgICAKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9ICJET01P
YmplY3QiOworICAgIG15ICRwYXJlbnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgIG15
ICRwYXJlbnRIZHJOYW1lID0gIkdkb21ET01PYmplY3QiOworICAgIGlmICgkcGFyZW50Q2xhc3NO
YW1lIG5lICJHT2JqZWN0IikgeworICAgICAgICAkcGFyZW50SW50ZXJmYWNlTmFtZSA9IHN1YnN0
cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAgaWYgKCRwYXJlbnRJbnRlcmZhY2VOYW1l
IG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9N
Ii5zdWJzdHIoJHBhcmVudENsYXNzTmFtZSwgNCk7CisgICAgICAgICAgICAkcGFyZW50SGRyTmFt
ZSA9IEdldEhkck5hbWUoJHBhcmVudEludGVyZmFjZU5hbWUpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTU9iamVjdCI7CisgICAgICAgIH0K
KyAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgifSA9IDE7Cisg
ICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20vJHtwYXJlbnRIZHJOYW1lfVByaXZhdGUuaCJ9ID0g
MTsKKyAgICAgICAgJGhkckluY2x1ZGVzeyJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCJ9ID0gMTsK
KyAgICB9CisKKyAgICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQ
T0RUeXBlIGZsYWcKKyAgICBteSAkcG9kVHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlBPRFR5cGUifTsKKyAgICBteSAkcGFzc1R5cGUgPSAkcG9kVHlwZSA/ICJKU1NWR1BP
RFR5cGVXcmFwcGVyPCRwb2RUeXBlPioiIDogIiRpbnRlcmZhY2VOYW1lKiI7CisKKyAgICBpZiAo
JHtpbnRlcmZhY2VOYW1lfSBlcSAiRE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVUb0pTIn0pCisgICAgICAgIGFuZCAh
VXNlc01hbnVhbFRvSlNJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAg
bXkgJGNvbnZlcnRlciA9IDw8ICJFT0YiOworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitncG9p
bnRlciB0b0dET00oV2ViQ29yZTo6JHBhc3NUeXBlIG9iaikKK3sKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChvYmogIT0gTlVMTCwgTlVMTCk7CisKKyAgICBpZiAoZ3BvaW50ZXIgcmV0ID0gR0RP
TU9iamVjdENhY2hlOjpnZXRET01PYmplY3Qob2JqKSkKKyAgICAgICAgcmV0dXJuIHJldDsKKwor
ICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChvYmosIFdlYktpdDo6d3Jh
cCR7aW50ZXJmYWNlTmFtZX0ob2JqKSk7Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworRU9GCisKKyAgICAgICAgcHVzaChAY0JvZHksICRjb252ZXJ0ZXIpOworICAgIH0KKworICAg
IG15ICRpbXBsQ29udGVudCA9ICIiOworCisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIg
e1xuXG4iKTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQorICAgIEBo
UHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgI3B1c2goQGhQcmVm
aXgsICJcbiIpOworICAgICAKKyAgICAjIEhlYWRlciBndWFyZAorICAgIG15ICRndWFyZCA9ICJf
XyIgLiAkY2xhc3NOYW1lIC4gIl9IX18iOworCisgICAgbXkgJGNsc0NhcHMgPSBzdWJzdHIoQ2xz
VG9HT2JqVHlwZSgkY2xhc3NOYW1lKSwgNSk7CisgICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9ICJn
ZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKTsKKyAgICAjbXkgJHBhcmVudENsc0Nh
cHMgPSAiR0RPTV8iIC4gQ2xzVG9HT2JqVHlwZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7CisKKyAg
ICBAaFByZWZpeEd1YXJkID0gPDwgIkVPRiI7CisjaWZuZGVmICRndWFyZAorI2RlZmluZSAkZ3Vh
cmQKK0VPRgorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitHX0JFR0lOX0RFQ0xTCisK
K0VPRgorCisgICAgcHVzaChAaEJvZHlQcmUsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENv
bnRlbnQgPSA8PCAiRU9GIjsKKworI2RlZmluZSBHRE9NX1RZUEVfJHtjbHNDYXBzfSAgICAgICAg
ICAgICgke2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0Nh
cHN9KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdE
T01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX0pKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fw
c31fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgR0RP
TV9UWVBFXyR7Y2xzQ2Fwc30sICRjbGFzc05hbWUpQ2xhc3MpCisjZGVmaW5lIEdET01fSVNfJHtj
bHNDYXBzfShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBH
RE9NX1RZUEVfJHtjbHNDYXBzfSkpCisjZGVmaW5lIEdET01fSVNfJHtjbHNDYXBzfV9DTEFTUyhr
bGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfJHtjbHND
YXBzfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9J
TlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBHRE9NX1RZUEVfJHtjbHNDYXBzfSwgJHtjbGFzc05h
bWV9Q2xhc3MpKQorCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSB7CisgICAgJHtwYXJlbnRDbGFzc05h
bWV9IHBhcmVudF9pbnN0YW5jZTsKK307CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3Mgewor
ICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCisk
e2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOworCitFT0YKKworICAgIHB1c2goQGhC
b2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKK0df
QkVHSU5fREVDTFMKKworR19ERUZJTkVfVFlQRSgke2NsYXNzTmFtZX0sICR7bGNhc2VfaWZhY2Vu
YW1lfSwgJHtwYXJlbnRHT2JqVHlwZX0pOworCitHX0VORF9ERUNMUworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworJHtjbGFzc05hbWV9ICoKK3dyYXAke2ludGVyZmFjZU5hbWV9KFdlYkNvcmU6OiR7
aW50ZXJmYWNlTmFtZX0gKmNvcmVPYmplY3QpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
Y29yZU9iamVjdCAhPSBOVUxMLCBOVUxMKTsKKyAgICAKKyAgICAke2NsYXNzTmFtZX0gKndyYXBw
ZXIgPSBHRE9NXyR7Y2xzQ2Fwc30oZ19vYmplY3RfbmV3KEdET01fVFlQRV8ke2Nsc0NhcHN9LCBO
VUxMKSk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwod3JhcHBlciAhPSBOVUxMLCBOVUxMKTsK
KyAgICAKKyAgICAvLyBXZSBjYWxsIHJlZigpIHJhdGhlciB0aGFuIHVzaW5nIGEgQysrIHNtYXJ0
IHBvaW50ZXIgYmVjYXVzZSB3ZSBjYW4ndCBzdG9yZSBhIEMrKyBvYmplY3QKKyAgICAvLyBpbiBh
IEMtYWxsb2NhdGVkIEdPYmplY3Qgc3RydWN0dXJlLiAgU2VlIHRoZSBmaW5hbGl6ZSgpIGNvZGUg
Zm9yIHRoZQorICAgIC8vIG1hdGNoaW5nIGRlcmVmKCkuCisgICAgY29yZU9iamVjdC0+cmVmKCk7
CisgICAgR0RPTV9ET01fT0JKRUNUKHdyYXBwZXIpLT5jb3JlT2JqZWN0ID0gY29yZU9iamVjdDsK
KworICAgIHJldHVybiB3cmFwcGVyOworfQorCitXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICoK
K2NvcmUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KHJlcXVlc3QgIT0gTlVMTCwgTlVMTCk7CisgICAgCisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfSAqY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0g
Kj4oR0RPTV9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KTsKKyAgICBnX2Fzc2VydChj
b3JlT2JqZWN0ICE9IE5VTEwpOworICAgIAorICAgIHJldHVybiBjb3JlT2JqZWN0OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENv
bnRlbnQpOworCisgICAgIyBQcm9wZXJ0aWVzCisgICAgbXkgJGZ1bmN0aW9uTmFtZVByZWZpeCA9
ICRsY2FzZV9pZmFjZW5hbWU7IAorICBTS0lQUFJPUDogZm9yZWFjaCBteSAkYXR0cmlidXRlIChA
eyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgaWYgKHNraXBBdHRyaWJ1dGUoJGF0
dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgIG5leHQgU0tJUFBST1A7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7
CisgICAgICAgIGFkZFByb3BJbmNIZHIoJHByb3BfdHlwZSk7CisgICAgfQorCisgICAgIyBQcm9w
ZXJ0aWVzCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitHX0JFR0lOX0RFQ0xTCisKK2Vu
dW0geworICAgIFBST1BfMCwKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50
KTsKKworICAgIG15IEB0eHRfaW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfc2V0X3By
b3BzID0gKCk7CisgICAgbXkgQHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAgIG15ICRwcml2X2Zu
ID0gR2V0UHJpdkZuKCRpbnRlcmZhY2VOYW1lLCAke2xjYXNlX2lmYWNlbmFtZX0sICJnc2VsZiIs
ICJzZWxmIik7CisKKyAgICBteSAkdHh0X2dldF9wcm9wID0gPDwgIkVPRiI7CitzdGF0aWMgdm9p
ZCAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0eV9mbihHT2JqZWN0ICogb2JqZWN0LCBn
dWludCBwcm9wX2lkLAorICAgICAgICAgICAgICAgICAgICAgR1ZhbHVlICogdmFsdWUsCisgICAg
ICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICogcHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9
ICpzZWxmID0gR0RPTV8ke2Nsc0NhcHN9KG9iamVjdCk7CisgICAgJHByaXZfZm4KKyAgICBzd2l0
Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3By
b3ApOworCisgICAgbXkgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHts
Y2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1l
fSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dp
dGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9w
cm9wKTsKKyAgICAjIEl0ZXJhdGUgb3ZlciB0aGUgaW50ZXJmYWNlIGF0dHJpYnV0ZXMgYW5kIGdl
bmVyYXRlIGEgcHJvcGVydHkgZm9yCisgICAgIyBlYWNoIG9uZSBvZiB0aGVtLgorICBTS0lQRU5V
TToKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkg
eworICAgICAgICBpZiAoc2tpcEF0dHJpYnV0ZSgkYXR0cmlidXRlKSkgeworICAgICAgICAgICAg
bmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRwcm9wX25hbWUgPSAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgIG15ICRzZXRwcm9wX25hbWVfZm4gPSAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkgJGdldHBy
b3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRwcm9wX25hbWUpOworCisg
ICAgICAgIG15ICRwcm9wTmFtZSA9IGRlY2FtZWxpemUoJHByb3BfbmFtZSk7CisgICAgICAgIG15
ICRwcm9wQ2FwcyA9IHVjKCRwcm9wTmFtZSk7CisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHBy
b3BfdHlwZSk7CisgICAgICAgIG15ICR7cHJvcEVudW19ID0gIlBST1BfJHtwcm9wQ2Fwc30iOwor
ICAgICAgICBteSAke3Byb3BfZ3R5cGV9ID0gZGVjYW1lbGl6ZSgkcHJvcF90eXBlKTsKKyAgICAg
ICAgaWYgKCRwcm9wX2d0eXBlIGVxICJldmVudF90YXJnZXQiKSB7CisgICAgICAgICAgICAkcHJv
cF9ndHlwZSA9ICJldmVudF90YXJnZXRfbm9kZSI7CisgICAgICAgIH0KKyAgICAgICAgbXkgJHtw
cm9wR1R5cGV9ID0gdWMoJHByb3BfZ3R5cGUpOworICAgICAgICBteSAkbGNhc2VfZ3R5cGVuYW1l
ID0gImdkb21fIiAuICRwcm9wX2d0eXBlOworCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgIiAg
ICAke3Byb3BFbnVtfSxcbiIpOworCisgICAgICAgIG15ICRndHlwZSA9IEdldFByb3BHVHlwZSgk
cHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEQUJMRSI7
CisgICAgICAgIG15ICR3cml0ZWFibGUgPSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkv
OworICAgICAgICBteSAkY29uc3QgPSAicmVhZC1vbmx5ICI7CisgICAgICAgIGlmICgkd3JpdGVh
YmxlICYmICRjdXN0b20pIHsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLW9ubHkgKGR1ZSB0
byBjdXN0b20gZnVuY3Rpb25zIG5lZWRlZCBpbiBnZG9td2Via2l0KSI7CisgICAgICAgICAgICBu
ZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICEkY3Vz
dG9tKSB7CisgICAgICAgICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURXUklURSI7Cisg
ICAgICAgICAgICAkY29uc3QgPSAicmVhZC13cml0ZSAiOworICAgICAgICB9CisKKyAgICAgICAg
bXkgJF9ndHlwZSA9ICRndHlwZTsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAidXNob3J0Iikgewor
ICAgICAgICAgICAgJF9ndHlwZSA9ICJ1aW50IjsgIyB5dWsuCisgICAgICAgIH0KKyAgICAgICAg
JG5pY2sgPSBkZWNhbWVsaXplKCIke2ludGVyZmFjZU5hbWV9XyR7cHJvcE5hbWV9Iik7CisgICAg
ICAgICRsb25nID0gIiR7Y29uc3R9ICR7dHlwZX0gJHtpbnRlcmZhY2VOYW1lfS4ke3Byb3BOYW1l
fSI7CisgICAgICAgIG15ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ19rbGFzcywgJHtwcm9wRW51bX0sCisgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfJHtfZ3R5cGV9ICgiJHtwcm9wTmFtZX0iLCAvKiBuYW1lICovCisg
ICAgICAgICAgICAgICAgIiRuaWNrIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAg
ICAgICAgICAiJGxvbmciLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9j
IHN0dWZmIGhlcmUgKi8KK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4
dF9pbnN0YWxsX3Byb3ApOworICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9ICIvKiBUT0RPISAk
Z3R5cGUgKi9cbiI7CisKKyAgICAgICAgaWYgKCR3cml0ZWFibGUpIHsKKyAgICAgICAgICAgIG15
ICRvayA9IDA7CisgICAgICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworCisgICAgICAgICAg
ICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4g
PSAiV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCI7CisgICAgICAgICAgICAgICAgJG9rID0gMTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4iKSB7
CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsg
IyBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQg
eWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAgICAgICAk
b2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgIyBUT0RP
OiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0Cisg
ICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0g
MTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgIyBUT0RPOiBza2lw
ICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAg
ICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgICAgIGlmICgke2ludGVyZmFj
ZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICMgVE9ETzogc2tpcCAicHV0RGlyZWN0IiBzdHVmZiAt
IG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAgICAgICAgICAkb2sgPSAx
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWlu
dCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsK
KyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsKKyAgICAgICAgICAgICAg
ICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIyBUT0RPIC0gc2tpcCBMb2Nh
dGlvbgorICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJMb2NhdGlvbiIpIHsKKyAg
ICAgICAgICAgICAgICAkb2sgPSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAo
JG9rKSB7CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICBjYXNlICR7
cHJvcEVudW19OlxuICAgIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJv
cHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0
cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBpZigkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252
ZXJ0RnJvbVN0cmluZyJ9KSB7CisgICAgICAgICAgICAgICAgICAgICRjb252ZXJ0X2ZuID0gIldl
YkNvcmU6OlN0cmluZzo6bnVtYmVyIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgZ3NlbGYt
PnNldCR7c2V0cHJvcF9uYW1lX2ZufSgke2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRndHlwZSAo
dmFsdWUpKSIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwgZWMi
KSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIHB1
c2goQHR4dF9zZXRfcHJvcHMsICIpO1xuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRf
c2V0X3Byb3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICBjYXNlICR7cHJvcEVu
dW19OlxuICAgIHtcbiIpOworCisgICAgICAgIG15ICRleGNlcHRpb24gPSAiIjsKKyAgICAgICAg
aWYgKEB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICRleGNl
cHRpb24gPSAiZWMiOworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAg
IG15ICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRwb3N0X2NvbnZlcnRfZm4gPSAiIjsK
KyAgICAgICAgbXkgJGRvbmUgPSAwOworICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7
CisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3Rha2Vf
c3RyaW5nICh2YWx1ZSwgZ2RvbV9nc3RyaW5nX2NvbnZlcnQoZ3NlbGYtPiR7Z2V0cHJvcF9uYW1l
X2ZufSgke2V4Y2VwdGlvbn0pKSk7XG4iKTsKKyAgICAgICAgICAgICRkb25lID0gMTsKKyAgICAg
ICAgfQorICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICBt
eSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBlOworCisgICAgICAgICAgICAkdHh0X2dl
dF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5
cGV9PiBwdHIgPSBnc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSk7CisgICAg
ICAgIGdfdmFsdWVfc2V0X29iamVjdCAodmFsdWUsIFdlYktpdDo6dG9HRE9NKHB0ci5nZXQoKSkp
OworRU9GCisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsK
KworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBp
ZigkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0RnJv
bVN0cmluZyJ9KSB7CisgICAgICAgICAgICAjIFRPRE86IEFkZCBvdGhlciBjb252ZXJzaW9uIGZ1
bmN0aW9ucyBmb3IgZGlmZmVyZW50IHR5cGVzLiAgQ3VycmVudAorICAgICAgICAgICAgIyBJRExz
IG9ubHkgbGlzdCBsb25ncy4KKyAgICAgICAgICAgIGlmKCRndHlwZSBlcSAibG9uZyIpIHsKKyAg
ICAgICAgICAgICAgICAkY29udmVydF9mbiA9ICIiOworICAgICAgICAgICAgICAgICRwb3N0X2Nv
bnZlcnRfZm4gPSAiLnRvSW50KCkiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBkaWUgIkNhbid0IGNvbnZlcnQgdG8gdHlwZSAke2d0eXBlfS4iOworICAgICAgICAgICAg
fQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCEkZG9uZSkgeworICAgICAgICAgICAgcHVzaChA
dHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192YWx1ZV9zZXRfJF9ndHlwZSAodmFsdWUsICR7Y29u
dmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSkke3Bvc3RfY29u
dmVydF9mbn0pO1xuIik7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3Bz
LCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKworICAgICAgICAjIGlzIHRoaXMgX2VudGly
ZWx5XyBuZWNlc3Nhcnk/Pz8KKyAgICAgICAgIyBjYW4gaXQgYmUgZG9uZSB3aXRoIGdlbmVyaWMg
Z19wYXJhbV9zcGVjX2d0eXBlCisgICAgICAgICMgYW5kIGdldHRpbmcgYSBmZXcgdGhpbmdzLCBp
Z25vcmluZyB0aGUgbWluLW1heCBmb3IgZXhhbXBsZT8KKyAgICAgICAgaWYgKCRndHlwZSBlcSAi
aW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAg
ICAgICAgICAgICBHX01JTklOVCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdf
TUFYSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAq
LworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAg
ICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0Us
IC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0Iikg
eworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAg
ICAgICBHX01JTkZMT0FULCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhG
TE9BVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAg
ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5ET1VC
TEUsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWERPVUJMRSwgLyogbWF4
ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFs
bF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLwor
ICAgICAgICAgICAgICAgIEdfTUFYVUlOVDY0LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAw
LCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
dWxvbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAg
ICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVM
T05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLwor
RU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5MT05HLCAg
ICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhMT05HLCAvKiBtYXggKi8KKyAg
ICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxz
aWYgKCRndHlwZSBlcSAidWludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0g
PDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAg
ICAgICAgIEdfTUFYVUlOVCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8q
IGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsK
KyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAg
ICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDE2LCAvKiBt
YXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3Rh
bGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdfTUlOSU5UOCwgICAgICAgIC8q
IG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5UOCwgLyogbWF4ICovCisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0Yi
OworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBH
X01BWFVJTlQ4LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwg
LyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0Iikg
eworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAg
ICAgICBHRE9NX1RZUEVfJHtwcm9wR1R5cGV9LCAvKiBnb2JqZWN0IHR5cGUgKi8KK0VPRgorICAg
ICAgICB9CisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJv
cCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAg
ICAgKEdQYXJhbUZsYWdzKSR7Z3BhcmFtZmxhZ30pKTsKKworRU9GCisgICAgICAgIHB1c2goQHR4
dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgfQorCisgICAgcHVzaChA
Y0JvZHlQcml2LCAifTtcblxuIik7CisKKworICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsK
KyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQo
b2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KK0VPRgor
ICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgJHR4dF9zZXRf
cHJvcCA9IDw8ICJFT0YiOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorfQorRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7
CisKKyAgICBteSAkdHh0X3NldF9nZXRfcHJvcHMgPSA8PCAiRU9GIjsKKyAgICBjYXNlIFBST1Bf
QUdFOgorICAgICAgICBzZWxmLT5hZ2UgPSBnX3ZhbHVlX2dldF9pbnQgKHZhbHVlKTsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIFBST1BfQUdFOgorICAgICAgICBnX3ZhbHVlX3NldF9pbnQo
dmFsdWUsIHNlbGYtPmFnZSk7CisgICAgICAgIGJyZWFrOworCisgICAgICAgICsgICBnX3ZhbHVl
X2luaXQoJnBhcmFtc1swXSwgR19UWVBFX0ZST01fSU5TVEFOQ0Uob2JqZWN0KSk7CisgICAgICAg
ICsgICBnX3ZhbHVlX3NldF9pbnN0YW5jZSgmcGFyYW1zWzBdLCAoZ3BvaW50ZXIpb2JqZWN0KTsK
KworRU9GCisKKyAgICAjIFRPRE86IHdvcmsgb3V0IGlmIGl0J3MgYXBwcm9wcmlhdGUgdG8gc3Bs
aXQgdGhpcyBpbnRvIG1hbnkgZGlmZmVyZW50CisgICAgIyBzaWduYWxzIGUuZy4gImNsaWNrIiBl
dGMuCisgICAgbXkgJHR4dF9pbnN0YWxsX3NpZ25hbHMgPSAiIjsKKworICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemUo
R09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01PYmplY3QqIGRvbV9vYmplY3QgPSBHRE9N
X0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICAKKyAgICBpZihkb21fb2JqZWN0ICE9IE5VTEwpCisg
ICAgeworICAgICAgICBpZihkb21fb2JqZWN0LT5jb3JlT2JqZWN0ICE9IE5VTEwpCisgICAgICAg
IHsKKyAgICAgICAgICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKmNvcmVPYmplY3QgPSBz
dGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICo+KGRvbV9vYmplY3QtPmNvcmVP
YmplY3QpOworICAgICAgICAgICAgY29yZU9iamVjdC0+ZGVyZWYoKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgZG9tX29iamVjdC0+Y29yZU9iamVjdCA9IE5VTEw7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIFdlYktpdDo6R0RPTU9iamVjdENhY2hlOjpmb3JnZXRET01PYmplY3QoY29y
ZU9iamVjdCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBHX09CSkVDVF9DTEFTUygke2xjYXNl
X2lmYWNlbmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworQHR4dF9z
ZXRfcHJvcHMKKworQHR4dF9nZXRfcHJvcHMKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5h
bWV9X2NsYXNzX2luaXQoJHtjbGFzc05hbWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBH
T2JqZWN0Q2xhc3MgKmdfa2xhc3MgPSBHX09CSkVDVF9DTEFTUyAocmVxdWVzdENsYXNzKTsKKyAg
ICBnX2tsYXNzLT5maW5hbGl6ZSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZTsKKyAgICBn
X2tsYXNzLT5zZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9m
bjsKKyAgICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9w
cm9wZXJ0eV9mbjsKKworQHR4dF9pbnN0YWxsX3Byb3BzCisKKyR0eHRfaW5zdGFsbF9zaWduYWxz
Cit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9pbml0KCR7Y2xhc3NOYW1lfSog
cmVxdWVzdCkKK3sKK30KKworRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRlbnQp
OworCisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tJHtpbnRlcmZhY2VOYW1lfVByaXZhdGUu
aCJ9ID0gMTsKKworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsK
KyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb21ET01PYmplY3RQcml2YXRlLmgifSA9IDE7CisK
KyAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAg
ICAgICAgJG9iamVjdC0+R2VuZXJhdGVGdW5jdGlvbigkaW50ZXJmYWNlTmFtZSwgJGZ1bmN0aW9u
LCAiIik7CisgICAgfQorCisgICAgVE9QOgorICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHsk
ZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIGlmIChza2lwQXR0cmlidXRlKCRhdHRy
aWJ1dGUpKSB7CisgICAgICAgICAgICBuZXh0IFRPUDsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSBlcSAidHlwZSIKKyAgICAgICAg
ICAgICMgVGhpcyB3aWxsIGNvbmZsaWN0IHdpdGggdGhlIGdldF90eXBlKCkgZnVuY3Rpb24gd2Ug
ZGVmaW5lIHRvIHJldHVybiBhIEdUeXBlCisgICAgICAgICAgICAjIGFjY29yZGluZyB0byBHT2Jq
ZWN0IGNvbnZlbnRpb25zLiAgU2tpcCB0aGlzIGZvciBub3cuCisgICAgICAgICAgICB8fCAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgIlVSTCIgICAgICMgVE9ETzogaGFuZGxlIHRoaXMK
KyAgICAgICAgICAgIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNvbnZlcnRGcm9tU3RyaW5nIn0gICAgIyBUT0RPOiBoYW5kbGUgdGhpcworICAgICAgICAg
ICAgKSB7CisgICAgICAgICAgICBuZXh0IFRPUDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisg
ICAgICAgIG15ICRhdHRuYW1lX3VwcGVyID0gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICAgICAgbXkgJGdldG5hbWUgPSAiZ2V0JHth
dHRuYW1lX3VwcGVyfSI7CisgICAgICAgIG15ICRzZXRuYW1lID0gInNldCR7YXR0bmFtZV91cHBl
cn0iOworICAgICAgICBpZiAoQ2xhc3NIYXNGdW5jdGlvbigkZGF0YU5vZGUsICRnZXRuYW1lKSB8
fCBDbGFzc0hhc0Z1bmN0aW9uKCRkYXRhTm9kZSwgJHNldG5hbWUpKSB7CisgICAgICAgICAgICAj
IFZlcnkgb2NjYXNpb25hbGx5IGFuIElETCBmaWxlIGRlZmluZXMgZ2V0dGVyL3NldHRlciBmdW5j
dGlvbnMgZm9yIG9uZSBvZiBpdHMKKyAgICAgICAgICAgICMgYXR0cmlidXRlczsgaW4gdGhpcyBj
YXNlIHdlIGRvbid0IG5lZWQgdG8gYXV0b2dlbmVyYXRlIHRoZSBnZXR0ZXIvc2V0dGVyLgorICAg
ICAgICAgICAgbmV4dCBUT1A7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICMgR2VuZXJh
dGUgYW4gYXR0cmlidXRlIGdldHRlci4gIEZvciBhbiBhdHRyaWJ1dGUgImZvbyIsIHRoaXMgaXMg
YSBmdW5jdGlvbiBuYW1lZAorICAgICAgICAjICJnZXRfZm9vIiB3aGljaCBjYWxscyBhIERPTSBj
bGFzcyBtZXRob2QgbmFtZWQgZm9vKCkuCisgICAgICAgIG15ICRmdW5jdGlvbiA9IG5ldyBkb21G
dW5jdGlvbigpOworICAgICAgICAkZnVuY3Rpb24tPnNpZ25hdHVyZSgkYXR0cmlidXRlLT5zaWdu
YXR1cmUpOworICAgICAgICAkZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnMoJGF0dHJpYnV0ZS0+
Z2V0dGVyRXhjZXB0aW9ucyk7CisgICAgICAgICRvYmplY3QtPkdlbmVyYXRlRnVuY3Rpb24oJGlu
dGVyZmFjZU5hbWUsICRmdW5jdGlvbiwgImdldF8iKTsKKyAgICAgICAgCisgICAgICAgIGlmICgk
YXR0cmlidXRlLT50eXBlID1+IC9ecmVhZG9ubHkvIHx8CisgICAgICAgICAgICAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBsYWNlYWJsZSJ9ICAjIGNhbid0
IGhhbmRsZSB0aGlzIHlldAorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICBuZXh0IFRPUDsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgIyBHZW5lcmF0ZSBhbiBhdHRyaWJ1dGUgc2V0
dGVyLiAgRm9yIGFuIGF0dHJpYnV0ZSwgImZvbyIsIHRoaXMgaXMgYSBmdW5jdGlvbiBuYW1lZAor
ICAgICAgICAjICJzZXRfZm9vIiB3aGljaCBjYWxscyBhIERPTSBjbGFzcyBtZXRob2QgbmFtZWQg
c2V0Rm9vKCkuCisgICAgICAgICRmdW5jdGlvbiA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAg
ICAKKyAgICAgICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAg
ICAgICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUoJHNldG5hbWUpOworICAgICAgICAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSgidm9pZCIpOworICAgICAgICAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzKTsKKyAgICAgICAgCisgICAgICAgIG15ICRwYXJhbSA9IG5ldyBkb21TaWduYXR1
cmUoKTsKKyAgICAgICAgJHBhcmFtLT5uYW1lKCJ2YWx1ZSIpOworICAgICAgICAkcGFyYW0tPnR5
cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKKyAgICAgICAgbXkgJWF0dHJpYnV0ZXMg
PSAoKTsKKyAgICAgICAgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7Cisg
ICAgICAgIG15ICRhcnJheVJlZiA9ICRmdW5jdGlvbi0+cGFyYW1ldGVyczsKKyAgICAgICAgcHVz
aChAJGFycmF5UmVmLCAkcGFyYW0pOworICAgICAgICAKKyAgICAgICAgJGZ1bmN0aW9uLT5yYWlz
ZXNFeGNlcHRpb25zKCRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnMpOworICAgICAgICAKKyAg
ICAgICAgJG9iamVjdC0+R2VuZXJhdGVGdW5jdGlvbigkaW50ZXJmYWNlTmFtZSwgJGZ1bmN0aW9u
LCAiIik7CisgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xu
XG4iKTsKKyAgICBwdXNoKEBjQm9keVByaXYsICJHX0VORF9ERUNMU1xuXG4iKTsKKworICAgIHB1
c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5kaWYg
LyogJGd1YXJkICovXG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIKK3N1YiBXcml0ZURhdGEg
eworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkgPSBAXzsKKworICAgICMgV3JpdGUgcHVibGljIGhl
YWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgiOwor
ICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxl
ICRoZHJGTmFtZSI7CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVB
REVSIEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSBcImdkb20vZ2Rv
bWRlZmluZXMuaFwiXG4iOworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+XG4iOworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVz
Lmg+XG4iOworICAgIHByaW50IEhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29y
dCBrZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaGRy
SW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaEJv
ZHlQcmU7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhFQURFUik7CisK
KyAgICAjIFdyaXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBzb3VyY2VzCisgICAgbXkgJGltcGxGaWxl
TmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKElNUEwsICI+
JGltcGxGaWxlTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWUi
OworCisgICAgcHJpbnQgSU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJjb25maWcuaFwi
XG5cbiI7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD5cbiI7CisgICAg
cHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+XG4iOworICAgIHByaW50IElN
UEwgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaW1wbEluY2x1ZGVzKTsK
KyAgICBwcmludCBJTVBMICJcbiIgaWYga2V5cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmludCBJ
TVBMIEBjQm9keTsKKworICAgIHByaW50IElNUEwgIlxuIjsKKyAgICBwcmludCBJTVBMIEBjQm9k
eVByaXY7CisKKyAgICBjbG9zZShJTVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAg
ICAlaGRySW5jbHVkZXMgPSAoKTsKKyAgICBAaFByZWZpeCA9ICgpOworICAgIEBoQm9keSA9ICgp
OworCisgICAgQGNQcmVmaXggPSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2
ID0gKCk7Cit9CisKKzE7CkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDgxMykKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEyIEBACisyMDA5LTAyLTEwICBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxr
Y2wubmV0PgorICAgICAgICAgICAgTWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0b3Aub3JnPgor
ICAgICAgICAgICAgQWRhbSBEaW5nbGUgPGFkYW1AeW9yYmEub3JnPgorICAgICAgICAgICAgSmlt
IE5lbHNvbiA8amltQHlvcmJhLm9yZz4KKyAgICAgICAgCisgICAgICAgIEltcGxlbWVudGVkIEdU
SyBET00gYmluZGluZy4KKyAgICAgICAgCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisKIDIw
MDktMDItMDkgIENhbHZpbiBXYWx0b24gIDxjYWx2aW4ud2FsdG9uQGdtYWlsLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCkluZGV4OiBXZWJLaXRUb29scy9HTlVt
YWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQkocmV2
aXNpb24gNDA4MTMpCisrKyBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5
KQpAQCAtNyw4ICs3LDkgQEAKIAogIyBHdGtMYXVuY2hlcgogUHJvZ3JhbXNfR3RrTGF1bmNoZXJf
Q1BQRkxBR1MgPSBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncyBcCiAJLUkkKHNyY2Rp
cikvV2ViS2l0L2d0ayBcCi0JLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNy
Y2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZh
c2NyaXB0Y29yZV9jcHBmbGFncykKIApAQCAtMzAsOCArMzEsOSBAQAogUHJvZ3JhbXNfRHVtcFJl
bmRlclRyZWVfQ1BQRkxBR1MgPSBcCiAJLUkkKHNyY2RpcikvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUgXAogCS1JJChzcmNkaXIpL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ayBcCisJ
LUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncyBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBc
Ci0JLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0
ay93ZWJraXQgXAogCS1EVEVTVF9QTFVHSU5fRElSPVwiJHtzaGVsbCBwd2R9LyR7dG9wX2J1aWxk
ZGlyfS9UZXN0TmV0c2NhcGVQbHVnaW4vLmxpYnNcIiBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwK
IAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNDA4MTMpCisr
KyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw5IEBACisy
MDA5LTAyLTEwICBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0Pgor
CisgICAgICAgIE1pbm9yIGNoYW5nZXMgZm9yIEdUSyBET00gYmluZGluZy4KKyAgICAgICAgICAg
IAorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDA5LTAyLTA1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgI2luY2x1ZGUgZmls
ZSBvcmRlciwgcGVyIHJldmlldyBjb21tZW50cy4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27558</attachid>
            <date>2009-02-11 05:07:42 -0800</date>
            <delta_ts>2009-02-11 05:07:42 -0800</delta_ts>
            <desc>Vala bindings generator</desc>
            <filename>valabindings.tar.bz2</filename>
            <type>application/x-bzip</type>
            <size>9128</size>
            <attacher name="Adam Dingle">adam</attacher>
            
              <data encoding="base64">QlpoOTFBWSZTWTrjm98ANnz/jv+0AEBw////f///6v////AASAID4AABiGAufvl91PR7rEbDlFAV
QD6yAAUCgSHsNK7vs9ffexi+0yPfMe7eme7lJaM5mtbSs93gAD23a7te9MTI9LbZaQDyyK7V7tcu
y2DprbLJKttKKKYwSudDHue6eGrpza3czop9an3w+vDTQgBAgmRGFD1MTNJNNHpAAZADIPUPUaAA
BpkCE0IhE1Hqm0ZNJp6gDIAyAAAAAAAAkEkIITUzSmaRkeoDTamgAAAAaAAAAAEmpBI0NTUn6mFD
01TamjQBmk0aNMhoA0NqADQAADFJpqmTINDQPUyHqANAekAD1AAABkAAG1BJqQgImmIBGqeo9Mqf
pqT001AMhoaAAAAAAB1AHj4KrGMDIBEqBAhM4SGWAUxBJAIkqvBBEL4+P0fB+B8cvjj2a6hFCWgY
jnbTMC7bW7lbXymssETZERAWCESSRkINLIO55hD8TAUCG1B4vEZ9HsyQlPpObgtTeRYSMSlFYyBU
dT4EA8rLvlYTPm+pYL4oNh+8gczjn8Cec/P8VspkU/oyp+7n8TCXV6GT9lBGq2p672ksiau0aQn7
IQjTfPr7Nj1WyKLESKQWB5UDXsr0eovvedu/Onw/foNTnTjtpFKqIIBbmLj2D6P4cpGdQPz+37oE
A4vz8X0NujxRbD9fXRYmk4PPbshLxfPKeWOfjo0Xpm8MQaLu4lB4uIV2Yn5jFssl7y8t3qX6tZes
4J55vZMVqPEfS8FqyhkLQXOEYxl7LavghbTHW8HQXG1RufGDFk0kzFyuKs0qqMG2I0a+i4raVK4l
/MhnypPTONTbNb0ErWnBZW35WhlToylk89ROOM7BXXegHpAT3AAgSACFACWSQBIfeGSERnoD9AgH
yS0UUPlVKiYEpBEFWCsZMspirIqqz1EoYxVE+PAxy27fGsFyenb+TkUaGqfq6GvCizbiQHHZy6PP
Ea9zc0AySHTVGAHb04hkkgIkZlRRDDodGIKCdvIwIPM/l9x/J6Bzcq3y+9H0frkJH5vPmmOsoPe7
9eBr35vuQiYts41z8FPUOXBxKFalT4QbOdurRMW1m33hk7gOoz7EOJpU5qGRQfJ4F06i/VaxZoaW
q8tPZ7D4bk9ePj4d1num3i+GvFWaIIzKIcsztGT+M05HHj8Jn3CVUPrSFmE0YT4MCL7GYkUUSKJV
ShIoCojsb/J06eI8NOGo5GO6AWbAvWcfXff3ToG3mwx3ZgTE4obZVo2BGd/IEA5ECcHk2+k4xhul
5t4JI4zIA8gmWEi022fi6bQuXMmcYbCye1E6iB4ig2KMQgz3qJ5SEKNGpOcr9vbyuAKaU7XzIIBI
zCp3nXbjx+Bmd1d+90bz/M3wv437LJL0StZvD2POfoG6ziXroVWMJ8bzm93uv8aqVq83qeNZaMoh
U9urMkzT7uJ5P32mg+usUCi9vTKR7TdsjZS7m8HncWLB2YxSUFVtb3YfmtmxxK0BufE3NKi34bfH
r1NmyyaiFtxDLTh8yk/24QhcYgLGYNRND7iFxc+CtenivFOKKcr4W/eaUKhkU4dYInJt34c4aoWX
ekSPQ9HPrAiYlRY72ZjQu4pLXgPRgRH8YsMalsqtKME1kMsOM0oQILLCdu9ZIfQKIy4Uu/BWp1Z0
YHBEH2qmg5bRex5cR5yHnaADkC0/HU5a2pWQUpvivQocQ/K0/Cnhar0zE55jRhdnEbll1yQgSQCK
CAWULSYxjiG7T3axfXIyCdNxHT3ntG11rYeHqLOqgV3KFuhuRlYc52ZIo4oBESchy8AzyDwcluZ6
fWqe9Jf6Hp9+L8+J1XAqKqHpFoMznveOrFuKhdmCIwjcVfE73oF2w6EZzpMNRQhhOztdcMGM9KYt
i9xCDzjCqxBDRabYsrcLiJ3njz1IJ3YUQtXjF7thL9ygYIRIJMdc8fdnJlcTDalIZXZxezZGhWs2
1YLruu16LreHJwzLAald+iDjVOF5y7RMeI8S0SM8S9CJ/H7sTl7cd5d69ae7WS3HoZfJ8+iHUT6v
cjI6X3XsfcHtL8C0SeNDh09eXUHUy9RjvluzFO+UOPG9+BcgY4uRREa95/LjBHe17PGNlFY07nZi
sPTyIqLv4lyPTDzi6SDtiM+DI3mHheU8Zf6/ARLcVoQSiK9QZkij8FLp1yOlRllYRD0eamC1yFaR
M5fESRBgkIovBdOhh8vFYX1PZ+nXspvgriMRqnHCit9Pm+eY8UDAoZlc9dYrPuTYIwgfTQ7s1i0Y
H2Io+XO04N42tMjXhYcshWNifbtWO9b63KMJn1gPZzgc/GI78M44p9ayZ9joY8bUMKVh7ARD5lxB
jckcFkwBBQZRewi+TqtcuNbZjM6VTBUEZVzwcYC6QX01i7yM4QstXQanUgTMIaaYZ7SzfhYejOO+
vF2HNhE87fsynOacqZBZuT7zxoY5TWNpc5LbfJGod0ZpUSkFLugxRCh5mRBaYkrnMRJkGofciSRM
CS/zKfhp7pStJyWRw8CvmhCDEkl/quuCJ0qshyIg9mn4wMTAIf5sTItZEY6w3mMHQOcRs+szZAbE
8J/UlBepUjsfYQ5hdg8E8S+J4n6LuEheCCFXECnhp5rOJnDpEajsue6HFswxiKOfXxqd5y59yHVS
63O5gkrziKNt6Vo6OSL1Q4wKMI178DieMacOMy4RwCKtHUsbHRzQJk8P8YyJwPqEeXt0XQosDhcj
AReNY21HmXtIjGcQDop8fWqBjuS+SSGjWBMTwOHfAgU3EkukMRD1LuJHiXHsRtgRWyUAODhxbjJB
BLEIw4gPJvaM4xZk7xkIxKDsLLw1nokaWd61mRX5CYa9FkhhJyk+Qu9lNg/etT7YxsSOtGe45Tv6
4WmIHO3xp0DE4IoQSiByilQNpcKQvHZkmhM+JswW8AvbOLxTc29IjquoS1QJYc5nbrLe8wdvGd2O
3KKRyQolb1VxyfTp3wcBw4kQxIynKeNIyNTvVzcwuC5o2ah4iI5oNGTsonJRpMiN8HGYcb1cPjBb
OrxOOOI168VfO7ECbxzxeOKUTJjAxzVTpJqi3zyqO5xYm8cVNTyM7rL6dWNPjjdE7jeJJvgnMKcS
dvoQIBfl88SJfeOZ1xe88os2TpcCHECpHTbF5GxWRAFSDOohy1qzLfJLlBmc5XueS9+enmN9+h4M
EaRU7znzrGYdj1VZug0JUCIjXaniuOtXnmmwH0jPBnOBYrhc8z11xFHvPhBPw7kPJ6CceV7nk1vr
WaxYW0Fc4McurXu15ceNcceum1Ikza3rvE+JcdDa3kWNJfLiObG4eo0XgetULSWVKuRfHpmbhDDl
p8TnsLsVEAiNZ3C327jdoZ9Rh0i4k157mCCSjrCSCJYA8enyw4A1sLYecRHEBWMsS2OzhjCggV2X
e15bCW1J7DdlnuuoU8Nnqrxcd3xdC6iBximVN8WZd+MawWhDcVVTaYKyfYgkxTo62+VHIj2DkFPR
WvaBJdz2PkeLeo1waj3YQNBe6QhWkhuOhB2CyJZi9OwILeSXTlm2N8Xc98JINtePEcu0FxRPAqEO
SiBReBVXyt+b1ogfJgXgw+XSYfX/wIBr8SaesCA0E161K/mh8Q9VoqI0wPp6GW25SYk/Akhn90PI
fUOnzG/EKupfSZxiMuAj0aj35jgZ9m9X3fGD1d0bUTTtytkH8rd+vLb4OAPw3jmPV2wwLkfTNIv8
N/fPF9/VoPLweBBIPYxPNmdR7sl6+oTZuEqusCPMiwcL4umIfE1wZ5qtOGKNlFDBw7OOwlwzuRF2
HVb0XcQNZsgNnJqYBSzUT9u3lYDoiVYwXLvAC+d4aGOa9cxNYuyv3BWM0QJ8A/RLo3SG+i5BLcgo
+VJQSFIQEn7qbo50j0KHOhHqMDg7b35GVYjkUVyeJUlHVQQXhlliCfY03yfa/Q3I1jw43kspLobe
pgPJ8Sm5j5ntwu/pdu7cqyaLNVrURTaDSzw0fGv3tx617fk8vyQ+y7w+aP4L76r2e6OA5JCaydUf
lPH6VFWSVXUPkzzZ7R6k2YfHL6Se74+f05miiu5dBQ7MoHpAngZQJ932MOscwgFjQADCq7rgvJcV
GPOpQEECYADQmzA0ENABR4jWs7kDxjo14veI/Md1318RIVpfxzwAvRdQWAr1fBK7EiR7SHY0hQNz
sgdW2bvgC1APfkj6InI1rEcJrmRh4GQBEpgJzOMVYA4QaSIdXySKzN0+eguruAuOOexnLdtpEnnE
/NgMOK8++BRu5YK5aPLfa3DAG6ysCZ3y05NqFKlIgdnnPjA7l8EH3QO7wEfCbe4fDvhKUvU2mhHl
gi3cSZfJ990IeqBDfCIWgsMdzWp8rhdVcyMMVN1MyqJ7/0TMLAeye5e1Q4EwTqTHsZmpc5czU45h
xYLJ+HqYdQ0BYRkR8x0tPcx47T4r7jY32zlljX2qhgwbWnC4aRiJurawUpg3puXBd984JKMBhd43
pqR/AjFh+9gldIT3wDMODrODQp8ZiK5co9M1LxVlGGG4Ok8HSNseuWSaJaNd1ZRwtVEVAOSabB3Z
LBYvfRGUTG1rKLjgQSTzpxRA+5oIGMjC9AZQO1gZSfx4EN1p3TcUQK/UVJNFZOXRdqlrAHqgNTnY
5ljs/qqHTGmdgOwQ9jPPIGLBklxEh1AY1kNJADI/ph38rDTAV8mQR5r4qgZa8zY9pc4pcudTB0ht
qc+lBFgNUc7fjJl2rD18uZoPrPGe24bIssZlRE9uqDR4y1QNmHlQA3ICy1SgshQwWRZZBqiklISD
6lGk665OdxcsUUZscr9tNLSbkELNJVi97TqUQ1uapkZRTMRUPWAJL9pqeiFJ4F5DvxOE5iN0HsfE
RVhVU26neNbnXIPYGxT3eDYOiTs61OvA5mZfqfco1Zx1CeDEq0mwww2aCJrySNWRjDhHYB5aqKVS
ov26046nHvHoFPxHVAWORTCIQYgsBXt6DuZ9RK8B4DlFOEPTQmgpI0HeERokuELGGCaOd8DyzqUw
1VgV5USsu80KM3cezcsXWrvMeB37lCG7IVsFLRryFKM9fCxiqMgNyjvxQ6NFNY2YAp/jzKCwyX4K
whJPz6Cw5owwIvJoRDAZwjzBBDqMcBm3jh7D4wKnlp3tHDRGHnIHoChOi28vk4KdxLW4c4UtKpu2
eZqCJqkj30V9P3+J8z79fV+Wn1hg7rYNeASioCrAWQODIfoSHy2ErNSGUwguTALSvwbyT86wGjQm
WlQ+xFGxNWEX+g/g1BY5w9HQoy6TAGfytbLA86toTkE/vCZGkbi0t1fG6pDtzZ/Mh7ejLw+4T/Iz
MgYwI17fberMYHtWDe515QSOPDJCDn4rH6n9Ek2w6b+jXwdEIgkWuw/f2jIeS811yrZOt9YDSP5S
eS0Dw8gEyE6bu5SJb+VSjQ96GLQLdiDyiJUOlSkLC6+XY9aVMpAzZyQCkIsBZFWBb4OkNmB7tXax
c3DQvCwW/WNHh5zEDTf2VCmck+ml0lu+oYBBXOhC3JJ6gyGbwCcg5TX3M855eh0Ma1AeBUqMEGCT
sqkblcEmFNdutjgmnLaB4dMbE012O1JNPJkNqIVCCkC6SQNWG/iAqIasK31TIhqTwAL0XKnAqjS1
skFkMISlQUgYSEryo6SeOlJzTs1xe0L22A2xO2FcsitBNQiRy0APrHCcg8JRHqIeVgijQkogkHCZ
Dn2zoEw+vM7nbG+oXwk25EM5Z4wPiyHccS54HjO875C2sJdnSMOKCkLJPBk3gmNKsfyhEC2hDy2I
BfBgZIiiGBJiElDCu6aBUDEkgFGmcmGjvvwycXcEkSF0CfDaQmB7JmpuzKBCWQpCnyj2fuxAOZhv
2JdjXobGtune9EtIkY6pUrbYMy2xOGZnAGIQju6Jrfn2MNbM3behm4YJWkMVQ1KWoVUplUxctGGq
HY6DKTAJ3N4cUC4GWtoYlqU1wXzicE5R4k4KtEhdULItbjkWYc8YuYelVLCCgqyChFhogVrKIHJC
H7CH22YVKqtRAbFH4+C8Ydq5pDO6NqMIpAXDCwjSLBLVVqYqHVl23RnXrK66nLOAZOx9pM7UrFEW
MRGdtUJTIFAKKpDFGPGLkoTowN95jhIiNtSGFSDarZWCJ50yywooKMWDJEQEYKsgzoUZtUUzUm/d
ISk4EqBRli35DQwbscG0OshWE1DC1eKcMW4PRrwavZqI2qPzqk15UQOJS2M5OCCyZsVIoa2xLTgS
TSQuYiEzxTA4INqFKaggsIUwUre8DXE9TSZhM0C34nPK1qAQn6mpjcEpO6KCh6RkDfsA6F9osHKI
Me211dpKMicRaPtbcYZtEZhyil93141h1GY7u2BAKxJBuARedl87+l5Mgzp8gQnUnjO3kYpOxfng
xwVwEK+dRwpFFHOE9CPv8dOGosOE3RYY7T76ZweiFVhDHycwBFU+WEOREPuOyA0ZQG++uMwRTwRF
Brp4RMAxyU+1T1hVmBTk4SkFHPOHycZU9RzkXR046PWNPnxeQuXbkgQH4cAOQHIz2hzVc1LcRxUB
ie+ZFloFkDCfnnTw4m60pyUCDtK0ZP2Q97qb3wWUczy+1WiwbEHkiAYXAxbw3RIbIx5Uz2bPMhMO
s7xAJ8JAlxlM2yw5dEnXORBBKICxpCDRXCeJeQaKEXwBFEggMW4HZWT4cZhdTwRLCVuihCTpOq8T
Eh5d27fdczdoRnZENHb8HHQl/BceAhqobBYRkLBsq5Ts5CxnoGgc0zDoEEgJaJOB3hGTIi5+JFkd
b4DgkOXqZgxhxmEVLiiHgFMKEITmIk4ae7ktKTnBc4yuKTaNkYOPKajUinexhwpx8A0tTdMW0PC1
kMR9MmHLEEDxEMyAezxv0ED0+hwOEMiTElZqfzA2RcEOvomvnHjYNVrTKhq3RpT3oB2ept28ENno
nwEN7DM1fvQeFMeIa8XqczSNCsgyiomCUgWZ+RAAdrf1UMRRBuPO1IuK1nV42V14lUDSkUPZpp5M
Lpcs324xHVRBELk++RCPSfLDmFSFOFnnWIuQBz6zLJA6ASBzQocBRbeJhN4Aw0N2EKym07OhcyZt
mnW3G1b7oiIoWOi+Otj+CBqoFihawRKDoBxswQQQ0jWBgRoY+tsjbe6C6RPcAEuNrzvluQIEDioc
Pm1+GSnJ0sSBTLugCSkHWxw2bNSwTVzHbV5vTcYAJ7Zk8VJuX7OeLUZ1Xr3YIXjisBZhlx8cXmG1
VBfburxj33vDTYbWC2tQFZeFmPysua0rd0S+fchlnnr4udw2KOcCcCazHocPs4E1TKGrUl+E0szU
ZNPx4ndrJMsoyRCH5qHLv5aTLpQ0d9BtkMw4yGwKFASB6D5Kld/P8Ih4q41tRYRQQvyoypIOTBqC
x0dECe+HHHwQsUxLDgzGSwidO5GvqprOKujFqARiAit9MwHDDbM4+pYP0taSnUKS1QjRxKM+tuF4
DzRHYyOOxLcJhg0dPM1zNDsDcfKGCvZXf+ghoDbBDCP30SUaOH2peD8Dk19Fxg/YgFfjmUrAtlao
0XyQIMFWgjQRjaSjjCMQR0jGAFFRRZVeeOM24PFhsh4RL0bxiwfNnyE4cWIyqgS9Z5s958yiXgxG
SBdDqWJRKLVxN+tstK4sUEFSZiAs0Ha1EmxyNiAbz0sSkmUMHUxYG+SQLYksVgfmqKfXVJXbmqgu
4tUUzM4mejgxHe07OJjqZMmsJOgMLmmuoFtfPKQtc2JBFn0OG/nkA1cjtfw8YMYsR0akRARGw8cJ
GWjaRBijI45Uy9xmNNgYAaWhQNELAT2JFIKsiwk97RYhQQswFFiwigQFhIpCXSQpgNpFkQm0JImj
FSsD2RrZkkbdgAopFspalRtsYiCwgHd6+JG3AaOGQ3MgCowRFWKBrklYMZl5LFXIWVC4MbUTEJGZ
Z2GLFOB56lMQ9IlNG/vQ3nlvAVIMYpFjBiMYwYxUYiKoxARUixWLGMRBRBUFwQkZCc0xlfXOa+Gd
IqiiHvue5DmaZcICIjIixixSIxGLIpIwRLybSFa4BYN5t9zBpnr2cTo09PZiTF/FsW135ykWRTlb
ohTVq5N6RGoVKtiFpe5KeN+gcSQ+/0me1QnbEj9QlTZA1Nyx8Ek9iAc5BotfkCiiyPfqTgnMKEFM
9C0pBHXaHXtFxL0UlxApR7aoWIgKHvYe084dOkhy6Cb5z8o41DqnFyCJ2FHiiwzVSgxZNJTSuOGW
0ZDzL5ImEWqwfdx1dHyrZlurcVdltCLpN1S61bm1mscPa0b2Z2RxC0YgIRPdJ1nbdIHS5Hogqk9i
V5USvoPWx37hxUGAKAisggkFVGRYLFRVRFVFgooskFgoRVDWdcOfYVNpg7Q9Soh7efDoOYkySiAM
BQWCw5tDGQYKQVQ51SRgsBRmoeO8Z5VpOReDON+8108iV0+aXISfr3PTKoWQtpyLEwr1oWQMSESh
hUchRwMxzPTtRtIeNJJ4EZ2zomMufIFgvGd9++1MBmQMM+5M8ii7SoWdRgP3HsyKiiwiqsj6Hp67
0jr3uxlnUgCzsYGEswFUiiNr0chOzMRsl6vFyTGDDkIBlWwsDxe/iSIJ8QjEaaQRFkWkC1qHxHPF
7YrCMA2k4BiFmhRXQLOrxAa6DkZLJr2SiwlJ/CDlGWQeTWBCr0WaoKlVwmmvWtxTRvHLQuX5FSyj
xqol+Zz0JvBXuMKCyKHekinybKgsA+k1kJkBYhcsVIW4RA0uYjzHOLr28ruNKJo8S4RsitHPYgdz
o5BRSRMRWHeMjtgxhjEePt3KvOcHNnVaE5ZEpXfB8rSJvUp0IcNJWWjYo8Nb+7lWB5tfuMfJBWaR
IkkQRmKPwm6m6PIAbkDEEJghuzkd0euV22LcTM2JpsGlWDicyKbQmNIj8XptBRoXhyOCmzWzhYkt
MOEYIwcoJ0izliC0ACqTfHTe85JIzeQqunzJb7Y4u3zLRkKgw0BtjGx51JTJwYFNxkwIILiAPiEU
ivGMINjBZYRlY2y3mpsLdgG5thHqbUhBoUUnXVMGzPYy0GQjyRslJSkKraRWuWSIakIEsEQbTjVZ
Rg5ECowrGY4GEeSPMWUgJ45Y5LI65ljNsQevsZQbQSQRl3DLpdRsRd39LlbF4TWKmnG3RbrGDX05
tTmyAdBrIIqQiNIKxRi8zMYDQVLFEBGBNDQmgzKVsG341U4cqhujGWB4a5WB11IS2RKKJC4xaSBt
A01jYhtOyNpKSW3fDwaKmpBNKySrBoHgmrMNJoKrJPWYWYTIwmRnbMHSiC0koSC0kaos7s3AINMN
RaZFZU2nACsYwBttO2JiLCpUYmqBERGlIMlQYxi3Fhod4sgshMM8Dh5h2b1f0KJ87UBTQwEZ6tMk
WnRLsuwU7XDKZZIuEzPebtplNFvawFxC0EkWSq0tCaWqYrZXbPDwnm5eHoEKE4JZ147nD7ckPcST
UHc88yGsIeQwBZA+hkJKZAPs4ICBOpsSHi8T5fQ27VzwAs5nrTO00UEVYwGKSazBDQKqrylJJ2zk
XqEoQFikUIoSCxhsxZKgWqhYoZG9Sz3EYFsVnxGBlz5PvsYOs6xm1ydWoSGs0GSTadr0+walaysl
nUPQcYbwOUqXJaQDMQnysebDwRBip8vfQUrjpIDaZpxMxE6MVTxwkPB1vJMYsWgpOVGe3GL07mGe
0tzsPoGkyTgrF67KxCrK5e0AC5NxJbkGtcb7APO5Y49bSwsW4nt7avvHEIb2SGgHgdXNAuyChVQm
mT7nfIjFIRWREViigiAbjlEejHh298CgymaHBkt0gfaYUbfD04TnrqlAOhNCHMz7T2SVBM4rl4uB
x15G7p0AoyDJZIe2kpueE3hodzCXrcGZ8nJKHdQRaXN7IHTdbfDMDBmGPVzJ65bMxJOAF0pg4lEH
BYTmW3ZL2itW1Ichh8qpGS4dpiptuU6UHUkMMWLFJxEgWNUysVXa8h5LYmIBNpaQwhYRHlUWFLQ0
icgjQpCwygWFJTFIiIjZptagspZAWkijSpQlqoVZSaWKEijdpFKEqKwoptQWBYXaixEYCMBAZGCS
koVEVgqKwFBzQSwOXJZvPNpAvOCm8Ec/VNguPvE9eZJIDWufKFt16HA3azoknGztXCadEmhtIrRX
WNpjSramUKxRhRhEWRweYUKHdPKfhy1ns28W94ToM3C0HtrcWzcO/p1BASQ3YGx0Mg3YmxNNbmVy
g2iMo3c88apMrzbjoYPiY1sHrsUKZNycCMjkcSElqqB33pFWFr+hkwFjDRB7oYymuc73a3adeful
DDrnJN4ACv4aIUIhAUmXfxDvYCZzQECen3lR1w61Lyrp0ojeniDvFqU7KYwo240kqPKJvKK0CUCR
9/MN50cGSGQQFAg9KgQKDZrbxsavpevBK/g+1ofqww5cccB022YgHdilLSushR3VZofgVVUWt+Sh
xingggn8URiCDqqBv6tBwYINDQTjCgkQkLlsdIYBxrHREMcoIg1TgAplq8w41xvrdm4ZEYxdGsE2
3Wy61hRiAgQ6JwEvji6V0XMF6gTOtPRG7xqlOcIOWEFYLmTCFG6QksBJNBOVKGHEiuJBjUxkCbeM
TbwBGS4dO7EkggwIzOHeImKdKDXrDBWTD5wsGCiaLxDaIn4y+LCkh+k2Fds2JNxKzDoG/k8gHaNE
qgbdPSzll7aW0+zcXdk0OOOZW6k8mNdHAenNMN5W6yYqPGFMwWMmDrthjVeOZA1kSjbQEI0FUAsw
heM0DhEo7Mrow7dAM52vclJo1EQ3goLC+KxFZDWtCGD5SFBmoX5u46/U5GdM1QfN8VSwco6wCkNQ
4UFCct8RmLuDI+werGCrtQFGVElkhhJpL6NoYQNhkY561dh5DacbBF0iS5DQtjQpWTCGUQUphVFc
GyXxdxHOdZpWYSps4vOcDWc8Sr5m5vjgZQJOECiwoosnFDVhqqAQTU8fKSVqCCXMG8yjUUCQj9YL
bwSKFu/5IqcEtKEr5XeRlIClDjMXWmZBzQtAiShcilaEQ908Gg/0YFCYMhGKGjJwUCQ6shO7gkiu
7iLxdop8VJNi2JxpJspAouQL03u+zLGalXPKVjJG3wzny1W2+rCjrArQWg8KHznU3GCEwFEQ61IS
DiHZoIEk5sprix4bVbSLmxJNpLfja7pVE75GdzqTsN5oMTiTuLENOM2Q60k0ZwmtbUBywYlpFCDE
pVCAzQaSpTO3n3OZdTtgPao1XsaOEGB8Nz0tBorjHMhVb188zlm1WsBaGxeHI7mSGfK8MhHszNRI
ckCKeqGodyQN2AsKqpCkpkFFgERkIoCxYCkkihSECkihFAgoII0kEYF15OkHYlE0SQJJ0bcrbhbG
WLYPYqWSLIW7qgWYHmYUwUBZEYRc+cKWHam0TCobQ1Cd/AMgVj5z6tbYA4v1jEW4GVGnzIw4AoOS
igWoh2IavldsZJdS5JYQY3MuVkMhnS4Ua2ZWi6AjwcgWrZUmN6kbKtkQN3jFkURF6b4vOECkFCBx
YQ82WEkuyFJIdUmu4yhapLyrBVfdGSEpkEmUq8qYTjOznRbqbq2FlbkrmlXFZmwaHaVFB5tE0orw
IBvhC2qsdyjradu4Qh1P9Zn2/OBOZQw6FHxCqWApWN5PrZU0hj1XeTe5G5U5zrMSbWD3c5zhw20s
zhOhoQ2IVJ3IKSXWwYtyh33iwk9IsTboFXNfRzte1Caw4PkM8kCkF4pD0YGGQphnoe/ukh+4E0PE
x21Sv11cAvc5IFDAjxJvYmGEvBBwE/IE370h8qT+rSVpJIRaWKvTlWSBsw1xBnK1KSIkpBopVH1o
loMKiRmqWZMSiUVO9CHkSx8Gk8N3q7yDnGmHF5qlAtI0Fpl7SAVNkMMJb9nlaMWHsKKhH6jPYzvN
rFMEJ1M9dMsFlU1AlkucQqSGELsKSGWY0CoTcwXDCUsjIUqQRFL+GYmgJQINSAml+2y7awVqmLiB
DA97IrAD7QIYObMprcE3Jgs4GRhU0mrgRVChEI/ZQsTBLuqoByJI0QpSNGoCYkygiAMIqKaw8op7
KTPF/A6FJMHIgVmmg2QSMMKh3Dk0mt8Sbc1KzSoQ75xh6LmIyQgofEPEzSRD3TPYihjjaZDm9TfN
JA98oEGNHJCgSHa8qCGrDu1kkM0Alev3PRa4lcJuZyM5J1ZBVkk7mkIprvoSV9Pzgb9/jIQ//F3J
FOFCQOuOb3w=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27645</attachid>
            <date>2009-02-13 01:12:58 -0800</date>
            <delta_ts>2009-02-13 01:12:58 -0800</delta_ts>
            <desc>GdomHTMLTableRowElement.cpp</desc>
            <filename>GdomHTMLTableRowElement.cpp</filename>
            <type>text/plain</type>
            <size>14745</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">LyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVj
dC4KICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3Mu
cGwuIERPIE5PVCBNT0RJRlkhCgogICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoK
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgogKi8KCiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgojaW5jbHVkZSAiY29uZmlnLmgiCgojaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgojaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiNpbmNsdWRlICJI
VE1MRWxlbWVudC5oIgojaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgojaW5jbHVkZSAi
Z2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oIgojaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTENvbGxl
Y3Rpb24uaCIKI2luY2x1ZGUgImdkb20vR2RvbUhUTUxDb2xsZWN0aW9uUHJpdmF0ZS5oIgojaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTEVsZW1lbnQuaCIKI2luY2x1ZGUgImdkb20vR2RvbUhUTUxFbGVt
ZW50UHJpdmF0ZS5oIgojaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgoj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudFByaXZhdGUuaCIKI2luY2x1ZGUg
Imdkb20vZ3N0cmluZ2NvbnZlcnQuaCIKI2luY2x1ZGUgImdkb21iaW5kaW5nLmgiCiNpbmNsdWRl
ICJ3ZWJraXRtYXJzaGFsLmgiCgpleHRlcm4gIkMiIHsKCkdkb21IVE1MRWxlbWVudCAqCmdkb21f
aHRtbF90YWJsZV9yb3dfZWxlbWVudF9pbnNlcnRfY2VsbCAoR2RvbUhUTUxUYWJsZVJvd0VsZW1l
bnQgKnRoaXosIGdsb25nIGluZGV4LCBHRXJyb3IgKiplcnJvcikKewogICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKHRoaXosIDApOwogICAgV2ViQ29yZTo6SFRNTFRhYmxlUm93RWxlbWVudCAqIGl0
ZW0gPSBXZWJLaXQ6OmNvcmUodGhpeik7CiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0g
MDsKICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTEVsZW1lbnQ+IGdfcmVzID0gV1RGOjpnZXRQ
dHIoaXRlbS0+aW5zZXJ0Q2VsbChpbmRleCwgZWMpKTsKICAgIGlmKGVjKSB7CiAgICAgICAgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYzsKICAgICAgICBXZWJDb3JlOjpn
ZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oZWMsIGVjZGVzYyk7CiAgICAgICAgZ19zZXRfZXJy
b3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiR0RPTSIpLCBlY2Rlc2MuY29k
ZSwgZWNkZXNjLm5hbWUpOwogICAgfQogICAgR2RvbUhUTUxFbGVtZW50ICogcmVzID0gc3RhdGlj
X2Nhc3Q8R2RvbUhUTUxFbGVtZW50ICo+KFdlYktpdDo6dG9HRE9NKGdfcmVzLmdldCgpKSk7CiAg
ICByZXR1cm4gcmVzOwoKfQoKdm9pZApnZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZGVsZXRl
X2NlbGwgKEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp0aGl6LCBnbG9uZyBpbmRleCwgR0Vycm9y
ICoqZXJyb3IpCnsKICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHRoaXopOwogICAgV2ViQ29yZTo6SFRN
TFRhYmxlUm93RWxlbWVudCAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUodGhpeik7CiAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgIGl0ZW0tPmRlbGV0ZUNlbGwoaW5kZXgsIGVjKTsK
ICAgIGlmKGVjKSB7CiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVj
ZGVzYzsKICAgICAgICBXZWJDb3JlOjpnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oZWMsIGVj
ZGVzYyk7CiAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0
cmluZygiR0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwogICAgfQoKfQoKZ2xvbmcK
Z2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9yb3dfaW5kZXggKEdkb21IVE1MVGFibGVS
b3dFbGVtZW50ICp0aGl6KQp7CiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAodGhpeiwgMCk7CiAg
ICBXZWJDb3JlOjpIVE1MVGFibGVSb3dFbGVtZW50ICogaXRlbSA9IFdlYktpdDo6Y29yZSh0aGl6
KTsKICAgIGdsb25nIHJlcyA9IGl0ZW0tPnJvd0luZGV4KCk7CiAgICByZXR1cm4gcmVzOwoKfQoK
Z2xvbmcKZ2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9zZWN0aW9uX3Jvd19pbmRleCAo
R2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQgKnRoaXopCnsKICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
ICh0aGl6LCAwKTsKICAgIFdlYkNvcmU6OkhUTUxUYWJsZVJvd0VsZW1lbnQgKiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHRoaXopOwogICAgZ2xvbmcgcmVzID0gaXRlbS0+c2VjdGlvblJvd0luZGV4KCk7
CiAgICByZXR1cm4gcmVzOwoKfQoKR2RvbUhUTUxDb2xsZWN0aW9uICoKZ2RvbV9odG1sX3RhYmxl
X3Jvd19lbGVtZW50X2dldF9jZWxscyAoR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQgKnRoaXopCnsK
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAwKTsKICAgIFdlYkNvcmU6OkhUTUxUYWJs
ZVJvd0VsZW1lbnQgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHRoaXopOwogICAgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ19yZXMgPSBXVEY6OmdldFB0cihpdGVtLT5jZWxscygp
KTsKICAgIEdkb21IVE1MQ29sbGVjdGlvbiAqIHJlcyA9IHN0YXRpY19jYXN0PEdkb21IVE1MQ29s
bGVjdGlvbiAqPihXZWJLaXQ6OnRvR0RPTShnX3Jlcy5nZXQoKSkpOwogICAgcmV0dXJuIHJlczsK
Cn0KCmdjaGFyICoKZ2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9hbGlnbiAoR2RvbUhU
TUxUYWJsZVJvd0VsZW1lbnQgKnRoaXopCnsKICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0aGl6
LCAwKTsKICAgIFdlYkNvcmU6OkhUTUxUYWJsZVJvd0VsZW1lbnQgKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHRoaXopOwogICAgZ2NoYXIgKiByZXMgPSBnZG9tX2dzdHJpbmdfY29udmVydChpdGVtLT5h
bGlnbigpKTsKICAgIHJldHVybiByZXM7Cgp9Cgp2b2lkCmdkb21faHRtbF90YWJsZV9yb3dfZWxl
bWVudF9zZXRfYWxpZ24gKEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp0aGl6LCBnY2hhciAqIHZh
bHVlKQp7CiAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTsKICAgIFdlYkNvcmU6OkhUTUxUYWJs
ZVJvd0VsZW1lbnQgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHRoaXopOwogICAgZ19yZXR1cm5faWZf
ZmFpbCAodmFsdWUpOwogICAgV2ViQ29yZTo6U3RyaW5nIF9nX3ZhbHVlID0gV2ViQ29yZTo6U3Ry
aW5nOjpmcm9tVVRGOCh2YWx1ZSk7CiAgICBpdGVtLT5zZXRBbGlnbihfZ192YWx1ZSk7Cgp9Cgpn
Y2hhciAqCmdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfYmdfY29sb3IgKEdkb21IVE1M
VGFibGVSb3dFbGVtZW50ICp0aGl6KQp7CiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAodGhpeiwg
MCk7CiAgICBXZWJDb3JlOjpIVE1MVGFibGVSb3dFbGVtZW50ICogaXRlbSA9IFdlYktpdDo6Y29y
ZSh0aGl6KTsKICAgIGdjaGFyICogcmVzID0gZ2RvbV9nc3RyaW5nX2NvbnZlcnQoaXRlbS0+YmdD
b2xvcigpKTsKICAgIHJldHVybiByZXM7Cgp9Cgp2b2lkCmdkb21faHRtbF90YWJsZV9yb3dfZWxl
bWVudF9zZXRfYmdfY29sb3IgKEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp0aGl6LCBnY2hhciAq
IHZhbHVlKQp7CiAgICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTsKICAgIFdlYkNvcmU6OkhUTUxU
YWJsZVJvd0VsZW1lbnQgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHRoaXopOwogICAgZ19yZXR1cm5f
aWZfZmFpbCAodmFsdWUpOwogICAgV2ViQ29yZTo6U3RyaW5nIF9nX3ZhbHVlID0gV2ViQ29yZTo6
U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7CiAgICBpdGVtLT5zZXRCZ0NvbG9yKF9nX3ZhbHVlKTsK
Cn0KCmdjaGFyICoKZ2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9jaCAoR2RvbUhUTUxU
YWJsZVJvd0VsZW1lbnQgKnRoaXopCnsKICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAw
KTsKICAgIFdlYkNvcmU6OkhUTUxUYWJsZVJvd0VsZW1lbnQgKiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHRoaXopOwogICAgZ2NoYXIgKiByZXMgPSBnZG9tX2dzdHJpbmdfY29udmVydChpdGVtLT5jaCgp
KTsKICAgIHJldHVybiByZXM7Cgp9Cgp2b2lkCmdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9z
ZXRfY2ggKEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp0aGl6LCBnY2hhciAqIHZhbHVlKQp7CiAg
ICBnX3JldHVybl9pZl9mYWlsICh0aGl6KTsKICAgIFdlYkNvcmU6OkhUTUxUYWJsZVJvd0VsZW1l
bnQgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHRoaXopOwogICAgZ19yZXR1cm5faWZfZmFpbCAodmFs
dWUpOwogICAgV2ViQ29yZTo6U3RyaW5nIF9nX3ZhbHVlID0gV2ViQ29yZTo6U3RyaW5nOjpmcm9t
VVRGOCh2YWx1ZSk7CiAgICBpdGVtLT5zZXRDaChfZ192YWx1ZSk7Cgp9CgpnY2hhciAqCmdkb21f
aHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfY2hfb2ZmIChHZG9tSFRNTFRhYmxlUm93RWxlbWVu
dCAqdGhpeikKewogICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHRoaXosIDApOwogICAgV2ViQ29y
ZTo6SFRNTFRhYmxlUm93RWxlbWVudCAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUodGhpeik7CiAgICBn
Y2hhciAqIHJlcyA9IGdkb21fZ3N0cmluZ19jb252ZXJ0KGl0ZW0tPmNoT2ZmKCkpOwogICAgcmV0
dXJuIHJlczsKCn0KCnZvaWQKZ2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9jaF9vZmYg
KEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp0aGl6LCBnY2hhciAqIHZhbHVlKQp7CiAgICBnX3Jl
dHVybl9pZl9mYWlsICh0aGl6KTsKICAgIFdlYkNvcmU6OkhUTUxUYWJsZVJvd0VsZW1lbnQgKiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHRoaXopOwogICAgZ19yZXR1cm5faWZfZmFpbCAodmFsdWUpOwog
ICAgV2ViQ29yZTo6U3RyaW5nIF9nX3ZhbHVlID0gV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCh2
YWx1ZSk7CiAgICBpdGVtLT5zZXRDaE9mZihfZ192YWx1ZSk7Cgp9CgpnY2hhciAqCmdkb21faHRt
bF90YWJsZV9yb3dfZWxlbWVudF9nZXRfdl9hbGlnbiAoR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQg
KnRoaXopCnsKICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAwKTsKICAgIFdlYkNvcmU6
OkhUTUxUYWJsZVJvd0VsZW1lbnQgKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHRoaXopOwogICAgZ2No
YXIgKiByZXMgPSBnZG9tX2dzdHJpbmdfY29udmVydChpdGVtLT52QWxpZ24oKSk7CiAgICByZXR1
cm4gcmVzOwoKfQoKdm9pZApnZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfc2V0X3ZfYWxpZ24g
KEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp0aGl6LCBnY2hhciAqIHZhbHVlKQp7CiAgICBnX3Jl
dHVybl9pZl9mYWlsICh0aGl6KTsKICAgIFdlYkNvcmU6OkhUTUxUYWJsZVJvd0VsZW1lbnQgKiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHRoaXopOwogICAgZ19yZXR1cm5faWZfZmFpbCAodmFsdWUpOwog
ICAgV2ViQ29yZTo6U3RyaW5nIF9nX3ZhbHVlID0gV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCh2
YWx1ZSk7CiAgICBpdGVtLT5zZXRWQWxpZ24oX2dfdmFsdWUpOwoKfQoKfSAvKiBleHRlcm4gIkMi
ICovCgoKCkdfQkVHSU5fREVDTFMKCkdfREVGSU5FX1RZUEUoR2RvbUhUTUxUYWJsZVJvd0VsZW1l
bnQsIGdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudCwgR0RPTV9UWVBFX0hUTUxfRUxFTUVOVCk7
CgpHX0VORF9ERUNMUwoKbmFtZXNwYWNlIFdlYktpdCB7CgpHZG9tSFRNTFRhYmxlUm93RWxlbWVu
dCAqCndyYXBIVE1MVGFibGVSb3dFbGVtZW50KFdlYkNvcmU6OkhUTUxUYWJsZVJvd0VsZW1lbnQg
KmNvcmVPYmplY3QpCnsKICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmplY3QgIT0gTlVM
TCwgTlVMTCk7CiAgICAKICAgIEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp3cmFwcGVyID0gR0RP
TV9IVE1MX1RBQkxFX1JPV19FTEVNRU5UKGdfb2JqZWN0X25ldyhHRE9NX1RZUEVfSFRNTF9UQUJM
RV9ST1dfRUxFTUVOVCwgTlVMTCkpOwogICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwod3JhcHBlciAh
PSBOVUxMLCBOVUxMKTsKICAgIAogICAgLy8gV2UgY2FsbCByZWYoKSByYXRoZXIgdGhhbiB1c2lu
ZyBhIEMrKyBzbWFydCBwb2ludGVyIGJlY2F1c2Ugd2UgY2FuJ3Qgc3RvcmUgYSBDKysgb2JqZWN0
CiAgICAvLyBpbiBhIEMtYWxsb2NhdGVkIEdPYmplY3Qgc3RydWN0dXJlLiAgU2VlIHRoZSBmaW5h
bGl6ZSgpIGNvZGUgZm9yIHRoZQogICAgLy8gbWF0Y2hpbmcgZGVyZWYoKS4KICAgIGNvcmVPYmpl
Y3QtPnJlZigpOwogICAgR0RPTV9ET01fT0JKRUNUKHdyYXBwZXIpLT5jb3JlT2JqZWN0ID0gY29y
ZU9iamVjdDsKCiAgICByZXR1cm4gd3JhcHBlcjsKfQoKV2ViQ29yZTo6SFRNTFRhYmxlUm93RWxl
bWVudCAqCmNvcmUoR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQgKnJlcXVlc3QpCnsKICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKHJlcXVlc3QgIT0gTlVMTCwgTlVMTCk7CiAgICAKICAgIFdlYkNvcmU6
OkhUTUxUYWJsZVJvd0VsZW1lbnQgKmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpI
VE1MVGFibGVSb3dFbGVtZW50ICo+KEdET01fRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVj
dCk7CiAgICBnX2Fzc2VydChjb3JlT2JqZWN0ICE9IE5VTEwpOwogICAgCiAgICByZXR1cm4gY29y
ZU9iamVjdDsKfQoKfSAvLyBuYW1lc3BhY2UgV2ViS2l0CgpHX0JFR0lOX0RFQ0xTCgplbnVtIHsK
ICAgIFBST1BfMCwKICAgIFBST1BfUk9XX0lOREVYLAogICAgUFJPUF9TRUNUSU9OX1JPV19JTkRF
WCwKICAgIFBST1BfQ0VMTFMsCiAgICBQUk9QX0FMSUdOLAogICAgUFJPUF9CR19DT0xPUiwKICAg
IFBST1BfQ0gsCiAgICBQUk9QX0NIX09GRiwKICAgIFBST1BfVl9BTElHTiwKfTsKCgpzdGF0aWMg
dm9pZCBnZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZmluYWxpemUoR09iamVjdCogb2JqZWN0
KQp7CiAgICBHZG9tRE9NT2JqZWN0KiBkb21fb2JqZWN0ID0gR0RPTV9ET01fT0JKRUNUKG9iamVj
dCk7CiAgICAKICAgIGlmKGRvbV9vYmplY3QgIT0gTlVMTCkKICAgIHsKICAgICAgICBpZihkb21f
b2JqZWN0LT5jb3JlT2JqZWN0ICE9IE5VTEwpCiAgICAgICAgewogICAgICAgICAgICBXZWJDb3Jl
OjpIVE1MVGFibGVSb3dFbGVtZW50ICpjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
SFRNTFRhYmxlUm93RWxlbWVudCAqPihkb21fb2JqZWN0LT5jb3JlT2JqZWN0KTsKICAgICAgICAg
ICAgY29yZU9iamVjdC0+ZGVyZWYoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvbV9vYmpl
Y3QtPmNvcmVPYmplY3QgPSBOVUxMOwogICAgICAgICAgICAKICAgICAgICAgICAgV2ViS2l0OjpH
RE9NT2JqZWN0Q2FjaGU6OmZvcmdldERPTU9iamVjdChjb3JlT2JqZWN0KTsKICAgICAgICB9CiAg
ICB9CgogICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3BhcmVu
dF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cn0KCnN0YXRpYyB2b2lkIGdkb21faHRtbF90YWJs
ZV9yb3dfZWxlbWVudF9fc2V0X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHBy
b3BfaWQsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLAogICAgICAg
ICAgICAgICAgICAgICBHUGFyYW1TcGVjICogcHNwZWMpCnsKICAgIEdkb21IVE1MVGFibGVSb3dF
bGVtZW50ICpzZWxmID0gR0RPTV9IVE1MX1RBQkxFX1JPV19FTEVNRU5UKG9iamVjdCk7CiAgICBX
ZWJDb3JlOjpIVE1MVGFibGVSb3dFbGVtZW50ICogZ3NlbGYgPSBXZWJLaXQ6OmNvcmUoc2VsZik7
CiAgICBzd2l0Y2ggKHByb3BfaWQpIHsKICAgICBjYXNlIFBST1BfQUxJR046CiAgICB7CiAgICAg
ICAgIGdzZWxmLT5zZXRBbGlnbihXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KGdfdmFsdWVfZ2V0
X3N0cmluZyAodmFsdWUpKSApOwogICAgICAgICBicmVhazsKICAgIH0KICAgICBjYXNlIFBST1Bf
QkdfQ09MT1I6CiAgICB7CiAgICAgICAgIGdzZWxmLT5zZXRCZ0NvbG9yKFdlYkNvcmU6OlN0cmlu
Zzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nICh2YWx1ZSkpICk7CiAgICAgICAgIGJyZWFr
OwogICAgfQogICAgIGNhc2UgUFJPUF9DSDoKICAgIHsKICAgICAgICAgZ3NlbGYtPnNldENoKFdl
YkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoZ192YWx1ZV9nZXRfc3RyaW5nICh2YWx1ZSkpICk7CiAg
ICAgICAgIGJyZWFrOwogICAgfQogICAgIGNhc2UgUFJPUF9DSF9PRkY6CiAgICB7CiAgICAgICAg
IGdzZWxmLT5zZXRDaE9mZihXZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4KGdfdmFsdWVfZ2V0X3N0
cmluZyAodmFsdWUpKSApOwogICAgICAgICBicmVhazsKICAgIH0KICAgICBjYXNlIFBST1BfVl9B
TElHTjoKICAgIHsKICAgICAgICAgZ3NlbGYtPnNldFZBbGlnbihXZWJDb3JlOjpTdHJpbmc6OmZy
b21VVEY4KGdfdmFsdWVfZ2V0X3N0cmluZyAodmFsdWUpKSApOwogICAgICAgICBicmVhazsKICAg
IH0KICAgICBkZWZhdWx0OgogICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9J
RChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKICAgICAgICBicmVhazsKICAgIH0KfQoKCnN0YXRp
YyB2b2lkIGdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9fZ2V0X3Byb3BlcnR5X2ZuKEdPYmpl
Y3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCiAgICAgICAgICAgICAgICAgICAgIEdWYWx1ZSAq
IHZhbHVlLAogICAgICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICogcHNwZWMpCnsKICAgIEdk
b21IVE1MVGFibGVSb3dFbGVtZW50ICpzZWxmID0gR0RPTV9IVE1MX1RBQkxFX1JPV19FTEVNRU5U
KG9iamVjdCk7CiAgICBXZWJDb3JlOjpIVE1MVGFibGVSb3dFbGVtZW50ICogZ3NlbGYgPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CiAgICBzd2l0Y2ggKHByb3BfaWQpIHsKICAgIGNhc2UgUFJPUF9ST1df
SU5ERVg6CiAgICB7CiAgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcgKHZhbHVlLCBnc2VsZi0+cm93
SW5kZXgoKSk7CiAgICAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSBQUk9QX1NFQ1RJT05fUk9X
X0lOREVYOgogICAgewogICAgICAgICBnX3ZhbHVlX3NldF9sb25nICh2YWx1ZSwgZ3NlbGYtPnNl
Y3Rpb25Sb3dJbmRleCgpKTsKICAgICAgICAgYnJlYWs7CiAgICB9CiAgICBjYXNlIFBST1BfQ0VM
TFM6CiAgICB7CiAgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTENvbGxlY3Rpb24+IHB0
ciA9IGdzZWxmLT5jZWxscygpOwogICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCAodmFsdWUsIFdl
YktpdDo6dG9HRE9NKHB0ci5nZXQoKSkpOwogICAgICAgICBicmVhazsKICAgIH0KICAgIGNhc2Ug
UFJPUF9BTElHTjoKICAgIHsKICAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyAodmFsdWUsIGdk
b21fZ3N0cmluZ19jb252ZXJ0KGdzZWxmLT5hbGlnbigpKSk7CiAgICAgICAgIGJyZWFrOwogICAg
fQogICAgY2FzZSBQUk9QX0JHX0NPTE9SOgogICAgewogICAgICAgICBnX3ZhbHVlX3Rha2Vfc3Ry
aW5nICh2YWx1ZSwgZ2RvbV9nc3RyaW5nX2NvbnZlcnQoZ3NlbGYtPmJnQ29sb3IoKSkpOwogICAg
ICAgICBicmVhazsKICAgIH0KICAgIGNhc2UgUFJPUF9DSDoKICAgIHsKICAgICAgICAgZ192YWx1
ZV90YWtlX3N0cmluZyAodmFsdWUsIGdkb21fZ3N0cmluZ19jb252ZXJ0KGdzZWxmLT5jaCgpKSk7
CiAgICAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSBQUk9QX0NIX09GRjoKICAgIHsKICAgICAg
ICAgZ192YWx1ZV90YWtlX3N0cmluZyAodmFsdWUsIGdkb21fZ3N0cmluZ19jb252ZXJ0KGdzZWxm
LT5jaE9mZigpKSk7CiAgICAgICAgIGJyZWFrOwogICAgfQogICAgY2FzZSBQUk9QX1ZfQUxJR046
CiAgICB7CiAgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcgKHZhbHVlLCBnZG9tX2dzdHJpbmdf
Y29udmVydChnc2VsZi0+dkFsaWduKCkpKTsKICAgICAgICAgYnJlYWs7CiAgICB9CiAgICAgZGVm
YXVsdDoKICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBw
cm9wX2lkLCBwc3BlYyk7CiAgICAgICAgYnJlYWs7CiAgICB9Cn0KCgpzdGF0aWMgdm9pZCBnZG9t
X2h0bWxfdGFibGVfcm93X2VsZW1lbnRfY2xhc3NfaW5pdChHZG9tSFRNTFRhYmxlUm93RWxlbWVu
dENsYXNzKiByZXF1ZXN0Q2xhc3MpCnsKICAgIEdPYmplY3RDbGFzcyAqZ19rbGFzcyA9IEdfT0JK
RUNUX0NMQVNTIChyZXF1ZXN0Q2xhc3MpOwogICAgZ19rbGFzcy0+ZmluYWxpemUgPSBnZG9tX2h0
bWxfdGFibGVfcm93X2VsZW1lbnRfZmluYWxpemU7CiAgICBnX2tsYXNzLT5zZXRfcHJvcGVydHkg
PSBnZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfX3NldF9wcm9wZXJ0eV9mbjsKICAgIGdfa2xh
c3MtPmdldF9wcm9wZXJ0eSA9IGdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9fZ2V0X3Byb3Bl
cnR5X2ZuOwoKICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdfa2xhc3MsIFBS
T1BfUk9XX0lOREVYLAogICAgICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZyAoInJvd19pbmRleCIs
IC8qIG5hbWUgKi8KICAgICAgICAgICAgICAgICJodG1sX3RhYmxlX3Jvd19lbGVtZW50X3Jvd19p
bmRleCIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCiAgICAgICAgICAgICAgICAicmVhZC1vbmx5
ICBnbG9uZyBIVE1MVGFibGVSb3dFbGVtZW50LnJvd19pbmRleCIsIC8qIGxvbmdlciAtIGNvdWxk
IGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwogICAgICAgICAgICAgICAgIEdf
TUlOTE9ORywgICAgICAgIC8qIG1pbiAqLwogICAgICAgICAgICAgICAgR19NQVhMT05HLCAvKiBt
YXggKi8KICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCiAgICAgICAgICAg
ICAgICAgKEdQYXJhbUZsYWdzKUdfUEFSQU1fUkVBREFCTEUpKTsKCiAgICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ19rbGFzcywgUFJPUF9TRUNUSU9OX1JPV19JTkRFWCwKICAg
ICAgICAgICAgZ19wYXJhbV9zcGVjX2xvbmcgKCJzZWN0aW9uX3Jvd19pbmRleCIsIC8qIG5hbWUg
Ki8KICAgICAgICAgICAgICAgICJodG1sX3RhYmxlX3Jvd19lbGVtZW50X3NlY3Rpb25fcm93X2lu
ZGV4IiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KICAgICAgICAgICAgICAgICJyZWFkLW9ubHkg
IGdsb25nIEhUTUxUYWJsZVJvd0VsZW1lbnQuc2VjdGlvbl9yb3dfaW5kZXgiLCAvKiBsb25nZXIg
LSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KICAgICAgICAgICAg
ICAgICBHX01JTkxPTkcsICAgICAgICAvKiBtaW4gKi8KICAgICAgICAgICAgICAgIEdfTUFYTE9O
RywgLyogbWF4ICovCiAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLwogICAg
ICAgICAgICAgICAgIChHUGFyYW1GbGFncylHX1BBUkFNX1JFQURBQkxFKSk7CgogICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdfa2xhc3MsIFBST1BfQ0VMTFMsCiAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19vYmplY3QgKCJjZWxscyIsIC8qIG5hbWUgKi8KICAgICAgICAgICAg
ICAgICJodG1sX3RhYmxlX3Jvd19lbGVtZW50X2NlbGxzIiwgLyogc2hvcnQgZGVzY3JpcHRpb24g
Ki8KICAgICAgICAgICAgICAgICJyZWFkLW9ubHkgIEdkb21IVE1MQ29sbGVjdGlvbiAqIEhUTUxU
YWJsZVJvd0VsZW1lbnQuY2VsbHMiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0
cmEgZG9jIHN0dWZmIGhlcmUgKi8KICAgICAgICAgICAgICAgICBHRE9NX1RZUEVfSFRNTF9DT0xM
RUNUSU9OLCAvKiBnb2JqZWN0IHR5cGUgKi8KICAgICAgICAgICAgICAgICAoR1BhcmFtRmxhZ3Mp
R19QQVJBTV9SRUFEQUJMRSkpOwoKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
IChnX2tsYXNzLCBQUk9QX0FMSUdOLAogICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nICgi
YWxpZ24iLCAvKiBuYW1lICovCiAgICAgICAgICAgICAgICAiaHRtbF90YWJsZV9yb3dfZWxlbWVu
dF9hbGlnbiIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCiAgICAgICAgICAgICAgICAicmVhZC13
cml0ZSAgZ2NoYXIgKiBIVE1MVGFibGVSb3dFbGVtZW50LmFsaWduIiwgLyogbG9uZ2VyIC0gY291
bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCiAgICAgICAgICAgICAgICAg
IiIsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAgICAoR1BhcmFtRmxhZ3MpR19QQVJBTV9S
RUFEV1JJVEUpKTsKCiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ19rbGFz
cywgUFJPUF9CR19DT0xPUiwKICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoImJnX2Nv
bG9yIiwgLyogbmFtZSAqLwogICAgICAgICAgICAgICAgImh0bWxfdGFibGVfcm93X2VsZW1lbnRf
YmdfY29sb3IiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwogICAgICAgICAgICAgICAgInJlYWQt
d3JpdGUgIGdjaGFyICogSFRNTFRhYmxlUm93RWxlbWVudC5iZ19jb2xvciIsIC8qIGxvbmdlciAt
IGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwogICAgICAgICAgICAg
ICAgICIiLCAvKiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKUdfUEFS
QU1fUkVBRFdSSVRFKSk7CgogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdf
a2xhc3MsIFBST1BfQ0gsCiAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJjaCIsIC8q
IG5hbWUgKi8KICAgICAgICAgICAgICAgICJodG1sX3RhYmxlX3Jvd19lbGVtZW50X2NoIiwgLyog
c2hvcnQgZGVzY3JpcHRpb24gKi8KICAgICAgICAgICAgICAgICJyZWFkLXdyaXRlICBnY2hhciAq
IEhUTUxUYWJsZVJvd0VsZW1lbnQuY2giLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUg
ZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KICAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAq
LwogICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncylHX1BBUkFNX1JFQURXUklURSkpOwoKICAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnX2tsYXNzLCBQUk9QX0NIX09GRiwK
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoImNoX29mZiIsIC8qIG5hbWUgKi8KICAg
ICAgICAgICAgICAgICJodG1sX3RhYmxlX3Jvd19lbGVtZW50X2NoX29mZiIsIC8qIHNob3J0IGRl
c2NyaXB0aW9uICovCiAgICAgICAgICAgICAgICAicmVhZC13cml0ZSAgZ2NoYXIgKiBIVE1MVGFi
bGVSb3dFbGVtZW50LmNoX29mZiIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRy
YSBkb2Mgc3R1ZmYgaGVyZSAqLwogICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCiAg
ICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKUdfUEFSQU1fUkVBRFdSSVRFKSk7CgogICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdfa2xhc3MsIFBST1BfVl9BTElHTiwKICAg
ICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoInZfYWxpZ24iLCAvKiBuYW1lICovCiAgICAg
ICAgICAgICAgICAiaHRtbF90YWJsZV9yb3dfZWxlbWVudF92X2FsaWduIiwgLyogc2hvcnQgZGVz
Y3JpcHRpb24gKi8KICAgICAgICAgICAgICAgICJyZWFkLXdyaXRlICBnY2hhciAqIEhUTUxUYWJs
ZVJvd0VsZW1lbnQudl9hbGlnbiIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRy
YSBkb2Mgc3R1ZmYgaGVyZSAqLwogICAgICAgICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCiAg
ICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKUdfUEFSQU1fUkVBRFdSSVRFKSk7CgoKCgp9Cgpz
dGF0aWMgdm9pZCBnZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfaW5pdChHZG9tSFRNTFRhYmxl
Um93RWxlbWVudCogcmVxdWVzdCkKewp9CgpHX0VORF9ERUNMUwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27646</attachid>
            <date>2009-02-13 01:13:43 -0800</date>
            <delta_ts>2009-02-13 01:13:43 -0800</delta_ts>
            <desc>GdomHTMLTableRowElement.h</desc>
            <filename>GdomHTMLTableRowElement.h</filename>
            <type>text/plain</type>
            <size>3717</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">LyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVj
dC4KICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3Mu
cGwuIERPIE5PVCBNT0RJRlkhCgogICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoK
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgogKi8KI2lmbmRlZiBfX0dkb21IVE1MVGFibGVSb3dFbGVtZW50X0hfXwojZGVmaW5lIF9fR2Rv
bUhUTUxUYWJsZVJvd0VsZW1lbnRfSF9fCiNpbmNsdWRlICJnZG9tL2dkb21kZWZpbmVzLmgiCiNp
bmNsdWRlIDxnbGliLW9iamVjdC5oPgojaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4K
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxFbGVtZW50LmgiCgoKR19CRUdJTl9ERUNMUwoKCiNkZWZp
bmUgR0RPTV9UWVBFX0hUTUxfVEFCTEVfUk9XX0VMRU1FTlQgICAgICAgICAgICAoZ2RvbV9odG1s
X3RhYmxlX3Jvd19lbGVtZW50X2dldF90eXBlKCkpCiNkZWZpbmUgR0RPTV9IVE1MX1RBQkxFX1JP
V19FTEVNRU5UKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9i
aiksIEdET01fVFlQRV9IVE1MX1RBQkxFX1JPV19FTEVNRU5ULCBHZG9tSFRNTFRhYmxlUm93RWxl
bWVudCkpCiNkZWZpbmUgR0RPTV9IVE1MX1RBQkxFX1JPV19FTEVNRU5UX0NMQVNTKGtsYXNzKSAg
ICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9IVE1MX1RBQkxF
X1JPV19FTEVNRU5ULCBHZG9tSFRNTFRhYmxlUm93RWxlbWVudClDbGFzcykKI2RlZmluZSBHRE9N
X0lTX0hUTUxfVEFCTEVfUk9XX0VMRU1FTlQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0hUTUxfVEFCTEVfUk9XX0VMRU1FTlQpKQojZGVm
aW5lIEdET01fSVNfSFRNTF9UQUJMRV9ST1dfRUxFTUVOVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9D
SEVDS19DTEFTU19UWVBFKChrbGFzcyksICBHRE9NX1RZUEVfSFRNTF9UQUJMRV9ST1dfRUxFTUVO
VCkpCiNkZWZpbmUgR0RPTV9IVE1MX1RBQkxFX1JPV19FTEVNRU5UX0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV9IVE1MX1RBQkxFX1JP
V19FTEVNRU5ULCBHZG9tSFRNTFRhYmxlUm93RWxlbWVudENsYXNzKSkKCnN0cnVjdCBfR2RvbUhU
TUxUYWJsZVJvd0VsZW1lbnQgewogICAgR2RvbUhUTUxFbGVtZW50IHBhcmVudF9pbnN0YW5jZTsK
fTsKCnN0cnVjdCBfR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnRDbGFzcyB7CiAgICBHT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOwp9OwoKV0VCS0lUX0FQSSBHVHlwZQpnZG9tX2h0bWxfdGFibGVfcm93
X2VsZW1lbnRfZ2V0X3R5cGUgKHZvaWQpOwoKV0VCS0lUX0FQSSBHZG9tSFRNTEVsZW1lbnQgKgpn
ZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfaW5zZXJ0X2NlbGwgKEdkb21IVE1MVGFibGVSb3dF
bGVtZW50ICp0aGl6LCBnbG9uZyBpbmRleCwgR0Vycm9yICoqZXJyb3IpOwoKV0VCS0lUX0FQSSB2
b2lkCmdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9kZWxldGVfY2VsbCAoR2RvbUhUTUxUYWJs
ZVJvd0VsZW1lbnQgKnRoaXosIGdsb25nIGluZGV4LCBHRXJyb3IgKiplcnJvcik7CgpXRUJLSVRf
QVBJIGdsb25nCmdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfcm93X2luZGV4IChHZG9t
SFRNTFRhYmxlUm93RWxlbWVudCAqdGhpeik7CgpXRUJLSVRfQVBJIGdsb25nCmdkb21faHRtbF90
YWJsZV9yb3dfZWxlbWVudF9nZXRfc2VjdGlvbl9yb3dfaW5kZXggKEdkb21IVE1MVGFibGVSb3dF
bGVtZW50ICp0aGl6KTsKCldFQktJVF9BUEkgR2RvbUhUTUxDb2xsZWN0aW9uICoKZ2RvbV9odG1s
X3RhYmxlX3Jvd19lbGVtZW50X2dldF9jZWxscyAoR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQgKnRo
aXopOwoKV0VCS0lUX0FQSSBnY2hhciAqCmdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRf
YWxpZ24gKEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp0aGl6KTsKCldFQktJVF9BUEkgdm9pZApn
ZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfc2V0X2FsaWduIChHZG9tSFRNTFRhYmxlUm93RWxl
bWVudCAqdGhpeiwgZ2NoYXIgKiB2YWx1ZSk7CgpXRUJLSVRfQVBJIGdjaGFyICoKZ2RvbV9odG1s
X3RhYmxlX3Jvd19lbGVtZW50X2dldF9iZ19jb2xvciAoR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQg
KnRoaXopOwoKV0VCS0lUX0FQSSB2b2lkCmdkb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRf
YmdfY29sb3IgKEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp0aGl6LCBnY2hhciAqIHZhbHVlKTsK
CldFQktJVF9BUEkgZ2NoYXIgKgpnZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X2NoIChH
ZG9tSFRNTFRhYmxlUm93RWxlbWVudCAqdGhpeik7CgpXRUJLSVRfQVBJIHZvaWQKZ2RvbV9odG1s
X3RhYmxlX3Jvd19lbGVtZW50X3NldF9jaCAoR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQgKnRoaXos
IGdjaGFyICogdmFsdWUpOwoKV0VCS0lUX0FQSSBnY2hhciAqCmdkb21faHRtbF90YWJsZV9yb3df
ZWxlbWVudF9nZXRfY2hfb2ZmIChHZG9tSFRNTFRhYmxlUm93RWxlbWVudCAqdGhpeik7CgpXRUJL
SVRfQVBJIHZvaWQKZ2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9jaF9vZmYgKEdkb21I
VE1MVGFibGVSb3dFbGVtZW50ICp0aGl6LCBnY2hhciAqIHZhbHVlKTsKCldFQktJVF9BUEkgZ2No
YXIgKgpnZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X3ZfYWxpZ24gKEdkb21IVE1MVGFi
bGVSb3dFbGVtZW50ICp0aGl6KTsKCldFQktJVF9BUEkgdm9pZApnZG9tX2h0bWxfdGFibGVfcm93
X2VsZW1lbnRfc2V0X3ZfYWxpZ24gKEdkb21IVE1MVGFibGVSb3dFbGVtZW50ICp0aGl6LCBnY2hh
ciAqIHZhbHVlKTsKCkdfRU5EX0RFQ0xTCgojZW5kaWYgLyogX19HZG9tSFRNTFRhYmxlUm93RWxl
bWVudF9IX18gKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27647</attachid>
            <date>2009-02-13 01:14:56 -0800</date>
            <delta_ts>2009-02-13 01:14:56 -0800</delta_ts>
            <desc>GdomAttr.cpp</desc>
            <filename>GdomAttr.cpp</filename>
            <type>text/plain</type>
            <size>7447</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">LyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVj
dC4KICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3Mu
cGwuIERPIE5PVCBNT0RJRlkhCgogICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoK
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgogKi8KCiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgojaW5jbHVkZSAiY29uZmlnLmgiCgojaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgojaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KI2luY2x1ZGUg
IkF0dHIuaCIKI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKI2luY2x1ZGUgIkVsZW1l
bnQuaCIKI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKI2luY2x1ZGUgImdkb20vR2RvbUF0dHIu
aCIKI2luY2x1ZGUgImdkb20vR2RvbUF0dHJQcml2YXRlLmgiCiNpbmNsdWRlICJnZG9tL0dkb21D
U1NTdHlsZURlY2xhcmF0aW9uLmgiCiNpbmNsdWRlICJnZG9tL0dkb21DU1NTdHlsZURlY2xhcmF0
aW9uUHJpdmF0ZS5oIgojaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oIgojaW5j
bHVkZSAiZ2RvbS9HZG9tRWxlbWVudC5oIgojaW5jbHVkZSAiZ2RvbS9HZG9tRWxlbWVudFByaXZh
dGUuaCIKI2luY2x1ZGUgImdkb20vR2RvbU5vZGUuaCIKI2luY2x1ZGUgImdkb20vR2RvbU5vZGVQ
cml2YXRlLmgiCiNpbmNsdWRlICJnZG9tL2dzdHJpbmdjb252ZXJ0LmgiCiNpbmNsdWRlICJnZG9t
YmluZGluZy5oIgojaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgoKZXh0ZXJuICJDIiB7CgpnY2hh
ciAqCmdkb21fYXR0cl9nZXRfbmFtZSAoR2RvbUF0dHIgKnRoaXopCnsKICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsICh0aGl6LCAwKTsKICAgIFdlYkNvcmU6OkF0dHIgKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHRoaXopOwogICAgZ2NoYXIgKiByZXMgPSBnZG9tX2dzdHJpbmdfY29udmVydChpdGVtLT5u
YW1lKCkpOwogICAgcmV0dXJuIHJlczsKCn0KCmdib29sZWFuCmdkb21fYXR0cl9nZXRfc3BlY2lm
aWVkIChHZG9tQXR0ciAqdGhpeikKewogICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHRoaXosIDAp
OwogICAgV2ViQ29yZTo6QXR0ciAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUodGhpeik7CiAgICBnYm9v
bGVhbiByZXMgPSBpdGVtLT5zcGVjaWZpZWQoKTsKICAgIHJldHVybiByZXM7Cgp9CgpHZG9tRWxl
bWVudCAqCmdkb21fYXR0cl9nZXRfb3duZXJfZWxlbWVudCAoR2RvbUF0dHIgKnRoaXopCnsKICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh0aGl6LCAwKTsKICAgIFdlYkNvcmU6OkF0dHIgKiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHRoaXopOwogICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBn
X3JlcyA9IFdURjo6Z2V0UHRyKGl0ZW0tPm93bmVyRWxlbWVudCgpKTsKICAgIEdkb21FbGVtZW50
ICogcmVzID0gc3RhdGljX2Nhc3Q8R2RvbUVsZW1lbnQgKj4oV2ViS2l0Ojp0b0dET00oZ19yZXMu
Z2V0KCkpKTsKICAgIHJldHVybiByZXM7Cgp9CgpHZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbiAqCmdk
b21fYXR0cl9nZXRfc3R5bGUgKEdkb21BdHRyICp0aGl6KQp7CiAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCAodGhpeiwgMCk7CiAgICBXZWJDb3JlOjpBdHRyICogaXRlbSA9IFdlYktpdDo6Y29yZSh0
aGl6KTsKICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbj4gZ19yZXMg
PSBXVEY6OmdldFB0cihpdGVtLT5zdHlsZSgpKTsKICAgIEdkb21DU1NTdHlsZURlY2xhcmF0aW9u
ICogcmVzID0gc3RhdGljX2Nhc3Q8R2RvbUNTU1N0eWxlRGVjbGFyYXRpb24gKj4oV2ViS2l0Ojp0
b0dET00oZ19yZXMuZ2V0KCkpKTsKICAgIHJldHVybiByZXM7Cgp9Cgp9IC8qIGV4dGVybiAiQyIg
Ki8KCgoKR19CRUdJTl9ERUNMUwoKR19ERUZJTkVfVFlQRShHZG9tQXR0ciwgZ2RvbV9hdHRyLCBH
RE9NX1RZUEVfTk9ERSk7CgpHX0VORF9ERUNMUwoKbmFtZXNwYWNlIFdlYktpdCB7CgpHZG9tQXR0
ciAqCndyYXBBdHRyKFdlYkNvcmU6OkF0dHIgKmNvcmVPYmplY3QpCnsKICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKGNvcmVPYmplY3QgIT0gTlVMTCwgTlVMTCk7CiAgICAKICAgIEdkb21BdHRyICp3
cmFwcGVyID0gR0RPTV9BVFRSKGdfb2JqZWN0X25ldyhHRE9NX1RZUEVfQVRUUiwgTlVMTCkpOwog
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwod3JhcHBlciAhPSBOVUxMLCBOVUxMKTsKICAgIAogICAg
Ly8gV2UgY2FsbCByZWYoKSByYXRoZXIgdGhhbiB1c2luZyBhIEMrKyBzbWFydCBwb2ludGVyIGJl
Y2F1c2Ugd2UgY2FuJ3Qgc3RvcmUgYSBDKysgb2JqZWN0CiAgICAvLyBpbiBhIEMtYWxsb2NhdGVk
IEdPYmplY3Qgc3RydWN0dXJlLiAgU2VlIHRoZSBmaW5hbGl6ZSgpIGNvZGUgZm9yIHRoZQogICAg
Ly8gbWF0Y2hpbmcgZGVyZWYoKS4KICAgIGNvcmVPYmplY3QtPnJlZigpOwogICAgR0RPTV9ET01f
T0JKRUNUKHdyYXBwZXIpLT5jb3JlT2JqZWN0ID0gY29yZU9iamVjdDsKCiAgICByZXR1cm4gd3Jh
cHBlcjsKfQoKV2ViQ29yZTo6QXR0ciAqCmNvcmUoR2RvbUF0dHIgKnJlcXVlc3QpCnsKICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHJlcXVlc3QgIT0gTlVMTCwgTlVMTCk7CiAgICAKICAgIFdlYkNv
cmU6OkF0dHIgKmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpBdHRyICo+KEdET01f
RE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7CiAgICBnX2Fzc2VydChjb3JlT2JqZWN0
ICE9IE5VTEwpOwogICAgCiAgICByZXR1cm4gY29yZU9iamVjdDsKfQoKfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CgpHX0JFR0lOX0RFQ0xTCgplbnVtIHsKICAgIFBST1BfMCwKICAgIFBST1BfTkFNRSwK
ICAgIFBST1BfU1BFQ0lGSUVELAogICAgUFJPUF9PV05FUl9FTEVNRU5ULAogICAgUFJPUF9TVFlM
RSwKfTsKCgpzdGF0aWMgdm9pZCBnZG9tX2F0dHJfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQp7
CiAgICBHZG9tRE9NT2JqZWN0KiBkb21fb2JqZWN0ID0gR0RPTV9ET01fT0JKRUNUKG9iamVjdCk7
CiAgICAKICAgIGlmKGRvbV9vYmplY3QgIT0gTlVMTCkKICAgIHsKICAgICAgICBpZihkb21fb2Jq
ZWN0LT5jb3JlT2JqZWN0ICE9IE5VTEwpCiAgICAgICAgewogICAgICAgICAgICBXZWJDb3JlOjpB
dHRyICpjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6QXR0ciAqPihkb21fb2JqZWN0
LT5jb3JlT2JqZWN0KTsKICAgICAgICAgICAgY29yZU9iamVjdC0+ZGVyZWYoKTsKICAgICAgICAg
ICAgCiAgICAgICAgICAgIGRvbV9vYmplY3QtPmNvcmVPYmplY3QgPSBOVUxMOwogICAgICAgICAg
ICAKICAgICAgICAgICAgV2ViS2l0OjpHRE9NT2JqZWN0Q2FjaGU6OmZvcmdldERPTU9iamVjdChj
b3JlT2JqZWN0KTsKICAgICAgICB9CiAgICB9CgogICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9hdHRy
X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cn0KCnN0YXRpYyB2b2lkIGdkb21fYXR0
cl9fc2V0X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCiAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLAogICAgICAgICAgICAgICAgICAg
ICBHUGFyYW1TcGVjICogcHNwZWMpCnsKICAgIEdkb21BdHRyICpzZWxmID0gR0RPTV9BVFRSKG9i
amVjdCk7CiAgICBXZWJDb3JlOjpBdHRyICogZ3NlbGYgPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAg
ICBzd2l0Y2ggKHByb3BfaWQpIHsKICAgICBkZWZhdWx0OgogICAgICAgIEdfT0JKRUNUX1dBUk5f
SU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKICAgICAgICBicmVh
azsKICAgIH0KfQoKCnN0YXRpYyB2b2lkIGdkb21fYXR0cl9fZ2V0X3Byb3BlcnR5X2ZuKEdPYmpl
Y3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCiAgICAgICAgICAgICAgICAgICAgIEdWYWx1ZSAq
IHZhbHVlLAogICAgICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICogcHNwZWMpCnsKICAgIEdk
b21BdHRyICpzZWxmID0gR0RPTV9BVFRSKG9iamVjdCk7CiAgICBXZWJDb3JlOjpBdHRyICogZ3Nl
bGYgPSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAgICBzd2l0Y2ggKHByb3BfaWQpIHsKICAgIGNhc2Ug
UFJPUF9OQU1FOgogICAgewogICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nICh2YWx1ZSwgZ2Rv
bV9nc3RyaW5nX2NvbnZlcnQoZ3NlbGYtPm5hbWUoKSkpOwogICAgICAgICBicmVhazsKICAgIH0K
ICAgIGNhc2UgUFJPUF9TUEVDSUZJRUQ6CiAgICB7CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xl
YW4gKHZhbHVlLCBnc2VsZi0+c3BlY2lmaWVkKCkpOwogICAgICAgICBicmVhazsKICAgIH0KICAg
IGNhc2UgUFJPUF9PV05FUl9FTEVNRU5UOgogICAgewogICAgICAgICBQYXNzUmVmUHRyPFdlYkNv
cmU6OkVsZW1lbnQ+IHB0ciA9IGdzZWxmLT5vd25lckVsZW1lbnQoKTsKICAgICAgICBnX3ZhbHVl
X3NldF9vYmplY3QgKHZhbHVlLCBXZWJLaXQ6OnRvR0RPTShwdHIuZ2V0KCkpKTsKICAgICAgICAg
YnJlYWs7CiAgICB9CiAgICBjYXNlIFBST1BfU1RZTEU6CiAgICB7CiAgICAgICAgIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbj4gcHRyID0gZ3NlbGYtPnN0eWxlKCk7CiAg
ICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0ICh2YWx1ZSwgV2ViS2l0Ojp0b0dET00ocHRyLmdldCgp
KSk7CiAgICAgICAgIGJyZWFrOwogICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgR19PQkpFQ1Rf
V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgICAg
IGJyZWFrOwogICAgfQp9CgoKc3RhdGljIHZvaWQgZ2RvbV9hdHRyX2NsYXNzX2luaXQoR2RvbUF0
dHJDbGFzcyogcmVxdWVzdENsYXNzKQp7CiAgICBHT2JqZWN0Q2xhc3MgKmdfa2xhc3MgPSBHX09C
SkVDVF9DTEFTUyAocmVxdWVzdENsYXNzKTsKICAgIGdfa2xhc3MtPmZpbmFsaXplID0gZ2RvbV9h
dHRyX2ZpbmFsaXplOwogICAgZ19rbGFzcy0+c2V0X3Byb3BlcnR5ID0gZ2RvbV9hdHRyX19zZXRf
cHJvcGVydHlfZm47CiAgICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSBnZG9tX2F0dHJfX2dldF9w
cm9wZXJ0eV9mbjsKCiAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnX2tsYXNz
LCBQUk9QX05BTUUsCiAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJuYW1lIiwgLyog
bmFtZSAqLwogICAgICAgICAgICAgICAgImF0dHJfbmFtZSIsIC8qIHNob3J0IGRlc2NyaXB0aW9u
ICovCiAgICAgICAgICAgICAgICAicmVhZC1vbmx5ICBnY2hhciAqIEF0dHIubmFtZSIsIC8qIGxv
bmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwogICAgICAg
ICAgICAgICAgICIiLCAvKiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdz
KUdfUEFSQU1fUkVBREFCTEUpKTsKCiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eSAoZ19rbGFzcywgUFJPUF9TUEVDSUZJRUQsCiAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29s
ZWFuICgic3BlY2lmaWVkIiwgLyogbmFtZSAqLwogICAgICAgICAgICAgICAgImF0dHJfc3BlY2lm
aWVkIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KICAgICAgICAgICAgICAgICJyZWFkLW9ubHkg
IGdib29sZWFuIEF0dHIuc3BlY2lmaWVkIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21l
IGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCiAgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1
bHQgKi8KICAgICAgICAgICAgICAgICAoR1BhcmFtRmxhZ3MpR19QQVJBTV9SRUFEQUJMRSkpOwoK
ICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnX2tsYXNzLCBQUk9QX09XTkVS
X0VMRU1FTlQsCiAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QgKCJvd25lcl9lbGVtZW50
IiwgLyogbmFtZSAqLwogICAgICAgICAgICAgICAgImF0dHJfb3duZXJfZWxlbWVudCIsIC8qIHNo
b3J0IGRlc2NyaXB0aW9uICovCiAgICAgICAgICAgICAgICAicmVhZC1vbmx5ICBHZG9tRWxlbWVu
dCAqIEF0dHIub3duZXJfZWxlbWVudCIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBl
eHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwogICAgICAgICAgICAgICAgIEdET01fVFlQRV9FTEVNRU5U
LCAvKiBnb2JqZWN0IHR5cGUgKi8KICAgICAgICAgICAgICAgICAoR1BhcmFtRmxhZ3MpR19QQVJB
TV9SRUFEQUJMRSkpOwoKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnX2ts
YXNzLCBQUk9QX1NUWUxFLAogICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0ICgic3R5bGUi
LCAvKiBuYW1lICovCiAgICAgICAgICAgICAgICAiYXR0cl9zdHlsZSIsIC8qIHNob3J0IGRlc2Ny
aXB0aW9uICovCiAgICAgICAgICAgICAgICAicmVhZC1vbmx5ICBHZG9tQ1NTU3R5bGVEZWNsYXJh
dGlvbiAqIEF0dHIuc3R5bGUiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEg
ZG9jIHN0dWZmIGhlcmUgKi8KICAgICAgICAgICAgICAgICBHRE9NX1RZUEVfQ1NTX1NUWUxFX0RF
Q0xBUkFUSU9OLCAvKiBnb2JqZWN0IHR5cGUgKi8KICAgICAgICAgICAgICAgICAoR1BhcmFtRmxh
Z3MpR19QQVJBTV9SRUFEQUJMRSkpOwoKCgoKfQoKc3RhdGljIHZvaWQgZ2RvbV9hdHRyX2luaXQo
R2RvbUF0dHIqIHJlcXVlc3QpCnsKfQoKR19FTkRfREVDTFMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27648</attachid>
            <date>2009-02-13 01:15:29 -0800</date>
            <delta_ts>2009-02-13 01:15:29 -0800</delta_ts>
            <desc>GdomAttr.h</desc>
            <filename>GdomAttr.h</filename>
            <type>text/plain</type>
            <size>2092</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">LyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVj
dC4KICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3Mu
cGwuIERPIE5PVCBNT0RJRlkhCgogICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoK
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgogKi8KI2lmbmRlZiBfX0dkb21BdHRyX0hfXwojZGVmaW5lIF9fR2RvbUF0dHJfSF9fCiNpbmNs
dWRlICJnZG9tL2dkb21kZWZpbmVzLmgiCiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgojaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KI2luY2x1ZGUgImdkb20vR2RvbU5vZGUuaCIKCgpH
X0JFR0lOX0RFQ0xTCgoKI2RlZmluZSBHRE9NX1RZUEVfQVRUUiAgICAgICAgICAgIChnZG9tX2F0
dHJfZ2V0X3R5cGUoKSkKI2RlZmluZSBHRE9NX0FUVFIob2JqKSAgICAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9UWVBFX0FUVFIsIEdkb21BdHRyKSkKI2Rl
ZmluZSBHRE9NX0FUVFJfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgo
a2xhc3MpLCAgR0RPTV9UWVBFX0FUVFIsIEdkb21BdHRyKUNsYXNzKQojZGVmaW5lIEdET01fSVNf
QVRUUihvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9N
X1RZUEVfQVRUUikpCiNkZWZpbmUgR0RPTV9JU19BVFRSX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NI
RUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9BVFRSKSkKI2RlZmluZSBHRE9NX0FU
VFJfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgR0RP
TV9UWVBFX0FUVFIsIEdkb21BdHRyQ2xhc3MpKQoKc3RydWN0IF9HZG9tQXR0ciB7CiAgICBHZG9t
Tm9kZSBwYXJlbnRfaW5zdGFuY2U7Cn07CgpzdHJ1Y3QgX0dkb21BdHRyQ2xhc3MgewogICAgR09i
amVjdENsYXNzIHBhcmVudF9jbGFzczsKfTsKCldFQktJVF9BUEkgR1R5cGUKZ2RvbV9hdHRyX2dl
dF90eXBlICh2b2lkKTsKCldFQktJVF9BUEkgZ2NoYXIgKgpnZG9tX2F0dHJfZ2V0X25hbWUgKEdk
b21BdHRyICp0aGl6KTsKCldFQktJVF9BUEkgZ2Jvb2xlYW4KZ2RvbV9hdHRyX2dldF9zcGVjaWZp
ZWQgKEdkb21BdHRyICp0aGl6KTsKCldFQktJVF9BUEkgR2RvbUVsZW1lbnQgKgpnZG9tX2F0dHJf
Z2V0X293bmVyX2VsZW1lbnQgKEdkb21BdHRyICp0aGl6KTsKCldFQktJVF9BUEkgR2RvbUNTU1N0
eWxlRGVjbGFyYXRpb24gKgpnZG9tX2F0dHJfZ2V0X3N0eWxlIChHZG9tQXR0ciAqdGhpeik7CgpH
X0VORF9ERUNMUwoKI2VuZGlmIC8qIF9fR2RvbUF0dHJfSF9fICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27649</attachid>
            <date>2009-02-13 01:33:52 -0800</date>
            <delta_ts>2009-02-13 01:33:52 -0800</delta_ts>
            <desc>GdomAttrPrivate.h</desc>
            <filename>GdomAttrPrivate.h</filename>
            <type>text/plain</type>
            <size>1424</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">LyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVj
dC4KICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3Mu
cGwuIERPIE5PVCBNT0RJRlkhCgogICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoK
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgogKi8KCiNpZm5kZWYgR0RPTV9BVFRSX1BSSVZBVEVfSAojZGVmaW5lIEdET01fQVRUUl9QUklW
QVRFX0gKCiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgojaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZS5o
PgojaW5jbHVkZSAiQXR0ci5oIgojaW5jbHVkZSAiZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oIgojaW5jbHVkZSAiZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvblByaXZhdGUuaCIKI2lu
Y2x1ZGUgImdkb20vR2RvbUVsZW1lbnQuaCIKI2luY2x1ZGUgImdkb20vR2RvbUVsZW1lbnRQcml2
YXRlLmgiCgp0eXBlZGVmIHN0cnVjdCBfR2RvbUF0dHIgR2RvbUF0dHI7CgpuYW1lc3BhY2UgV2Vi
S2l0IHsKICAgIEdkb21BdHRyICoKICAgIHdyYXBBdHRyKFdlYkNvcmU6OkF0dHIgKmNvcmVPYmpl
Y3QpOwoKICAgIFdlYkNvcmU6OkF0dHIgKgogICAgY29yZShHZG9tQXR0ciAqcmVxdWVzdCk7Cgp9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKCiNlbmRpZiAvKiBHRE9NX0FUVFJfUFJJVkFURV9IICovCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27650</attachid>
            <date>2009-02-13 01:34:29 -0800</date>
            <delta_ts>2009-02-13 01:34:29 -0800</delta_ts>
            <desc>GdomHTMLTableRowElementPrivate.h</desc>
            <filename>GdomHTMLTableRowElementPrivate.h</filename>
            <type>text/plain</type>
            <size>1528</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">LyoKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVj
dC4KICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3Mu
cGwuIERPIE5PVCBNT0RJRlkhCgogICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogICAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoK
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgogKi8KCiNpZm5kZWYgR0RPTV9IVE1MX1RBQkxFX1JPV19FTEVNRU5UX1BSSVZBVEVfSAojZGVm
aW5lIEdET01fSFRNTF9UQUJMRV9ST1dfRUxFTUVOVF9QUklWQVRFX0gKCiNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgojaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEVsZW1lbnQuaD4KI2luY2x1ZGUgIkhU
TUxUYWJsZVJvd0VsZW1lbnQuaCIKI2luY2x1ZGUgImdkb20vR2RvbUhUTUxDb2xsZWN0aW9uLmgi
CiNpbmNsdWRlICJnZG9tL0dkb21IVE1MQ29sbGVjdGlvblByaXZhdGUuaCIKCnR5cGVkZWYgc3Ry
dWN0IF9HZG9tSFRNTFRhYmxlUm93RWxlbWVudCBHZG9tSFRNTFRhYmxlUm93RWxlbWVudDsKCm5h
bWVzcGFjZSBXZWJLaXQgewogICAgR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQgKgogICAgd3JhcEhU
TUxUYWJsZVJvd0VsZW1lbnQoV2ViQ29yZTo6SFRNTFRhYmxlUm93RWxlbWVudCAqY29yZU9iamVj
dCk7CgogICAgV2ViQ29yZTo6SFRNTFRhYmxlUm93RWxlbWVudCAqCiAgICBjb3JlKEdkb21IVE1M
VGFibGVSb3dFbGVtZW50ICpyZXF1ZXN0KTsKCn0gLy8gbmFtZXNwYWNlIFdlYktpdAoKI2VuZGlm
IC8qIEdET01fSFRNTF9UQUJMRV9ST1dfRUxFTUVOVF9QUklWQVRFX0ggKi8KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27762</attachid>
            <date>2009-02-18 14:28:30 -0800</date>
            <delta_ts>2009-04-21 17:06:20 -0700</delta_ts>
            <desc>new patch, updated to revision 41018</desc>
            <filename>dom_feb18.diff</filename>
            <type>text/plain</type>
            <size>110491</size>
            <attacher name="Adam Dingle">adam</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA0MTAxOCkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtMTAzLDcgKzEwNCw4IEBACiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGlu
Z0hlYWRlcnMgXAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3BhcnNlciBcCiAJLUkkKHNy
Y2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwKLQktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291
cmNlcworCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzIFwKKwktSSQoc3JjZGlyKS9X
ZWJDb3JlL2JpbmRpbmdzL2dkb20KIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFyZSBhbHJlYWR5
IGluY2x1ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFyaWFibGVzIHVu
bGVzcyB5b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTE1MCw2ICsxNTIsMTEgQEAKIHdlYmNvcmVndGtf
Y3BwZmxhZ3MgOj0KIHdlYmNvcmVndGtfc291cmNlcyA6PQogCit3ZWJjb3JlZ3RrX2NwcGZsYWdz
ICs9IFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy9nZG9tIFwKKwktSSQoc3Jj
ZGlyKS9XZWJDb3JlL2JpbmRpbmdzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dk
b20KKwogbm9kaXN0X0VYVFJBX2xpYldlYkNvcmVfbGFfU09VUkNFUyA9IFwKIAkkKHdlYmNvcmVf
YnVpbHRfbm9zb3VyY2VzKQogCkBAIC0xOTQsNiArMjAxLDcgQEAKIGxpYldlYkNvcmVfbGFfTElC
QUREID0gXAogCWxpYkphdmFTY3JpcHRDb3JlLmxhIFwKIAlsaWJXZWJDb3JlSlMubGEgXAorCWxp
Ymdkb20ubGEgXAogCSQod2ViY29yZV9saWJhZGQpIFwKIAkkKEdMSUJfTElCUykgXAogCSQoTElC
WE1MX0xJQlMpIFwKQEAgLTIxNCw2ICsyMjIsMTAgQEAKIAkkKEdFT0NMVUVfTElCUykgXAogCS1s
cHRocmVhZAogCitsaWJnZG9tX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0LTEuMC9n
ZG9tCitsaWJnZG9tX2xhX0hFQURFUlMgPSBcCisgICAgICAgICQobGliZ2RvbV9oX2FwaSkKKwog
IyBXZWJLaXQKIHdlYmtpdGd0a19oX2FwaSA6PQogd2Via2l0Z3RrX3NvdXJjZXMgOj0KQEAgLTM1
Niw3ICszNjgsOCBAQAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJChzcmNkaXIpL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0
IFwKLQktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdAorCS1JJCh0b3BfYnVpbGRk
aXIpL1dlYktpdC9ndGsvd2Via2l0IFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNl
cwogCiB3ZWJraXRndGtfY2xlYW5maWxlcyArPSBcCiAJJCh0b3BfYnVpbGRkaXIpL1Byb2dyYW1z
L0d0a0xhdW5jaGVyIFwKQEAgLTQ0OCw2ICs0NjEsNTIgQEAKIAkmJiBjcCB4Z2VuLWd0YyAkQCBc
CiAJJiYgcm0gLWYgeGdlbi1ndGMKIAorV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5o
OiBzdGFtcC1nZG9tZW51bXR5cGVzLmgKKwlAdHJ1ZQorc3RhbXAtZ2RvbWVudW10eXBlcy5oOiAk
KGxpYmdkb21faF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYgZ2xpYi1t
a2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpZm5kZWYgR0RPTV9FTlVNX1RZUEVTX0hcbiIgXAorCQkJ
LS1maGVhZCAiI2RlZmluZSBHRE9NX0VOVU1fVFlQRVNfSFxuXG4iIFwKKwkJCS0tZmhlYWQgIiNp
bmNsdWRlIDxnbGliLW9iamVjdC5oPlxuXG4iIFwKKwkJCS0tZmhlYWQgIkdfQkVHSU5fREVDTFNc
blxuIiBcCisJCQktLWZ0YWlsICJHX0VORF9ERUNMU1xuXG4iIFwKKwkJCS0tZnRhaWwgIiNlbmRp
ZlxuIiBcCisJCQktLWZwcm9kICIjaW5jbHVkZSA8QGZpbGVuYW1lQD5cblxuIiBcCisJCQktLWVw
cm9kICIjZGVmaW5lIEdET01fVFlQRV9ARU5VTVNIT1JUQCBAZW51bV9uYW1lQF9nZXRfdHlwZSgp
XG5cbiIgXAorCQkJLS1lcHJvZCAiV0VCS0lUX0FQSSBHVHlwZVxuQGVudW1fbmFtZUBfZ2V0X3R5
cGUodm9pZCk7XG5cbiIgXAorCQkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJCXNlZCAncyxXZWJL
aXQvZ3RrLywsJyB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIHwgXAorCQlzZWQgJ3MsR0RP
TV9UWVBFX0tJVCxHRE9NX1RZUEUsJyBcCisJCSkgPiB4Z2VuLWNndGggXAorCSYmIChjbXAgLXMg
eGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCB8fCBjcCB4Z2VuLWNn
dGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oKSBcCisJJiYgcm0gLWYgeGdlbi1j
Z3RoIFwKKwkmJiBlY2hvIHRpbWVzdGFtcCA+ICQoQEYpCisKK0Rlcml2ZWRTb3VyY2VzL2dkb21l
bnVtdHlwZXMuY3BwOiAkKGxpYmdkb21faF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGly
KSBcCisJJiYgZ2xpYi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpbmNsdWRlIDxjb25maWcuaD5c
biIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG4iIFwKKwkJCS0tZmhl
YWQgIiNpbmNsdWRlIFwiJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0L2dkb21lbnVt
dHlwZXMuaFwiXG5cbiIgXAorCQkJLS1maGVhZCAiZXh0ZXJuIFwiQ1wiIHtcblxuIiBcCisJCQkt
LWZwcm9kICJcbi8qIGVudW1lcmF0aW9ucyBmcm9tIFwiQGZpbGVuYW1lQFwiICovIiBcCisJCQkt
LXZoZWFkICJzdGF0aWMgY29uc3QgR0BUeXBlQFZhbHVlIF9AZW51bV9uYW1lQF92YWx1ZXNbXSA9
IHsiIFwKKwkJCS0tdnByb2QgIiAgICB7IEBWQUxVRU5BTUVALCBcIkBWQUxVRU5BTUVAXCIsIFwi
QHZhbHVlbmlja0BcIiB9LCIgXAorCQkJLS12dGFpbCAiICAgIHsgMCwgTlVMTCwgTlVMTCB9XG59
O1xuXG4iIFwKKwkJCS0tdnRhaWwgIkdUeXBlIEBlbnVtX25hbWVAX2dldF90eXBlKHZvaWQpXG57
XG4iIFwKKwkJCS0tdnRhaWwgIiAgICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7XG5cbiIgXAorCQkJ
LS12dGFpbCAiICAgIGlmICghdHlwZSlcbiIgXAorCQkJLS12dGFpbCAiICAgICAgICB0eXBlID0g
Z19AdHlwZUBfcmVnaXN0ZXJfc3RhdGljKFwiQEVudW1OYW1lQFwiLCBfQGVudW1fbmFtZUBfdmFs
dWVzKTtcblxuIiBcCisJCQktLXZ0YWlsICIgICAgcmV0dXJuIHR5cGU7XG59XG5cbiIgXAorCQkJ
LS1mdGFpbCAifVxuIiBcCisJCSQobGliZ2RvbV9oX2FwaSkgfCBcCisJCXNlZCAncyx3ZWJfa2l0
LGdkb20sJyBcCisJCSkgPiB4Z2VuLWNndGMgXAorCSYmIGNwIHhnZW4tY2d0YyAkQCBcCisJJiYg
cm0gLWYgeGdlbi1jZ3RjCisKICMgRU5EIFdFQktJVCBHVEsrCiAjCiAjIEZpbGVzIHRoYXQgd2ls
bCBiZSBkaXN0cmlidXRlZApAQCAtNDcwLDYgKzUyOSw3IEBACiAjIEJ1aWxkIHVuaXQgdGVzdAog
bm9pbnN0X1BST0dSQU1TICs9IFByb2dyYW1zL1VuaXRUZXN0cwogUHJvZ3JhbXNfVW5pdFRlc3Rz
X0NQUEZMQUdTID0gXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MgXAogCS1JJChzcmNk
aXIpL1dlYktpdC9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsgXAogCSQoZ2xv
YmFsX2NwcGZsYWdzKSBcCkBAIC00OTYsNyArNTU2LDggQEAKIAkkKHdlYmNvcmVfYnVpbHRfc291
cmNlcykgXAogCSQod2ViY29yZV9idWlsdF9ub3NvdXJjZXMpIFwKIAkkKHdlYmtpdGd0a19idWls
dF9zb3VyY2VzKSBcCi0JJCh3ZWJraXRndGtfYnVpbHRfbm9zb3VyY2VzKQorCSQod2Via2l0Z3Rr
X2J1aWx0X25vc291cmNlcykgXAorCSQoZ2RvbV9idWlsdF9ub3NvdXJjZXMpCiAKICMgUHJvamVj
dC13aWRlIGNsZWFuIHJ1bGVzCiBDTEVBTkZJTEVTICs9IFwKSW5kZXg6IFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDQxMDE4KQorKysgV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01LDYgKzUsNyBAQAogICogQ29w
eXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgog
ICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDggTnVhbnRpIEx0ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29u
IExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNSwxNCAr
MzYsMjMgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEd0ay5oIgogI2luY2x1ZGUgIkZy
YW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgImdkb21iaW5kaW5n
LmgiCisjaW5jbHVkZSAiR2RvbURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkdkb21ET01XaW5kb3dQ
cml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3Vt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUg
Ikdkb21YTUxIdHRwUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIlByaW50Q29udGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlRleHREb2N1bWVudC5o
IgogI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgiCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9BUElDYXN0Lmg+CkBAIC0zMjksNiArMzM5LDU4IEBACiB9CiAKIC8qKgorICogd2Via2l0X3dl
Yl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJh
bWUKKyAqCisgKiByZXR1cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhbiBYTUxIdHRwUmVxdWVz
dAorICoKKyAqIFJldHVybiB2YWx1ZTogYSBHZG9tWE1MSHR0cFJlcXVlc3QKKyAqLworR2RvbVhN
TEh0dHBSZXF1ZXN0KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0KFdlYktp
dFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShm
cmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisgICAgcmV0dXJuIEdET01fWE1MX0hUVFBf
UkVRVUVTVChXZWJLaXQ6OnRvR0RPTShYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKGNvcmVGcmFtZS0+
ZG9jdW1lbnQoKSkuZ2V0KCkpKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9k
b21fd2luZG93OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMg
YSBHZG9tIHdyYXBwZXIgYXJvdW5kIGEgRE9NV2luZG93CisgKgorICogUmV0dXJuIHZhbHVlOiBh
IEdkb21ET01XaW5kb3cKKyAqLworR2RvbURPTVdpbmRvdyogd2Via2l0X3dlYl9mcmFtZV9nZXRf
ZG9tX3dpbmRvdyhXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgRnJhbWUqIGNv
cmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIFBhc3NS
ZWZQdHI8RE9NV2luZG93PiB3aW4gPSBjb3JlRnJhbWUtPmRvbVdpbmRvdygpOworICAgIHJldHVy
biBHRE9NX0RPTV9XSU5ET1coV2ViS2l0Ojp0b0dET00od2luLmdldCgpKSk7Cit9CisKKy8qKgor
ICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50OgorICogQGZyYW1lOiBhICNXZWJL
aXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGEgRG9jdW1l
bnQgCisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21Eb2N1bWVudAorICovCitHZG9tRG9jdW1l
bnQqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJGcmFtZSogZnJh
bWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFt
ZSksIE5VTEwpOworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFT
U0VSVChjb3JlRnJhbWUpOworICAgIHJldHVybiBHRE9NX0RPQ1VNRU5UKFdlYktpdDo6dG9HRE9N
KGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X25hbWU6CiAgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCiAgKgpJbmRleDogV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJmcmFtZS5oCShyZXZpc2lvbiA0MTAxOCkKKysrIFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0yNiw2ICsyNyw5IEBACiAKICNpbmNsdWRlIDx3ZWJraXQvd2Vi
a2l0ZGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbURvY3VtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9NV2lu
ZG93Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuaD4KIAogR19CRUdJTl9E
RUNMUwogCkBAIC02NSw2ICs2OSwxNSBAQAogd2Via2l0X3dlYl9mcmFtZV9uZXcgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7CiAjZW5kaWYKIAorV0VCS0lU
X0FQSSBHZG9tWE1MSHR0cFJlcXVlc3QgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBf
cmVxdWVzdCAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQ
SSBHZG9tRE9NV2luZG93ICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3cgICAgICAg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKK1dFQktJVF9BUEkgR2RvbURvY3VtZW50
ICoKK3dlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudCAgICAgICAoV2ViS2l0V2ViRnJh
bWUgICAgICAgKmZyYW1lKTsKKwogV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3ICoKIHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3dlYl92aWV3ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUp
OwogCkluZGV4OiBXZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9DaGFuZ2VM
b2cJKHJldmlzaW9uIDQxMDE4KQorKysgV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEwIEBACisyMDA5LTAyLTE4ICBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9u
IDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIEltcGxlbWVudGVkIEdUSyBET00gYmluZGluZy4K
KworICAgICAgICAqIGd0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAqIGd0
ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaDoKKwogMjAwOS0wMi0xMyAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgKiBTdHJpbmdzTm90VG9CZUxvY2FsaXplZC50eHQ6
IFVwZGF0ZWQgZm9yIHJlY2VudCBjaGFuZ2VzLgpJbmRleDogV2ViQ29yZS9kb20vS2V5Ym9hcmRF
dmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwJKHJl
dmlzaW9uIDQxMDE4KQorKysgV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTYyLDcgKzYyLDkgQEAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKLSAg
ICAgICAgCisKKyAgICAgICAgLy8gRklYTUU6IEdPYmplY3QgaXMgaW4gQywgd2hpY2ggZG9lcyBu
b3Qgc3VwcG9ydCBvdmVybG9hZGVkIGZ1bmN0aW9ucworI2lmICFkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpCiAgICAgICAgIHZvaWQgaW5pdEtleWJvYXJkRXZlbnQoaW4gRE9NU3RyaW5nIHR5cGUs
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbmNlbGFibGUsIApA
QCAtNzUsNiArNzcsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xl
YW4gbWV0YUtleSk7CiAjZW5kaWYKIAorI2VuZGlmCisKICAgICB9OwogCiB9CkluZGV4OiBXZWJD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24g
NDEwMTgpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIz
IEBACisyMDA5LTAyLTE4ICBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wu
bmV0PgorICAgICAgICAgICAgTWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorICAg
ICAgICAgICAgQWRhbSBEaW5nbGUgPGFkYW1AeW9yYmEub3JnPgorICAgICAgICAgICAgSmltIE5l
bHNvbiA8amltQHlvcmJhLm9yZz4KKyAgICAgICAgICAgIAorICAgICAgICBJbXBsZW1lbnRlZCBH
VEsgRE9NIGJpbmRpbmcuCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL2dkb21iaW5kaW5nLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL2dkb21iaW5kaW5nLmg6CisgICAgICAgICogYmlu
ZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dk
b21ET01PYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3RQcml2
YXRlLmg6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9nZG9taHRtbGVsZW1lbnR3cmFwcGVyZmFj
dG9yeS5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9nZG9taHRtbGVsZW1lbnR3cmFwcGVy
ZmFjdG9yeS5oOgorICAgICAgICAqIGJpbmRpbmdzL2dkb20vZ3N0cmluZ2NvbnZlcnQuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5wbDoKKyAgICAgICAgKiBkb20v
S2V5Ym9hcmRFdmVudC5pZGw6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisKIDIwMDktMDIt
MTUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIGR1
cGxpY2F0ZSBjYXJldFdpZHRoIGNvbnN0YW50cyB0byBSZW5kZXJPYmplY3QuaApJbmRleDogV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CShyZXZpc2lvbiA0MTAxOCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEsNyArMSw3IEBACiAKIFdlYkNvcmUgOj0gJChzcmNkaXIpL1dlYkNvcmUKIAotRkVB
VFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgOj0gTEFOR1VBR0VfSkFWQVNDUklQVD0xCitGRUFUVVJF
X0RFRklORVMgOj0KIFNWR19GRUFUVVJFUyA6PQogSFRNTF9GRUFUVVJFUyA6PQogCkBAIC05LDcg
KzksMTEgQEAKIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTIDo9ICQoV2ViQ29yZSkvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4KIAogd2ViY29yZV9jcHBmbGFncyArPSBcCisgICAgLUkkKHNyY2Rp
cikvV2ViS2l0L2d0ayBcCisgICAgLUkkKHNyY2RpcikvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dCBcCisgICAgLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAogCS1JJChzcmNkaXIpL1dl
YkNvcmUgXAorIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20gXAogCS1JJChzcmNk
aXIpL1dlYkNvcmUvYmluZGluZ3MvanMgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYnJpZGdlIFwK
IAktSSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZS9jIFwKQEAgLTU2LDYgKzYwLDcgQEAKIAlEZXJp
dmVkU291cmNlcy9Eb2NUeXBlU3RyaW5ncy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3Rva2VuaXpl
ci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0NvbG9yRGF0YS5jIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL2dkb21kdW1teS5jIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5s
dXQuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmx1dC5oCiAKQEAgLTIzOCw2
ICsyNDMsMTUgQEAKIAlXZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmlkbCBcCiAJV2ViQ29yZS94
bWwvWFNMVFByb2Nlc3Nvci5pZGwKIAord2ViY29yZWd0a19zb3VyY2VzICs9IFwKKwlXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vZ2RvbWJpbmRpbmcuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20v
Z2RvbWJpbmRpbmcuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3Bw
IFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oIFwKKwlXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR2RvbURPTU9iamVjdFByaXZhdGUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL2dkb21odG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmNwcCBcCisJV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL2dkb21odG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmggCisKIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMv
Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCkBAIC0xODY1LDcgKzE4NzksNyBAQAogIyBP
ZmZsaW5lIFdlYiBBcHBsaWNhdGlvbnMKICMgLS0tLQogaWYgRU5BQkxFX09GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUwotRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX09GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUz0xCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKQEAgLTE5MDYsNyArMTkyMCw3IEBACiAjIERh
dGFiYXNlIFN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxFX0RBVEFCQVNFCi1GRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfREFUQUJBU0U9MQorRkVBVFVSRV9ERUZJTkVTICs9IEVO
QUJMRV9EQVRBQkFTRT0xCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL0Rh
dGFiYXNlLmlkbCBcCkBAIC0xOTc5LDcgKzE5OTMsNyBAQAogIyBIVE1MNSBjbGllbnQtc2lkZSBz
ZXNzaW9uIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UKICMgLS0tLQogaWYgRU5BQkxFX0RPTV9TVE9S
QUdFCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfRE9NX1NUT1JBR0U9MQor
RkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9ET01fU1RPUkFHRT0xCiAKIElETF9CSU5ESU5HUyAr
PSBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKQEAgLTIwMzgsNyArMjA1Miw3IEBA
CiAjIFZpZGVvIFN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCi1GRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJM
RV9WSURFTz0xCiAKIEhUTUxfRkVBVFVSRVMgKz0gRU5BQkxFX1ZJREVPPTEKIHdlYmNvcmVfY3Bw
ZmxhZ3MgKz0gLURFTkFCTEVfVklERU89MQpAQCAtMjA4OCw3ICsyMTAyLDcgQEAKICMgWFBhdGgg
U3VwcG9ydAogIyAtLS0tCiBpZiBFTkFCTEVfWFBBVEgKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NS
SVBUICs9IEVOQUJMRV9YUEFUSD0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1hQQVRIPTEK
IAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YUEFUSD0xCiAKQEAgLTIxNTgsNyArMjE3
Miw3IEBACiAjIFhTTFQgU3VwcG9ydAogIyAtLS0tCiBpZiBFTkFCTEVfWFNMVAotRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hTTFQ9MQorRkVBVFVSRV9ERUZJTkVTICs9IEVO
QUJMRV9YU0xUPTEKIAogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9YU0xUPTEKIApAQCAt
MjE3OSw3ICsyMTkzLDcgQEAKICMgV2ViIFdvcmtlcnMgc3VwcG9ydAogIyAtLS0tCiBpZiBFTkFC
TEVfV09SS0VSUwotRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1dPUktFUlM9
MQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9XT1JLRVJTPTEKIAogd2ViY29yZV9jcHBmbGFn
cyArPSBcCiAJLURFTkFCTEVfV09SS0VSUz0xCkBAIC0yMjIxLDcgKzIyMzUsNyBAQAogIyBXTUwg
U3VwcG9ydAogIyAtLS0tCiBpZiBFTkFCTEVfV01MCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCArPSBFTkFCTEVfV01MPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfV01MPTEKIAogd2Vi
Y29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XTUxFbGVtZW50RmFjdG9y
eS5jcHAgXApAQCAtMjI4MCw3ICsyMjk0LDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX0dFT0xPQ0FU
SU9OCiAKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9HRU9MT0NBVElPTj0x
CitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX0dFT0xPQ0FUSU9OPTEKIHdlYmNvcmVfY3BwZmxh
Z3MgKz0gXAogCS1ERU5BQkxFX0dFT0xPQ0FUSU9OPTEKIApAQCAtMjI5Niw3ICsyMzEwLDcgQEAK
ICMgRklYTUU6IGFsbG93IGEgbW9yZSBmaW5lLWdyYWluZWQgaW5jbHVzaW9uL2dlbmVyYXRpb24g
b2Ygc291cmNlcyBwZXIgU1ZHIGZlYXR1cmUKICMgLS0tLQogaWYgRU5BQkxFX1NWRwotRkVBVFVS
RV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWRz0xCitGRUFUVVJFX0RFRklORVMgKz0g
RU5BQkxFX1NWRz0xCiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTICs9ICQoV2ViQ29yZSkv
Y3NzL1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4gCiBXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUyAr
PSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0yODgxLDM3ICsyODk1
LDM3IEBACiAKICMgU1ZHIEZlYXR1cmVzCiBpZiBFTkFCTEVfU1ZHX1VTRQotRkVBVFVSRV9ERUZJ
TkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19VU0U9MQorRkVBVFVSRV9ERUZJTkVTICs9IEVO
QUJMRV9TVkdfVVNFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJjb3Jl
X2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVAotRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVD0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1NWR19GT1JFSUdOX09C
SkVDVD0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCiB3ZWJj
b3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVD0xCiBlbmRpZgogCiBp
ZiBFTkFCTEVfU1ZHX0ZPTlRTCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
U1ZHX0ZPTlRTPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKIFNWR19G
RUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZPTlRTPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFC
TEVfU1ZHX0ZPTlRTPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfRklMVEVSUwotRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKK0ZFQVRVUkVfREVGSU5F
UyArPSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRklM
VEVSUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19GSUxURVJTPTEKIGVuZGlm
CiAKIGlmIEVOQUJMRV9TVkdfQVNfSU1BR0UKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9
IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9TVkdfQVNf
SU1BR0U9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQVNfSU1BR0U9MQogd2ViY29yZV9j
cHBmbGFncyArPSAtREVOQUJMRV9TVkdfQVNfSU1BR0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NW
R19BTklNQVRJT04KLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfQU5J
TUFUSU9OPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBTVkdf
RkVBVFVSRVMgKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogd2ViY29yZV9jcHBmbGFncyArPSAt
REVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIGVuZGlmCkBAIC0zMDQ5LDcgKzMwNjMsNyBAQAogCiAu
U0VDT05EQVJZOgogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJ
TkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCi0JJChQ
RVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3Nj
cmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgJChJRExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0t
b3V0cHV0RGlyICIkKEdFTlNPVVJDRVMpIiAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQpIiAtLWdlbmVyYXRvciBKUyAkPAorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdz
LnBsICQoSURMX1BBVEg6JT0tLWluY2x1ZGUgIiUiKSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VT
KSIgLS1kZWZpbmVzICJMQU5HVUFHRV9KQVZBU0NSSVBUPTEgJChGRUFUVVJFX0RFRklORVMpIiAt
LWdlbmVyYXRvciBKUyAkPAogCiBJRExfQklORElOR1NfSlNfUFVSRSA6PSBcCiAJV2ViQ29yZS9z
dmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCkBAIC0zMDg5LDcgKzMxMDMsNzMgQEAKIGxpYldl
YkNvcmVKUy5sYTogJChsaWJXZWJDb3JlSlNfb2JqZWN0cykKIAkkKENYWExJTkspICQobGliV2Vi
Q29yZUpTX29iamVjdHMpICQoTElCUykKIAorIyBUaGlzIGR1bW15IGZpbGUgY2F1c2VzIGNvbmZp
Z3VyZSB0byBnZW5lcmF0ZSB0aGUgRGVyaXZlZFNvdXJjZXMvZ2RvbS8uZGVwcyBkaXJlY3Rvcnks
IHdoaWNoIG11c3QKKyMgZXhpc3QgZm9yIHVzIHRvIGJlIGFibGUgdG8gYnVpbGQgb3RoZXIgc291
cmNlcyBpbiBEZXJpdmVkU291cmNlcy9nZG9tIHdpdGggZHluYW1pY2FsbHkgZ2VuZXJhdGVkCisj
IG5hbWVzLgorRGVyaXZlZFNvdXJjZXMvZ2RvbS9nZG9tZHVtbXkuYzoKKwllY2hvID4gJEAKIAor
IyBCaW5kaW5ncyBhdXRvZ2VuZXJhdGVkIGluIEdET00sIGJ1dCBub3QgaW4gSlMuCitJRExfQklO
RElOR1NfR0RPTV9FWFRSQSA6PSBcCisJV2ViQ29yZS9odG1sL0NhbnZhc1BpeGVsQXJyYXkuaWRs
CisKKyMgQmluZGluZ3MgYXV0b2dlbmVyYXRlZCBpbiBKUywgYnV0IG5vdCBpbiBHRE9NLgorSURM
X0JJTkRJTkdTX0dET01fTUlOVVMgOj0gCisKKyMgQWxsIElETCBmaWxlcyB1c2VkIGZvciBhdXRv
Z2VuZXJhdGlvbiBpbiBHRE9NLiAgV2UgZmlsdGVyIG91dCBTVkcgYW5kIGV2ZW50cyBmb3Igbm93
LgorSURMX0JJTkRJTkdTX0dET00gOj0gJChmaWx0ZXItb3V0ICQoSURMX0JJTkRJTkdTX0dET01f
TUlOVVMpIFdlYkNvcmUvc3ZnJSBXZWJDb3JlL2RvbS9FdmVudCUuaWRsIFdlYkNvcmUvJUV2ZW50
LmlkbCwgXAorICAgICAgICAgICAgICAgICAgICAgICAkKElETF9CSU5ESU5HUykgJChJRExfQklO
RElOR1NfR0RPTV9FWFRSQSkpCisKKyMgQWxsIGNsYXNzZXMgYXV0b2dlbmVyYXRlZCBpbiBHRE9N
LgorR0RPTV9BVVRPX0NMQVNTRVMgOj0gJChiYXNlbmFtZSAkKG5vdGRpciAkKElETF9CSU5ESU5H
U19HRE9NKSkpCisKKyMgQ2xhc3NlcyB3aGljaCB3ZSd2ZSBjb2RlZCBieSBoYW5kLgorR0RPTV9G
SVhFRF9DTEFTU0VTIDo9IERPTU9iamVjdAorCitHRE9NX0NMQVNTRVMgOj0gJChHRE9NX0FVVE9f
Q0xBU1NFUykgJChHRE9NX0ZJWEVEX0NMQVNTRVMpCisKKyMgRmlsdGVyIG91dCBTVkcgZm9yIG5v
dy4KK0ZFQVRVUkVfREVGSU5FU19HRE9NIDo9ICQoZmlsdGVyLW91dCBFTkFCTEVfU1ZHJSwgJChG
RUFUVVJFX0RFRklORVMpKQorCisjIEF1dG9nZW5lcmF0ZWQgaGVhZGVyIGZpbGVzLgorR0RPTV9I
RUFERVJTX0JVSUxUIDo9ICQocGF0c3Vic3QgJSxEZXJpdmVkU291cmNlcy9nZG9tL0dkb20lLmgs
ICQoR0RPTV9BVVRPX0NMQVNTRVMpKSBcCisgICAgICAgICAgICAgICAgICAgICAkKHRvcF9idWls
ZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbS9nZG9tLmggXAorICAgICAgICAgICAgICAgICAgICAg
JCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL2dkb20vZ2RvbWRlZmluZXMuaAorCisjIEF1
dG9nZW5lcmF0ZWQgc291cmNlIGZpbGVzLgorR0RPTV9TT1VSQ0VTX0JVSUxUIDo9ICQocGF0c3Vi
c3QgJSxEZXJpdmVkU291cmNlcy9nZG9tL0dkb20lLmNwcCwgJChHRE9NX0FVVE9fQ0xBU1NFUykp
CisKKyMgSGFuZC1jb2RlZCBoZWFkZXIgZmlsZXMuCitHRE9NX0hFQURFUlNfRklYRUQgOj0gJChw
YXRzdWJzdCAlLCAkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb20lLmgsICQoR0RP
TV9GSVhFRF9DTEFTU0VTKSkKKworIyBBbGwgaGVhZGVyIGZpbGVzIHRoYXQgZ2V0IGluc3RhbGxl
ZC4KK2xpYmdkb21faF9hcGkgOj0gJChHRE9NX0hFQURFUlNfRklYRUQpICQoR0RPTV9IRUFERVJT
X0JVSUxUKQorCitEZXJpdmVkU291cmNlcy9nZG9tL2dkb20uaDogJChXZWJDb3JlKS9iaW5kaW5n
cy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUucGwKKwllY2hvICQoR0RPTV9DTEFTU0VTKSB8ICQo
UEVSTCkgJDwgZ2RvbSA+ICRACisKK0Rlcml2ZWRTb3VyY2VzL2dkb20vZ2RvbWRlZmluZXMuaDog
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUucGwKKwllY2hvICQo
R0RPTV9DTEFTU0VTKSB8ICQoUEVSTCkgJDwgZGVmaW5lcyA+ICRACisKK0Rlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbSUuaDogRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA7CisKK0Rlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbSUuY3BwOiAlLmlkbCAkKFNDUklQVFNfQklORElOR1MpICQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQorCSQoUEVSTCkgLUkk
KFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dl
bmVyYXRlLWJpbmRpbmdzLnBsIC0taW5jbHVkZSAkKFdlYkNvcmUpL2RvbSAtLWluY2x1ZGUgJChX
ZWJDb3JlKS9odG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL2NzcyAtLWluY2x1ZGUgJChXZWJDb3Jl
KS9wYWdlIC0taW5jbHVkZSAkKFdlYkNvcmUpL3htbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9zdmcg
LS1vdXRwdXREaXIgIiQoR0VOU09VUkNFU0dET00pIiAtLWRlZmluZXMgIkxBTkdVQUdFX0dPQkpF
Q1Q9MSAkKEZFQVRVUkVfREVGSU5FU19HRE9NKSIgLS1nZW5lcmF0b3IgR09iamVjdCAkPAorCitn
ZG9tX2J1aWx0X25vc291cmNlcyA6PSAkKEdET01fSEVBREVSU19CVUlMVCkgJChHRE9NX1NPVVJD
RVNfQlVJTFQpCisKK2xpYmdkb21fb2JqZWN0cyA6PSAkKHN1YnN0IC5jcHAsLmxvLCQoR0RPTV9T
T1VSQ0VTX0JVSUxUKSkKKworLWluY2x1ZGUgV2ViQ29yZS9iaW5kaW5ncy9nZG9tLyQoREVQRElS
KS8lLlBsbworLWluY2x1ZGUgRGVyaXZlZFNvdXJjZXMvZ2RvbS8kKERFUERJUikvJS5QbG8KKwor
JChsaWJnZG9tX29iamVjdHMpOiBBTV9DUFBGTEFHUys9JChsaWJXZWJDb3JlX2xhX0NQUEZMQUdT
KQorCiskKGxpYmdkb21fb2JqZWN0cyk6IEFNX0NYWEZMQUdTKz0kKGxpYldlYkNvcmVfbGFfQ1hY
RkxBR1MpCisKK2xpYmdkb20ubGE6ICQobGliZ2RvbV9vYmplY3RzKQorCSQoQ1hYTElOSykgJChs
aWJnZG9tX29iamVjdHMpICQoTElCUykKKwogbm9pbnN0X0hFQURFUlMgKz0gXAogCSQoSURMX0JJ
TkRJTkdTKQogCkBAIC0zMTA0LDYgKzMxODQsNyBAQAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JbkZpbGVzUGFyc2VyLnBtIFwKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUt
YmluZGluZ3MucGwgXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0gXAorCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBc
CiAJV2ViQ29yZS9jc3MvaHRtbDQuY3NzIFwKIAlXZWJDb3JlL2Nzcy9xdWlya3MuY3NzIFwKIAlX
ZWJDb3JlL2Nzcy92aWV3LXNvdXJjZS5jc3MgXApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9t
L2dkb21odG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vZ2RvbWh0bWxlbGVtZW50d3JhcHBlcmZhY3RvcnkuY3BwCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21odG1sZWxlbWVudHdyYXBwZXJmYWN0
b3J5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MjYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2Ns
Lm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3Rv
cC5vcmc+CisgKgorICogVGhpcyBmaWxlIGlzIGRlcml2ZWQgYnkgaGFuZCBmcm9tIGFuIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGUuCisgKiBLZWVwaW5nIGl0IHVwLXRvLWRhdGUgY291bGQg
cG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqIGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0
b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogZ2VuZXJhdGVyIHdoaWNoIHRha2VzIEpT
SFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgImdkb21odG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmgiCisj
aW5jbHVkZSAiZ2RvbS9nZG9tLmgiCisKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRWxlbWVudFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudFByaXZhdGUuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQXBwbGV0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJnZG9tL0dkb21IVE1MQXJlYUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEJhc2VFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCYXNlRm9u
dEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCb2R5RWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQlJFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxDYW52YXNFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNv
bEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1vZEVsZW1lbnRQcml2
YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTERMaXN0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MRW1iZWRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGaWVsZFNl
dEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50UHJp
dmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGb3JtRWxlbWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEhlYWRpbmdFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIZWFk
RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSFJFbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIdG1sRWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MSW1hZ2VFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxJ
bnB1dEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExlZ2VuZEVsZW1lbnRQcml2YXRlLmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTExJRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dk
b21IVE1MTGlua0VsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcEVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50UHJp
dmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNZW51RWxlbWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MTWV0YUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTE9iamVjdEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TE9MaXN0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT3B0R3JvdXBF
bGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50UHJp
dmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50UHJpdmF0ZS5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTFF1b3RlRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU2NyaXB0
RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU2VsZWN0RWxlbWVudFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTFRleHRBcmVhRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGl0
bGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1l
bnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudFByaXZhdGUu
aCIKKworI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MQXBwbGV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcmVh
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxC
YXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNb2RFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRW1iZWRFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb250
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxG
cmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSXNJbmRl
eEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGFiZWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTElFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVudUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
UGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVSb3dF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkNTdHJp
bmcuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6OkhUTUxOYW1lczsKKwordHlwZWRlZiBncG9pbnRlciAo
KkNyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uKShQYXNzUmVmUHRyPEhUTUxFbGVtZW50
Pik7CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVBbmNob3JXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MQW5jaG9yRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIGdwb2ludGVyIGNyZWF0ZUFwcGxldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxBcHBsZXRFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxBcHBsZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50
ZXIgY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gd3JhcEhUTUxBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXJlYUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVCYXNlV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFw
SFRNTEJhc2VFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCYXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUJhc2VGb250V3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJhc2VGb250
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmFzZUZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxCbG9ja3F1b3Rl
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmxvY2txdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVCb2R5V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJvZHlFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxCb2R5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IGdwb2ludGVyIGNyZWF0ZUJSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreworICAgIHJldHVybiB3cmFwSFRNTEJSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQlJFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQnV0dG9u
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3
cmFwSFRNTEJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVDYW52YXNXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MQ2Fu
dmFzRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUYWJsZUNh
cHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVDb2xXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGFi
bGVDb2xFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNvbEVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVNb2RXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTW9kRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MTW9kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IGdwb2ludGVyIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxEaXJlY3RvcnlFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxEaXJlY3RvcnlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlRGl2V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreworICAgIHJldHVybiB3cmFwSFRNTERpdkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERpdkVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVETGlz
dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4g
d3JhcEhUTUxETGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERMaXN0RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUVtYmVkV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEVtYmVk
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRmllbGRTZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRmllbGRTZXRFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxGaWVsZFNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBncG9pbnRlciBjcmVhdGVGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEZvbnRFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVy
IGNyZWF0ZUZvcm1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIHdyYXBIVE1MRm9ybUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRnJhbWVXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBI
VE1MRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVGcmFtZVNldFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxGcmFtZVNl
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSGVhZGluZ0VsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRpbmdFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSGVhZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxIZWFkRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MSGVhZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRl
ciBjcmVhdGVIUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gd3JhcEhUTUxIUkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhSRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUh0bWxXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSHRt
bEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTElGcmFtZUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBncG9pbnRlciBjcmVhdGVJbWFnZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TEltYWdlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNy
ZWF0ZUlucHV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiB3cmFwSFRNTElucHV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSXNJbmRleFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3Jh
cEhUTUxJc0luZGV4RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVMYWJlbFdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxMYWJl
bEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUxlZ2VuZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxMZWdlbmRFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxMZWdlbmRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgZ3BvaW50ZXIgY3JlYXRlTElXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTElFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMSUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVMaW5r
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3
cmFwSFRNTExpbmtFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU1hcFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxNYXBFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxNYXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgZ3BvaW50ZXIgY3JlYXRlTWFycXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxNYXJxdWVlRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MTWFycXVlZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9p
bnRlciBjcmVhdGVNZW51V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTE1lbnVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNZW51RWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU1ldGFX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdy
YXBIVE1MTWV0YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlT2JqZWN0V3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE9iamVjdEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVPTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxPTGlzdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTE9MaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE9wdEdyb3VwRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MT3B0R3JvdXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50
ZXIgY3JlYXRlT3B0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTE9wdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9wdGlv
bkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVQ
YXJhZ3JhcGhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAg
cmV0dXJuIHdyYXBIVE1MUGFyYWdyYXBoRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYWdyYXBo
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVBh
cmFtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biB3cmFwSFRNTFBhcmFtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYW1FbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlUHJlV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFByZUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFByZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBncG9pbnRlciBjcmVhdGVRdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxRdW90ZUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTFF1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2lu
dGVyIGNyZWF0ZVNjcmlwdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gd3JhcEhUTUxTY3JpcHRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTY3Jp
cHRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
U2VsZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiB3cmFwSFRNTFNlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVTdHlsZVdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhU
TUxTdHlsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRhYmxlV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRhYmxlRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MVGFibGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGFibGVDZWxsRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRleHRBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRleHRBcmVhRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGl0bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGl0bGVFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9p
bnRlciBjcmVhdGVUYWJsZVJvd1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TFRhYmxlUm93RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVy
IGNyZWF0ZVVMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTFVMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVUxpc3RFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitncG9pbnRlciBjcmVhdGVHRE9NSFRNTFdyYXBw
ZXIoUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBzdGF0
aWMgSGFzaE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRX
cmFwcGVyRnVuY3Rpb24+IG1hcDsKKyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAgIG1h
cC5zZXQoYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoYXBwbGV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0V3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
QXJlYVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUJhc2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlQmFzZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJsb2Nr
cXVvdGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCUldy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlQnV0dG9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVDYW52YXNXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25UYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGNvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChkZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURp
cmVjdG9yeVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlRGl2V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZURMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmaWVs
ZHNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoZm9ybVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1X
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlRnJhbWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlRnJhbWVTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KGhyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGh0bWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJh
bWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUlucHV0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
bGFiZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQobGVnZW5kVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChsaVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
TGlua1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlTWFwV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlTWFycXVlZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1l
dGFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChvYmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KG9sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlT3B0R3JvdXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZU9wdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
cGFyYW1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQocHJlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KHNjcmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNj
cmlwdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZVN0eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJsZVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dCh0Ym9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIp
OworICAgICAgIG1hcC5zZXQodGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNl
bGxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlVGV4dEFyZWFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlVGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRyVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KHVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGNvbGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDb2xX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
SGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aDZUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChpbWFnZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChpbnNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVNlbGVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KHRoVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlv
bldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlUHJlV3JhcHBlcik7CisgICAgfQorCisgICAgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVu
Y3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0KKyAgICAgICAgbWFwLmdldChlbGVtZW50LT5s
b2NhbE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCisgICAg
ICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVudCk7CisgICAgcmV0dXJuIHdy
YXBIVE1MRWxlbWVudChlbGVtZW50LmdldCgpKTsKK30KKworfQpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL2dkb21iaW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vZ2RvbWJpbmRpbmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL2dkb21iaW5kaW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNzIgQEAKKy8qCisg
KiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykK
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2Vp
bmlnIDxzYW1Ad2Via2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRo
IENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDgg
TWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworLy8gZ2NjIDMueCBjYW4ndCBoYW5kbGUgaW5jbHVkaW5nIHRoZSBIYXNoTWFw
IHBvaW50ZXIgc3BlY2lhbGl6YXRpb24KKy8vIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQgX19H
TlVDX18gJiYgIWRlZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNkZWZp
bmUgSEFTSF9NQVBfUFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSAiQ1N0cmluZy5oIgor
I2luY2x1ZGUgImdkb20vZ2RvbS5oIgorI2luY2x1ZGUgImdkb21iaW5kaW5nLmgiCisjaW5jbHVk
ZSAiZ2RvbWh0bWxlbGVtZW50d3JhcHBlcmZhY3RvcnkuaCIKKworI2luY2x1ZGUgIkNTU1N0eWxl
U2hlZXQuaCIKKworI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
bmNsdWRlICJBdHRyLmgiCisjaW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCisjaW5jbHVkZSAiQ1NT
VmFsdWUuaCIKKyNpbmNsdWRlICJDb21tZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCisj
aW5jbHVkZSAiRW50aXR5LmgiCisjaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVk
ZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJOb3RhdGlvbi5oIgorI2luY2x1ZGUgIlByb2Nl
c3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2luY2x1ZGUgIkNTU0NoYXJz
ZXRSdWxlLmgiCisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTSW1w
b3J0UnVsZS5oIgorI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1BhZ2VS
dWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTVmFyaWFibGVz
UnVsZS5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKwor
I2luY2x1ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisj
aW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJHZG9tQXR0clBy
aXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ0RBVEFTZWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUg
Ikdkb21DU1NDaGFyc2V0UnVsZVByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTRm9udEZhY2VS
dWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NJbXBvcnRSdWxlUHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIkdkb21DU1NNZWRpYVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1BhZ2VS
dWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NQcmltaXRpdmVWYWx1ZVByaXZhdGUuaCIK
KyNpbmNsdWRlICJHZG9tQ1NTUnVsZVByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVS
dWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NTdHlsZVNoZWV0UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhbHVl
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NWYXJpYWJsZXNSdWxlUHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIkdkb21DbGlwYm9hcmRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNvbW1lbnRQcml2
YXRlLmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50RnJhZ21lbnRQcml2YXRlLmgiCisjaW5jbHVk
ZSAiR2RvbURvY3VtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudFR5cGVQcml2
YXRlLmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9t
RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UHJpdmF0ZS5oIgorI2luY2x1
ZGUgIkdkb21FbnRpdHlSZWZlcmVuY2VQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxDb2xs
ZWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21IVE1MRG9jdW1lbnRQcml2YXRlLmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJH
ZG9tTm9kZVByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tTm90YXRpb25Qcml2YXRlLmgiCisjaW5j
bHVkZSAiR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9t
U3R5bGVTaGVldFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tVGV4dFByaXZhdGUuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU6OkhUTUxOYW1lczsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBncG9pbnRl
cj4gRE9NT2JqZWN0TWFwOworCitzdGF0aWMgRE9NT2JqZWN0TWFwJiBkb21PYmplY3RzKCkKK3sK
KyAgICBzdGF0aWMgRE9NT2JqZWN0TWFwIHN0YXRpY0RPTU9iamVjdHM7CisgICAgcmV0dXJuIHN0
YXRpY0RPTU9iamVjdHM7Cit9CisKK2dwb2ludGVyIEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2Jq
ZWN0KHZvaWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICBncG9pbnRlciByZXQgPSBkb21PYmplY3Rz
KCkuZ2V0KG9iamVjdEhhbmRsZSk7CisgICAgcmV0dXJuIHJldDsKK30KKworZ3BvaW50ZXIgR0RP
TU9iamVjdENhY2hlOjpwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBncG9pbnRlciB3
cmFwcGVyKQoreworICAgIGRvbU9iamVjdHMoKS5zZXQob2JqZWN0SGFuZGxlLCB3cmFwcGVyKTsK
KyAgICByZXR1cm4gd3JhcHBlcjsKK30KKwordm9pZCBHRE9NT2JqZWN0Q2FjaGU6OmZvcmdldERP
TU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2Jq
ZWN0SGFuZGxlKTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBkb2MpCit7CisgICAg
aWYgKCFkb2MpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdE
T01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KGRvYyk7CisgICAgaWYgKGdvYmopCisgICAgICAg
IHJldHVybiBnb2JqOworCisgICAgZ3BvaW50ZXIgcmV0OworCisgICAgaWYgKGRvYy0+aXNIVE1M
RG9jdW1lbnQoKSkKKyAgICAgICAgcmV0ID0gd3JhcEhUTUxEb2N1bWVudChzdGF0aWNfY2FzdDxI
VE1MRG9jdW1lbnQqPihkb2MpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IHdyYXBEb2N1bWVu
dChkb2MpOworCisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KGRvYywg
cmV0KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSk7CisK
K2dwb2ludGVyIHRvR0RPTU5ld2x5Q3JlYXRlZChOb2RlKiBub2RlKQoreworICAgIGlmICghbm9k
ZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2Rl
KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQor
ICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIHJldCA9IEdET01PYmplY3RDYWNo
ZTo6Z2V0RE9NT2JqZWN0KG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiByZXQ7
CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50ZXIgdG9HRE9N
KENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gTlVM
TDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdCh2
YWx1ZSk7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9p
bnRlciByZXQ7CisKKyAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgIHJldCA9
IHdyYXBDU1NWYWx1ZUxpc3Qoc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKKyAg
ICBlbHNlIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXQgPSB3cmFw
Q1NTUHJpbWl0aXZlVmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSkp
OworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gd3JhcENTU1ZhbHVlKHZhbHVlKTsKKworICAgIHJl
dHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdCh2YWx1ZSwgcmV0KTsKK30KKworc3Rh
dGljIEFMV0FZU19JTkxJTkUgZ3BvaW50ZXIgY3JlYXRlV3JhcHBlcihOb2RlKiBub2RlKQorewor
ICAgIEFTU0VSVChub2RlKTsKKyAgICBBU1NFUlQoIVNjcmlwdEludGVycHJldGVyOjpnZXRET01P
YmplY3Qobm9kZSkpOworCisgICAgZ3BvaW50ZXIgcmV0ID0gTlVMTDsKKworICAgIHN3aXRjaCAo
bm9kZS0+bm9kZVR5cGUoKSkgeworICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKKyAg
ICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgcmV0
ID0gY3JlYXRlR0RPTUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSkp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IHdyYXBFbGVtZW50KHN0
YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBBdHRyKHN0
YXRpY19jYXN0PEF0dHIqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpURVhUX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwVGV4dChzdGF0aWNfY2Fz
dDxUZXh0Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6
Q0RBVEFfU0VDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENEQVRBU2VjdGlvbihz
dGF0aWNfY2FzdDxDREFUQVNlY3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBFbnRp
dHkoc3RhdGljX2Nhc3Q8RW50aXR5Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAgICAgICAgICAg
cmV0ID0gd3JhcFByb2Nlc3NpbmdJbnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2Rl
OjpDT01NRU5UX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ29tbWVudChzdGF0aWNfY2Fz
dDxDb21tZW50Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUg
dGhlIGRvY3VtZW50IGl0c2VsZiBpbiB0aGUgcGVyLWRvY3VtZW50IGRpY3Rpb25hcnkKKyAgICAg
ICAgICAgIHJldHVybiB0b0dET00oc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7CisgICAg
ICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3Jh
cERvY3VtZW50VHlwZShzdGF0aWNfY2FzdDxEb2N1bWVudFR5cGUqPihub2RlKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpOT1RBVElPTl9OT0RFOgorICAgICAgICAg
ICAgcmV0ID0gd3JhcE5vdGF0aW9uKHN0YXRpY19jYXN0PE5vdGF0aW9uKj4obm9kZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9E
RToKKyAgICAgICAgICAgIHJldCA9IHdyYXBEb2N1bWVudEZyYWdtZW50KHN0YXRpY19jYXN0PERv
Y3VtZW50RnJhZ21lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpFTlRJVFlfUkVGRVJFTkNFX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwRW50
aXR5UmVmZXJlbmNlKHN0YXRpY19jYXN0PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gd3JhcE5v
ZGUobm9kZSk7CisgICAgfQorCisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2Jq
ZWN0KG5vZGUsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogY29s
bGVjdGlvbikKK3sKKyAgICBpZiAoIWNvbGxlY3Rpb24pCisgICAgICAgIHJldHVybiBOVUxMOwor
CisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KGNvbGxl
Y3Rpb24pOworCisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3Bv
aW50ZXIgcmV0OworICAgIHN3aXRjaCAoY29sbGVjdGlvbi0+dHlwZSgpKSB7CisgICAgICAgIGNh
c2UgSFRNTENvbGxlY3Rpb246OlNlbGVjdE9wdGlvbnM6CisgICAgICAgICAgICByZXQgPSB3cmFw
SFRNTE9wdGlvbnNDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlvbio+
KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0ID0gd3JhcEhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0
aW9uKj4oY29sbGVjdGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0
dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KGNvbGxlY3Rpb24sIHJldCk7Cit9CisK
K2dwb2ludGVyIHRvR0RPTShUZXh0KiB0ZXh0KQoreworICAgIGlmICghdGV4dCkKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRE
T01PYmplY3QodGV4dCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisg
ICAgZ3BvaW50ZXIgcmV0ID0gd3JhcFRleHQodGV4dCk7CisgICAgcmV0dXJuIEdET01PYmplY3RD
YWNoZTo6cHV0RE9NT2JqZWN0KHRleHQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShDU1NS
dWxlKiBydWxlKQoreworICAgIGlmICghcnVsZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAg
ICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QocnVsZSk7CisK
KyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7
CisgICAgc3dpdGNoIChydWxlLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpTVFlM
RV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU1N0eWxlUnVsZShzdGF0aWNfY2FzdDxD
U1NTdHlsZVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBD
U1NSdWxlOjpNRURJQV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU01lZGlhUnVsZShz
dGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDU1NSdWxlOjpGT05UX0ZBQ0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdy
YXBDU1NGb250RmFjZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4ocnVsZSkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6UEFHRV9SVUxFOgorICAg
ICAgICAgICAgcmV0ID0gd3JhcENTU1BhZ2VSdWxlKHN0YXRpY19jYXN0PENTU1BhZ2VSdWxlKj4o
cnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JU
X1JVTEU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NTSW1wb3J0UnVsZShzdGF0aWNfY2FzdDxD
U1NJbXBvcnRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q1NTUnVsZTo6Q0hBUlNFVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU0NoYXJzZXRS
dWxlKHN0YXRpY19jYXN0PENTU0NoYXJzZXRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6VkFSSUFCTEVTX1JVTEU6CisgICAgICAgICAgICBy
ZXQgPSB3cmFwQ1NTVmFyaWFibGVzUnVsZShzdGF0aWNfY2FzdDxDU1NWYXJpYWJsZXNSdWxlKj4o
cnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXQgPSB3cmFwQ1NTUnVsZShydWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KHJ1bGUsIHJldCk7CisgICAgcmV0dXJu
IHJldDsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYg
KCFlbGVtZW50KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBH
RE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChlbGVtZW50KTsKKyAgICBpZiAoZ29iaikKKyAg
ICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7CisKKyAgICBpZiAoZWxlbWVu
dC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIo
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CisgICAgZWxzZQorICAgICAgICBy
ZXQgPSB3cmFwRWxlbWVudChlbGVtZW50KTsKKworICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6
OnB1dERPTU9iamVjdChlbGVtZW50LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oU3R5bGVT
aGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisgICAgICAgIHJldHVy
biBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2Jq
ZWN0KHN0eWxlU2hlZXQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKwor
ICAgIGdwb2ludGVyIHJldDsKKyAgICBpZiAoc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkp
CisgICAgICAgIHJldCA9IHdyYXBDU1NTdHlsZVNoZWV0KHN0YXRpY19jYXN0PENTU1N0eWxlU2hl
ZXQqPihzdHlsZVNoZWV0KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwU3R5bGVTaGVl
dChzdHlsZVNoZWV0KTsKKworICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVj
dChzdHlsZVNoZWV0LCByZXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdo
dG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxz
b3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFs
cEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworCisjaWZuZGVmIEdkb21ET01PYmplY3RfaAorI2RlZmluZSBHZG9tRE9NT2Jq
ZWN0X2gKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgImdkb20vZ2RvbWRlZmlu
ZXMuaCIKKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xT
CisKKyNkZWZpbmUgR0RPTV9UWVBFX0RPTV9PQkpFQ1QgICAgICAgICAgICAoZ2RvbV9kb21fb2Jq
ZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fRE9NX09CSkVDVChvYmopICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfRE9NX09CSkVDVCwg
R2RvbURPTU9iamVjdCkpCisjZGVmaW5lIEdET01fRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgICAg
KEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZUEVfRE9NX09CSkVDVCwg
R2RvbURPTU9iamVjdENsYXNzKSkKKyNkZWZpbmUgR0RPTV9JU19ET01fT0JKRUNUKG9iaikgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01fVFlQRV9ET01fT0JK
RUNUKSkKKyNkZWZpbmUgR0RPTV9JU19ET01fT0JKRUNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NI
RUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fT0JKRUNUKSkKKyNkZWZpbmUg
R0RPTV9ET01fT0JKRUNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorCitz
dHJ1Y3QgX0dkb21ET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworCisg
ICAgdm9pZCAqY29yZU9iamVjdDsKK307CisKK3N0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIHsK
KyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQor
Z2RvbV9kb21fb2JqZWN0X2dldF90eXBlICh2b2lkKTsKKworR19FTkRfREVDTFMKKworI2VuZGlm
IC8qIEdkb21ET01PYmplY3RfaCAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ3N0
cmluZ2NvbnZlcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vZ3N0cmlu
Z2NvbnZlcnQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nc3RyaW5n
Y29udmVydC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+Cisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKwor
I2lmbmRlZiBHU1RSSU5HX0NPTlZFUlRfSAorI2RlZmluZSBHU1RSSU5HX0NPTlZFUlRfSAorCisv
KiBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgdmFyaW91cyB3ZWJraXQgc3Ry
aW5nIHR5cGVzIGludG8gYSB1dGY4IGdsaWIgc3RyaW5nICovCisKKyNpbmNsdWRlICJBdG9taWNT
dHJpbmcuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgiCisKK2lu
bGluZSBnY2hhciAqIGdkb21fZ3N0cmluZ19jb252ZXJ0KFdlYkNvcmU6OlN0cmluZyBjb25zdCYg
cykgeyByZXR1cm4gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQoraW5saW5lIGdjaGFyICog
Z2RvbV9nc3RyaW5nX2NvbnZlcnQoV2ViQ29yZTo6S1VSTCBjb25zdCYgcykgeyByZXR1cm4gZ19z
dHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQoraW5saW5lIGdjaGFyICogZ2RvbV9n
c3RyaW5nX2NvbnZlcnQoY29uc3QgSlNDOjpVU3RyaW5nICYgcykgeyByZXR1cm4gZ19zdHJkdXAo
cy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KK2lubGluZSBnY2hhciAqIGdkb21fZ3N0cmluZ19j
b252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IHJldHVybiBnX3N0cmR1cChz
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9CisKKyNlbmRpZiAvKiBHU1RSSU5HX0NPTlZFUlRf
SCAqLwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21odG1sZWxlbWVudHdyYXBwZXJm
YWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21odG1sZWxl
bWVudHdyYXBwZXJmYWN0b3J5LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vZ2RvbWh0bWxlbGVtZW50d3JhcHBlcmZhY3RvcnkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpZm5kZWYgR0RPTV9IVE1MX0VMRU1FTlRfV1JB
UFBFUl9GQUNUT1JZX0gKKyNkZWZpbmUgR0RPTV9IVE1MX0VMRU1FTlRfV1JBUFBFUl9GQUNUT1JZ
X0gKKworI2luY2x1ZGUgIkdkb21Ob2RlUHJpdmF0ZS5oIgorCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEhUTUxFbGVtZW50OworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICBncG9pbnRlciBjcmVhdGVHRE9NSFRNTFdyYXBwZXIo
UGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MRWxlbWVudD4pOworfQorCisjZW5kaWYgLy8gR0RPTV9I
VE1MX0VMRU1FTlRfV1JBUFBFUl9GQUNUT1JZX0gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2Rv
bS9nZG9tYmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9nZG9t
YmluZGluZy5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL2dkb21iaW5k
aW5nLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChD
KSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0
Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRv
biA8bGtjbEBsa2NsLm5ldD4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNv
dG9AZnJlZWRlc2t0b3Aub3JnPgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lm
bmRlZiBHRE9NX0JJTkRJTkdfSAorI2RlZmluZSBHRE9NX0JJTkRJTkdfSAorCisjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NT
VmFsdWUuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNs
dWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVk
ZSAiTm9kZS5oIgorI2luY2x1ZGUgIlN0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisj
aW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorCisjaW5jbHVkZSAiR2RvbU5vZGUuaCIKKyNp
bmNsdWRlICJHZG9tTm9kZVByaXZhdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAg
Y2xhc3MgQXRvbWljU3RyaW5nOworICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNzIEV2ZW50
OworICAgIGNsYXNzIEZyYW1lOworICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgTm9kZTsKKyAg
ICBjbGFzcyBTdHJpbmc7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGNsYXNzIFNWR0VsZW1lbnQ7
CisjZW5kaWYKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdlYktpdCB7Cisg
ICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkNTU1J1bGUqIG5vZGUpOworICAgIGdwb2ludGVy
IHRvR0RPTShXZWJDb3JlOjpDU1NWYWx1ZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdl
YkNvcmU6OkRvY3VtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6RWxl
bWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9u
KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6Tm9kZSogbm9kZSk7CisgICAg
Z3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OlN0eWxlU2hlZXQqIG5vZGUpOworICAgIGdwb2ludGVy
IHRvR0RPTShXZWJDb3JlOjpUZXh0KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29y
ZTo6Q2FudmFzUGl4ZWxBcnJheSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6
OkRPTVdpbmRvdyogbm9kZSk7CisKKyAgICBjbGFzcyBHRE9NT2JqZWN0Q2FjaGUgeworICAgIHB1
YmxpYzoKKyAgICAgICAgc3RhdGljIGdwb2ludGVyIGdldERPTU9iamVjdCh2b2lkICpvYmplY3RI
YW5kbGUpOworICAgICAgICBzdGF0aWMgZ3BvaW50ZXIgcHV0RE9NT2JqZWN0KHZvaWQgKm9iamVj
dEhhbmRsZSwgZ3BvaW50ZXIgd3JhcHBlcik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERP
TU9iamVjdCh2b2lkICpvYmplY3RIYW5kbGUpOworICAgIH07Cit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEdET01fQklORElOR19ICkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR2RvbURPTU9iamVjdFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR2RvbURPTU9iamVjdFByaXZhdGUuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8g
PHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBQcml2YXRlR2RvbURPTU9iamVjdF9oCisjZGVmaW5lIFBy
aXZhdGVHZG9tRE9NT2JqZWN0X2gKKworI2VuZGlmCisKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
Z2RvbS9HZG9tRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR2RvbURPTU9iamVjdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVz
a3RvcC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNv
bT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKi8KKworCisjaW5jbHVkZSAiZ2RvbWJpbmRpbmcuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdFByaXZhdGUuaCIKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorCitleHRlcm4gIkMiIHsKKworR19ERUZJ
TkVfVFlQRShHZG9tRE9NT2JqZWN0LCBnZG9tX2RvbV9vYmplY3QsIEdfVFlQRV9PQkpFQ1QpOwor
CitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfaW5pdChHZG9tRE9NT2JqZWN0KiByZXF1ZXN0
KQoreworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfY2xhc3NfaW5pdChHZG9tRE9N
T2JqZWN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKK30KKworfSAvKiBleHRlcm4gIkMiICovCisK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRlLnBsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRlLnBsCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUu
cGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzggQEAKKyMhL3Vzci9iaW4vcGVybCAtdworIwor
IyBDb3B5cmlnaHQgKEMpIDIwMDkgQWRhbSBEaW5nbGUgPGFkYW1AeW9yYmEub3JnPgorIworIyBU
aGlzIGZpbGUgaXMgcGFydCBvZiBXZWJLaXQKKyMgCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyMgCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMgCisjIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyMgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorIyBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyMgCisKK215ICRjbGFzc2xpc3QgPSA8U1RESU4+OworY2hvbXAoJGNsYXNzbGlzdCk7
CitteSBAY2xhc3NlcyA9IHNwbGl0IC8gLywgJGNsYXNzbGlzdDsKK0BjbGFzc2VzID0gc29ydCBA
Y2xhc3NlczsKKworcHJpbnQgPDxFT0Y7CisvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2Vi
S2l0IG9wZW4gc291cmNlIHByb2plY3QuCisgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVk
IGJ5IGdvYmplY3QtZ2VuZXJhdGUucGwuICBETyBOT1QgTU9ESUZZIQorICAgCisgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKK0VPRgorCitteSAkb3V0VHlwZSA9
ICRBUkdWWzBdOworbXkgJGhlYWRlcjsKK2lmICgkb3V0VHlwZSBlcSAiZGVmaW5lcyIpIHsKKyAg
ICAkaGVhZGVyID0gImdkb21kZWZpbmVzX2giOworfSBlbHNpZiAoJG91dFR5cGUgZXEgImdkb20i
KSB7CisgICAgJGhlYWRlciA9ICJnZG9tX2giOworfSBlbHNlIHsKKyAgICBkaWUgInVua25vd24g
b3V0cHV0IHR5cGUiOworfQorCitwcmludCAiI2lmbmRlZiAke2hlYWRlcn1cbiI7CitwcmludCAi
I2RlZmluZSAke2hlYWRlcn1cbiI7CitwcmludCAiXG4iOworCitpZiAoJG91dFR5cGUgZXEgImRl
ZmluZXMiKSB7CisgICAgZm9yZWFjaCBteSAkY2xhc3MgKEBjbGFzc2VzKSB7CisgICAgICAgIHBy
aW50ICJ0eXBlZGVmIHN0cnVjdCBfR2RvbSR7Y2xhc3N9IEdkb20ke2NsYXNzfTtcbiI7CisgICAg
ICAgIHByaW50ICJ0eXBlZGVmIHN0cnVjdCBfR2RvbSR7Y2xhc3N9Q2xhc3MgR2RvbSR7Y2xhc3N9
Q2xhc3M7XG4iOworICAgICAgICBwcmludCAiXG4iOworICAgIH0KK30gZWxzaWYgKCRvdXRUeXBl
IGVxICJnZG9tIikgeworICAgIGZvcmVhY2ggbXkgJGNsYXNzIChAY2xhc3NlcykgeworICAgICAg
ICBwcmludCAiI2luY2x1ZGUgPGdkb20vR2RvbSR7Y2xhc3N9Lmg+XG4iOworICAgIH0KK30KKwor
cHJpbnQgIlxuIjsKK3ByaW50ICIjZW5kaWZcbiI7CisKClByb3BlcnR5IGNoYW5nZXMgb246IFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRlLnBsCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRk
ZWQ6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0JKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTI3NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBT
b3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyMgQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tl
ciA8YWxwQGF0b2tlci5jb20+CisjIENvcHlyaWdodCAoQykgMjAwOSBBZGFtIERpbmdsZSA8YWRh
bUB5b3JiYS5vcmc+CisjIENvcHlyaWdodCAoQykgMjAwOSBKaW0gTmVsc29uIDxqaW1AeW9yYmEu
b3JnPgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsCisjIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorCitwYWNrYWdlIENvZGVHZW5lcmF0
b3JHT2JqZWN0OworCitteSAkbGljZW5jZVRlbXBsYXRlID0gPDwgIkVPRiI7CisvKgorICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KKyAgICBU
aGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBO
T1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworRU9GCisKK215ICVpbXBsSW5jbHVkZXMgPSAoKTsKK215ICVoZHJJbmNs
dWRlcyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9ICgpOworCisjIERlZmF1bHQgY29uc3Ry
dWN0b3IKK3N1YiBuZXcgeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkcmVmZXJl
bmNlID0geyB9OworCisgICAgJGNvZGVHZW5lcmF0b3IgPSBzaGlmdDsKKyAgICAkb3V0cHV0RGly
ID0gc2hpZnQ7CisgICAgbWtkaXIgJG91dHB1dERpcjsKKworICAgIGJsZXNzKCRyZWZlcmVuY2Us
ICRvYmplY3QpOworICAgIHJldHVybiAkcmVmZXJlbmNlOworfQorCitzdWIgZmluaXNoIHsKKyAg
ICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0cnVjdAor
c3ViIEdlbmVyYXRlSW50ZXJmYWNlIHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkg
JGNsYXNzID0gc2hpZnQ7CisgICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKKworICAgIG15ICRuYW1l
ID0gJGNsYXNzLT5uYW1lOworCisgICAgcHJpbnQgIiRuYW1lXG4iOworICAgIAorICAgICRvYmpl
Y3QtPkdlbmVyYXRlKCRjbGFzcyk7CisKKyAgICAjIFdyaXRlIHByaXZhdGUgaGVhZGVyCisgICAg
JG9iamVjdC0+V3JpdGVQcml2YXRlSGVhZGVyKCRjbGFzcyk7CisKKyAgICAjIFdyaXRlIHB1Ymxp
YyBoZWFkZXIgYW5kIGltcGxlbWVudGF0aW9uCisgICAgbXkgJGZuYW1lID0gIkdkb21fIiAuICRu
YW1lOworICAgICRmbmFtZSA9fiBzL18vL2c7CisgICAgJG9iamVjdC0+V3JpdGVEYXRhKCRmbmFt
ZSk7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdlbmVyYXRlTW9k
dWxlIHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRvY3VtZW50ID0gc2hpZnQ7
CisKKyAgICAkbW9kdWxlID0gJGRvY3VtZW50LT5tb2R1bGU7Cit9CisKK3N1YiBHZXRQYXJlbnRD
bGFzc05hbWUgeworICAgIG15ICRjbGFzcyA9IHNoaWZ0OworCisgICAgcmV0dXJuICJHZG9tRE9N
T2JqZWN0IiBpZiBAeyRjbGFzcy0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdkb20iIC4g
JGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRjbGFzcy0+cGFyZW50cygwKSk7Cit9CisKK3N1
YiBHZXRQYXJlbnRHT2JqZWN0VHlwZSB7CisgICAgbXkgJGNsYXNzID0gc2hpZnQ7CisKKyAgICBy
ZXR1cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRjbGFzcy0+cGFyZW50c30gZXEgMDsK
KyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gdWMoZGVjYW1lbGl6ZSgkY29kZUdlbmVyYXRvci0+
U3RyaXBNb2R1bGUoJGNsYXNzLT5wYXJlbnRzKDApKSkpOworfQorCisjIEFsZ29yaXRobSB0YWtl
biBmcm9tIFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1YiBjYW1lbGl6ZSB7CisgICAgbXkgJHMg
PSBzaGlmdDsKKyAgICBqb2luKCcnLCBtYXB7IHVjZmlyc3QgJF8gfSBzcGxpdCgvKD88PVtBLVph
LXpdKV8oPz1bQS1aYS16XSl8XGIvLCAkcykpOworfQorCisjIEFsZ29yaXRobSB0YWtlbiBmcm9t
IFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1YiBkZWNhbWVsaXplIHsKKyAgICBteSAkcyA9IHNo
aWZ0OworICAgICRzID1+IHMjKFteYS16QS1aXT8pKFtBLVpdKikoW0EtWl0pKFthLXpdPykjCisg
ICAgICAgIG15ICRmYyA9IHBvcygkcyk9PTA7CisgICAgICAgIG15ICgkcDAsJHAxLCRwMiwkcDMp
ID0gKCQxLGxjJDIsbGMkMywkNCk7CisgICAgICAgIG15ICR0ID0gJHAwIHx8ICRmYyA/ICRwMCA6
ICdfJzsKKyAgICAgICAgJHQgLj0gJHAzID8gJHAxID8gIiR7cDF9XyRwMiRwMyIgOiAiJHAyJHAz
IiA6ICIkcDEkcDIiOworICAgICAgICAkdDsKKyAgICAjZ2U7CisgICAgJHM7Cit9CisKK3N1YiBH
ZXRIZWFkZXJOYW1lIHsKKyAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVs
ZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRDbGFzc05h
bWUgeworICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsK
KworICAgIHJldHVybiAiR2RvbSRuYW1lIjsKK30KKworc3ViIGdldEluY2x1ZGVIZWFkZXIgewor
ICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRIZWFkZXJOYW1lKCR0eXBl
KTsKKworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICIi
IGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7Cisg
ICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJjaGFyIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsKKyAg
ICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICIiIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIGxvbmcgbG9uZyI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBz
aG9ydCI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ2b2lkIjsKKyAgICAKKyAgICByZXR1
cm4gIlJhbmdlLmgiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01UaW1l
U3RhbXAiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFRPRE8gLSBE
T00gY2xhc3Mgd3JhcHBlcgorCisgICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1cm5z
IDEgaWYgd2UgbmVlZCB0byBjcmVhdGUgYSBHT2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSByZXR1
cm4gcmVzdWx0CitzdWIgSXNHRE9NQ2xhc3NUeXBlIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0Owor
ICAgIG15ICRuYW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJmbG9hdCI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJjaGFyIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuIDAg
aWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidWNoYXIiOwor
ICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgImludCI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7Cisg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworICAg
IAorICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gMCBp
ZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NVGlt
ZVN0YW1wIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFRPRE8gLSBE
T00gY2xhc3Mgd3JhcHBlcgorCisgICAgcmV0dXJuIDE7Cit9CisKK3N1YiBHZXRQcm9wR1R5cGUg
eworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5
cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAg
IHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0dXJuICJub3R5ZXRz
dXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gImRvdWJsZSIg
aWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJib29sZWFuIiBpZiAkdHlwZSBlcSAi
Ym9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgcmV0
dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBl
IGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAg
ICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICJpbnQi
IGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAidWludCIgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsK
KyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICBy
ZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFRPRE8gLSBET00gY2xhc3Mg
d3JhcHBlcgorCisgICAgcmV0dXJuICJvYmplY3QiOworfQorCitzdWIgR2V0R1R5cGUgeworICAg
IG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOwor
CisgICAgcmV0dXJuICJnY2hhciAqIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1
cm4gImdmbG9hdCIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICByZXR1cm4gIldlYkNvcmU6OlJh
bmdlOjpDb21wYXJlSG93ICIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgIHJldHVybiAi
Z2RvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJnYm9vbGVhbiIgaWYg
JHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiZ2NoYXIiIGlmICR0eXBlIGVxICJjaGFy
IjsKKyAgICByZXR1cm4gImdsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJn
c2hvcnQiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJndWNoYXIiIGlmICR0eXBl
IGVxICJ1Y2hhciI7CisgICAgcmV0dXJuICJndWludCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsK
KyAgICByZXR1cm4gImdpbnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAiZ3VpbnQi
IGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlw
ZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJndWludDY0IiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gImd1c2hvcnQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBzaG9ydCI7CisgICAgcmV0dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJSR0JDb2xv
ciI7ICMgVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gInZvaWQiIGlmICR0
eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBhZGRQcm9w
SW5jbHVkZUhlYWRlciB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBn
ZXRJbmNsdWRlSGVhZGVyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICBp
ZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgJGhkciA9IHN1YnN0cigk
aGRyLCAwLCBsZW5ndGgoJGhkciktMik7ICAgICAjIHN0cmlwIG9mZiAiLmgiCisgICAgICAgICAg
ICAkaGRyUHJvcEluY2x1ZGVzeyJnZG9tLyIuJGhkci4iLmgifSA9IDE7CisgICAgICAgICAgICAk
aGRyUHJvcEluY2x1ZGVzeyJnZG9tLyIuJGhkci4iUHJpdmF0ZS5oIn0gPSAxOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAg
IH0KKyAgICB9Cit9CisKK3N1YiBhZGRJbmNsdWRlQm9keSB7CisgICAgbXkgJHR5cGUgPSBzaGlm
dDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNsdWRlSGVhZGVyKCR0eXBlKTsKKyAgICBpZiAoJGhk
ciBuZSAiIikgeworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAg
ICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8kaGRyIn0gPSAxOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgJGltcGxJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9Cit9
CisKK3N1YiBza2lwQXR0cmlidXRlIHsKKyAgICBteSAkYXR0cmlidXRlID0gc2hpZnQ7CisgICAg
CisgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbUdldHRlciJ9IHx8CisgICAgICAgICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbVNldHRlciJ9KSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0K
KyAgICAKKyAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOwor
CisgICAgaWYgKCRwcm9wX3R5cGUgZXEgInN0eWxlc2hlZXRzOjpNZWRpYUxpc3QiIG9yCisgICAg
ICAgICRwcm9wX3R5cGUgZXEgIkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIiBvcgorICAgICAgICAk
cHJvcF90eXBlIGVxICJFdmVudExpc3RlbmVyIiBvcgorICAgICAgICAkcHJvcF90eXBlID1+IC9D
b25zdHJ1Y3RvciQvIG9yCisgICAgICAgICRwcm9wX3R5cGUgZXEgImN1c3RvbSIgb3IKKyAgICAg
ICAgJHByb3BfdHlwZSBlcSAiQXJyYXkiIG9yCisgICAgICAgICRwcm9wX3R5cGUgZXEgIkRPTVRp
bWVTdGFtcCIpIHsKKyAgICAgICAgcmV0dXJuIDE7ICAgIyBjYW4ndCBoYW5kbGUgdGhlc2UgeWV0
CisgICAgfQorCisgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAKKyAg
ICAjIFRPRE86IFNWRworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQb2RUeXBlKCR0eXBlKSB8
fCAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3ViIFVzZXNNYW51YWxUb0pTSW1w
bGVtZW50YXRpb24geworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXBwZWQgb3V0
IENhbnZhc1BpeGVsQXJyYXkgLSBzZWUgSlNDYW52YXNQaXhlbEFycmF5Q3VzdG9tLmNwcCBmb3Ig
d2h5LgorICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJOb2RlIiBvciAkdHlwZSBlcSAiRG9jdW1l
bnQiIG9yICR0eXBlIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IKKyAgICAgICR0eXBlIGVxICJTVkdQ
YXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUgZXEgIkNTU1J1bGUiIG9y
ICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IKKyAgICAgICR0eXBlIGVxICJFdmVudCIgb3IgJHR5cGUg
ZXEgIkVsZW1lbnQiIG9yICR0eXBlIGVxICJUZXh0IjsKKyAgICByZXR1cm4gMDsKK30KKworc3Vi
IFdyaXRlUHJpdmF0ZUhlYWRlciB7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRj
bGFzcyA9IHNoaWZ0OworCisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkY2xhc3MtPm5hbWU7Cisg
ICAgbXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgbXkg
JGZpbGVuYW1lID0gIiRvdXRwdXREaXIvIiAuICRjbGFzc05hbWUgLiAiUHJpdmF0ZS5oIjsKKyAg
ICBteSAkZ3VhcmQgPSB1YyhkZWNhbWVsaXplKCRjbGFzc05hbWUpKSAuICJfUFJJVkFURV9IIjsK
KyAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRjbGFzcyk7CisK
KyAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGNsYXNzLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TGVnYWN5UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBAeyRjbGFzcy0+cGFyZW50
c30gPiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFs
UGFyZW50OworICAgIAorICAgIG9wZW4oUFJJVkhFQURFUiwgIj4kZmlsZW5hbWUiKSBvciBkaWUg
IkNvdWxkbid0IG9wZW4gZmlsZSAkZmlsZW5hbWUgZm9yIHdyaXRpbmciOworICAgIAorICAgIHBy
aW50IFBSSVZIRUFERVIgc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgcHJpbnQg
UFJJVkhFQURFUiAiXG4iOworICAgIAorICAgIG15ICR0ZXh0ID0gPDwgIkVPRiI7CisjaWZuZGVm
ICRndWFyZAorI2RlZmluZSAkZ3VhcmQKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5j
bHVkZSA8Z2RvbS8ke3BhcmVudENsYXNzTmFtZX0uaD4KKyNpbmNsdWRlICIke2ludGVyZmFjZU5h
bWV9LmgiCitFT0YKKworICAgIHByaW50IFBSSVZIRUFERVIgJHRleHQ7CisgICAgCisgICAgcHJp
bnQgUFJJVkhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJQ
cm9wSW5jbHVkZXMpOworICAgIHByaW50IFBSSVZIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJQcm9w
SW5jbHVkZXMpOworICAgIAorICAgICR0ZXh0ID0gPDwgIkVPRiI7Cit0eXBlZGVmIHN0cnVjdCBf
JHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgJHtj
bGFzc05hbWV9ICoKKyAgICB3cmFwJHtpbnRlcmZhY2VOYW1lfShXZWJDb3JlOjoke2ludGVyZmFj
ZU5hbWV9ICpjb3JlT2JqZWN0KTsKKworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgor
ICAgIGNvcmUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKworRU9GCisKKyAgICBwcmludCBQUklW
SEVBREVSICR0ZXh0OworCisgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRPTVdpbmRvdyIg
fHwgKCEkaGFzUGFyZW50IG9yICRjbGFzcy0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRl
VG9KUyJ9KSBhbmQKKyAgICAgICAgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVy
ZmFjZU5hbWUpKSB7CisgICAgICAgICR0ZXh0ID0gPDwgIkVPRiI7CisgICAgZ3BvaW50ZXIKKyAg
ICB0b0dET00oV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogbm9kZSk7CisKK0VPRgorCisgICAg
ICAgIHByaW50IFBSSVZIRUFERVIgJHRleHQ7CisgICAgfQorCisgICAgJHRleHQgPSA8PCAiRU9G
IjsKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLyogJHtndWFyZH0gKi8KKworRU9G
CisKKyAgICBwcmludCBQUklWSEVBREVSICR0ZXh0OworICAgIAorICAgIGNsb3NlKFBSSVZIRUFE
RVIpOworfQorCitzdWIgQ2xhc3NIYXNGdW5jdGlvbiB7CisgICAgICAgIG15ICRjbGFzcyA9IHNo
aWZ0OworICAgICAgICBteSAkbmFtZSA9IHNoaWZ0OworICAgICAgICBmb3JlYWNoIG15ICRmdW5j
dGlvbiAoQHskY2xhc3MtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+bmFtZSBlcSAkbmFtZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBVbmlxdWlm
eSB7CisgICAgbXkgJG5hbWUgPSBzaGlmdDsKKyAgICBteSAkYXZvaWQgPSBzaGlmdDsKKyAgICBp
ZiAoJG5hbWUgZXEgJGF2b2lkKSB7CisgICAgICAgICRuYW1lID0gJG5hbWUgLiAiMiI7CisgICAg
fQorICAgIHJldHVybiAkbmFtZTsKK30KKworc3ViIFJldHVybklmRmFpbCB7CisgICAgbXkgJGNv
bmRpdGlvbiA9IHNoaWZ0OworICAgIG15ICRyZXR1cm5UeXBlID0gc2hpZnQ7CisgICAgCisgICAg
aWYgKCRyZXR1cm5UeXBlIGVxICJ2b2lkIikgeworICAgICAgICByZXR1cm4gIiAgICBnX3JldHVy
bl9pZl9mYWlsICgkY29uZGl0aW9uKTtcbiI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJu
ICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKCRjb25kaXRpb24sIDApO1xuIjsgICMgVE9ETzog
cmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorICAgIH0KK30KKworIyBHZW5lcmF0ZSBjb2Rl
IGZvciBhIGZ1bmN0aW9uLiAgJGtpbmQgc2hvdWxkIGJlIGVpdGhlciAiIiBmb3IgYW4gb3JkaW5h
cnkgZnVuY3Rpb24sCisjICJnZXQiIGZvciBhbiBhdHRyaWJ1dGUgZ2V0dGVyIG9yICJzZXQiIGZv
ciBhbiBhdHRyaWJ1dGUgc2V0dGVyLgorc3ViIEdlbmVyYXRlRnVuY3Rpb24geworICAgIG15ICRv
YmplY3QgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OworICAgIG15ICRm
dW5jdGlvbiA9IHNoaWZ0OworICAgIG15ICRraW5kID0gc2hpZnQ7CisKKyAgICBteSAkY2xhc3NO
YW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkY2xhc3NDYXBzID0g
dWMoZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkpOworCisgICAgbXkgJGZuX3NpZ19uYW1lID0g
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CisgICAgbXkgJGZuX3NpZ190eXBlID0gJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGU7CisgICAgbXkgJGludGVyZmFjZV9uYW1lID0gZGVjYW1lbGl6
ZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgbXkgJHByZWZpeCA9ICRraW5kIGVxICJnZXQiID8gImdl
dF8iIDogIiI7CisgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tXyIgLiAkaW50ZXJmYWNlX25h
bWUgLiAiXyIgLiAkcHJlZml4IC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25hbWUpOworICAgIG15ICRy
ZXR1cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKyAgICBteSAkcmV0X2lzX2NsYXNz
X3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJGZuX3NpZ190eXBlKTsKKworICAgIG15ICR0aGlzID0g
JGludGVyZmFjZV9uYW1lOworICAgICR0aGlzID1+IHMvLipfLy87CisgICAgCisgICAgbXkgJGZ1
bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKiR0aGlzIjsKKworICAgIG15ICRjYWxsX2ltcGxfcGFy
YW1zID0gIiI7CisgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gImdkb21fIiAuIGRlY2FtZWxpemUo
JGZuX3NpZ190eXBlKTsKKworICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2Nzc19zdHls
ZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkiKSB7CisgICAgICAgICMgcmVzZXJ2ZWQgbmFtZSBj
bGFzaCBpbiBnbGliIQorICAgICAgICAkZnVuY3Rpb25OYW1lID0gImdkb21fY3NzX3N0eWxlX2Rl
Y2xhcmF0aW9uX3NldF9jc3NfcHJvcGVydHkiOworICAgIH0KKyAgICAjIHNraXAgQ29tcGFyZUhv
dyBmdW5jdGlvbnMgZm9yIG5vdworICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3Jhbmdl
X2NvbXBhcmVfYm91bmRhcnlfcG9pbnRzIikgeworICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyog
VE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxu
Iik7CisgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93
IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgICMgc2tpcCBTVkdEb2N1bWVudCBmdW5jdGlvbnMgZm9yIG5vdworICAgIGlmICgk
cmV0dXJuVHlwZSBlcSAiR2RvbVNWR0RvY3VtZW50ICoiKSB7CisgICAgICAgIHB1c2goQGhCb2R5
LCAiXG4vKiBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFt
ZX0gKi9cblxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBUT0RPOiBza2lwcGluZyBT
VkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICAjIHNraXAgc29tZSBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cK
KyAgICBteSAkaXNfY3VzdG9tX2ZuID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b20ifSB8fAorICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFuZGxpbmci
fTsKKyAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9odG1sX2NvbGxlY3Rpb25faXRlbSIg
fHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9odG1sX2NvbGxlY3Rpb25fbmFtZWRf
aXRlbSIgfHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0
X29wZW4iIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVz
dF9zZXRfcmVxdWVzdF9oZWFkZXIiIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21f
eG1sX2h0dHBfcmVxdWVzdF9zZW5kIiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9t
X3htbF9odHRwX3JlcXVlc3RfZ2V0X3Jlc3BvbnNlX2hlYWRlciIgfHwKKyAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X292ZXJyaWRlX21pbWVfdHlwZSIgfHwK
KyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2Rpc3BhdGNo
X2V2ZW50IiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2VsZW1lbnRfc2V0X2F0
dHJpYnV0ZSIpIHsKKyAgICAgICAgJGlzX2N1c3RvbV9mbiA9IDA7CisgICAgfQorICAgIGlmICgk
aXNfY3VzdG9tX2ZuICYmIAorICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBw
ZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92
ZV9jaGlsZCIgJiYgCisgICAgICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRf
YmVmb3JlIiAmJgorICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9j
aGlsZCIpIHsKKyAgICAgICAgcHVzaChAaEJvZHksICJcbi8qIFRPRE86IGN1c3RvbSBmdW5jdGlv
biAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBU
T0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfSkgeworICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworICAg
ICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnQiKSB7CisgICAgICAgICAgICBwdXNoKEBo
Qm9keSwgIlxuLyogVE9ETzogZXZlbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIp
OworICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFRPRE86IGV2ZW50IGZ1bmN0aW9uICR7
ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICBhZGRJbmNsdWRlQm9keSgkcGFyYW1JRExUeXBlKTsKKyAgICAgICAgbXkgJHBhcmFt
VHlwZSA9IEdldEdUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICBteSAkcGFyYW1OYW1lID0g
VW5pcXVpZnkoZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpLCAkdGhpcyk7CisKKyAgICAgICAgJGZ1
bmN0aW9uU2lnIC49ICIsICRwYXJhbVR5cGUgJHBhcmFtTmFtZSI7CisKKyAgICAgICAgbXkgJHBh
cmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAg
ICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAgICAgICAgICBpZiAoJHBhcmFtSURMVHlw
ZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7Imdkb20v
R2RvbSR7cGFyYW1JRExUeXBlfVByaXZhdGUuaCJ9ID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlIHx8ICgkcGFyYW1JRExUeXBlIGVx
ICJET01TdHJpbmciKSkgeworICAgICAgICAgICAgJHBhcmFtTmFtZSA9ICJfZ18iIC4gJHBhcmFt
TmFtZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoJGNhbGxfaW1wbF9wYXJhbXMpIHsKKyAgICAg
ICAgICAgICRjYWxsX2ltcGxfcGFyYW1zIC49ICIsICRwYXJhbU5hbWUiOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgJGNhbGxfaW1wbF9wYXJhbXMgPSAiJHBhcmFtTmFtZSI7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJFdmVudCIpIHsKKyAgICAg
ICAgcHVzaChAaEJvZHksICJcbi8qIFRPRE86IGV2ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1l
fSAqL1xuXG4iKTsKKyAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFRPRE86IGV2ZW50IGZ1bmN0
aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmICgkcmV0X2lzX2NsYXNzX3R5cGUgYW5kICRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0
IikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb20ke2ZuX3NpZ190eXBlfVByaXZh
dGUuaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tJHtmbl9zaWdfdHlw
ZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siJHtmbl9zaWdfdHlwZX0uaCJ9ID0g
MTsKKyAgICB9CisKKyAgICBpZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAg
ICAgICgkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2NvbnRl
eHQnIG9yCisgICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2RvY3VtZW50X2dldF9jc3Nf
Y2FudmFzX2NvbnRleHQnKSkgeworICAgICAgICByZXR1cm47ICAgICAgICMgdG9vIGludm9sdmVk
IGZvciBub3c7IHNraXAKKyAgICB9CisKKyAgICBpZihAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0
aW9uc30pIHsKKyAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsIEdFcnJvciAqKmVycm9yIjsKKyAg
ICB9CisKKyAgICBwdXNoKEBoQm9keSwgIldFQktJVF9BUEkgJHJldHVyblR5cGVcbiRmdW5jdGlv
bk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisgICAgcHVzaChAY0JvZHksICIkcmV0dXJu
VHlwZVxuJGZ1bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKVxue1xuIik7CisKKyAgICBwdXNoKEBj
Qm9keSwgUmV0dXJuSWZGYWlsKCJHRE9NX0lTXyRjbGFzc0NhcHMoJHRoaXMpIiwgJHJldHVyblR5
cGUpKTsKKyAgICAKKyAgICAjIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSBub24tTlVMTC4gIEZv
ciBhdHRyaWJ1dGUgc2V0dGVycywgd2UgYWxsb3cgYSBOVUxMIGFyZ3VtZW50LAorICAgICMgd2hp
Y2ggY2FuIGJlIHVzZWQgdG8gcmVtb3ZlIGFuIGF0dHJpYnV0ZS4KKyAgICBpZiAoJGtpbmQgbmUg
InNldCIpIHsKKyAgICAgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0
ZXJzfSkgeworICAgICAgICAgICAgaWYgKCEkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBl
KCRwYXJhbS0+dHlwZSkpIHsKKyAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gVW5pcXVp
ZnkoZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpLCAkdGhpcyk7CisgICAgICAgICAgICAgICAgcHVz
aChAY0JvZHksIFJldHVybklmRmFpbCgkcGFyYW1OYW1lLCAkcmV0dXJuVHlwZSkpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlmKEB7JGZ1bmN0aW9uLT5yYWlz
ZXNFeGNlcHRpb25zfSkgeworICAgICAgICBwdXNoKEBjQm9keSwgUmV0dXJuSWZGYWlsKCIhZXJy
b3IgfHwgISplcnJvciIsICRyZXR1cm5UeXBlKSk7CisgICAgfQorCisgICAgIyBUaGUgV2ViS2l0
Ojpjb3JlIGltcGxlbWVudGF0aW9ucyBjaGVjayBmb3IgTlVMTCBhbHJlYWR5OyBubyBuZWVkIHRv
CisgICAgIyBkdXBsaWNhdGUgZWZmb3J0LgorICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6
OiR7aW50ZXJmYWNlTmFtZX0gKiBpdGVtID0gV2ViS2l0Ojpjb3JlKCR0aGlzKTtcbiIpOworCisg
ICAgJHJldHVyblBhcmFtTmFtZSA9ICIiOworICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5j
dGlvbi0+cGFyYW1ldGVyc30pIHsKKyAgICAgICAgbXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+
dHlwZTsKKyAgICAgICAgbXkgJHBhcmFtTmFtZSA9IFVuaXF1aWZ5KGRlY2FtZWxpemUoJHBhcmFt
LT5uYW1lKSwgJHRoaXMpOworCisgICAgICAgIG15ICRwYXJhbV9pc19jbGFzc190eXBlID0gSXNH
RE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOworICAgICAgICAjIEhBQ0shCisgICAgICAgIGlm
ICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfb3BlbiIgJiYgJHBhcmFt
LT5uYW1lIGVxICJ1cmwiKSB7CisgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3Jl
OjpLVVJMIF9nXyR7cGFyYW1OYW1lfSA9IFdlYkNvcmU6OktVUkwoJHBhcmFtTmFtZSk7XG4iKTsK
KyAgICAgICAgfSBlbHNpZiAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAg
ICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6U3RyaW5nIF9nXyR7cGFyYW1OYW1lfSA9
IFdlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgfQor
ICAgICAgICBpZiAoJHBhcmFtX2lzX2NsYXNzX3R5cGUpIHsKKyAgICAgICAgICAgIG15ICRwYXJh
bV9nZG9tX2ZuID0gImdkb21fIiAuIGRlY2FtZWxpemUoJHBhcmFtSURMVHlwZSk7CisgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBfZ18ke3Bh
cmFtTmFtZX0gPSBXZWJLaXQ6OmNvcmUoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgfQorICAg
ICAgICAkcmV0dXJuUGFyYW1OYW1lID0gIl9nXyIuJHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJSZXR1cm4ifTsKKyAgICB9CisKKyAgICBteSAkYXNzaWduID0gIiI7
CisgICAgbXkgJGFzc2lnbl9wcmUgPSAiIjsKKyAgICBteSAkYXNzaWduX3Bvc3QgPSAiIjsKKyAg
ICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisgICAgICAg
IGlmICgkcmV0X2lzX2NsYXNzX3R5cGUpIHsKKyAgICAgICAgICAgICRhc3NpZ24gPSAiUGFzc1Jl
ZlB0cjxXZWJDb3JlOjoke2ZuX3NpZ190eXBlfT4gZ19yZXMgPSAiOworICAgICAgICAgICAgJGFz
c2lnbl9wcmUgPSAiV1RGOjpnZXRQdHIoIjsKKyAgICAgICAgICAgICRhc3NpZ25fcG9zdCA9ICIp
IjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRhc3NpZ24gPSAiJHtyZXR1cm5UeXBl
fSByZXMgPSAiOworICAgICAgICB9CisgICAgfQorICAgIG15ICRleGNlcHRpb25zID0gIiI7Cisg
ICAgaWYgKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgeworICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICBp
ZiAoJHtjYWxsX2ltcGxfcGFyYW1zfSBuZSAiIikgeworICAgICAgICAgICAgJGV4Y2VwdGlvbnMg
PSAiLCBlYyI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICJl
YyI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAjIFdlIG5lZWQgdG8gc3BlY2lhbC1jYXNlIHRo
ZXNlIE5vZGUgbWV0aG9kcyBiZWNhdXNlIHRoZWlyIEMrKyBzaWduYXR1cmUgaXMgZGlmZmVyZW50
CisgICAgIyBmcm9tIHdoYXQgd2UnZCBleHBlY3QgZ2l2ZW4gdGhlaXIgSURMIGRlc2NyaXB0aW9u
OyBzZWUgTm9kZS5oLgorICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfYXBwZW5k
X2NoaWxkIiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfaW5zZXJ0X2Jl
Zm9yZSIgfHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hp
bGQiIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQi
KSB7CisgICAgICAgIG15ICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCA9IDw8ICJFT0Yi
OworICAgIGJvb2wgb2sgPSBpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9
JHtleGNlcHRpb25zfSk7CisgICAgaWYgKG9rKQorICAgIHsKKyAgICAgICAgJHtyZXR1cm5UeXBl
fSByZXMgPSBzdGF0aWNfY2FzdDwke3JldHVyblR5cGV9PihXZWJLaXQ6OnRvR0RPTSgkcmV0dXJu
UGFyYW1OYW1lKSk7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorRU9GCisgICAgICAgIHB1
c2goQGNCb2R5LCAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOworICAgIAorICAgICAg
ICBpZihAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgIG15ICRl
eGNlcHRpb25faGFuZGxpbmcgPSA8PCAiRU9GIjsKKworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNv
ZGVEZXNjcmlwdGlvbiBlY2Rlc2M7CisgICAgV2ViQ29yZTo6Z2V0RXhjZXB0aW9uQ29kZURlc2Ny
aXB0aW9uKGVjLCBlY2Rlc2MpOworICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVh
cmtfZnJvbV9zdHJpbmcoIkdET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKK0VPRgor
ICAgICAgICAgICAgcHVzaChAY0JvZHksICRleGNlcHRpb25faGFuZGxpbmcpOworICAgICAgICB9
CisgICAgICAgIHB1c2goQGNCb2R5LCAicmV0dXJuIE5VTEw7Iik7CisgICAgICAgIHB1c2goQGNC
b2R5LCAifVxuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlw
ZSBlcSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAnZ2RvbV9kb2N1
bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0JykgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICAvKiBUT0RPIC0gZ2V0IGNhbnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2Fs
bF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKworICAgIH0gZWxzaWYgKCRm
bl9zaWdfdHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAk
e2Fzc2lnbn1nZG9tX2dzdHJpbmdfY29udmVydChpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxf
aW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpO1xuIiApOworICAgIH0gZWxzZSB7CisgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19u
YW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KTtcbiIg
KTsKKyAgICAgICAgCisgICAgICAgIGlmKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkg
eworICAgICAgICAgICAgbXkgJGV4Y2VwdGlvbl9oYW5kbGluZyA9IDw8ICJFT0YiOworICAgIGlm
KGVjKSB7CisgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2M7
CisgICAgICAgIFdlYkNvcmU6OmdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihlYywgZWNkZXNj
KTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmlu
ZygiR0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOworICAgIH0KK0VPRgorICAgICAg
ICAgICAgcHVzaChAY0JvZHksICRleGNlcHRpb25faGFuZGxpbmcpOworICAgICAgICB9CisgICAg
fQorICAgIGlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIgJiYgISRpc19jdXN0b21fZm4pIHsKKwor
ICAgICAgICBpZiAoJGZuX3NpZ190eXBlIG5lICJET01PYmplY3QiKSB7CisgICAgICAgICAgICBp
ZiAoJHJldF9pc19jbGFzc190eXBlKSB7CisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksICIg
ICAgJHtyZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwke3JldHVyblR5cGV9PihXZWJLaXQ6
OnRvR0RPTShnX3Jlcy5nZXQoKSkpO1xuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAgcHVz
aChAY0JvZHksICIgICAgcmV0dXJuIE5VTEw7IC8qIFRPRE86IHJldHVybiBjYW52YXMgb2JqZWN0
ICovXG4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IHJldHVybiByZXM7XG4iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwdXNoKEBjQm9keSwgIlxu
Iik7CisKKyAgICBwdXNoKEBjQm9keSwgIn1cblxuIik7Cit9CisKK3N1YiBHZW5lcmF0ZVByb3Bl
cnRpZXMgeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkY2xhc3MgPSBzaGlmdDsK
KyAgICBteSAkY2xhc3NDYXBzID0gc2hpZnQ7CisgICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9IHNo
aWZ0OworICAgIAorICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGNsYXNzLT5uYW1lOworICAgIG15
ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOyAgICMgZS5nLiBHZG9t
RWxlbWVudAorICAgIAorICBTS0lQUFJPUDoKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7
JGNsYXNzLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBpZiAoc2tpcEF0dHJpYnV0ZSgkYXR0cmli
dXRlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAg
ICAgICAgYWRkUHJvcEluY2x1ZGVIZWFkZXIoJHByb3BfdHlwZSk7CisgICAgfQorCisgICAgbXkg
JGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitHX0JFR0lOX0RFQ0xTCisKK2VudW0geworICAgIFBS
T1BfMCwKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAgIG15
IEB0eHRfaW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfc2V0X3Byb3BzID0gKCk7Cisg
ICAgbXkgQHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAgIG15ICR0eHRfZ2V0X3Byb3AgPSA8PCAi
RU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuKEdP
YmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAgICAgICBHVmFs
dWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKK3sK
KyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xhc3NDYXBzfShvYmplY3QpOworICAg
IFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiBnc2VsZiA9IFdlYktpdDo6Y29yZShzZWxmKTsK
KyAgICBzd2l0Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0
eHRfZ2V0X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGlj
IHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVj
dCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAqIHZh
bHVlLAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQoreworICAgICR7
Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbGFzc0NhcHN9KG9iamVjdCk7CisgICAgV2ViQ29y
ZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGdzZWxmID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIHN3
aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRf
cHJvcCk7CisgICAgCisgICAgIyBJdGVyYXRlIG92ZXIgdGhlIGludGVyZmFjZSBhdHRyaWJ1dGVz
IGFuZCBnZW5lcmF0ZSBhIHByb3BlcnR5IGZvcgorICAgICMgZWFjaCBvbmUgb2YgdGhlbS4KKyAg
U0tJUEVOVU06CisgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRjbGFzcy0+YXR0cmlidXRl
c30pIHsKKyAgICAgICAgaWYgKHNraXBBdHRyaWJ1dGUoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAg
ICAgIG5leHQgU0tJUEVOVU07CisgICAgICAgIH0KKworICAgICAgICBteSAkcHJvcF9uYW1lID0g
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICBteSAkc2V0cHJvcF9uYW1lX2Zu
ID0gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRn
ZXRwcm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkcHJvcF9uYW1lKTsK
KyAgICAgICAgbXkgJHByb3BfbmFtZV9kZWNhbWVsID0gZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsK
KyAgICAgICAgbXkgJHByb3BOYW1lID0gJHByb3BfbmFtZV9kZWNhbWVsOworICAgICAgICAkcHJv
cE5hbWUgPX4gcy9fLy0vZzsKKyAgICAgICAgbXkgJHByb3BDYXBzID0gdWMoJHByb3BfbmFtZV9k
ZWNhbWVsKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAg
bXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BDYXBzfSI7CisgICAgICAgIG15ICR7cHJvcF9n
dHlwZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5cGUpOworICAgICAgICBteSAke3Byb3BHVHlwZX0g
PSB1YygkcHJvcF9ndHlwZSk7CisgICAgICAgIG15ICRsY2FzZV9ndHlwZW5hbWUgPSAiZ2RvbV8i
IC4gJHByb3BfZ3R5cGU7CisKKyAgICAgICAgcHVzaChAY0JvZHlQcml2LCAiICAgICR7cHJvcEVu
dW19LFxuIik7CisKKyAgICAgICAgbXkgJGd0eXBlID0gR2V0UHJvcEdUeXBlKCRwcm9wX3R5cGUp
OworICAgICAgICBteSAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURBQkxFIjsKKyAgICAgICAg
bXkgJHdyaXRlYWJsZSA9ICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS87CisgICAgICAg
IG15ICRjb25zdCA9ICJyZWFkLW9ubHkgIjsKKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgJGN1
c3RvbSkgeworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtb25seSAoZHVlIHRvIGN1c3RvbSBm
dW5jdGlvbnMgbmVlZGVkIGluIGdkb213ZWJraXQpIjsKKyAgICAgICAgICAgIG5leHQgU0tJUEVO
VU07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgISRjdXN0b20pIHsKKyAg
ICAgICAgICAgICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBRFdSSVRFIjsKKyAgICAgICAgICAg
ICRjb25zdCA9ICJyZWFkLXdyaXRlICI7CisgICAgICAgIH0KKworICAgICAgICBteSAkX2d0eXBl
ID0gJGd0eXBlOworICAgICAgICBpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAg
ICAkX2d0eXBlID0gInVpbnQiOyAjIHl1aworICAgICAgICB9CisgICAgICAgICRuaWNrID0gZGVj
YW1lbGl6ZSgke2ludGVyZmFjZU5hbWV9KSAuICJfIiAuICRwcm9wX25hbWVfZGVjYW1lbDsKKyAg
ICAgICAgJG5pY2sgPX4gcy9fLyAvZzsKKyAgICAgICAgJG5pY2sgPX4gcy9cYihcdykvXFUkMS9n
OyAgICMgY2FwaXRhbGl6ZSBlYWNoIHdvcmQKKyAgICAgICAgJGxvbmcgPSAiJHtjb25zdH0gJHt0
eXBlfSAke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IjsKKyAgICAgICAgbXkgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
IChnX2tsYXNzLCAke3Byb3BFbnVtfSwKKyAgICAgICAgICAgIGdfcGFyYW1fc3BlY18ke19ndHlw
ZX0gKCIke3Byb3BOYW1lfSIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAgICAiJG5pY2siLCAv
KiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICIkbG9uZyIsIC8qIGxvbmdl
ciAtIGNvdWxkIHVzZSBzb21lIGV4dHJhIGRvYyBoZXJlICovCitFT0YKKyAgICAgICAgcHVzaChA
dHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSAiLyogVE9ETyEgJGd0eXBlICovXG4iOworCisgICAgICAgIGlmICgkd3JpdGVh
YmxlKSB7CisgICAgICAgICAgICBteSAkb2sgPSAwOworICAgICAgICAgICAgbXkgJGNvbnZlcnRf
Zm4gPSAiIjsKKworICAgICAgICAgICAgaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAg
ICAgICAgICAgICRjb252ZXJ0X2ZuID0gIldlYkNvcmU6OlN0cmluZzo6ZnJvbVVURjgiOworICAg
ICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNpZiAo
KCRndHlwZSBlcSAiYm9vbGVhbiIgYW5kICR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIp
IG9yICAgICAjIFRPRE86IGhhbmRsZSBET01XaW5kb3cKKyAgICAgICAgICAgICAgICAgICAkZ3R5
cGUgZXEgImZsb2F0IiBvcgorICAgICAgICAgICAgICAgICAgICgkZ3R5cGUgZXEgImRvdWJsZSIg
YW5kICR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIG9yCisgICAgICAgICAgICAgICAg
ICAgJGd0eXBlIGVxICJ1aW50NjQiIG9yCisgICAgICAgICAgICAgICAgICAgKCRndHlwZSBlcSAi
dWxvbmciIGFuZCAke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSBvcgorICAgICAgICAg
ICAgICAgICAgICgkZ3R5cGUgZXEgImxvbmciIGFuZCAke2ludGVyZmFjZU5hbWV9IG5lICJET01X
aW5kb3ciKSBvcgorICAgICAgICAgICAgICAgICAgICRndHlwZSBlcSAidWludCIgb3IKKyAgICAg
ICAgICAgICAgICAgICAkZ3R5cGUgZXEgInVzaG9ydCIgb3IKKyAgICAgICAgICAgICAgICAgICAk
Z3R5cGUgZXEgInVjaGFyIiBvcgorICAgICAgICAgICAgICAgICAgICRndHlwZSBlcSAiY2hhciIp
IHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
IyBUT0RPOiBoYW5kbGUgTG9jYXRpb24KKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiTG9jYXRpb24iKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMDsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKCRvaykgeworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRf
cHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
ID0gMDtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgaWYoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ29udmVydEZyb21TdHJpbmcifSkgeworICAgICAgICAgICAgICAgICAg
ICAkY29udmVydF9mbiA9ICJXZWJDb3JlOjpTdHJpbmc6Om51bWJlciI7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJv
cHMsICIgICAgICAgIGdzZWxmLT5zZXQke3NldHByb3BfbmFtZV9mbn0oJHtjb252ZXJ0X2ZufShn
X3ZhbHVlX2dldF8kZ3R5cGUgKHZhbHVlKSkiKTsKKworICAgICAgICAgICAgICAgIHB1c2goQHR4
dF9zZXRfcHJvcHMsICIsIGVjIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsK
KyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiKTtcbiIpOworCisgICAgICAg
ICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgYnJlYWs7XG4gICAgfVxuIik7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3Bz
LCAiICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKworICAgICAgICBteSAkZXhjZXB0
aW9uID0gIiI7CisgICAgICAgIGlmIChAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7
CisgICAgICAgICAgICAkZXhjZXB0aW9uID0gImVjIjsKKyAgICAgICAgICAgIHB1c2goQHR4dF9n
ZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7Cisg
ICAgICAgIH0KKworICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkcG9z
dF9jb252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRkb25lID0gMDsKKyAgICAgICAgaWYgKCRn
dHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAg
ICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyAodmFsdWUsIGdkb21fZ3N0cmluZ19jb252ZXJ0KGdz
ZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KSkpO1xuIik7CisgICAgICAgICAg
ICAkZG9uZSA9IDE7CisgICAgICAgIH0KKyAgICAgICAgZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0
IikgeworICAgICAgICAgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICBQYXNz
UmVmUHRyPFdlYkNvcmU6OiR7cHJvcF90eXBlfT4gcHRyID0gZ3NlbGYtPiR7Z2V0cHJvcF9uYW1l
X2ZufSgke2V4Y2VwdGlvbn0pOworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QgKHZhbHVlLCBX
ZWJLaXQ6OnRvR0RPTShwdHIuZ2V0KCkpKTsKK0VPRgorICAgICAgICAgICAgcHVzaChAdHh0X2dl
dF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICAgICAgICAgICRkb25lID0gMTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgaWYoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ29udmVydEZyb21TdHJpbmcifSkgeworICAgICAgICAgICAgIyBUT0RP
OiBBZGQgb3RoZXIgY29udmVyc2lvbiBmdW5jdGlvbnMgZm9yIGRpZmZlcmVudCB0eXBlcy4gIEN1
cnJlbnQKKyAgICAgICAgICAgICMgSURMcyBvbmx5IGxpc3QgbG9uZ3MuCisgICAgICAgICAgICBp
ZigkZ3R5cGUgZXEgImxvbmciKSB7CisgICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiIjsK
KyAgICAgICAgICAgICAgICAkcG9zdF9jb252ZXJ0X2ZuID0gIi50b0ludCgpIjsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZGllICJDYW4ndCBjb252ZXJ0IHRvIHR5cGUg
JHtndHlwZX0uIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICghJGRv
bmUpIHsKKyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIGdfdmFsdWVf
c2V0XyRfZ3R5cGUgKHZhbHVlLCAke2NvbnZlcnRfZm59Z3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2Zu
fSgke2V4Y2VwdGlvbn0pJHtwb3N0X2NvbnZlcnRfZm59KTtcbiIpOworICAgICAgICB9CisKKyAg
ICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgYnJlYWs7XG4gICAgfVxuIik7CisK
KyAgICAgICAgIyBpcyB0aGlzIF9lbnRpcmVseV8gbmVjZXNzYXJ5Pz8/CisgICAgICAgICMgY2Fu
IGl0IGJlIGRvbmUgd2l0aCBnZW5lcmljIGdfcGFyYW1fc3BlY19ndHlwZQorICAgICAgICAjIGFu
ZCBnZXR0aW5nIGEgZmV3IHRoaW5ncywgaWdub3JpbmcgdGhlIG1pbi1tYXggZm9yIGV4YW1wbGU/
CisgICAgICAgIGlmICgkZ3R5cGUgZXEgImludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFs
bF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5JTlQsICAgICAgICAvKiBt
aW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWElOVCwgLyogbWF4ICovCisgICAgICAgICAgICAg
ICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgImJvb2xlYW4iKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0Yi
OworICAgICAgICAgICAgICAgIEZBTFNFLCAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5GTE9BVCwgICAgICAgIC8qIG1pbiAq
LworICAgICAgICAgICAgICAgIEdfTUFYRkxPQVQsIC8qIG1heCAqLworICAgICAgICAgICAgICAg
IDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVx
ICJkb3VibGUiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOwor
ICAgICAgICAgICAgICAgIEdfTUlORE9VQkxFLCAgICAgICAgLyogbWluICovCisgICAgICAgICAg
ICAgICAgR19NQVhET1VCTEUsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAv
KiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7
CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAg
ICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ2NCwgLyog
bWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVsb25nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICov
CisgICAgICAgICAgICAgICAgR19NQVhVTE9ORywgLyogbWF4ICovCisgICAgICAgICAgICAgICAg
MCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEg
ImxvbmciKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAg
ICAgICAgICAgICAgIEdfTUlOTE9ORywgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAg
IEdfTUFYTE9ORywgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1
bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQiKSB7CisgICAgICAg
ICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAg
ICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQsIC8qIG1heCAqLworICAg
ICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNp
ZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9
IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAg
ICAgICAgICBHX01BWFVJTlQxNiwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVjaGFyIikg
eworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAg
ICAgICBHX01JTklOVDgsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWElO
VDgsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJjaGFyIikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyog
bWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5UOCwgLyogbWF4ICovCisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVP
RiI7CisgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR0RPTV9UWVBFXyR7cHJvcEdUeXBlfSwgLyog
Z29iamVjdCB0eXBlICovCitFT0YKKyAgICAgICAgfQorICAgICAgICBwdXNoKEB0eHRfaW5zdGFs
bF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9
IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykke2dwYXJhbWZsYWd9KSk7
CisKK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3By
b3ApOworICAgIH0KKworICAgIHB1c2goQGNCb2R5UHJpdiwgIn07XG5cbiIpOworCisgICAgJHR4
dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dB
Uk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorRU9GCisgICAgcHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRf
cHJvcCk7CisKKyAgICAkdHh0X3NldF9wcm9wID0gPDwgIkVPRiI7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0
X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKyAgICAKKyAgICBwdXNoKEBjQm9keVByaXYsIEB0eHRf
Z2V0X3Byb3BzKTsKKyAgICBwdXNoKEBjQm9keVByaXYsIEB0eHRfc2V0X3Byb3BzKTsKKyAgICAK
KyAgICByZXR1cm4gQHR4dF9pbnN0YWxsX3Byb3BzOworfQorCisjIEdlbmVyYXRlIGhlYWRlciBh
bmQgaW1wbGVtZW50YXRpb24KK3N1YiBHZW5lcmF0ZSB7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0
OworICAgIG15ICRjbGFzcyA9IHNoaWZ0OworCisgICAgbXkgJGhhc0xlZ2FjeVBhcmVudCA9ICRj
bGFzcy0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9OworICAgIG15ICRoYXNS
ZWFsUGFyZW50ID0gQHskY2xhc3MtPnBhcmVudHN9ID4gMDsKKyAgICBteSAkaGFzUGFyZW50ID0g
JGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVudDsKKyAgICBteSAkcGFyZW50Q2xhc3NO
YW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRjbGFzcyk7CisgICAgbXkgJHBhcmVudEdPYmpUeXBl
ID0gR2V0UGFyZW50R09iamVjdFR5cGUoJGNsYXNzKTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9
ICRjbGFzcy0+bmFtZTsKKyAgICBteSAkY2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZh
Y2VOYW1lKTsgICAjIGUuZy4gR2RvbUVsZW1lbnQKKyAgICBteSAkaGRyTmFtZSA9IEdldEhlYWRl
ck5hbWUoJGludGVyZmFjZU5hbWUpOworICAgIAorICAgICMgQWRkIHRoZSBkZWZhdWx0IGltcGxl
bWVudGF0aW9uIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxp
Y2VuY2VUZW1wbGF0ZSk7CisgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CisKKyAgICAkaW1wbElu
Y2x1ZGVzeyJ3ZWJraXRtYXJzaGFsLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbWJp
bmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyRoZHJOYW1lLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke2hkck5hbWV9UHJpdmF0ZS5oIn0gPSAxOworICAg
ICRpbXBsSW5jbHVkZXN7Imdkb20vZ3N0cmluZ2NvbnZlcnQuaCJ9ID0gMTsKKyAgICAkaW1wbElu
Y2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRXhj
ZXB0aW9uQ29kZS5oIn0gPSAxOworICAgIAorICAgIG15ICRwYXJlbnRJbnRlcmZhY2VOYW1lID0g
c3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOyAgICAgIyBzdHJpcCBHZG9tIHByZWZpeAorICAg
IG15ICRwYXJlbnRIZHJOYW1lID0gR2V0SGVhZGVyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7
CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAg
JGltcGxJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5hbWV9UHJpdmF0ZS5oIn0gPSAxOworICAg
ICRoZHJJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisKKyAgICAjIEdl
dCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQT0RUeXBlIGZsYWcKKyAgICBt
eSAkcG9kVHlwZSA9ICRjbGFzcy0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlBPRFR5cGUifTsKKyAg
ICBteSAkcGFzc1R5cGUgPSAkcG9kVHlwZSA/ICJKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBl
PioiIDogIiRpbnRlcmZhY2VOYW1lKiI7CisKKyAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBlcSAi
RE9NV2luZG93IiB8fCAoISRoYXNQYXJlbnQgb3IgJGNsYXNzLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiR2VuZXJhdGVUb0pTIn0pCisgICAgICAgIGFuZCAhVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRh
dGlvbigkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgbXkgJGNvbnZlcnRlciA9IDw8ICJFT0Yi
OworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgCitncG9pbnRlciB0b0dET00oV2ViQ29yZTo6JHBh
c3NUeXBlIG9iaikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChvYmogIT0gTlVMTCwgTlVM
TCk7CisKKyAgICBpZiAoZ3BvaW50ZXIgcmV0ID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmpl
Y3Qob2JqKSkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldHVybiBHRE9NT2JqZWN0Q2Fj
aGU6OnB1dERPTU9iamVjdChvYmosIFdlYktpdDo6d3JhcCR7aW50ZXJmYWNlTmFtZX0ob2JqKSk7
Cit9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQgLy8KKworRU9GCisKKyAgICAgICAgcHVz
aChAY0JvZHksICRjb252ZXJ0ZXIpOworICAgIH0KKworICAgIG15ICRpbXBsQ29udGVudCA9ICIi
OworCisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xuXG4iKTsKKworICAgICMgQWRk
IHRoZSBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQorICAgIEBoUHJlZml4ID0gc3BsaXQoIlxyIiwg
JGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgIAorICAgICMgSGVhZGVyIGd1YXJkCisgICAgbXkgJGd1
YXJkID0gIl9fIiAuICRjbGFzc05hbWUgLiAiX0hfXyI7CisKKyAgICBteSAkY2xhc3NDYXBzID0g
dWMoZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUg
PSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSk7CisKKyAgICBAaFByZWZpeEd1
YXJkID0gPDwgIkVPRiI7CisjaWZuZGVmICRndWFyZAorI2RlZmluZSAkZ3VhcmQKK0VPRgorCisg
ICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitHX0JFR0lOX0RFQ0xTCisKK0VPRgorCisgICAg
cHVzaChAaEJvZHlQcmUsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAi
RU9GIjsKKworI2RlZmluZSBHRE9NX1RZUEVfJHtjbGFzc0NhcHN9ICAgICAgICAgICAgKCR7bGNh
c2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NXyR7Y2xhc3NDYXBzfShvYmop
ICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVf
JHtjbGFzc0NhcHN9LCAke2NsYXNzTmFtZX0pKQorI2RlZmluZSBHRE9NXyR7Y2xhc3NDYXBzfV9D
TEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZ
UEVfJHtjbGFzc0NhcHN9LCAkY2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xh
c3NDYXBzfShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBH
RE9NX1RZUEVfJHtjbGFzc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV9JU18ke2NsYXNzQ2Fwc31fQ0xB
U1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7
Y2xhc3NDYXBzfSkpCisjZGVmaW5lIEdET01fJHtjbGFzc0NhcHN9X0dFVF9DTEFTUyhvYmopICAo
R19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV8ke2NsYXNzQ2Fwc30s
ICR7Y2xhc3NOYW1lfUNsYXNzKSkKKworc3RydWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFy
ZW50Q2xhc3NOYW1lfSBwYXJlbnRfaW5zdGFuY2U7Cit9OworCitzdHJ1Y3QgXyR7Y2xhc3NOYW1l
fUNsYXNzIHsKKyAgICAke3BhcmVudENsYXNzTmFtZX1DbGFzcyBwYXJlbnRfY2xhc3M7Cit9Owor
CitXRUJLSVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOwor
CitFT0YKKworICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250
ZW50ID0gPDwgIkVPRiI7CisKK0dfQkVHSU5fREVDTFMKKworR19ERUZJTkVfVFlQRSgke2NsYXNz
TmFtZX0sICR7bGNhc2VfaWZhY2VuYW1lfSwgJHtwYXJlbnRHT2JqVHlwZX0pOworCitHX0VORF9E
RUNMUworCituYW1lc3BhY2UgV2ViS2l0IHsKKworJHtjbGFzc05hbWV9ICoKK3dyYXAke2ludGVy
ZmFjZU5hbWV9KFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKmNvcmVPYmplY3QpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoY29yZU9iamVjdCAhPSBOVUxMLCBOVUxMKTsKKyAgICAKKyAg
ICAke2NsYXNzTmFtZX0gKndyYXBwZXIgPSBHRE9NXyR7Y2xhc3NDYXBzfShnX29iamVjdF9uZXco
R0RPTV9UWVBFXyR7Y2xhc3NDYXBzfSwgTlVMTCkpOworICAgIAorICAgIGNvcmVPYmplY3QtPnJl
ZigpOworICAgIEdET01fRE9NX09CSkVDVCh3cmFwcGVyKS0+Y29yZU9iamVjdCA9IGNvcmVPYmpl
Y3Q7CisKKyAgICByZXR1cm4gd3JhcHBlcjsKK30KKworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1l
fSAqCitjb3JlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChyZXF1ZXN0ICE9IE5VTEwsIE5VTEwpOworICAgIAorICAgIFdlYkNvcmU6OiR7aW50ZXJm
YWNlTmFtZX0gKmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5h
bWV9ICo+KEdET01fRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7CisgICAgZ19hc3Nl
cnQoY29yZU9iamVjdCAhPSBOVUxMKTsKKyAgICAKKyAgICByZXR1cm4gY29yZU9iamVjdDsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0IC8KKworRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAk
aW1wbENvbnRlbnQpOworCisgICAgbXkgQHR4dF9pbnN0YWxsX3Byb3BzID0gJG9iamVjdC0+R2Vu
ZXJhdGVQcm9wZXJ0aWVzKCRjbGFzcywgJGNsYXNzQ2FwcywgJGxjYXNlX2lmYWNlbmFtZSk7CisK
KyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFj
ZW5hbWV9X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0KiBk
b21fb2JqZWN0ID0gR0RPTV9ET01fT0JKRUNUKG9iamVjdCk7CisgICAgCisgICAgaWYgKGRvbV9v
YmplY3QgIT0gTlVMTCAmJiBkb21fb2JqZWN0LT5jb3JlT2JqZWN0ICE9IE5VTEwpIHsKKyAgICAg
ICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdl
YkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKj4oZG9tX29iamVjdC0+Y29yZU9iamVjdCk7CisgICAg
ICAgIGNvcmVPYmplY3QtPmRlcmVmKCk7CisgICAgICAgIAorICAgICAgICBkb21fb2JqZWN0LT5j
b3JlT2JqZWN0ID0gTlVMTDsKKyAgICAgICAgCisgICAgICAgIFdlYktpdDo6R0RPTU9iamVjdENh
Y2hlOjpmb3JnZXRET01PYmplY3QoY29yZU9iamVjdCk7CisgICAgfQorCisgICAgR19PQkpFQ1Rf
Q0xBU1MoJHtsY2FzZV9pZmFjZW5hbWV9X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7
Cit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9jbGFzc19pbml0KCR7Y2xhc3NO
YW1lfUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit7CisgICAgR09iamVjdENsYXNzICpnX2tsYXNzID0g
R19PQkpFQ1RfQ0xBU1MgKHJlcXVlc3RDbGFzcyk7CisgICAgZ19rbGFzcy0+ZmluYWxpemUgPSAk
e2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemU7CisgICAgZ19rbGFzcy0+c2V0X3Byb3BlcnR5ID0g
JHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlfZm47CisgICAgZ19rbGFzcy0+Z2V0X3By
b3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVydHlfZm47CisKK0B0eHRfaW5z
dGFsbF9wcm9wcworfQorCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1faW5pdCgke2Ns
YXNzTmFtZX0qIHJlcXVlc3QpCit7Cit9CisKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGlt
cGxDb250ZW50KTsKKworICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbSR7aW50ZXJmYWNlTmFt
ZX1Qcml2YXRlLmgifSA9IDE7CisKKyAgICAkaW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9
LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5o
In0gPSAxOworCisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGNsYXNzLT5mdW5jdGlvbnN9
KSB7CisgICAgICAgICRvYmplY3QtPkdlbmVyYXRlRnVuY3Rpb24oJGludGVyZmFjZU5hbWUsICRm
dW5jdGlvbiwgIiIpOworICAgIH0KKworICAgIFRPUDoKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1
dGUgKEB7JGNsYXNzLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBpZiAoc2tpcEF0dHJpYnV0ZSgk
YXR0cmlidXRlKSkgeworICAgICAgICAgICAgbmV4dCBUT1A7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgInR5cGUiCisgICAg
ICAgICAgICAjIFRoaXMgd2lsbCBjb25mbGljdCB3aXRoIHRoZSBnZXRfdHlwZSgpIGZ1bmN0aW9u
IHdlIGRlZmluZSB0byByZXR1cm4gYSBHVHlwZQorICAgICAgICAgICAgIyBhY2NvcmRpbmcgdG8g
R09iamVjdCBjb252ZW50aW9ucy4gIFNraXAgdGhpcyBmb3Igbm93LgorICAgICAgICAgICAgfHwg
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIGVxICJVUkwiICAgICAjIFRPRE86IGhhbmRsZSB0
aGlzCisgICAgICAgICAgICB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDb252ZXJ0RnJvbVN0cmluZyJ9ICAgICMgVE9ETzogaGFuZGxlIHRoaXMKKyAgICAg
ICAgICAgICkgeworICAgICAgICAgICAgbmV4dCBUT1A7CisgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICBteSAkYXR0bmFtZV91cHBlciA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgIG15ICRnZXRuYW1lID0gImdl
dCR7YXR0bmFtZV91cHBlcn0iOworICAgICAgICBteSAkc2V0bmFtZSA9ICJzZXQke2F0dG5hbWVf
dXBwZXJ9IjsKKyAgICAgICAgaWYgKENsYXNzSGFzRnVuY3Rpb24oJGNsYXNzLCAkZ2V0bmFtZSkg
fHwgQ2xhc3NIYXNGdW5jdGlvbigkY2xhc3MsICRzZXRuYW1lKSkgeworICAgICAgICAgICAgIyBW
ZXJ5IG9jY2FzaW9uYWxseSBhbiBJREwgZmlsZSBkZWZpbmVzIGdldHRlci9zZXR0ZXIgZnVuY3Rp
b25zIGZvciBvbmUgb2YgaXRzCisgICAgICAgICAgICAjIGF0dHJpYnV0ZXM7IGluIHRoaXMgY2Fz
ZSB3ZSBkb24ndCBuZWVkIHRvIGF1dG9nZW5lcmF0ZSB0aGUgZ2V0dGVyL3NldHRlci4KKyAgICAg
ICAgICAgIG5leHQgVE9QOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAjIEdlbmVyYXRl
IGFuIGF0dHJpYnV0ZSBnZXR0ZXIuICBGb3IgYW4gYXR0cmlidXRlICJmb28iLCB0aGlzIGlzIGEg
ZnVuY3Rpb24gbmFtZWQKKyAgICAgICAgIyAiZ2V0X2ZvbyIgd2hpY2ggY2FsbHMgYSBET00gY2xh
c3MgbWV0aG9kIG5hbWVkIGZvbygpLgorICAgICAgICBteSAkZnVuY3Rpb24gPSBuZXcgZG9tRnVu
Y3Rpb24oKTsKKyAgICAgICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlKTsKKyAgICAgICAgJGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zKCRhdHRyaWJ1dGUtPmdl
dHRlckV4Y2VwdGlvbnMpOworICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUZ1bmN0aW9uKCRpbnRl
cmZhY2VOYW1lLCAkZnVuY3Rpb24sICJnZXQiKTsKKyAgICAgICAgCisgICAgICAgIGlmICgkYXR0
cmlidXRlLT50eXBlID1+IC9ecmVhZG9ubHkvIHx8CisgICAgICAgICAgICAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBsYWNlYWJsZSJ9ICAjIGNhbid0IGhh
bmRsZSB0aGlzIHlldAorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICBuZXh0IFRPUDsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgIyBHZW5lcmF0ZSBhbiBhdHRyaWJ1dGUgc2V0dGVy
LiAgRm9yIGFuIGF0dHJpYnV0ZSwgImZvbyIsIHRoaXMgaXMgYSBmdW5jdGlvbiBuYW1lZAorICAg
ICAgICAjICJzZXRfZm9vIiB3aGljaCBjYWxscyBhIERPTSBjbGFzcyBtZXRob2QgbmFtZWQgc2V0
Rm9vKCkuCisgICAgICAgICRmdW5jdGlvbiA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAK
KyAgICAgICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAg
ICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUoJHNldG5hbWUpOworICAgICAgICAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+dHlwZSgidm9pZCIpOworICAgICAgICAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKTsKKyAgICAgICAgCisgICAgICAgIG15ICRwYXJhbSA9IG5ldyBkb21TaWduYXR1cmUo
KTsKKyAgICAgICAgJHBhcmFtLT5uYW1lKCJ2YWx1ZSIpOworICAgICAgICAkcGFyYW0tPnR5cGUo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKKyAgICAgICAgbXkgJWF0dHJpYnV0ZXMgPSAo
KTsKKyAgICAgICAgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7CisgICAg
ICAgIG15ICRhcnJheVJlZiA9ICRmdW5jdGlvbi0+cGFyYW1ldGVyczsKKyAgICAgICAgcHVzaChA
JGFycmF5UmVmLCAkcGFyYW0pOworICAgICAgICAKKyAgICAgICAgJGZ1bmN0aW9uLT5yYWlzZXNF
eGNlcHRpb25zKCRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnMpOworICAgICAgICAKKyAgICAg
ICAgJG9iamVjdC0+R2VuZXJhdGVGdW5jdGlvbigkaW50ZXJmYWNlTmFtZSwgJGZ1bmN0aW9uLCAi
c2V0Iik7CisgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xu
XG4iKTsKKyAgICBwdXNoKEBjQm9keVByaXYsICJHX0VORF9ERUNMU1xuXG4iKTsKKworICAgIHB1
c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5kaWYg
LyogJGd1YXJkICovXG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIKK3N1YiBXcml0ZURhdGEg
eworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkgPSBAXzsKKworICAgICMgV3JpdGUgcHVibGljIGhl
YWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgiOwor
ICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxl
ICRoZHJGTmFtZSI7CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVB
REVSIEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSBcImdkb20vZ2Rv
bWRlZmluZXMuaFwiXG4iOworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+XG4iOworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVz
Lmg+XG4iOworICAgIHByaW50IEhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29y
dCBrZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaGRy
SW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaEJv
ZHlQcmU7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhFQURFUik7CisK
KyAgICAjIFdyaXRlIHRoZSBpbXBsZW1lbnRhdGlvbgorICAgIG15ICRpbXBsRmlsZU5hbWUgPSAi
JG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihJTVBMLCAiPiRpbXBsRmls
ZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lIjsKKworICAg
IHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPGdsaWItb2Jq
ZWN0Lmg+XG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuXG4iOwor
ICAgIHByaW50IElNUEwgIiNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+XG4iOworICAgIHByaW50IElN
UEwgIiNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPlxuIjsKKyAgICBwcmludCBJTVBMIG1hcCB7
ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJp
bnQgSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQgSU1QTCBAY0Jv
ZHk7CisKKyAgICBwcmludCBJTVBMICJcbiI7CisgICAgcHJpbnQgSU1QTCBAY0JvZHlQcml2Owor
CisgICAgY2xvc2UoSU1QTCk7CisKKyAgICAlaW1wbEluY2x1ZGVzID0gKCk7CisgICAgJWhkcklu
Y2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBAaFByZWZpeEd1YXJkID0gKCk7
CisgICAgQGhCb2R5UHJlID0gKCk7CisgICAgQGhCb2R5ID0gKCk7CisKKyAgICBAY1ByZWZpeCA9
ICgpOworICAgIEBjQm9keSA9ICgpOworICAgIEBjQm9keVByaXYgPSAoKTsKK30KKworMTsKSW5k
ZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQxMDE4KQor
KysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMDItMTgg
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgICAgICAgICAg
ICBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisgICAgICAgICAgICBBZGFtIERp
bmdsZSA8YWRhbUB5b3JiYS5vcmc+CisgICAgICAgICAgICBKaW0gTmVsc29uIDxqaW1AeW9yYmEu
b3JnPgorICAgICAgICAKKyAgICAgICAgSW1wbGVtZW50ZWQgR1RLIERPTSBiaW5kaW5nLgorICAg
ICAgICAKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKwogMjAwOS0wMi0xMiAgR3VzdGF2byBO
b3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KSW5kZXg6IFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA0MTAxOCkKKysrIFdlYktpdFRv
b2xzL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC03LDggKzcsMTAgQEAKIAogIyBH
dGtMYXVuY2hlcgogUHJvZ3JhbXNfR3RrTGF1bmNoZXJfQ1BQRkxBR1MgPSBcCisJLUkkKHNyY2Rp
cikvV2ViQ29yZS9iaW5kaW5ncyBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHRv
cF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQg
XAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29yZV9jcHBmbGFncykKIApA
QCAtMzAsOCArMzIsMTAgQEAKIFByb2dyYW1zX0R1bXBSZW5kZXJUcmVlX0NQUEZMQUdTID0gXAog
CS1JJChzcmNkaXIpL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlIFwKIAktSSQoc3JjZGlyKS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmlu
ZGluZ3MgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIpL1dl
YktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKIAktRFRFU1RfUExV
R0lOX0RJUj1cIiR7c2hlbGwgcHdkfS8ke3RvcF9idWlsZGRpcn0vVGVzdE5ldHNjYXBlUGx1Z2lu
Ly5saWJzXCIgXAogCSQoZ2xvYmFsX2NwcGZsYWdzKSBcCiAJJChqYXZhc2NyaXB0Y29yZV9jcHBm
bGFncykKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRU
b29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQxMDE4KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOSBAQAorMjAwOS0wMi0xOCAgTHVrZSBLZW5uZXRo
IENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBNaW5vciBjaGFuZ2Vz
IGZvciBHVEsgRE9NIGJpbmRpbmcuCisgICAgICAgICAgICAKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKKwogMjAwOS0wMi0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBObyByZXZpZXcuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28381</attachid>
            <date>2009-03-06 17:49:43 -0800</date>
            <delta_ts>2009-03-06 17:49:43 -0800</delta_ts>
            <desc>GTK DOM bindings</desc>
            <filename>gdom.diff</filename>
            <type>text/plain</type>
            <size>113461</size>
            <attacher name="Jim Nelson">jim</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA0MTQ0MykKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR09CSkVDVCA6
PSAkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Via2l0CiBHRU5QUk9HUkFNUyA6PSAk
KHRvcF9idWlsZGRpcikvUHJvZ3JhbXMKIAogIyBTY3JpcHQgZm9yIGNyZWF0aW5nIGhhc2ggdGFi
bGVzCkBAIC0xMDMsNyArMTA0LDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3
YXJkaW5nSGVhZGVycyBcCiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvcGFyc2VyIFwKIAkt
SSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS93dGYgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2
ZWRTb3VyY2VzCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJChzcmNk
aXIpL1dlYkNvcmUvYmluZGluZ3Mvd2Via2l0CiAKICMgVGhlIHZhcmlhYmxlcyBhYm92ZSBhcmUg
YWxyZWFkeSBpbmNsdWRlZCBiZWxvdyBzbyBubyBuZWVkIHRvIHRvdWNoCiAjIHRoZXNlIHZhcmlh
YmxlcyB1bmxlc3MgeW91IHJlYWxseSBoYXZlIHRvCkBAIC0xNTAsNiArMTUyLDExIEBACiB3ZWJj
b3JlZ3RrX2NwcGZsYWdzIDo9CiB3ZWJjb3JlZ3RrX3NvdXJjZXMgOj0KIAord2ViY29yZWd0a19j
cHBmbGFncyArPSBcCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Via2l0IFwK
KwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QKKwogbm9kaXN0X0VYVFJBX2xpYldlYkNvcmVfbGFfU09VUkNFUyA9IFwK
IAkkKHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzKQogCkBAIC0xOTMsNiArMjAwLDcgQEAKIGxpYldl
YkNvcmVfbGFfTElCQUREID0gXAogCWxpYkphdmFTY3JpcHRDb3JlLmxhIFwKIAlsaWJXZWJDb3Jl
SlMubGEgXAorCWxpYmdvYmplY3QubGEgXAogCSQod2ViY29yZV9saWJhZGQpIFwKIAkkKEdMSUJf
TElCUykgXAogCSQoTElCWE1MX0xJQlMpIFwKQEAgLTIxMiw2ICsyMjAsMTAgQEAKIAkkKEdFT0NM
VUVfTElCUykgXAogCS1scHRocmVhZAogCitsaWJnb2JqZWN0X2xhZGlyID0gJChwcmVmaXgpL2lu
Y2x1ZGUvd2Via2l0LTEuMC93ZWJraXQKK2xpYmdvYmplY3RfbGFfSEVBREVSUyA9IFwKKyAgICAg
ICAgJChsaWJnb2JqZWN0X2hfYXBpKQorCiAjIFdlYktpdAogd2Via2l0Z3RrX2hfYXBpIDo9CiB3
ZWJraXRndGtfc291cmNlcyA6PQpAQCAtMzYwLDEyICszNzIsMTQgQEAKIAktSSQoc3JjZGlyKS9X
ZWJLaXQvZ3RrIFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0IFwKIAkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCi0JLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0
L2d0ay93ZWJraXQKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCisJLUkk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMKIAogd2Via2l0Z3RrX2NsZWFuZmlsZXMgKz0g
XAogCSQodG9wX2J1aWxkZGlyKS9Qcm9ncmFtcy9HdGtMYXVuY2hlciBcCiAJJCh0b3BfYnVpbGRk
aXIpL1dlYktpdC9ndGsvd2Via2l0LTEuMC5wYyBcCi0JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oCisJJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGVudW10eXBlcy5oIFwKKwkkKHRvcF9idWlsZGRpcikvbGliZ29iamVjdC5s
YQogCiBwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCiBwa2djb25maWdfREFUQSA9
IFdlYktpdC9ndGsvd2Via2l0LTEuMC5wYwpAQCAtNDQxLDYgKzQ1NSw1MiBAQAogCSYmIGNwIHhn
ZW4tZ3RjICRAIFwKIAkmJiBybSAtZiB4Z2VuLWd0YwogCitXZWJLaXQvZ3RrL3dlYmtpdC9nZG9t
ZW51bXR5cGVzLmg6IHN0YW1wLWdkb21lbnVtdHlwZXMuaAorCUB0cnVlCitzdGFtcC1nZG9tZW51
bXR5cGVzLmg6ICQobGliZ2RvbV9oX2FwaSkgR05VbWFrZWZpbGUKKwkoY2QgJChzcmNkaXIpIFwK
KwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVhZCAiI2lmbmRlZiBHRE9NX0VOVU1fVFlQRVNf
SFxuIiBcCisJCQktLWZoZWFkICIjZGVmaW5lIEdET01fRU5VTV9UWVBFU19IXG5cbiIgXAorCQkJ
LS1maGVhZCAiI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG5cbiIgXAorCQkJLS1maGVhZCAiR19C
RUdJTl9ERUNMU1xuXG4iIFwKKwkJCS0tZnRhaWwgIkdfRU5EX0RFQ0xTXG5cbiIgXAorCQkJLS1m
dGFpbCAiI2VuZGlmXG4iIFwKKwkJCS0tZnByb2QgIiNpbmNsdWRlIDxAZmlsZW5hbWVAPlxuXG4i
IFwKKwkJCS0tZXByb2QgIiNkZWZpbmUgR0RPTV9UWVBFX0BFTlVNU0hPUlRAIEBlbnVtX25hbWVA
X2dldF90eXBlKClcblxuIiBcCisJCQktLWVwcm9kICJXRUJLSVRfQVBJIEdUeXBlXG5AZW51bV9u
YW1lQF9nZXRfdHlwZSh2b2lkKTtcblxuIiBcCisJCQkkKGxpYmdkb21faF9hcGkpIHwgXAorCQkJ
c2VkICdzLFdlYktpdC9ndGsvLCwnIHwgXAorCQlzZWQgJ3Msd2ViX2tpdCxnZG9tLCcgfCBcCisJ
CXNlZCAncyxHRE9NX1RZUEVfS0lULEdET01fVFlQRSwnIFwKKwkJKSA+IHhnZW4tY2d0aCBcCisJ
JiYgKGNtcCAtcyB4Z2VuLWNndGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oIHx8
IGNwIHhnZW4tY2d0aCBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmgpIFwKKwkmJiBy
bSAtZiB4Z2VuLWNndGggXAorCSYmIGVjaG8gdGltZXN0YW1wID4gJChARikKKworRGVyaXZlZFNv
dXJjZXMvZ2RvbWVudW10eXBlcy5jcHA6ICQobGliZ2RvbV9oX2FwaSkgR05VbWFrZWZpbGUKKwko
Y2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUg
PGNvbmZpZy5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cbiIg
XAorCQkJLS1maGVhZCAiI2luY2x1ZGUgXCIkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJr
aXQvZ2RvbWVudW10eXBlcy5oXCJcblxuIiBcCisJCQktLWZoZWFkICJleHRlcm4gXCJDXCIge1xu
XG4iIFwKKwkJCS0tZnByb2QgIlxuLyogZW51bWVyYXRpb25zIGZyb20gXCJAZmlsZW5hbWVAXCIg
Ki8iIFwKKwkJCS0tdmhlYWQgInN0YXRpYyBjb25zdCBHQFR5cGVAVmFsdWUgX0BlbnVtX25hbWVA
X3ZhbHVlc1tdID0geyIgXAorCQkJLS12cHJvZCAiICAgIHsgQFZBTFVFTkFNRUAsIFwiQFZBTFVF
TkFNRUBcIiwgXCJAdmFsdWVuaWNrQFwiIH0sIiBcCisJCQktLXZ0YWlsICIgICAgeyAwLCBOVUxM
LCBOVUxMIH1cbn07XG5cbiIgXAorCQkJLS12dGFpbCAiR1R5cGUgQGVudW1fbmFtZUBfZ2V0X3R5
cGUodm9pZClcbntcbiIgXAorCQkJLS12dGFpbCAiICAgIHN0YXRpYyBHVHlwZSB0eXBlID0gMDtc
blxuIiBcCisJCQktLXZ0YWlsICIgICAgaWYgKCF0eXBlKVxuIiBcCisJCQktLXZ0YWlsICIgICAg
ICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMoXCJARW51bU5hbWVAXCIsIF9AZW51
bV9uYW1lQF92YWx1ZXMpO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAgICByZXR1cm4gdHlwZTtcbn1c
blxuIiBcCisJCQktLWZ0YWlsICJ9XG4iIFwKKwkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJc2Vk
ICdzLHdlYl9raXQsZ2RvbSwnIFwKKwkJKSA+IHhnZW4tY2d0YyBcCisJJiYgY3AgeGdlbi1jZ3Rj
ICRAIFwKKwkmJiBybSAtZiB4Z2VuLWNndGMKKwogIyBFTkQgV0VCS0lUIEdUSysKICMKICMgRmls
ZXMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkCkBAIC00NjYsNiArNTI2LDcgQEAKICMgQnVpbGQg
dW5pdCB0ZXN0CiBub2luc3RfUFJPR1JBTVMgKz0gUHJvZ3JhbXMvVW5pdFRlc3RzCiBQcm9ncmFt
c19Vbml0VGVzdHNfQ1BQRkxBR1MgPSBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncyBc
CiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0
ayBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKQEAgLTQ5NCw3ICs1NTUsOCBAQAogCSQod2ViY29y
ZV9idWlsdF9zb3VyY2VzKSBcCiAJJCh3ZWJjb3JlX2J1aWx0X25vc291cmNlcykgXAogCSQod2Vi
a2l0Z3RrX2J1aWx0X3NvdXJjZXMpIFwKLQkkKHdlYmtpdGd0a19idWlsdF9ub3NvdXJjZXMpCisJ
JCh3ZWJraXRndGtfYnVpbHRfbm9zb3VyY2VzKSBcCisJJChnb2JqZWN0X2J1aWx0X25vc291cmNl
cykKIAogIyBQcm9qZWN0LXdpZGUgY2xlYW4gcnVsZXMKIENMRUFORklMRVMgKz0gXApJbmRleDog
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAkocmV2aXNpb24gNDE0NDMpCisrKyBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEhvbGdlciBIYW5zIFBldGVy
IEZyZXl0aGVyCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFs
cEBhdG9rZXIuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4KICAqIENvcHly
aWdodCAoQykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KQEAg
LTMzLDE5ICszNCwyOCBAQAogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudEd0ay5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCi0jaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKKyNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1
ZGUgIlByaW50Q29udGV4dC5oIgorI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgotI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJTdWJzdGl0dXRlRGF0YS5oIgorI2luY2x1ZGUgIlRleHREb2N1bWVudC5oIgorI2luY2x1
ZGUgIndlYmtpdGJpbmRpbmcuaCIKKyNpbmNsdWRlICJXZWJLaXREb2N1bWVudC5oIgorI2luY2x1
ZGUgIldlYktpdERvY3VtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVdpbmRvdy5o
IgorI2luY2x1ZGUgIldlYktpdERPTVdpbmRvd1ByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRY
TUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdFhNTEh0dHBSZXF1ZXN0UHJpdmF0ZS5o
IgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogCkBAIC0zMzEsNiArMzQx
LDYzIEBACiB9CiAKIC8qKgorICogd2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVz
dDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1cm5zIGEgR09iamVj
dCB3cmFwcGVyIGFyb3VuZCBhbiBYTUxIdHRwUmVxdWVzdAorICoKKyAqIFJldHVybiB2YWx1ZTog
YSBXZWJLaXRYTUxIdHRwUmVxdWVzdAorICoKKyAqIFNpbmNlOiAxLjEuMgorICovCitXZWJLaXRY
TUxIdHRwUmVxdWVzdCogd2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdChXZWJL
aXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lT
X1dFQl9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUo
ZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIHJldHVybiBXRUJLSVRfWE1MX0hU
VFBfUkVRVUVTVChXZWJLaXQ6OnRvR0RPTShYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKGNvcmVGcmFt
ZS0+ZG9jdW1lbnQoKSkuZ2V0KCkpKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9kb21fd2luZG93OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVy
bnMgYSBHT2JqZWN0IHdyYXBwZXIgYXJvdW5kIGEgRE9NV2luZG93CisgKgorICogUmV0dXJuIHZh
bHVlOiBhIFdlYktpdERPTVdpbmRvdworICoKKyAqIFNpbmNlOiAxLjEuMgorICovCitXZWJLaXRE
T01XaW5kb3cqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3coV2ViS2l0V2ViRnJhbWUq
IGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUo
ZnJhbWUpLCBOVUxMKTsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAg
ICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICByZXR1cm4gV0VCS0lUX0RPTV9XSU5ET1coV2ViS2l0
Ojp0b0dET00oY29yZUZyYW1lLT5kb21XaW5kb3coKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUK
KyAqCisgKiByZXR1cm5zIGEgR09iamVjdCB3cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAorICoK
KyAqIFJldHVybiB2YWx1ZTogYSBXZWJLaXREb2N1bWVudAorICoKKyAqIFNpbmNlOiAxLjEuMgor
ICovCitXZWJLaXREb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50KFdl
YktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
SVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29y
ZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisgICAgcmV0dXJuIFdFQktJVF9ET0NV
TUVOVChXZWJLaXQ6OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50KCkpKTsKK30KKworLyoqCiAg
KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lOgogICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFt
ZQogICoKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAkocmV2aXNpb24gNDE0NDMp
CisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRl
ciBGcmV5dGhlcgogICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5j
b20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsNiArMjcsOSBAQAogCiAj
aW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0
bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvV2ViS2l0RG9jdW1lbnQuaD4KKyNp
bmNsdWRlIDx3ZWJraXQvV2ViS2l0RE9NV2luZG93Lmg+CisjaW5jbHVkZSA8d2Via2l0L1dlYktp
dFhNTEh0dHBSZXF1ZXN0Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNjUsNiArNjksMTUgQEAK
IHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAqd2ViX3ZpZXcpOwogI2VuZGlmCiAKK1dFQktJVF9BUEkgV2ViS2l0WE1MSHR0cFJlcXVlc3Qg
Kgord2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdCAoV2ViS2l0V2ViRnJhbWUg
ICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBXZWJLaXRET01XaW5kb3cgKgord2Via2l0X3dl
Yl9mcmFtZV9nZXRfZG9tX3dpbmRvdyAgICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7
CisKK1dFQktJVF9BUEkgV2ViS2l0RG9jdW1lbnQgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfZG9t
X2RvY3VtZW50ICAgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKIFdFQktJVF9BUEkg
V2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAgICAgICAoV2Vi
S2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmgJKHJldmlzaW9u
IDQxNDQzKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDUgKzM2LDcgQEAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24u
aD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oPgogI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXRlbnVtdHlwZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZG9t
Lmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRvbWRlZmluZXMuaD4KIAogI2VuZGlmIC8qIF9f
V0VCS0lUX0hfXyAqLwpJbmRleDogV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MTQ0MykKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0wMy0wNiAgTHVrZSBLZW5uZXRoIENhc3Nv
biBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBJbXBsZW1lbnRlZCBHVEsgRE9N
IGJpbmRpbmcuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0MDEKKyAgICAgICAgW0dUS10gR09iamVjdC9DIERPTSBiaW5kaW5nCisK
KyAgICAgICAgKiBndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKKyAgICAgICAgKiBndGsv
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6CisgICAgICAgICogZ3RrL3dlYmtpdC93ZWJraXQuaAor
CiAyMDA5LTAzLTAzICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzY1ODEyMDM+IFdlYkNvcmUgYW5kIFdlYktpdCBzaG91bGQgaW5z
dGFsbCB0aGUgc2FtZSBzZXQgb2YgaGVhZGVycyBkdXJpbmcgaW5zdGFsbGhkcnMgcGhhc2UgYXMg
YnVpbGQgcGhhc2UKSW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiA0MTQ0MykKKysr
IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2
Miw5IEBACiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAga2V5Q29kZTsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgY2hhckNvZGU7Ci0gICAgICAgIAorCisgICAgICAg
IC8vIEZJWE1FOiBHT2JqZWN0IGlzIGluIEMsIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQgb3Zlcmxv
YWRlZCBmdW5jdGlvbnMKKyNpZiAhZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICB2
b2lkIGluaXRLZXlib2FyZEV2ZW50KGluIERPTVN0cmluZyB0eXBlLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbkJ1YmJsZSwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlLCAKQEAgLTc1LDYgKzc3LDggQEAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIG1ldGFLZXkpOwogI2Vu
ZGlmCiAKKyNlbmRpZgorCiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQxNDQzKQorKysgV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAwOS0wMy0wNiAg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAgICAgICAgICAg
IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAgICAgICAgICAgIEFkYW0gRGlu
Z2xlIDxhZGFtQHlvcmJhLm9yZz4KKyAgICAgICAgICAgIEppbSBOZWxzb24gPGppbUB5b3JiYS5v
cmc+CisgICAgICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2NDAxCisgICAgICAgIFtHVEtdIEdPYmplY3QvQyBET00gYmluZGluZworCisg
ICAgICAgIEltcGxlbWVudGVkIEdUSyBET00gYmluZGluZy4KKworICAgICAgICAqIGJpbmRpbmdz
L2dvYmplY3Qvd2Via2l0YmluZGluZy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC93
ZWJraXRiaW5kaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmpl
Y3QuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NT2JqZWN0Lmg6Cisg
ICAgICAgICogYmluZGluZ3MvZ29iamVjdC93ZWJraXRodG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L3dlYmtpdGh0bWxlbGVtZW50d3JhcHBl
cmZhY3RvcnkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L2dzdHJpbmdjb252ZXJ0Lmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUucGw6CisgICAgICAgICog
ZG9tL0tleWJvYXJkRXZlbnQuaWRsOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDA5
LTAzLTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsCkluZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDQxNDQzKQorKysg
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIAog
V2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQogCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVfREVGSU5FUyA6PQogU1ZHX0ZFQVRV
UkVTIDo9CiBIVE1MX0ZFQVRVUkVTIDo9CiAKQEAgLTksNyArOSwxMSBAQAogV0VCQ09SRV9DU1Nf
VkFMVUVfS0VZV09SRFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgogCiB3
ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3Jj
ZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3Rr
L3dlYmtpdCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZSBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwKIAkt
SSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9icmlkZ2Uv
YyBcCkBAIC01Nyw2ICs2MSw3IEBACiAJRGVyaXZlZFNvdXJjZXMvRG9jVHlwZVN0cmluZ3MuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy90b2tlbml6ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9Db2xv
ckRhdGEuYyBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L3dlYmtpdGRvbWR1bW15LmMgXAogCVdl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmx1dC5oIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUkdCQ29sb3IubHV0LmgKIApAQCAtMjQwLDYgKzI0NSwxNCBAQAogCVdlYkNvcmUv
eG1sL1hNTFNlcmlhbGl6ZXIuaWRsIFwKIAlXZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmlkbAog
Cit3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAorCVdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC93ZWJr
aXRiaW5kaW5nLmNwcCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L3dlYmtpdGJpbmRpbmcu
aCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU9iamVjdC5jcHAgXAorCVdl
YkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuaCBcCisJV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L3dlYmtpdGh0bWxlbGVtZW50d3JhcHBlcmZhY3RvcnkuY3BwIFwKKwlXZWJD
b3JlL2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0aHRtbGVsZW1lbnR3cmFwcGVyZmFjdG9yeS5oIAor
CiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvV2ViQ29yZVByZWZpeC5oIFwKIAlXZWJD
b3JlL2JpbmRpbmdzL2pzL0NhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggXApAQCAtMTg1Niw3
ICsxODY5LDcgQEAKICMgT2ZmbGluZSBXZWIgQXBwbGljYXRpb25zCiAjIC0tLS0KIGlmIEVOQUJM
RV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9
IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQorRkVBVFVSRV9ERUZJTkVTICs9IEVO
QUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQogCiBJRExfQklORElOR1MgKz0gXAogCVdl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsCkBAIC0xODk3LDcg
KzE5MTAsNyBAQAogIyBEYXRhYmFzZSBTdXBwb3J0CiAjIC0tLS0KIGlmIEVOQUJMRV9EQVRBQkFT
RQotRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0RBVEFCQVNFPTEKK0ZFQVRV
UkVfREVGSU5FUyArPSBFTkFCTEVfREFUQUJBU0U9MQogCiBJRExfQklORElOR1MgKz0gXAogCVdl
YkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXApAQCAtMTk3MCw3ICsxOTgzLDcgQEAKICMgSFRN
TDUgY2xpZW50LXNpZGUgc2Vzc2lvbiBhbmQgcGVyc2lzdGVudCBzdG9yYWdlCiAjIC0tLS0KIGlm
IEVOQUJMRV9ET01fU1RPUkFHRQotRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X0RPTV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfRE9NX1NUT1JBR0U9MQog
CiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmlkbCBcCkBAIC0y
MDI5LDcgKzIwNDIsNyBAQAogIyBWaWRlbyBTdXBwb3J0CiAjIC0tLS0KIGlmIEVOQUJMRV9WSURF
TwotRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1ZJREVPPTEKK0ZFQVRVUkVf
REVGSU5FUyArPSBFTkFCTEVfVklERU89MQogCiBIVE1MX0ZFQVRVUkVTICs9IEVOQUJMRV9WSURF
Tz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1ZJREVPPTEKQEAgLTIwODAsNyArMjA5
Myw3IEBACiAjIFhQYXRoIFN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxFX1hQQVRICi1GRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWFBBVEg9MQorRkVBVFVSRV9ERUZJTkVTICs9
IEVOQUJMRV9YUEFUSD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFBBVEg9MQog
CkBAIC0yMTUwLDcgKzIxNjMsNyBAQAogIyBYU0xUIFN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxF
X1hTTFQKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YU0xUPTEKK0ZFQVRV
UkVfREVGSU5FUyArPSBFTkFCTEVfWFNMVD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFC
TEVfWFNMVD0xCiAKQEAgLTIxNzEsNyArMjE4NCw3IEBACiAjIFdlYiBXb3JrZXJzIHN1cHBvcnQK
ICMgLS0tLQogaWYgRU5BQkxFX1dPUktFUlMKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9
IEVOQUJMRV9XT1JLRVJTPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfV09SS0VSUz0xCiAK
IHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1ERU5BQkxFX1dPUktFUlM9MQpAQCAtMjIxMSw3ICsy
MjI0LDcgQEAKICMgV01MIFN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxFX1dNTAotRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1dNTD0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5B
QkxFX1dNTD0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
V01MRWxlbWVudEZhY3RvcnkuY3BwIFwKQEAgLTIyNzAsNyArMjI4Myw3IEBACiAjIC0tLS0KIGlm
IEVOQUJMRV9HRU9MT0NBVElPTgogCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFC
TEVfR0VPTE9DQVRJT049MQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9HRU9MT0NBVElPTj0x
CiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktREVOQUJMRV9HRU9MT0NBVElPTj0xCiAKQEAgLTIy
ODYsNyArMjI5OSw3IEBACiAjIEZJWE1FOiBhbGxvdyBhIG1vcmUgZmluZS1ncmFpbmVkIGluY2x1
c2lvbi9nZW5lcmF0aW9uIG9mIHNvdXJjZXMgcGVyIFNWRyBmZWF0dXJlCiAjIC0tLS0KIGlmIEVO
QUJMRV9TVkcKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9MQorRkVB
VFVSRV9ERUZJTkVTICs9IEVOQUJMRV9TVkc9MQogCiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1F
UyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluIAogV0VCQ09SRV9DU1Nf
VkFMVUVfS0VZV09SRFMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgpA
QCAtMjg3MCwzNyArMjg4MywzNyBAQAogCiAjIFNWRyBGZWF0dXJlcwogaWYgRU5BQkxFX1NWR19V
U0UKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfVVNFPTEKK0ZFQVRV
UkVfREVGSU5FUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NW
R19VU0U9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfVVNFPTEKIGVuZGlmCiAK
IGlmIEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBU
ICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJM
RV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlH
Tl9PQkpFQ1Q9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpF
Q1Q9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT05UUwotRkVBVFVSRV9ERUZJTkVTX0pBVkFT
Q1JJUFQgKz0gRU5BQkxFX1NWR19GT05UUz0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1NW
R19GT05UUz0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2Nw
cGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZJ
TFRFUlMKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVSUz0x
CitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19GRUFUVVJFUyAr
PSBFTkFCTEVfU1ZHX0ZJTFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdf
RklMVEVSUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCi1GRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKK0ZFQVRVUkVfREVGSU5FUyAr
PSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FTX0lN
QUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVuZGlm
CiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1NWR19B
TklNQVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNv
cmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpAQCAtMzAzOSw3
ICszMDUyLDcgQEAKIAogLlNFQ09OREFSWToKIERlcml2ZWRTb3VyY2VzL0pTJS5jcHA6ICUuaWRs
ICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQotCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJChXZWJD
b3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsICQoSURMX1BBVEg6JT0t
LWluY2x1ZGUgIiUiKSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgLS1kZWZpbmVzICIkKEZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUKSIgLS1nZW5lcmF0b3IgSlMgJDwKKwkkKFBFUkwpIC1J
JChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9n
ZW5lcmF0ZS1iaW5kaW5ncy5wbCAkKElETF9QQVRIOiU9LS1pbmNsdWRlICIlIikgLS1vdXRwdXRE
aXIgIiQoR0VOU09VUkNFUykiIC0tZGVmaW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVD0xICQoRkVB
VFVSRV9ERUZJTkVTKSIgLS1nZW5lcmF0b3IgSlMgJDwKIAogSURMX0JJTkRJTkdTX0pTX1BVUkUg
Oj0gXAogCVdlYkNvcmUvc3ZnL0VsZW1lbnRUaW1lQ29udHJvbC5pZGwgXApAQCAtMzA3OSw3ICsz
MDkyLDgyIEBACiBsaWJXZWJDb3JlSlMubGE6ICQobGliV2ViQ29yZUpTX29iamVjdHMpCiAJJChD
WFhMSU5LKSAkKGxpYldlYkNvcmVKU19vYmplY3RzKSAkKExJQlMpCiAKKyMgVGhpcyBkdW1teSBm
aWxlIGNhdXNlcyBjb25maWd1cmUgdG8gZ2VuZXJhdGUgdGhlIERlcml2ZWRTb3VyY2VzL3dlYmtp
dC8uZGVwcyBkaXJlY3RvcnksIHdoaWNoIG11c3QKKyMgZXhpc3QgZm9yIHVzIHRvIGJlIGFibGUg
dG8gYnVpbGQgb3RoZXIgc291cmNlcyBpbiBEZXJpdmVkU291cmNlcy93ZWJraXQgd2l0aCBkeW5h
bWljYWxseSBnZW5lcmF0ZWQKKyMgbmFtZXMuCitEZXJpdmVkU291cmNlcy93ZWJraXQvd2Via2l0
ZG9tZHVtbXkuYzoKKwllY2hvID4gJEAKIAorIyBCZWNhdXNlIFdlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9XZWJLaXRET01PYmplY3QuaCBpcyBzdGF0aWMgc291cmNlIGJ1dCBpcyBhbHNvIGEgZGlz
dHJpYnV0ZWQgaGVhZGVyCisjIHJlcXVpcmVkIGJ5IG90aGVyIGRpc3RyaWJ1dGVkIGhlYWRlcnMg
KGJvdGggc3RhdGljIGFuZCBhdXRvLWdlbmVyYXRlZCksIG5lZWQgdG8gbW92ZSB0aGlzIHRvIHRo
ZQorIyBEZXJpdmVkU291cmNlcy93ZWJraXQgZGlyZWN0b3J5LiAgVGhlIHJlYXNvbiBpcyB0aGF0
IHdlIHdhbnQgYWxsIGhlYWRlciBmaWxlcyBkaXN0cmlidXRlZCBpbiB0aGUKKyMgaW5jbHVkZS93
ZWJraXQteC55L3dlYmtpdCBkaXJlY3RvcnksIGJ1dCBkbyBub3Qgd2FudCB0byBuYW1lIHRoZSBX
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QgZGlyZWN0b3J5IAorIyAid2Via2l0IiwgYXMgdGhhdCdz
IGEgYml0IHByZXN1bXB0dW91cyBmb3IgYSBHVEsgYmluZGluZy4KKyQodG9wX2J1aWxkZGlyKS9E
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NT2JqZWN0Lmg6CisJY3AgLWYgJChXZWJDb3Jl
KS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU9iamVjdC5oICRACisKKyMgQmluZGluZ3MgYXV0
b2dlbmVyYXRlZCBpbiBHT2JqZWN0LCBidXQgbm90IGluIEpTLgorSURMX0JJTkRJTkdTX0dPQkpF
Q1RfRVhUUkEgOj0gXAorCVdlYkNvcmUvaHRtbC9DYW52YXNQaXhlbEFycmF5LmlkbAorCisjIEJp
bmRpbmdzIGF1dG9nZW5lcmF0ZWQgaW4gSlMsIGJ1dCBub3QgaW4gR09iamVjdC4KK0lETF9CSU5E
SU5HU19HT0JKRUNUX01JTlVTIDo9IAorCisjIEFsbCBJREwgZmlsZXMgdXNlZCBmb3IgYXV0b2dl
bmVyYXRpb24gaW4gR09iamVjdC4gIFdlIGZpbHRlciBvdXQgU1ZHIGFuZCBldmVudHMgZm9yIG5v
dy4KK0lETF9CSU5ESU5HU19HT0JKRUNUIDo9ICQoZmlsdGVyLW91dCAkKElETF9CSU5ESU5HU19H
T0JKRUNUX01JTlVTKSBXZWJDb3JlL3N2ZyUgV2ViQ29yZS9kb20vRXZlbnQlLmlkbCBXZWJDb3Jl
LyVFdmVudC5pZGwsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgJChJRExfQklORElOR1MpICQo
SURMX0JJTkRJTkdTX0dPQkpFQ1RfRVhUUkEpKQorCisjIEFsbCBjbGFzc2VzIGF1dG9nZW5lcmF0
ZWQgaW4gR09iamVjdC4KK0dPQkpFQ1RfQVVUT19DTEFTU0VTIDo9ICQoYmFzZW5hbWUgJChub3Rk
aXIgJChJRExfQklORElOR1NfR09CSkVDVCkpKQorCisjIENsYXNzZXMgd2hpY2ggd2UndmUgY29k
ZWQgYnkgaGFuZC4KK0dPQkpFQ1RfRklYRURfQ0xBU1NFUyA6PSBET01PYmplY3QKKworR09CSkVD
VF9DTEFTU0VTIDo9ICQoR09CSkVDVF9BVVRPX0NMQVNTRVMpICQoR09CSkVDVF9GSVhFRF9DTEFT
U0VTKQorCisjIEZpbHRlciBvdXQgU1ZHIGZvciBub3cuCitGRUFUVVJFX0RFRklORVNfR09CSkVD
VCA6PSAkKGZpbHRlci1vdXQgRU5BQkxFX1NWRyUsICQoRkVBVFVSRV9ERUZJTkVTKSkKKworIyBB
dXRvZ2VuZXJhdGVkIGhlYWRlciBmaWxlcy4KK0dPQkpFQ1RfSEVBREVSU19CVUlMVCA6PSAkKHBh
dHN1YnN0ICUsRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdCUuaCwgJChHT0JKRUNUX0FVVE9f
Q0xBU1NFUykpIFwKKyAgICAgICAgICAgICAgICAgICAgICQodG9wX2J1aWxkZGlyKS9EZXJpdmVk
U291cmNlcy93ZWJraXQvd2Via2l0ZG9tLmggXAorICAgICAgICAgICAgICAgICAgICAgJCh0b3Bf
YnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC93ZWJraXRkb21kZWZpbmVzLmggXAorICAg
ICAgICAgICAgICAgICAgICAgJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01PYmplY3QuaAorCisjIEF1dG9nZW5lcmF0ZWQgc291cmNlIGZpbGVzLgorR09CSkVD
VF9TT1VSQ0VTX0JVSUxUIDo9ICQocGF0c3Vic3QgJSxEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0JS5jcHAsICQoR09CSkVDVF9BVVRPX0NMQVNTRVMpKQorCisjIEhhbmQtY29kZWQgaGVhZGVy
IGZpbGVzLgorR09CSkVDVF9IRUFERVJTX0ZJWEVEIDo9ICQocGF0c3Vic3QgJSwgJChzcmNkaXIp
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXQlLmgsICQoR09CSkVDVF9GSVhFRF9DTEFT
U0VTKSkKKworIyBBbGwgaGVhZGVyIGZpbGVzIHRoYXQgZ2V0IGluc3RhbGxlZC4KK2xpYmdvYmpl
Y3RfaF9hcGkgOj0gJChHT0JKRUNUX0hFQURFUlNfRklYRUQpICQoR09CSkVDVF9IRUFERVJTX0JV
SUxUKQorCitEZXJpdmVkU291cmNlcy93ZWJraXQvd2Via2l0ZG9tLmg6ICQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRlLnBsCisJZWNobyAkKEdPQkpFQ1RfQ0xBU1NF
UykgfCAkKFBFUkwpICQ8IHdlYmtpdGRvbSA+ICRACisKK0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC93
ZWJraXRkb21kZWZpbmVzLmg6ICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdl
bmVyYXRlLnBsCisJZWNobyAkKEdPQkpFQ1RfQ0xBU1NFUykgfCAkKFBFUkwpICQ8IGRlZmluZXMg
PiAkQAorCitEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0JS5oOiBEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0JS5jcHA7CisKK0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXQlLmNwcDog
JS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckdPYmplY3QucG0KKwkkKFBFUkwpIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3Jp
cHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWlu
Y2x1ZGUgJChXZWJDb3JlKS9kb20gLS1pbmNsdWRlICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUg
JChXZWJDb3JlKS9jc3MgLS1pbmNsdWRlICQoV2ViQ29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJD
b3JlKS94bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkvc3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJD
RVNHT0JKRUNUKSIgLS1kZWZpbmVzICJMQU5HVUFHRV9HT0JKRUNUPTEgJChGRUFUVVJFX0RFRklO
RVNfR09CSkVDVCkiIC0tZ2VuZXJhdG9yIEdPYmplY3QgJDwKKworZ29iamVjdF9idWlsdF9ub3Nv
dXJjZXMgOj0gJChHT0JKRUNUX0hFQURFUlNfQlVJTFQpICQoR09CSkVDVF9TT1VSQ0VTX0JVSUxU
KQorCitsaWJnb2JqZWN0X29iamVjdHMgOj0gJChzdWJzdCAuY3BwLC5sbywkKEdPQkpFQ1RfU09V
UkNFU19CVUlMVCkpCisKKy1pbmNsdWRlIFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC8kKERFUERJ
UikvJS5QbG8KKy1pbmNsdWRlIERlcml2ZWRTb3VyY2VzL3dlYmtpdC8kKERFUERJUikvJS5QbG8K
KworJChsaWJnb2JqZWN0X29iamVjdHMpOiBBTV9DUFBGTEFHUys9JChsaWJXZWJDb3JlX2xhX0NQ
UEZMQUdTKQorCiskKGxpYmdvYmplY3Rfb2JqZWN0cyk6IEFNX0NYWEZMQUdTKz0kKGxpYldlYkNv
cmVfbGFfQ1hYRkxBR1MpCisKK2xpYmdvYmplY3QubGE6ICQobGliZ29iamVjdF9vYmplY3RzKQor
CSQoQ1hYTElOSykgJChsaWJnb2JqZWN0X29iamVjdHMpICQoTElCUykKKwogbm9pbnN0X0hFQURF
UlMgKz0gXAogCSQoSURMX0JJTkRJTkdTKQogCkBAIC0zMDk1LDYgKzMxODMsNyBAQAogCVdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9JbkZpbGVzUGFyc2VyLnBtIFwKIAlXZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gXAorCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbSBcCiAJV2ViQ29yZS9jc3MvaHRtbDQuY3NzIFwKIAlXZWJDb3JlL2Nz
cy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nzcy92aWV3LXNvdXJjZS5jc3MgXApJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUucGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dvYmplY3QtZ2VuZXJhdGUucGwJKHJldmlzaW9uIDAp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5wbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw3OCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjCisjIENvcHlyaWdo
dCAoQykgMjAwOSBBZGFtIERpbmdsZSA8YWRhbUB5b3JiYS5vcmc+CisjCisjIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIFdlYktpdAorIyAKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIyAK
KyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIyAKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhaW50
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisjIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorIyAK
KworbXkgJGNsYXNzbGlzdCA9IDxTVERJTj47CitjaG9tcCgkY2xhc3NsaXN0KTsKK215IEBjbGFz
c2VzID0gc3BsaXQgLyAvLCAkY2xhc3NsaXN0OworQGNsYXNzZXMgPSBzb3J0IEBjbGFzc2VzOwor
CitwcmludCA8PEVPRjsKKy8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBz
b3VyY2UgcHJvamVjdC4KKyAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ29iamVj
dC1nZW5lcmF0ZS5wbC4gIERPIE5PVCBNT0RJRlkhCisgICAKKyAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworRU9GCisKK215ICRvdXRUeXBlID0gJEFSR1ZbMF07
CitteSAkaGVhZGVyOworaWYgKCRvdXRUeXBlIGVxICJkZWZpbmVzIikgeworICAgICRoZWFkZXIg
PSAid2Via2l0ZG9tZGVmaW5lc19oIjsKK30gZWxzaWYgKCRvdXRUeXBlIGVxICJ3ZWJraXRkb20i
KSB7CisgICAgJGhlYWRlciA9ICJ3ZWJraXRkb21faCI7Cit9IGVsc2UgeworICAgIGRpZSAidW5r
bm93biBvdXRwdXQgdHlwZSI7Cit9CisKK3ByaW50ICIjaWZuZGVmICR7aGVhZGVyfVxuIjsKK3By
aW50ICIjZGVmaW5lICR7aGVhZGVyfVxuIjsKK3ByaW50ICJcbiI7CisKK2lmICgkb3V0VHlwZSBl
cSAiZGVmaW5lcyIpIHsKKyAgICBmb3JlYWNoIG15ICRjbGFzcyAoQGNsYXNzZXMpIHsKKyAgICAg
ICAgcHJpbnQgInR5cGVkZWYgc3RydWN0IF9XZWJLaXQke2NsYXNzfSBXZWJLaXQke2NsYXNzfTtc
biI7CisgICAgICAgIHByaW50ICJ0eXBlZGVmIHN0cnVjdCBfV2ViS2l0JHtjbGFzc31DbGFzcyBX
ZWJLaXQke2NsYXNzfUNsYXNzO1xuIjsKKyAgICAgICAgcHJpbnQgIlxuIjsKKyAgICB9Cit9IGVs
c2lmICgkb3V0VHlwZSBlcSAid2Via2l0ZG9tIikgeworICAgIGZvcmVhY2ggbXkgJGNsYXNzIChA
Y2xhc3NlcykgeworICAgICAgICBwcmludCAiI2luY2x1ZGUgPHdlYmtpdC9XZWJLaXQke2NsYXNz
fS5oPlxuIjsKKyAgICB9Cit9CisKK3ByaW50ICJcbiI7CitwcmludCAiI2VuZGlmXG4iOworCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5l
cmF0ZS5wbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2Jq
ZWN0LnBtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzMzkgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisjIENvcHly
aWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisjIENvcHly
aWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorIyBDb3B5cmlnaHQgKEMp
IDIwMDkgQWRhbSBEaW5nbGUgPGFkYW1AeW9yYmEub3JnPgorIyBDb3B5cmlnaHQgKEMpIDIwMDkg
SmltIE5lbHNvbiA8amltQHlvcmJhLm9yZz4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyMgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkg
VGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorIyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4K
KworcGFja2FnZSBDb2RlR2VuZXJhdG9yR09iamVjdDsKKworbXkgJGxpY2VuY2VUZW1wbGF0ZSA9
IDw8ICJFT0YiOworLyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4g
c291cmNlIHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5l
cmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KK0VPRgorCitteSAlaW1wbEluY2x1
ZGVzID0gKCk7CitteSAlaGRySW5jbHVkZXMgPSAoKTsKK215ICVoZHJQcm9wSW5jbHVkZXMgPSAo
KTsKKworIyBEZWZhdWx0IGNvbnN0cnVjdG9yCitzdWIgbmV3IHsKKyAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJhdG9yID0g
c2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworICAgIG1rZGlyICRvdXRwdXREaXI7CisK
KyAgICBibGVzcygkcmVmZXJlbmNlLCAkb2JqZWN0KTsKKyAgICByZXR1cm4gJHJlZmVyZW5jZTsK
K30KKworc3ViIGZpbmlzaCB7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworfQorCisjIFBhcmFt
czogJ2RvbUNsYXNzJyBzdHJ1Y3QKK3N1YiBHZW5lcmF0ZUludGVyZmFjZSB7CisgICAgbXkgJG9i
amVjdCA9IHNoaWZ0OworICAgIG15ICRjbGFzcyA9IHNoaWZ0OworICAgIG15ICRkZWZpbmVzID0g
c2hpZnQ7CisKKyAgICBteSAkbmFtZSA9ICRjbGFzcy0+bmFtZTsKKworICAgIHByaW50ICIkbmFt
ZVxuIjsKKyAgICAKKyAgICAkb2JqZWN0LT5HZW5lcmF0ZSgkY2xhc3MpOworCisgICAgIyBXcml0
ZSBwcml2YXRlIGhlYWRlcgorICAgICRvYmplY3QtPldyaXRlUHJpdmF0ZUhlYWRlcigkY2xhc3Mp
OworCisgICAgIyBXcml0ZSBwdWJsaWMgaGVhZGVyIGFuZCBpbXBsZW1lbnRhdGlvbgorICAgIG15
ICRmbmFtZSA9ICJXZWJLaXRfIiAuICRuYW1lOworICAgICRmbmFtZSA9fiBzL18vL2c7CisgICAg
JG9iamVjdC0+V3JpdGVEYXRhKCRmbmFtZSk7Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQn
IHN0cnVjdAorc3ViIEdlbmVyYXRlTW9kdWxlIHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cisg
ICAgbXkgJGRvY3VtZW50ID0gc2hpZnQ7CisKKyAgICAkbW9kdWxlID0gJGRvY3VtZW50LT5tb2R1
bGU7Cit9CisKK3N1YiBHZXRQYXJlbnRDbGFzc05hbWUgeworICAgIG15ICRjbGFzcyA9IHNoaWZ0
OworCisgICAgcmV0dXJuICJXZWJLaXRET01PYmplY3QiIGlmIEB7JGNsYXNzLT5wYXJlbnRzfSBl
cSAwOworICAgIHJldHVybiAiV2ViS2l0IiAuICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgk
Y2xhc3MtPnBhcmVudHMoMCkpOworfQorCitzdWIgR2V0UGFyZW50R09iamVjdFR5cGUgeworICAg
IG15ICRjbGFzcyA9IHNoaWZ0OworCisgICAgcmV0dXJuICJXRUJLSVRfVFlQRV9ET01fT0JKRUNU
IiBpZiBAeyRjbGFzcy0+cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIldFQktJVF9UWVBFXyIg
LiB1YyhkZWNhbWVsaXplKCRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkY2xhc3MtPnBhcmVu
dHMoMCkpKSk7Cit9CisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2Ug
MC4wMQorc3ViIGNhbWVsaXplIHsKKyAgICBteSAkcyA9IHNoaWZ0OworICAgIGpvaW4oJycsIG1h
cHsgdWNmaXJzdCAkXyB9IHNwbGl0KC8oPzw9W0EtWmEtel0pXyg/PVtBLVphLXpdKXxcYi8sICRz
KSk7Cit9CisKKyMgQWxnb3JpdGhtIHRha2VuIGZyb20gU3RyaW5nOjpDYW1lbENhc2UgMC4wMQor
c3ViIGRlY2FtZWxpemUgeworICAgIG15ICRzID0gc2hpZnQ7CisgICAgJHMgPX4gcyMoW15hLXpB
LVpdPykoW0EtWl0qKShbQS1aXSkoW2Etel0/KSMKKyAgICAgICAgbXkgJGZjID0gcG9zKCRzKT09
MDsKKyAgICAgICAgbXkgKCRwMCwkcDEsJHAyLCRwMykgPSAoJDEsbGMkMixsYyQzLCQ0KTsKKyAg
ICAgICAgbXkgJHQgPSAkcDAgfHwgJGZjID8gJHAwIDogJ18nOworICAgICAgICAkdCAuPSAkcDMg
PyAkcDEgPyAiJHtwMX1fJHAyJHAzIiA6ICIkcDIkcDMiIDogIiRwMSRwMiI7CisgICAgICAgICR0
OworICAgICNnZTsKKyAgICAkczsKK30KKworc3ViIEdldEhlYWRlck5hbWUgeworICAgIG15ICRu
YW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKKworICAgIHJldHVybiAi
V2ViS2l0JG5hbWUiOworfQorCitzdWIgR2V0Q2xhc3NOYW1lIHsKKyAgICBteSAkbmFtZSA9ICRj
b2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIldlYktpdCRu
YW1lIjsKK30KKworc3ViIGdldEluY2x1ZGVIZWFkZXIgeworICAgIG15ICR0eXBlID0gc2hpZnQ7
CisgICAgbXkgJG5hbWUgPSBHZXRIZWFkZXJOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAiIiBp
ZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJpbnQiOwor
ICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICIiIGlmICR0eXBl
IGVxICJzaG9ydCI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImRv
dWJsZSI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJu
ICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBjaGFyIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7Cisg
ICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAgcmV0dXJuICIi
IGlmICR0eXBlIGVxICJ2b2lkIjsKKyAgICAKKyAgICByZXR1cm4gIlJhbmdlLmgiIGlmICR0eXBl
IGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7
CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOworICAgIHJldHVybiAi
IiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorCisg
ICAgcmV0dXJuICIkbmFtZS5oIjsKK30KKworIyByZXR1cm5zIDEgaWYgd2UgbmVlZCB0byBjcmVh
dGUgYSBHT2JqZWN0IHdyYXBwZXIgYXJvdW5kIHRoZSByZXR1cm4gcmVzdWx0CitzdWIgSXNHRE9N
Q2xhc3NUeXBlIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRuYW1lID0gR2V0Q2xh
c3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAg
cmV0dXJuIDAgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
ImJvb2xlYW4iOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInNob3J0IjsK
KyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImludCI7CisgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIGxvbmciOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIGxvbmciOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7Cisg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworICAgIAorICAgIHJldHVybiAwIGlmICR0
eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NU3RyaW5n
IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICByZXR1cm4g
MCBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorCisg
ICAgcmV0dXJuIDE7Cit9CisKK3N1YiBHZXRQcm9wR1R5cGUgeworICAgIG15ICR0eXBlID0gc2hp
ZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJz
dHJpbmciIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgIHJldHVybiAiZmxvYXQiIGlmICR0
eXBlIGVxICJmbG9hdCI7CisgICAgcmV0dXJuICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVx
ICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4gImRvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7
CisgICAgcmV0dXJuICJib29sZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJu
ICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgcmV0dXJuICJsb25nIiBpZiAkdHlwZSBl
cSAibG9uZyI7CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0
dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICJpbnQiIGlmICR0eXBlIGVxICJpbnQiOwor
ICAgIHJldHVybiAidWludCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJu
ICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAi
dWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICByZXR1cm4gInVzaG9ydCIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlw
ZSBlcSAiUkdCQ29sb3IiOyAjIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorCisgICAgcmV0dXJu
ICJvYmplY3QiOworfQorCitzdWIgR2V0R1R5cGUgeworICAgIG15ICR0eXBlID0gc2hpZnQ7Cisg
ICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJnY2hhciAq
IiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gImdmbG9hdCIgaWYgJHR5cGUg
ZXEgImZsb2F0IjsKKyAgICByZXR1cm4gIldlYkNvcmU6OlJhbmdlOjpDb21wYXJlSG93ICIgaWYg
JHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgIHJldHVybiAiZ2RvdWJsZSIgaWYgJHR5cGUgZXEg
ImRvdWJsZSI7CisgICAgcmV0dXJuICJnYm9vbGVhbiIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOwor
ICAgIHJldHVybiAiZ2NoYXIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICByZXR1cm4gImdsb25n
IiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJnc2hvcnQiIGlmICR0eXBlIGVxICJz
aG9ydCI7CisgICAgcmV0dXJuICJndWNoYXIiIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0
dXJuICJndWludCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICByZXR1cm4gImdpbnQiIGlm
ICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAiZ3VpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25l
ZCBpbnQiOworICAgIHJldHVybiAiZ3Vsb25nIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7
CisgICAgcmV0dXJuICJndWludDY0IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsK
KyAgICByZXR1cm4gImd1c2hvcnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCI7CisgICAg
cmV0dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgVE9ETyAtIERPTSBjbGFz
cyB3cmFwcGVyCisKKyAgICByZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAg
IHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBhZGRQcm9wSW5jbHVkZUhlYWRlciB7CisgICAg
bXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNsdWRlSGVhZGVyKCR0eXBl
KTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0
eXBlKSkgeworICAgICAgICAgICAgJGhkciA9IHN1YnN0cigkaGRyLCAwLCBsZW5ndGgoJGhkcikt
Mik7ICAgICAjIHN0cmlwIG9mZiAiLmgiCisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJ3
ZWJraXQvIi4kaGRyLiIuaCJ9ID0gMTsKKyAgICAgICAgICAgIGlmICgkaGRyIG5lICJXZWJLaXRE
T01PYmplY3QiKSB7CisgICAgICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3sid2Via2l0LyIu
JGhkci4iUHJpdmF0ZS5oIn0gPSAxOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9
Cit9CisKK3N1YiBhZGRJbmNsdWRlQm9keSB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAg
IG15ICRoZHIgPSBnZXRJbmNsdWRlSGVhZGVyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikg
eworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3sid2Via2l0LyRoZHIifSA9IDE7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3Vi
IHNraXBBdHRyaWJ1dGUgeworICAgIG15ICRhdHRyaWJ1dGUgPSBzaGlmdDsKKyAgICAKKyAgICBp
ZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0
dGVyIn0gfHwKKyAgICAgICAgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tU2V0dGVyIn0pIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIAor
ICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisKKyAgICBp
ZiAoJHByb3BfdHlwZSBlcSAic3R5bGVzaGVldHM6Ok1lZGlhTGlzdCIgb3IKKyAgICAgICAgJHBy
b3BfdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24iIG9yCisgICAgICAgICRwcm9wX3R5
cGUgZXEgIkV2ZW50TGlzdGVuZXIiIG9yCisgICAgICAgICRwcm9wX3R5cGUgPX4gL0NvbnN0cnVj
dG9yJC8gb3IKKyAgICAgICAgJHByb3BfdHlwZSBlcSAiY3VzdG9tIiBvcgorICAgICAgICAkcHJv
cF90eXBlIGVxICJBcnJheSIgb3IKKyAgICAgICAgJHByb3BfdHlwZSBlcSAiRE9NVGltZVN0YW1w
IikgeworICAgICAgICByZXR1cm4gMTsgICAjIGNhbid0IGhhbmRsZSB0aGVzZSB5ZXQKKyAgICB9
CisKKyAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUpOworICAgIAorICAgICMgVE9E
TzogU1ZHCisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJHR5cGUpIHx8ICRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdWIgVXNlc01hbnVhbFRvSlNJbXBsZW1lbnRh
dGlvbiB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgICMgc2tpcHBlZCBvdXQgQ2FudmFz
UGl4ZWxBcnJheSAtIHNlZSBKU0NhbnZhc1BpeGVsQXJyYXlDdXN0b20uY3BwIGZvciB3aHkuCisg
ICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIk5vZGUiIG9yICR0eXBlIGVxICJEb2N1bWVudCIgb3Ig
JHR5cGUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvcgorICAgICAgJHR5cGUgZXEgIlNWR1BhdGhTZWci
IG9yICR0eXBlIGVxICJTdHlsZVNoZWV0IiBvciAkdHlwZSBlcSAiQ1NTUnVsZSIgb3IgJHR5cGUg
ZXEgIkNTU1ZhbHVlIiBvcgorICAgICAgJHR5cGUgZXEgIkV2ZW50IiBvciAkdHlwZSBlcSAiRWxl
bWVudCIgb3IgJHR5cGUgZXEgIlRleHQiOworICAgIHJldHVybiAwOworfQorCitzdWIgV3JpdGVQ
cml2YXRlSGVhZGVyIHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGNsYXNzID0g
c2hpZnQ7CisKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRjbGFzcy0+bmFtZTsKKyAgICBteSAk
Y2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkZmlsZW5h
bWUgPSAiJG91dHB1dERpci8iIC4gJGNsYXNzTmFtZSAuICJQcml2YXRlLmgiOworICAgIG15ICRn
dWFyZCA9IHVjKGRlY2FtZWxpemUoJGNsYXNzTmFtZSkpIC4gIl9QUklWQVRFX0giOworICAgIG15
ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05hbWUoJGNsYXNzKTsKKworICAgIG15
ICRoYXNMZWdhY3lQYXJlbnQgPSAkY2xhc3MtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQ
YXJlbnQifTsKKyAgICBteSAkaGFzUmVhbFBhcmVudCA9IEB7JGNsYXNzLT5wYXJlbnRzfSA+IDA7
CisgICAgbXkgJGhhc1BhcmVudCA9ICRoYXNMZWdhY3lQYXJlbnQgfHwgJGhhc1JlYWxQYXJlbnQ7
CisgICAgCisgICAgb3BlbihQUklWSEVBREVSLCAiPiRmaWxlbmFtZSIpIG9yIGRpZSAiQ291bGRu
J3Qgb3BlbiBmaWxlICRmaWxlbmFtZSBmb3Igd3JpdGluZyI7CisgICAgCisgICAgcHJpbnQgUFJJ
VkhFQURFUiBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICBwcmludCBQUklWSEVB
REVSICJcbiI7CisgICAgCisgICAgbXkgJHRleHQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJGd1YXJk
CisjZGVmaW5lICRndWFyZAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3
ZWJraXQvJHtwYXJlbnRDbGFzc05hbWV9Lmg+CisjaW5jbHVkZSAiJHtpbnRlcmZhY2VOYW1lfS5o
IgorRU9GCisKKyAgICBwcmludCBQUklWSEVBREVSICR0ZXh0OworICAgIAorICAgIHByaW50IFBS
SVZIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRyUHJvcElu
Y2x1ZGVzKTsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiIgaWYga2V5cyglaGRyUHJvcEluY2x1
ZGVzKTsKKyAgICAKKyAgICAkdGV4dCA9IDw8ICJFT0YiOwordHlwZWRlZiBzdHJ1Y3QgXyR7Y2xh
c3NOYW1lfSAke2NsYXNzTmFtZX07CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgICR7Y2xhc3NO
YW1lfSAqCisgICAgd3JhcCR7aW50ZXJmYWNlTmFtZX0oV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1l
fSAqY29yZU9iamVjdCk7CisKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICoKKyAgICBj
b3JlKCR7Y2xhc3NOYW1lfSAqcmVxdWVzdCk7CisKK0VPRgorCisgICAgcHJpbnQgUFJJVkhFQURF
UiAkdGV4dDsKKworICAgIGlmICgke2ludGVyZmFjZU5hbWV9IGVxICJET01XaW5kb3ciIHx8ICgh
JGhhc1BhcmVudCBvciAkY2xhc3MtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMi
fSkgYW5kCisgICAgICAgICFVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VO
YW1lKSkgeworICAgICAgICAkdGV4dCA9IDw8ICJFT0YiOworICAgIGdwb2ludGVyCisgICAgdG9H
RE9NKFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIG5vZGUpOworCitFT0YKKworICAgICAgICBw
cmludCBQUklWSEVBREVSICR0ZXh0OworICAgIH0KKworICAgICR0ZXh0ID0gPDwgIkVPRiI7Cit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8qICR7Z3VhcmR9ICovCisKK0VPRgorCisg
ICAgcHJpbnQgUFJJVkhFQURFUiAkdGV4dDsKKyAgICAKKyAgICBjbG9zZShQUklWSEVBREVSKTsK
K30KKworc3ViIENsYXNzSGFzRnVuY3Rpb24geworICAgICAgICBteSAkY2xhc3MgPSBzaGlmdDsK
KyAgICAgICAgbXkgJG5hbWUgPSBzaGlmdDsKKyAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24g
KEB7JGNsYXNzLT5mdW5jdGlvbnN9KSB7CisgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPm5hbWUgZXEgJG5hbWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIHJldHVybiAwOworfQorCitzdWIgVW5pcXVpZnkgewor
ICAgIG15ICRuYW1lID0gc2hpZnQ7CisgICAgbXkgJGF2b2lkID0gc2hpZnQ7CisgICAgaWYgKCRu
YW1lIGVxICRhdm9pZCkgeworICAgICAgICAkbmFtZSA9ICRuYW1lIC4gIjIiOworICAgIH0KKyAg
ICByZXR1cm4gJG5hbWU7Cit9CisKK3N1YiBSZXR1cm5JZkZhaWwgeworICAgIG15ICRjb25kaXRp
b24gPSBzaGlmdDsKKyAgICBteSAkcmV0dXJuVHlwZSA9IHNoaWZ0OworICAgIAorICAgIGlmICgk
cmV0dXJuVHlwZSBlcSAidm9pZCIpIHsKKyAgICAgICAgcmV0dXJuICIgICAgZ19yZXR1cm5faWZf
ZmFpbCAoJGNvbmRpdGlvbik7XG4iOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAiICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsICgkY29uZGl0aW9uLCAwKTtcbiI7ICAjIFRPRE86IHJldHVy
biBwcm9wZXIgZGVmYXVsdCByZXN1bHQKKyAgICB9Cit9CisKKyMgR2VuZXJhdGUgY29kZSBmb3Ig
YSBmdW5jdGlvbi4gICRraW5kIHNob3VsZCBiZSBlaXRoZXIgIiIgZm9yIGFuIG9yZGluYXJ5IGZ1
bmN0aW9uLAorIyAiZ2V0IiBmb3IgYW4gYXR0cmlidXRlIGdldHRlciBvciAic2V0IiBmb3IgYW4g
YXR0cmlidXRlIHNldHRlci4KK3N1YiBHZW5lcmF0ZUZ1bmN0aW9uIHsKKyAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKKyAgICBteSAkZnVuY3Rp
b24gPSBzaGlmdDsKKyAgICBteSAka2luZCA9IHNoaWZ0OworCisgICAgbXkgJGNsYXNzTmFtZSA9
IEdldENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7CisgICAgbXkgJGNsYXNzQ2FwcyA9IHVjKGRl
Y2FtZWxpemUoJGludGVyZmFjZU5hbWUpKTsKKworICAgIG15ICRmbl9zaWdfbmFtZSA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5uYW1lOworICAgIG15ICRmbl9zaWdfdHlwZSA9ICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlOworICAgIG15ICRpbnRlcmZhY2VfbmFtZSA9IGRlY2FtZWxpemUoJGlu
dGVyZmFjZU5hbWUpOworICAgIG15ICRwcmVmaXggPSAka2luZCBlcSAiZ2V0IiA/ICJnZXRfIiA6
ICIiOworICAgIG15ICRmdW5jdGlvbk5hbWUgPSAid2Via2l0XyIgLiAkaW50ZXJmYWNlX25hbWUg
LiAiXyIgLiAkcHJlZml4IC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25hbWUpOworICAgIG15ICRyZXR1
cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKyAgICBteSAkcmV0X2lzX2NsYXNzX3R5
cGUgPSBJc0dET01DbGFzc1R5cGUoJGZuX3NpZ190eXBlKTsKKworICAgIG15ICR0aGlzID0gJGlu
dGVyZmFjZV9uYW1lOworICAgICR0aGlzID1+IHMvLipfLy87CisgICAgCisgICAgbXkgJGZ1bmN0
aW9uU2lnID0gIiRjbGFzc05hbWUgKiR0aGlzIjsKKworICAgIG15ICRjYWxsX2ltcGxfcGFyYW1z
ID0gIiI7CisgICAgbXkgJGdkb21fZm5fcHJlZml4ID0gIndlYmtpdF8iIC4gZGVjYW1lbGl6ZSgk
Zm5fc2lnX3R5cGUpOworCisgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgIndlYmtpdF9jc3Nfc3R5
bGVfZGVjbGFyYXRpb25fc2V0X3Byb3BlcnR5IikgeworICAgICAgICAjIHJlc2VydmVkIG5hbWUg
Y2xhc2ggaW4gZ2xpYiEKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJ3ZWJraXRfY3NzX3N0eWxl
X2RlY2xhcmF0aW9uX3NldF9jc3NfcHJvcGVydHkiOworICAgIH0KKyAgICAjIHNraXAgQ29tcGFy
ZUhvdyBmdW5jdGlvbnMgZm9yIG5vdworICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJ3ZWJraXRf
cmFuZ2VfY29tcGFyZV9ib3VuZGFyeV9wb2ludHMiKSB7CisgICAgICAgIHB1c2goQGhCb2R5LCAi
XG4vKiBUT0RPOiBza2lwcGluZyBDb21wYXJlSG93IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAq
L1xuXG4iKTsKKyAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFRPRE86IHNraXBwaW5nIENvbXBh
cmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgIyBza2lwIFNWR0RvY3VtZW50IGZ1bmN0aW9ucyBmb3Igbm93CisgICAg
aWYgKCRyZXR1cm5UeXBlIGVxICJXZWJLaXRWR0RvY3VtZW50ICoiKSB7CisgICAgICAgIHB1c2go
QGhCb2R5LCAiXG4vKiBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0
aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgIHB1c2goQGNCb2R5LCAiXG4vKiBUT0RPOiBza2lw
cGluZyBTVkdEb2N1bWVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAjIHNraXAgc29tZSBjdXN0b20gZnVuY3Rpb25zIGZv
ciBub3cKKyAgICBteSAkaXNfY3VzdG9tX2ZuID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8fAorICAgICAgICAgICAgICAgICAgICAgICAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFu
ZGxpbmcifTsKKyAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAid2Via2l0X2h0bWxfY29sbGVjdGlv
bl9pdGVtIiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJ3ZWJraXRfaHRtbF9jb2xsZWN0
aW9uX25hbWVkX2l0ZW0iIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgIndlYmtpdF94bWxf
aHR0cF9yZXF1ZXN0X29wZW4iIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgIndlYmtpdF94
bWxfaHR0cF9yZXF1ZXN0X3NldF9yZXF1ZXN0X2hlYWRlciIgfHwKKyAgICAgICAgJGZ1bmN0aW9u
TmFtZSBlcSAid2Via2l0X3htbF9odHRwX3JlcXVlc3Rfc2VuZCIgfHwKKyAgICAgICAgJGZ1bmN0
aW9uTmFtZSBlcSAid2Via2l0X3htbF9odHRwX3JlcXVlc3RfZ2V0X3Jlc3BvbnNlX2hlYWRlciIg
fHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAid2Via2l0X3htbF9odHRwX3JlcXVlc3Rfb3Zl
cnJpZGVfbWltZV90eXBlIiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJ3ZWJraXRfeG1s
X2h0dHBfcmVxdWVzdF9kaXNwYXRjaF9ldmVudCIgfHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBl
cSAid2Via2l0X2VsZW1lbnRfc2V0X2F0dHJpYnV0ZSIpIHsKKyAgICAgICAgJGlzX2N1c3RvbV9m
biA9IDA7CisgICAgfQorICAgIGlmICgkaXNfY3VzdG9tX2ZuICYmIAorICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICJ3ZWJraXRfbm9kZV9hcHBlbmRfY2hpbGQiICYmIAorICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICJ3ZWJraXRfbm9kZV9yZW1vdmVfY2hpbGQiICYmIAorICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICJ3ZWJraXRfbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorICAgICAgICAkZnVuY3Rp
b25OYW1lIG5lICJ3ZWJraXRfbm9kZV9yZXBsYWNlX2NoaWxkIikgeworICAgICAgICBwdXNoKEBo
Qm9keSwgIlxuLyogVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4i
KTsKKyAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1
bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3Jl
YWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CisgICAgICAgIG15ICRw
YXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIGVx
ICJFdmVudCIpIHsKKyAgICAgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBUT0RPOiBldmVudCBm
dW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIlxuLyogVE9ETzogZXZlbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGFkZEluY2x1ZGVCb2R5KCRw
YXJhbUlETFR5cGUpOworICAgICAgICBteSAkcGFyYW1UeXBlID0gR2V0R1R5cGUoJHBhcmFtSURM
VHlwZSk7CisgICAgICAgIG15ICRwYXJhbU5hbWUgPSBVbmlxdWlmeShkZWNhbWVsaXplKCRwYXJh
bS0+bmFtZSksICR0aGlzKTsKKworICAgICAgICAkZnVuY3Rpb25TaWcgLj0gIiwgJHBhcmFtVHlw
ZSAkcGFyYW1OYW1lIjsKKworICAgICAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01D
bGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUp
IHsKKyAgICAgICAgICAgIGlmICgkcGFyYW1JRExUeXBlIG5lICJET01PYmplY3QiKSB7CisgICAg
ICAgICAgICAgICAgJGltcGxJbmNsdWRlc3sid2Via2l0L1dlYktpdCR7cGFyYW1JRExUeXBlfVBy
aXZhdGUuaCJ9ID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoJHBh
cmFtX2lzX2Nsc190eXBlIHx8ICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSkgeworICAg
ICAgICAgICAgJHBhcmFtTmFtZSA9ICJfZ18iIC4gJHBhcmFtTmFtZTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoJGNhbGxfaW1wbF9wYXJhbXMpIHsKKyAgICAgICAgICAgICRjYWxsX2ltcGxfcGFy
YW1zIC49ICIsICRwYXJhbU5hbWUiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGNh
bGxfaW1wbF9wYXJhbXMgPSAiJHBhcmFtTmFtZSI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAoJGZuX3NpZ190eXBlIGVxICJFdmVudCIpIHsKKyAgICAgICAgcHVzaChAaEJvZHksICJcbi8q
IFRPRE86IGV2ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
cHVzaChAY0JvZHksICJcbi8qIFRPRE86IGV2ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAq
L1xuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgkcmV0X2lzX2NsYXNz
X3R5cGUgYW5kICRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJ3ZWJraXQvV2ViS2l0JHtmbl9zaWdfdHlwZX1Qcml2YXRlLmgifSA9IDE7CisgICAg
ICAgICRpbXBsSW5jbHVkZXN7IndlYmtpdC9XZWJLaXQke2ZuX3NpZ190eXBlfS5oIn0gPSAxOwor
ICAgICAgICAkaW1wbEluY2x1ZGVzeyIke2ZuX3NpZ190eXBlfS5oIn0gPSAxOworICAgIH0KKwor
ICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgJ0RPTU9iamVjdCcgJiYKKyAgICAgICAgKCRmdW5jdGlv
bk5hbWUgZXEgJ3dlYmtpdF9odG1sX2NhbnZhc19lbGVtZW50X2dldF9jb250ZXh0JyBvcgorICAg
ICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAnd2Via2l0X2RvY3VtZW50X2dldF9jc3NfY2FudmFzX2Nv
bnRleHQnKSkgeworICAgICAgICByZXR1cm47ICAgICAgICMgdG9vIGludm9sdmVkIGZvciBub3c7
IHNraXAKKyAgICB9CisKKyAgICBpZihAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsK
KyAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsIEdFcnJvciAqKmVycm9yIjsKKyAgICB9CisKKyAg
ICBwdXNoKEBoQm9keSwgIldFQktJVF9BUEkgJHJldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRm
dW5jdGlvblNpZyk7XG5cbiIpOworCisgICAgcHVzaChAY0JvZHksICIkcmV0dXJuVHlwZVxuJGZ1
bmN0aW9uTmFtZSAoJGZ1bmN0aW9uU2lnKVxue1xuIik7CisKKyAgICBwdXNoKEBjQm9keSwgUmV0
dXJuSWZGYWlsKCJXRUJLSVRfSVNfJGNsYXNzQ2FwcygkdGhpcykiLCAkcmV0dXJuVHlwZSkpOwor
ICAgIAorICAgICMgQ2hlY2sgdGhhdCBhcmd1bWVudHMgYXJlIG5vbi1OVUxMLiAgRm9yIGF0dHJp
YnV0ZSBzZXR0ZXJzLCB3ZSBhbGxvdyBhIE5VTEwgYXJndW1lbnQsCisgICAgIyB3aGljaCBjYW4g
YmUgdXNlZCB0byByZW1vdmUgYW4gYXR0cmlidXRlLgorICAgIGlmICgka2luZCBuZSAic2V0Iikg
eworICAgICAgICBmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7
CisgICAgICAgICAgICBpZiAoISRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHBhcmFt
LT50eXBlKSkgeworICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSBVbmlxdWlmeShkZWNh
bWVsaXplKCRwYXJhbS0+bmFtZSksICR0aGlzKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgUmV0dXJuSWZGYWlsKCRwYXJhbU5hbWUsICRyZXR1cm5UeXBlKSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaWYoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2Vw
dGlvbnN9KSB7CisgICAgICAgIHB1c2goQGNCb2R5LCBSZXR1cm5JZkZhaWwoIiFlcnJvciB8fCAh
KmVycm9yIiwgJHJldHVyblR5cGUpKTsKKyAgICB9CisKKyAgICAjIFRoZSBXZWJLaXQ6OmNvcmUg
aW1wbGVtZW50YXRpb25zIGNoZWNrIGZvciBOVUxMIGFscmVhZHk7IG5vIG5lZWQgdG8KKyAgICAj
IGR1cGxpY2F0ZSBlZmZvcnQuCisgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6JHtpbnRl
cmZhY2VOYW1lfSAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoJHRoaXMpO1xuIik7CisKKyAgICAkcmV0
dXJuUGFyYW1OYW1lID0gIiI7CisgICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5w
YXJhbWV0ZXJzfSkgeworICAgICAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOwor
ICAgICAgICBteSAkcGFyYW1OYW1lID0gVW5pcXVpZnkoZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUp
LCAkdGhpcyk7CisKKyAgICAgICAgbXkgJHBhcmFtX2lzX2NsYXNzX3R5cGUgPSBJc0dET01DbGFz
c1R5cGUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICMgSEFDSyEKKyAgICAgICAgaWYgKCRmdW5j
dGlvbk5hbWUgZXEgIndlYmtpdF94bWxfaHR0cF9yZXF1ZXN0X29wZW4iICYmICRwYXJhbS0+bmFt
ZSBlcSAidXJsIikgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6S1VS
TCBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpLVVJMKCRwYXJhbU5hbWUpO1xuIik7CisgICAg
ICAgIH0gZWxzaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgICAg
IHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OlN0cmluZyBfZ18ke3BhcmFtTmFtZX0gPSBXZWJD
b3JlOjpTdHJpbmc6OmZyb21VVEY4KCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKCRwYXJhbV9pc19jbGFzc190eXBlKSB7CisgICAgICAgICAgICBteSAkcGFyYW1fZ2Rv
bV9mbiA9ICJ3ZWJraXRfIiAuIGRlY2FtZWxpemUoJHBhcmFtSURMVHlwZSk7CisgICAgICAgICAg
ICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke3BhcmFtSURMVHlwZX0gKiBfZ18ke3BhcmFt
TmFtZX0gPSBXZWJLaXQ6OmNvcmUoJHBhcmFtTmFtZSk7XG4iKTsKKyAgICAgICAgfQorICAgICAg
ICAkcmV0dXJuUGFyYW1OYW1lID0gIl9nXyIuJHBhcmFtTmFtZSBpZiAkcGFyYW0tPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJSZXR1cm4ifTsKKyAgICB9CisKKyAgICBteSAkYXNzaWduID0gIiI7Cisg
ICAgbXkgJGFzc2lnbl9wcmUgPSAiIjsKKyAgICBteSAkYXNzaWduX3Bvc3QgPSAiIjsKKyAgICBp
ZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisgICAgICAgIGlm
ICgkcmV0X2lzX2NsYXNzX3R5cGUpIHsKKyAgICAgICAgICAgICRhc3NpZ24gPSAiUGFzc1JlZlB0
cjxXZWJDb3JlOjoke2ZuX3NpZ190eXBlfT4gZ19yZXMgPSAiOworICAgICAgICAgICAgJGFzc2ln
bl9wcmUgPSAiV1RGOjpnZXRQdHIoIjsKKyAgICAgICAgICAgICRhc3NpZ25fcG9zdCA9ICIpIjsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRhc3NpZ24gPSAiJHtyZXR1cm5UeXBlfSBy
ZXMgPSAiOworICAgICAgICB9CisgICAgfQorICAgIG15ICRleGNlcHRpb25zID0gIiI7CisgICAg
aWYgKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgeworICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICBpZiAo
JHtjYWxsX2ltcGxfcGFyYW1zfSBuZSAiIikgeworICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAi
LCBlYyI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkZXhjZXB0aW9ucyA9ICJlYyI7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAjIFdlIG5lZWQgdG8gc3BlY2lhbC1jYXNlIHRoZXNl
IE5vZGUgbWV0aG9kcyBiZWNhdXNlIHRoZWlyIEMrKyBzaWduYXR1cmUgaXMgZGlmZmVyZW50Cisg
ICAgIyBmcm9tIHdoYXQgd2UnZCBleHBlY3QgZ2l2ZW4gdGhlaXIgSURMIGRlc2NyaXB0aW9uOyBz
ZWUgTm9kZS5oLgorICAgIGlmICgkZnVuY3Rpb25OYW1lIGVxICJ3ZWJraXRfbm9kZV9hcHBlbmRf
Y2hpbGQiIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgIndlYmtpdF9ub2RlX2luc2VydF9i
ZWZvcmUiIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgIndlYmtpdF9ub2RlX3JlcGxhY2Vf
Y2hpbGQiIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgIndlYmtpdF9ub2RlX3JlbW92ZV9j
aGlsZCIpIHsKKyAgICAgICAgbXkgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkID0gPDwg
IkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3Bh
cmFtc30ke2V4Y2VwdGlvbnN9KTsKKyAgICBpZiAob2spCisgICAgeworICAgICAgICAke3JldHVy
blR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7cmV0dXJuVHlwZX0+KFdlYktpdDo6dG9HRE9NKCRy
ZXR1cm5QYXJhbU5hbWUpKTsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CitFT0YKKyAgICAg
ICAgcHVzaChAY0JvZHksICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCk7CisgICAgCisg
ICAgICAgIGlmKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgeworICAgICAgICAgICAg
bXkgJGV4Y2VwdGlvbl9oYW5kbGluZyA9IDw8ICJFT0YiOworCisgICAgV2ViQ29yZTo6RXhjZXB0
aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYzsKKyAgICBXZWJDb3JlOjpnZXRFeGNlcHRpb25Db2Rl
RGVzY3JpcHRpb24oZWMsIGVjZGVzYyk7CisgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwg
Z19xdWFya19mcm9tX3N0cmluZygiR0RPTSIpLCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwor
RU9GCisgICAgICAgICAgICBwdXNoKEBjQm9keSwgJGV4Y2VwdGlvbl9oYW5kbGluZyk7CisgICAg
ICAgIH0KKyAgICAgICAgcHVzaChAY0JvZHksICJyZXR1cm4gTlVMTDsiKTsKKyAgICAgICAgcHVz
aChAY0JvZHksICJ9XG5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfSBlbHNpZiAoJGZuX3Np
Z190eXBlIGVxICJET01PYmplY3QiICYmCisgICAgICAgICAkZnVuY3Rpb25OYW1lIG5lICd3ZWJr
aXRfZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKyAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgLyogVE9ETyAtIGdldCBjYW52YXMgb2JqZWN0IChpdGVtLT4ke2ZuX3NpZ19uYW1l
fSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkpOyovXG4iICk7CisKKyAgICB9IGVs
c2lmICgkZm5fc2lnX3R5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAgcHVzaChAY0JvZHks
ICIgICAgJHthc3NpZ259Z2RvbV9nc3RyaW5nX2NvbnZlcnQoaXRlbS0+JHtmbl9zaWdfbmFtZX0o
JHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTtcbiIgKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtm
bl9zaWdfbmFtZX0oJHtjYWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0
fSk7XG4iICk7CisgICAgICAgIAorICAgICAgICBpZihAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0
aW9uc30pIHsKKyAgICAgICAgICAgIG15ICRleGNlcHRpb25faGFuZGxpbmcgPSA8PCAiRU9GIjsK
KyAgICBpZihlYykgeworICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24g
ZWNkZXNjOworICAgICAgICBXZWJDb3JlOjpnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oZWMs
IGVjZGVzYyk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJv
bV9zdHJpbmcoIkdET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKKyAgICB9CitFT0YK
KyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAkZXhjZXB0aW9uX2hhbmRsaW5nKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2Zu
KSB7CisKKyAgICAgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAg
ICAgICAgaWYgKCRyZXRfaXNfY2xhc3NfdHlwZSkgeworICAgICAgICAgICAgICAgIHB1c2goQGNC
b2R5LCAiICAgICR7cmV0dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nhc3Q8JHtyZXR1cm5UeXBlfT4o
V2ViS2l0Ojp0b0dET00oZ19yZXMuZ2V0KCkpKTtcbiIpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIGlmICgkZm5fc2lnX3R5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAgICAg
ICAgIHB1c2goQGNCb2R5LCAiICAgIHJldHVybiBOVUxMOyAvKiBUT0RPOiByZXR1cm4gY2FudmFz
IG9iamVjdCAqL1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBjQm9k
eSwgIiAgICByZXR1cm4gcmVzO1xuIik7CisgICAgICAgIH0KKyAgICB9CisgICAgcHVzaChAY0Jv
ZHksICJcbiIpOworCisgICAgcHVzaChAY0JvZHksICJ9XG5cbiIpOworfQorCitzdWIgQ291bnRH
ZXRQcm9wZXJ0aWVzIHsKKyAgICBteSAkY2xhc3MgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkY291
bnQgPSAwOworICAgIAorICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskY2xhc3MtPmF0dHJp
YnV0ZXN9KSB7CisgICAgICAgIGlmKCFza2lwQXR0cmlidXRlKCRhdHRyaWJ1dGUpKSB7CisgICAg
ICAgICAgICAjIGFsbCBwcm9wZXJ0aWVzIG5vdCBza2lwcGVkIGFyZSBlaXRoZXIgcmVhZC1vbmx5
IG9yIHJlYWQtd3JpdGUKKyAgICAgICAgICAgICRjb3VudCsrOworICAgICAgICB9CisgICAgfQor
ICAgIAorICAgIHJldHVybiAkY291bnQ7Cit9CisKK3N1YiBDb3VudFNldFByb3BlcnRpZXMgewor
ICAgIG15ICRjbGFzcyA9IHNoaWZ0OworICAgIAorICAgIG15ICRjb3VudCA9IDA7CisgICAgCisg
ICAgU0tJUFBST1A6CisgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRjbGFzcy0+YXR0cmli
dXRlc30pIHsKKyAgICAgICAgaWYoc2tpcEF0dHJpYnV0ZSgkYXR0cmlidXRlKSkgeworICAgICAg
ICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbXkgJHdy
aXRlYWJsZSA9ICRhdHRyaWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS87CisgICAgICAgIGlmKCR3
cml0ZWFibGUgJiYgISRjdXN0b20pIHsKKyAgICAgICAgICAgICMgY3VzdG9tIHByb3BlcnRpZXMg
YXJlIHJlYWQtb25seSBmb3Igbm93CisgICAgICAgICAgICAkY291bnQrKzsKKyAgICAgICAgfQor
ICAgIH0KKyAgICAKKyAgICByZXR1cm4gJGNvdW50OworfQorCitzdWIgR2VuZXJhdGVQcm9wZXJ0
aWVzIHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGNsYXNzID0gc2hpZnQ7Cisg
ICAgbXkgJGNsYXNzQ2FwcyA9IHNoaWZ0OworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSBzaGlm
dDsKKyAgICAKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRjbGFzcy0+bmFtZTsKKyAgICBteSAk
Y2xhc3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsgICAjIGUuZy4gV2ViS2l0
RWxlbWVudAorICAgIAorICAgICMgVGhpcyBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byBvcGVuIGEg
R19CRUdJTl9ERUNMUyBibG9jaywgYnV0IGRvZXMgbm90IGVuZCBpdAorICAgIHB1c2goQGNCb2R5
UHJpdiwgIkdfQkVHSU5fREVDTFNcblxuIik7CisgICAgCisgICAgbXkgJGdldF9jb3VudCA9IENv
dW50R2V0UHJvcGVydGllcygkY2xhc3MpOworICAgIG15ICRzZXRfY291bnQgPSBDb3VudFNldFBy
b3BlcnRpZXMoJGNsYXNzKTsKKyAgICAKKyAgICBpZigoJGdldF9jb3VudCA9PSAwKSAmJiAoJHNl
dF9jb3VudCA9PSAwKSkgeworICAgICAgICByZXR1cm4gKCk7CisgICAgfQorCisgIFNLSVBQUk9Q
OgorICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskY2xhc3MtPmF0dHJpYnV0ZXN9KSB7Cisg
ICAgICAgIGlmIChza2lwQXR0cmlidXRlKCRhdHRyaWJ1dGUpKSB7CisgICAgICAgICAgICBuZXh0
IFNLSVBQUk9QOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBteSAkcHJvcF90eXBlID0g
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICBhZGRQcm9wSW5jbHVkZUhlYWRl
cigkcHJvcF90eXBlKTsKKyAgICB9CisKKyAgICBteSAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsK
K2VudW0geworICAgIFBST1BfMCwKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250
ZW50KTsKKworICAgIG15IEB0eHRfaW5zdGFsbF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfc2V0
X3Byb3BzID0gKCk7CisgICAgbXkgQHR4dF9nZXRfcHJvcHMgPSAoKTsKKworICAgIG15ICR0eHRf
Z2V0X3Byb3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fZ2V0
X3Byb3BlcnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAg
ICAgICAgICAgICBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNw
ZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBXRUJLSVRfJHtjbGFzc0Nh
cHN9KG9iamVjdCk7CisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqIGdzZWxmID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOworICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChA
dHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICBteSAkdHh0X3NldF9wcm9wID0g
PDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0eV9m
bihHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgR1ZhbHVlICogdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICog
cHNwZWMpCit7CisgICAgJHtjbGFzc05hbWV9ICpzZWxmID0gV0VCS0lUXyR7Y2xhc3NDYXBzfShv
YmplY3QpOworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiBnc2VsZiA9IFdlYktpdDo6
Y29yZShzZWxmKTsKKyAgICBzd2l0Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2goQHR4dF9z
ZXRfcHJvcHMsICR0eHRfc2V0X3Byb3ApOworICAgIAorICAgICMgSXRlcmF0ZSBvdmVyIHRoZSBp
bnRlcmZhY2UgYXR0cmlidXRlcyBhbmQgZ2VuZXJhdGUgYSBwcm9wZXJ0eSBmb3IKKyAgICAjIGVh
Y2ggb25lIG9mIHRoZW0uCisgIFNLSVBFTlVNOgorICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAo
QHskY2xhc3MtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIGlmIChza2lwQXR0cmlidXRlKCRhdHRy
aWJ1dGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisKKyAgICAg
ICAgbXkgJHByb3BfbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAg
bXkgJHNldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9wX25h
bWUpOworICAgICAgICBteSAkZ2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX2xj
Zmlyc3QoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRwcm9wX25hbWVfZGVjYW1lbCA9IGRlY2Ft
ZWxpemUoJHByb3BfbmFtZSk7CisgICAgICAgIG15ICRwcm9wTmFtZSA9ICRwcm9wX25hbWVfZGVj
YW1lbDsKKyAgICAgICAgJHByb3BOYW1lID1+IHMvXy8tL2c7CisgICAgICAgIG15ICRwcm9wQ2Fw
cyA9IHVjKCRwcm9wX25hbWVfZGVjYW1lbCk7CisgICAgICAgIG15ICRwcm9wX3R5cGUgPSAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHBy
b3BfdHlwZSk7CisgICAgICAgIG15ICR7cHJvcEVudW19ID0gIlBST1BfJHtwcm9wQ2Fwc30iOwor
ICAgICAgICBteSAke3Byb3BfZ3R5cGV9ID0gZGVjYW1lbGl6ZSgkcHJvcF90eXBlKTsKKyAgICAg
ICAgbXkgJHtwcm9wR1R5cGV9ID0gdWMoJHByb3BfZ3R5cGUpOworICAgICAgICBteSAkbGNhc2Vf
Z3R5cGVuYW1lID0gIndlYmtpdF8iIC4gJHByb3BfZ3R5cGU7CisKKyAgICAgICAgcHVzaChAY0Jv
ZHlQcml2LCAiICAgICR7cHJvcEVudW19LFxuIik7CisKKyAgICAgICAgbXkgJGd0eXBlID0gR2V0
UHJvcEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFN
X1JFQURBQkxFIjsKKyAgICAgICAgbXkgJHdyaXRlYWJsZSA9ICRhdHRyaWJ1dGUtPnR5cGUgIX4g
L15yZWFkb25seS87CisgICAgICAgIG15ICRjb25zdCA9ICJyZWFkLW9ubHkgIjsKKyAgICAgICAg
aWYgKCR3cml0ZWFibGUgJiYgJGN1c3RvbSkgeworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQt
b25seSAoZHVlIHRvIGN1c3RvbSBmdW5jdGlvbnMgbmVlZGVkIGluIHdlYmtpdC9nb2JqZWN0KSI7
CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisgICAgICAgIGlmICgkd3Jp
dGVhYmxlICYmICEkY3VzdG9tKSB7CisgICAgICAgICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFN
X1JFQURXUklURSI7CisgICAgICAgICAgICAkY29uc3QgPSAicmVhZC13cml0ZSAiOworICAgICAg
ICB9CisKKyAgICAgICAgbXkgJF9ndHlwZSA9ICRndHlwZTsKKyAgICAgICAgaWYgKCRndHlwZSBl
cSAidXNob3J0IikgeworICAgICAgICAgICAgJF9ndHlwZSA9ICJ1aW50IjsgIyB5dWsKKyAgICAg
ICAgfQorICAgICAgICAkbmljayA9IGRlY2FtZWxpemUoJHtpbnRlcmZhY2VOYW1lfSkgLiAiXyIg
LiAkcHJvcF9uYW1lX2RlY2FtZWw7CisgICAgICAgICRuaWNrID1+IHMvXy8gL2c7CisgICAgICAg
ICRuaWNrID1+IHMvXGIoXHcpL1xVJDEvZzsgICAjIGNhcGl0YWxpemUgZWFjaCB3b3JkCisgICAg
ICAgICRsb25nID0gIiR7Y29uc3R9ICR7dHlwZX0gJHtpbnRlcmZhY2VOYW1lfS4ke3Byb3BOYW1l
fSI7CisgICAgICAgIG15ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ19rbGFzcywgJHtwcm9wRW51bX0sCisgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfJHtfZ3R5cGV9ICgiJHtwcm9wTmFtZX0iLCAvKiBuYW1lICovCisg
ICAgICAgICAgICAgICAgIiRuaWNrIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAg
ICAgICAgICAiJGxvbmciLCAvKiBsb25nZXIgLSBjb3VsZCB1c2Ugc29tZSBleHRyYSBkb2MgaGVy
ZSAqLworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxf
cHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gIi8qIFRPRE8hICRndHlwZSAqL1xu
IjsKKworICAgICAgICBpZiAoJHdyaXRlYWJsZSkgeworICAgICAgICAgICAgbXkgJG9rID0gMDsK
KyAgICAgICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisKKyAgICAgICAgICAgIGlmICgkZ3R5
cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAkY29udmVydF9mbiA9ICJXZWJDb3Jl
OjpTdHJpbmc6OmZyb21VVEY4IjsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgZWxzaWYgKCgkZ3R5cGUgZXEgImJvb2xlYW4iIGFuZCAke2ludGVy
ZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSBvciAgICAgIyBUT0RPOiBoYW5kbGUgRE9NV2luZG93
CisgICAgICAgICAgICAgICAgICAgJGd0eXBlIGVxICJmbG9hdCIgb3IKKyAgICAgICAgICAgICAg
ICAgICAoJGd0eXBlIGVxICJkb3VibGUiIGFuZCAke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5k
b3ciKSBvcgorICAgICAgICAgICAgICAgICAgICRndHlwZSBlcSAidWludDY0IiBvcgorICAgICAg
ICAgICAgICAgICAgICgkZ3R5cGUgZXEgInVsb25nIiBhbmQgJHtpbnRlcmZhY2VOYW1lfSBuZSAi
RE9NV2luZG93Iikgb3IKKyAgICAgICAgICAgICAgICAgICAoJGd0eXBlIGVxICJsb25nIiBhbmQg
JHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93Iikgb3IKKyAgICAgICAgICAgICAgICAgICAk
Z3R5cGUgZXEgInVpbnQiIG9yCisgICAgICAgICAgICAgICAgICAgJGd0eXBlIGVxICJ1c2hvcnQi
IG9yCisgICAgICAgICAgICAgICAgICAgJGd0eXBlIGVxICJ1Y2hhciIgb3IKKyAgICAgICAgICAg
ICAgICAgICAkZ3R5cGUgZXEgImNoYXIiKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICMgVE9ETzogaGFuZGxlIExvY2F0aW9uCisgICAgICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkxvY2F0aW9uIikgeworICAgICAgICAgICAgICAg
ICRvayA9IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgkb2spIHsKKyAgICAg
ICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4g
ICAge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPnNldHRl
ckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRGcm9tU3RyaW5n
In0pIHsKKyAgICAgICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiV2ViQ29yZTo6U3RyaW5n
OjpudW1iZXIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBnc2VsZi0+c2V0JHtzZXRwcm9w
X25hbWVfZm59KCR7Y29udmVydF9mbn0oZ192YWx1ZV9nZXRfJGd0eXBlICh2YWx1ZSkpIik7CisK
KyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiLCBlYyIpIGlmIEB7JGF0dHJp
YnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9w
cm9wcywgIik7XG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIg
ICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xu
Iik7CisKKyAgICAgICAgbXkgJGV4Y2VwdGlvbiA9ICIiOworICAgICAgICBpZiAoQHskYXR0cmli
dXRlLT5nZXR0ZXJFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgJGV4Y2VwdGlvbiA9ICJlYyI7
CisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNl
cHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgbXkgJGNvbnZlcnRf
Zm4gPSAiIjsKKyAgICAgICAgbXkgJHBvc3RfY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAk
ZG9uZSA9IDA7CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAg
IHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcgKHZhbHVl
LCBnZG9tX2dzdHJpbmdfY29udmVydChnc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0
aW9ufSkpKTtcbiIpOworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisgICAgICAg
IGVsc2lmICgkZ3R5cGUgZXEgIm9iamVjdCIpIHsKKyAgICAgICAgICAgICR0eHRfZ2V0X3Byb3Ag
PSA8PCAiRU9GIjsKKyAgICAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+IHB0
ciA9IGdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KTsKKyAgICAgICAgZ192
YWx1ZV9zZXRfb2JqZWN0ICh2YWx1ZSwgV2ViS2l0Ojp0b0dET00ocHRyLmdldCgpKSk7CitFT0YK
KyAgICAgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAg
ICAgICAgICAkZG9uZSA9IDE7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnRGcm9tU3RyaW5n
In0pIHsKKyAgICAgICAgICAgICMgVE9ETzogQWRkIG90aGVyIGNvbnZlcnNpb24gZnVuY3Rpb25z
IGZvciBkaWZmZXJlbnQgdHlwZXMuICBDdXJyZW50CisgICAgICAgICAgICAjIElETHMgb25seSBs
aXN0IGxvbmdzLgorICAgICAgICAgICAgaWYoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAg
ICAgICAgICRjb252ZXJ0X2ZuID0gIiI7CisgICAgICAgICAgICAgICAgJHBvc3RfY29udmVydF9m
biA9ICIudG9JbnQoKSI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGRp
ZSAiQ2FuJ3QgY29udmVydCB0byB0eXBlICR7Z3R5cGV9LiI7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoISRkb25lKSB7CisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0
X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF8kX2d0eXBlICh2YWx1ZSwgJHtjb252ZXJ0X2Zu
fWdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KSR7cG9zdF9jb252ZXJ0X2Zu
fSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICAg
ICAgIGJyZWFrO1xuICAgIH1cbiIpOworCisgICAgICAgICMgaXMgdGhpcyBfZW50aXJlbHlfIG5l
Y2Vzc2FyeT8/PworICAgICAgICAjIGNhbiBpdCBiZSBkb25lIHdpdGggZ2VuZXJpYyBnX3BhcmFt
X3NwZWNfZ3R5cGUKKyAgICAgICAgIyBhbmQgZ2V0dGluZyBhIGZldyB0aGluZ3MsIGlnbm9yaW5n
IHRoZSBtaW4tbWF4IGZvciBleGFtcGxlPworICAgICAgICBpZiAoJGd0eXBlIGVxICJpbnQiKSB7
CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAg
ICAgIEdfTUlOSU5ULCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhJTlQs
IC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YK
KyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBGQUxTRSwgLyogZGVm
YXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7CisgICAg
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIEdf
TUlORkxPQVQsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWEZMT0FULCAv
KiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisg
ICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkRPVUJMRSwgICAg
ICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYRE9VQkxFLCAvKiBtYXggKi8KKyAg
ICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxz
aWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3Ag
PSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAg
ICAgICAgICAgR19NQVhVSU5UNjQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAg
ICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIp
IHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUxPTkcsIC8q
IG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAg
ICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkxPTkcsICAgICAgICAv
KiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWExPTkcsIC8qIG1heCAqLworICAgICAgICAg
ICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0
eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9G
IjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAg
R19NQVhVSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAgICAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAg
ICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5UMTYsIC8qIG1heCAqLwor
ICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBl
bHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5JTlQ4LCAgICAgICAgLyogbWluICov
CisgICAgICAgICAgICAgICAgR19NQVhJTlQ4LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAw
LCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
Y2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAg
ICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlO
VDgsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAk
dHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgICIiLCAvKiBkZWZh
dWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAg
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIFdF
QktJVF9UWVBFXyR7cHJvcEdUeXBlfSwgLyogZ29iamVjdCB0eXBlICovCitFT0YKKyAgICAgICAg
fQorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOwor
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIChH
UGFyYW1GbGFncykke2dwYXJhbWZsYWd9KSk7CisKK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5z
dGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOworICAgIH0KKworICAgIHB1c2goQGNCb2R5
UHJpdiwgIn07XG5cbiIpOworCisgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3Qs
IHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisgICAgcHVz
aChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICAkdHh0X3NldF9wcm9wID0g
PDwgIkVPRiI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BS
T1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9
Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKyAgICAK
KyAgICBpZiAoJGdldF9jb3VudCA+IDApIHsKKyAgICAgICAgcHVzaChAY0JvZHlQcml2LCBAdHh0
X2dldF9wcm9wcyk7CisgICAgfQorICAgIAorICAgIGlmICgkc2V0X2NvdW50ID4gMCkgeworICAg
ICAgICBwdXNoKEBjQm9keVByaXYsIEB0eHRfc2V0X3Byb3BzKTsKKyAgICB9CisgICAgCisgICAg
cmV0dXJuIEB0eHRfaW5zdGFsbF9wcm9wczsKK30KKworIyBHZW5lcmF0ZSBoZWFkZXIgYW5kIGlt
cGxlbWVudGF0aW9uCitzdWIgR2VuZXJhdGUgeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAg
ICBteSAkY2xhc3MgPSBzaGlmdDsKKworICAgIG15ICRoYXNMZWdhY3lQYXJlbnQgPSAkY2xhc3Mt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICBteSAkaGFzUmVhbFBh
cmVudCA9IEB7JGNsYXNzLT5wYXJlbnRzfSA+IDA7CisgICAgbXkgJGhhc1BhcmVudCA9ICRoYXNM
ZWdhY3lQYXJlbnQgfHwgJGhhc1JlYWxQYXJlbnQ7CisgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9
IEdldFBhcmVudENsYXNzTmFtZSgkY2xhc3MpOworICAgIG15ICRwYXJlbnRHT2JqVHlwZSA9IEdl
dFBhcmVudEdPYmplY3RUeXBlKCRjbGFzcyk7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkY2xh
c3MtPm5hbWU7CisgICAgbXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgkaW50ZXJmYWNlTmFt
ZSk7ICAgIyBlLmcuIFdlYktpdEVsZW1lbnQKKyAgICBteSAkaGRyTmFtZSA9IEdldEhlYWRlck5h
bWUoJGludGVyZmFjZU5hbWUpOworICAgIAorICAgICMgQWRkIHRoZSBkZWZhdWx0IGltcGxlbWVu
dGF0aW9uIGhlYWRlciB0ZW1wbGF0ZQorICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2Vu
Y2VUZW1wbGF0ZSk7CisgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CisKKyAgICAkaW1wbEluY2x1
ZGVzeyJ3ZWJraXRtYXJzaGFsLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3sid2Via2l0Ymlu
ZGluZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IndlYmtpdC8kaGRyTmFtZS5oIn0gPSAx
OworICAgICRpbXBsSW5jbHVkZXN7IndlYmtpdC8ke2hkck5hbWV9UHJpdmF0ZS5oIn0gPSAxOwor
ICAgICRpbXBsSW5jbHVkZXN7ImdvYmplY3QvZ3N0cmluZ2NvbnZlcnQuaCJ9ID0gMTsKKyAgICAk
aW1wbEluY2x1ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRl
c3siRXhjZXB0aW9uQ29kZS5oIn0gPSAxOworICAgIAorICAgIG15ICRwYXJlbnRJbnRlcmZhY2VO
YW1lID0gc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIGxlbmd0aCgiV2ViS2l0IikpOyAgICAgIyBz
dHJpcCBXZWJLaXQgcHJlZml4CisgICAgbXkgJHBhcmVudEhkck5hbWUgPSBHZXRIZWFkZXJOYW1l
KCRwYXJlbnRJbnRlcmZhY2VOYW1lKTsKKyAgICAkaW1wbEluY2x1ZGVzeyJ3ZWJraXQvJHtwYXJl
bnRIZHJOYW1lfS5oIn0gPSAxOworICAgIGlmICgkcGFyZW50SGRyTmFtZSBuZSAiV2ViS2l0RE9N
T2JqZWN0IikgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJ3ZWJraXQvJHtwYXJlbnRIZHJOYW1l
fVByaXZhdGUuaCJ9ID0gMTsKKyAgICB9CisgICAgJGhkckluY2x1ZGVzeyJ3ZWJraXQvJHtwYXJl
bnRIZHJOYW1lfS5oIn0gPSAxOworCisgICAgIyBHZXQgY29ycmVjdCBwYXNzL3N0b3JlIHR5cGVz
IHJlc3BlY3RpbmcgUE9EVHlwZSBmbGFnCisgICAgbXkgJHBvZFR5cGUgPSAkY2xhc3MtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07CisgICAgbXkgJHBhc3NUeXBlID0gJHBvZFR5cGUg
PyAiSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIiA6ICIkaW50ZXJmYWNlTmFtZSoiOwor
CisgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFzUGFyZW50
IG9yICRjbGFzcy0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KQorICAgICAg
ICBhbmQgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUpKSB7Cisg
ICAgICAgIG15ICRjb252ZXJ0ZXIgPSA8PCAiRU9GIjsKK25hbWVzcGFjZSBXZWJLaXQgeworICAg
IAorZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OiRwYXNzVHlwZSBvYmopCit7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwob2JqICE9IE5VTEwsIE5VTEwpOworCisgICAgaWYgKGdwb2ludGVyIHJl
dCA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KG9iaikpCisgICAgICAgIHJldHVybiBy
ZXQ7CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3Qob2JqLCBXZWJL
aXQ6OndyYXAke2ludGVyZmFjZU5hbWV9KG9iaikpOworfQorICAgIAorfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0IC8vCisKK0VPRgorCisgICAgICAgIHB1c2goQGNCb2R5LCAkY29udmVydGVyKTsKKyAg
ICB9CisKKyAgICBteSAkaW1wbENvbnRlbnQgPSAiIjsKKworICAgIHB1c2goQGNCb2R5LCAiZXh0
ZXJuIFwiQ1wiIHtcblxuIik7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxh
dGUKKyAgICBAaFByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgICAK
KyAgICAjIEhlYWRlciBndWFyZAorICAgIG15ICRndWFyZCA9ICJfXyIgLiAkY2xhc3NOYW1lIC4g
Il9IX18iOworCisgICAgbXkgJGNsYXNzQ2FwcyA9IHVjKGRlY2FtZWxpemUoJGludGVyZmFjZU5h
bWUpKTsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gIndlYmtpdF8iIC4gZGVjYW1lbGl6ZSgk
aW50ZXJmYWNlTmFtZSk7CisKKyAgICBAaFByZWZpeEd1YXJkID0gPDwgIkVPRiI7CisjaWZuZGVm
ICRndWFyZAorI2RlZmluZSAkZ3VhcmQKK0VPRgorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVP
RiI7CitHX0JFR0lOX0RFQ0xTCisKK0VPRgorCisgICAgcHVzaChAaEJvZHlQcmUsICRpbXBsQ29u
dGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworI2RlZmluZSBXRUJLSVRf
VFlQRV8ke2NsYXNzQ2Fwc30gICAgICAgICAgICAoJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBl
KCkpCisjZGVmaW5lIFdFQktJVF8ke2NsYXNzQ2Fwc30ob2JqKSAgICAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfJHtjbGFzc0NhcHN9LCAke2Ns
YXNzTmFtZX0pKQorI2RlZmluZSBXRUJLSVRfJHtjbGFzc0NhcHN9X0NMQVNTKGtsYXNzKSAgICAo
R19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFXyR7Y2xhc3NDYXBz
fSwgJGNsYXNzTmFtZSlDbGFzcykKKyNkZWZpbmUgV0VCS0lUX0lTXyR7Y2xhc3NDYXBzfShvYmop
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV8k
e2NsYXNzQ2Fwc30pKQorI2RlZmluZSBXRUJLSVRfSVNfJHtjbGFzc0NhcHN9X0NMQVNTKGtsYXNz
KSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFXyR7Y2xhc3ND
YXBzfSkpCisjZGVmaW5lIFdFQktJVF8ke2NsYXNzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZ
UEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfJHtjbGFzc0NhcHN9LCAk
e2NsYXNzTmFtZX1DbGFzcykpCisKK3N0cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICAke3BhcmVu
dENsYXNzTmFtZX0gcGFyZW50X2luc3RhbmNlOworfTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX1D
bGFzcyB7CisgICAgJHtwYXJlbnRDbGFzc05hbWV9Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKwor
V0VCS0lUX0FQSSBHVHlwZQorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBlICh2b2lkKTsKKwor
RU9GCisKKyAgICBwdXNoKEBoQm9keSwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworCitHX0JFR0lOX0RFQ0xTCisKK0dfREVGSU5FX1RZUEUoJHtjbGFzc05h
bWV9LCAke2xjYXNlX2lmYWNlbmFtZX0sICR7cGFyZW50R09ialR5cGV9KTsKKworR19FTkRfREVD
TFMKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyR7Y2xhc3NOYW1lfSAqCit3cmFwJHtpbnRlcmZh
Y2VOYW1lfShXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICpjb3JlT2JqZWN0KQoreworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmplY3QgIT0gTlVMTCwgTlVMTCk7CisgICAgCisgICAg
JHtjbGFzc05hbWV9ICp3cmFwcGVyID0gV0VCS0lUXyR7Y2xhc3NDYXBzfShnX29iamVjdF9uZXco
V0VCS0lUX1RZUEVfJHtjbGFzc0NhcHN9LCBOVUxMKSk7CisgICAgCisgICAgY29yZU9iamVjdC0+
cmVmKCk7CisgICAgV0VCS0lUX0RPTV9PQkpFQ1Qod3JhcHBlciktPmNvcmVPYmplY3QgPSBjb3Jl
T2JqZWN0OworCisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKK1dlYkNvcmU6OiR7aW50ZXJmYWNl
TmFtZX0gKgorY29yZSgke2NsYXNzTmFtZX0gKnJlcXVlc3QpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwocmVxdWVzdCAhPSBOVUxMLCBOVUxMKTsKKyAgICAKKyAgICBXZWJDb3JlOjoke2lu
dGVyZmFjZU5hbWV9ICpjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZh
Y2VOYW1lfSAqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7CisgICAg
Z19hc3NlcnQoY29yZU9iamVjdCAhPSBOVUxMKTsKKyAgICAKKyAgICByZXR1cm4gY29yZU9iamVj
dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0IC8KKworRU9GCisgICAgcHVzaChAY0JvZHlQ
cml2LCAkaW1wbENvbnRlbnQpOworCisgICAgbXkgQHR4dF9pbnN0YWxsX3Byb3BzID0gJG9iamVj
dC0+R2VuZXJhdGVQcm9wZXJ0aWVzKCRjbGFzcywgJGNsYXNzQ2FwcywgJGxjYXNlX2lmYWNlbmFt
ZSk7CisgICAgCisgICAgbXkgJGluc3RhbGxfZ2V0X3Byb3AgPSAiLy8gbm8gZ2V0IHByb3BlcnRp
ZXMiOworICAgIG15ICRpbnN0YWxsX3NldF9wcm9wID0gIi8vIG5vIHNldCBwcm9wZXJ0aWVzIjsK
KyAgICAKKyAgICBpZiAoQ291bnRHZXRQcm9wZXJ0aWVzKCRjbGFzcykgPiAwKSB7CisgICAgICAg
ICRpbnN0YWxsX2dldF9wcm9wID0gImdfa2xhc3MtPmdldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZh
Y2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuOyI7CisgICAgfQorICAgIAorICAgIGlmIChDb3VudFNl
dFByb3BlcnRpZXMoJGNsYXNzKSA+IDApIHsKKyAgICAgICAgJGluc3RhbGxfc2V0X3Byb3AgPSAi
Z19rbGFzcy0+c2V0X3Byb3BlcnR5ID0gJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlf
Zm47IjsKKyAgICB9CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworc3RhdGljIHZv
aWQgJHtsY2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBX
ZWJLaXRET01PYmplY3QqIGRvbV9vYmplY3QgPSBXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpOwor
ICAgIAorICAgIGlmIChkb21fb2JqZWN0ICE9IE5VTEwgJiYgZG9tX29iamVjdC0+Y29yZU9iamVj
dCAhPSBOVUxMKSB7CisgICAgICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKmNvcmVPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICo+KGRvbV9vYmplY3Qt
PmNvcmVPYmplY3QpOworICAgICAgICBjb3JlT2JqZWN0LT5kZXJlZigpOworICAgICAgICAKKyAg
ICAgICAgZG9tX29iamVjdC0+Y29yZU9iamVjdCA9IE5VTEw7CisgICAgICAgIAorICAgICAgICBX
ZWJLaXQ6OkdET01PYmplY3RDYWNoZTo6Zm9yZ2V0RE9NT2JqZWN0KGNvcmVPYmplY3QpOworICAg
IH0KKworICAgIEdfT0JKRUNUX0NMQVNTKCR7bGNhc2VfaWZhY2VuYW1lfV9wYXJlbnRfY2xhc3Mp
LT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1f
Y2xhc3NfaW5pdCgke2NsYXNzTmFtZX1DbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdPYmpl
Y3RDbGFzcyAqZ19rbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChyZXF1ZXN0Q2xhc3MpOworICAgIGdf
a2xhc3MtPmZpbmFsaXplID0gJHtsY2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplOworICAgICR7aW5z
dGFsbF9nZXRfcHJvcH0KKyAgICAke2luc3RhbGxfc2V0X3Byb3B9CisKK0B0eHRfaW5zdGFsbF9w
cm9wcworfQorCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1faW5pdCgke2NsYXNzTmFt
ZX0qIHJlcXVlc3QpCit7Cit9CisKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250
ZW50KTsKKworICAgICRpbXBsSW5jbHVkZXN7IndlYmtpdC9XZWJLaXQke2ludGVyZmFjZU5hbWV9
UHJpdmF0ZS5oIn0gPSAxOworCisgICAgJGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1lfS5o
In0gPSAxOworCisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGNsYXNzLT5mdW5jdGlvbnN9
KSB7CisgICAgICAgICRvYmplY3QtPkdlbmVyYXRlRnVuY3Rpb24oJGludGVyZmFjZU5hbWUsICRm
dW5jdGlvbiwgIiIpOworICAgIH0KKworICAgIFRPUDoKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1
dGUgKEB7JGNsYXNzLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBpZiAoc2tpcEF0dHJpYnV0ZSgk
YXR0cmlidXRlKSkgeworICAgICAgICAgICAgbmV4dCBUT1A7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgZXEgInR5cGUiCisgICAg
ICAgICAgICAjIFRoaXMgd2lsbCBjb25mbGljdCB3aXRoIHRoZSBnZXRfdHlwZSgpIGZ1bmN0aW9u
IHdlIGRlZmluZSB0byByZXR1cm4gYSBHVHlwZQorICAgICAgICAgICAgIyBhY2NvcmRpbmcgdG8g
R09iamVjdCBjb252ZW50aW9ucy4gIFNraXAgdGhpcyBmb3Igbm93LgorICAgICAgICAgICAgfHwg
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIGVxICJVUkwiICAgICAjIFRPRE86IGhhbmRsZSB0
aGlzCisgICAgICAgICAgICB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDb252ZXJ0RnJvbVN0cmluZyJ9ICAgICMgVE9ETzogaGFuZGxlIHRoaXMKKyAgICAg
ICAgICAgICkgeworICAgICAgICAgICAgbmV4dCBUT1A7CisgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICBteSAkYXR0bmFtZV91cHBlciA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7CisgICAgICAgIG15ICRnZXRuYW1lID0gImdl
dCR7YXR0bmFtZV91cHBlcn0iOworICAgICAgICBteSAkc2V0bmFtZSA9ICJzZXQke2F0dG5hbWVf
dXBwZXJ9IjsKKyAgICAgICAgaWYgKENsYXNzSGFzRnVuY3Rpb24oJGNsYXNzLCAkZ2V0bmFtZSkg
fHwgQ2xhc3NIYXNGdW5jdGlvbigkY2xhc3MsICRzZXRuYW1lKSkgeworICAgICAgICAgICAgIyBW
ZXJ5IG9jY2FzaW9uYWxseSBhbiBJREwgZmlsZSBkZWZpbmVzIGdldHRlci9zZXR0ZXIgZnVuY3Rp
b25zIGZvciBvbmUgb2YgaXRzCisgICAgICAgICAgICAjIGF0dHJpYnV0ZXM7IGluIHRoaXMgY2Fz
ZSB3ZSBkb24ndCBuZWVkIHRvIGF1dG9nZW5lcmF0ZSB0aGUgZ2V0dGVyL3NldHRlci4KKyAgICAg
ICAgICAgIG5leHQgVE9QOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAjIEdlbmVyYXRl
IGFuIGF0dHJpYnV0ZSBnZXR0ZXIuICBGb3IgYW4gYXR0cmlidXRlICJmb28iLCB0aGlzIGlzIGEg
ZnVuY3Rpb24gbmFtZWQKKyAgICAgICAgIyAiZ2V0X2ZvbyIgd2hpY2ggY2FsbHMgYSBET00gY2xh
c3MgbWV0aG9kIG5hbWVkIGZvbygpLgorICAgICAgICBteSAkZnVuY3Rpb24gPSBuZXcgZG9tRnVu
Y3Rpb24oKTsKKyAgICAgICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlKTsKKyAgICAgICAgJGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zKCRhdHRyaWJ1dGUtPmdl
dHRlckV4Y2VwdGlvbnMpOworICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUZ1bmN0aW9uKCRpbnRl
cmZhY2VOYW1lLCAkZnVuY3Rpb24sICJnZXQiKTsKKyAgICAgICAgCisgICAgICAgIGlmICgkYXR0
cmlidXRlLT50eXBlID1+IC9ecmVhZG9ubHkvIHx8CisgICAgICAgICAgICAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBsYWNlYWJsZSJ9ICAjIGNhbid0IGhh
bmRsZSB0aGlzIHlldAorICAgICAgICAgICAgKSB7CisgICAgICAgICAgICBuZXh0IFRPUDsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgIyBHZW5lcmF0ZSBhbiBhdHRyaWJ1dGUgc2V0dGVy
LiAgRm9yIGFuIGF0dHJpYnV0ZSwgImZvbyIsIHRoaXMgaXMgYSBmdW5jdGlvbiBuYW1lZAorICAg
ICAgICAjICJzZXRfZm9vIiB3aGljaCBjYWxscyBhIERPTSBjbGFzcyBtZXRob2QgbmFtZWQgc2V0
Rm9vKCkuCisgICAgICAgICRmdW5jdGlvbiA9IG5ldyBkb21GdW5jdGlvbigpOworICAgICAgICAK
KyAgICAgICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUobmV3IGRvbVNpZ25hdHVyZSgpKTsKKyAgICAg
ICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWUoJHNldG5hbWUpOworICAgICAgICAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+dHlwZSgidm9pZCIpOworICAgICAgICAkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKTsKKyAgICAgICAgCisgICAgICAgIG15ICRwYXJhbSA9IG5ldyBkb21TaWduYXR1cmUo
KTsKKyAgICAgICAgJHBhcmFtLT5uYW1lKCJ2YWx1ZSIpOworICAgICAgICAkcGFyYW0tPnR5cGUo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKKyAgICAgICAgbXkgJWF0dHJpYnV0ZXMgPSAo
KTsKKyAgICAgICAgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7CisgICAg
ICAgIG15ICRhcnJheVJlZiA9ICRmdW5jdGlvbi0+cGFyYW1ldGVyczsKKyAgICAgICAgcHVzaChA
JGFycmF5UmVmLCAkcGFyYW0pOworICAgICAgICAKKyAgICAgICAgJGZ1bmN0aW9uLT5yYWlzZXNF
eGNlcHRpb25zKCRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnMpOworICAgICAgICAKKyAgICAg
ICAgJG9iamVjdC0+R2VuZXJhdGVGdW5jdGlvbigkaW50ZXJmYWNlTmFtZSwgJGZ1bmN0aW9uLCAi
c2V0Iik7CisgICAgfQorCisgICAgcHVzaChAY0JvZHksICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xu
XG4iKTsKKyAgICBwdXNoKEBjQm9keVByaXYsICJHX0VORF9ERUNMU1xuXG4iKTsKKworICAgIHB1
c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5kaWYg
LyogJGd1YXJkICovXG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIKK3N1YiBXcml0ZURhdGEg
eworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkgPSBAXzsKKworICAgICMgV3JpdGUgcHVibGljIGhl
YWRlci4KKyAgICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgiOwor
ICAgIG9wZW4oSEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxl
ICRoZHJGTmFtZSI7CisKKyAgICBwcmludCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVB
REVSIEBoUHJlZml4R3VhcmQ7CisgICAgcHJpbnQgSEVBREVSICJcbiNpbmNsdWRlIFwid2Via2l0
L3dlYmtpdGRvbWRlZmluZXMuaFwiXG4iOworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+XG4iOworICAgIHByaW50IEhFQURFUiAiI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50IEhFQURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wi
XG4iIH0gc29ydCBrZXlzKCVoZHJJbmNsdWRlcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYg
a2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iOworICAgIHByaW50IEhF
QURFUiBAaEJvZHlQcmU7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhF
QURFUik7CisKKyAgICAjIFdyaXRlIHRoZSBpbXBsZW1lbnRhdGlvbgorICAgIG15ICRpbXBsRmls
ZU5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmNwcCI7CisgICAgb3BlbihJTVBMLCAi
PiRpbXBsRmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1l
IjsKKworICAgIHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUg
PGdsaWItb2JqZWN0Lmg+XG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwiY29uZmlnLmhc
IlxuXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+XG4iOworICAg
IHByaW50IElNUEwgIiNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPlxuIjsKKyAgICBwcmludCBJ
TVBMIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRlcyk7
CisgICAgcHJpbnQgSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJpbnQg
SU1QTCBAY0JvZHk7CisKKyAgICBwcmludCBJTVBMICJcbiI7CisgICAgcHJpbnQgSU1QTCBAY0Jv
ZHlQcml2OworCisgICAgY2xvc2UoSU1QTCk7CisKKyAgICAlaW1wbEluY2x1ZGVzID0gKCk7Cisg
ICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBAaFByZWZpeEd1
YXJkID0gKCk7CisgICAgQGhCb2R5UHJlID0gKCk7CisgICAgQGhCb2R5ID0gKCk7CisKKyAgICBA
Y1ByZWZpeCA9ICgpOworICAgIEBjQm9keSA9ICgpOworICAgIEBjQm9keVByaXYgPSAoKTsKK30K
KworMTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC93ZWJraXRiaW5kaW5nLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0YmluZGluZy5jcHAJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0YmluZGluZy5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzY3IEBACisvKgorICogIENvcHlyaWdodCAoQykg
MTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5v
cmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3Rv
QGZyZWVkZXNrdG9wLm9yZz4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKy8vIGdj
YyAzLnggY2FuJ3QgaGFuZGxlIGluY2x1ZGluZyB0aGUgSGFzaE1hcCBwb2ludGVyIHNwZWNpYWxp
emF0aW9uCisvLyBpbiB0aGlzIGZpbGUKKyNpZiBkZWZpbmVkIF9fR05VQ19fICYmICFkZWZpbmVk
IF9fR0xJQkNYWF9fIC8vIGxlc3MgdGhhbiBnY2MgMy40CisjZGVmaW5lIEhBU0hfTUFQX1BUUl9T
UEVDX1dPUktBUk9VTkQgMQorI2VuZGlmCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
IDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgIndlYmtpdC93ZWJraXRkb20uaCIKKyNpbmNsdWRl
ICJ3ZWJraXRiaW5kaW5nLmgiCisjaW5jbHVkZSAid2Via2l0aHRtbGVsZW1lbnR3cmFwcGVyZmFj
dG9yeS5oIgorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkF0b21pY1N0cmluZy5o
IgorI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRl
ICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJDb21tZW50LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUu
aCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVk
ZSAiRW50aXR5LmgiCisjaW5jbHVkZSAiRW50aXR5UmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiRXZl
bnRFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisj
aW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgi
CisjaW5jbHVkZSAiTm90YXRpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
aCIKKyNpbmNsdWRlICJUZXh0LmgiCisKKyNpbmNsdWRlICJDU1NDaGFyc2V0UnVsZS5oIgorI2lu
Y2x1ZGUgIkNTU0ZvbnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkNTU0ltcG9ydFJ1bGUuaCIKKyNp
bmNsdWRlICJDU1NNZWRpYVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NQYWdlUnVsZS5oIgorI2luY2x1
ZGUgIkNTU1N0eWxlUnVsZS5oIgorI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRl
ICJDU1NWYXJpYWJsZXNSdWxlLmgiCisKKyNpbmNsdWRlICJXZWJLaXRBdHRyUHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdENEQVRBU2VjdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRD
bGlwYm9hcmRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0Q29tbWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJXZWJLaXRDU1NDaGFyc2V0UnVsZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRD
U1NGb250RmFjZVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTSW1wb3J0UnVsZVBy
aXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NNZWRpYVJ1bGVQcml2YXRlLmgiCisjaW5jbHVk
ZSAiV2ViS2l0Q1NTUGFnZVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTUHJpbWl0
aXZlVmFsdWVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTUnVsZVByaXZhdGUuaCIKKyNp
bmNsdWRlICJXZWJLaXRDU1NTdHlsZVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NT
U3R5bGVTaGVldFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NWYWx1ZUxpc3RQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTVmFsdWVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0
Q1NTVmFyaWFibGVzUnVsZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXREb2N1bWVudEZyYWdt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERvY3VtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgIldlYktpdERvY3VtZW50VHlwZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRFbGVtZW50
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdEVudGl0eVByaXZhdGUuaCIKKyNpbmNsdWRlICJX
ZWJLaXRFbnRpdHlSZWZlcmVuY2VQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0SFRNTENvbGxl
Y3Rpb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0SFRNTERvY3VtZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdEhUTUxPcHRpb25zQ29sbGVjdGlvblByaXZhdGUuaCIKKyNpbmNsdWRl
ICJXZWJLaXROb2RlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdE5vdGF0aW9uUHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYktpdFByb2Nlc3NpbmdJbnN0cnVjdGlvblByaXZhdGUuaCIKKyNpbmNs
dWRlICJXZWJLaXRTdHlsZVNoZWV0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFRleHRQcml2
YXRlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOjpIVE1MTmFtZXM7CisKK3R5cGVkZWYgSGFzaE1hcDx2
b2lkKiwgZ3BvaW50ZXI+IERPTU9iamVjdE1hcDsKKworc3RhdGljIERPTU9iamVjdE1hcCYgZG9t
T2JqZWN0cygpCit7CisgICAgc3RhdGljIERPTU9iamVjdE1hcCBzdGF0aWNET01PYmplY3RzOwor
ICAgIHJldHVybiBzdGF0aWNET01PYmplY3RzOworfQorCitncG9pbnRlciBHRE9NT2JqZWN0Q2Fj
aGU6OmdldERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUpCit7CisgICAgcmV0dXJuIGRvbU9i
amVjdHMoKS5nZXQob2JqZWN0SGFuZGxlKTsKK30KKworZ3BvaW50ZXIgR0RPTU9iamVjdENhY2hl
OjpwdXRET01PYmplY3Qodm9pZCogb2JqZWN0SGFuZGxlLCBncG9pbnRlciB3cmFwcGVyKQorewor
ICAgIGRvbU9iamVjdHMoKS5zZXQob2JqZWN0SGFuZGxlLCB3cmFwcGVyKTsKKyAgICByZXR1cm4g
d3JhcHBlcjsKK30KKwordm9pZCBHRE9NT2JqZWN0Q2FjaGU6OmZvcmdldERPTU9iamVjdCh2b2lk
KiBvYmplY3RIYW5kbGUpCit7CisgICAgZG9tT2JqZWN0cygpLnRha2Uob2JqZWN0SGFuZGxlKTsK
K30KKworZ3BvaW50ZXIgdG9HRE9NKERvY3VtZW50KiBkb2MpCit7CisgICAgaWYgKCFkb2MpCisg
ICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RDYWNo
ZTo6Z2V0RE9NT2JqZWN0KGRvYyk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2Jq
OworCisgICAgZ3BvaW50ZXIgcmV0OworCisgICAgaWYgKGRvYy0+aXNIVE1MRG9jdW1lbnQoKSkK
KyAgICAgICAgcmV0ID0gd3JhcEhUTUxEb2N1bWVudChzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQq
Pihkb2MpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IHdyYXBEb2N1bWVudChkb2MpOworCisg
ICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KGRvYywgcmV0KTsKK30KKwor
c3RhdGljIGdwb2ludGVyIGNyZWF0ZVdyYXBwZXIoTm9kZSogbm9kZSk7CisKK2dwb2ludGVyIHRv
R0RPTU5ld2x5Q3JlYXRlZChOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZSkKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3Bv
aW50ZXIgdG9HRE9NKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1
cm4gTlVMTDsKKworICAgIGdwb2ludGVyIHJldCA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2Jq
ZWN0KG5vZGUpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICByZXR1
cm4gY3JlYXRlV3JhcHBlcihub2RlKTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKENTU1ZhbHVlKiB2
YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdw
b2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdCh2YWx1ZSk7CisKKyAg
ICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7CisK
KyAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpCisgICAgICAgIHJldCA9IHdyYXBDU1NWYWx1
ZUxpc3Qoc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpKTsKKyAgICBlbHNlIGlmICh2
YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXQgPSB3cmFwQ1NTUHJpbWl0aXZl
VmFsdWUoc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSkpOworICAgIGVsc2UK
KyAgICAgICAgcmV0ID0gd3JhcENTU1ZhbHVlKHZhbHVlKTsKKworICAgIHJldHVybiBHRE9NT2Jq
ZWN0Q2FjaGU6OnB1dERPTU9iamVjdCh2YWx1ZSwgcmV0KTsKK30KKworc3RhdGljIEFMV0FZU19J
TkxJTkUgZ3BvaW50ZXIgY3JlYXRlV3JhcHBlcihOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChu
b2RlKTsKKyAgICBBU1NFUlQoIVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3Qobm9kZSkp
OworCisgICAgZ3BvaW50ZXIgcmV0ID0gTlVMTDsKKworICAgIHN3aXRjaCAobm9kZS0+bm9kZVR5
cGUoKSkgeworICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgIGlm
IChub2RlLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RP
TUhUTUxXcmFwcGVyKHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSkpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHJldCA9IHdyYXBFbGVtZW50KHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpB
VFRSSUJVVEVfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBBdHRyKHN0YXRpY19jYXN0PEF0
dHIqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpURVhU
X05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwVGV4dChzdGF0aWNfY2FzdDxUZXh0Kj4obm9k
ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElP
Tl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENEQVRBU2VjdGlvbihzdGF0aWNfY2FzdDxD
REFUQVNlY3Rpb24qPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBO
b2RlOjpFTlRJVFlfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBFbnRpdHkoc3RhdGljX2Nh
c3Q8RW50aXR5Kj4obm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9k
ZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbihzdGF0aWNfY2FzdDxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qPihu
b2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5UX05P
REU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ29tbWVudChzdGF0aWNfY2FzdDxDb21tZW50Kj4o
bm9kZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRf
Tk9ERToKKyAgICAgICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2FjaGUgdGhlIGRvY3VtZW50
IGl0c2VsZiBpbiB0aGUgcGVyLWRvY3VtZW50IGRpY3Rpb25hcnkKKyAgICAgICAgICAgIHJldHVy
biB0b0dET00oc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihub2RlKSk7CisgICAgICAgIGNhc2UgTm9k
ZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcERvY3VtZW50VHlw
ZShzdGF0aWNfY2FzdDxEb2N1bWVudFR5cGUqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBOb2RlOjpOT1RBVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3Jh
cE5vdGF0aW9uKHN0YXRpY19jYXN0PE5vdGF0aW9uKj4obm9kZSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKKyAgICAgICAg
ICAgIHJldCA9IHdyYXBEb2N1bWVudEZyYWdtZW50KHN0YXRpY19jYXN0PERvY3VtZW50RnJhZ21l
bnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpFTlRJ
VFlfUkVGRVJFTkNFX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwRW50aXR5UmVmZXJlbmNl
KHN0YXRpY19jYXN0PEVudGl0eVJlZmVyZW5jZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gd3JhcE5vZGUobm9kZSk7Cisg
ICAgfQorCisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KG5vZGUsIHJl
dCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKK3sK
KyAgICBpZiAoIWNvbGxlY3Rpb24pCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50
ZXIgZ29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KGNvbGxlY3Rpb24pOworCisg
ICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3BvaW50ZXIgcmV0Owor
ICAgIHN3aXRjaCAoY29sbGVjdGlvbi0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgSFRNTENvbGxl
Y3Rpb246OlNlbGVjdE9wdGlvbnM6CisgICAgICAgICAgICByZXQgPSB3cmFwSFRNTE9wdGlvbnND
b2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxPcHRpb25zQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24p
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0
ID0gd3JhcEhUTUxDb2xsZWN0aW9uKHN0YXRpY19jYXN0PEhUTUxDb2xsZWN0aW9uKj4oY29sbGVj
dGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIEdET01PYmpl
Y3RDYWNoZTo6cHV0RE9NT2JqZWN0KGNvbGxlY3Rpb24sIHJldCk7Cit9CisKK2dwb2ludGVyIHRv
R0RPTShUZXh0KiB0ZXh0KQoreworICAgIGlmICghdGV4dCkKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QodGV4
dCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3BvaW50ZXIg
cmV0ID0gd3JhcFRleHQodGV4dCk7CisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9N
T2JqZWN0KHRleHQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShDU1NSdWxlKiBydWxlKQor
eworICAgIGlmICghcnVsZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBn
b2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QocnVsZSk7CisKKyAgICBpZiAoZ29i
aikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7CisgICAgc3dpdGNo
IChydWxlLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpTVFlMRV9SVUxFOgorICAg
ICAgICAgICAgcmV0ID0gd3JhcENTU1N0eWxlUnVsZShzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUq
PihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpNRURJ
QV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU01lZGlhUnVsZShzdGF0aWNfY2FzdDxD
U1NNZWRpYVJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBD
U1NSdWxlOjpGT05UX0ZBQ0VfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NGb250RmFj
ZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6UEFHRV9SVUxFOgorICAgICAgICAgICAgcmV0
ID0gd3JhcENTU1BhZ2VSdWxlKHN0YXRpY19jYXN0PENTU1BhZ2VSdWxlKj4ocnVsZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6SU1QT1JUX1JVTEU6CisgICAg
ICAgICAgICByZXQgPSB3cmFwQ1NTSW1wb3J0UnVsZShzdGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxl
Kj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6Q0hB
UlNFVF9SVUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU0NoYXJzZXRSdWxlKHN0YXRpY19j
YXN0PENTU0NoYXJzZXRSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgQ1NTUnVsZTo6VkFSSUFCTEVTX1JVTEU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NT
VmFyaWFibGVzUnVsZShzdGF0aWNfY2FzdDxDU1NWYXJpYWJsZXNSdWxlKj4ocnVsZSkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSB3cmFw
Q1NTUnVsZShydWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIEdET01PYmpl
Y3RDYWNoZTo6cHV0RE9NT2JqZWN0KHJ1bGUsIHJldCk7CisgICAgcmV0dXJuIHJldDsKK30KKwor
Z3BvaW50ZXIgdG9HRE9NKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50KQor
ICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2Fj
aGU6OmdldERPTU9iamVjdChlbGVtZW50KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJu
IGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7CisKKyAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxl
bWVudCgpKQorICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8
SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwRWxl
bWVudChlbGVtZW50KTsKKworICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVj
dChlbGVtZW50LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oU3R5bGVTaGVldCogc3R5bGVT
aGVldCkKK3sKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisgICAgICAgIHJldHVybiBOVUxMOworCisg
ICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHN0eWxlU2hl
ZXQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVy
IHJldDsKKyAgICBpZiAoc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJl
dCA9IHdyYXBDU1NTdHlsZVNoZWV0KHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNo
ZWV0KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwU3R5bGVTaGVldChzdHlsZVNoZWV0
KTsKKworICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChzdHlsZVNoZWV0
LCByZXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L1dlYktpdERPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3Rv
IDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworCisjaWZuZGVmIFdlYktpdERPTU9iamVjdF9oCisjZGVmaW5lIFdlYktp
dERPTU9iamVjdF9oCisKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIndlYmtp
dC93ZWJraXRkb21kZWZpbmVzLmgiCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4K
KworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0RPTV9PQkpFQ1QgICAgICAg
ICAgICAod2Via2l0X2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9P
QkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwg
V0VCS0lUX1RZUEVfRE9NX09CSkVDVCwgV2ViS2l0RE9NT2JqZWN0KSkKKyNkZWZpbmUgV0VCS0lU
X0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfRE9NX09CSkVDVCwgV2ViS2l0RE9NT2JqZWN0Q2xhc3MpKQorI2Rl
ZmluZSBXRUJLSVRfSVNfRE9NX09CSkVDVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNU
QU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9ET01fT0JKRUNUKSkKKyNkZWZpbmUgV0VCS0lU
X0lTX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIFdFQktJVF9ET01fT0JKRUNU
X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJ
VF9UWVBFX0RPTV9PQkpFQ1QsIFdlYktpdERPTU9iamVjdENsYXNzKSkKKworc3RydWN0IF9XZWJL
aXRET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAgdm9pZCAq
Y29yZU9iamVjdDsKK307CisKK3N0cnVjdCBfV2ViS2l0RE9NT2JqZWN0Q2xhc3MgeworICAgIEdP
YmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRf
ZG9tX29iamVjdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBX
ZWJLaXRET01PYmplY3RfaCAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qvd2Vi
a2l0aHRtbGVsZW1lbnR3cmFwcGVyZmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC93ZWJraXRodG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0aHRtbGVsZW1lbnR3cmFwcGVy
ZmFjdG9yeS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8K
KworI2lmbmRlZiBXRUJLSVRfSFRNTF9FTEVNRU5UX1dSQVBQRVJfRkFDVE9SWV9ICisjZGVmaW5l
IFdFQktJVF9IVE1MX0VMRU1FTlRfV1JBUFBFUl9GQUNUT1JZX0gKKworI2luY2x1ZGUgImdsaWIt
b2JqZWN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlICJIVE1MRWxlbWVu
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7Cit9CisK
K25hbWVzcGFjZSBXZWJLaXQgeworICAgIGdwb2ludGVyIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQ
YXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxFbGVtZW50Pik7Cit9CisKKyNlbmRpZiAvLyBXRUJLSVRf
SFRNTF9FTEVNRU5UX1dSQVBQRVJfRkFDVE9SWV9ICkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvZ3N0cmluZ2NvbnZlcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvZ3N0cmluZ2NvbnZlcnQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
Z29iamVjdC9nc3RyaW5nY29udmVydC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxr
Y2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKworI2lmbmRlZiBHU1RSSU5HX0NPTlZFUlRfSAorI2RlZmluZSBHU1RSSU5H
X0NPTlZFUlRfSAorCisvKiBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgdmFy
aW91cyB3ZWJraXQgc3RyaW5nIHR5cGVzIGludG8gYSB1dGY4IGdsaWIgc3RyaW5nICovCisKKyNp
bmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAi
S1VSTC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAidW5pY29kZS91
c3RyaW5nLmgiCisKK2lubGluZSBnY2hhciAqIGdkb21fZ3N0cmluZ19jb252ZXJ0KFdlYkNvcmU6
OlN0cmluZyBjb25zdCYgcykgeyByZXR1cm4gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQor
aW5saW5lIGdjaGFyICogZ2RvbV9nc3RyaW5nX2NvbnZlcnQoV2ViQ29yZTo6S1VSTCBjb25zdCYg
cykgeyByZXR1cm4gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQoraW5saW5l
IGdjaGFyICogZ2RvbV9nc3RyaW5nX2NvbnZlcnQoY29uc3QgSlNDOjpVU3RyaW5nICYgcykgeyBy
ZXR1cm4gZ19zdHJkdXAocy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KK2lubGluZSBnY2hhciAq
IGdkb21fZ3N0cmluZ19jb252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IHJl
dHVybiBnX3N0cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9CisKKyNlbmRpZiAvKiBH
U1RSSU5HX0NPTlZFUlRfSCAqLwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L3dlYmtp
dGJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0
YmluZGluZy5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L3dlYmtp
dGJpbmRpbmcuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqICBDb3B5cmln
aHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQorICogIENvcHly
aWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3
ZWJraXQub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290
byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLwor
CisjaWZuZGVmIFdFQktJVF9CSU5ESU5HX0gKKyNkZWZpbmUgV0VCS0lUX0JJTkRJTkdfSAorCisj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5
LmgiCisjaW5jbHVkZSAiQ1NTUnVsZS5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5j
bHVkZSAiU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisgICAgY2xhc3MgQXRvbWljU3RyaW5nOworICAgIGNsYXNzIERvY3VtZW50OworICAg
IGNsYXNzIEV2ZW50OworICAgIGNsYXNzIEZyYW1lOworICAgIGNsYXNzIEtVUkw7CisgICAgY2xh
c3MgTm9kZTsKKyAgICBjbGFzcyBTdHJpbmc7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGNsYXNz
IFNWR0VsZW1lbnQ7CisjZW5kaWYKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNl
IFdlYktpdCB7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkNhbnZhc1BpeGVsQXJyYXkq
IG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpDU1NSdWxlKiBub2RlKTsKKyAg
ICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6Q1NTVmFsdWUqIG5vZGUpOworICAgIGdwb2ludGVy
IHRvR0RPTShXZWJDb3JlOjpEb2N1bWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdl
YkNvcmU6OkRPTVdpbmRvdyogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkVs
ZW1lbnQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpIVE1MQ29sbGVjdGlv
biogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6Ok5vZGUqIG5vZGUpOworICAg
IGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpTdHlsZVNoZWV0KiBub2RlKTsKKyAgICBncG9pbnRl
ciB0b0dET00oV2ViQ29yZTo6VGV4dCogbm9kZSk7CisKKyAgICBjbGFzcyBHRE9NT2JqZWN0Q2Fj
aGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIGdwb2ludGVyIGdldERPTU9iamVjdCh2
b2lkICpvYmplY3RIYW5kbGUpOworICAgICAgICBzdGF0aWMgZ3BvaW50ZXIgcHV0RE9NT2JqZWN0
KHZvaWQgKm9iamVjdEhhbmRsZSwgZ3BvaW50ZXIgd3JhcHBlcik7CisgICAgICAgIHN0YXRpYyB2
b2lkIGZvcmdldERPTU9iamVjdCh2b2lkICpvYmplY3RIYW5kbGUpOworICAgIH07Cit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdFQktJVF9CSU5ESU5HX0gKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU9iamVjdC5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAw
OCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KKworCisjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIndlYmtpdGJpbmRpbmcuaCIK
KyNpbmNsdWRlICJXZWJLaXRET01PYmplY3QuaCIKKworZXh0ZXJuICJDIiB7CisKK0dfREVGSU5F
X1RZUEUoV2ViS2l0RE9NT2JqZWN0LCB3ZWJraXRfZG9tX29iamVjdCwgR19UWVBFX09CSkVDVCk7
CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fb2JqZWN0X2luaXQoV2ViS2l0RE9NT2JqZWN0KiBy
ZXF1ZXN0KQoreworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX29iamVjdF9jbGFzc19pbml0
KFdlYktpdERPTU9iamVjdENsYXNzKiByZXF1ZXN0Q2xhc3MpCit7Cit9CisKK30gLyogZXh0ZXJu
ICJDIiAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0aHRtbGVsZW1l
bnR3cmFwcGVyZmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L3dlYmtpdGh0bWxlbGVtZW50d3JhcHBlcmZhY3RvcnkuY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L3dlYmtpdGh0bWxlbGVtZW50d3JhcHBlcmZhY3Rvcnku
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9y
Zz4KKyAqCisgKiBUaGlzIGZpbGUgaXMgZGVyaXZlZCBieSBoYW5kIGZyb20gYW4gYXV0b21hdGlj
YWxseSBnZW5lcmF0ZWQgZmlsZS4KKyAqIEtlZXBpbmcgaXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3Rl
bnRpYWxseSBiZSBkb25lIGJ5IGFkZGluZworICogYSBtYWtlX25hbWVzLnBsIGdlbmVyYXRvciwg
b3IgYnkgd3JpdGluZyBhIHNlcGFyYXRlCisgKiBnZW5lcmF0ZXIgd2hpY2ggdGFrZXMgSlNIVE1M
RWxlbWVudFdyYXBwZXJGYWN0b3J5LmggYXMgaW5wdXQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaW5jbHVkZSAid2Via2l0aHRtbGVsZW1lbnR3cmFwcGVyZmFjdG9yeS5oIgorI2lu
Y2x1ZGUgIndlYmtpdC93ZWJraXRkb20uaCIKKworI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1M
QW5jaG9yRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTEFwcGxl
dEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxBcmVhRWxlbWVu
dFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTEJhc2VFbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MQmFzZUZvbnRFbGVtZW50UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MQmxvY2txdW90ZUVsZW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxCb2R5RWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJ3ZWJraXQvV2ViS2l0SFRNTEJSRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJr
aXQvV2ViS2l0SFRNTEJ1dHRvbkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dl
YktpdEhUTUxDYW52YXNFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRI
VE1MRGlyZWN0b3J5RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRN
TERpdkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxETGlzdEVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxFbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MRW1iZWRFbGVtZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MRmllbGRTZXRFbGVtZW50UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MRm9udEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAi
d2Via2l0L1dlYktpdEhUTUxGb3JtRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQv
V2ViS2l0SFRNTEZyYW1lRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0
SFRNTEZyYW1lU2V0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRN
TEhlYWRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MSGVhZGlu
Z0VsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxIUkVsZW1lbnRQ
cml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxIdG1sRWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTElGcmFtZUVsZW1lbnRQcml2YXRlLmgiCisj
aW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxJbWFnZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVk
ZSAid2Via2l0L1dlYktpdEhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Vi
a2l0L1dlYktpdEhUTUxJc0luZGV4RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQv
V2ViS2l0SFRNTExhYmVsRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0
SFRNTExlZ2VuZEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxM
SUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxMaW5rRWxlbWVu
dFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTE1hcEVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxNYXJxdWVlRWxlbWVudFByaXZhdGUuaCIK
KyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTE1lbnVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgIndlYmtpdC9XZWJLaXRIVE1MTWV0YUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Vi
a2l0L1dlYktpdEhUTUxNb2RFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJL
aXRIVE1MT2JqZWN0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRN
TE9MaXN0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTE9wdEdy
b3VwRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTE9wdGlvbkVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxQYXJhZ3JhcGhFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MUGFyYW1FbGVtZW50UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MUHJlRWxlbWVudFByaXZhdGUuaCIK
KyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTFF1b3RlRWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJ3ZWJraXQvV2ViS2l0SFRNTFNjcmlwdEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAi
d2Via2l0L1dlYktpdEhUTUxTZWxlY3RFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtp
dC9XZWJLaXRIVE1MU3R5bGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJL
aXRIVE1MVGFibGVDYXB0aW9uRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2Vi
S2l0SFRNTFRhYmxlQ2VsbEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktp
dEhUTUxUYWJsZUNvbEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhU
TUxUYWJsZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxUYWJs
ZVJvd0VsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MVGV4dEFy
ZWFFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MVGl0bGVFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MVUxpc3RFbGVtZW50UHJp
dmF0ZS5oIgorCisjaW5jbHVkZSAiQ1N0cmluZy5oIgorI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEFwcGxldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXJl
YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
QmFzZUZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxCdXR0b25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxE
aXZFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZVNldEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZGlu
Z0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSFJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEh0
bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMYWJlbEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMSUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFwRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZW51
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxN
b2RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTE9iamVj
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT0xpc3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyYW1FbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUXVvdGVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2Vs
ZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJs
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxVTGlzdEVs
ZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6OkhUTUxOYW1lczsKKwordHlwZWRlZiBncG9pbnRl
ciAoKkNyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9uKShQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50Pik7CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVBbmNob3JXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MQW5jaG9yRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIGdwb2ludGVyIGNyZWF0ZUFwcGxldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxBcHBsZXRFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxBcHBsZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3Bv
aW50ZXIgY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gd3JhcEhUTUxBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQXJlYUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVCYXNl
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3
cmFwSFRNTEJhc2VFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCYXNlRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUJhc2VGb250V3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJhc2VG
b250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmFzZUZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxCbG9ja3F1
b3RlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmxvY2txdW90ZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVCb2R5V3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJvZHlFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxCb2R5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIGdwb2ludGVyIGNyZWF0ZUJSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQlJF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQnV0
dG9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biB3cmFwSFRNTEJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVDYW52YXNXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1M
Q2FudmFzRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVDb2xXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1M
VGFibGVDb2xFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNvbEVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVNb2RXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTW9kRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MTW9kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIGdwb2ludGVyIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxEaXJlY3RvcnlFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxEaXJlY3RvcnlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgZ3BvaW50ZXIgY3JlYXRlRGl2V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTERpdkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERp
dkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVE
TGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxETGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERMaXN0RWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUVtYmVkV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEVt
YmVkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRmllbGRTZXRXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRmllbGRTZXRFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxGaWVsZFNldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEZvbnRFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2lu
dGVyIGNyZWF0ZUZvcm1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIHdyYXBIVE1MRm9ybUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZvcm1FbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRnJhbWVX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdy
YXBIVE1MRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVGcmFtZVNldFdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxGcmFt
ZVNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0RWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSGVhZGluZ0Vs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRpbmdFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSGVhZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxIZWFkRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MSGVhZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9p
bnRlciBjcmVhdGVIUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gd3JhcEhUTUxIUkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhSRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUh0bWxXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1M
SHRtbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSUZyYW1lV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTElGcmFtZUVsZW1lbnQo
c3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBncG9pbnRlciBjcmVhdGVJbWFnZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxJbWFnZUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEltYWdlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVy
IGNyZWF0ZUlucHV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTElucHV0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSXNJbmRl
eFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4g
d3JhcEhUTUxJc0luZGV4RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSXNJbmRleEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVMYWJlbFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxM
YWJlbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUxlZ2VuZFdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxMZWdlbmRFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxMZWdlbmRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgZ3BvaW50ZXIgY3JlYXRlTElXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTElFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxM
SUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVM
aW5rV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biB3cmFwSFRNTExpbmtFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU1hcFdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxNYXBFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxNYXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgZ3BvaW50ZXIgY3JlYXRlTWFycXVlZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxNYXJxdWVlRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MTWFycXVlZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVNZW51V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreworICAgIHJldHVybiB3cmFwSFRNTE1lbnVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNZW51
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU1l
dGFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IHdyYXBIVE1MTWV0YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1ldGFFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlT2JqZWN0V3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE9iamVj
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVPTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxPTGlzdEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTE9MaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGlj
IGdwb2ludGVyIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE9wdEdyb3VwRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3Bv
aW50ZXIgY3JlYXRlT3B0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQoreworICAgIHJldHVybiB3cmFwSFRNTE9wdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9w
dGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVh
dGVQYXJhZ3JhcGhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIHdyYXBIVE1MUGFyYWdyYXBoRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYWdy
YXBoRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0
ZVBhcmFtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiB3cmFwSFRNTFBhcmFtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUGFyYW1FbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlUHJlV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFBy
ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFByZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9
CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVRdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxRdW90ZUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZVNjcmlwdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxTY3JpcHRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxT
Y3JpcHRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3Jl
YXRlU2VsZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiB3cmFwSFRNTFNlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVTdHlsZVdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3Jh
cEhUTUxTdHlsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRhYmxlV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRhYmxlRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGFibGVDZWxs
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRleHRBcmVhV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRleHRBcmVhRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGl0bGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGl0bGVFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVUYWJsZVJvd1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUYWJsZVJvd0VsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTFRhYmxlUm93RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2lu
dGVyIGNyZWF0ZVVMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTFVMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVUxpc3RF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitncG9pbnRlciBjcmVhdGVHRE9NSFRNTFdy
YXBwZXIoUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBz
dGF0aWMgSGFzaE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1l
bnRXcmFwcGVyRnVuY3Rpb24+IG1hcDsKKyAgICBpZiAobWFwLmlzRW1wdHkoKSkgeworICAgICAg
IG1hcC5zZXQoYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFuY2hvcldyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoYXBwbGV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXBwbGV0
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlQXJlYVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUJhc2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJhc2Vmb250VGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlQmFzZUZvbnRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJs
b2NrcXVvdGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCbG9ja3F1b3RlV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQm9keVdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVC
UldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlQnV0dG9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVDYW52YXNXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhcHRpb25U
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGNvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ29sV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChkZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRpclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZURpcmVjdG9yeVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGl2VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlRGl2V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkbFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZURMaXN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChlbWJlZFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUVtYmVkV3JhcHBlcik7CisgICAgICAgbWFwLnNldChm
aWVsZHNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRm9udFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoZm9ybVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZv
cm1XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlRnJhbWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lc2V0VGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVTZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgxVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoaGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGhyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSFJXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGh0bWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIdG1sV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJ
RnJhbWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGltZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZUlucHV0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChpc2luZGV4VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSXNJbmRleFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQobGFiZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVMYWJlbFdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQobGVnZW5kVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGVnZW5kV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChsaVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxJ
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsaW5rVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlTGlua1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWFwVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlTWFwV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXJxdWVlVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlTWFycXVlZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWVudVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1lbnVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KG1ldGFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChvYmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPYmplY3RXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KG9sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT0xpc3RX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlT3B0R3JvdXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZU9wdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQocFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFncmFwaFdyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQocGFyYW1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQYXJhbVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQocHJlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7
CisgICAgICAgbWFwLnNldChxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUXVvdGVXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHNjcmlwdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVNjcmlwdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2VsZWN0VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVN0eWxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0YWJs
ZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlV3JhcHBlcik7CisgICAgICAgbWFw
LnNldCh0Ym9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQodGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJs
ZUNlbGxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlVGV4dEFyZWFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRpdGxlVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGl0bGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRy
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVSb3dXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KHVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVUxpc3RXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGNvbGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVD
b2xXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDNUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg1VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoaDZUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChpbWFnZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChpbnNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNb2RX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGtleWdlblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVNlbGVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlzdGluZ1RhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGZvb3RUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KHRoVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDZWxsV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2Vj
dGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoeG1wVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlUHJlV3JhcHBlcik7CisgICAgfQorCisgICAgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVy
RnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0KKyAgICAgICAgbWFwLmdldChlbGVtZW50
LT5sb2NhbE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVhdGVXcmFwcGVyRnVuY3Rpb24pCisg
ICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24oZWxlbWVudCk7CisgICAgcmV0dXJu
IHdyYXBIVE1MRWxlbWVudChlbGVtZW50LmdldCgpKTsKK30KKworfQpJbmRleDogQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNpb24gNDE0NDMpCisrKyBDaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wMy0wNiAgTHVrZSBLZW5uZXRo
IENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAgICAgICAgICAgIE1hcnRpbiBTb3Rv
IDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAgICAgICAgICAgIEFkYW0gRGluZ2xlIDxhZGFtQHlv
cmJhLm9yZz4KKyAgICAgICAgICAgIEppbSBOZWxzb24gPGppbUB5b3JiYS5vcmc+CisgICAgICAg
IAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MDEK
KyAgICAgICAgW0dUS10gR09iamVjdC9DIERPTSBiaW5kaW5nCisKKyAgICAgICAgSW1wbGVtZW50
ZWQgR1RLIERPTSBiaW5kaW5nLgorICAgICAgICAKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToK
KwogMjAwOS0wMy0wMiAgWGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBNYXJrIFJvd2UuCkluZGV4OiBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNDE0NDMpCisr
KyBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDEw
IEBACiAKICMgR3RrTGF1bmNoZXIKIFByb2dyYW1zX0d0a0xhdW5jaGVyX0NQUEZMQUdTID0gXAor
CS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsg
XAogCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9n
dGsvd2Via2l0IFwKIAkkKGdsb2JhbF9jcHBmbGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3Bw
ZmxhZ3MpCiAKQEAgLTMxLDggKzMzLDEwIEBACiBQcm9ncmFtc19EdW1wUmVuZGVyVHJlZV9DUFBG
TEFHUyA9IFwKIAktSSQoc3JjZGlyKS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZSBcCiAJLUkk
KHNyY2RpcikvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrIFwKKwktSSQoc3JjZGlyKS9X
ZWJDb3JlL2JpbmRpbmdzIFwKIAktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKIAktSSQodG9wX2J1
aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJ
LURURVNUX1BMVUdJTl9ESVI9XCIke3NoZWxsIHB3ZH0vJHt0b3BfYnVpbGRkaXJ9L1Rlc3ROZXRz
Y2FwZVBsdWdpbi8ubGlic1wiIFwKIAkkKGdsb2JhbF9jcHBmbGFncykgXAogCSQoamF2YXNjcmlw
dGNvcmVfY3BwZmxhZ3MpCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MTQ0MykKKysrIFdlYktpdFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA5LTAzLTA2ICBM
dWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIE1p
bm9yIGNoYW5nZXMgZm9yIEdUSyBET00gYmluZGluZy4KKyAgICAgICAgICAgIAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MDEKKyAgICAgICAgW0dU
S10gR09iamVjdC9DIERPTSBiaW5kaW5nCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKwog
MjAwOS0wMy0wMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEpvaG4gU3VsbGl2YW4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29670</attachid>
            <date>2009-04-21 17:06:20 -0700</date>
            <delta_ts>2009-04-22 04:17:28 -0700</delta_ts>
            <desc>patch updated to revision 42662</desc>
            <filename>gtkdom.diff</filename>
            <type>text/plain</type>
            <size>115146</size>
            <attacher name="Adam Dingle">adam</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQyNjYy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDQt
MjEgIEFkYW0gRGluZ2xlIDxhZGFtQHlvcmJhLm9yZz4KKyAgICAgICAgICAgIEppbSBOZWxzb24g
PGppbUB5b3JiYS5vcmc+CisgICAgICAgICAgICBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3Rv
cC5vcmc+CisgICAgICAgICAgICBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxr
Y2wubmV0PgorICAgICAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjQwMQorICAgICAgICBbR1RLXSBHT2JqZWN0L0MgRE9NIGJpbmRpbmcK
KworICAgICAgICBJbXBsZW1lbnRlZCBHVEsgRE9NIGJpbmRpbmcuCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKwogMjAwOS0wNC0xNCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCB2ZXJzaW9uIGJ1bXAgaW4gcHJlcGFyYXRpb24gZm9yIDEu
MS41IHJlbGVhc2UuCkluZGV4OiBHTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBHTlVtYWtl
ZmlsZS5hbQkocmV2aXNpb24gNDI2NjIpCisrKyBHTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5
KQpAQCAtMzEsNiArMzEsNyBAQCBWUEFUSCA9IEBzcmNkaXJACiAKICMgRGlyZWN0b3J5IGZvciBh
dXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJDRVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2
ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR09CSkVDVCA6PSAkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNv
dXJjZXMvd2Via2l0CiBHRU5QUk9HUkFNUyA6PSAkKHRvcF9idWlsZGRpcikvUHJvZ3JhbXMKIAog
IyBTY3JpcHQgZm9yIGNyZWF0aW5nIGhhc2ggdGFibGVzCkBAIC0xMTAsNyArMTExLDggQEAgamF2
YXNjcmlwdGNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzIFwKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIgXAog
CS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3JlL3d0ZiBcCi0JLUkkKHRvcF9idWlsZGRpcikvRGVy
aXZlZFNvdXJjZXMKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcyBcCisJLUkkKHNy
Y2RpcikvV2ViQ29yZS9iaW5kaW5ncy93ZWJraXQKIAogIyBUaGUgdmFyaWFibGVzIGFib3ZlIGFy
ZSBhbHJlYWR5IGluY2x1ZGVkIGJlbG93IHNvIG5vIG5lZWQgdG8gdG91Y2gKICMgdGhlc2UgdmFy
aWFibGVzIHVubGVzcyB5b3UgcmVhbGx5IGhhdmUgdG8KQEAgLTE1Nyw2ICsxNTksMTEgQEAgd2Vi
Y29yZV9kaXN0IDo9CiB3ZWJjb3JlZ3RrX2NwcGZsYWdzIDo9CiB3ZWJjb3JlZ3RrX3NvdXJjZXMg
Oj0KIAord2ViY29yZWd0a19jcHBmbGFncyArPSBcCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZl
ZFNvdXJjZXMvd2Via2l0IFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzIFwKKwktSSQo
c3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QKKwogbm9kaXN0X0VYVFJBX2xpYldlYkNv
cmVfbGFfU09VUkNFUyA9IFwKIAkkKHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzKQogCkBAIC0yMDAs
NiArMjA3LDcgQEAgbGliV2ViQ29yZV9sYV9DUFBGTEFHUyA9IFwKIGxpYldlYkNvcmVfbGFfTElC
QUREID0gXAogCWxpYkphdmFTY3JpcHRDb3JlLmxhIFwKIAlsaWJXZWJDb3JlSlMubGEgXAorCWxp
YmdvYmplY3QubGEgXAogCSQod2ViY29yZV9saWJhZGQpIFwKIAkkKEdMSUJfTElCUykgXAogCSQo
TElCWE1MX0xJQlMpIFwKQEAgLTIxOSw2ICsyMjcsMTAgQEAgbGliV2ViQ29yZV9sYV9MSUJBREQg
PSBcCiAJJChHRU9DTFVFX0xJQlMpIFwKIAktbHB0aHJlYWQKIAorbGliZ29iamVjdF9sYWRpciA9
ICQocHJlZml4KS9pbmNsdWRlL3dlYmtpdC0xLjAvd2Via2l0CitsaWJnb2JqZWN0X2xhX0hFQURF
UlMgPSBcCisgICAgICAgICQobGliZ29iamVjdF9oX2FwaSkKKwogIyBXZWJLaXQKIHdlYmtpdGd0
a19oX2FwaSA6PQogd2Via2l0Z3RrX3NvdXJjZXMgOj0KQEAgLTM2OCwxMiArMzgwLDE0IEBAIHdl
YmtpdGd0a19jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHNy
Y2RpcikvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydCBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0
ay93ZWJraXQgXAotCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0CisJLUkkKHRv
cF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQgXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2
ZWRTb3VyY2VzCiAKIHdlYmtpdGd0a19jbGVhbmZpbGVzICs9IFwKIAkkKHRvcF9idWlsZGRpcikv
UHJvZ3JhbXMvR3RrTGF1bmNoZXIgXAogCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtp
dC0xLjAucGMgXAotCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlbnVt
dHlwZXMuaAorCSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlbnVtdHlw
ZXMuaCBcCisJJCh0b3BfYnVpbGRkaXIpL2xpYmdvYmplY3QubGEKIAogcGtnY29uZmlnZGlyID0g
JChsaWJkaXIpL3BrZ2NvbmZpZwogcGtnY29uZmlnX0RBVEEgPSBXZWJLaXQvZ3RrL3dlYmtpdC0x
LjAucGMKQEAgLTQ0OSw2ICs0NjMsNTIgQEAgRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51bXR5cGVz
LmNwcDogJCh3ZQogCSYmIGNwIHhnZW4tZ3RjICRAIFwKIAkmJiBybSAtZiB4Z2VuLWd0YwogCitX
ZWJLaXQvZ3RrL3dlYmtpdC9nZG9tZW51bXR5cGVzLmg6IHN0YW1wLWdkb21lbnVtdHlwZXMuaAor
CUB0cnVlCitzdGFtcC1nZG9tZW51bXR5cGVzLmg6ICQobGliZ2RvbV9oX2FwaSkgR05VbWFrZWZp
bGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVhZCAiI2lm
bmRlZiBHRE9NX0VOVU1fVFlQRVNfSFxuIiBcCisJCQktLWZoZWFkICIjZGVmaW5lIEdET01fRU5V
TV9UWVBFU19IXG5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+XG5c
biIgXAorCQkJLS1maGVhZCAiR19CRUdJTl9ERUNMU1xuXG4iIFwKKwkJCS0tZnRhaWwgIkdfRU5E
X0RFQ0xTXG5cbiIgXAorCQkJLS1mdGFpbCAiI2VuZGlmXG4iIFwKKwkJCS0tZnByb2QgIiNpbmNs
dWRlIDxAZmlsZW5hbWVAPlxuXG4iIFwKKwkJCS0tZXByb2QgIiNkZWZpbmUgR0RPTV9UWVBFX0BF
TlVNU0hPUlRAIEBlbnVtX25hbWVAX2dldF90eXBlKClcblxuIiBcCisJCQktLWVwcm9kICJXRUJL
SVRfQVBJIEdUeXBlXG5AZW51bV9uYW1lQF9nZXRfdHlwZSh2b2lkKTtcblxuIiBcCisJCQkkKGxp
Ymdkb21faF9hcGkpIHwgXAorCQkJc2VkICdzLFdlYktpdC9ndGsvLCwnIHwgXAorCQlzZWQgJ3Ms
d2ViX2tpdCxnZG9tLCcgfCBcCisJCXNlZCAncyxHRE9NX1RZUEVfS0lULEdET01fVFlQRSwnIFwK
KwkJKSA+IHhnZW4tY2d0aCBcCisJJiYgKGNtcCAtcyB4Z2VuLWNndGggV2ViS2l0L2d0ay93ZWJr
aXQvZ2RvbWVudW10eXBlcy5oIHx8IGNwIHhnZW4tY2d0aCBXZWJLaXQvZ3RrL3dlYmtpdC9nZG9t
ZW51bXR5cGVzLmgpIFwKKwkmJiBybSAtZiB4Z2VuLWNndGggXAorCSYmIGVjaG8gdGltZXN0YW1w
ID4gJChARikKKworRGVyaXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5jcHA6ICQobGliZ2RvbV9o
X2FwaSkgR05VbWFrZWZpbGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAor
CQkJLS1maGVhZCAiI2luY2x1ZGUgPGNvbmZpZy5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgXCIkKHRvcF9idWls
ZGRpcikvV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oXCJcblxuIiBcCisJCQktLWZo
ZWFkICJleHRlcm4gXCJDXCIge1xuXG4iIFwKKwkJCS0tZnByb2QgIlxuLyogZW51bWVyYXRpb25z
IGZyb20gXCJAZmlsZW5hbWVAXCIgKi8iIFwKKwkJCS0tdmhlYWQgInN0YXRpYyBjb25zdCBHQFR5
cGVAVmFsdWUgX0BlbnVtX25hbWVAX3ZhbHVlc1tdID0geyIgXAorCQkJLS12cHJvZCAiICAgIHsg
QFZBTFVFTkFNRUAsIFwiQFZBTFVFTkFNRUBcIiwgXCJAdmFsdWVuaWNrQFwiIH0sIiBcCisJCQkt
LXZ0YWlsICIgICAgeyAwLCBOVUxMLCBOVUxMIH1cbn07XG5cbiIgXAorCQkJLS12dGFpbCAiR1R5
cGUgQGVudW1fbmFtZUBfZ2V0X3R5cGUodm9pZClcbntcbiIgXAorCQkJLS12dGFpbCAiICAgIHN0
YXRpYyBHVHlwZSB0eXBlID0gMDtcblxuIiBcCisJCQktLXZ0YWlsICIgICAgaWYgKCF0eXBlKVxu
IiBcCisJCQktLXZ0YWlsICIgICAgICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMo
XCJARW51bU5hbWVAXCIsIF9AZW51bV9uYW1lQF92YWx1ZXMpO1xuXG4iIFwKKwkJCS0tdnRhaWwg
IiAgICByZXR1cm4gdHlwZTtcbn1cblxuIiBcCisJCQktLWZ0YWlsICJ9XG4iIFwKKwkJJChsaWJn
ZG9tX2hfYXBpKSB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIFwKKwkJKSA+IHhnZW4tY2d0
YyBcCisJJiYgY3AgeGdlbi1jZ3RjICRAIFwKKwkmJiBybSAtZiB4Z2VuLWNndGMKKwogIyBFTkQg
V0VCS0lUIEdUSysKICMKICMgRmlsZXMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkCkBAIC00OTAs
NiArNTUwLDcgQEAgd2Via2l0X3Rlc3RzX2NmbGFncyA9IFwKIAkkKGdsb2JhbF9jZmxhZ3MpIFwK
IAkkKEdMSUJfQ0ZMQUdTKSBcCiAJJChHVEtfQ0ZMQUdTKSBcCisJJCh3ZWJraXRndGtfY3BwZmxh
Z3MpIFwKIAkkKExJQlNPVVBfQ0ZMQUdTKQogCiB3ZWJraXRfdGVzdHNfbGRhZGQgPSBcCkBAIC01
MjcsNyArNTg4LDggQEAgQlVJTFRfU09VUkNFUyA6PSBcCiAJJCh3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMpIFwKIAkkKHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzKSBcCiAJJCh3ZWJraXRndGtfYnVpbHRf
c291cmNlcykgXAotCSQod2Via2l0Z3RrX2J1aWx0X25vc291cmNlcykKKwkkKHdlYmtpdGd0a19i
dWlsdF9ub3NvdXJjZXMpIFwKKwkkKGdvYmplY3RfYnVpbHRfbm9zb3VyY2VzKQogCiAjIFByb2pl
Y3Qtd2lkZSBjbGVhbiBydWxlcwogQ0xFQU5GSUxFUyArPSBcCkBAIC01NjQsNCArNjI2LDQgQEAg
aW5zdGFsbC1kYXRhLWxvY2FsOiBwby1pbnN0YWxsLWRhdGEtbG9jYQogCiBpbnN0YWxsZGlycy1k
YXRhLWxvY2FsOiBwby1pbnN0YWxsZGlycy1kYXRhLWxvY2FsCiAKLXVuaW5zdGFsbC1sb2NhbDog
cG8tdW5pbnN0YWxsLWxvY2FsClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQordW5pbnN0YWxs
LWxvY2FsOiBwby11bmluc3RhbGwtbG9jYWwKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0MjY2MikKKysrIFdlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDktMDQtMjEgIEFk
YW0gRGluZ2xlIDxhZGFtQHlvcmJhLm9yZz4KKyAgICAgICAgICAgIEppbSBOZWxzb24gPGppbUB5
b3JiYS5vcmc+CisgICAgICAgICAgICBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+
CisgICAgICAgICAgICBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0
PgorICAgICAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjQwMQorICAgICAgICBbR1RLXSBHT2JqZWN0L0MgRE9NIGJpbmRpbmcKKworICAg
ICAgICBJbXBsZW1lbnRlZCBHVEsgRE9NIGJpbmRpbmcuCisgICAgICAgICAgICAKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0OiBBZGRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU9iamVjdC5jcHA6IEFkZGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL2dvYmplY3QvZ3N0cmluZ2NvbnZlcnQuaDogQWRkZWQuCisgICAgICAgIChn
ZG9tX2dzdHJpbmdfY29udmVydCk6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC93ZWJraXRi
aW5kaW5nLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmRvbU9iamVjdHMpOgorICAgICAg
ICAoV2ViS2l0OjpHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdCk6CisgICAgICAgIChXZWJL
aXQ6OkdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6R0RP
TU9iamVjdENhY2hlOjpmb3JnZXRET01PYmplY3QpOgorICAgICAgICAoV2ViS2l0Ojp0b0dET00p
OgorICAgICAgICAoV2ViS2l0Ojp0b0dET01OZXdseUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0
OjpjcmVhdGVXcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L3dlYmtpdGJpbmRp
bmcuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC93ZWJraXRodG1sZWxlbWVu
dHdyYXBwZXJmYWN0b3J5LmNwcDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC93
ZWJraXRodG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG06IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5wbDogQWRkZWQuCisgICAgICAgICogZG9t
L0tleWJvYXJkRXZlbnQuaWRsOgorCiAyMDA5LTA0LTE5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShy
ZXZpc2lvbiA0MjY2MikKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkK
QEAgLTEsNyArMSw3IEBACiAKIFdlYkNvcmUgOj0gJChzcmNkaXIpL1dlYkNvcmUKIAotRkVBVFVS
RV9ERUZJTkVTX0pBVkFTQ1JJUFQgOj0gTEFOR1VBR0VfSkFWQVNDUklQVD0xCitGRUFUVVJFX0RF
RklORVMgOj0KIFNWR19GRUFUVVJFUyA6PQogSFRNTF9GRUFUVVJFUyA6PQogCkBAIC05LDcgKzks
MTEgQEAgV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFNRVMgOj0gJChXZWJDb3JlKQogV0VCQ09SRV9D
U1NfVkFMVUVfS0VZV09SRFMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgog
CiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQo
c3JjZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQv
Z3RrL3dlYmtpdCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZSBcCisJLUkkKHNyY2RpcikvV2ViQ29y
ZS9iaW5kaW5ncy9nb2JqZWN0IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwK
IAktSSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9icmlk
Z2UvYyBcCkBAIC01Nyw2ICs2MSw3IEBAIHdlYmNvcmVfYnVpbHRfbm9zb3VyY2VzICs9IFwKIAlE
ZXJpdmVkU291cmNlcy9Eb2NUeXBlU3RyaW5ncy5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3Rva2Vu
aXplci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0NvbG9yRGF0YS5jIFwKKwlEZXJpdmVkU291cmNl
cy93ZWJraXQvd2Via2l0ZG9tZHVtbXkuYyBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UubHV0LmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5sdXQuaAog
CkBAIC0yNDIsNiArMjQ3LDE0IEBAIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS94bWwvWE1M
U2VyaWFsaXplci5pZGwgXAogCVdlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3IuaWRsCiAKK3dlYmNv
cmVndGtfc291cmNlcyArPSBcCisJV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L3dlYmtpdGJpbmRp
bmcuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0YmluZGluZy5oIFwKKwlX
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NT2JqZWN0LmNwcCBcCisJV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L1dlYktpdERPTU9iamVjdC5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3Qvd2Via2l0aHRtbGVsZW1lbnR3cmFwcGVyZmFjdG9yeS5jcHAgXAorCVdlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC93ZWJraXRodG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmggCisKIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9XZWJDb3JlUHJlZml4LmggXAogCVdlYkNvcmUvYmlu
ZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCkBAIC0xODkxLDcgKzE5MDQs
NyBAQCBlbmRpZiAjIEVORCBVU0VfUEFOR08KICMgT2ZmbGluZSBXZWIgQXBwbGljYXRpb25zCiAj
IC0tLS0KIGlmIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKLUZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQorRkVBVFVS
RV9ERUZJTkVTICs9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MQogCiBJRExfQklO
RElOR1MgKz0gXAogCVdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUu
aWRsCkBAIC0xOTMyLDcgKzE5NDUsNyBAQCBlbmRpZiAjIEVORCBFTkFCTEVfREFTSEJPQVJEX1NV
UFBPUlQKICMgRGF0YWJhc2UgU3VwcG9ydAogIyAtLS0tCiBpZiBFTkFCTEVfREFUQUJBU0UKLUZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9EQVRBQkFTRT0xCitGRUFUVVJFX0RF
RklORVMgKz0gRU5BQkxFX0RBVEFCQVNFPTEKIAogSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2UuaWRsIFwKQEAgLTIwMDUsNyArMjAxOCw3IEBAIGVuZGlmICMgRU5E
IEVOQUJMRV9EQVRBQkFTRQogIyBIVE1MNSBjbGllbnQtc2lkZSBzZXNzaW9uIGFuZCBwZXJzaXN0
ZW50IHN0b3JhZ2UKICMgLS0tLQogaWYgRU5BQkxFX0RPTV9TVE9SQUdFCi1GRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfRE9NX1NUT1JBR0U9MQorRkVBVFVSRV9ERUZJTkVTICs9
IEVOQUJMRV9ET01fU1RPUkFHRT0xCiAKIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9y
YWdlL1N0b3JhZ2UuaWRsIFwKQEAgLTIwNjQsNyArMjA3Nyw3IEBAIGVuZGlmICMgRU5EIEVOQUJM
RV9JQ09OREFUQUJBU0UKICMgVmlkZW8gU3VwcG9ydAogIyAtLS0tCiBpZiBFTkFCTEVfVklERU8K
LUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9WSURFTz0xCitGRUFUVVJFX0RF
RklORVMgKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklERU89
MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMTE1LDcgKzIxMjgs
NyBAQCBlbmRpZiAjIEVORCBFTkFCTEVfVklERU8KICMgWFBhdGggU3VwcG9ydAogIyAtLS0tCiBp
ZiBFTkFCTEVfWFBBVEgKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YUEFU
SD0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1hQQVRIPTEKIAogd2ViY29yZV9jcHBmbGFn
cyArPSAtREVOQUJMRV9YUEFUSD0xCiAKQEAgLTIxODUsNyArMjE5OCw3IEBAIGVuZGlmICMgRU5E
IEVOQUJMRV9YUEFUSAogIyBYU0xUIFN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxFX1hTTFQKLUZF
QVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9YU0xUPTEKK0ZFQVRVUkVfREVGSU5F
UyArPSBFTkFCTEVfWFNMVD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFNMVD0x
CiAKQEAgLTIyMDYsNyArMjIxOSw3IEBAIGVuZGlmICMgRU5EIEVOQUJMRV9YU0xUCiAjIFdlYiBX
b3JrZXJzIHN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxFX1dPUktFUlMKLUZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9XT1JLRVJTPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFC
TEVfV09SS0VSUz0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1ERU5BQkxFX1dPUktFUlM9
MQpAQCAtMjI0OCw3ICsyMjYxLDcgQEAgZW5kaWYKICMgV01MIFN1cHBvcnQKICMgLS0tLQogaWYg
RU5BQkxFX1dNTAotRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1dNTD0xCitG
RUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1dNTD0xCiAKIHdlYmNvcmVfYnVpbHRfc291cmNlcyAr
PSBcCiAJRGVyaXZlZFNvdXJjZXMvV01MRWxlbWVudEZhY3RvcnkuY3BwIFwKQEAgLTIzMDcsNyAr
MjMyMCw3IEBAIGVuZGlmICMgRU5EIEVOQUJMRV9XTUwKICMgLS0tLQogaWYgRU5BQkxFX0dFT0xP
Q0FUSU9OCiAKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9HRU9MT0NBVElP
Tj0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX0dFT0xPQ0FUSU9OPTEKIHdlYmNvcmVfY3Bw
ZmxhZ3MgKz0gXAogCS1ERU5BQkxFX0dFT0xPQ0FUSU9OPTEKIApAQCAtMjMyMyw3ICsyMzM2LDcg
QEAgZW5kaWYgIyBFTkQgRU5BQkxFX0dFT0xPQ0FUSU9OCiAjIEZJWE1FOiBhbGxvdyBhIG1vcmUg
ZmluZS1ncmFpbmVkIGluY2x1c2lvbi9nZW5lcmF0aW9uIG9mIHNvdXJjZXMgcGVyIFNWRyBmZWF0
dXJlCiAjIC0tLS0KIGlmIEVOQUJMRV9TVkcKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9
IEVOQUJMRV9TVkc9MQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9TVkc9MQogCiBXRUJDT1JF
X0NTU19QUk9QRVJUWV9OQU1FUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVz
LmluIAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMgKz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NT
VmFsdWVLZXl3b3Jkcy5pbgpAQCAtMjkwNywzNyArMjkyMCwzNyBAQCB3ZWJjb3JlZ3RrX3NvdXJj
ZXMgKz0gXAogCiAjIFNWRyBGZWF0dXJlcwogaWYgRU5BQkxFX1NWR19VU0UKLUZFQVRVUkVfREVG
SU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfVVNFPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBF
TkFCTEVfU1ZHX1VTRT0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19VU0U9MQogd2ViY29y
ZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfVVNFPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdf
Rk9SRUlHTl9PQkpFQ1QKLUZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdf
Rk9SRUlHTl9PQkpFQ1Q9MQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9P
QkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogd2Vi
Y29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogZW5kaWYKIAog
aWYgRU5BQkxFX1NWR19GT05UUwotRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19GT05UUz0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiBTVkdf
RkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5B
QkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0ZJTFRFUlMKLUZFQVRVUkVf
REVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkdfRklMVEVSUz0xCitGRUFUVVJFX0RFRklO
RVMgKz0gRU5BQkxFX1NWR19GSUxURVJTPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0ZJ
TFRFUlM9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRklMVEVSUz0xCiBlbmRp
ZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCAr
PSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfU1ZHX0FT
X0lNQUdFPTEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdlYmNvcmVf
Y3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9T
VkdfQU5JTUFUSU9OCi1GRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FO
SU1BVElPTj0xCitGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogU1ZH
X0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0g
LURFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpAQCAtMzA3Niw3ICszMDg5LDcgQEAgRGVy
aXZlZFNvdXJjZXMvSlMlLmg6IERlcml2ZWRTb3VyY2VzL0pTJQogCiAuU0VDT05EQVJZOgogRGVy
aXZlZFNvdXJjZXMvSlMlLmNwcDogJS5pZGwgJChTQ1JJUFRTX0JJTkRJTkdTKSAkKFdlYkNvcmUp
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCi0JJChQRVJMKSAtSSQoV2ViQ29y
ZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUt
YmluZGluZ3MucGwgJChJRExfUEFUSDolPS0taW5jbHVkZSAiJSIpIC0tb3V0cHV0RGlyICIkKEdF
TlNPVVJDRVMpIiAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQpIiAtLWdl
bmVyYXRvciBKUyAkPAorCSQoUEVSTCkgLUkkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMgJChX
ZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsICQoSURMX1BBVEg6
JT0tLWluY2x1ZGUgIiUiKSAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTKSIgLS1kZWZpbmVzICJM
QU5HVUFHRV9KQVZBU0NSSVBUPTEgJChGRUFUVVJFX0RFRklORVMpIiAtLWdlbmVyYXRvciBKUyAk
PAogCiBJRExfQklORElOR1NfSlNfUFVSRSA6PSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVD
b250cm9sLmlkbCBcCkBAIC0zMTE2LDYgKzMxMjksODEgQEAgJChsaWJXZWJDb3JlSlNfb2JqZWN0
cyk6IEFNX0NYWEZMQUdTKz0kKAogbGliV2ViQ29yZUpTLmxhOiAkKGxpYldlYkNvcmVKU19vYmpl
Y3RzKQogCSQoQ1hYTElOSykgJChsaWJXZWJDb3JlSlNfb2JqZWN0cykgJChMSUJTKQogCisjIFRo
aXMgZHVtbXkgZmlsZSBjYXVzZXMgY29uZmlndXJlIHRvIGdlbmVyYXRlIHRoZSBEZXJpdmVkU291
cmNlcy93ZWJraXQvLmRlcHMgZGlyZWN0b3J5LCB3aGljaCBtdXN0CisjIGV4aXN0IGZvciB1cyB0
byBiZSBhYmxlIHRvIGJ1aWxkIG90aGVyIHNvdXJjZXMgaW4gRGVyaXZlZFNvdXJjZXMvd2Via2l0
IHdpdGggZHluYW1pY2FsbHkgZ2VuZXJhdGVkCisjIG5hbWVzLgorRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L3dlYmtpdGRvbWR1bW15LmM6CisJZWNobyA+ICRACisKKyMgQmVjYXVzZSBXZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvV2ViS2l0RE9NT2JqZWN0LmggaXMgc3RhdGljIHNvdXJjZSBidXQgaXMg
YWxzbyBhIGRpc3RyaWJ1dGVkIGhlYWRlcgorIyByZXF1aXJlZCBieSBvdGhlciBkaXN0cmlidXRl
ZCBoZWFkZXJzIChib3RoIHN0YXRpYyBhbmQgYXV0by1nZW5lcmF0ZWQpLCBuZWVkIHRvIG1vdmUg
dGhpcyB0byB0aGUKKyMgRGVyaXZlZFNvdXJjZXMvd2Via2l0IGRpcmVjdG9yeS4gIFRoZSByZWFz
b24gaXMgdGhhdCB3ZSB3YW50IGFsbCBoZWFkZXIgZmlsZXMgZGlzdHJpYnV0ZWQgaW4gdGhlCisj
IGluY2x1ZGUvd2Via2l0LXgueS93ZWJraXQgZGlyZWN0b3J5LCBidXQgZG8gbm90IHdhbnQgdG8g
bmFtZSB0aGUgV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0IGRpcmVjdG9yeSAKKyMgIndlYmtpdCIs
IGFzIHRoYXQncyBhIGJpdCBwcmVzdW1wdHVvdXMgZm9yIGEgR1RLIGJpbmRpbmcuCiskKHRvcF9i
dWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTU9iamVjdC5oOgorCWNwIC1m
ICQoV2ViQ29yZSkvYmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuaCAkQAorCisjIEJp
bmRpbmdzIGF1dG9nZW5lcmF0ZWQgaW4gR09iamVjdCwgYnV0IG5vdCBpbiBKUy4KK0lETF9CSU5E
SU5HU19HT0JKRUNUX0VYVFJBIDo9IFwKKwlXZWJDb3JlL2h0bWwvQ2FudmFzUGl4ZWxBcnJheS5p
ZGwKKworIyBCaW5kaW5ncyBhdXRvZ2VuZXJhdGVkIGluIEpTLCBidXQgbm90IGluIEdPYmplY3Qu
CitJRExfQklORElOR1NfR09CSkVDVF9NSU5VUyA6PSAKKworIyBBbGwgSURMIGZpbGVzIHVzZWQg
Zm9yIGF1dG9nZW5lcmF0aW9uIGluIEdPYmplY3QuICBXZSBmaWx0ZXIgb3V0IFNWRyBhbmQgZXZl
bnRzIGZvciBub3cuCitJRExfQklORElOR1NfR09CSkVDVCA6PSAkKGZpbHRlci1vdXQgJChJRExf
QklORElOR1NfR09CSkVDVF9NSU5VUykgV2ViQ29yZS9zdmclIFdlYkNvcmUvZG9tL0V2ZW50JS5p
ZGwgV2ViQ29yZS8lRXZlbnQuaWRsLCBcCisgICAgICAgICAgICAgICAgICAgICAgICQoSURMX0JJ
TkRJTkdTKSAkKElETF9CSU5ESU5HU19HT0JKRUNUX0VYVFJBKSkKKworIyBBbGwgY2xhc3NlcyBh
dXRvZ2VuZXJhdGVkIGluIEdPYmplY3QuCitHT0JKRUNUX0FVVE9fQ0xBU1NFUyA6PSAkKGJhc2Vu
YW1lICQobm90ZGlyICQoSURMX0JJTkRJTkdTX0dPQkpFQ1QpKSkKKworIyBDbGFzc2VzIHdoaWNo
IHdlJ3ZlIGNvZGVkIGJ5IGhhbmQuCitHT0JKRUNUX0ZJWEVEX0NMQVNTRVMgOj0gRE9NT2JqZWN0
CisKK0dPQkpFQ1RfQ0xBU1NFUyA6PSAkKEdPQkpFQ1RfQVVUT19DTEFTU0VTKSAkKEdPQkpFQ1Rf
RklYRURfQ0xBU1NFUykKKworIyBGaWx0ZXIgb3V0IFNWRyBmb3Igbm93LgorRkVBVFVSRV9ERUZJ
TkVTX0dPQkpFQ1QgOj0gJChmaWx0ZXItb3V0IEVOQUJMRV9TVkclLCAkKEZFQVRVUkVfREVGSU5F
UykpCisKKyMgQXV0b2dlbmVyYXRlZCBoZWFkZXIgZmlsZXMuCitHT0JKRUNUX0hFQURFUlNfQlVJ
TFQgOj0gJChwYXRzdWJzdCAlLERlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXQlLmgsICQoR09C
SkVDVF9BVVRPX0NMQVNTRVMpKSBcCisgICAgICAgICAgICAgICAgICAgICAkKHRvcF9idWlsZGRp
cikvRGVyaXZlZFNvdXJjZXMvd2Via2l0L3dlYmtpdGRvbS5oIFwKKyAgICAgICAgICAgICAgICAg
ICAgICQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy93ZWJraXQvd2Via2l0ZG9tZGVmaW5l
cy5oIFwKKyAgICAgICAgICAgICAgICAgICAgICQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNl
cy93ZWJraXQvV2ViS2l0RE9NT2JqZWN0LmgKKworIyBBdXRvZ2VuZXJhdGVkIHNvdXJjZSBmaWxl
cy4KK0dPQkpFQ1RfU09VUkNFU19CVUlMVCA6PSAkKHBhdHN1YnN0ICUsRGVyaXZlZFNvdXJjZXMv
d2Via2l0L1dlYktpdCUuY3BwLCAkKEdPQkpFQ1RfQVVUT19DTEFTU0VTKSkKKworIyBIYW5kLWNv
ZGVkIGhlYWRlciBmaWxlcy4KK0dPQkpFQ1RfSEVBREVSU19GSVhFRCA6PSAkKHBhdHN1YnN0ICUs
ICQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0JS5oLCAkKEdPQkpFQ1Rf
RklYRURfQ0xBU1NFUykpCisKKyMgQWxsIGhlYWRlciBmaWxlcyB0aGF0IGdldCBpbnN0YWxsZWQu
CitsaWJnb2JqZWN0X2hfYXBpIDo9ICQoR09CSkVDVF9IRUFERVJTX0ZJWEVEKSAkKEdPQkpFQ1Rf
SEVBREVSU19CVUlMVCkKKworRGVyaXZlZFNvdXJjZXMvd2Via2l0L3dlYmtpdGRvbS5oOiAkKFdl
YkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5wbAorCWVjaG8gJChHT0JK
RUNUX0NMQVNTRVMpIHwgJChQRVJMKSAkPCB3ZWJraXRkb20gPiAkQAorCitEZXJpdmVkU291cmNl
cy93ZWJraXQvd2Via2l0ZG9tZGVmaW5lcy5oOiAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMv
Z29iamVjdC1nZW5lcmF0ZS5wbAorCWVjaG8gJChHT0JKRUNUX0NMQVNTRVMpIHwgJChQRVJMKSAk
PCBkZWZpbmVzID4gJEAKKworRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdCUuaDogRGVyaXZl
ZFNvdXJjZXMvd2Via2l0L1dlYktpdCUuY3BwOworCitEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0JS5jcHA6ICUuaWRsICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmlu
ZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGlu
Z3MucGwgLS1pbmNsdWRlICQoV2ViQ29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUpL2h0bWwg
LS1pbmNsdWRlICQoV2ViQ29yZSkvY3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2UgLS1pbmNs
dWRlICQoV2ViQ29yZSkveG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1dERpciAi
JChHRU5TT1VSQ0VTR09CSkVDVCkiIC0tZGVmaW5lcyAiTEFOR1VBR0VfR09CSkVDVD0xICQoRkVB
VFVSRV9ERUZJTkVTX0dPQkpFQ1QpIiAtLWdlbmVyYXRvciBHT2JqZWN0ICQ8CisKK2dvYmplY3Rf
YnVpbHRfbm9zb3VyY2VzIDo9ICQoR09CSkVDVF9IRUFERVJTX0JVSUxUKSAkKEdPQkpFQ1RfU09V
UkNFU19CVUlMVCkKKworbGliZ29iamVjdF9vYmplY3RzIDo9ICQoc3Vic3QgLmNwcCwubG8sJChH
T0JKRUNUX1NPVVJDRVNfQlVJTFQpKQorCistaW5jbHVkZSBXZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvJChERVBESVIpLyUuUGxvCistaW5jbHVkZSBEZXJpdmVkU291cmNlcy93ZWJraXQvJChERVBE
SVIpLyUuUGxvCisKKyQobGliZ29iamVjdF9vYmplY3RzKTogQU1fQ1BQRkxBR1MrPSQobGliV2Vi
Q29yZV9sYV9DUFBGTEFHUykKKworJChsaWJnb2JqZWN0X29iamVjdHMpOiBBTV9DWFhGTEFHUys9
JChsaWJXZWJDb3JlX2xhX0NYWEZMQUdTKQorCitsaWJnb2JqZWN0LmxhOiAkKGxpYmdvYmplY3Rf
b2JqZWN0cykKKwkkKENYWExJTkspICQobGliZ29iamVjdF9vYmplY3RzKSAkKExJQlMpCiAKIG5v
aW5zdF9IRUFERVJTICs9IFwKIAkkKElETF9CSU5ESU5HUykKQEAgLTMxMzIsNiArMzIyMCw3IEBA
IHdlYmNvcmVfZGlzdCArPSBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0luRmlsZXNQYXJz
ZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCBc
CiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBcCisJV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIFwKIAlXZWJDb3JlL2Nz
cy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1aXJrcy5jc3MgXAogCVdlYkNvcmUvY3NzL3Zp
ZXctc291cmNlLmNzcyBcCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0RE9N
T2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvV2ViS2l0
RE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9X
ZWJLaXRET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0
b3Aub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICovCisKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJ3ZWJraXRiaW5kaW5nLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NT2JqZWN0Lmgi
CisKK2V4dGVybiAiQyIgeworCitHX0RFRklORV9UWVBFKFdlYktpdERPTU9iamVjdCwgd2Via2l0
X2RvbV9vYmplY3QsIEdfVFlQRV9PQkpFQ1QpOworCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX29i
amVjdF9pbml0KFdlYktpdERPTU9iamVjdCogcmVxdWVzdCkKK3sKK30KKworc3RhdGljIHZvaWQg
d2Via2l0X2RvbV9vYmplY3RfY2xhc3NfaW5pdChXZWJLaXRET01PYmplY3RDbGFzcyogcmVxdWVz
dENsYXNzKQoreworfQorCit9IC8qIGV4dGVybiAiQyIgKi8KKwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L1dlYktpdERPTU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9XZWJLaXRET01PYmplY3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExl
aWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3Rv
IDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIg
PGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworCisjaWZuZGVmIFdlYktpdERPTU9iamVjdF9oCisjZGVmaW5lIFdlYktp
dERPTU9iamVjdF9oCisKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIndlYmtp
dC93ZWJraXRkb21kZWZpbmVzLmgiCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4K
KworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9UWVBFX0RPTV9PQkpFQ1QgICAgICAg
ICAgICAod2Via2l0X2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9P
QkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwg
V0VCS0lUX1RZUEVfRE9NX09CSkVDVCwgV2ViS2l0RE9NT2JqZWN0KSkKKyNkZWZpbmUgV0VCS0lU
X0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfRE9NX09CSkVDVCwgV2ViS2l0RE9NT2JqZWN0Q2xhc3MpKQorI2Rl
ZmluZSBXRUJLSVRfSVNfRE9NX09CSkVDVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNU
QU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9ET01fT0JKRUNUKSkKKyNkZWZpbmUgV0VCS0lU
X0lTX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCAgV0VCS0lUX1RZUEVfRE9NX09CSkVDVCkpCisjZGVmaW5lIFdFQktJVF9ET01fT0JKRUNU
X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJ
VF9UWVBFX0RPTV9PQkpFQ1QsIFdlYktpdERPTU9iamVjdENsYXNzKSkKKworc3RydWN0IF9XZWJL
aXRET01PYmplY3QgeworICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAgdm9pZCAq
Y29yZU9iamVjdDsKK307CisKK3N0cnVjdCBfV2ViS2l0RE9NT2JqZWN0Q2xhc3MgeworICAgIEdP
YmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRf
ZG9tX29iamVjdF9nZXRfdHlwZSAodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBX
ZWJLaXRET01PYmplY3RfaCAqLworCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvZ3N0
cmluZ2NvbnZlcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvZ3N0
cmluZ2NvbnZlcnQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9n
c3RyaW5nY29udmVydC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKworI2lmbmRlZiBHU1RSSU5HX0NPTlZFUlRfSAorI2RlZmluZSBHU1RSSU5HX0NPTlZFUlRf
SAorCisvKiBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIGNvbnZlcnRpbmcgdmFyaW91cyB3ZWJr
aXQgc3RyaW5nIHR5cGVzIGludG8gYSB1dGY4IGdsaWIgc3RyaW5nICovCisKKyNpbmNsdWRlICJB
dG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiS1VSTC5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAidW5pY29kZS91c3RyaW5nLmgi
CisKK2lubGluZSBnY2hhciAqIGdkb21fZ3N0cmluZ19jb252ZXJ0KFdlYkNvcmU6OlN0cmluZyBj
b25zdCYgcykgeyByZXR1cm4gZ19zdHJkdXAocy51dGY4KCkuZGF0YSgpKTsgfQoraW5saW5lIGdj
aGFyICogZ2RvbV9nc3RyaW5nX2NvbnZlcnQoV2ViQ29yZTo6S1VSTCBjb25zdCYgcykgeyByZXR1
cm4gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsgfQoraW5saW5lIGdjaGFyICog
Z2RvbV9nc3RyaW5nX2NvbnZlcnQoY29uc3QgSlNDOjpVU3RyaW5nICYgcykgeyByZXR1cm4gZ19z
dHJkdXAocy5VVEY4U3RyaW5nKCkuY19zdHIoKSk7IH0KK2lubGluZSBnY2hhciAqIGdkb21fZ3N0
cmluZ19jb252ZXJ0KFdlYkNvcmU6OkF0b21pY1N0cmluZyBjb25zdCZzKSB7IHJldHVybiBnX3N0
cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9CisKKyNlbmRpZiAvKiBHU1RSSU5HX0NP
TlZFUlRfSCAqLwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L3dlYmtpdGJpbmRpbmcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC93ZWJraXRiaW5kaW5n
LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC93ZWJraXRiaW5k
aW5nLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNjcgQEAKKy8qCisgKiAgQ29weXJpZ2h0
IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Vi
a2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8g
PHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKwor
Ly8gZ2NjIDMueCBjYW4ndCBoYW5kbGUgaW5jbHVkaW5nIHRoZSBIYXNoTWFwIHBvaW50ZXIgc3Bl
Y2lhbGl6YXRpb24KKy8vIGluIHRoaXMgZmlsZQorI2lmIGRlZmluZWQgX19HTlVDX18gJiYgIWRl
ZmluZWQgX19HTElCQ1hYX18gLy8gbGVzcyB0aGFuIGdjYyAzLjQKKyNkZWZpbmUgSEFTSF9NQVBf
UFRSX1NQRUNfV09SS0FST1VORCAxCisjZW5kaWYKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSAid2Via2l0L3dlYmtpdGRvbS5oIgorI2lu
Y2x1ZGUgIndlYmtpdGJpbmRpbmcuaCIKKyNpbmNsdWRlICJ3ZWJraXRodG1sZWxlbWVudHdyYXBw
ZXJmYWN0b3J5LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiQXRvbWljU3Ry
aW5nLmgiCisjaW5jbHVkZSAiQXR0ci5oIgorI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgorI2lu
Y2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkNvbW1lbnQuaCIKKyNpbmNsdWRlICJDU1NW
YWx1ZS5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKKyNp
bmNsdWRlICJFbnRpdHkuaCIKKyNpbmNsdWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJFdmVudEV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24u
aCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaCIKKyNpbmNsdWRlICJOb3RhdGlvbi5oIgorI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVj
dGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworI2luY2x1ZGUgIkNTU0NoYXJzZXRSdWxlLmgi
CisjaW5jbHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCisjaW5jbHVkZSAiQ1NTSW1wb3J0UnVsZS5o
IgorI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCisj
aW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCisjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2lu
Y2x1ZGUgIkNTU1ZhcmlhYmxlc1J1bGUuaCIKKworI2luY2x1ZGUgIldlYktpdEF0dHJQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0Q0RBVEFTZWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldl
YktpdENsaXBib2FyZFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRDb21tZW50UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYktpdENTU0NoYXJzZXRSdWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldl
YktpdENTU0ZvbnRGYWNlUnVsZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NJbXBvcnRS
dWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdENTU01lZGlhUnVsZVByaXZhdGUuaCIKKyNp
bmNsdWRlICJXZWJLaXRDU1NQYWdlUnVsZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NQ
cmltaXRpdmVWYWx1ZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NSdWxlUHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYktpdENTU1N0eWxlUnVsZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRDU1NTdHlsZVNoZWV0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdENTU1ZhbHVlTGlzdFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NWYWx1ZVByaXZhdGUuaCIKKyNpbmNsdWRlICJX
ZWJLaXRDU1NWYXJpYWJsZXNSdWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERvY3VtZW50
RnJhZ21lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RG9jdW1lbnRQcml2YXRlLmgiCisj
aW5jbHVkZSAiV2ViS2l0RG9jdW1lbnRUeXBlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdEVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RW50aXR5UHJpdmF0ZS5oIgorI2luY2x1
ZGUgIldlYktpdEVudGl0eVJlZmVyZW5jZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRIVE1M
Q29sbGVjdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRIVE1MRG9jdW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0SFRNTE9wdGlvbnNDb2xsZWN0aW9uUHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIldlYktpdE5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0Tm90YXRpb25Qcml2
YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJvY2Vzc2luZ0luc3RydWN0aW9uUHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdFN0eWxlU2hlZXRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0VGV4
dFByaXZhdGUuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6OkhUTUxOYW1lczsKKwordHlwZWRlZiBIYXNo
TWFwPHZvaWQqLCBncG9pbnRlcj4gRE9NT2JqZWN0TWFwOworCitzdGF0aWMgRE9NT2JqZWN0TWFw
JiBkb21PYmplY3RzKCkKK3sKKyAgICBzdGF0aWMgRE9NT2JqZWN0TWFwIHN0YXRpY0RPTU9iamVj
dHM7CisgICAgcmV0dXJuIHN0YXRpY0RPTU9iamVjdHM7Cit9CisKK2dwb2ludGVyIEdET01PYmpl
Y3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHZvaWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICByZXR1cm4g
ZG9tT2JqZWN0cygpLmdldChvYmplY3RIYW5kbGUpOworfQorCitncG9pbnRlciBHRE9NT2JqZWN0
Q2FjaGU6OnB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIGdwb2ludGVyIHdyYXBwZXIp
Cit7CisgICAgZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIHdyYXBwZXIpOworICAgIHJl
dHVybiB3cmFwcGVyOworfQorCit2b2lkIEdET01PYmplY3RDYWNoZTo6Zm9yZ2V0RE9NT2JqZWN0
KHZvaWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICBkb21PYmplY3RzKCkudGFrZShvYmplY3RIYW5k
bGUpOworfQorCitncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBpZiAoIWRv
YykKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVj
dENhY2hlOjpnZXRET01PYmplY3QoZG9jKTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJu
IGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7CisKKyAgICBpZiAoZG9jLT5pc0hUTUxEb2N1bWVu
dCgpKQorICAgICAgICByZXQgPSB3cmFwSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxEb2N1
bWVudCo+KGRvYykpOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gd3JhcERvY3VtZW50KGRvYyk7
CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3QoZG9jLCByZXQpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlV3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50
ZXIgdG9HRE9NTmV3bHlDcmVhdGVkKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOworfQor
CitncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgcmV0ID0gR0RPTU9iamVjdENhY2hlOjpnZXRE
T01PYmplY3Qobm9kZSk7CisgICAgaWYgKHJldCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAg
IHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTVmFs
dWUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiBOVUxMOworCisg
ICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsK
KworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJl
dDsKKworICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gd3JhcENT
U1ZhbHVlTGlzdChzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSkpOworICAgIGVsc2Ug
aWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgIHJldCA9IHdyYXBDU1NQcmlt
aXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKSk7CisgICAg
ZWxzZQorICAgICAgICByZXQgPSB3cmFwQ1NTVmFsdWUodmFsdWUpOworCisgICAgcmV0dXJuIEdE
T01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KHZhbHVlLCByZXQpOworfQorCitzdGF0aWMgQUxX
QVlTX0lOTElORSBncG9pbnRlciBjcmVhdGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7CisgICAgQVNT
RVJUKG5vZGUpOworICAgIEFTU0VSVCghU2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChu
b2RlKSk7CisKKyAgICBncG9pbnRlciByZXQgPSBOVUxMOworCisgICAgc3dpdGNoIChub2RlLT5u
b2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgorICAgICAgICAg
ICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXQgPSBjcmVh
dGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKSk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0ID0gd3JhcEVsZW1lbnQoc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5v
ZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcEF0dHIoc3RhdGljX2Nh
c3Q8QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OlRFWFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBUZXh0KHN0YXRpY19jYXN0PFRleHQq
Pihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9T
RUNUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ0RBVEFTZWN0aW9uKHN0YXRpY19j
YXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcEVudGl0eShzdGF0
aWNfY2FzdDxFbnRpdHkqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSB3
cmFwUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlv
bio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkNPTU1F
TlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDb21tZW50KHN0YXRpY19jYXN0PENvbW1l
bnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NV
TUVOVF9OT0RFOgorICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9j
dW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQorICAgICAgICAgICAg
cmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUpKTsKKyAgICAgICAgY2Fz
ZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwRG9jdW1l
bnRUeXBlKHN0YXRpY19jYXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6CisgICAgICAgICAgICByZXQg
PSB3cmFwTm90YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihub2RlKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgorICAg
ICAgICAgICAgcmV0ID0gd3JhcERvY3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRG
cmFnbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBFbnRpdHlSZWZl
cmVuY2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSB3cmFwTm9kZShub2Rl
KTsKKyAgICB9CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3Qobm9k
ZSwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9u
KQoreworICAgIGlmICghY29sbGVjdGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBn
cG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QoY29sbGVjdGlvbik7
CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciBy
ZXQ7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBIVE1M
Q29sbGVjdGlvbjo6U2VsZWN0T3B0aW9uczoKKyAgICAgICAgICAgIHJldCA9IHdyYXBIVE1MT3B0
aW9uc0NvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbnNDb2xsZWN0aW9uKj4oY29sbGVj
dGlvbikpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXQgPSB3cmFwSFRNTENvbGxlY3Rpb24oc3RhdGljX2Nhc3Q8SFRNTENvbGxlY3Rpb24qPihj
b2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gR0RP
TU9iamVjdENhY2hlOjpwdXRET01PYmplY3QoY29sbGVjdGlvbiwgcmV0KTsKK30KKworZ3BvaW50
ZXIgdG9HRE9NKFRleHQqIHRleHQpCit7CisgICAgaWYgKCF0ZXh0KQorICAgICAgICByZXR1cm4g
TlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVj
dCh0ZXh0KTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9p
bnRlciByZXQgPSB3cmFwVGV4dCh0ZXh0KTsKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpw
dXRET01PYmplY3QodGV4dCwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKENTU1J1bGUqIHJ1
bGUpCit7CisgICAgaWYgKCFydWxlKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2lu
dGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChydWxlKTsKKworICAgIGlm
IChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldDsKKyAgICBz
d2l0Y2ggKHJ1bGUtPnR5cGUoKSkgeworICAgICAgICBjYXNlIENTU1J1bGU6OlNUWUxFX1JVTEU6
CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NTU3R5bGVSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxl
UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6
Ok1FRElBX1JVTEU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NTTWVkaWFSdWxlKHN0YXRpY19j
YXN0PENTU01lZGlhUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENTU1J1bGU6OkZPTlRfRkFDRV9SVUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU0Zv
bnRGYWNlUnVsZShzdGF0aWNfY2FzdDxDU1NGb250RmFjZVJ1bGUqPihydWxlKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpQQUdFX1JVTEU6CisgICAgICAgICAg
ICByZXQgPSB3cmFwQ1NTUGFnZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1bGUqPihydWxlKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToK
KyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NJbXBvcnRSdWxlKHN0YXRpY19jYXN0PENTU0ltcG9y
dFJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NSdWxl
OjpDSEFSU0VUX1JVTEU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NTQ2hhcnNldFJ1bGUoc3Rh
dGljX2Nhc3Q8Q1NTQ2hhcnNldFJ1bGUqPihydWxlKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBDU1NSdWxlOjpWQVJJQUJMRVNfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdy
YXBDU1NWYXJpYWJsZXNSdWxlKHN0YXRpY19jYXN0PENTU1ZhcmlhYmxlc1J1bGUqPihydWxlKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldCA9
IHdyYXBDU1NSdWxlKHJ1bGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgR0RP
TU9iamVjdENhY2hlOjpwdXRET01PYmplY3QocnVsZSwgcmV0KTsKKyAgICByZXR1cm4gcmV0Owor
fQorCitncG9pbnRlciB0b0dET00oRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBpZiAoIWVsZW1l
bnQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmpl
Y3RDYWNoZTo6Z2V0RE9NT2JqZWN0KGVsZW1lbnQpOworICAgIGlmIChnb2JqKQorICAgICAgICBy
ZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldDsKKworICAgIGlmIChlbGVtZW50LT5pc0hU
TUxFbGVtZW50KCkpCisgICAgICAgIHJldCA9IGNyZWF0ZUdET01IVE1MV3JhcHBlcihzdGF0aWNf
Y2FzdDxIVE1MRWxlbWVudCo+KGVsZW1lbnQpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IHdy
YXBFbGVtZW50KGVsZW1lbnQpOworCisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9N
T2JqZWN0KGVsZW1lbnQsIHJldCk7Cit9CisKK2dwb2ludGVyIHRvR0RPTShTdHlsZVNoZWV0KiBz
dHlsZVNoZWV0KQoreworICAgIGlmICghc3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIE5VTEw7
CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3Qoc3R5
bGVTaGVldCk7CisgICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3Bv
aW50ZXIgcmV0OworICAgIGlmIChzdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKKyAgICAg
ICAgcmV0ID0gd3JhcENTU1N0eWxlU2hlZXQoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0
eWxlU2hlZXQpKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IHdyYXBTdHlsZVNoZWV0KHN0eWxl
U2hlZXQpOworCisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KHN0eWxl
U2hlZXQsIHJldCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0YmluZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC93ZWJraXRiaW5kaW5nLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2dvYmplY3Qvd2Via2l0YmluZGluZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDc0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9y
dGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIw
MDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiAgQ29weXJp
Z2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgV0VCS0lUX0JJTkRJTkdfSAorI2RlZmlu
ZSBXRUJLSVRfQklORElOR19ICisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworI2lu
Y2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVk
ZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgor
I2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiVGV4
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBBdG9taWNTdHJpbmc7Cisg
ICAgY2xhc3MgRG9jdW1lbnQ7CisgICAgY2xhc3MgRXZlbnQ7CisgICAgY2xhc3MgRnJhbWU7Cisg
ICAgY2xhc3MgS1VSTDsKKyAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIFN0cmluZzsKKworI2lm
IEVOQUJMRShTVkcpCisgICAgY2xhc3MgU1ZHRWxlbWVudDsKKyNlbmRpZgorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICBncG9pbnRlciB0b0dET00oV2Vi
Q29yZTo6Q2FudmFzUGl4ZWxBcnJheSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNv
cmU6OkNTU1J1bGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpDU1NWYWx1
ZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkRvY3VtZW50KiBub2RlKTsK
KyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6RE9NV2luZG93KiBub2RlKTsKKyAgICBncG9p
bnRlciB0b0dET00oV2ViQ29yZTo6RWxlbWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9N
KFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uKiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oV2Vi
Q29yZTo6Tm9kZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OlN0eWxlU2hl
ZXQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpUZXh0KiBub2RlKTsKKwor
ICAgIGNsYXNzIEdET01PYmplY3RDYWNoZSB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMg
Z3BvaW50ZXIgZ2V0RE9NT2JqZWN0KHZvaWQgKm9iamVjdEhhbmRsZSk7CisgICAgICAgIHN0YXRp
YyBncG9pbnRlciBwdXRET01PYmplY3Qodm9pZCAqb2JqZWN0SGFuZGxlLCBncG9pbnRlciB3cmFw
cGVyKTsKKyAgICAgICAgc3RhdGljIHZvaWQgZm9yZ2V0RE9NT2JqZWN0KHZvaWQgKm9iamVjdEhh
bmRsZSk7CisgICAgfTsKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV0VCS0lU
X0JJTkRJTkdfSApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L3dlYmtpdGh0bWxlbGVt
ZW50d3JhcHBlcmZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC93ZWJraXRodG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmNwcAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC93ZWJraXRodG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5l
dD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5v
cmc+CisgKgorICogVGhpcyBmaWxlIGlzIGRlcml2ZWQgYnkgaGFuZCBmcm9tIGFuIGF1dG9tYXRp
Y2FsbHkgZ2VuZXJhdGVkIGZpbGUuCisgKiBLZWVwaW5nIGl0IHVwLXRvLWRhdGUgY291bGQgcG90
ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqIGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0b3Is
IG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogZ2VuZXJhdGVyIHdoaWNoIHRha2VzIEpTSFRN
TEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2luY2x1ZGUgIndlYmtpdGh0bWxlbGVtZW50d3JhcHBlcmZhY3RvcnkuaCIKKyNp
bmNsdWRlICJ3ZWJraXQvd2Via2l0ZG9tLmgiCisKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRN
TEFuY2hvckVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxBcHBs
ZXRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MQXJlYUVsZW1l
bnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxCYXNlRWxlbWVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTEJhc2VGb250RWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTEJsb2NrcXVvdGVFbGVtZW50UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MQm9keUVsZW1lbnRQcml2YXRlLmgiCisjaW5j
bHVkZSAid2Via2l0L1dlYktpdEhUTUxCUkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Vi
a2l0L1dlYktpdEhUTUxCdXR0b25FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9X
ZWJLaXRIVE1MQ2FudmFzRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0
SFRNTERpcmVjdG9yeUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhU
TUxEaXZFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MRExpc3RF
bGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MRWxlbWVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTEVtYmVkRWxlbWVudFByaXZhdGUuaCIK
KyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTEZpZWxkU2V0RWxlbWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTEZvbnRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUg
IndlYmtpdC9XZWJLaXRIVE1MRm9ybUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0
L1dlYktpdEhUTUxGcmFtZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktp
dEhUTUxGcmFtZVNldEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhU
TUxIZWFkRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTEhlYWRp
bmdFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MSFJFbGVtZW50
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MSHRtbEVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxJRnJhbWVFbGVtZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MSW1hZ2VFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgIndlYmtpdC9XZWJLaXRIVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndl
YmtpdC9XZWJLaXRIVE1MSXNJbmRleEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0
L1dlYktpdEhUTUxMYWJlbEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktp
dEhUTUxMZWdlbmRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1M
TElFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MTGlua0VsZW1l
bnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxNYXBFbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MTWFycXVlZUVsZW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxNZW51RWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJ3ZWJraXQvV2ViS2l0SFRNTE1ldGFFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndl
YmtpdC9XZWJLaXRIVE1MTW9kRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2Vi
S2l0SFRNTE9iamVjdEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhU
TUxPTGlzdEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxPcHRH
cm91cEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxPcHRpb25F
bGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MUGFyYWdyYXBoRWxl
bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTFBhcmFtRWxlbWVudFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTFByZUVsZW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAid2Via2l0L1dlYktpdEhUTUxRdW90ZUVsZW1lbnRQcml2YXRlLmgiCisjaW5j
bHVkZSAid2Via2l0L1dlYktpdEhUTUxTY3JpcHRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUg
IndlYmtpdC9XZWJLaXRIVE1MU2VsZWN0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJr
aXQvV2ViS2l0SFRNTFN0eWxlRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2Vi
S2l0SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAid2Via2l0L1dl
YktpdEhUTUxUYWJsZUNlbGxFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJL
aXRIVE1MVGFibGVDb2xFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRI
VE1MVGFibGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MVGFi
bGVSb3dFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTFRleHRB
cmVhRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTFRpdGxlRWxl
bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0SFRNTFVMaXN0RWxlbWVudFBy
aXZhdGUuaCIKKworI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MQW5jaG9yRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEFy
ZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
RGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRp
bmdFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhSRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxI
dG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGFiZWxFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTElFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1hcEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVu
dUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
TW9kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxPYmpl
Y3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFtRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFF1b3RlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNl
bGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFi
bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVUxpc3RF
bGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOjpIVE1MTmFtZXM7CisKK3R5cGVkZWYgZ3BvaW50
ZXIgKCpDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbikoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4pOworCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQW5jaG9yV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEFuY2hvckVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTEFuY2hvckVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBncG9pbnRlciBjcmVhdGVBcHBsZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MQXBwbGV0RWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MQXBwbGV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZUFyZWFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIHdyYXBIVE1MQXJlYUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEFyZWFF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQmFz
ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4g
d3JhcEhUTUxCYXNlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmFzZUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVCYXNlRm9udFdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxCYXNl
Rm9udEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJhc2VGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUJsb2NrcXVvdGVXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MQmxvY2tx
dW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJsb2NrcXVvdGVFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQm9keVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxCb2R5RWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MQm9keUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBncG9pbnRlciBjcmVhdGVCUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxCUkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJS
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUJ1
dHRvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxCdXR0b25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCdXR0b25FbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQ2FudmFzV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRN
TENhbnZhc0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGFi
bGVDYXB0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDYXB0aW9uRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRhYmxlQ29sV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRN
TFRhYmxlQ29sRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDb2xFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTW9kV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE1vZEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTE1vZEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBncG9pbnRlciBjcmVhdGVEaXJlY3RvcnlXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRGlyZWN0b3J5RWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MRGlyZWN0b3J5RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIGdwb2ludGVyIGNyZWF0ZURpdldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxEaXZFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxE
aXZFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
RExpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIHdyYXBIVE1MRExpc3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxETGlzdEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVFbWJlZFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxF
bWJlZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEVtYmVkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUZpZWxkU2V0V3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEZpZWxkU2V0RWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MRmllbGRTZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRm9udFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxGb250RWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MRm9udEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9p
bnRlciBjcmVhdGVGb3JtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTEZvcm1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb3JtRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUZyYW1l
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3
cmFwSFRNTEZyYW1lRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRnJhbWVTZXRXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRnJh
bWVTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGcmFtZVNldEVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVIZWFkaW5nV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEhlYWRpbmdF
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkaW5nRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUhlYWRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSGVhZEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3Bv
aW50ZXIgY3JlYXRlSFJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIHdyYXBIVE1MSFJFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIUkVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVIdG1sV3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRN
TEh0bWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxIdG1sRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUlGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxJRnJhbWVFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxJRnJhbWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgZ3BvaW50ZXIgY3JlYXRlSW1hZ2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSW1hZ2VFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxJbWFnZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRl
ciBjcmVhdGVJbnB1dFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gd3JhcEhUTUxJbnB1dEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUlzSW5k
ZXhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IHdyYXBIVE1MSXNJbmRleEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElzSW5kZXhFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTGFiZWxXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1M
TGFiZWxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVMZWdlbmRXcmFwcGVyKFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTGVnZW5kRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MTGVnZW5kRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIGdwb2ludGVyIGNyZWF0ZUxJV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTExJRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
TElFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
TGlua1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxMaW5rRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVNYXBXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTWFwRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MTWFwRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIGdwb2ludGVyIGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTWFycXVlZUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTE1hcnF1ZWVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlTWVudVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxNZW51RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWVu
dUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVN
ZXRhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biB3cmFwSFRNTE1ldGFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNZXRhRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU9iamVjdFdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxPYmpl
Y3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlT0xpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MT0xpc3RFbGVtZW50KHN0
YXRpY19jYXN0PEhUTUxPTGlzdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBncG9pbnRlciBjcmVhdGVPcHRHcm91cFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxPcHRHcm91cEVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZU9wdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxPcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxP
cHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3Jl
YXRlUGFyYWdyYXBoV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTFBhcmFncmFwaEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFn
cmFwaEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVh
dGVQYXJhbVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gd3JhcEhUTUxQYXJhbUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFBhcmFtRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVByZVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxQ
cmVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQcmVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlUXVvdGVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MUXVvdGVFbGVtZW50KHN0YXRp
Y19jYXN0PEhUTUxRdW90ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVTY3JpcHRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MU2NyaXB0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
U2NyaXB0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNy
ZWF0ZVNlbGVjdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gd3JhcEhUTUxTZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlU3R5bGVX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdy
YXBIVE1MU3R5bGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxTdHlsZUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUYWJsZVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUYWJsZUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVDZWxsV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2VsbEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUZXh0QXJlYVdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUZXh0QXJlYUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRpdGxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRpdGxlRWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MVGl0bGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlVGFibGVSb3dXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGFibGVSb3dFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxUYWJsZVJvd0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9p
bnRlciBjcmVhdGVVTGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkK
K3sKKyAgICByZXR1cm4gd3JhcEhUTUxVTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFVMaXN0
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworZ3BvaW50ZXIgY3JlYXRlR0RPTUhUTUxX
cmFwcGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAg
c3RhdGljIEhhc2hNYXA8V2ViQ29yZTo6QXRvbWljU3RyaW5nSW1wbCosIENyZWF0ZUhUTUxFbGVt
ZW50V3JhcHBlckZ1bmN0aW9uPiBtYXA7CisgICAgaWYgKG1hcC5pc0VtcHR5KCkpIHsKKyAgICAg
ICBtYXAuc2V0KGFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVBbmNob3JXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGFwcGxldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUFwcGxl
dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYXJlYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUFyZWFXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJhc2VUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVCYXNlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChiYXNlZm9udFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VGb250V3JhcHBlcik7CisgICAgICAgbWFwLnNldChi
bG9ja3F1b3RlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmxvY2txdW90ZVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQoYm9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJvZHlX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
QlJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUJ1dHRvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoY2FudmFzVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlQ2FudmFzV3JhcHBlcik7CisgICAgICAgbWFwLnNldChjYXB0aW9u
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVDYXB0aW9uV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChjb2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNvbFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoZGVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9k
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkaXJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVEaXJlY3RvcnlXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRpdlRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZURpdldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGxUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVETGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZW1iZWRUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVFbWJlZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
ZmllbGRzZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGaWVsZFNldFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQoZm9udFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUZvbnRXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGZvcm1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVG
b3JtV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZUZyYW1lV3JhcHBlcik7CisgICAgICAgbWFwLnNldChmcmFtZXNldFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUZyYW1lU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChoMVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGhlYWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkV3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChoclRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhSV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChodG1sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSHRtbFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoaWZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
SUZyYW1lV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbWdUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVJbWFnZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW5wdXRUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVJbnB1dFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaXNpbmRleFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlzSW5kZXhXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGxhYmVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGFiZWxXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGxlZ2VuZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxlZ2VuZFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQobGlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVM
SVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGlua1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUxpbmtXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1hcFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZU1hcFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWFycXVlZVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZU1hcnF1ZWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1lbnVU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZW51V3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChtZXRhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWV0YVdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQob2JqZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT2JqZWN0V3JhcHBl
cik7CisgICAgICAgbWFwLnNldChvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9MaXN0
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChvcHRncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZU9wdEdyb3VwV3JhcHBlcik7CisgICAgICAgbWFwLnNldChvcHRpb25UYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHBUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQYXJhZ3JhcGhXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KHBhcmFtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUGFyYW1XcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KHByZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIp
OworICAgICAgIG1hcC5zZXQocVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVF1b3RlV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChzY3JpcHRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVTY3JpcHRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHNlbGVjdFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc3R5bGVUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTdHlsZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGFi
bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQodGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25XcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KHRkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFi
bGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0ZXh0YXJlYVRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVRleHRBcmVhV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aXRsZVRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRpdGxlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0
clRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlUm93V3JhcHBlcik7CisgICAgICAg
bWFwLnNldCh1bFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVVMaXN0V3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChjb2xncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxl
Q29sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoMlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgzVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDRUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoNVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGg2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQoaW1hZ2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJbWFnZVdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoaW5zVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTW9k
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChrZXlnZW5UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpc3RpbmdUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRmb290VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFw
LnNldCh0aFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQodGhlYWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNl
Y3Rpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHhtcFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZVByZVdyYXBwZXIpOworICAgIH0KKworICAgIENyZWF0ZUhUTUxFbGVtZW50V3JhcHBl
ckZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbiA9CisgICAgICAgIG1hcC5nZXQoZWxlbWVu
dC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKKyAgICBpZiAoY3JlYXRlV3JhcHBlckZ1bmN0aW9uKQor
ICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBlckZ1bmN0aW9uKGVsZW1lbnQpOworICAgIHJldHVy
biB3cmFwSFRNTEVsZW1lbnQoZWxlbWVudC5nZXQoKSk7Cit9CisKK30KSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC93ZWJraXRodG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L3dlYmtpdGh0bWxlbGVtZW50d3JhcHBl
cmZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ29iamVjdC93ZWJr
aXRodG1sZWxlbWVudHdyYXBwZXJmYWN0b3J5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisqLworCisjaWZuZGVmIFdFQktJVF9IVE1MX0VMRU1FTlRfV1JBUFBF
Ul9GQUNUT1JZX0gKKyNkZWZpbmUgV0VCS0lUX0hUTUxfRUxFTUVOVF9XUkFQUEVSX0ZBQ1RPUllf
SAorCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFz
cyBIVE1MRWxlbWVudDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgZ3BvaW50ZXIgY3Jl
YXRlR0RPTUhUTUxXcmFwcGVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTEVsZW1lbnQ+KTsKK30K
KworI2VuZGlmIC8vIFdFQktJVF9IVE1MX0VMRU1FTlRfV1JBUFBFUl9GQUNUT1JZX0gKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0J
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdP
YmplY3QucG0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTM0MyBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyMgQ29w
eXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyMgQ29w
eXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisjIENvcHlyaWdodCAo
QykgMjAwOSBBZGFtIERpbmdsZSA8YWRhbUB5b3JiYS5vcmc+CisjIENvcHlyaWdodCAoQykgMjAw
OSBKaW0gTmVsc29uIDxqaW1AeW9yYmEub3JnPgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorIyBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNB
LgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JHT2JqZWN0OworCitteSAkbGljZW5jZVRlbXBsYXRl
ID0gPDwgIkVPRiI7CisvKgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3Bl
biBzb3VyY2UgcHJvamVjdC4KKyAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdl
bmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
CisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworRU9GCisKK215ICVpbXBsSW5j
bHVkZXMgPSAoKTsKK215ICVoZHJJbmNsdWRlcyA9ICgpOworbXkgJWhkclByb3BJbmNsdWRlcyA9
ICgpOworCisjIERlZmF1bHQgY29uc3RydWN0b3IKK3N1YiBuZXcgeworICAgIG15ICRvYmplY3Qg
PSBzaGlmdDsKKyAgICBteSAkcmVmZXJlbmNlID0geyB9OworCisgICAgJGNvZGVHZW5lcmF0b3Ig
PSBzaGlmdDsKKyAgICAkb3V0cHV0RGlyID0gc2hpZnQ7CisgICAgbWtkaXIgJG91dHB1dERpcjsK
KworICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmplY3QpOworICAgIHJldHVybiAkcmVmZXJlbmNl
OworfQorCitzdWIgZmluaXNoIHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFy
YW1zOiAnZG9tQ2xhc3MnIHN0cnVjdAorc3ViIEdlbmVyYXRlSW50ZXJmYWNlIHsKKyAgICBteSAk
b2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGNsYXNzID0gc2hpZnQ7CisgICAgbXkgJGRlZmluZXMg
PSBzaGlmdDsKKworICAgIG15ICRuYW1lID0gJGNsYXNzLT5uYW1lOworCisgICAgcHJpbnQgIiRu
YW1lXG4iOworICAgIAorICAgICRvYmplY3QtPkdlbmVyYXRlKCRjbGFzcyk7CisKKyAgICAjIFdy
aXRlIHByaXZhdGUgaGVhZGVyCisgICAgJG9iamVjdC0+V3JpdGVQcml2YXRlSGVhZGVyKCRjbGFz
cyk7CisKKyAgICAjIFdyaXRlIHB1YmxpYyBoZWFkZXIgYW5kIGltcGxlbWVudGF0aW9uCisgICAg
bXkgJGZuYW1lID0gIldlYktpdF8iIC4gJG5hbWU7CisgICAgJGZuYW1lID1+IHMvXy8vZzsKKyAg
ICAkb2JqZWN0LT5Xcml0ZURhdGEoJGZuYW1lKTsKK30KKworIyBQYXJhbXM6ICdpZGxEb2N1bWVu
dCcgc3RydWN0CitzdWIgR2VuZXJhdGVNb2R1bGUgeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsK
KyAgICBteSAkZG9jdW1lbnQgPSBzaGlmdDsKKworICAgICRtb2R1bGUgPSAkZG9jdW1lbnQtPm1v
ZHVsZTsKK30KKworc3ViIEdldFBhcmVudENsYXNzTmFtZSB7CisgICAgbXkgJGNsYXNzID0gc2hp
ZnQ7CisKKyAgICByZXR1cm4gIldlYktpdERPTU9iamVjdCIgaWYgQHskY2xhc3MtPnBhcmVudHN9
IGVxIDA7CisgICAgcmV0dXJuICJXZWJLaXQiIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxl
KCRjbGFzcy0+cGFyZW50cygwKSk7Cit9CisKK3N1YiBHZXRQYXJlbnRHT2JqZWN0VHlwZSB7Cisg
ICAgbXkgJGNsYXNzID0gc2hpZnQ7CisKKyAgICByZXR1cm4gIldFQktJVF9UWVBFX0RPTV9PQkpF
Q1QiIGlmIEB7JGNsYXNzLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiV0VCS0lUX1RZUEVf
IiAuIHVjKGRlY2FtZWxpemUoJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKCRjbGFzcy0+cGFy
ZW50cygwKSkpKTsKK30KKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2Fz
ZSAwLjAxCitzdWIgY2FtZWxpemUgeworICAgIG15ICRzID0gc2hpZnQ7CisgICAgam9pbignJywg
bWFweyB1Y2ZpcnN0ICRfIH0gc3BsaXQoLyg/PD1bQS1aYS16XSlfKD89W0EtWmEtel0pfFxiLywg
JHMpKTsKK30KKworIyBBbGdvcml0aG0gdGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAx
CitzdWIgZGVjYW1lbGl6ZSB7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICAkcyA9fiBzIyhbXmEt
ekEtWl0/KShbQS1aXSopKFtBLVpdKShbYS16XT8pIworICAgICAgICBteSAkZmMgPSBwb3MoJHMp
PT0wOworICAgICAgICBteSAoJHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOwor
ICAgICAgICBteSAkdCA9ICRwMCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRw
MyA/ICRwMSA/ICIke3AxfV8kcDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAg
JHQ7CisgICAgI2dlOworICAgICRzOworfQorCitzdWIgR2V0SGVhZGVyTmFtZSB7CisgICAgbXkg
JG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJu
ICJXZWJLaXQkbmFtZSI7Cit9CisKK3N1YiBHZXRDbGFzc05hbWUgeworICAgIG15ICRuYW1lID0g
JGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKKworICAgIHJldHVybiAiV2ViS2l0
JG5hbWUiOworfQorCitzdWIgZ2V0SW5jbHVkZUhlYWRlciB7CisgICAgbXkgJHR5cGUgPSBzaGlm
dDsKKyAgICBteSAkbmFtZSA9IEdldEhlYWRlck5hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICIi
IGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImludCI7
CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5
cGUgZXEgInNob3J0IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgIHJl
dHVybiAiIiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAi
ZG91YmxlIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICByZXR1
cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGNoYXIiOworICAgIHJldHVybiAiIiBpZiAkdHlw
ZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVk
IGxvbmciOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsK
KyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICByZXR1cm4g
IiIgaWYgJHR5cGUgZXEgInZvaWQiOworICAgIAorICAgIHJldHVybiAiUmFuZ2UuaCIgaWYgJHR5
cGUgZXEgIkNvbXBhcmVIb3ciOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5n
IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgcmV0dXJu
ICIiIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisK
KyAgICByZXR1cm4gIiRuYW1lLmgiOworfQorCisjIHJldHVybnMgMSBpZiB3ZSBuZWVkIHRvIGNy
ZWF0ZSBhIEdPYmplY3Qgd3JhcHBlciBhcm91bmQgdGhlIHJldHVybiByZXN1bHQKK3N1YiBJc0dE
T01DbGFzc1R5cGUgeworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRD
bGFzc05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImZsb2F0IjsKKyAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBl
cSAiYm9vbGVhbiI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImNoYXIiOworICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAic2hvcnQi
OworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICBy
ZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICByZXR1cm4gMCBpZiAkdHlw
ZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVk
IGxvbmcgbG9uZyI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsK
KyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidm9pZCI7CisgICAgCisgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgIkNvbXBhcmVIb3ciOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01TdHJp
bmciOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOworICAgIHJldHVy
biAwIGlmICR0eXBlIGVxICJSR0JDb2xvciI7ICMgVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisK
KyAgICByZXR1cm4gMTsKK30KKworc3ViIEdldFByb3BHVHlwZSB7CisgICAgbXkgJHR5cGUgPSBz
aGlmdDsKKyAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICByZXR1cm4g
InN0cmluZyIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuICJmbG9hdCIgaWYg
JHR5cGUgZXEgImZsb2F0IjsKKyAgICByZXR1cm4gIm5vdHlldHN1cHBvcnRlZCIgaWYgJHR5cGUg
ZXEgIkNvbXBhcmVIb3ciOworICAgIHJldHVybiAiZG91YmxlIiBpZiAkdHlwZSBlcSAiZG91Ymxl
IjsKKyAgICByZXR1cm4gImJvb2xlYW4iIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICByZXR1
cm4gImNoYXIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICByZXR1cm4gImxvbmciIGlmICR0eXBl
IGVxICJsb25nIjsKKyAgICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICBy
ZXR1cm4gInVjaGFyIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgIHJldHVybiAidWludCIgaWYg
JHR5cGUgZXEgInVuc2lnbmVkIjsKKyAgICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgImludCI7
CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICByZXR1
cm4gInVpbnQ2NCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgcmV0dXJu
ICJ1bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgIHJldHVybiAidXNob3J0
IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJldHVybiAidWxvbmciIGlmICR0
eXBlIGVxICJSR0JDb2xvciI7ICMgVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1
cm4gIm9iamVjdCI7Cit9CisKK3N1YiBHZXRHVHlwZSB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsK
KyAgICBteSAkbmFtZSA9IEdldENsYXNzTmFtZSgkdHlwZSk7CisKKyAgICByZXR1cm4gImdjaGFy
ICoiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgIHJldHVybiAiZ2Zsb2F0IiBpZiAkdHlw
ZSBlcSAiZmxvYXQiOworICAgIHJldHVybiAiV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVIb3cgIiBp
ZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgcmV0dXJuICJnZG91YmxlIiBpZiAkdHlwZSBl
cSAiZG91YmxlIjsKKyAgICByZXR1cm4gImdib29sZWFuIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7
CisgICAgcmV0dXJuICJnY2hhciIgaWYgJHR5cGUgZXEgImNoYXIiOworICAgIHJldHVybiAiZ2xv
bmciIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gImdzaG9ydCIgaWYgJHR5cGUgZXEg
InNob3J0IjsKKyAgICByZXR1cm4gImd1Y2hhciIgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICBy
ZXR1cm4gImd1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAgIHJldHVybiAiZ2ludCIg
aWYgJHR5cGUgZXEgImludCI7CisgICAgcmV0dXJuICJndWludCIgaWYgJHR5cGUgZXEgInVuc2ln
bmVkIGludCI7CisgICAgcmV0dXJuICJndWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IjsKKyAgICByZXR1cm4gImd1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmci
OworICAgIHJldHVybiAiZ3VzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAg
ICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsgIyBUT0RPIC0gRE9NIGNs
YXNzIHdyYXBwZXIKKworICAgIHJldHVybiAidm9pZCIgaWYgJHR5cGUgZXEgInZvaWQiOworCisg
ICAgcmV0dXJuICIkbmFtZSAqIjsKK30KKworc3ViIGFkZFByb3BJbmNsdWRlSGVhZGVyIHsKKyAg
ICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGhkciA9IGdldEluY2x1ZGVIZWFkZXIoJHR5
cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUo
JHR5cGUpKSB7CisgICAgICAgICAgICAkaGRyID0gc3Vic3RyKCRoZHIsIDAsIGxlbmd0aCgkaGRy
KS0yKTsgICAgICMgc3RyaXAgb2ZmICIuaCIKKyAgICAgICAgICAgICRoZHJQcm9wSW5jbHVkZXN7
IndlYmtpdC8iLiRoZHIuIi5oIn0gPSAxOworICAgICAgICAgICAgaWYgKCRoZHIgbmUgIldlYktp
dERPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJ3ZWJraXQv
Ii4kaGRyLiJQcml2YXRlLmgifSA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyRoZHJ9ID0gMTsKKyAgICAgICAgfQorICAg
IH0KK30KKworc3ViIGFkZEluY2x1ZGVCb2R5IHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisg
ICAgbXkgJGhkciA9IGdldEluY2x1ZGVIZWFkZXIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIi
KSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAk
aW1wbEluY2x1ZGVzeyJ3ZWJraXQvJGhkciJ9ID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICRpbXBsSW5jbHVkZXN7JGhkcn0gPSAxOworICAgICAgICB9CisgICAgfQorfQorCitz
dWIgc2tpcEF0dHJpYnV0ZSB7CisgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OworICAgIAorICAg
IGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20i
fSB8fAorICAgIAkkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b21HZXR0ZXIifSB8fAorICAgICAgICAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21TZXR0ZXIifSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9
CisgICAgCisgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsK
KworICAgIGlmICgkcHJvcF90eXBlIGVxICJzdHlsZXNoZWV0czo6TWVkaWFMaXN0IiBvcgorICAg
IAkkcHJvcF90eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIiBvcgorICAgICAgICAkcHJvcF90
eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIgb3IKKyAgICAgICAgJHByb3BfdHlwZSBl
cSAiRXZlbnRMaXN0ZW5lciIgb3IKKyAgICAgICAgJHByb3BfdHlwZSA9fiAvQ29uc3RydWN0b3Ik
LyBvcgorICAgICAgICAkcHJvcF90eXBlIGVxICJjdXN0b20iIG9yCisgICAgICAgICRwcm9wX3R5
cGUgZXEgIkFycmF5IiBvcgorICAgICAgICAkcHJvcF90eXBlIGVxICJET01UaW1lU3RhbXAiKSB7
CisgICAgICAgIHJldHVybiAxOyAgICMgY2FuJ3QgaGFuZGxlIHRoZXNlIHlldAorICAgIH0KKwor
ICAgIG15ICR0eXBlID0gR2V0R1R5cGUoJHByb3BfdHlwZSk7CisgICAgCisgICAgIyBUT0RPOiBT
VkcKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUG9kVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5l
cmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKSkgeworICAgICAgICByZXR1cm4gMTsKKyAg
ICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBVc2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9u
IHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgIyBza2lwcGVkIG91dCBDYW52YXNQaXhl
bEFycmF5IC0gc2VlIEpTQ2FudmFzUGl4ZWxBcnJheUN1c3RvbS5jcHAgZm9yIHdoeS4KKyAgICBy
ZXR1cm4gMSBpZiAkdHlwZSBlcSAiTm9kZSIgb3IgJHR5cGUgZXEgIkRvY3VtZW50IiBvciAkdHlw
ZSBlcSAiSFRNTENvbGxlY3Rpb24iIG9yCisgICAgICAkdHlwZSBlcSAiU1ZHUGF0aFNlZyIgb3Ig
JHR5cGUgZXEgIlN0eWxlU2hlZXQiIG9yICR0eXBlIGVxICJDU1NSdWxlIiBvciAkdHlwZSBlcSAi
Q1NTVmFsdWUiIG9yCisgICAgICAkdHlwZSBlcSAiRXZlbnQiIG9yICR0eXBlIGVxICJFbGVtZW50
IiBvciAkdHlwZSBlcSAiVGV4dCI7CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBXcml0ZVByaXZh
dGVIZWFkZXIgeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkY2xhc3MgPSBzaGlm
dDsKKworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGNsYXNzLT5uYW1lOworICAgIG15ICRjbGFz
c05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOworICAgIG15ICRmaWxlbmFtZSA9
ICIkb3V0cHV0RGlyLyIgLiAkY2xhc3NOYW1lIC4gIlByaXZhdGUuaCI7CisgICAgbXkgJGd1YXJk
ID0gdWMoZGVjYW1lbGl6ZSgkY2xhc3NOYW1lKSkgLiAiX1BSSVZBVEVfSCI7CisgICAgbXkgJHBh
cmVudENsYXNzTmFtZSA9IEdldFBhcmVudENsYXNzTmFtZSgkY2xhc3MpOworCisgICAgbXkgJGhh
c0xlZ2FjeVBhcmVudCA9ICRjbGFzcy0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVu
dCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskY2xhc3MtPnBhcmVudHN9ID4gMDsKKyAg
ICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVudDsKKyAg
ICAKKyAgICBvcGVuKFBSSVZIRUFERVIsICI+JGZpbGVuYW1lIikgb3IgZGllICJDb3VsZG4ndCBv
cGVuIGZpbGUgJGZpbGVuYW1lIGZvciB3cml0aW5nIjsKKyAgICAKKyAgICBwcmludCBQUklWSEVB
REVSIHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgIHByaW50IFBSSVZIRUFERVIg
IlxuIjsKKyAgICAKKyAgICBteSAkdGV4dCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNk
ZWZpbmUgJGd1YXJkCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtp
dC8ke3BhcmVudENsYXNzTmFtZX0uaD4KKyNpbmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitF
T0YKKworICAgIHByaW50IFBSSVZIRUFERVIgJHRleHQ7CisgICAgCisgICAgcHJpbnQgUFJJVkhF
QURFUiBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJQcm9wSW5jbHVk
ZXMpOworICAgIHByaW50IFBSSVZIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJQcm9wSW5jbHVkZXMp
OworICAgIAorICAgICR0ZXh0ID0gPDwgIkVPRiI7Cit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05h
bWV9ICR7Y2xhc3NOYW1lfTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisgICAgJHtjbGFzc05hbWV9
ICoKKyAgICB3cmFwJHtpbnRlcmZhY2VOYW1lfShXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICpj
b3JlT2JqZWN0KTsKKworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKgorICAgIGNvcmUo
JHtjbGFzc05hbWV9ICpyZXF1ZXN0KTsKKworRU9GCisKKyAgICBwcmludCBQUklWSEVBREVSICR0
ZXh0OworCisgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gZXEgIkRPTVdpbmRvdyIgfHwgKCEkaGFz
UGFyZW50IG9yICRjbGFzcy0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlVG9KUyJ9KSBh
bmQKKyAgICAgICAgIVVzZXNNYW51YWxUb0pTSW1wbGVtZW50YXRpb24oJGludGVyZmFjZU5hbWUp
KSB7CisgICAgICAgICR0ZXh0ID0gPDwgIkVPRiI7CisgICAgZ3BvaW50ZXIKKyAgICB0b0dET00o
V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogbm9kZSk7CisKK0VPRgorCisgICAgICAgIHByaW50
IFBSSVZIRUFERVIgJHRleHQ7CisgICAgfQorCisgICAgJHRleHQgPSA8PCAiRU9GIjsKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLyogJHtndWFyZH0gKi8KKworRU9GCisKKyAgICBw
cmludCBQUklWSEVBREVSICR0ZXh0OworICAgIAorICAgIGNsb3NlKFBSSVZIRUFERVIpOworfQor
CitzdWIgQ2xhc3NIYXNGdW5jdGlvbiB7CisgICAgICAgIG15ICRjbGFzcyA9IHNoaWZ0OworICAg
ICAgICBteSAkbmFtZSA9IHNoaWZ0OworICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHsk
Y2xhc3MtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+bmFtZSBlcSAkbmFtZSkgeworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBVbmlxdWlmeSB7CisgICAg
bXkgJG5hbWUgPSBzaGlmdDsKKyAgICBteSAkYXZvaWQgPSBzaGlmdDsKKyAgICBpZiAoJG5hbWUg
ZXEgJGF2b2lkKSB7CisgICAgICAgICRuYW1lID0gJG5hbWUgLiAiMiI7CisgICAgfQorICAgIHJl
dHVybiAkbmFtZTsKK30KKworc3ViIFJldHVybklmRmFpbCB7CisgICAgbXkgJGNvbmRpdGlvbiA9
IHNoaWZ0OworICAgIG15ICRyZXR1cm5UeXBlID0gc2hpZnQ7CisgICAgCisgICAgaWYgKCRyZXR1
cm5UeXBlIGVxICJ2b2lkIikgeworICAgICAgICByZXR1cm4gIiAgICBnX3JldHVybl9pZl9mYWls
ICgkY29uZGl0aW9uKTtcbiI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuICIgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwgKCRjb25kaXRpb24sIDApO1xuIjsgICMgVE9ETzogcmV0dXJuIHBy
b3BlciBkZWZhdWx0IHJlc3VsdAorICAgIH0KK30KKworIyBHZW5lcmF0ZSBjb2RlIGZvciBhIGZ1
bmN0aW9uLiAgJGtpbmQgc2hvdWxkIGJlIGVpdGhlciAiIiBmb3IgYW4gb3JkaW5hcnkgZnVuY3Rp
b24sCisjICJnZXQiIGZvciBhbiBhdHRyaWJ1dGUgZ2V0dGVyIG9yICJzZXQiIGZvciBhbiBhdHRy
aWJ1dGUgc2V0dGVyLgorc3ViIEdlbmVyYXRlRnVuY3Rpb24geworICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OworICAgIG15ICRmdW5jdGlvbiA9
IHNoaWZ0OworICAgIG15ICRraW5kID0gc2hpZnQ7CisKKyAgICBteSAkY2xhc3NOYW1lID0gR2V0
Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkY2xhc3NDYXBzID0gdWMoZGVjYW1l
bGl6ZSgkaW50ZXJmYWNlTmFtZSkpOworCisgICAgbXkgJGZuX3NpZ19uYW1lID0gJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPm5hbWU7CisgICAgbXkgJGZuX3NpZ190eXBlID0gJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPnR5cGU7CisgICAgbXkgJGludGVyZmFjZV9uYW1lID0gZGVjYW1lbGl6ZSgkaW50ZXJm
YWNlTmFtZSk7CisgICAgbXkgJHByZWZpeCA9ICRraW5kIGVxICJnZXQiID8gImdldF8iIDogIiI7
CisgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICJ3ZWJraXRfIiAuICRpbnRlcmZhY2VfbmFtZSAuICJf
IiAuICRwcmVmaXggLiBkZWNhbWVsaXplKCRmbl9zaWdfbmFtZSk7CisgICAgbXkgJHJldHVyblR5
cGUgPSBHZXRHVHlwZSgkZm5fc2lnX3R5cGUpOworICAgIG15ICRyZXRfaXNfY2xhc3NfdHlwZSA9
IElzR0RPTUNsYXNzVHlwZSgkZm5fc2lnX3R5cGUpOworCisgICAgbXkgJHRoaXMgPSAkaW50ZXJm
YWNlX25hbWU7CisgICAgJHRoaXMgPX4gcy8uKl8vLzsKKyAgICAKKyAgICBteSAkZnVuY3Rpb25T
aWcgPSAiJGNsYXNzTmFtZSAqJHRoaXMiOworCisgICAgbXkgJGNhbGxfaW1wbF9wYXJhbXMgPSAi
IjsKKyAgICBteSAkZ2RvbV9mbl9wcmVmaXggPSAid2Via2l0XyIgLiBkZWNhbWVsaXplKCRmbl9z
aWdfdHlwZSk7CisKKyAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAid2Via2l0X2Nzc19zdHlsZV9k
ZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkiKSB7CisgICAgICAgICMgcmVzZXJ2ZWQgbmFtZSBjbGFz
aCBpbiBnbGliIQorICAgICAgICAkZnVuY3Rpb25OYW1lID0gIndlYmtpdF9jc3Nfc3R5bGVfZGVj
bGFyYXRpb25fc2V0X2Nzc19wcm9wZXJ0eSI7CisgICAgfQorICAgICMgc2tpcCBDb21wYXJlSG93
IGZ1bmN0aW9ucyBmb3Igbm93CisgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgIndlYmtpdF9yYW5n
ZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyIpIHsKKyAgICAgICAgcHVzaChAaEJvZHksICJcbi8q
IFRPRE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5c
biIpOworICAgICAgICBwdXNoKEBjQm9keSwgIlxuLyogVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhv
dyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAjIHNraXAgU1ZHRG9jdW1lbnQgZnVuY3Rpb25zIGZvciBub3cKKyAgICBpZiAo
JHJldHVyblR5cGUgZXEgIldlYktpdFZHRG9jdW1lbnQgKiIpIHsKKyAgICAgICAgcHVzaChAaEJv
ZHksICJcbi8qIFRPRE86IHNraXBwaW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25O
YW1lfSAqL1xuXG4iKTsKKyAgICAgICAgcHVzaChAY0JvZHksICJcbi8qIFRPRE86IHNraXBwaW5n
IFNWR0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgICMgc2tpcCBzb21lIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5v
dworICAgIG15ICRpc19jdXN0b21fZm4gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8CisgICAgCQkJCSAgICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDQ3VzdG9tIn0gfHwKKyAgICAgICAgICAgICAgICAg
ICAgICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21B
cmd1bWVudEhhbmRsaW5nIn0gfHwKKyAgICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uIn07
CisgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgIndlYmtpdF9odG1sX2NvbGxlY3Rpb25faXRlbSIg
fHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAid2Via2l0X2h0bWxfY29sbGVjdGlvbl9uYW1l
ZF9pdGVtIiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJ3ZWJraXRfeG1sX2h0dHBfcmVx
dWVzdF9vcGVuIiB8fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJ3ZWJraXRfeG1sX2h0dHBf
cmVxdWVzdF9zZXRfcmVxdWVzdF9oZWFkZXIiIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEg
IndlYmtpdF94bWxfaHR0cF9yZXF1ZXN0X3NlbmQiIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUg
ZXEgIndlYmtpdF94bWxfaHR0cF9yZXF1ZXN0X2dldF9yZXNwb25zZV9oZWFkZXIiIHx8CisgICAg
ICAgICRmdW5jdGlvbk5hbWUgZXEgIndlYmtpdF94bWxfaHR0cF9yZXF1ZXN0X292ZXJyaWRlX21p
bWVfdHlwZSIgfHwKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBlcSAid2Via2l0X3htbF9odHRwX3Jl
cXVlc3RfZGlzcGF0Y2hfZXZlbnQiIHx8CisgICAgICAgICRmdW5jdGlvbk5hbWUgZXEgIndlYmtp
dF9lbGVtZW50X3NldF9hdHRyaWJ1dGUiKSB7CisgICAgICAgICRpc19jdXN0b21fZm4gPSAwOwor
ICAgIH0KKyAgICBpZiAoJGlzX2N1c3RvbV9mbiAmJiAKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAid2Via2l0X25vZGVfYXBwZW5kX2NoaWxkIiAmJiAKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAid2Via2l0X25vZGVfcmVtb3ZlX2NoaWxkIiAmJiAKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAid2Via2l0X25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKKyAgICAgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAid2Via2l0X25vZGVfcmVwbGFjZV9jaGlsZCIpIHsKKyAgICAgICAgcHVzaChAaEJvZHksICJc
bi8qIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAg
ICAgIHB1c2goQGNCb2R5LCAiXG4vKiBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5h
bWV9ICovXG5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yZWFjaCBteSAk
cGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAgICBteSAkcGFyYW1JRExU
eXBlID0gJHBhcmFtLT50eXBlOworICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnQi
KSB7CisgICAgICAgICAgICBwdXNoKEBoQm9keSwgIlxuLyogVE9ETzogZXZlbnQgZnVuY3Rpb24g
JHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworICAgICAgICAgICAgcHVzaChAY0JvZHksICJcbi8q
IFRPRE86IGV2ZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBhZGRJbmNsdWRlQm9keSgkcGFyYW1JRExU
eXBlKTsKKyAgICAgICAgbXkgJHBhcmFtVHlwZSA9IEdldEdUeXBlKCRwYXJhbUlETFR5cGUpOwor
ICAgICAgICBteSAkcGFyYW1OYW1lID0gVW5pcXVpZnkoZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUp
LCAkdGhpcyk7CisKKyAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsICRwYXJhbVR5cGUgJHBhcmFt
TmFtZSI7CisKKyAgICAgICAgbXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBl
KCRwYXJhbUlETFR5cGUpOworICAgICAgICBpZiAoJHBhcmFtX2lzX2Nsc190eXBlKSB7CisgICAg
ICAgICAgICBpZiAoJHBhcmFtSURMVHlwZSBuZSAiRE9NT2JqZWN0IikgeworICAgICAgICAgICAg
ICAgICRpbXBsSW5jbHVkZXN7IndlYmtpdC9XZWJLaXQke3BhcmFtSURMVHlwZX1Qcml2YXRlLmgi
fSA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCRwYXJhbV9pc19j
bHNfdHlwZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikpIHsKKyAgICAgICAgICAg
ICRwYXJhbU5hbWUgPSAiX2dfIiAuICRwYXJhbU5hbWU7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KCRjYWxsX2ltcGxfcGFyYW1zKSB7CisgICAgICAgICAgICAkY2FsbF9pbXBsX3BhcmFtcyAuPSAi
LCAkcGFyYW1OYW1lIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRjYWxsX2ltcGxf
cGFyYW1zID0gIiRwYXJhbU5hbWUiOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCRmbl9z
aWdfdHlwZSBlcSAiRXZlbnQiKSB7CisgICAgICAgIHB1c2goQGhCb2R5LCAiXG4vKiBUT0RPOiBl
dmVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisgICAgICAgIHB1c2goQGNC
b2R5LCAiXG4vKiBUT0RPOiBldmVudCBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoJHJldF9pc19jbGFzc190eXBlIGFu
ZCAkZm5fc2lnX3R5cGUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3si
d2Via2l0L1dlYktpdCR7Zm5fc2lnX3R5cGV9UHJpdmF0ZS5oIn0gPSAxOworICAgICAgICAkaW1w
bEluY2x1ZGVzeyJ3ZWJraXQvV2ViS2l0JHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAg
JGltcGxJbmNsdWRlc3siJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICB9CisKKyAgICBpZiAo
JGZuX3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisgICAgICAgICgkZnVuY3Rpb25OYW1lIGVx
ICd3ZWJraXRfaHRtbF9jYW52YXNfZWxlbWVudF9nZXRfY29udGV4dCcgb3IKKyAgICAgICAgICRm
dW5jdGlvbk5hbWUgZXEgJ3dlYmtpdF9kb2N1bWVudF9nZXRfY3NzX2NhbnZhc19jb250ZXh0Jykp
IHsKKyAgICAgICAgcmV0dXJuOyAgICAgICAjIHRvbyBpbnZvbHZlZCBmb3Igbm93OyBza2lwCisg
ICAgfQorCisgICAgaWYoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7CisgICAgICAg
ICRmdW5jdGlvblNpZyAuPSAiLCBHRXJyb3IgKiplcnJvciI7CisgICAgfQorCisgICAgcHVzaChA
aEJvZHksICJXRUJLSVRfQVBJICRyZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25T
aWcpO1xuXG4iKTsKKworICAgIHB1c2goQGNCb2R5LCAiJHJldHVyblR5cGVcbiRmdW5jdGlvbk5h
bWUgKCRmdW5jdGlvblNpZylcbntcbiIpOworCisgICAgcHVzaChAY0JvZHksIFJldHVybklmRmFp
bCgiV0VCS0lUX0lTXyRjbGFzc0NhcHMoJHRoaXMpIiwgJHJldHVyblR5cGUpKTsKKyAgICAKKyAg
ICAjIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSBub24tTlVMTC4gIEZvciBhdHRyaWJ1dGUgc2V0
dGVycywgd2UgYWxsb3cgYSBOVUxMIGFyZ3VtZW50LAorICAgICMgd2hpY2ggY2FuIGJlIHVzZWQg
dG8gcmVtb3ZlIGFuIGF0dHJpYnV0ZS4KKyAgICBpZiAoJGtpbmQgbmUgInNldCIpIHsKKyAgICAg
ICAgZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgeworICAgICAg
ICAgICAgaWYgKCEkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRwYXJhbS0+dHlwZSkp
IHsKKyAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gVW5pcXVpZnkoZGVjYW1lbGl6ZSgk
cGFyYW0tPm5hbWUpLCAkdGhpcyk7CisgICAgICAgICAgICAgICAgcHVzaChAY0JvZHksIFJldHVy
bklmRmFpbCgkcGFyYW1OYW1lLCAkcmV0dXJuVHlwZSkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorICAgIAorICAgIGlmKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkg
eworICAgICAgICBwdXNoKEBjQm9keSwgUmV0dXJuSWZGYWlsKCIhZXJyb3IgfHwgISplcnJvciIs
ICRyZXR1cm5UeXBlKSk7CisgICAgfQorCisgICAgIyBUaGUgV2ViS2l0Ojpjb3JlIGltcGxlbWVu
dGF0aW9ucyBjaGVjayBmb3IgTlVMTCBhbHJlYWR5OyBubyBuZWVkIHRvCisgICAgIyBkdXBsaWNh
dGUgZWZmb3J0LgorICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKiBpdGVtID0gV2ViS2l0Ojpjb3JlKCR0aGlzKTtcbiIpOworCisgICAgJHJldHVyblBhcmFt
TmFtZSA9ICIiOworICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVy
c30pIHsKKyAgICAgICAgbXkgJHBhcmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKKyAgICAgICAg
bXkgJHBhcmFtTmFtZSA9IFVuaXF1aWZ5KGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKSwgJHRoaXMp
OworCisgICAgICAgIG15ICRwYXJhbV9pc19jbGFzc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRw
YXJhbUlETFR5cGUpOworICAgICAgICAjIEhBQ0shCisgICAgICAgIGlmICgkZnVuY3Rpb25OYW1l
IGVxICJ3ZWJraXRfeG1sX2h0dHBfcmVxdWVzdF9vcGVuIiAmJiAkcGFyYW0tPm5hbWUgZXEgInVy
bCIpIHsKKyAgICAgICAgICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OktVUkwgX2dfJHtw
YXJhbU5hbWV9ID0gV2ViQ29yZTo6S1VSTCgkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICB9IGVs
c2lmICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBXZWJDb3JlOjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6U3Ry
aW5nOjpmcm9tVVRGOCgkcGFyYW1OYW1lKTtcbiIpOworICAgICAgICB9CisgICAgICAgIGlmICgk
cGFyYW1faXNfY2xhc3NfdHlwZSkgeworICAgICAgICAgICAgbXkgJHBhcmFtX2dkb21fZm4gPSAi
d2Via2l0XyIgLiBkZWNhbWVsaXplKCRwYXJhbUlETFR5cGUpOworICAgICAgICAgICAgcHVzaChA
Y0JvZHksICIgICAgV2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9ICogX2dfJHtwYXJhbU5hbWV9ID0g
V2ViS2l0Ojpjb3JlKCRwYXJhbU5hbWUpO1xuIik7CisgICAgICAgIH0KKyAgICAgICAgJHJldHVy
blBhcmFtTmFtZSA9ICJfZ18iLiRwYXJhbU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUmV0dXJuIn07CisgICAgfQorCisgICAgbXkgJGFzc2lnbiA9ICIiOworICAgIG15ICRh
c3NpZ25fcHJlID0gIiI7CisgICAgbXkgJGFzc2lnbl9wb3N0ID0gIiI7CisgICAgaWYgKCRyZXR1
cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgeworICAgICAgICBpZiAoJHJldF9p
c19jbGFzc190eXBlKSB7CisgICAgICAgICAgICAkYXNzaWduID0gIlBhc3NSZWZQdHI8V2ViQ29y
ZTo6JHtmbl9zaWdfdHlwZX0+IGdfcmVzID0gIjsKKyAgICAgICAgICAgICRhc3NpZ25fcHJlID0g
IldURjo6Z2V0UHRyKCI7CisgICAgICAgICAgICAkYXNzaWduX3Bvc3QgPSAiKSI7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAkYXNzaWduID0gIiR7cmV0dXJuVHlwZX0gcmVzID0gIjsK
KyAgICAgICAgfQorICAgIH0KKyAgICBteSAkZXhjZXB0aW9ucyA9ICIiOworICAgIGlmIChAeyRm
dW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgaWYgKCR7Y2FsbF9p
bXBsX3BhcmFtc30gbmUgIiIpIHsKKyAgICAgICAgICAgICRleGNlcHRpb25zID0gIiwgZWMiOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGV4Y2VwdGlvbnMgPSAiZWMiOworICAgICAg
ICB9CisgICAgfQorCisgICAgIyBXZSBuZWVkIHRvIHNwZWNpYWwtY2FzZSB0aGVzZSBOb2RlIG1l
dGhvZHMgYmVjYXVzZSB0aGVpciBDKysgc2lnbmF0dXJlIGlzIGRpZmZlcmVudAorICAgICMgZnJv
bSB3aGF0IHdlJ2QgZXhwZWN0IGdpdmVuIHRoZWlyIElETCBkZXNjcmlwdGlvbjsgc2VlIE5vZGUu
aC4KKyAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAid2Via2l0X25vZGVfYXBwZW5kX2NoaWxkIiB8
fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJ3ZWJraXRfbm9kZV9pbnNlcnRfYmVmb3JlIiB8
fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJ3ZWJraXRfbm9kZV9yZXBsYWNlX2NoaWxkIiB8
fAorICAgICAgICAkZnVuY3Rpb25OYW1lIGVxICJ3ZWJraXRfbm9kZV9yZW1vdmVfY2hpbGQiKSB7
CisgICAgICAgIG15ICRjdXN0b21fZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCA9IDw8ICJFT0YiOwor
ICAgIGJvb2wgb2sgPSBpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtl
eGNlcHRpb25zfSk7CisgICAgaWYgKG9rKQorICAgIHsKKyAgICAgICAgJHtyZXR1cm5UeXBlfSBy
ZXMgPSBzdGF0aWNfY2FzdDwke3JldHVyblR5cGV9PihXZWJLaXQ6OnRvR0RPTSgkcmV0dXJuUGFy
YW1OYW1lKSk7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorRU9GCisgICAgICAgIHB1c2go
QGNCb2R5LCAkY3VzdG9tX2dkb21fbm9kZV9hcHBlbmRfY2hpbGQpOworICAgIAorICAgICAgICBp
ZihAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgIG15ICRleGNl
cHRpb25faGFuZGxpbmcgPSA8PCAiRU9GIjsKKworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVE
ZXNjcmlwdGlvbiBlY2Rlc2M7CisgICAgV2ViQ29yZTo6Z2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0
aW9uKGVjLCBlY2Rlc2MpOworICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtf
ZnJvbV9zdHJpbmcoIkdET00iKSwgZWNkZXNjLmNvZGUsIGVjZGVzYy5uYW1lKTsKK0VPRgorICAg
ICAgICAgICAgcHVzaChAY0JvZHksICRleGNlcHRpb25faGFuZGxpbmcpOworICAgICAgICB9Cisg
ICAgICAgIHB1c2goQGNCb2R5LCAicmV0dXJuIE5VTEw7Iik7CisgICAgICAgIHB1c2goQGNCb2R5
LCAifVxuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0gZWxzaWYgKCRmbl9zaWdfdHlwZSBl
cSAiRE9NT2JqZWN0IiAmJgorICAgICAgICAgJGZ1bmN0aW9uTmFtZSBuZSAnd2Via2l0X2RvY3Vt
ZW50X2dldF9jc3NfY2FudmFzX2NvbnRleHQnKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAg
IC8qIFRPRE8gLSBnZXQgY2FudmFzIG9iamVjdCAoaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxs
X2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTsqL1xuIiApOworCisgICAgfSBlbHNpZiAoJGZu
X3NpZ190eXBlIGVxICJET01TdHJpbmciKSB7CisgICAgICAgIHB1c2goQGNCb2R5LCAiICAgICR7
YXNzaWdufWdkb21fZ3N0cmluZ19jb252ZXJ0KGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9p
bXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KSk7XG4iICk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
cHVzaChAY0JvZHksICIgICAgJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25h
bWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0pO1xuIiAp
OworICAgICAgICAKKyAgICAgICAgaWYoQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7
CisgICAgICAgICAgICBteSAkZXhjZXB0aW9uX2hhbmRsaW5nID0gPDwgIkVPRiI7CisgICAgaWYo
ZWMpIHsKKyAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uIGVjZGVzYzsK
KyAgICAgICAgV2ViQ29yZTo6Z2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKGVjLCBlY2Rlc2Mp
OworICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5n
KCJHRE9NIiksIGVjZGVzYy5jb2RlLCBlY2Rlc2MubmFtZSk7CisgICAgfQorRU9GCisgICAgICAg
ICAgICBwdXNoKEBjQm9keSwgJGV4Y2VwdGlvbl9oYW5kbGluZyk7CisgICAgICAgIH0KKyAgICB9
CisgICAgaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgeworCisg
ICAgICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgIGlm
ICgkcmV0X2lzX2NsYXNzX3R5cGUpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEBjQm9keSwgIiAg
ICAke3JldHVyblR5cGV9IHJlcyA9IHN0YXRpY19jYXN0PCR7cmV0dXJuVHlwZX0+KFdlYktpdDo6
dG9HRE9NKGdfcmVzLmdldCgpKSk7XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAgICBwdXNo
KEBjQm9keSwgIiAgICByZXR1cm4gTlVMTDsgLyogVE9ETzogcmV0dXJuIGNhbnZhcyBvYmplY3Qg
Ki9cbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAY0JvZHksICIgICAg
cmV0dXJuIHJlcztcbiIpOworICAgICAgICB9CisgICAgfQorICAgIHB1c2goQGNCb2R5LCAiXG4i
KTsKKworICAgIHB1c2goQGNCb2R5LCAifVxuXG4iKTsKK30KKworc3ViIENvdW50R2V0UHJvcGVy
dGllcyB7CisgICAgbXkgJGNsYXNzID0gc2hpZnQ7CisgICAgCisgICAgbXkgJGNvdW50ID0gMDsK
KyAgICAKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGNsYXNzLT5hdHRyaWJ1dGVzfSkg
eworICAgICAgICBpZighc2tpcEF0dHJpYnV0ZSgkYXR0cmlidXRlKSkgeworICAgICAgICAgICAg
IyBhbGwgcHJvcGVydGllcyBub3Qgc2tpcHBlZCBhcmUgZWl0aGVyIHJlYWQtb25seSBvciByZWFk
LXdyaXRlCisgICAgICAgICAgICAkY291bnQrKzsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAg
ICByZXR1cm4gJGNvdW50OworfQorCitzdWIgQ291bnRTZXRQcm9wZXJ0aWVzIHsKKyAgICBteSAk
Y2xhc3MgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkY291bnQgPSAwOworICAgIAorICAgIFNLSVBQ
Uk9QOgorICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskY2xhc3MtPmF0dHJpYnV0ZXN9KSB7
CisgICAgICAgIGlmKHNraXBBdHRyaWJ1dGUoJGF0dHJpYnV0ZSkpIHsKKyAgICAgICAgICAgIG5l
eHQgU0tJUFBST1A7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG15ICR3cml0ZWFibGUg
PSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkvOworICAgICAgICBpZigkd3JpdGVhYmxl
ICYmICEkY3VzdG9tKSB7CisgICAgICAgICAgICAjIGN1c3RvbSBwcm9wZXJ0aWVzIGFyZSByZWFk
LW9ubHkgZm9yIG5vdworICAgICAgICAgICAgJGNvdW50Kys7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgCisgICAgcmV0dXJuICRjb3VudDsKK30KKworc3ViIEdlbmVyYXRlUHJvcGVydGllcyB7Cisg
ICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRjbGFzcyA9IHNoaWZ0OworICAgIG15ICRj
bGFzc0NhcHMgPSBzaGlmdDsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gc2hpZnQ7CisgICAg
CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkY2xhc3MtPm5hbWU7CisgICAgbXkgJGNsYXNzTmFt
ZSA9IEdldENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7ICAgIyBlLmcuIFdlYktpdEVsZW1lbnQK
KyAgICAKKyAgICAjIFRoaXMgZnVuY3Rpb24gaXMgZXhwZWN0ZWQgdG8gb3BlbiBhIEdfQkVHSU5f
REVDTFMgYmxvY2ssIGJ1dCBkb2VzIG5vdCBlbmQgaXQKKyAgICBwdXNoKEBjQm9keVByaXYsICJH
X0JFR0lOX0RFQ0xTXG5cbiIpOworICAgIAorICAgIG15ICRnZXRfY291bnQgPSBDb3VudEdldFBy
b3BlcnRpZXMoJGNsYXNzKTsKKyAgICBteSAkc2V0X2NvdW50ID0gQ291bnRTZXRQcm9wZXJ0aWVz
KCRjbGFzcyk7CisgICAgCisgICAgaWYoKCRnZXRfY291bnQgPT0gMCkgJiYgKCRzZXRfY291bnQg
PT0gMCkpIHsKKyAgICAgICAgcmV0dXJuICgpOworICAgIH0KKworICBTS0lQUFJPUDoKKyAgICBm
b3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGNsYXNzLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBp
ZiAoc2tpcEF0dHJpYnV0ZSgkYXR0cmlidXRlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQUFJP
UDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgYWRkUHJvcEluY2x1ZGVIZWFkZXIoJHByb3Bf
dHlwZSk7CisgICAgfQorCisgICAgbXkgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitlbnVtIHsK
KyAgICBQUk9QXzAsCitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisK
KyAgICBteSBAdHh0X2luc3RhbGxfcHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X3NldF9wcm9wcyA9
ICgpOworICAgIG15IEB0eHRfZ2V0X3Byb3BzID0gKCk7CisKKyAgICBteSAkdHh0X2dldF9wcm9w
ID0gPDwgIkVPRiI7CitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fX2dldF9wcm9wZXJ0
eV9mbihHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAgICAgICAgICAgICAgICAg
ICAgR1ZhbHVlICogdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBHUGFyYW1TcGVjICogcHNw
ZWMpCit7CisgICAgJHtjbGFzc05hbWV9ICpzZWxmID0gV0VCS0lUXyR7Y2xhc3NDYXBzfShvYmpl
Y3QpOworICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiBnc2VsZiA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKKyAgICBzd2l0Y2ggKHByb3BfaWQpIHsKK0VPRgorICAgIHB1c2goQHR4dF9nZXRf
cHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgbXkgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0Yi
Oworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19zZXRfcHJvcGVydHlfZm4oR09iamVj
dCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdW
YWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQor
eworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IFdFQktJVF8ke2NsYXNzQ2Fwc30ob2JqZWN0KTsK
KyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogZ3NlbGYgPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7CisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3Bz
LCAkdHh0X3NldF9wcm9wKTsKKyAgICAKKyAgICAjIEl0ZXJhdGUgb3ZlciB0aGUgaW50ZXJmYWNl
IGF0dHJpYnV0ZXMgYW5kIGdlbmVyYXRlIGEgcHJvcGVydHkgZm9yCisgICAgIyBlYWNoIG9uZSBv
ZiB0aGVtLgorICBTS0lQRU5VTToKKyAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGNsYXNz
LT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBpZiAoc2tpcEF0dHJpYnV0ZSgkYXR0cmlidXRlKSkg
eworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRw
cm9wX25hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CisgICAgICAgIG15ICRzZXRw
cm9wX25hbWVfZm4gPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkcHJvcF9uYW1lKTsKKyAg
ICAgICAgbXkgJGdldHByb3BfbmFtZV9mbiA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRw
cm9wX25hbWUpOworICAgICAgICBteSAkcHJvcF9uYW1lX2RlY2FtZWwgPSBkZWNhbWVsaXplKCRw
cm9wX25hbWUpOworICAgICAgICBteSAkcHJvcE5hbWUgPSAkcHJvcF9uYW1lX2RlY2FtZWw7Cisg
ICAgICAgICRwcm9wTmFtZSA9fiBzL18vLS9nOworICAgICAgICBteSAkcHJvcENhcHMgPSB1Yygk
cHJvcF9uYW1lX2RlY2FtZWwpOworICAgICAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT50eXBlOworICAgICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUp
OworICAgICAgICBteSAke3Byb3BFbnVtfSA9ICJQUk9QXyR7cHJvcENhcHN9IjsKKyAgICAgICAg
bXkgJHtwcm9wX2d0eXBlfSA9IGRlY2FtZWxpemUoJHByb3BfdHlwZSk7CisgICAgICAgIG15ICR7
cHJvcEdUeXBlfSA9IHVjKCRwcm9wX2d0eXBlKTsKKyAgICAgICAgbXkgJGxjYXNlX2d0eXBlbmFt
ZSA9ICJ3ZWJraXRfIiAuICRwcm9wX2d0eXBlOworCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwg
IiAgICAke3Byb3BFbnVtfSxcbiIpOworCisgICAgICAgIG15ICRndHlwZSA9IEdldFByb3BHVHlw
ZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEQUJM
RSI7CisgICAgICAgIG15ICR3cml0ZWFibGUgPSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9u
bHkvOworICAgICAgICBteSAkY29uc3QgPSAicmVhZC1vbmx5ICI7CisgICAgICAgIGlmICgkd3Jp
dGVhYmxlICYmICRjdXN0b20pIHsKKyAgICAgICAgICAgICRjb25zdCA9ICJyZWFkLW9ubHkgKGR1
ZSB0byBjdXN0b20gZnVuY3Rpb25zIG5lZWRlZCBpbiB3ZWJraXQvZ29iamVjdCkiOworICAgICAg
ICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAgfQorICAgICAgICBpZiAoJHdyaXRlYWJsZSAm
JiAhJGN1c3RvbSkgeworICAgICAgICAgICAgJGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEV1JJ
VEUiOworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtd3JpdGUgIjsKKyAgICAgICAgfQorCisg
ICAgICAgIG15ICRfZ3R5cGUgPSAkZ3R5cGU7CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInVzaG9y
dCIpIHsKKyAgICAgICAgICAgICRfZ3R5cGUgPSAidWludCI7ICMgeXVrCisgICAgICAgIH0KKyAg
ICAgICAgJG5pY2sgPSBkZWNhbWVsaXplKCR7aW50ZXJmYWNlTmFtZX0pIC4gIl8iIC4gJHByb3Bf
bmFtZV9kZWNhbWVsOworICAgICAgICAkbmljayA9fiBzL18vIC9nOworICAgICAgICAkbmljayA9
fiBzL1xiKFx3KS9cVSQxL2c7ICAgIyBjYXBpdGFsaXplIGVhY2ggd29yZAorICAgICAgICAkbG9u
ZyA9ICIke2NvbnN0fSAke3R5cGV9ICR7aW50ZXJmYWNlTmFtZX0uJHtwcm9wTmFtZX0iOworICAg
ICAgICBteSAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkgKGdfa2xhc3MsICR7cHJvcEVudW19LAorICAgICAgICAgICAgZ19w
YXJhbV9zcGVjXyR7X2d0eXBlfSAoIiR7cHJvcE5hbWV9IiwgLyogbmFtZSAqLworICAgICAgICAg
ICAgICAgICIkbmljayIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAg
IiRsb25nIiwgLyogbG9uZ2VyIC0gY291bGQgdXNlIHNvbWUgZXh0cmEgZG9jIGhlcmUgKi8KK0VP
RgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywgJHR4dF9pbnN0YWxsX3Byb3ApOwor
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9ICIvKiBUT0RPISAkZ3R5cGUgKi9cbiI7CisKKyAg
ICAgICAgaWYgKCR3cml0ZWFibGUpIHsKKyAgICAgICAgICAgIG15ICRvayA9IDA7CisgICAgICAg
ICAgICBteSAkY29udmVydF9mbiA9ICIiOworCisgICAgICAgICAgICBpZiAoJGd0eXBlIGVxICJz
dHJpbmciKSB7CisgICAgICAgICAgICAgICAgJGNvbnZlcnRfZm4gPSAiV2ViQ29yZTo6U3RyaW5n
Ojpmcm9tVVRGOCI7CisgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGVsc2lmICgoJGd0eXBlIGVxICJib29sZWFuIiBhbmQgJHtpbnRlcmZhY2VOYW1l
fSBuZSAiRE9NV2luZG93Iikgb3IgICAgICMgVE9ETzogaGFuZGxlIERPTVdpbmRvdworICAgICAg
ICAgICAgICAgICAgICRndHlwZSBlcSAiZmxvYXQiIG9yCisgICAgICAgICAgICAgICAgICAgKCRn
dHlwZSBlcSAiZG91YmxlIiBhbmQgJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93Iikgb3IK
KyAgICAgICAgICAgICAgICAgICAkZ3R5cGUgZXEgInVpbnQ2NCIgb3IKKyAgICAgICAgICAgICAg
ICAgICAoJGd0eXBlIGVxICJ1bG9uZyIgYW5kICR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRv
dyIpIG9yCisgICAgICAgICAgICAgICAgICAgKCRndHlwZSBlcSAibG9uZyIgYW5kICR7aW50ZXJm
YWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIG9yCisgICAgICAgICAgICAgICAgICAgJGd0eXBlIGVx
ICJ1aW50IiBvcgorICAgICAgICAgICAgICAgICAgICRndHlwZSBlcSAidXNob3J0IiBvcgorICAg
ICAgICAgICAgICAgICAgICRndHlwZSBlcSAidWNoYXIiIG9yCisgICAgICAgICAgICAgICAgICAg
JGd0eXBlIGVxICJjaGFyIikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICAjIFRPRE86IGhhbmRsZSBMb2NhdGlvbgorICAgICAgICAgICAgaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJMb2NhdGlvbiIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAw
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoJG9rKSB7CisgICAgICAgICAgICAg
ICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICBjYXNlICR7cHJvcEVudW19OlxuICAgIHtcbiIp
OworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRp
b25zfTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZigkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0RnJvbVN0cmluZyJ9KSB7Cisg
ICAgICAgICAgICAgICAgICAgICRjb252ZXJ0X2ZuID0gIldlYkNvcmU6OlN0cmluZzo6bnVtYmVy
IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
cHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgZ3NlbGYtPnNldCR7c2V0cHJvcF9uYW1lX2Zu
fSgke2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRndHlwZSAodmFsdWUpKSIpOworCisgICAgICAg
ICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwgZWMiKSBpZiBAeyRhdHRyaWJ1dGUtPnNl
dHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIp
O1xuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBi
cmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1
c2goQHR4dF9nZXRfcHJvcHMsICIgICBjYXNlICR7cHJvcEVudW19OlxuICAgIHtcbiIpOworCisg
ICAgICAgIG15ICRleGNlcHRpb24gPSAiIjsKKyAgICAgICAgaWYgKEB7JGF0dHJpYnV0ZS0+Z2V0
dGVyRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICRleGNlcHRpb24gPSAiZWMiOworICAgICAg
ICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7
CisgICAgICAgIG15ICRwb3N0X2NvbnZlcnRfZm4gPSAiIjsKKyAgICAgICAgbXkgJGRvbmUgPSAw
OworICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICBwdXNoKEB0
eHRfZ2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nICh2YWx1ZSwgZ2RvbV9n
c3RyaW5nX2NvbnZlcnQoZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2V4Y2VwdGlvbn0pKSk7
XG4iKTsKKyAgICAgICAgICAgICRkb25lID0gMTsKKyAgICAgICAgfQorICAgICAgICBlbHNpZiAo
JGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICAkdHh0X2dldF9wcm9wID0gPDwgIkVP
RiI7CisgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9PiBwdHIgPSBnc2Vs
Zi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSk7CisgICAgICAgIGdfdmFsdWVfc2V0
X29iamVjdCAodmFsdWUsIFdlYktpdDo6dG9HRE9NKHB0ci5nZXQoKSkpOworRU9GCisgICAgICAg
ICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgICAgICAgICAg
JGRvbmUgPSAxOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZigkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb252ZXJ0RnJvbVN0cmluZyJ9KSB7Cisg
ICAgICAgICAgICAjIFRPRE86IEFkZCBvdGhlciBjb252ZXJzaW9uIGZ1bmN0aW9ucyBmb3IgZGlm
ZmVyZW50IHR5cGVzLiAgQ3VycmVudAorICAgICAgICAgICAgIyBJRExzIG9ubHkgbGlzdCBsb25n
cy4KKyAgICAgICAgICAgIGlmKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICAgICAk
Y29udmVydF9mbiA9ICIiOworICAgICAgICAgICAgICAgICRwb3N0X2NvbnZlcnRfZm4gPSAiLnRv
SW50KCkiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkaWUgIkNhbid0
IGNvbnZlcnQgdG8gdHlwZSAke2d0eXBlfS4iOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgaWYgKCEkZG9uZSkgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywg
IiAgICAgICAgZ192YWx1ZV9zZXRfJF9ndHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2VsZi0+
JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xuIik7
CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBicmVh
aztcbiAgICB9XG4iKTsKKworICAgICAgICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/
Pz8KKyAgICAgICAgIyBjYW4gaXQgYmUgZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0
eXBlCisgICAgICAgICMgYW5kIGdldHRpbmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUgbWlu
LW1heCBmb3IgZXhhbXBsZT8KKyAgICAgICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAgICAg
ICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01J
TklOVCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBtYXgg
Ki8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFs
bF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8K
K0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZMT0FU
LCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4ICov
CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9
IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAvKiBt
aW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAgICAg
ICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5
cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVP
RiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAg
IEdfTUFYVUlOVDY0LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVm
YXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAg
ICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAs
ICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXggKi8K
KyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWluICov
CisgICAgICAgICAgICAgICAgR19NQVhMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAw
LCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAi
dWludCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAg
ICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlO
VCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VP
RgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICR0
eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8q
IG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAgICAg
ICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRn
dHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJF
T0YiOworICAgICAgICAgICAgICAgIEdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAgICAg
ICAgICAgICAgIEdfTUFYSU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAg
IC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7
CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAg
ICAgIDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAvKiBt
YXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAg
ICAgIH0gZWxzaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0
YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLwor
RU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBXRUJLSVRfVFlQ
RV8ke3Byb3BHVHlwZX0sIC8qIGdvYmplY3QgdHlwZSAqLworRU9GCisgICAgICAgIH0KKyAgICAg
ICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAoR1BhcmFtRmxh
Z3MpJHtncGFyYW1mbGFnfSkpOworCitFT0YKKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJv
cHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9keVByaXYsICJ9
O1xuXG4iKTsKKworICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lk
LCBwc3BlYyk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9n
ZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0Yi
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9J
RChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9G
CisgICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisgICAgCisgICAgaWYg
KCRnZXRfY291bnQgPiAwKSB7CisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgQHR4dF9nZXRfcHJv
cHMpOworICAgIH0KKyAgICAKKyAgICBpZiAoJHNldF9jb3VudCA+IDApIHsKKyAgICAgICAgcHVz
aChAY0JvZHlQcml2LCBAdHh0X3NldF9wcm9wcyk7CisgICAgfQorICAgIAorICAgIHJldHVybiBA
dHh0X2luc3RhbGxfcHJvcHM7Cit9CisKKyMgR2VuZXJhdGUgaGVhZGVyIGFuZCBpbXBsZW1lbnRh
dGlvbgorc3ViIEdlbmVyYXRlIHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGNs
YXNzID0gc2hpZnQ7CisKKyAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGNsYXNzLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CisgICAgbXkgJGhhc1JlYWxQYXJlbnQgPSBA
eyRjbGFzcy0+cGFyZW50c30gPiAwOworICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFy
ZW50IHx8ICRoYXNSZWFsUGFyZW50OworICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJl
bnRDbGFzc05hbWUoJGNsYXNzKTsKKyAgICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJlbnRH
T2JqZWN0VHlwZSgkY2xhc3MpOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGNsYXNzLT5uYW1l
OworICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOyAgICMg
ZS5nLiBXZWJLaXRFbGVtZW50CisgICAgbXkgJGhkck5hbWUgPSBHZXRIZWFkZXJOYW1lKCRpbnRl
cmZhY2VOYW1lKTsKKyAgICAKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBo
ZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxh
dGUpOworICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNsdWRlc3sid2Vi
a2l0bWFyc2hhbC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IndlYmtpdGJpbmRpbmcuaCJ9
ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJ3ZWJraXQvJGhkck5hbWUuaCJ9ID0gMTsKKyAgICAk
aW1wbEluY2x1ZGVzeyJ3ZWJraXQvJHtoZHJOYW1lfVByaXZhdGUuaCJ9ID0gMTsKKyAgICAkaW1w
bEluY2x1ZGVzeyJnb2JqZWN0L2dzdHJpbmdjb252ZXJ0LmgifSA9IDE7CisgICAgJGltcGxJbmNs
dWRlc3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkV4Y2Vw
dGlvbkNvZGUuaCJ9ID0gMTsKKyAgICAKKyAgICBteSAkcGFyZW50SW50ZXJmYWNlTmFtZSA9IHN1
YnN0cigkcGFyZW50Q2xhc3NOYW1lLCBsZW5ndGgoIldlYktpdCIpKTsgICAgICMgc3RyaXAgV2Vi
S2l0IHByZWZpeAorICAgIG15ICRwYXJlbnRIZHJOYW1lID0gR2V0SGVhZGVyTmFtZSgkcGFyZW50
SW50ZXJmYWNlTmFtZSk7CisgICAgJGltcGxJbmNsdWRlc3sid2Via2l0LyR7cGFyZW50SGRyTmFt
ZX0uaCJ9ID0gMTsKKyAgICBpZiAoJHBhcmVudEhkck5hbWUgbmUgIldlYktpdERPTU9iamVjdCIp
IHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3sid2Via2l0LyR7cGFyZW50SGRyTmFtZX1Qcml2YXRl
LmgifSA9IDE7CisgICAgfQorICAgICRoZHJJbmNsdWRlc3sid2Via2l0LyR7cGFyZW50SGRyTmFt
ZX0uaCJ9ID0gMTsKKworICAgICMgR2V0IGNvcnJlY3QgcGFzcy9zdG9yZSB0eXBlcyByZXNwZWN0
aW5nIFBPRFR5cGUgZmxhZworICAgIG15ICRwb2RUeXBlID0gJGNsYXNzLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiUE9EVHlwZSJ9OworICAgIG15ICRwYXNzVHlwZSA9ICRwb2RUeXBlID8gIkpTU1ZH
UE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+KiIgOiAiJGludGVyZmFjZU5hbWUqIjsKKworICAgIGlm
ICgke2ludGVyZmFjZU5hbWV9IGVxICJET01XaW5kb3ciIHx8ICghJGhhc1BhcmVudCBvciAkY2xh
c3MtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZVRvSlMifSkKKyAgICAgICAgYW5kICFV
c2VzTWFudWFsVG9KU0ltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VOYW1lKSkgeworICAgICAgICBt
eSAkY29udmVydGVyID0gPDwgIkVPRiI7CituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK2dwb2lu
dGVyIHRvR0RPTShXZWJDb3JlOjokcGFzc1R5cGUgb2JqKQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKG9iaiAhPSBOVUxMLCBOVUxMKTsKKworICAgIGlmIChncG9pbnRlciByZXQgPSBHRE9N
T2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChvYmopKQorICAgICAgICByZXR1cm4gcmV0OworCisg
ICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KG9iaiwgV2ViS2l0Ojp3cmFw
JHtpbnRlcmZhY2VOYW1lfShvYmopKTsKK30KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYktpdCAv
LworCitFT0YKKworICAgICAgICBwdXNoKEBjQm9keSwgJGNvbnZlcnRlcik7CisgICAgfQorCisg
ICAgbXkgJGltcGxDb250ZW50ID0gIiI7CisKKyAgICBwdXNoKEBjQm9keSwgImV4dGVybiBcIkNc
IiB7XG5cbiIpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCisgICAg
QGhQcmVmaXggPSBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICAgCisgICAgIyBI
ZWFkZXIgZ3VhcmQKKyAgICBteSAkZ3VhcmQgPSAiX18iIC4gJGNsYXNzTmFtZSAuICJfSF9fIjsK
KworICAgIG15ICRjbGFzc0NhcHMgPSB1YyhkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSk7Cisg
ICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9ICJ3ZWJraXRfIiAuIGRlY2FtZWxpemUoJGludGVyZmFj
ZU5hbWUpOworCisgICAgQGhQcmVmaXhHdWFyZCA9IDw8ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQK
KyNkZWZpbmUgJGd1YXJkCitFT0YKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworR19C
RUdJTl9ERUNMUworCitFT0YKKworICAgIHB1c2goQGhCb2R5UHJlLCAkaW1wbENvbnRlbnQpOwor
CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfJHtj
bGFzc0NhcHN9ICAgICAgICAgICAgKCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgpKQorI2Rl
ZmluZSBXRUJLSVRfJHtjbGFzc0NhcHN9KG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFXyR7Y2xhc3NDYXBzfSwgJHtjbGFzc05hbWV9
KSkKKyNkZWZpbmUgV0VCS0lUXyR7Y2xhc3NDYXBzfV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9D
SEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV8ke2NsYXNzQ2Fwc30sICRjbGFz
c05hbWUpQ2xhc3MpCisjZGVmaW5lIFdFQktJVF9JU18ke2NsYXNzQ2Fwc30ob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfJHtjbGFzc0Nh
cHN9KSkKKyNkZWZpbmUgV0VCS0lUX0lTXyR7Y2xhc3NDYXBzfV9DTEFTUyhrbGFzcykgKEdfVFlQ
RV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV8ke2NsYXNzQ2Fwc30pKQor
I2RlZmluZSBXRUJLSVRfJHtjbGFzc0NhcHN9X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RB
TkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFXyR7Y2xhc3NDYXBzfSwgJHtjbGFzc05h
bWV9Q2xhc3MpKQorCitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfSB7CisgICAgJHtwYXJlbnRDbGFzc05h
bWV9IHBhcmVudF9pbnN0YW5jZTsKK307CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9Q2xhc3Mgewor
ICAgICR7cGFyZW50Q2xhc3NOYW1lfUNsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9B
UEkgR1R5cGUKKyR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSAodm9pZCk7CisKK0VPRgorCisg
ICAgcHVzaChAaEJvZHksICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAi
RU9GIjsKKworR19CRUdJTl9ERUNMUworCitHX0RFRklORV9UWVBFKCR7Y2xhc3NOYW1lfSwgJHts
Y2FzZV9pZmFjZW5hbWV9LCAke3BhcmVudEdPYmpUeXBlfSk7CisKK0dfRU5EX0RFQ0xTCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCiske2NsYXNzTmFtZX0gKgord3JhcCR7aW50ZXJmYWNlTmFtZX0o
V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqY29yZU9iamVjdCkKK3sKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChjb3JlT2JqZWN0ICE9IE5VTEwsIE5VTEwpOworICAgIAorICAgICR7Y2xhc3NO
YW1lfSAqd3JhcHBlciA9IFdFQktJVF8ke2NsYXNzQ2Fwc30oZ19vYmplY3RfbmV3KFdFQktJVF9U
WVBFXyR7Y2xhc3NDYXBzfSwgTlVMTCkpOworICAgIAorICAgIGNvcmVPYmplY3QtPnJlZigpOwor
ICAgIFdFQktJVF9ET01fT0JKRUNUKHdyYXBwZXIpLT5jb3JlT2JqZWN0ID0gY29yZU9iamVjdDsK
KworICAgIHJldHVybiB3cmFwcGVyOworfQorCitXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICoK
K2NvcmUoJHtjbGFzc05hbWV9ICpyZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KHJlcXVlc3QgIT0gTlVMTCwgTlVMTCk7CisgICAgCisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VO
YW1lfSAqY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0g
Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpOworICAgIGdfYXNzZXJ0
KGNvcmVPYmplY3QgIT0gTlVMTCk7CisgICAgCisgICAgcmV0dXJuIGNvcmVPYmplY3Q7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdCAvCisKK0VPRgorICAgIHB1c2goQGNCb2R5UHJpdiwgJGlt
cGxDb250ZW50KTsKKworICAgIG15IEB0eHRfaW5zdGFsbF9wcm9wcyA9ICRvYmplY3QtPkdlbmVy
YXRlUHJvcGVydGllcygkY2xhc3MsICRjbGFzc0NhcHMsICRsY2FzZV9pZmFjZW5hbWUpOworICAg
IAorICAgIG15ICRpbnN0YWxsX2dldF9wcm9wID0gIi8vIG5vIGdldCBwcm9wZXJ0aWVzIjsKKyAg
ICBteSAkaW5zdGFsbF9zZXRfcHJvcCA9ICIvLyBubyBzZXQgcHJvcGVydGllcyI7CisgICAgCisg
ICAgaWYgKENvdW50R2V0UHJvcGVydGllcygkY2xhc3MpID4gMCkgeworICAgICAgICAkaW5zdGFs
bF9nZXRfcHJvcCA9ICJnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1f
X2dldF9wcm9wZXJ0eV9mbjsiOworICAgIH0KKyAgICAKKyAgICBpZiAoQ291bnRTZXRQcm9wZXJ0
aWVzKCRjbGFzcykgPiAwKSB7CisgICAgICAgICRpbnN0YWxsX3NldF9wcm9wID0gImdfa2xhc3Mt
PnNldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2ZuOyI7Cisg
ICAgfQorCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisKK3N0YXRpYyB2b2lkICR7bGNh
c2VfaWZhY2VuYW1lfV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgV2ViS2l0RE9N
T2JqZWN0KiBkb21fb2JqZWN0ID0gV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICAKKyAg
ICBpZiAoZG9tX29iamVjdCAhPSBOVUxMICYmIGRvbV9vYmplY3QtPmNvcmVPYmplY3QgIT0gTlVM
TCkgeworICAgICAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICpjb3JlT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqPihkb21fb2JqZWN0LT5jb3JlT2Jq
ZWN0KTsKKyAgICAgICAgY29yZU9iamVjdC0+ZGVyZWYoKTsKKyAgICAgICAgCisgICAgICAgIGRv
bV9vYmplY3QtPmNvcmVPYmplY3QgPSBOVUxMOworICAgICAgICAKKyAgICAgICAgV2ViS2l0OjpH
RE9NT2JqZWN0Q2FjaGU6OmZvcmdldERPTU9iamVjdChjb3JlT2JqZWN0KTsKKyAgICB9CisKKyAg
ICBHX09CSkVDVF9DTEFTUygke2xjYXNlX2lmYWNlbmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxp
emUob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2NsYXNzX2lu
aXQoJHtjbGFzc05hbWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xhc3Mg
Kmdfa2xhc3MgPSBHX09CSkVDVF9DTEFTUyAocmVxdWVzdENsYXNzKTsKKyAgICBnX2tsYXNzLT5m
aW5hbGl6ZSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZTsKKyAgICAke2luc3RhbGxfZ2V0
X3Byb3B9CisgICAgJHtpbnN0YWxsX3NldF9wcm9wfQorCitAdHh0X2luc3RhbGxfcHJvcHMKK30K
Kworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1
ZXN0KQoreworfQorCitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisK
KyAgICAkaW1wbEluY2x1ZGVzeyJ3ZWJraXQvV2ViS2l0JHtpbnRlcmZhY2VOYW1lfVByaXZhdGUu
aCJ9ID0gMTsKKworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsK
KworICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRjbGFzcy0+ZnVuY3Rpb25zfSkgeworICAg
ICAgICAkb2JqZWN0LT5HZW5lcmF0ZUZ1bmN0aW9uKCRpbnRlcmZhY2VOYW1lLCAkZnVuY3Rpb24s
ICIiKTsKKyAgICB9CisKKyAgICBUT1A6CisgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRj
bGFzcy0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgaWYgKHNraXBBdHRyaWJ1dGUoJGF0dHJpYnV0
ZSkpIHsKKyAgICAgICAgICAgIG5leHQgVE9QOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lIGVxICJ0eXBlIgorICAgICAgICAgICAg
IyBUaGlzIHdpbGwgY29uZmxpY3Qgd2l0aCB0aGUgZ2V0X3R5cGUoKSBmdW5jdGlvbiB3ZSBkZWZp
bmUgdG8gcmV0dXJuIGEgR1R5cGUKKyAgICAgICAgICAgICMgYWNjb3JkaW5nIHRvIEdPYmplY3Qg
Y29udmVudGlvbnMuICBTa2lwIHRoaXMgZm9yIG5vdy4KKyAgICAgICAgICAgIHx8ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZSBlcSAiVVJMIiAgICAgIyBUT0RPOiBoYW5kbGUgdGhpcworICAg
ICAgICAgICAgfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q29udmVydEZyb21TdHJpbmcifSAgICAjIFRPRE86IGhhbmRsZSB0aGlzCisgICAgICAgICAgICAp
IHsKKyAgICAgICAgICAgIG5leHQgVE9QOworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgbXkgJGF0dG5hbWVfdXBwZXIgPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPm5hbWUpOworICAgICAgICBteSAkZ2V0bmFtZSA9ICJnZXQke2F0dG5h
bWVfdXBwZXJ9IjsKKyAgICAgICAgbXkgJHNldG5hbWUgPSAic2V0JHthdHRuYW1lX3VwcGVyfSI7
CisgICAgICAgIGlmIChDbGFzc0hhc0Z1bmN0aW9uKCRjbGFzcywgJGdldG5hbWUpIHx8IENsYXNz
SGFzRnVuY3Rpb24oJGNsYXNzLCAkc2V0bmFtZSkpIHsKKyAgICAgICAgICAgICMgVmVyeSBvY2Nh
c2lvbmFsbHkgYW4gSURMIGZpbGUgZGVmaW5lcyBnZXR0ZXIvc2V0dGVyIGZ1bmN0aW9ucyBmb3Ig
b25lIG9mIGl0cworICAgICAgICAgICAgIyBhdHRyaWJ1dGVzOyBpbiB0aGlzIGNhc2Ugd2UgZG9u
J3QgbmVlZCB0byBhdXRvZ2VuZXJhdGUgdGhlIGdldHRlci9zZXR0ZXIuCisgICAgICAgICAgICBu
ZXh0IFRPUDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgIyBHZW5lcmF0ZSBhbiBhdHRy
aWJ1dGUgZ2V0dGVyLiAgRm9yIGFuIGF0dHJpYnV0ZSAiZm9vIiwgdGhpcyBpcyBhIGZ1bmN0aW9u
IG5hbWVkCisgICAgICAgICMgImdldF9mb28iIHdoaWNoIGNhbGxzIGEgRE9NIGNsYXNzIG1ldGhv
ZCBuYW1lZCBmb28oKS4KKyAgICAgICAgbXkgJGZ1bmN0aW9uID0gbmV3IGRvbUZ1bmN0aW9uKCk7
CisgICAgICAgICRmdW5jdGlvbi0+c2lnbmF0dXJlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7Cisg
ICAgICAgICRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9ucygkYXR0cmlidXRlLT5nZXR0ZXJFeGNl
cHRpb25zKTsKKyAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVGdW5jdGlvbigkaW50ZXJmYWNlTmFt
ZSwgJGZ1bmN0aW9uLCAiZ2V0Iik7CisgICAgICAgIAorICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+
dHlwZSA9fiAvXnJlYWRvbmx5LyB8fAorICAgICAgICAgICAgJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVwbGFjZWFibGUifSAgIyBjYW4ndCBoYW5kbGUgdGhp
cyB5ZXQKKyAgICAgICAgICAgICkgeworICAgICAgICAgICAgbmV4dCBUT1A7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgICMgR2VuZXJhdGUgYW4gYXR0cmlidXRlIHNldHRlci4gIEZvciBh
biBhdHRyaWJ1dGUsICJmb28iLCB0aGlzIGlzIGEgZnVuY3Rpb24gbmFtZWQKKyAgICAgICAgIyAi
c2V0X2ZvbyIgd2hpY2ggY2FsbHMgYSBET00gY2xhc3MgbWV0aG9kIG5hbWVkIHNldEZvbygpLgor
ICAgICAgICAkZnVuY3Rpb24gPSBuZXcgZG9tRnVuY3Rpb24oKTsKKyAgICAgICAgCisgICAgICAg
ICRmdW5jdGlvbi0+c2lnbmF0dXJlKG5ldyBkb21TaWduYXR1cmUoKSk7CisgICAgICAgICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5uYW1lKCRzZXRuYW1lKTsKKyAgICAgICAgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPnR5cGUoInZvaWQiKTsKKyAgICAgICAgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcygkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcyk7
CisgICAgICAgIAorICAgICAgICBteSAkcGFyYW0gPSBuZXcgZG9tU2lnbmF0dXJlKCk7CisgICAg
ICAgICRwYXJhbS0+bmFtZSgidmFsdWUiKTsKKyAgICAgICAgJHBhcmFtLT50eXBlKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+dHlwZSk7CisgICAgICAgIG15ICVhdHRyaWJ1dGVzID0gKCk7CisgICAg
ICAgICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpOworICAgICAgICBteSAk
YXJyYXlSZWYgPSAkZnVuY3Rpb24tPnBhcmFtZXRlcnM7CisgICAgICAgIHB1c2goQCRhcnJheVJl
ZiwgJHBhcmFtKTsKKyAgICAgICAgCisgICAgICAgICRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9u
cygkYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zKTsKKyAgICAgICAgCisgICAgICAgICRvYmpl
Y3QtPkdlbmVyYXRlRnVuY3Rpb24oJGludGVyZmFjZU5hbWUsICRmdW5jdGlvbiwgInNldCIpOwor
ICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBleHRlcm4gXCJDXCIgKi9cblxuIik7Cisg
ICAgcHVzaChAY0JvZHlQcml2LCAiR19FTkRfREVDTFNcblxuIik7CisKKyAgICBwdXNoKEBoQm9k
eSwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2goQGhCb2R5LCAiI2VuZGlmIC8qICRndWFy
ZCAqL1xuIik7Cit9CisKKyMgSW50ZXJuYWwgaGVscGVyCitzdWIgV3JpdGVEYXRhIHsKKyAgICBt
eSAoJG9iamVjdCwgJG5hbWUpID0gQF87CisKKyAgICAjIFdyaXRlIHB1YmxpYyBoZWFkZXIuCisg
ICAgbXkgJGhkckZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVu
KEhFQURFUiwgIj4kaGRyRk5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5h
bWUiOworCisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4OworICAgIHByaW50IEhFQURFUiBAaFBy
ZWZpeEd1YXJkOworICAgIHByaW50IEhFQURFUiAiXG4jaW5jbHVkZSBcIndlYmtpdC93ZWJraXRk
b21kZWZpbmVzLmhcIlxuIjsKKyAgICBwcmludCBIRUFERVIgIiNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPlxuIjsKKyAgICBwcmludCBIRUFERVIgIiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5l
cy5oPlxuIjsKKyAgICBwcmludCBIRUFERVIgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNv
cnQga2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWhk
ckluY2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIjsKKyAgICBwcmludCBIRUFERVIgQGhC
b2R5UHJlOworICAgIHByaW50IEhFQURFUiBAaEJvZHk7CisKKyAgICBjbG9zZShIRUFERVIpOwor
CisgICAgIyBXcml0ZSB0aGUgaW1wbGVtZW50YXRpb24KKyAgICBteSAkaW1wbEZpbGVOYW1lID0g
IiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oSU1QTCwgIj4kaW1wbEZp
bGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGltcGxGaWxlTmFtZSI7CisKKyAg
ICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIDxnbGliLW9i
amVjdC5oPlxuIjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcImNvbmZpZy5oXCJcblxuIjsK
KyAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8d3RmL0dldFB0ci5oPlxuIjsKKyAgICBwcmludCBJ
TVBMICIjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD5cbiI7CisgICAgcHJpbnQgSU1QTCBtYXAg
eyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVpbXBsSW5jbHVkZXMpOworICAgIHBy
aW50IElNUEwgIlxuIiBpZiBrZXlzKCVpbXBsSW5jbHVkZXMpOworICAgIHByaW50IElNUEwgQGNC
b2R5OworCisgICAgcHJpbnQgSU1QTCAiXG4iOworICAgIHByaW50IElNUEwgQGNCb2R5UHJpdjsK
KworICAgIGNsb3NlKElNUEwpOworCisgICAgJWltcGxJbmNsdWRlcyA9ICgpOworICAgICVoZHJJ
bmNsdWRlcyA9ICgpOworICAgIEBoUHJlZml4ID0gKCk7CisgICAgQGhQcmVmaXhHdWFyZCA9ICgp
OworICAgIEBoQm9keVByZSA9ICgpOworICAgIEBoQm9keSA9ICgpOworCisgICAgQGNQcmVmaXgg
PSAoKTsKKyAgICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7Cit9CisKKzE7Cklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5wbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvZ29iamVjdC1nZW5lcmF0ZS5wbAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nb2JqZWN0LWdlbmVyYXRlLnBs
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc4IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMKKyMg
Q29weXJpZ2h0IChDKSAyMDA5IEFkYW0gRGluZ2xlIDxhZGFtQHlvcmJhLm9yZz4KKyMKKyMgVGhp
cyBmaWxlIGlzIHBhcnQgb2YgV2ViS2l0CisjIAorIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisjIAorIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjIAorIyBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisjIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyMgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisjIAorCitteSAkY2xhc3NsaXN0ID0gPFNURElOPjsKK2Nob21wKCRjbGFzc2xpc3QpOwor
bXkgQGNsYXNzZXMgPSBzcGxpdCAvIC8sICRjbGFzc2xpc3Q7CitAY2xhc3NlcyA9IHNvcnQgQGNs
YXNzZXM7CisKK3ByaW50IDw8RU9GOworLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktp
dCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBi
eSBnb2JqZWN0LWdlbmVyYXRlLnBsLiAgRE8gTk9UIE1PRElGWSEKKyAgIAorICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCitFT0YKKworbXkgJG91dFR5cGUgPSAk
QVJHVlswXTsKK215ICRoZWFkZXI7CitpZiAoJG91dFR5cGUgZXEgImRlZmluZXMiKSB7CisgICAg
JGhlYWRlciA9ICJ3ZWJraXRkb21kZWZpbmVzX2giOworfSBlbHNpZiAoJG91dFR5cGUgZXEgIndl
YmtpdGRvbSIpIHsKKyAgICAkaGVhZGVyID0gIndlYmtpdGRvbV9oIjsKK30gZWxzZSB7CisgICAg
ZGllICJ1bmtub3duIG91dHB1dCB0eXBlIjsKK30KKworcHJpbnQgIiNpZm5kZWYgJHtoZWFkZXJ9
XG4iOworcHJpbnQgIiNkZWZpbmUgJHtoZWFkZXJ9XG4iOworcHJpbnQgIlxuIjsKKworaWYgKCRv
dXRUeXBlIGVxICJkZWZpbmVzIikgeworICAgIGZvcmVhY2ggbXkgJGNsYXNzIChAY2xhc3Nlcykg
eworICAgICAgICBwcmludCAidHlwZWRlZiBzdHJ1Y3QgX1dlYktpdCR7Y2xhc3N9IFdlYktpdCR7
Y2xhc3N9O1xuIjsKKyAgICAgICAgcHJpbnQgInR5cGVkZWYgc3RydWN0IF9XZWJLaXQke2NsYXNz
fUNsYXNzIFdlYktpdCR7Y2xhc3N9Q2xhc3M7XG4iOworICAgICAgICBwcmludCAiXG4iOworICAg
IH0KK30gZWxzaWYgKCRvdXRUeXBlIGVxICJ3ZWJraXRkb20iKSB7CisgICAgZm9yZWFjaCBteSAk
Y2xhc3MgKEBjbGFzc2VzKSB7CisgICAgICAgIHByaW50ICIjaW5jbHVkZSA8d2Via2l0L1dlYktp
dCR7Y2xhc3N9Lmg+XG4iOworICAgIH0KK30KKworcHJpbnQgIlxuIjsKK3ByaW50ICIjZW5kaWZc
biI7CisKSW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiA0MjY2MikKKysrIFdlYkNv
cmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw5IEBA
IG1vZHVsZSBldmVudHMgewogI2lmICFkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOwotICAgICAgICAK
KworICAgICAgICAvLyBGSVhNRTogR09iamVjdCBpcyBpbiBDLCB3aGljaCBkb2VzIG5vdCBzdXBw
b3J0IG92ZXJsb2FkZWQgZnVuY3Rpb25zCisjaWYgIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkK
ICAgICAgICAgdm9pZCBpbml0S2V5Ym9hcmRFdmVudChpbiBET01TdHJpbmcgdHlwZSwgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGUsIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuY2VsYWJsZSwgCkBAIC03NSw2
ICs3Nyw4IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIGJvb2xlYW4gbWV0YUtleSk7CiAjZW5kaWYKIAorI2VuZGlmCisKICAgICB9OwogCiB9Cklu
ZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5n
ZUxvZwkocmV2aXNpb24gNDI2NjIpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDA5LTA0LTIxICBBZGFtIERpbmdsZSA8YWRhbUB5b3Ji
YS5vcmc+CisgICAgICAgICAgICBKaW0gTmVsc29uIDxqaW1AeW9yYmEub3JnPgorICAgICAgICAg
ICAgTWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorICAgICAgICAgICAgTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAgICAgICAgICAgIAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MDEKKyAgICAg
ICAgW0dUS10gR09iamVjdC9DIERPTSBiaW5kaW5nCisKKyAgICAgICAgSW1wbGVtZW50ZWQgR1RL
IERPTSBiaW5kaW5nLgorCisgICAgICAgICogd2Via2l0L3dlYmtpdC5oOgorICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1l
Lmg6CisKIDIwMDktMDQtMTcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25o
YUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5
YWtvdi4KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdC5oCShyZXZpc2lvbiA0MjY2MikKKysrIFdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw1ICszNiw3IEBACiAjaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmg+CiAjaW5jbHVkZSA8d2Via2l0L3dl
YmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZW51bXR5
cGVzLmg+CisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRvbS5oPgorI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRkb21kZWZpbmVzLmg+CiAKICNlbmRpZiAvKiBfX1dFQktJVF9IX18gKi8KSW5kZXg6IFdl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDQyNjYyKQorKysgV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBG
cmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0
b24gPGxrY2xAbGtjbC5uZXQ+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBA
YXRva2VyLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AaW1lbmRpby5jb20+CkBAIC0z
NCwyMCArMzUsMjkgQEAKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCi0jaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEd0ay5oIgorI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVP
d25lckVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RP
TVdpbmRvdy5oIgogI2luY2x1ZGUgIlByaW50Q29udGV4dC5oIgotI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRlRGF0YS5oIgorI2luY2x1ZGUgIlRleHREb2N1bWVu
dC5oIgorI2luY2x1ZGUgIndlYmtpdGJpbmRpbmcuaCIKKyNpbmNsdWRlICJXZWJLaXREb2N1bWVu
dC5oIgorI2luY2x1ZGUgIldlYktpdERvY3VtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktp
dERPTVdpbmRvdy5oIgorI2luY2x1ZGUgIldlYktpdERPTVdpbmRvd1ByaXZhdGUuaCIKKyNpbmNs
dWRlICJXZWJLaXRYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdFhNTEh0dHBSZXF1
ZXN0UHJpdmF0ZS5oIgogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogCkBA
IC0zMzMsNiArMzQzLDYzIEBAIFdlYktpdFdlYlZpZXcqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dl
Yl8KIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0Ogor
ICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHT2JqZWN0IHdy
YXBwZXIgYXJvdW5kIGFuIFhNTEh0dHBSZXF1ZXN0CisgKgorICogUmV0dXJuIHZhbHVlOiBhIFdl
YktpdFhNTEh0dHBSZXF1ZXN0CisgKgorICogU2luY2U6IDEuMS4yCisgKi8KK1dlYktpdFhNTEh0
dHBSZXF1ZXN0KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0KFdlYktpdFdl
YkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFt
ZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisgICAgcmV0dXJuIFdFQktJVF9YTUxfSFRUUF9S
RVFVRVNUKFdlYktpdDo6dG9HRE9NKFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoY29yZUZyYW1lLT5k
b2N1bWVudCgpKS5nZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2Rv
bV93aW5kb3c6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJucyBh
IEdPYmplY3Qgd3JhcHBlciBhcm91bmQgYSBET01XaW5kb3cKKyAqCisgKiBSZXR1cm4gdmFsdWU6
IGEgV2ViS2l0RE9NV2luZG93CisgKgorICogU2luY2U6IDEuMS4yCisgKi8KK1dlYktpdERPTVdp
bmRvdyogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyhXZWJLaXRXZWJGcmFtZSogZnJh
bWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFt
ZSksIE5VTEwpOworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFT
U0VSVChjb3JlRnJhbWUpOworICAgIHJldHVybiBXRUJLSVRfRE9NX1dJTkRPVyhXZWJLaXQ6OnRv
R0RPTShjb3JlRnJhbWUtPmRvbVdpbmRvdygpKSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9m
cmFtZV9nZXRfZG9tX2RvY3VtZW50OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoK
KyAqIHJldHVybnMgYSBHT2JqZWN0IHdyYXBwZXIgYXJvdW5kIGEgRG9jdW1lbnQgCisgKgorICog
UmV0dXJuIHZhbHVlOiBhIFdlYktpdERvY3VtZW50CisgKgorICogU2luY2U6IDEuMS4yCisgKi8K
K1dlYktpdERvY3VtZW50KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZy
YW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICByZXR1cm4gV0VCS0lUX0RPQ1VNRU5U
KFdlYktpdDo6dG9HRE9NKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkpOworfQorCisvKioKICAqIHdl
YmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCiAg
KgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCShyZXZpc2lvbiA0MjY2MikKKysr
IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZy
ZXl0aGVyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOCw2ICsyOSw5IEBACiAKICNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRuZXR3
b3JrcmVxdWVzdC5oPgorI2luY2x1ZGUgPHdlYmtpdC9XZWJLaXREb2N1bWVudC5oPgorI2luY2x1
ZGUgPHdlYmtpdC9XZWJLaXRET01XaW5kb3cuaD4KKyNpbmNsdWRlIDx3ZWJraXQvV2ViS2l0WE1M
SHR0cFJlcXVlc3QuaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC02Nyw2ICs3MSwxNSBAQCBXRUJL
SVRfQVBJIFdlYktpdFdlYkZyYW1lICoKIHdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwogI2VuZGlmCiAKK1dFQktJVF9B
UEkgV2ViS2l0WE1MSHR0cFJlcXVlc3QgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBf
cmVxdWVzdCAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKworV0VCS0lUX0FQSSBXZWJL
aXRET01XaW5kb3cgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyAgICAgKFdlYktp
dFdlYkZyYW1lICAgICAgICpmcmFtZSk7CisKK1dFQktJVF9BUEkgV2ViS2l0RG9jdW1lbnQgKgor
d2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50ICAgKFdlYktpdFdlYkZyYW1lICAgICAg
ICpmcmFtZSk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViVmlldyAqCiB3ZWJraXRfd2ViX2ZyYW1l
X2dldF93ZWJfdmlldyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIApJbmRl
eDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNDI2NjIpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wNC0yMSAgQWRhbSBEaW5nbGUgPGFkYW1AeW9y
YmEub3JnPgorICAgICAgICAgICAgSmltIE5lbHNvbiA8amltQHlvcmJhLm9yZz4KKyAgICAgICAg
ICAgIE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAgICAgICAgICAgIEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgICAgICAgICAgICAKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDAxCisgICAg
ICAgIFtHVEtdIEdPYmplY3QvQyBET00gYmluZGluZworCisgICAgICAgIEltcGxlbWVudGVkIEdU
SyBET00gYmluZGluZy4KKyAgICAgICAgICAgIAorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgor
CiAyMDA5LTA0LTE5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgTWFrZSBGRUFUVVJFX0RFRklORVMgY29tcGxldGVseSBkeW5hbWljCkluZGV4OiBXZWJLaXRU
b29scy9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9HTlVtYWtlZmls
ZS5hbQkocmV2aXNpb24gNDI2NjIpCisrKyBXZWJLaXRUb29scy9HTlVtYWtlZmlsZS5hbQkod29y
a2luZyBjb3B5KQpAQCAtNCw4ICs0LDEwIEBAIG5vaW5zdF9QUk9HUkFNUyArPSBcCiAKICMgR3Rr
TGF1bmNoZXIKIFByb2dyYW1zX0d0a0xhdW5jaGVyX0NQUEZMQUdTID0gXAorCS1JJChzcmNkaXIp
L1dlYkNvcmUvYmluZGluZ3MgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJCh0b3Bf
YnVpbGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwK
IAkkKGdsb2JhbF9jcHBmbGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpCiAKQEAg
LTI5LDggKzMxLDEwIEBAIFByb2dyYW1zX0d0a0xhdW5jaGVyX0xEQUREID0gXAogZHVtcHJlbmRl
cnRyZWVfY3BwZmxhZ3MgOj0gXAogCS1JJChzcmNkaXIpL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlIFwKIAktSSQoc3JjZGlyKS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsgXAorCS1J
JChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAog
CS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsv
d2Via2l0IFwKIAkkKGdsb2JhbF9jcHBmbGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxh
Z3MpCiAK
</data>
<flag name="review"
          id="14834"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32633</attachid>
            <date>2009-07-12 14:28:05 -0700</date>
            <delta_ts>2009-07-25 15:10:58 -0700</delta_ts>
            <desc>brings glib/gobject bindings up to svn r44473.</desc>
            <filename>gd</filename>
            <type>text/plain</type>
            <size>212592</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA0NDQ3MykKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtMTQwLDE0ICsxNDEsMTYgQEAKICMgQ29udmVuaWVuY2UgbGlicmFyaWVzCiBub2luc3RfTFRM
SUJSQVJJRVMgPSBcCiAJbGliSmF2YVNjcmlwdENvcmUubGEgXAotCWxpYldlYkNvcmUubGEKKwls
aWJXZWJDb3JlLmxhIFwKKwlsaWJnZG9tLmxhCiAKICMgSmF2YVNjcmlwdENvcmUKIGphdmFzY3Jp
cHRjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJk
aW5nSGVhZGVycyBcCiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvcGFyc2VyIFwKIAktSSQo
c3JjZGlyKS9KYXZhU2NyaXB0Q29yZS93dGYgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRT
b3VyY2VzCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVp
bGRkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbQogCiBub2Rpc3RfRVhUUkFfbGliSmF2YVNjcmlw
dENvcmVfbGFfU09VUkNFUyA9IFwKIAkkKGphdmFzY3JpcHRjb3JlX2J1aWx0X25vc291cmNlcykK
QEAgLTE4Miw2ICsxODUsMTAgQEAKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQogCiAjIFdl
YkNvcmUKK3dlYmNvcmVndGtfY3BwZmxhZ3MgKz0gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2
ZWRTb3VyY2VzL2dkb20gXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvZ2RvbQorCiBub2Rpc3Rf
RVhUUkFfbGliV2ViQ29yZV9sYV9TT1VSQ0VTID0gXAogCSQod2ViY29yZV9idWlsdF9ub3NvdXJj
ZXMpCiAKQEAgLTIwMyw2ICsyMTAsNTYgQEAKIGxpYldlYkNvcmVfbGFfQ1BQRkxBR1MgPSBcCiAJ
JChjb3Jla2l0X2NwcGZsYWdzKQogCisjIGxpYmdkb20KK2xpYmdkb21fYnVpbHRfc291cmNlcyA6
PQorbGliZ2RvbV9zb3VyY2VzIDo9CitsaWJnZG9tX2hfYXBpIDo9CitsaWJnZG9tX2NwcGZsYWdz
IDo9CitsaWJnZG9tX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0LTEuMC9nZG9tCits
aWJnZG9tX2xhX0hFQURFUlMgPSBcCisgICAgICAgICQobGliZ2RvbV9oX2FwaSkgXAorCQkkKHNy
Y2RpcikvV2ViS2l0L2d0ay9nZG9tL2dkb20uaCAKKworbGliZ2RvbV9jcHBmbGFncyArPSBcCisJ
JChnbG9iYWxfY3BwZmxhZ3MpIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQodG9w
X2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ2RvbSBc
CisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJp
dmVkU291cmNlcy9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCits
aWJnZG9tX2xhX1NPVVJDRVMgPSBcCisJJChsaWJnZG9tX3NvdXJjZXMpIAorCitub2Rpc3RfbGli
Z2RvbV9sYV9TT1VSQ0VTID0gXAorCSQobGliZ2RvbV9idWlsdF9zb3VyY2VzKSAKKworbGliZ2Rv
bV9sYV9DUFBGTEFHUyA9IFwKKwkkKGdsb2JhbF9jcHBmbGFncykgXAorCSQod2ViY29yZV9jcHBm
bGFncykgXAorCSQoR0xPQkFMREVQU19DRkxBR1MpIFwKKwkkKFdFQktJVERFUFNfQ0ZMQUdTKSBc
CisJJChFTkNIQU5UX0NGTEFHUykgXAorCSQoTElCU09VUF9DRkxBR1MpIFwKKwkkKGphdmFzY3Jp
cHRjb3JlX2NwcGZsYWdzKSBcCisJJChsaWJnZG9tX2NwcGZsYWdzKSAKKworbGliZ2RvbV9sYV9M
SUJBREQgPSBcCisJJChHTE9CQUxERVBTX0xJQlMpIFwKKwkkKFdFQktJVERFUFNfTElCUykgXAor
CSQoWFRfTElCUykgXAorCSQoTElCQ1VSTF9MSUJTKSBcCisJJChMSUJTT1VQX0xJQlMpIFwKKwkk
KEZSRUVUWVBFX0xJQlMpIFwKKwkkKFVOSUNPREVfTElCUykgXAorCSQoU1FMSVRFM19MSUJTKSBc
CisJJChHU1RSRUFNRVJfTElCUykgXAorCSQoTElCWFNMVF9MSUJTKSBcCisJJChISUxET05fTElC
UykgXAorCSQoSlBFR19MSUJTKSBcCisJLWxwdGhyZWFkCisKICMgV2ViS2l0CiBub2Rpc3RfbGli
d2Via2l0XzFfMF9sYV9TT1VSQ0VTID0gXAogCSQod2Via2l0Z3RrX2J1aWx0X3NvdXJjZXMpCkBA
IC0yMTAsOCArMjY3LDE1IEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2luY2x1
ZGUvd2Via2l0LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkkKHdl
YmtpdGd0a19oX2FwaSkgXAorCSQobGliZ2RvbV9oX2FwaSkgXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGVudW10eXBlcy5oCiAKKyMgY29tbWVudCB0aGVzZSBvdXQgZm9yIG5vdywgc2VlIHdo
YXQgaGFwcGVucworIwkkKGxpYmdkb21faF9hcGkpIAorIwlXZWJLaXQvZ3RrL3dlYmtpdC9nZG9t
LmggCisjV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisjV2ViS2l0L2d0ay93ZWJr
aXQvZ2RvbWRlZmluZXMuaAorCiBsaWJ3ZWJraXRfMV8wX2xhX1NPVVJDRVMgPSBcCiAJJCh3ZWJr
aXRndGtfc291cmNlcykKIApAQCAtMjM1LDYgKzI5OSw3IEBACiAKIGxpYndlYmtpdF8xXzBfbGFf
TElCQUREID0gXAogCS1scHRocmVhZCBcCisJbGliZ2RvbS5sYSBcCiAJbGliSmF2YVNjcmlwdENv
cmUubGEgXAogCWxpYldlYkNvcmUubGEgXAogCWxpYldlYkNvcmVKUy5sYSBcCkBAIC0zMTIsNiAr
Mzc3LDE4MCBAQAogCS1ER0NDX0lOU1RSVU1FTlRfUFJPR1JBTV9GTE9XX0FSQ1MKIGVuZGlmCiAK
KworV2ViS2l0L2d0ay9nZG9tL2dkb20uaDoKKyMgVE9ETzogYXV0by1nZW5lcmF0ZSB0aGlzIGZp
bGUKKworIyQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20vUHJpdmF0ZUdkb21FdmVudFRh
cmdldE5vZGUuY3BwOiBcCisjCQkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay9nZG9tL1ByaXZh
dGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmgKKworCitsaWJnZG9tX2hfYXBpICs9IFwKKwkkKHNy
Y2RpcikvV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaFwKKwkkKHNyY2Rpcikv
V2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21Eb2N1bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUF0dHIuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21CYXJJbmZvLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2Fu
dmFzR3JhZGllbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQYXR0ZXJuLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNo
YXJhY3RlckRhdGEuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DbGlwYm9hcmQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21tZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ29uc29sZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvdW50ZXIuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0lt
cG9ydFJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1bGUuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQYWdlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NT
UnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGVMaXN0LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNTU1N0eWxlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0
eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYWx1ZS5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q1NTVmFyaWFibGVzUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURhdGFiYXNlLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbURvY3VtZW50VHlwZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bURPTUFwcGxpY2F0aW9uQ2FjaGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01Db3Jl
RXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NSW1wbGVtZW50YXRpb24u
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01QYXJzZXIuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21ET01TZWxlY3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01X
aW5kb3cuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tRW50aXR5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5
UmVmZXJlbmNlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnRFeGNlcHRpb24uaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUV2ZW50TGlzdGVuZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IaXN0b3J5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFuY2hvckVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXBwbGV0RWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxCYXNlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxCYXNlRm9udEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmxvY2tx
dW90ZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQm9keUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQlJFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEJ1dHRvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MQ2FudmFzRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxD
b2xsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxETGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MRG9jdW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxFbWJlZEVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEZvcm1FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1l
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MSFJFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEh0
bWxFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElGcmFtZUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElucHV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxJc0luZGV4RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxMYWJlbEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGVnZW5kRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMSUVsZW1lbnQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGlua0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MTWFwRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxN
YXJxdWVlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51RWxlbWVu
dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZXRhRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNb2RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTE9iamVjdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
T0xpc3RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdEdyb3VwRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MUGFyYW1FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTFByZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUXVvdGVFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU2VsZWN0RWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxTdHlsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxUYWJsZUNlbGxFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxl
Q29sRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxVTGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21JbWFnZURhdGEuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tS2V5Ym9hcmRFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUxvY2F0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFMaXN0LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVzc2FnZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tTWVzc2FnZVBvcnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlw
ZUFycmF5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGUuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21Nb3VzZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
TXV0YXRpb25FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hdmlnYXRvci5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5vZGVGaWx0ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmhc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tTm9kZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlv
bi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU92ZXJmbG93RXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21QbHVnaW5BcnJheS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVBsdWdpbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21SYW5nZUV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVJhbmdlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmVjdC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNjcmVlbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTEVy
cm9yLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNRTFRyYW5zYWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3Rv
cmFnZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZS5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TdHlsZVNoZWV0TGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRFdmVudC5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRNZXRyaWNzLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tVGV4dC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRyZWVXYWxrZXIu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21VSUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdl
YktpdFBvaW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2hlZWxFdmVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Y
TUxIdHRwUmVxdWVzdFVwbG9hZC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTFNlcmlh
bGl6ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tWFBhdGhFeHByZXNzaW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBh
dGhOU1Jlc29sdmVyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhSZXN1bHQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YU0xUUHJvY2Vzc29yLmgKKwogd2Via2l0Z3RrX2hf
YXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaCBcCiAJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0ZGVmaW5lcy5oIFwKQEAgLTMzMCwxMiArNTY5LDE3IEBACiAJV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vidmlldy5oCiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmluZXMuaAor
CiB3ZWJraXRndGtfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0ZW51
bXR5cGVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51
bXR5cGVzLmgKIAorIwlEZXJpdmVkU291cmNlcy9nZG9tZW51bXR5cGVzLmNwcCAKKyMJV2ViS2l0
L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisKIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlX
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgXAogCVdlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggXApAQCAtMzY2LDYgKzYxMCw3IEBA
CiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwIFwKIAlXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJldmVudC5j
cHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1cmVzLmNwcAogCiB3
ZWJraXRndGtfY3BwZmxhZ3MgKz0gXApAQCAtMzc1LDcgKzYyMCw5IEBACiAJLUkkKHNyY2Rpcikv
V2ViS2l0L2d0ayBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydCBcCiAJ
LUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAotCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktp
dC9ndGsvd2Via2l0CisJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQgXAorCS1J
JCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGtcCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNv
dXJjZXMKIAogaWYgVVNFX0dOT01FS0VZUklORwogd2Via2l0Z3RrX2NwcGZsYWdzICs9IFwKQEAg
LTM5OSw2ICs2NDYsOSBAQAogCXN0YW1wLXdlYmtpdGVudW10eXBlcy5jcHAgXAogCXN0YW1wLXdl
YmtpdGVudW10eXBlcy5oCiAKKyMJc3RhbXAtZ2RvbWVudW10eXBlcy5jcHAgCisjCXN0YW1wLWdk
b21lbnVtdHlwZXMuaCAKKwogV0VCS0lUX01BUlNIQUwgPSAkKEdFTlNPVVJDRVMpL3dlYmtpdG1h
cnNoYWwKIFdFQktJVF9NQVJTSEFMX0xJU1QgPSAkKHRvcF9zcmNkaXIpL1dlYktpdC9ndGsvd2Vi
a2l0bWFyc2hhbC5saXN0CiAKQEAgLTQ2NCw2ICs3MTQsNTcgQEAKIAkmJiBjcCB4Z2VuLWd0YyAk
QCBcCiAJJiYgcm0gLWYgeGdlbi1ndGMKIAorV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBl
cy5oOiBzdGFtcC1nZG9tZW51bXR5cGVzLmgKKwlAdHJ1ZQorc3RhbXAtZ2RvbWVudW10eXBlcy5o
OiAkKGxpYmdkb21faF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJJiYgZ2xp
Yi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpZm5kZWYgR0RPTV9FTlVNX1RZUEVTX0hcbiIgXAor
CQkJLS1maGVhZCAiI2RlZmluZSBHRE9NX0VOVU1fVFlQRVNfSFxuXG4iIFwKKwkJCS0tZmhlYWQg
IiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuXG4iIFwKKwkJCS0tZmhlYWQgIkdfQkVHSU5fREVD
TFNcblxuIiBcCisJCQktLWZ0YWlsICJHX0VORF9ERUNMU1xuXG4iIFwKKwkJCS0tZnRhaWwgIiNl
bmRpZlxuIiBcCisJCQktLWZwcm9kICIjaW5jbHVkZSA8QGZpbGVuYW1lQD5cblxuIiBcCisJCQkt
LWVwcm9kICIjZGVmaW5lIEdET01fVFlQRV9ARU5VTVNIT1JUQCBAZW51bV9uYW1lQF9nZXRfdHlw
ZSgpXG5cbiIgXAorCQkJLS1lcHJvZCAiV0VCS0lUX0FQSSBHVHlwZVxuQGVudW1fbmFtZUBfZ2V0
X3R5cGUodm9pZCk7XG5cbiIgXAorCQkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJCXNlZCAncyxX
ZWJLaXQvZ3RrLywsJyB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIHwgXAorCQlzZWQgJ3Ms
R0RPTV9UWVBFX0tJVCxHRE9NX1RZUEUsJyBcCisJCSkgPiB4Z2VuLWNndGggXAorCSYmIChjbXAg
LXMgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCB8fCBjcCB4Z2Vu
LWNndGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oKSBcCisJJiYgcm0gLWYgeGdl
bi1jZ3RoIFwKKwkmJiBlY2hvIHRpbWVzdGFtcCA+ICQoQEYpCisKKyMgICAgICAgICAgICAgIC0t
ZmhlYWQgIiNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD5cblxuIiAKKworRGVyaXZlZFNv
dXJjZXMvZ2RvbWVudW10eXBlcy5jcHA6ICQobGliZ2RvbV9oX2FwaSkgR05VbWFrZWZpbGUKKwko
Y2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUg
PGNvbmZpZy5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cbiIg
XAorCQkJLS1maGVhZCAiI2luY2x1ZGUgXCIkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJr
aXQvZ2RvbWVudW10eXBlcy5oXCJcblxuIiBcCisJCQktLWZoZWFkICJleHRlcm4gXCJDXCIge1xu
XG4iIFwKKwkJCS0tZnByb2QgIlxuLyogZW51bWVyYXRpb25zIGZyb20gXCJAZmlsZW5hbWVAXCIg
Ki8iIFwKKwkJCS0tdmhlYWQgInN0YXRpYyBjb25zdCBHQFR5cGVAVmFsdWUgX0BlbnVtX25hbWVA
X3ZhbHVlc1tdID0geyIgXAorCQkJLS12cHJvZCAiICAgIHsgQFZBTFVFTkFNRUAsIFwiQFZBTFVF
TkFNRUBcIiwgXCJAdmFsdWVuaWNrQFwiIH0sIiBcCisJCQktLXZ0YWlsICIgICAgeyAwLCBOVUxM
LCBOVUxMIH1cbn07XG5cbiIgXAorCQkJLS12dGFpbCAiR1R5cGUgQGVudW1fbmFtZUBfZ2V0X3R5
cGUodm9pZClcbntcbiIgXAorCQkJLS12dGFpbCAiICAgIHN0YXRpYyBHVHlwZSB0eXBlID0gMDtc
blxuIiBcCisJCQktLXZ0YWlsICIgICAgaWYgKCF0eXBlKVxuIiBcCisJCQktLXZ0YWlsICIgICAg
ICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMoXCJARW51bU5hbWVAXCIsIF9AZW51
bV9uYW1lQF92YWx1ZXMpO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAgICByZXR1cm4gdHlwZTtcbn1c
blxuIiBcCisJCQktLWZ0YWlsICJ9XG4iIFwKKwkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJc2Vk
ICdzLHdlYl9raXQsZ2RvbSwnIFwKKwkJKSA+IHhnZW4tY2d0YyBcCisJJiYgY3AgeGdlbi1jZ3Rj
ICRAIFwKKwkmJiBybSAtZiB4Z2VuLWNndGMKKworIyBFTkQgV0VCS0lUIEdUSysKKyMKKwogIyBG
aWxlcyB0aGF0IHdpbGwgYmUgZGlzdHJpYnV0ZWQKIEVYVFJBX0RJU1QgPSBcCiAJJChzcmNkaXIp
L2d0ay1kb2MubWFrZSBcCkBAIC01MDgsNiArODA5LDggQEAKIAktSSQoc3JjZGlyKS9KYXZhU2Ny
aXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJ
LUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHRvcF9idWlsZGRpcikvV2ViQ29y
ZS9iaW5kaW5ncy9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcyBcCiAJ
JChnbG9iYWxfY2ZsYWdzKSBcCiAJJChHTElCX0NGTEFHUykgXAogCSQoR1RLX0NGTEFHUykgXApA
QCAtNTY1LDYgKzg2OCw4IEBACiBCVUlMVF9TT1VSQ0VTIDo9IFwKIAkkKGphdmFzY3JpcHRjb3Jl
X2J1aWx0X3NvdXJjZXMpIFwKIAkkKGphdmFzY3JpcHRjb3JlX2J1aWx0X25vc291cmNlcykgXAor
CSQobGliZ2RvbV9idWlsdF9zb3VyY2VzKSBcCisJJChsaWJnZG9tX2J1aWx0X25vc291cmNlcykg
XAogCSQod2ViY29yZV9idWlsdF9zb3VyY2VzKSBcCiAJJCh3ZWJjb3JlX2J1aWx0X25vc291cmNl
cykgXAogCSQod2Via2l0Z3RrX2J1aWx0X3NvdXJjZXMpIFwKSW5kZXg6IFdlYktpdC9ndGsvV0VC
S0lUT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDQ0NDczKQorKysgV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE2NCwxMCArMTY0LDE1IEBACiAKIFN0cmluZyBGcmFtZUxvYWRlckNsaWVudDo6
dXNlckFnZW50KGNvbnN0IEtVUkwmKQogewotICAgIGlmIChtX3VzZXJBZ2VudC5pc0VtcHR5KCkp
Ci0gICAgICAgIG1fdXNlckFnZW50ID0gY29tcG9zZVVzZXJBZ2VudCgpOworICAgaWYgKG1fdXNl
ckFnZW50LmlzRW1wdHkoKSkgeworICAgICAgIGNoYXIqIHMgPSA6OmdldGVudigiVVNFUl9BR0VO
VCIpOworICAgICAgIGlmIChzKQorICAgICAgICAgICAgICAgbV91c2VyQWdlbnQgPSBzOworICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgIG1fdXNlckFnZW50ID0gY29tcG9zZVVzZXJBZ2VudCgp
OworICAgfQogCi0gICAgcmV0dXJuIG1fdXNlckFnZW50OworICAgcmV0dXJuIG1fdXNlckFnZW50
OwogfQogCiBzdGF0aWMgdm9pZCBub3RpZnlTdGF0dXMoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBX
ZWJLaXRMb2FkU3RhdHVzIGxvYWRTdGF0dXMpCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwCShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0Pgog
ICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlh
biBEeXdhbiA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgpAQCAtOCw2ICs5LDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwOSBKYW4gQWxvbnpvIDxqbWFsb256b0BnbWFpbC5jb20+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDkgR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgogICoKKyAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwogICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC0zNSwyMCArMzcsMzEgQEAKICNpbmNsdWRlICJB
bmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lcldpbmRvdy5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNp
bmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJH
ZG9tRE9NV2luZG93LmgiCisjaW5jbHVkZSAiR2RvbURPTVdpbmRvd1ByaXZhdGUuaCIKKyNpbmNs
dWRlICJHZG9tRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnRQcml2YXRlLmgiCisj
aW5jbHVkZSAiR2RvbUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbUV2ZW50TGlzdGVuZXIuaCIKKyNp
bmNsdWRlICJHZG9tWE1MSHR0cFJlcXVlc3QuaCIKKyNpbmNsdWRlICJHZG9tWE1MSHR0cFJlcXVl
c3RQcml2YXRlLmgiCiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
RnJhbWVPd25lckVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRl
ICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIlByaW50Q29udGV4dC5oIgogI2luY2x1ZGUgIlJl
bmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlN1
YnN0aXR1dGVEYXRhLmgiCisjaW5jbHVkZSAiVGV4dERvY3VtZW50LmgiCiAKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAKQEAgLTc0LDEyICs4NywyMSBAQAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV2ViS2l0
IHsKKyAgICBncG9pbnRlciB0b0dET00oRE9NV2luZG93KiBkb2MpOworICAgIGdwb2ludGVyIHRv
R0RPTShEb2N1bWVudCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oWE1MSHR0cFJlcXVlc3Qq
IG9iaik7Cit9CisKK2V4dGVybiAiQyIgeworCiBlbnVtIHsKICAgICBDTEVBUkVELAogICAgIExP
QURfQ09NTUlUVEVELAogICAgIExPQURfRE9ORSwKICAgICBUSVRMRV9DSEFOR0VELAogICAgIEhP
VkVSSU5HX09WRVJfTElOSywKKyAgICBCUk9XU0VSX0VWRU5ULAogICAgIExBU1RfU0lHTkFMCiB9
OwogCkBAIC0yMDksNiArMjMxLDE3IEBACiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKICAg
ICAgICAgICAgIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcpOwogCisgICAgd2Via2l0X3dl
Yl9mcmFtZV9zaWduYWxzW0JST1dTRVJfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJicm93c2VyLWV2
ZW50IiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAorICAgICAg
ICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04g
fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgR19TSUdOQUxfREVUQUlMRUQpLAorICAgICAg
ICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAg
ICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX0JPT0xFQU4sCisgICAgICAgICAgICBHX1RZ
UEVfTk9ORSwgMiwKKyAgICAgICAgICAgIEdET01fVFlQRV9FVkVOVCwgR19UWVBFX0JPT0xFQU4p
OworCiAgICAgLyoKICAgICAgKiBpbXBsZW1lbnRhdGlvbnMgb2YgdmlydHVhbCBtZXRob2RzCiAg
ICAgICovCkBAIC0zNjAsNiArMzkzLDEwOSBAQAogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X3htbF9odHRwX3JlcXVlc3Q6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisg
KgorICogcmV0dXJucyBhIEdkb20gd3JhcHBlciBhcm91bmQgYW4gWE1MSHR0cFJlcXVlc3QKKyAq
CisgKiBSZXR1cm4gdmFsdWU6IGEgR2RvbVhNTEh0dHBSZXF1ZXN0CisgKi8KK0dkb21YTUxIdHRw
UmVxdWVzdCogd2Via2l0X3dlYl9mcmFtZV9nZXRfeG1sX2h0dHBfcmVxdWVzdChXZWJLaXRXZWJG
cmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9G
UkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYg
PSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAg
ICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICByZXR1cm4gR0RPTV9YTUxfSFRUUF9SRVFVRVNUKFdl
YktpdDo6dG9HRE9NKFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGUoY29yZUZyYW1lLT5kb2N1bWVudCgp
KS5nZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV93aW5kb3c6
CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogcmV0dXJucyBhIEdkb20gd3Jh
cHBlciBhcm91bmQgYSBET01XaW5kb3cKKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgR2RvbURPTVdp
bmRvdworICovCitHZG9tRE9NV2luZG93KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICAvL1dlYktpdFdlYkZyYW1lUHJp
dmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OworCisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUo
ZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworICAgIFBhc3NSZWZQdHI8RE9NV2luZG93
PiB3aW4gPSBjb3JlRnJhbWUtPmRvbVdpbmRvdygpOworICAgIHJldHVybiBHRE9NX0RPTV9XSU5E
T1coV2ViS2l0Ojp0b0dET00od2luLmdldCgpKSk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl9m
cmFtZV9nZXRfZG9tX2RvY3VtZW50OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoK
KyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGEgRG9jdW1lbnQgCisgKgorICogUmV0
dXJuIHZhbHVlOiBhIEdkb21Eb2N1bWVudAorICovCitHZG9tRG9jdW1lbnQqIHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIE5VTEwpOworCisg
ICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKyAg
ICByZXR1cm4gR0RPTV9ET0NVTUVOVChXZWJLaXQ6OnRvR0RPTShjb3JlRnJhbWUtPmRvY3VtZW50
KCkpKTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcjoK
KyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3Rl
bmVyIHRvIHRoZSBmcmFtZSdzIGRvY3VtZW50CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFt
ZSBvZiBAZnJhbWUKKyAqLworR2RvbUV2ZW50TGlzdGVuZXIqCit3ZWJraXRfd2ViX2ZyYW1lX2Fk
ZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogZXZlbnRfdHlwZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNh
cHR1cmUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShm
cmFtZSksIEZBTFNFKTsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAg
ICBBU1NFUlQoY29yZUZyYW1lKTsKKworICAgIHJldHVybiB3ZWJraXRfYWRkX3dpbmRvd19ldmVu
dF9saXN0ZW5lcihmcmFtZSwgY29yZUZyYW1lLCBldmVudF90eXBlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VDYXB0dXJlKTsKK30KKworLyoqCisgKiB3
ZWJraXRfd2ViX2ZyYW1lX3JlbW92ZV9ldmVudF9saXN0ZW5lcjoKKyAqIEBmcmFtZTogYSAjV2Vi
S2l0V2ViRnJhbWUKKyAqCisgKiBhZGRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIHRoZSBmcmFtZSdz
IGRvY3VtZW50CisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbmFtZSBvZiBAZnJhbWUKKyAqLwor
dm9pZAord2Via2l0X3dlYl9mcmFtZV9yZW1vdmVfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJh
bWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R2RvbUV2ZW50TGlzdGVuZXIqIGdsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGV2ZW50X3R5cGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiB1c2VDYXB0dXJlKQoreworICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSkpOworCisgICAgRnJhbWUq
IGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOworICAgIEFTU0VSVChjb3JlRnJhbWUpOworCisgICAg
d2Via2l0X3JlbW92ZV93aW5kb3dfZXZlbnRfbGlzdGVuZXIoY29yZUZyYW1lLCBnbCwgZXZlbnRf
dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNl
Q2FwdHVyZSk7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl9mcmFtZV9nZXRfbmFtZToKICAqIEBm
cmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKICAqCkBAIC04MjgsMyArOTY0LDUgQEAKICAgICBXZWJL
aXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKICAgICByZXR1cm4gcHJpdi0+
bG9hZFN0YXR1czsKIH0KKworfSAvKiBleHRlcm4gIkMiICovCkluZGV4OiBXZWJLaXQvZ3RrL3dl
YmtpdC9FdmVudExpc3RlbmVyTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0
L0V2ZW50TGlzdGVuZXJOb2RlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC9F
dmVudExpc3RlbmVyTm9kZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtj
bC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKworI2lmbmRlZiBFdmVudExpc3RlbmVyTm9kZV9oCisjZGVmaW5lIEV2ZW50TGlzdGVu
ZXJOb2RlX2gKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVm
aW5lcy5oPgorCisjaW5jbHVkZSAiZ2RvbS9HZG9tTm9kZS5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUV2ZW50TGlzdGVuZXIuaCIKKworZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJCitHZG9tRXZlbnRM
aXN0ZW5lcioKK3dlYmtpdF9hZGRfbm9kZV9ldmVudF9saXN0ZW5lcihHZG9tTm9kZSAqd2YsIGNv
bnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNl
Q2FwdHVyZSk7CitXRUJLSVRfQVBJCit2b2lkIHdlYmtpdF9yZW1vdmVfbm9kZV9ldmVudF9saXN0
ZW5lcihHZG9tTm9kZSAqd2YsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R2RvbUV2ZW50TGlzdGVuZXIgKmdsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdib29sZWFuIHVzZUNhcHR1cmUpOworfQorCisjZW5kaWYgLypFdmVudExpc3RlbmVyTm9kZV9o
Ki8KSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRwUmVx
dWVzdC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lclhN
TEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5l
dD4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworCisjaWZuZGVmIEV2ZW50TGlzdGVuZXJYbWxIdHRwUmVxdWVzdF9oCisjZGVmaW5lIEV2ZW50
TGlzdGVuZXJYbWxIdHRwUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8
d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKworCisjaW5jbHVkZSAiZ2RvbS9HZG9tWE1MSHR0cFJl
cXVlc3QuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21FdmVudExpc3RlbmVyLmgiCisKK2V4dGVybiAi
QyIgeworV0VCS0lUX0FQSQorR2RvbUV2ZW50TGlzdGVuZXIgKgord2Via2l0X2FkZF94bWxfaHR0
cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCAqd2YsCisgICAgICAg
ICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKK3ZvaWQgd2Via2l0X3JlbW92ZV94bWxfaHR0cF9y
ZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVzdCAqd2YsCisgICAgICAgICAg
ICAgICAgR2RvbUV2ZW50TGlzdGVuZXIgKmdsLAorICAgICAgICAgICAgICAgY29uc3QgY2hhciAq
bmFtZSk7Cit9CisKKyNlbmRpZiAvKkV2ZW50TGlzdGVuZXJYbWxIdHRwUmVxdWVzdF9oKi8KSW5k
ZXg6IFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgJKHJldmlzaW9uIDQ0NDczKQorKysgV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw5
IEBACiAKIEdfQkVHSU5fREVDTFMKIAordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50IFdlYktp
dEV2ZW50OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEV2ZW50Q2xhc3MgV2ViS2l0RXZlbnRDbGFz
czsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0IFdlYktpdE5ldHdvcmtS
ZXF1ZXN0OwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0Q2xhc3MgV2ViS2l0
TmV0d29ya1JlcXVlc3RDbGFzczsKIApJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5o
CShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3
IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGgg
Q2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
OCw2ICsyOSwxMCBAQAogCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KICNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21E
b2N1bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVdpbmRvdy5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbVhNTEh0dHBSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRMaXN0ZW5l
ci5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTczLDYgKzc4LDE1IEBACiB3ZWJraXRfd2ViX2Zy
YW1lX25ldyAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsK
ICNlbmRpZgogCitXRUJLSVRfQVBJIEdkb21YTUxIdHRwUmVxdWVzdCAqCit3ZWJraXRfd2ViX2Zy
YW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJh
bWUpOworCitXRUJLSVRfQVBJIEdkb21ET01XaW5kb3cgKgord2Via2l0X3dlYl9mcmFtZV9nZXRf
ZG9tX3dpbmRvdyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKworV0VCS0lU
X0FQSSBHZG9tRG9jdW1lbnQgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50ICAg
ICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCiBXRUJLSVRfQVBJIFdlYktpdFdl
YlZpZXcgKgogd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcgICAgICAgKFdlYktpdFdlYkZy
YW1lICAgICAgICpmcmFtZSk7CiAKQEAgLTEyMiw2ICsxMzYsMTcgQEAKIFdFQktJVF9BUEkgSlNH
bG9iYWxDb250ZXh0UmVmCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dCAoV2Vi
S2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAorV0VCS0lUX0FQSSBHZG9tRXZlbnRMaXN0ZW5l
ciAqCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSog
ZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg
ICAgICAgICAgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jv
b2xlYW4gICAgICAgICAgICAgIHVzZUNhcHR1cmUpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtp
dF93ZWJfZnJhbWVfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZG9tRXZlbnRMaXN0ZW5lciAq
Z2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAg
ICAgICAgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xl
YW4gICAgICAgICAgICAgIHVzZUNhcHR1cmUpOworCiBXRUJLSVRfQVBJIEd0a1ByaW50T3BlcmF0
aW9uUmVzdWx0CiB3ZWJraXRfd2ViX2ZyYW1lX3ByaW50X2Z1bGwgICAgICAgICAoV2ViS2l0V2Vi
RnJhbWUgICAgICAgKmZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEd0a1ByaW50T3BlcmF0aW9uICAgICpvcGVyYXRpb24sCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtp
dC9FdmVudExpc3RlbmVyV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQv
RXZlbnRMaXN0ZW5lcldpbmRvdy5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93ZWJraXQv
RXZlbnRMaXN0ZW5lcldpbmRvdy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xA
bGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKworI2lmbmRlZiBFdmVudExpc3RlbmVyV2luZG93X2gKKyNkZWZpbmUgRXZlbnRM
aXN0ZW5lcldpbmRvd19oCisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Via2l0L3dl
YmtpdGRlZmluZXMuaD4KKworI2luY2x1ZGUgIkdkb21FdmVudExpc3RlbmVyLmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKworCitleHRlcm4gIkMiIHsKK0dkb21FdmVudExpc3RlbmVyKgord2Via2l0
X2FkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUgKndmLCBXZWJDb3JlOjpG
cmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVz
ZUNhcHR1cmUpOwordm9pZCB3ZWJraXRfcmVtb3ZlX3dpbmRvd19ldmVudF9saXN0ZW5lcihXZWJD
b3JlOjpGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdk
b21FdmVudExpc3RlbmVyICpnbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jv
b2xlYW4gdXNlQ2FwdHVyZSk7Cit9CisKKyNlbmRpZiAvKkV2ZW50TGlzdGVuZXJXaW5kb3dfaCov
CkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJldmVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCShyZXZpc2lvbiAwKQorKysg
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDI1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBG
cmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0
b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkNTdHJp
bmcuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2lu
Y2x1ZGUgIkV2ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkV2ZW50TGlz
dGVuZXJXaW5kb3cuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyTm9kZS5oIgorI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgIkdkb21FdmVudC5oIgorI2lu
Y2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnRMaXN0ZW5lci5oIgor
I2luY2x1ZGUgIkdkb21FdmVudExpc3RlbmVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21Ob2Rl
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdFByaXZhdGUuaCIKKyNpbmNs
dWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCisjaW5jbHVkZSAiU3RyaW5nSW1wbC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisj
aW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKKworCisKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIGdwb2ludGVyIHRvR0RPTShFdmVudCogZG9j
KTsKKyAgICBncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9N
KEV2ZW50TGlzdGVuZXIqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShYTUxIdHRwUmVxdWVz
dCogbm9kZSk7Cit9CisKKworY2xhc3MgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyIDogcHVi
bGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFhNTEh0
dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21YTUxIdHRwUmVxdWVzdCogd2YpCisg
ICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcih3Zikp
OyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCB1c2VDYXB0dXJl
KTsKKworICAgIHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlwZSA9IGdf
c3RyZHVwKGV2dHlwZSk7IH0KKyAgICBwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsKKyAgICBY
TUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0KiB3ZikKKyAgICAg
ICAgICAgOiBtX3R5cGUoTlVMTCkKKyAgICAgICAgICAgLCBtX3dmKHdmKQorICAgIHt9CisgICAg
flhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcigpCisgICAgeworICAgICAgICBpZiAobV90eXBl
KQorICAgICAgICAgICAgZ19mcmVlKG1fdHlwZSk7CisgICAgfQorICAgIEdkb21YTUxIdHRwUmVx
dWVzdCogbV93ZjsKK307CisKK3ZvaWQgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpoYW5k
bGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgdXNlQ2FwdHVyZSkKK3sKKyAgICBnYm9vbGVhbiBy
ZXR2YWw7CisgICAgY2hhciAqZXZuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCJicm93c2VyLWV2ZW50
OjolcyIsIG1fdHlwZSk7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdlYktpdDo6
dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2bmFtZSwg
d2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30KKworY2xh
c3MgTm9kZUV2ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Tm9kZUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9tTm9kZSog
d2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5vZGVFdmVudExpc3RlbmVyKHdmKSk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIHVzZUNhcHR1cmUpOwor
CisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFyICpldnR5cGUpIHsgbV90eXBlID0gZ19zdHJk
dXAoZXZ0eXBlKTsgfQorcHJpdmF0ZToKKyAgICBjaGFyICptX3R5cGU7CisgICAgTm9kZUV2ZW50
TGlzdGVuZXIoR2RvbU5vZGUqIHdmKQorICAgICAgICAgICAgOiBtX3R5cGUoTlVMTCkKKyAgICAg
ICAgICAgICwgbV93Zih3ZikKKyAgICB7fQorICAgIH5Ob2RlRXZlbnRMaXN0ZW5lcigpCisgICAg
eworICAgICAgICBpZiAobV90eXBlKQorICAgICAgICAgICAgZ19mcmVlKG1fdHlwZSk7CisgICAg
fQorICAgIEdkb21Ob2RlKiBtX3dmOworfTsKKwordm9pZCBOb2RlRXZlbnRMaXN0ZW5lcjo6aGFu
ZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jvb2xlYW4g
cmV0dmFsOworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nlci1ldmVu
dDo6JXMiLCBtX3R5cGUpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJLaXQ6
OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5hbWUs
IHdldiwgdXNlQ2FwdHVyZSwgJnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9CisKK2Ns
YXNzIFdpbmRvd0V2ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2luZG93RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKFdlYktp
dFdlYkZyYW1lKiB3ZikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2luZG93
RXZlbnRMaXN0ZW5lcih3ZikpOyAKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50
KEV2ZW50KiwgYm9vbCBpc1dpbmRvd0V2ZW50KTsKKyAgICB2b2lkIHNldF90eXBlKGNvbnN0IGNo
YXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0cmR1cChldnR5cGUpOyB9Citwcml2YXRlOgorICAg
IGNoYXIgKm1fdHlwZTsKKyAgICBXaW5kb3dFdmVudExpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiB3
ZikKKyAgICAgICAgICAgOiBtX3R5cGUoTlVMTCkKKyAgICAgICAgICAgLCBtX3dmKHdmKQorICAg
IHt9CisgICAgfldpbmRvd0V2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdHlw
ZSkKKyAgICAgICAgICAgIGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBXZWJLaXRXZWJGcmFt
ZSogbV93ZjsKK307CisKK3ZvaWQgV2luZG93RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoRXZl
bnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZlbnQpCit7CisgICAgY2hhciAqZXZuYW1lID0gZ19z
dHJkdXBfcHJpbnRmKCJicm93c2VyLWV2ZW50OjolcyIsIG1fdHlwZSk7CisgICAgZ2Jvb2xlYW4g
cmV0dmFsOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJLaXQ6OnRvR0RPTShl
dmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5hbWUsIHdldiwgaXNX
aW5kb3dFdmVudCwgJnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9CisKK2V4dGVybiAi
QyIgeworCitHZG9tRXZlbnRMaXN0ZW5lcioKK3dlYmtpdF9hZGRfeG1sX2h0dHBfcmVxdWVzdF9l
dmVudF9saXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3QgKnJlcSA9IFdlYktpdDo6Y29yZSh3Zik7CisgICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1
cm4gTlVMTDsKKyAgICBpZiAoIXJlcSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAo
c3RyY21wKG5hbWUsICJvbnJlYWR5c3RhdGVjaGFuZ2UiKSA9PSAwKQorICAgIHsKKyAgICAgICAg
UmVmUHRyPFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXI7CisgICAgICAgIGxp
c3RlbmVyID0gWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpjcmVhdGUod2YpOworICAgICAg
ICBsaXN0ZW5lci0+c2V0X3R5cGUobmFtZSk7CisgICAgICAgIHJlcS0+c2V0T25yZWFkeXN0YXRl
Y2hhbmdlKGxpc3RlbmVyKTsKKyAgICAgICAgRXZlbnRMaXN0ZW5lciAqIGVsID0gV1RGOjpnZXRQ
dHIobGlzdGVuZXIpOworICAgICAgICByZXR1cm4gR0RPTV9FVkVOVF9MSVNURU5FUihXZWJLaXQ6
OnRvR0RPTShlbCkpOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30gCisKK3ZvaWQgd2Via2l0
X3JlbW92ZV94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKEdkb21YTUxIdHRwUmVxdWVz
dCAqd2YsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RvbUV2ZW50TGlzdGVuZXIgKmds
LCBjb25zdCBjaGFyICpuYW1lKQoreworICAgIFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0ICpyZXEg
PSBXZWJLaXQ6OmNvcmUod2YpOworICAgIFdlYkNvcmU6OkV2ZW50TGlzdGVuZXIgICpsaXN0ZW5l
ciA9IFdlYktpdDo6Y29yZShnbCk7CisgICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1cm47Cisg
ICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghcmVxKQorICAgICAg
ICByZXR1cm47CisKKyAgICByZXEtPnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIs
IEZBTFNFKTsKK30gCisKK0dkb21FdmVudExpc3RlbmVyKgord2Via2l0X2FkZF9ub2RlX2V2ZW50
X2xpc3RlbmVyKEdkb21Ob2RlICpnbiwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnYm9vbGVhbiB1c2VDYXB0dXJlKQoreworICAgIFdlYkNvcmU6Ok5vZGUg
Km5vZGUgPSBXZWJLaXQ6OmNvcmUoZ24pOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJu
IE5VTEw7CisKKyAgICBub2RlID0gbm9kZS0+dG9Ob2RlKCk7CisgICAgaWYgKCFub2RlKQorICAg
ICAgICByZXR1cm4gTlVMTDsKKworICAgIFJlZlB0cjxOb2RlRXZlbnRMaXN0ZW5lcj4gbGlzdGVu
ZXIgPSBOb2RlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKGduKTsKKyAgICBsaXN0ZW5lci0+c2V0X3R5
cGUobmFtZSk7CisgICAgbm9kZS0+YWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5lciwgdXNl
Q2FwdHVyZSk7CisgICAgRXZlbnRMaXN0ZW5lciAqIGVsID0gV1RGOjpnZXRQdHIobGlzdGVuZXIp
OworICAgIHJldHVybiBHRE9NX0VWRU5UX0xJU1RFTkVSKFdlYktpdDo6dG9HRE9NKGVsKSk7Cit9
IAorCit2b2lkIHdlYmtpdF9yZW1vdmVfbm9kZV9ldmVudF9saXN0ZW5lcihHZG9tTm9kZSAqZ24s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RvbUV2ZW50TGlzdGVuZXIgKmdsLCBjb25z
dCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIHVzZUNh
cHR1cmUpCit7CisgICAgV2ViQ29yZTo6Tm9kZSAqbm9kZSA9IFdlYktpdDo6Y29yZShnbik7Cisg
ICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBub2RlID0gbm9kZS0+dG9Ob2Rl
KCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3JlOjpFdmVu
dExpc3RlbmVyICAqbGlzdGVuZXIgPSBXZWJLaXQ6OmNvcmUoZ2wpOworICAgIGlmICghbmFtZSkK
KyAgICAgICAgcmV0dXJuOworICAgIGlmICghbGlzdGVuZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG5vZGUtPnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUp
OworfSAKKworR2RvbUV2ZW50TGlzdGVuZXIqCit3ZWJraXRfYWRkX3dpbmRvd19ldmVudF9saXN0
ZW5lcihXZWJLaXRXZWJGcmFtZSAqd2YsIEZyYW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkK
K3sKKyAgICBET01XaW5kb3cqIHdpbiA9IGZyYW1lLT5kb21XaW5kb3coKTsKKworICAgIFJlZlB0
cjxXaW5kb3dFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IFdpbmRvd0V2ZW50TGlzdGVuZXI6OmNy
ZWF0ZSh3Zik7CisgICAgbGlzdGVuZXItPnNldF90eXBlKG5hbWUpOworICAgIHdpbi0+YWRkRXZl
bnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7CisgICAgRXZlbnRMaXN0ZW5l
ciAqIGVsID0gV1RGOjpnZXRQdHIobGlzdGVuZXIpOworICAgIHJldHVybiBHRE9NX0VWRU5UX0xJ
U1RFTkVSKFdlYktpdDo6dG9HRE9NKGVsKSk7Cit9IAorCit2b2lkIHdlYmtpdF9yZW1vdmVfd2lu
ZG93X2V2ZW50X2xpc3RlbmVyKEZyYW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHZG9tRXZlbnRMaXN0ZW5lciAqZ2wsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBET01XaW5kb3cq
IHdpbiA9IGZyYW1lLT5kb21XaW5kb3coKTsKKworICAgIFdlYkNvcmU6OkV2ZW50TGlzdGVuZXIg
ICpsaXN0ZW5lciA9IFdlYktpdDo6Y29yZShnbCk7CisgICAgaWYgKCFuYW1lKQorICAgICAgICBy
ZXR1cm47CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgd2luLT5y
ZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsKK30gCisKK30g
LyogZXh0ZXJuIEMgKi8KSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9XZWJraXRET01PYmplY3RJbnRl
cm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9XZWJraXRET01PYmplY3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9uIDApCisr
KyBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8g
PHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5k
ZWYgR2RvbURPTU9iamVjdF9oCisjZGVmaW5lIEdkb21ET01PYmplY3RfaAorCisjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgorCitHX0JF
R0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0IEdkb21ET01PYmplY3Q7
Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIEdkb21ET01PYmplY3RDbGFzczsK
KworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAgICAgICAgICAgIChnZG9tX2RvbV9vYmpl
Y3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUKG9iaikgICAgICAgICAgICAo
R19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9ET01fT0JKRUNULCBH
ZG9tRE9NT2JqZWN0KSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0NMQVNTKGtsYXNzKSAgICAo
R19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fT0JKRUNULCBH
ZG9tRE9NT2JqZWN0Q2xhc3MpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1Qob2JqKSAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpF
Q1QpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2RlZmluZSBH
RE9NX0RPTV9PQkpFQ1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNT
KChvYmopLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykpCisKK3R5
cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSBHZG9tRE9NT2JqZWN0UHJpdmF0ZTsK
Kworc3RydWN0IF9HZG9tRE9NT2JqZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsK
KworICAgIEdkb21ET01PYmplY3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9HZG9tRE9N
T2JqZWN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJL
SVRfQVBJIEdUeXBlCitnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUgKHZvaWQpOworCitHX0VORF9E
RUNMUworCisjZW5kaWYgLyogR2RvbURPTU9iamVjdF9oICovCisKSW5kZXg6IFdlYktpdC9ndGsv
Z2RvbS9HU3RyaW5nQ29udmVydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HU3Ry
aW5nQ29udmVydC5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL0dTdHJpbmdDb252
ZXJ0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZu
ZGVmIEdTdHJpbmdDb252ZXJ0X2gKKyNkZWZpbmUgR1N0cmluZ0NvbnZlcnRfaAorCisvKiBjb252
ZW5pZW5jZSBjKysgY2xhc3MgZm9yIGNvbnZlcnRpbmcgdmFyaW91cyBkaWZmZXJlbnQgd2Via2l0
CisgKiBzdHJpbmcgdHlwZXMgaW50byBhIHV0ZjggZ2xpYiBzdHJpbmcuCisgKi8KKworI2luY2x1
ZGUgIkF0b21pY1N0cmluZy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJLVVJM
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJ1bmljb2RlL3VzdHJp
bmcuaCIKKworaW5saW5lIGdjaGFyICogR1N0cmluZ0NvbnZlcnQoV2ViQ29yZTo6U3RyaW5nIGNv
bnN0JiBzKSB7IHJldHVybiBnX3N0cmR1cChzLnV0ZjgoKS5kYXRhKCkpOyB9CitpbmxpbmUgZ2No
YXIgKiBHU3RyaW5nQ29udmVydChXZWJDb3JlOjpLVVJMIGNvbnN0JiBzKSB7IHJldHVybiBnX3N0
cmR1cChzLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOyB9CitpbmxpbmUgZ2NoYXIgKiBHU3RyaW5n
Q29udmVydChjb25zdCBKU0M6OlVTdHJpbmcmIHMpIHsgcmV0dXJuIGdfc3RyZHVwKHMuVVRGOFN0
cmluZygpLmNfc3RyKCkpOyB9CitpbmxpbmUgZ2NoYXIgKiBHU3RyaW5nQ29udmVydChXZWJDb3Jl
OjpBdG9taWNTdHJpbmcgY29uc3QmcykgeyByZXR1cm4gZ19zdHJkdXAocy5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsgfQorCisjZW5kaWYgLyogR1N0cmluZ0NvbnZlcnRfaCovCkluZGV4OiBXZWJL
aXQvZ3RrL2dkb20vV2Via2l0RXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSW5k
ZXg6IFdlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5oCShyZXZp
c2lvbiAwKQorKysgV2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGVQcml2YXRlLmgJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
THVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEFwcGxlIEluYy4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCisgKi8KKworI2lmbmRlZiBH
ZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZV9oCisjZGVmaW5lIEdkb21FdmVudFRhcmdldE5vZGVQ
cml2YXRlX2gKKworI2luY2x1ZGUgIkV2ZW50VGFyZ2V0Tm9kZS5oIgorI2luY2x1ZGUgImdkb20v
R2RvbU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKwordHlwZWRlZiBz
dHJ1Y3QgX0dkb21FdmVudFRhcmdldE5vZGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisgICAgR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqCisgICAgd3JhcChQYXNzUmVm
UHRyPFdlYkNvcmU6OkV2ZW50VGFyZ2V0Tm9kZT4gcHJwQ29yZU9iamVjdCk7CisKKyAgICBXZWJD
b3JlOjpFdmVudFRhcmdldE5vZGUgKgorICAgIGNvcmUoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqcmVx
dWVzdCk7Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBXZWJLaXQvZ3Rr
L2dkb20vV2Via2l0RXZlbnRUYXJnZXROb2RlSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkluZGV4OiBX
ZWJLaXQvZ3RrL2dkb20vV2Via2l0RXZlbnRUYXJnZXROb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDog
V2ViS2l0L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvZ3RrL2dkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0
L2d0ay9nZG9tL0dkb21FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdo
dG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxw
QGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICovCisKKyNp
Zm5kZWYgR2RvbUV2ZW50VGFyZ2V0Tm9kZV9oCisjZGVmaW5lIEdkb21FdmVudFRhcmdldE5vZGVf
aAorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmlu
ZXMuaD4KKworR19CRUdJTl9ERUNMUworCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0
Tm9kZSBHZG9tRXZlbnRUYXJnZXROb2RlOwordHlwZWRlZiBzdHJ1Y3QgX0dkb21FdmVudFRhcmdl
dE5vZGVDbGFzcyBHZG9tRXZlbnRUYXJnZXROb2RlQ2xhc3M7CisKKyNkZWZpbmUgR0RPTV9UWVBF
X0VWRU5UX1RBUkdFVF9OT0RFICAgICAgICAgICAgKGdkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9FVkVOVF9UQVJHRVRfTk9ERShvYmopICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VU
X05PREUsIEdkb21FdmVudFRhcmdldE5vZGUpKQorI2RlZmluZSBHRE9NX0VWRU5UX1RBUkdFVF9O
T0RFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdE
T01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSwgR2RvbUV2ZW50VGFyZ2V0Tm9kZUNsYXNzKSkKKyNk
ZWZpbmUgR0RPTV9JU19FVkVOVF9UQVJHRVRfTk9ERShvYmopICAgICAgICAgKEdfVFlQRV9DSEVD
S19JTlNUQU5DRV9UWVBFKChvYmopLCBHRE9NX1RZUEVfRVZFTlRfVEFSR0VUX05PREUpKQorI2Rl
ZmluZSBHRE9NX0lTX0VWRU5UX1RBUkdFVF9OT0RFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNL
X0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV9FVkVOVF9UQVJHRVRfTk9ERSkpCisjZGVm
aW5lIEdET01fRVZFTlRfVEFSR0VUX05PREVfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFO
Q0VfR0VUX0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0VWRU5UX1RBUkdFVF9OT0RFLCBHZG9tRXZl
bnRUYXJnZXROb2RlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfR2RvbUV2ZW50VGFyZ2V0Tm9k
ZVByaXZhdGUgR2RvbUV2ZW50VGFyZ2V0Tm9kZVByaXZhdGU7CisKKyNpbmNsdWRlICJnZG9tL0dk
b21Ob2RlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRXZlbnQuaCIKKworc3RydWN0IF9HZG9tRXZl
bnRUYXJnZXROb2RlIHsKKyAgICBHZG9tTm9kZSBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBHZG9t
RXZlbnRUYXJnZXROb2RlUHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfR2RvbUV2ZW50VGFy
Z2V0Tm9kZUNsYXNzIHsKKyAgICBHZG9tTm9kZUNsYXNzIHBhcmVudF9jbGFzczsKK307CisKK1dF
QktJVF9BUEkgR1R5cGUKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3R5cGUgKHZvaWQpOwor
CitXRUJLSVRfQVBJIHZvaWQKK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfaW5pdF9ldmVudF90YXJn
ZXRfbm9kZSAoR2RvbUV2ZW50VGFyZ2V0Tm9kZSAqdGhpeik7CisKK1dFQktJVF9BUEkgZ2Jvb2xl
YW4KK2dkb21fZXZlbnRfdGFyZ2V0X25vZGVfZGlzcGF0Y2hfZXZlbnQgKEdkb21FdmVudFRhcmdl
dE5vZGUgKnRoaXosIEdkb21FdmVudCAqIGV2dCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAv
KiBkb21FdmVudFRhcmdldE5vZGVfaCAqLworCkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vZ2RvbS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9nZG9tLmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2MyBAQAorI2lu
Y2x1ZGUgPGdkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURP
TU9iamVjdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUF0dHIuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21CYXJJbmZvLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFzR3JhZGllbnQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21DYW52YXNQYXR0ZXJuLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFz
UGl4ZWxBcnJheS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNEQVRBU2VjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUNoYXJhY3RlckRhdGEuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DbGlwYm9hcmQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21Db21tZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ29uc29sZS5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUNvdW50ZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1ND
aGFyc2V0UnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU0ZvbnRGYWNlUnVsZS5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUNTU0ltcG9ydFJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NN
ZWRpYVJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NQYWdlUnVsZS5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ1NTUnVs
ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1J1bGVMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1N0eWxlUnVs
ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1N0eWxlU2hlZXQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21DU1NWYWx1ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ZhbHVlTGlzdC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURhdGFiYXNlLmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbURvY3VtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnRUeXBlLmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bURPTUNvcmVFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01JbXBsZW1lbnRhdGlv
bi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVBhcnNlci5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bURPTVNlbGVjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVdpbmRvdy5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FbnRpdHkuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21F
dmVudEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUV2ZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tRXZlbnRMaXN0ZW5lci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUZpbGUuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21GaWxlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhpc3Rvcnku
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxBcHBsZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEFyZWFF
bGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxCbG9ja3F1b3RlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxCb2R5RWxlbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxCUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MQnV0dG9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxDYW52YXNF
bGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTENvbGxlY3Rpb24uaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxEaXZFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTERMaXN0RWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUhUTUxEb2N1bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21IVE1MRm9udEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRm9ybUVsZW1lbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIZWFk
RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIZWFkaW5nRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxIUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
SHRtbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21IVE1MSW5wdXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTElzSW5kZXhFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExJ
RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUhUTUxNYXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1h
cnF1ZWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1lbnVFbGVtZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTE1vZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MT3B0R3JvdXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE9wdGlv
bkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MUHJlRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxT
ZWxlY3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFN0eWxlRWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1M
VGFibGVDb2xFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxUZXh0QXJlYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUltYWdlRGF0YS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUphdmFTY3JpcHRDYWxsRnJh
bWUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21LZXlib2FyZEV2ZW50Lmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tTG9jYXRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NZWRpYUxpc3QuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21NZXNzYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NaW1lVHlw
ZUFycmF5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTWltZVR5cGUuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21Nb3VzZUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTXV0YXRpb25FdmVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbU5hbWVkTm9kZU1hcC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5h
dmlnYXRvci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vZGVGaWx0ZXIuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21Ob2RlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tTm9kZUxpc3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Ob3RhdGlvbi5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbU92ZXJmbG93RXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21QbHVnaW5BcnJheS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVBsdWdpbi5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVBy
b2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21SYW5nZUV4Y2VwdGlvbi5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbVJhbmdlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUmVjdC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbVNjcmVlbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVNRTEVycm9yLmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMUmVzdWx0U2V0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
U1FMUmVzdWx0U2V0Um93TGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVNRTFRyYW5zYWN0aW9u
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU3RvcmFnZUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tU3RvcmFnZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVN0eWxlU2hlZXQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21TdHlsZVNoZWV0TGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVRleHRFdmVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVRleHQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21UZXh0
TWV0cmljcy5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVRyZWVXYWxrZXIuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21VSUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tV2ViS2l0QW5pbWF0aW9uRXZl
bnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbVdlYktpdFBvaW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tV2hlZWxFdmVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tWE1MSHR0cFJlcXVlc3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9h
ZC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTFNlcmlhbGl6ZXIuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21YUGF0aEV2YWx1YXRvci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhQYXRoRXhjZXB0aW9u
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhFeHByZXNzaW9uLmg+CisjaW5jbHVkZSA8Z2Rv
bS9HZG9tWFBhdGhOU1Jlc29sdmVyLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhSZXN1bHQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YU0xUUHJvY2Vzc29yLmg+CkluZGV4OiBXZWJLaXQvZ3Rr
L2dkb20vV2Via2l0RE9NT2JqZWN0UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSW5kZXg6IFdlYktpdC9n
dGsvZ2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
Z2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay9n
ZG9tL0dkb21ET01PYmplY3RQcml2YXRlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290b0Bm
cmVlZGVza3RvcC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRv
a2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuICBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIEdkb21ET01PYmplY3RQcml2YXRlX2gKKyNkZWZpbmUgR2RvbURPTU9i
amVjdFByaXZhdGVfaAorCisjaW5jbHVkZSAiZ2RvbS9HZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVk
ZSAiZ2xpYi1vYmplY3QuaCIKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSB7CisgICAg
Z3BvaW50ZXIgY29yZU9iamVjdDsKK307CisKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0dFVF9Q
UklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2JqKSwgR0RPTV9UWVBF
X0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkKKworI2VuZGlmCisKSW5kZXg6IFdl
YktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA0NDQ3MykKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTczLDYgKzI1NzMsNDggQEAKICAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vid2luZG93ZmVh
dHVyZXMuY3BwOgogICAgICAgICAoX1dlYktpdFdlYldpbmRvd0ZlYXR1cmVzUHJpdmF0ZTo6d2Vi
a2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfbmV3X2Zyb21fY29yZV9mZWF0dXJlcyk6CiAKKzIwMDgt
MTEtMzAgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cG9zdFByb2dyZXNz
RXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiB3ZWJraXQvRXZlbnRMaXN0
ZW5lck5vZGUuaDogQWRkZWQuCisgICAgICAgICogd2Via2l0L0V2ZW50TGlzdGVuZXJXaW5kb3cu
aDogQWRkZWQuCisgICAgICAgICogd2Via2l0L0V2ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5o
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvZ2RvbS5oOiBBZGRlZC4gIFRoaXMgZmlsZSBwdWxs
cyBpbiBhbGwgb2YgdGhlIGdkb20gZ2xpYiBoZWFkZXJzLiAgaXQncyB0aGVyZSBmb3IgcGVvcGxl
IHdobyB3YW50IHRvIGJlIGxhenkgYW5kIG5vdCBoYXZlIHRvICNpbmNsdWRlIDMwMCBmaWxlcy4K
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZGVmaW5lcy5oOgorICAgICAgICAqIHdlYmtpdC93ZWJr
aXRldmVudC5jcHA6IEFkZGVkLgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0
X2V2ZW50X2ZpbmFsaXplKToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9l
dmVudF9jbGFzc19pbml0KToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9l
dmVudF9pbml0KToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9u
ZXcpOgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2ZW50X2dldF9ldmVu
dF90eXBlKToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9jYW5j
ZWxfYnViYmxlKToKKyAgICAgICAgKF9XZWJLaXRFdmVudFByaXZhdGU6OndlYmtpdF9ldmVudF9w
cmV2ZW50X2RlZmF1bHQpOgorICAgICAgICAoX1dlYktpdEV2ZW50UHJpdmF0ZTo6d2Via2l0X2V2
ZW50X3N0b3BfcHJvcGFnYXRpb24pOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3Rl
bmVyOjpjcmVhdGUpOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpzZXRf
dHlwZSk6CisgICAgICAgIChYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6OlhNTEh0dHBSZXF1
ZXN0RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXI6
On5YTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoWE1MSHR0cFJlcXVlc3RF
dmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChOb2RlRXZlbnRMaXN0ZW5lcjo6
Y3JlYXRlKToKKyAgICAgICAgKE5vZGVFdmVudExpc3RlbmVyOjpzZXRfdHlwZSk6CisgICAgICAg
IChOb2RlRXZlbnRMaXN0ZW5lcjo6Tm9kZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoTm9kZUV2
ZW50TGlzdGVuZXI6On5Ob2RlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChOb2RlRXZlbnRMaXN0
ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoV2luZG93RXZlbnRMaXN0ZW5lcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdpbmRvd0V2ZW50TGlzdGVuZXI6OnNldF90eXBlKToKKyAgICAgICAgKFdp
bmRvd0V2ZW50TGlzdGVuZXI6OldpbmRvd0V2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2luZG93
RXZlbnRMaXN0ZW5lcjo6fldpbmRvd0V2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2luZG93RXZl
bnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoYWRkX3htbF9odHRwX3JlcXVlc3Rf
ZXZlbnRfbGlzdGVuZXIpOgorICAgICAgICAoYWRkX2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAg
KGFkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRldmVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOiBhZGRlZCBi
cm93c2VyLWV2ZW50LCBzdXBwb3J0IGZvciBYTUxIdHRwUmVxdWVzdCwgZ2V0dGluZyBET00gV2lu
ZG93LCBET00gRG9jdW1lbnQsIGFuZCBXaW5kb3cgZXZlbnQgbGlzdGVuZXIuCisgICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6CisKIDIwMDgtMTEtMjkgIENocmlzdGlhbiBEeXdhbiAg
PGNocmlzdGlhbkB0d290b2FzdHMuZGU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZy
ZXl0aGVyLgpJbmRleDogV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QJKHJldmlzaW9uIDQ0NDczKQorKysgV2Vi
S2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTE1LDUgKzE1LDYg
QEAKIFZPSUQ6T0JKRUNULE9CSkVDVAogVk9JRDpPQkpFQ1QsUE9JTlRFUixQT0lOVEVSCiBWT0lE
Ok9CSkVDVCxTVFJJTkcKK1ZPSUQ6T0JKRUNULEJPT0xFQU4KIFZPSUQ6U1RSSU5HCiBWT0lEOlNU
UklORyxTVFJJTkcKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0LDggQEAKIAogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgdGl0bGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVmZXJyZXI7
Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBU
CisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQ
VCkgfHwgXAorICAgICAoZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JK
RUNUKQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgZG9tYWluOwogI2Vsc2UKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBkb21haW47CkBAIC0xODAsNyArMTgxLDggQEAKIAogICAgICAgICBOb2RlTGlzdCBn
ZXRFbGVtZW50c0J5TmFtZShpbiBET01TdHJpbmcgZWxlbWVudE5hbWUpOwogCi0jaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCisjaWYgKGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgXAorICAg
ICAoZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUKQogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9jYXRpb247CiAjZW5kaWYK
IApAQCAtMTkzLDcgKzE5NSw4IEBACiAgICAgICAgIEVsZW1lbnQgICAgICAgICAgICBlbGVtZW50
RnJvbVBvaW50KGluIGxvbmcgeCwgaW4gbG9uZyB5KTsKIAogICAgICAgICAvLyBNb3ppbGxhIGV4
dGVuc2lvbnMKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pB
VkFTQ1JJUFQKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBcCisgICAgIChkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdV
QUdFX0dPQkpFQ1QpCiAgICAgICAgIERPTVNlbGVjdGlvbiAgICAgICBnZXRTZWxlY3Rpb24oKTsK
ICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89
TnVsbF0gRE9NU3RyaW5nIGNoYXJhY3RlclNldDsKSW5kZXg6IFdlYkNvcmUvZG9tL1JhbmdlRXhj
ZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwJ
KHJldmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw4IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYm
IExBTkdVQUdFX0pBVkFTQ1JJUFQKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAm
JiBMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBcCisgICAgIChkZWZpbmVkKExBTkdVQUdFX0dPQkpF
Q1QpICYmIExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRv
U3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAkocmV2aXNpb24g
NDQ0NzMpCisrKyBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDcgKzM4LDggQEAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICAgbmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAg
bWVzc2FnZTsKIAotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0Vf
SkFWQVNDUklQVAorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdF
X0pBVkFTQ1JJUFQpIHx8IFwKKyAgICAgKGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFO
R1VBR0VfR09CSkVDVCkKICAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGli
bGUgZm9ybWF0CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5k
aWYKSW5kZXg6IFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaWRsCShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYkNvcmUv
ZG9tL0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw4IEBACiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBhbHRHcmFwaEtleSk7CiAK
ICAgICAgICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCAhTEFOR1VBR0VfSkFWQVNDUklQVAorI2lmICghZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCAhTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgXAorICAgICAoIWRlZmluZWQo
TEFOR1VBR0VfR09CSkVDVCkgfHwgIUxBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGtleUNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNoYXJDb2RlOwogICAgICAgICAKSW5kZXg6IFdlYkNv
cmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RP
TUNvcmVFeGNlcHRpb24uaWRsCShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYkNvcmUvZG9tL0RPTUNv
cmVFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw4IEBACiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExB
TkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKKyNpZiAoZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBcCisgICAgIChk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8v
IE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVu
dW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMv
Z3RrL1BsdWdpblBhY2thZ2VHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy9n
dGsvUGx1Z2luUGFja2FnZUd0ay5jcHAJKHJldmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS9wbHVn
aW5zL2d0ay9QbHVnaW5QYWNrYWdlR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYs
NyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgogCkluZGV4OiBXZWJDb3Jl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNDQ0
NzMpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtNjI2MDEsNiArNjI2
MDEsMTMxIEBACiAKICAgICAgICAgKiBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6
IFJlbW92ZWQgQ29tcGxldGlvbi5oIGluY2x1ZGUuCiAKKzIwMDgtMTEtMzAgIGxrY2wgIDxsa2Ns
QGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgICog
R05VbWFrZWZpbGUuYW06IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1QsIGdsaWIgRE9NIGJpbmRpbmdz
IGZpbGVzLCBpbmNsdWRpbmcgbWFya2luZyBTVkcgYXMgIlRPRE8iCisgICAgICAgICogYmluZGlu
Z3MvZ2RvbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6YWRkV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpyZW1vdmVXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZVdyYXBwZXJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OndyYXBwZXJTZXQpOgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlckNh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OmRvbU9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6
R0RPTVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlX2dkb21fb2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6cHV0RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnBy
ZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRl
cnByZXRlcjo6Z2V0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01T
Y3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NTm9kZUZvckRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6cHV0RE9NTm9kZUZvckRvY3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0QWxsRE9NTm9kZXNG
b3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6Om1h
cmtET01Ob2Rlc0ZvckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdET01TY3JpcHRJbnRl
cnByZXRlcjo6dXBkYXRlRE9NTm9kZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnRvR0RP
TSk6CisgICAgICAgIChXZWJDb3JlOjp0b0dET01OZXdseUNyZWF0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NQmluZGlu
Zy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNhY2hlRE9NT2JqZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OmNhY2hlU1ZHRE9NT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dE
T01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDogQWRkZWQuICBDb3BpZWQgZnJvbSB0aGUg
YXV0by1nZW5lcmF0ZWQgSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZUFuY2hvcldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
QXBwbGV0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBcmVhV3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVCYXNlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVCYXNlRm9udFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQmxvY2txdW90
ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQm9keVdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlQlJXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1
dHRvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ2FudmFzV3JhcHBlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZUNhcHRpb25XcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZVRhYmxlQ29sV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVN
b2RXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRGl2V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVETGlzdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRW1iZWRXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZpZWxkU2V0V3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGb250V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3Jt
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcmFtZVdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlRnJhbWVTZXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZUhlYWRpbmdXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhlYWRXcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhSV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVIdG1sV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJRnJhbWVXcmFw
cGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUltYWdlV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVJbnB1dFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSXNJ
bmRleFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTGFiZWxXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxlZ2VuZFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlTElXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUxpbmtXcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1hcFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlTWFycXVlZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVudVdyYXBw
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWV0YVdyYXBwZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlT2JqZWN0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPTGlz
dFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3B0R3JvdXBXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9wdGlvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlUGFyYWdyYXBoV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXJhbVdy
YXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUHJlV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVRdW90ZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU2Ny
aXB0V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTZWxlY3RXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN0eWxlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVUYWJsZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVTZWN0aW9u
V3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRleHRBcmVhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVUaXRsZVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFibGVSb3dX
cmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVVMaXN0V3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVHRE9NSFRNTFdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2dk
b20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaDogIEFkZGVkLiAgQ29waWVkIGZyb20g
dGhlIGF1dG8tZ2VuZXJhdGVkIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCisgICAgICAg
ICogYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcDogQWRkZWQuCisgICAgICAgICogYmlu
ZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dk
b20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5jcHA6IEFkZGVkLgorICAgICAgICAoR1N0cmluZ0NvbnZl
cnQ6OkdTdHJpbmdDb252ZXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21FdmVudFRh
cmdldE5vZGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvZ2RvbS9Qcml2YXRlR2RvbURP
TU9iamVjdC5jcHA6IEFkZGVkLgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2YXRlOjpnZG9t
X2RvbV9vYmplY3Rfc2V0X3ByaXZhdGUpOgorICAgICAgICAoX0dkb21ET01PYmplY3RQcml2YXRl
OjpnZG9tX2RvbV9vYmplY3RfZ2V0X3ByaXZhdGUpOgorICAgICAgICAoX0dkb21ET01PYmplY3RQ
cml2YXRlOjpnZG9tX2RvbV9vYmplY3RfZmluYWxpemUpOgorICAgICAgICAoX0dkb21ET01PYmpl
Y3RQcml2YXRlOjpnZG9tX2RvbV9vYmplY3RfY2xhc3NfaW5pdCk6CisgICAgICAgIChfR2RvbURP
TU9iamVjdFByaXZhdGU6Omdkb21fZG9tX29iamVjdF9pbml0KToKKyAgICAgICAgKiBiaW5kaW5n
cy9nZG9tL1ByaXZhdGVHZG9tRE9NT2JqZWN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L2dkb20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKGdk
b21fZXZlbnRfdGFyZ2V0X25vZGVfZ2V0X3ByaXZhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2dk
b20vUHJpdmF0ZUdkb21FdmVudFRhcmdldE5vZGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3MvZ2RvbS9Qcml2YXRlSW50R2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9nZG9tL1ByaXZhdGVJbnRHZG9tRXZlbnRUYXJnZXROb2RlLmg6IEFkZGVkLgorICAgICAg
ICAoR0RPTUV2ZW50VGFyZ2V0Tm9kZTo6R0RPTUV2ZW50VGFyZ2V0Tm9kZSk6CisgICAgICAgIChH
RE9NRXZlbnRUYXJnZXROb2RlOjpnZXRfZ29ial90eXBlKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOiBBZGRlZCBnb2JqZWN0IGJpbmRpbmdzIGF1
dG8tZ2VuZXJhdG9yLgorICAgICAgICAqIGRvbS9ET01Db3JlRXhjZXB0aW9uLmlkbDogYWRkZWQg
TEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRs
OiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAqIGRvbS9FdmVu
dEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAg
ICAgICogZG9tL0tleWJvYXJkRXZlbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNp
ZmljIElETAorICAgICAgICAqIGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdF
X0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5p
ZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogaHRtbC9I
VE1MQXBwbGV0RWxlbWVudC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURM
CisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbDogYWRkZWQgTEFOR1VBR0VfR09C
SkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbDog
YWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKyAgICAgICAgKiBwYWdlL0RPTVNl
bGVjdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElE
TAorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpF
Q1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlk
bDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwgCisgICAgICAgICogeG1sL1hQ
YXRoRXhjZXB0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKwog
MjAwOC0xMS0xMyAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IGEgYnVnIGluIFNjcm9sbFZpZXcncyByZWZhY3RvcmluZy4gIEFuIGlzVmlzaWJsZSBjaGVjayBz
aG91bGQgaGF2ZSBiZWVuIGlzU2VsZlZpc2libGUuCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NU2Vs
ZWN0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAko
cmV2aXNpb24gNDQ0NzMpCisrKyBXZWJDb3JlL3BhZ2UvRE9NU2VsZWN0aW9uLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNTgsNyArNTgsOCBAQAogICAgICAgICB2b2lkIHJlbW92ZUFsbFJhbmdlcygp
OwogICAgICAgICB2b2lkIGFkZFJhbmdlKGluIFJhbmdlIHJhbmdlKTsKIAotI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAorI2lmIChkZWZpbmVk
KExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IFwKKyAgICAg
KGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAg
W0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKICNlbmRpZgogCkluZGV4OiBXZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJl
dmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpA
QCAtMiwxMyArMiwyOCBAQAogV2ViQ29yZSA6PSAkKHNyY2RpcikvV2ViQ29yZQogCiBGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCA6PSBMQU5HVUFHRV9KQVZBU0NSSVBUPTEKK0ZFQVRVUkVfREVG
SU5FU19HRE9NIDo9IExBTkdVQUdFX0dPQkpFQ1Q9MQogU1ZHX0ZFQVRVUkVTIDo9CiBIVE1MX0ZF
QVRVUkVTIDo9CiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTIDo9ICQoV2ViQ29yZSkvY3Nz
L0NTU1Byb3BlcnR5TmFtZXMuaW4KIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTIDo9ICQoV2Vi
Q29yZSkvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KIAorbGliZ2RvbV9jcHBmbGFncyArPSBcCisJ
JChDQUlST19DRkxBR1MpIFwKKwkkKEdUS19DRkxBR1MpIFwKKwkkKExJQlhNTF9DRkxBR1MpIFwK
KwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20gXAorCS1JJChzcmNkaXIpL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ayBc
CisJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwKKwktSSQo
dG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKKwkt
SSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0IFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJLUkkKHNyY2Rpcikv
V2ViQ29yZSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5IFwKIAktSSQoc3Jj
ZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwKQEAgLTMwLDYgKzQ1LDcgQEAKIAktSSQoc3JjZGly
KS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbiBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dkb20gXAogCS1JJChzcmNk
aXIpL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyBcCiAJLUkkKHNyY2Rpcikv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9ibXAgXApAQCAtODMsNyArOTksMzA4IEBACiAJRGVyaXZl
ZFNvdXJjZXMvWE1MTmFtZXMuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9YTUxOYW1lcy5oCiAKLUlE
TF9CSU5ESU5HUyArPSBcCitsaWJnZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUF0dHIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21BdHRyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUJhckluZm8uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21CYXJJbmZvLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2Vj
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRBU2VjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NDaGFyc2V0UnVsZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNTU0NoYXJzZXRSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNTU0ZvbnRGYWNlUnVsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRG
YWNlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NJbXBvcnRSdWxlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NNZWRpYVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUGFnZVJ1bGUu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NQYWdlUnVsZS5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21DU1NQcmltaXRpdmVWYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNTU1J1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxlLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1J1bGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTUnVsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5
bGVEZWNsYXJhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlRGVj
bGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVSdWxlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5bGVSdWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNTU1N0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NTdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFsdWUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ1NTVmFsdWVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q1NTVmFsdWVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzRGVj
bGFyYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzR3JhZGllbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21DYW52YXNHcmFkaWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21D
YW52YXNQYXR0ZXJuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGF0dGVy
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQaXhlbEFycmF5LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tQ2hhcmFjdGVyRGF0YS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNoYXJhY3RlckRhdGEuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2xpcGJvYXJkLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2xpcGJvYXJkLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNvbW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db21t
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvbnNvbGUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21Db25zb2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNv
dW50ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db3VudGVyLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbURPTUNvcmVFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21ET01Db3JlRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bURPTUltcGxlbWVudGF0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NSW1w
bGVtZW50YXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NUGFyc2VyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NUGFyc2VyLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbURPTVNlbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURP
TVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01XaW5kb3cuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01XaW5kb3cuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudEZyYWdtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21Eb2N1bWVudFR5cGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21Eb2N1bWVudFR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tRW50aXR5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eVJlZmVyZW5jZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eVJlZmVyZW5jZS5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tRXZlbnRFeGNlcHRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRXZlbnRMaXN0ZW5lci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50TGlz
dGVuZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUZpbGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZUxp
c3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxBbmNob3JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxBcHBsZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFw
cGxldEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MQlJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxCYXNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUZvbnRFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEJvZHlFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxC
dXR0b25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJ1dHRvbkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ2FudmFzRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ29sbGVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxDb2xsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxETGlzdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRExpc3RF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MRG9jdW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRG9j
dW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEVtYmVkRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTEZvcm1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxG
cmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIUkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MSFJFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxIZWFkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxIZWFkRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxJRnJhbWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElG
cmFtZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEltYWdlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElucHV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTElzSW5kZXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTElzSW5kZXhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMSUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxMZWdlbmRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTExlZ2VuZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExpbmtFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXBFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTE1hcnF1ZWVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWV0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MTW9kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT0xpc3RFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPYmplY3RFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MT3B0R3JvdXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxPcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlv
bkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFBhcmFncmFwaEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFByZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUHJl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUXVvdGVFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxTY3JpcHRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxTZWxlY3RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TFNlbGVjdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFN0eWxlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTdHlsZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxUYWJsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFi
bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFRpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxUaXRsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFVM
aXN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxVTGlzdEVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSGlzdG9yeS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhpc3RvcnkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSW1h
Z2VEYXRhLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSW1hZ2VEYXRhLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUtleWJvYXJkRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21L
ZXlib2FyZEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0aW9uLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTG9jYXRpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tTWVkaWFMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFM
aXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3NhZ2VFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21NZXNzYWdlUG9ydC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lc3Nh
Z2VQb3J0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1pbWVUeXBlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTWltZVR5cGVBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1pbWVUeXBl
QXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTW91c2VFdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbU1vdXNlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tTXV0YXRpb25FdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU11dGF0
aW9uRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTmFtZWROb2RlTWFwLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTmFtZWROb2RlTWFwLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU5hdmlnYXRvci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5h
dmlnYXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2Rl
RmlsdGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUZpbHRlci5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlSXRlcmF0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21Ob2RlSXRlcmF0b3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9k
ZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlTGlzdC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbU5vdGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU92ZXJmbG93RXZlbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21PdmVyZmxvd0V2ZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVBsdWdpbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW5BcnJheS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbkFycmF5LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21Qcm9ncmVzc0V2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJvZ3Jlc3NF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVJhbmdlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdl
RXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmFuZ2VFeGNlcHRpb24u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmVjdC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU2NyZWVuLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU2NyZWVuLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TdHlsZVNo
ZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXRMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldExpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tVGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRleHRN
ZXRyaWNzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dE1ldHJpY3MuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVHJlZVdhbGtlci5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVUlFdmVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVVJRXZlbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21XZWJLaXRBbmltYXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVdlYktpdFBvaW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0UG9pbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21XaGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBS
ZXF1ZXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVhNTFNlcmlhbGl6ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21YTUxTZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhTTFRQcm9j
ZXNzb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YU0xUUHJvY2Vzc29yLmggXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAg
XAorCVdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5o
IAorCitJRExfQklORElOR1MgKz0gIFwKIAlXZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwg
XAogCVdlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogCVdlYkNvcmUvY3NzL0NTU0lt
cG9ydFJ1bGUuaWRsIFwKQEAgLTI1NCw2ICs1NzEsMTQgQEAKIAlXZWJDb3JlL3htbC9YTUxTZXJp
YWxpemVyLmlkbCBcCiAJV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwKIAorbGliZ2RvbV9z
b3VyY2VzICs9IFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwIFwKKwlX
ZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9n
ZG9tL0dkb21ET01PYmplY3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9i
amVjdC5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdFByaXZhdGUuaCAK
KworCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvV2ViQ29yZVByZWZpeC5oIFwKICAg
ICAgICAgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIFwKQEAgLTE4ODks
NiArMjIxNCw5IEBACiAjIEZyZWV0eXBlIGZvbnQgYmFja2VuZAogIyAtLS0KIGlmIFVTRV9GUkVF
VFlQRQorbGliZ2RvbV9jcHBmbGFncyArPSBcCisJLURVU0VfRlJFRVRZUEU9MQorCiB3ZWJjb3Jl
Z3RrX2NwcGZsYWdzICs9IFwKIAktRFVTRV9GUkVFVFlQRT0xCiAKQEAgLTE5MDMsNiArMjIzMSw4
IEBACiAjIFBhbmdvIGZvbnQgYmFja2VuZAogIyAtLS0KIGlmIFVTRV9QQU5HTworbGliZ2RvbV9j
cHBmbGFncyArPSBcCisJLURVU0VfUEFOR089MQogd2ViY29yZWd0a19jcHBmbGFncyArPSBcCiAJ
LURVU0VfUEFOR089MQogCkBAIC0xOTI5LDcgKzIyNTksMTEgQEAKICMgLS0tLQogaWYgRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSAr
PSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAorbGliZ2RvbV9idWlsdF9zb3Vy
Y2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmNw
cAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxp
Y2F0aW9uQ2FjaGUuaWRsCiAKQEAgLTE5NzAsNyArMjMwNCwyMCBAQAogIyAtLS0tCiBpZiBFTkFC
TEVfREFUQUJBU0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9EQVRBQkFT
RT0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfREFUQUJBU0U9MQogCitsaWJnZG9t
X2J1aWx0X3NvdXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURhdGFiYXNlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxF
cnJvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNRTFJlc3VsdFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FM
VHJhbnNhY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxUcmFuc2FjdGlv
bi5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwg
XAogCVdlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5pZGwgXApAQCAtMjA0Niw3ICsyMzkzLDE0IEBA
CiAjIC0tLS0KIGlmIEVOQUJMRV9ET01fU1RPUkFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJ
UFQgKz0gRU5BQkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJM
RV9ET01fU1RPUkFHRT0xCiAKK2xpYmdkb21fYnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU3RvcmFnZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0
b3JhZ2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZUV2ZW50LmggCisKIElETF9CSU5ESU5HUyAr
PSBcCiAJV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZUV2ZW50LmlkbApAQCAtMjEwNyw2ICsyNDYxLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJ
REVPCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVS
RV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFC
TEVfVklERU89MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMTE1
LDYgKzI0NzAsMjIgQEAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURHU1RfRElTQUJMRV9ERVBSRUNB
VEVECiBlbmRpZiAjIEVORCBFTkFCTEVfREVCVUcKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXVkaW9FbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTE1lZGlhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU291
cmNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTb3VyY2VFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21NZWRpYUVycm9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRpbWVSYW5nZXMuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVZvaWRDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVZvaWRDYWxsYmFjay5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvaHRtbC9UaW1l
UmFuZ2VzLmlkbAogCkBAIC0yMTU2LDEzICsyNTI3LDI2IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9Y
UEFUSAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hQQVRIPTEKK0ZFQVRV
UkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9YUEFUSD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0g
LURFTkFCTEVfWFBBVEg9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRT
b3VyY2VzL1hQYXRoR3JhbW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5o
CisJRGVyaXZlZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmggCiAKK2xpYmdkb21fYnVpbHRfc291cmNl
cyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVhQYXRoRXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVz
c2lvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tWFBhdGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aFJl
c3VsdC5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9y
LmlkbCBcCiAJV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsIFwKQEAgLTIyMjYsNiArMjYx
MCw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9YU0xUCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQ
VCArPSBFTkFCTEVfWFNMVD0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfWFNMVD0x
CiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFNMVD0xCiAKQEAgLTIzOTYsNiArMjc4
MSw3IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9TVkcKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBU
ICs9IEVOQUJMRV9TVkc9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkc9MSAt
IGJpZyBUT0RPISA6KQogCiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUyArPSAkKFdlYkNvcmUp
L2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluIAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMg
Kz0gJChXZWJDb3JlKS9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMjQwNiw2ICsyNzky
LDI3MyBAQAogCURlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
WExpbmtOYW1lcy5jcHAKIAorbm90LXlldDoKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdB
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Fu
Z2xlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVDb2xvckVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHQW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdB
bmltYXRlZEJvb2xlYW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRl
ZEJvb2xlYW4uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkRW51bWVyYXRp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Fu
aW1hdGVkTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRO
dW1iZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRp
by5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJlY3QuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJlY3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0Fu
aW1hdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2lyY2xlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NpcmNsZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
Q29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdDdXJzb3JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ3Vyc29y
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZWZpbml0aW9uU3JjRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZmluaXRpb25TcmNFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZnNFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRGVmc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdEZXNjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEb2N1bWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RvY3VtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRJ
bnN0YW5jZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRJbnN0YW5j
ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGxpcHNlRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0V4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNW
R0V4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUJsZW5kRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQmxlbmRFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRUZ1bmNBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFRnVuY0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
RnVuY0JFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jQkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jR0VsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdGRUltYWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
SW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFTWVyZ2VFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdGRVNwb3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
RkVUaWxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFVGlsZUVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRmlsdGVyRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdGb250RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFj
ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZU5hbWVFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdHRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHSW1hZ2VFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHSW1hZ2VF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTGVu
Z3RoTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMaW5lRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdNYXJrZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHTWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdN
YXNrRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hc2tFbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdNZXRhZGF0YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNZXRh
ZGF0YUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWlzc2luZ0dseXBo
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR051bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdOdW1i
ZXJMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhaW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGFpbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHUGF0aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRo
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUGF0aFNlZ0FyY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2Vn
QXJjUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0FyY1JlbC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
UmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0
b1F1YWRyYXRpY0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5ldG9B
YnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJz
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250
YWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6
b250YWxSZWwuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRv
SG9yaXpvbnRhbFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGlu
ZXRvUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1Jl
bC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxB
YnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGlj
YWxBYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1Zl
cnRpY2FsUmVsLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1BhdGhTZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
dGVybkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXR0ZXJuRWxl
bWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2ludC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1BvaW50TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50TGlz
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2x5Z29uRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvbHlnb25FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVj
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1JlY3QuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdSZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZW5k
ZXJpbmdJbnRlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZW5kZXJpbmdJ
bnRlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU1ZHRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NWR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1NjcmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU2V0
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NldEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RvcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdTdG9wRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdTdHJpbmdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3Ry
aW5nTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1N3aXRjaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHU3ltYm9sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N5bWJv
bEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFJlZkVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
VGV4dENvbnRlbnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dEVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1RpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1RpdGxlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zv
cm0uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zvcm0uaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHVW5pdFR5cGVzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVW5pdFR5
cGVzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1VzZUVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdVc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHVmlld0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9C
SU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2Vi
Q29yZS9zdmcvU1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTI5NjYsMzAgKzM2MTksMzUgQEAKICMgU1ZH
IEZlYXR1cmVzCiBpZiBFTkFCTEVfU1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX1NWR19VU0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdf
VVNFPTEgIyBiaWcgVE9ETyEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJj
b3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NW
R19GT1JFSUdOX09CSkVDVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NW
R19GT1JFSUdOX09CSkVDVD0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVD0xIAogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpF
Q1Q9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQog
ZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQg
Kz0gRU5BQkxFX1NWR19GT05UUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NW
R19GT05UUz0xCiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2Nw
cGZsYWdzICs9IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FT
X0lNQUdFCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdF
PTEKKyNGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19G
RUFUVVJFUyArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURF
TkFCTEVfU1ZHX0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCiBG
RUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCisjRkVB
VFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogU1ZHX0ZFQVRVUkVT
ICs9IEVOQUJMRV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
U1ZHX0FOSU1BVElPTj0xCiBlbmRpZgpAQCAtMjk5Nyw2ICszNjU1LDcgQEAKICMgU1ZHIHRhZyBh
bmQgYXR0cmlidXRlIG5hbWVzIChuZWVkIHRvIHBhc3MgYW4gZXh0cmEgZmxhZyBpZiBzdmcgZXhw
ZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkKQogRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMu
Y3BwOiBEZXJpdmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA7CiBEZXJpdmVkU291cmNl
cy9KU1NWR0VsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1l
bnRGYWN0b3J5LmNwcAorRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmNwcDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNW
R19GTEFHUwogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUp
L2RvbS9tYWtlX25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9z
dmcvc3ZnYXR0cnMuaW4KQEAgLTMxMjQsNiArMzc4MywxMyBAQAogCiB2cGF0aCAlLmlkbCA9ICQo
SURMX1BBVEgpCiAKKworRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5oOiBEZXJpdmVkU291cmNl
cy9nZG9tL0dkb20lLmNwcDsKKworRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA6ICUuaWRs
ICQoU0NSSVBUU19CSU5ESU5HUykgJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCisJJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAk
KFdlYkNvcmUpL2JpbmRpbmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1pbmNsdWRl
ICQoV2ViQ29yZSkvZG9tIC0taW5jbHVkZSAkKFdlYkNvcmUpL2h0bWwgLS1pbmNsdWRlICQoV2Vi
Q29yZSkvY3NzIC0taW5jbHVkZSAkKFdlYkNvcmUpL3BhZ2UgLS1pbmNsdWRlICQoV2ViQ29yZSkv
eG1sIC0taW5jbHVkZSAkKFdlYkNvcmUpL3N2ZyAtLW91dHB1dERpciAiJChHRU5TT1VSQ0VTR0RP
TSkiIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVNfR0RPTSkiIC0tZ2VuZXJhdG9yIEdPYmpl
Y3QgJDwKKworCiBEZXJpdmVkU291cmNlcy9KUyUuaDogRGVyaXZlZFNvdXJjZXMvSlMlLmNwcDsK
IAogLlNFQ09OREFSWToKQEAgLTMxODQsNiArMzg1MCw3IEBACiAJV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0luRmlsZXNQYXJzZXIucG0gXAogCVdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5l
cmF0ZS1iaW5kaW5ncy5wbCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbSBcCisJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0
LnBtIFwKIAlXZWJDb3JlL2Nzcy9odG1sNC5jc3MgXAogCVdlYkNvcmUvY3NzL3F1aXJrcy5jc3Mg
XAogCVdlYkNvcmUvY3NzL3ZpZXctc291cmNlLmNzcyBcCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAJKHJldmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDk3LDE0ICs0OTcsMTggQEAKICAgICAgICAgaG9zdFdpbmRv
dygpLT5yZXBhaW50KHBhblNjcm9sbEljb25EaXJ0eVJlY3QsIHRydWUpOwogICAgIH0KIAorI2lm
IDAKICAgICBpZiAoY2FuQmxpdE9uU2Nyb2xsKCkgJiYgIXJvb3RQcmV2ZW50c0JsaXR0aW5nKCkp
IHsgLy8gVGhlIG1haW4gZnJhbWUgY2FuIGp1c3QgYmxpdCB0aGUgV2ViVmlldyB3aW5kb3cKICAg
ICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBibGl0IHN1YmZyYW1lcyB3aXRob3V0IGJsaXR0
aW5nIG92ZXJsYXBwaW5nIGNvbnRlbnQKICAgICAgICBob3N0V2luZG93KCktPnNjcm9sbCgtc2Ny
b2xsRGVsdGEsIHNjcm9sbFZpZXdSZWN0LCBjbGlwUmVjdCk7CiAgICAgfSBlbHNlIHsgCisjZW5k
aWYKICAgICAgICAvLyBXZSBuZWVkIHRvIGdvIGFoZWFkIGFuZCByZXBhaW50IHRoZSBlbnRpcmUg
YmFja2luZyBzdG9yZS4gIERvIGl0IG5vdyBiZWZvcmUgbW92aW5nIHRoZQogICAgICAgIC8vIHdp
bmRvd2VkIHBsdWdpbnMuCiAgICAgICAgaG9zdFdpbmRvdygpLT5yZXBhaW50KHVwZGF0ZVJlY3Qs
IHRydWUsIGZhbHNlLCB0cnVlKTsgLy8gSW52YWxpZGF0ZSB0aGUgYmFja2luZyBzdG9yZSBhbmQg
cmVwYWludCBpdCBzeW5jaHJvbm91c2x5CisjaWYgMAogICAgIH0KKyNlbmRpZgogCiAgICAgLy8g
VGhpcyBjYWxsIHdpbGwgbW92ZSBjaGlsZHJlbiB3aXRoIG5hdGl2ZSB3aWRnZXRzIChwbHVnaW5z
KSBhbmQgaW52YWxpZGF0ZSB0aGVtIGFzIHdlbGwuCiAgICAgZnJhbWVSZWN0c0NoYW5nZWQoKTsK
QEAgLTczMSwyMiArNzM1LDIyIEBACiAgICAgICAgIHJldHVybjsKIAogICAgIEludFJlY3QgZG9j
dW1lbnREaXJ0eVJlY3QgPSByZWN0OwotICAgIGRvY3VtZW50RGlydHlSZWN0LmludGVyc2VjdChm
cmFtZVJlY3QoKSk7CiAKICAgICBjb250ZXh0LT5zYXZlKCk7CiAKICAgICBjb250ZXh0LT50cmFu
c2xhdGUoeCgpLCB5KCkpOwogICAgIGRvY3VtZW50RGlydHlSZWN0Lm1vdmUoLXgoKSwgLXkoKSk7
CiAKLSAgICBjb250ZXh0LT50cmFuc2xhdGUoLXNjcm9sbFgoKSwgLXNjcm9sbFkoKSk7Ci0gICAg
ZG9jdW1lbnREaXJ0eVJlY3QubW92ZShzY3JvbGxYKCksIHNjcm9sbFkoKSk7CisgICAgY29udGV4
dC0+dHJhbnNsYXRlKC1tX3Njcm9sbE9mZnNldC53aWR0aCgpLCAtbV9zY3JvbGxPZmZzZXQuaGVp
Z2h0KCkpOworICAgIGRvY3VtZW50RGlydHlSZWN0Lm1vdmUobV9zY3JvbGxPZmZzZXQud2lkdGgo
KSwgbV9zY3JvbGxPZmZzZXQuaGVpZ2h0KCkpOwogCi0gICAgY29udGV4dC0+Y2xpcCh2aXNpYmxl
Q29udGVudFJlY3QoKSk7CisgICAgZG9jdW1lbnREaXJ0eVJlY3QuaW50ZXJzZWN0KGVuY2xvc2lu
Z0ludFJlY3QodmlzaWJsZUNvbnRlbnRSZWN0KCkpKTsKKyAgICBpZiAoIWRvY3VtZW50RGlydHlS
ZWN0LmlzRW1wdHkoKSkgeworICAgICAgICBjb250ZXh0LT5jbGlwKGRvY3VtZW50RGlydHlSZWN0
KTsgCisgICAgICAgIHBhaW50Q29udGVudHMoY29udGV4dCwgZG9jdW1lbnREaXJ0eVJlY3QpOwor
ICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAgfQogCi0gICAgcGFpbnRDb250ZW50cyhj
b250ZXh0LCBkb2N1bWVudERpcnR5UmVjdCk7Ci0KLSAgICBjb250ZXh0LT5yZXN0b3JlKCk7Ci0K
ICAgICAvLyBOb3cgcGFpbnQgdGhlIHNjcm9sbGJhcnMuCiAgICAgaWYgKCFtX3Njcm9sbGJhcnNT
dXBwcmVzc2VkICYmIChtX2hvcml6b250YWxTY3JvbGxiYXIgfHwgbV92ZXJ0aWNhbFNjcm9sbGJh
cikpIHsKICAgICAgICAgY29udGV4dC0+c2F2ZSgpOwpAQCAtNzU0LDYgKzc1OCwxMCBAQAogICAg
ICAgICBzY3JvbGxWaWV3RGlydHlSZWN0LmludGVyc2VjdChmcmFtZVJlY3QoKSk7CiAgICAgICAg
IGNvbnRleHQtPnRyYW5zbGF0ZSh4KCksIHkoKSk7CiAgICAgICAgIHNjcm9sbFZpZXdEaXJ0eVJl
Y3QubW92ZSgteCgpLCAteSgpKTsKKworICAgICAgICAvLyAyLzkvMDkgQ1NpZGhhbGwgUmVzZXQg
dGhlIGNvbnRleHQgZm9yIHNjcm9sbCBkaXJ0eSByZWN0IGFzIGl0IG1pZ2h0IGJlIGRpZmZlcmVu
dAorICAgICAgICBjb250ZXh0LT5jbGlwKHNjcm9sbFZpZXdEaXJ0eVJlY3QpOworCiAgICAgICAg
IGlmIChtX2hvcml6b250YWxTY3JvbGxiYXIpCiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3Jv
bGxiYXItPnBhaW50KGNvbnRleHQsIHNjcm9sbFZpZXdEaXJ0eVJlY3QpOwogICAgICAgICBpZiAo
bV92ZXJ0aWNhbFNjcm9sbGJhcikKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRN
TEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorICoKKyAqIENv
cHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisKKy8qIE5vdGU6IFRoaXMgZmlsZSBpcyBkZXJpdmVkIGJ5IGhhbmQgZnJvbSBh
biBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZAorIGZpbGUuCisgCisgS2VlcGluZyBpdCB1cC10by1k
YXRlIGNvdWxkIHBvdGVudGlhbGx5IGJlIGRvbmUgYnkgYWRkaW5nIGEKKyBtYWtlX25hbWVzLnBs
IGdlbmVyYXRvciwgb3IgYnkgd3JpdGluZyBhIHNlcGFyYXRlIGdlbmVyYXRlciB3aGljaAorIHRh
a2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorKi8KKworCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgImdkb20vR2RvbU5vZGUuaCIKKyNpbmNsdWRl
ICJHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFwcGxldEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQmFzZUZvbnRF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEJSRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxU
YWJsZUNvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTW9kRWxlbWVudC5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTERpdkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRExpc3RFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
Rm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRm9ybUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEZyYW1lU2V0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIZWFkaW5nRWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxIUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSHRtbEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
SW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50Lmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxMZWdlbmRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExJRWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxNYXBFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1hcnF1ZWVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1lbnVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiZ2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9i
amVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT0xpc3RFbGVtZW50LmgiCisj
aW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFBhcmFncmFw
aEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUGFyYW1FbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
UXVvdGVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGl0bGVF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxVTGlzdEVsZW1lbnQuaCIKKworI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxBbmNob3JFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxBcmVhRWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MQmFzZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTEJhc2VGb250RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
QmxvY2txdW90ZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJvZHlF
bGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCUkVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJ1dHRvbkVsZW1lbnRQcml2YXRlLmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTFRhYmxlQ29sRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
TW9kRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxl
bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGl2RWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRExpc3RFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxFbWJlZEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTEZpZWxkU2V0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
Rm9udEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50
UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGcmFtZUVsZW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MSGVhZGluZ0VsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEhlYWRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxI
UkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50UHJp
dmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxJRnJhbWVFbGVtZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTElucHV0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21I
VE1MSXNJbmRleEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExhYmVs
RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVudFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTElFbGVtZW50UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxMaW5rRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MTWFwRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWFy
cXVlZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1lbnVFbGVtZW50
UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNZXRhRWxlbWVudFByaXZhdGUuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJnZG9tL0dkb21IVE1MT0xpc3RFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxPcHRHcm91cEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9w
dGlvbkVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFBhcmFncmFwaEVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MUHJlRWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MUXVvdGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxTY3JpcHRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxT
ZWxlY3RFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxTdHlsZUVsZW1l
bnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudFByaXZhdGUuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxUaXRsZUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TFRhYmxlUm93RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVUxpc3RF
bGVtZW50UHJpdmF0ZS5oIgorCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisKKyNpbmNsdWRlICJI
VE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJhc2VFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCbG9ja3F1b3Rl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxC
UkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1vZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxE
aXZFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxFbWJlZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZVNldEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJIVE1MSGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSGVh
ZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSFJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEh0
bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxJc0luZGV4RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMYWJlbEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxMSUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFwRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZW51
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxP
YmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9MaXN0RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFBhcmFtRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFF1b3Rl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGV4
dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxUYWJsZVJvd0VsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVUxpc3RFbGVtZW50LmgiCisj
aW5jbHVkZSAiQ1N0cmluZy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6SFRNTE5hbWVzOworCit0eXBl
ZGVmIGdwb2ludGVyICgqQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24pKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+KTsKKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUFuY2hvcldyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxB
bmNob3JFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQXBwbGV0V3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEFwcGxldEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTEFwcGxldEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBncG9pbnRlciBjcmVhdGVBcmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEFyZWFFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxBcmVhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVy
IGNyZWF0ZUJhc2VXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7Cisg
ICAgcmV0dXJuIHdyYXBIVE1MQmFzZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJhc2VFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQmFzZUZvbnRX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdy
YXBIVE1MQmFzZUZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCYXNlRm9udEVsZW1lbnQqPihl
bGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVCbG9ja3F1b3RlV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFw
SFRNTEJsb2NrcXVvdGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCbG9ja3F1b3RlRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUJvZHlXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1M
Qm9keUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEJvZHlFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQlJXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MQlJFbGVtZW50KHN0YXRpY19j
YXN0PEhUTUxCUkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRl
ciBjcmVhdGVCdXR0b25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIHdyYXBIVE1MQnV0dG9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQnV0dG9u
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUNh
bnZhc1dyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxDYW52YXNFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVDYXB0aW9u
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3
cmFwSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUYWJs
ZUNvbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxUYWJsZUNvbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlQ29sRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU1vZFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhU
TUxNb2RFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNb2RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGlyZWN0b3J5V3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTERpcmVjdG9yeUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERpcmVjdG9yeUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7
Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVEaXZXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRGl2RWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MRGl2RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2lu
dGVyIGNyZWF0ZURMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiB3cmFwSFRNTERMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRExpc3RF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRW1i
ZWRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IHdyYXBIVE1MRW1iZWRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxFbWJlZEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVGaWVsZFNldFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxG
aWVsZFNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZpZWxkU2V0RWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUZvbnRXcmFwcGVyKFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRm9udEVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTEZvbnRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgZ3BvaW50ZXIgY3JlYXRlRm9ybVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxGb3JtRWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MRm9ybUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBj
cmVhdGVGcmFtZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gd3JhcEhUTUxGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUZyYW1lU2V0
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3
cmFwSFRNTEZyYW1lU2V0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRnJhbWVTZXRFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSGVhZGluZ1dyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhU
TUxIZWFkaW5nRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZGluZ0VsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVIZWFkV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEhlYWRFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxIZWFkRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIGdwb2ludGVyIGNyZWF0ZUhSV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEhSRWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
SFJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRl
SHRtbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gd3JhcEhUTUxIdG1sRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSHRtbEVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVJRnJhbWVXcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSUZy
YW1lRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSUZyYW1lRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUltYWdlV3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEltYWdlRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgZ3BvaW50ZXIgY3JlYXRlSW5wdXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MSW5wdXRFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBj
cmVhdGVJc0luZGV4V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTElzSW5kZXhFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxJc0luZGV4
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUxh
YmVsV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biB3cmFwSFRNTExhYmVsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTGFiZWxFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTGVnZW5kV3JhcHBlcihQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTExl
Z2VuZEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExlZ2VuZEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVMSVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxMSUVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTExJRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2lu
dGVyIGNyZWF0ZUxpbmtXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIHdyYXBIVE1MTGlua0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExpbmtFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTWFwV3Jh
cHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFw
SFRNTE1hcEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE1hcEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVNYXJxdWVlV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE1hcnF1ZWVFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxNYXJxdWVlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU1lbnVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTWVudUVsZW1lbnQoc3RhdGljX2Nh
c3Q8SFRNTE1lbnVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50
ZXIgY3JlYXRlTWV0YVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gd3JhcEhUTUxNZXRhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWV0YUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVPYmplY3RX
cmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdy
YXBIVE1MT2JqZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU9MaXN0V3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE9MaXN0
RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT0xpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwor
fQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlT3B0R3JvdXBXcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MT3B0R3JvdXBFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBncG9pbnRlciBjcmVhdGVPcHRpb25XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MT3B0aW9uRWxlbWVudChzdGF0aWNf
Y2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdw
b2ludGVyIGNyZWF0ZVBhcmFncmFwaFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxQYXJhZ3JhcGhFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxQYXJhZ3JhcGhFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3Bv
aW50ZXIgY3JlYXRlUGFyYW1XcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQp
Cit7CisgICAgcmV0dXJuIHdyYXBIVE1MUGFyYW1FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxQYXJh
bUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVQ
cmVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IHdyYXBIVE1MUHJlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MUHJlRWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVF1b3RlV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFF1b3RlRWxl
bWVudChzdGF0aWNfY2FzdDxIVE1MUXVvdGVFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlU2NyaXB0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFNjcmlwdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFNjcmlwdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVTZWxlY3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MU2VsZWN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1M
U2VsZWN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNy
ZWF0ZVN0eWxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiB3cmFwSFRNTFN0eWxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MU3R5bGVFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBI
VE1MVGFibGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUYWJsZVNlY3Rpb25XcmFwcGVyKFBh
c3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRhYmxlQ2VsbFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhU
TUxUYWJsZUNlbGxFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJsZUNlbGxFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGV4dEFyZWFXcmFwcGVy
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1M
VGV4dEFyZWFFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUaXRsZVdyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUaXRsZUVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRpdGxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRhYmxlUm93V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFRhYmxlUm93RWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MVGFibGVSb3dFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitz
dGF0aWMgZ3BvaW50ZXIgY3JlYXRlVUxpc3RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+
IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MVUxpc3RFbGVtZW50KHN0YXRpY19jYXN0
PEhUTUxVTGlzdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK2dwb2ludGVyIGNyZWF0
ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxFbGVtZW50PiBlbGVtZW50
KQoreworICAgIHN0YXRpYyBIYXNoTWFwPFdlYkNvcmU6OkF0b21pY1N0cmluZ0ltcGwqLCBDcmVh
dGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbj4gbWFwOworICAgIGlmIChtYXAuaXNFbXB0eSgp
KSB7CisgICAgICAgbWFwLnNldChhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQW5jaG9y
V3JhcHBlcik7CisgICAgICAgbWFwLnNldChhcHBsZXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVBcHBsZXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGFyZWFUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVBcmVhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChiYXNlVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlQmFzZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFzZWZv
bnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlRm9udFdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQoYmxvY2txdW90ZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJsb2NrcXVv
dGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVCb2R5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChiclRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUJSV3JhcHBlcik7CisgICAgICAgbWFwLnNldChidXR0b25UYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVCdXR0b25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNhbnZhc1Rh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUNhbnZhc1dyYXBwZXIpOworICAgICAgIG1hcC5z
ZXQoY2FwdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlQ2FwdGlvbldyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoY29sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFi
bGVDb2xXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZGlyVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlRGlyZWN0b3J5V3JhcHBlcik7CisgICAgICAgbWFwLnNldChkaXZUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVEaXZXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRsVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRExpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGVtYmVkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRW1iZWRXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KGZpZWxkc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRmllbGRTZXRX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZvbnRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVGb250V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb3JtVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlRm9ybVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVGcmFtZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZnJhbWVzZXRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVGcmFtZVNldFdyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoaDFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZFdyYXBw
ZXIpOworICAgICAgIG1hcC5zZXQoaHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIUldy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoaHRtbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUh0bWxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlmcmFtZVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUlGcmFtZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaW1nVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgY3JlYXRlSW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGlucHV0VGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSW5wdXRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGlzaW5kZXhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVJc0luZGV4V3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChsYWJlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxhYmVsV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChsZWdlbmRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVMZWdlbmRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlTElXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGxpbmtUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVMaW5rV3JhcHBlcik7CisgICAgICAgbWFwLnNldChtYXBUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVNYXBXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG1hcnF1ZWVU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNYXJxdWVlV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChtZW51VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWVudVdyYXBwZXIpOworICAg
ICAgIG1hcC5zZXQobWV0YVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1ldGFXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KG9iamVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9i
amVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVPTGlzdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0Z3JvdXBUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVPcHRHcm91cFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQob3B0aW9u
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0aW9uV3JhcHBlcik7CisgICAgICAgbWFw
LnNldChwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUGFyYWdyYXBoV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChwYXJhbVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFtV3Jh
cHBlcik7CisgICAgICAgbWFwLnNldChwcmVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVQ
cmVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVRdW90ZVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2NyaXB0VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlU2NyaXB0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChzZWxlY3RUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVTZWxlY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHN0
eWxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU3R5bGVXcmFwcGVyKTsKKyAgICAgICBt
YXAuc2V0KHRhYmxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KHRib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVT
ZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0ZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZVRhYmxlQ2VsbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGV4dGFyZWFUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUZXh0QXJlYVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
dGl0bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUaXRsZVdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQodHJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVJvd1dyYXBwZXIp
OworICAgICAgIG1hcC5zZXQodWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVVTGlzdFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoY29sZ3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVUYWJsZUNvbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoaDJUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChoM1RhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGg0
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1h
cC5zZXQoaDVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7Cisg
ICAgICAgbWFwLnNldChoNlRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KGltYWdlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
SW1hZ2VXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGluc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZU1vZFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoa2V5Z2VuVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChsaXN0aW5nVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0
Zm9vdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQodGhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxX
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlVGFibGVTZWN0aW9uV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh4bXBUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVQcmVXcmFwcGVyKTsKKyAgICB9CisKKyAgICBDcmVhdGVIVE1MRWxl
bWVudFdyYXBwZXJGdW5jdGlvbiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24gPQorICAgICAgICBtYXAu
Z2V0KGVsZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwoKSk7CisgICAgaWYgKGNyZWF0ZVdyYXBwZXJG
dW5jdGlvbikKKyAgICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXJGdW5jdGlvbihlbGVtZW50KTsK
KyAgICByZXR1cm4gd3JhcEhUTUxFbGVtZW50KGVsZW1lbnQuZ2V0KCkpOworfQorCit9CisKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9XZWJraXRFdmVudFRhcmdldE5vZGVQcml2YXRlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5jcHAJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDYxNyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAw
MSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiAgQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICog
IENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxr
Y2wubmV0PgorICogIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVz
a3RvcC5vcmc+CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisvLyBnY2MgMy54IGNh
bid0IGhhbmRsZSBpbmNsdWRpbmcgdGhlIEhhc2hNYXAgcG9pbnRlciBzcGVjaWFsaXphdGlvbgor
Ly8gaW4gdGhpcyBmaWxlCisjaWYgZGVmaW5lZCBfX0dOVUNfXyAmJiAhZGVmaW5lZCBfX0dMSUJD
WFhfXyAvLyBsZXNzIHRoYW4gZ2NjIDMuNAorI2RlZmluZSBIQVNIX01BUF9QVFJfU1BFQ19XT1JL
QVJPVU5EIDEKKyNlbmRpZgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKy8qIHllcyB0aGVzZSBh
cmUgb3V0LW9mLW9yZGVyLCBidXQgdGhleSBhcmUgZ3JvdXBlZCBieQorICogcHVycG9zZS4gIHRo
ZSAjaW5jbHVkZXMgbmVlZGVkIGZvciB0b0dET00oRG9jdW1lbnQqKQorICogZ290IGFkZGVkLCBh
bmQgdGhlIG9uZXMgZm9yIHRvR0RPTShDU1NSdWxlKikgZ290IGFkZGVkCisgKiBzZXBhcmF0ZWx5
LCBhbmQgdGhlbiBzb21lIGFyZSBjb25kaXRpb25hbCBiYXNlZCBvbgorICogY29tcGlsZS10aW1l
IG9wdGlvbnMsIGFuZCB5ZXQgbW9yZSB3aWxsIGJlIGFkZGVkCisgKiBlLmcuIGZvciBTVkcgQ2Fu
dmFzLgorICovCisKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIkNTdHJpbmcu
aCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxl
bWVudFdyYXBwZXJGYWN0b3J5LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5j
bHVkZSAiR2RvbUNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVTaGVldFBy
aXZhdGUuaCIKKworI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisKKyNp
bmNsdWRlICJHZG9tTm9kZVByaXZhdGUuaCIKKworI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRl
ICJDREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbW1l
bnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQu
aCIKKyNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJFbnRpdHkuaCIKKyNpbmNs
dWRlICJFbnRpdHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1
ZGUgIkdkb21BdHRyLmgiCisjaW5jbHVkZSAiR2RvbUF0dHJQcml2YXRlLmgiCisjaW5jbHVkZSAi
R2RvbUNoYXJhY3RlckRhdGEuaCIKKyNpbmNsdWRlICJHZG9tVGV4dC5oIgorI2luY2x1ZGUgIkdk
b21DREFUQVNlY3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIkdk
b21Eb2N1bWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVk
ZSAiR2RvbURvY3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHkuaCIKKyNpbmNsdWRl
ICJHZG9tRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRl
ICJHZG9tQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiR2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJO
b3RhdGlvbi5oIgorI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUg
IlRleHQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworI2luY2x1ZGUgIkdkb21DU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NTQ2hhcnNldFJ1
bGUuaCIKKyNpbmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NJbXBvcnRS
dWxlLmgiCisjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUu
aCIKKyNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NWYXJpYWJsZXNSdWxl
LmgiCisjaW5jbHVkZSAiR2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0Zv
bnRGYWNlUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAi
R2RvbUNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1
ZGUgIkdkb21DU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFyaWFibGVzUnVsZS5o
IgorCisjaW5jbHVkZSAiR2RvbUV2ZW50UHJpdmF0ZS5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJk
LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiR2Rv
bUNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAi
R2RvbU1lc3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVk
ZSAiR2RvbU11dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudC5oIgor
I2luY2x1ZGUgIkdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVRleHRFdmVudC5o
IgorI2luY2x1ZGUgIkdkb21VSUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdEFuaW1hdGlv
bkV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1
ZGUgIkdkb21XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5oIgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNZXNzYWdl
RXZlbnQuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTXV0YXRpb25FdmVu
dC5oIgorI2luY2x1ZGUgIk92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50
LmgiCisjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1
ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmgiCisjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5oIgorCisjaW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNp
bmNsdWRlICJBdG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2lu
Y2x1ZGUgIkhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkdkb21IVE1MT3B0aW9u
c0NvbGxlY3Rpb24uaCIKKworI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyNpbmNsdWRlICJHZG9t
U3RvcmFnZUV2ZW50LmgiCisjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCisjZW5kaWYKKworI2lm
IEVOQUJMRShTVkcpCisjaWYgMCAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworI2luY2x1ZGUgIkdk
b21TVkdab29tRXZlbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVNWR1pvb21FdmVudC5oIgor
I2luY2x1ZGUgIlNWR1pvb21FdmVudC5oIgorI2VuZGlmCisjZW5kaWYKKworI2lmIEVOQUJMRShT
VkcpCisjaWYgMCAvKiBYWFggVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyNpbmNsdWRlICJHZG9tU1ZH
RWxlbWVudFdyYXBwZXJGYWN0b3J5UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50
V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRp
ZgorCisjaWYgMAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiR2RvbVNWR0V4Y2VwdGlvbi5o
IgorI2luY2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUg
Ikdkb21DREFUQVNlY3Rpb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0NoYXJzZXRSdWxl
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGVQcml2YXRlLmgiCisjaW5j
bHVkZSAiR2RvbUNTU0ltcG9ydFJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU01lZGlh
UnVsZVByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUGFnZVJ1bGVQcml2YXRlLmgiCisjaW5j
bHVkZSAiR2RvbUNTU1ByaW1pdGl2ZVZhbHVlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NS
dWxlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NTdHlsZVJ1bGVQcml2YXRlLmgiCisjaW5j
bHVkZSAiR2RvbUNTU1ZhbHVlTGlzdFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFsdWVQ
cml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxlc1J1bGVQcml2YXRlLmgiCisjaW5j
bHVkZSAiR2RvbUNsaXBib2FyZFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJHZG9tRG9jdW1lbnRGcmFnbWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJHZG9tRG9jdW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50VHlwZVByaXZh
dGUuaCIKKyNpbmNsdWRlICJHZG9tRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tRW50
aXR5UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHlSZWZlcmVuY2VQcml2YXRlLmgiCisj
aW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21IVE1M
RG9jdW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvblBy
aXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tS2V5Ym9hcmRFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJHZG9tTWVzc2FnZUV2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIkdkb21NdXRhdGlvbkV2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUg
Ikdkb21Ob3RhdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uUHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgIkdkb21Qcm9ncmVzc0V2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21TdG9yYWdl
RXZlbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVN0eWxlU2hlZXRQcml2YXRlLmgiCisjaW5j
bHVkZSAiR2RvbVRleHRFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tVGV4dFByaXZhdGUu
aCIKKyNpbmNsdWRlICJHZG9tVUlFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tV2ViS2l0
QW5pbWF0aW9uRXZlbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdFRyYW5zaXRpb25F
dmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tV2hlZWxFdmVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJHZG9tWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50UHJpdmF0ZS5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTo6SFRNTE5hbWVzOworCit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBE
T01PYmplY3RNYXA7CisKK3N0YXRpYyBET01PYmplY3RNYXAmIGRvbU9iamVjdHMoKQoreworICAg
IHN0YXRpYyBET01PYmplY3RNYXAgc3RhdGljRE9NT2JqZWN0czsKKyAgICByZXR1cm4gc3RhdGlj
RE9NT2JqZWN0czsKK30KKworZ3BvaW50ZXIgR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3Qo
dm9pZCogb2JqZWN0SGFuZGxlKQoreworICAgIGdwb2ludGVyIHJldCA9IGRvbU9iamVjdHMoKS5n
ZXQob2JqZWN0SGFuZGxlKTsKKyAgICByZXR1cm4gcmV0OworfQorCitncG9pbnRlciBHRE9NT2Jq
ZWN0Q2FjaGU6OnB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIGdwb2ludGVyIHdyYXBw
ZXIpCit7CisgICAgZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIHdyYXBwZXIpOworICAg
IHJldHVybiB3cmFwcGVyOworfQorCit2b2lkIEdET01PYmplY3RDYWNoZTo6Zm9yZ2V0RE9NT2Jq
ZWN0KHZvaWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICBkb21PYmplY3RzKCkudGFrZShvYmplY3RI
YW5kbGUpOworfQorCitncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBpZiAo
IWRvYykKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTU9i
amVjdENhY2hlOjpnZXRET01PYmplY3QoZG9jKTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0
dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7CisKKyAgICBpZiAoZG9jLT5pc0hUTUxEb2N1
bWVudCgpKQorICAgICAgICByZXQgPSB3cmFwSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxE
b2N1bWVudCo+KGRvYykpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5pc1NW
R0RvY3VtZW50KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gLSBz
ZWUgIzIwNTg2ICovCisjaWYgMAorICAgICAgICByZXQgPSB3cmFwU1ZHRG9jdW1lbnQoc3RhdGlj
X2Nhc3Q8U1ZHRG9jdW1lbnQqPihkb2MpKTsKKyNlbmRpZgorICAgIH0KKyNlbmRpZgorICAgIGVs
c2UKKyAgICAgICAgcmV0ID0gd3JhcERvY3VtZW50KGRvYyk7CisKKyAgICByZXR1cm4gR0RPTU9i
amVjdENhY2hlOjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMgZ3BvaW50ZXIg
Y3JlYXRlV3JhcHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3bHlDcmVhdGVk
KE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsKKwor
ICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOworfQorCitncG9pbnRlciB0b0dET00oTm9k
ZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAg
Z3BvaW50ZXIgcmV0ID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3Qobm9kZSk7CisgICAg
aWYgKHJldCkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
KG5vZGUpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIHZhbHVlKQoreworICAgIGlm
ICghdmFsdWUpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdE
T01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAg
ICAgICByZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldDsKKworICAgIGlmICh2YWx1ZS0+
aXNWYWx1ZUxpc3QoKSkKKyAgICAgICAgcmV0ID0gd3JhcENTU1ZhbHVlTGlzdChzdGF0aWNfY2Fz
dDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAo
dmFsdWUtPmlzU1ZHUGFpbnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RP
IC0gc2VlICMyMDU4NiAqLworICAgICAgICAvL3JldCA9IHdyYXBTVkdQYWludChzdGF0aWNfY2Fz
dDxTVkdQYWludCo+KHZhbHVlKSk7CisgICAgfQorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR0Nv
bG9yKCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1ODYg
Ki8KKyAgICAgICAgLy9yZXQgPSB3cmFwU1ZHQ29sb3Ioc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2
YWx1ZSkpOworICAgIH0KKyNlbmRpZgorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZh
bHVlKCkpCisgICAgICAgIHJldCA9IHdyYXBDU1NQcmltaXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFw
Q1NTVmFsdWUodmFsdWUpOworCisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2Jq
ZWN0KHZhbHVlLCByZXQpOworfQorCitzdGF0aWMgQUxXQVlTX0lOTElORSBncG9pbnRlciBjcmVh
dGVXcmFwcGVyKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCgh
U2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU9iamVjdChub2RlKSk7CisKKyAgICBEb2N1bWVudCog
ZG9jID0gbm9kZS0+ZG9jdW1lbnQoKTsKKyAgICBncG9pbnRlciByZXQgPSBOVUxMOworCisgICAg
c3dpdGNoIChub2RlLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9O
T0RFOgorICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAg
ICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQq
Pihub2RlKSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmlz
U1ZHRWxlbWVudCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2lmIDAgLyogWFhY
IFRPRE8gLSBzZWUgIzIwNTg2ICovCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTVNW
R1dyYXBwZXIoc3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG5vZGUpKTsKKyNlbmRpZgorI2VuZGlm
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0ID0gd3JhcEVsZW1lbnQoc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcEF0dHIoc3Rh
dGljX2Nhc3Q8QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE5vZGU6OlRFWFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBUZXh0KHN0YXRpY19jYXN0
PFRleHQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpD
REFUQV9TRUNUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ0RBVEFTZWN0aW9uKHN0
YXRpY19jYXN0PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcEVudGl0
eShzdGF0aWNfY2FzdDxFbnRpdHkqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAgICAgICAgICBy
ZXQgPSB3cmFwUHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0
cnVjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OkNPTU1FTlRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDb21tZW50KHN0YXRpY19jYXN0
PENvbW1lbnQqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2Rl
OjpET0NVTUVOVF9OT0RFOgorICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0
aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQorICAgICAg
ICAgICAgcmV0dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUpKTsKKyAgICAg
ICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFw
RG9jdW1lbnRUeXBlKHN0YXRpY19jYXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6CisgICAgICAgICAg
ICByZXQgPSB3cmFwTm90YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihub2RlKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RF
OgorICAgICAgICAgICAgcmV0ID0gd3JhcERvY3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9j
dW1lbnRGcmFnbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBFbnRp
dHlSZWZlcmVuY2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSB3cmFwTm9k
ZShub2RlKTsKKyAgICB9CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmpl
Y3Qobm9kZSwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xs
ZWN0aW9uKQoreworICAgIGlmICghY29sbGVjdGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7CisK
KyAgICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QoY29sbGVj
dGlvbik7CisKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9p
bnRlciByZXQ7CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2Fz
ZSBTZWxlY3RPcHRpb25zOgorICAgICAgICAgICAgcmV0ID0gd3JhcEhUTUxPcHRpb25zQ29sbGVj
dGlvbihzdGF0aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyNpZiAwCisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OkRv
Y0FsbDoKKyAgICAgICAgICAgIHJldCA9IHdyYXBIVE1MQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxI
VE1MQ29sbGVjdGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlm
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSB3cmFwSFRNTENvbGxlY3Rpb24o
c3RhdGljX2Nhc3Q8SFRNTENvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3Qo
Y29sbGVjdGlvbiwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBldmVudCkKK3sK
KyAgICBpZiAoIWV2ZW50KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdv
YmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChldmVudCk7CisgICAgaWYgKGdvYmop
CisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3BvaW50ZXIgcmV0OworICAgIGlmIChldmVu
dC0+aXNVSUV2ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkK
KyAgICAgICAgICAgIHJldCA9IHdyYXBLZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0PEtleWJvYXJk
RXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNUZXh0RXZlbnQoKSkK
KyAgICAgICAgICAgIHJldCA9IHdyYXBUZXh0RXZlbnQoc3RhdGljX2Nhc3Q8VGV4dEV2ZW50Kj4o
ZXZlbnQpKTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAgICAg
ICAgICAgcmV0ID0gd3JhcE1vdXNlRXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50
KSk7CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1doZWVsRXZlbnQoKSkKKyAgICAgICAgICAg
IHJldCA9IHdyYXBXaGVlbEV2ZW50KHN0YXRpY19jYXN0PFdoZWVsRXZlbnQqPihldmVudCkpOwor
I2lmIEVOQUJMRShTVkcpCisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVudCgp
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1
ODYgKi8KKyAgICAgICAgICAgIC8vcmV0ID0gd3JhcFNWR1pvb21FdmVudChzdGF0aWNfY2FzdDxT
Vkdab29tRXZlbnQqPihldmVudCksIDApOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcmV0ID0gd3JhcFVJRXZlbnQoc3RhdGljX2Nhc3Q8VUlFdmVudCo+KGV2
ZW50KSk7CisgICAgfSBlbHNlIGlmIChldmVudC0+aXNNdXRhdGlvbkV2ZW50KCkpCisgICAgICAg
IHJldCA9IHdyYXBNdXRhdGlvbkV2ZW50KHN0YXRpY19jYXN0PE11dGF0aW9uRXZlbnQqPihldmVu
dCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5pc092ZXJmbG93RXZlbnQoKSkKKyAgICAgICAgcmV0
ID0gd3JhcE92ZXJmbG93RXZlbnQoc3RhdGljX2Nhc3Q8T3ZlcmZsb3dFdmVudCo+KGV2ZW50KSk7
CisgICAgZWxzZSBpZiAoZXZlbnQtPmlzTWVzc2FnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IHdy
YXBNZXNzYWdlRXZlbnQoc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZlbnQpKTsKKyAgICBl
bHNlIGlmIChldmVudC0+aXNQcm9ncmVzc0V2ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50LT5p
c1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gd3JhcFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQqPihldmVudCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSB3cmFw
UHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICB9
CisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1N0b3JhZ2VF
dmVudCgpKQorICAgICAgICByZXQgPSB3cmFwU3RvcmFnZUV2ZW50KHN0YXRpY19jYXN0PFN0b3Jh
Z2VFdmVudCo+KGV2ZW50KSk7CisjZW5kaWYKKyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRB
bmltYXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSB3cmFwV2ViS2l0QW5pbWF0aW9uRXZlbnQo
c3RhdGljX2Nhc3Q8V2ViS2l0QW5pbWF0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYg
KGV2ZW50LT5pc1dlYktpdFRyYW5zaXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSB3cmFwV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdFRyYW5zaXRpb25FdmVudCo+KGV2
ZW50KSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwRXZlbnQoZXZlbnQpOworCisgICAg
cmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KGV2ZW50LCByZXQpOworfQorCitn
cG9pbnRlciB0b0dET00oVGV4dCogdGV4dCkKK3sKKyAgICBpZiAoIXRleHQpCisgICAgICAgIHJl
dHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9N
T2JqZWN0KHRleHQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAg
IGdwb2ludGVyIHJldCA9IHdyYXBUZXh0KHRleHQpOworICAgIHJldHVybiBHRE9NT2JqZWN0Q2Fj
aGU6OnB1dERPTU9iamVjdCh0ZXh0LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTUnVs
ZSogcnVsZSkKK3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAg
Z3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHJ1bGUpOworCisg
ICAgaWYgKGdvYmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3BvaW50ZXIgcmV0Owor
ICAgIHN3aXRjaCAocnVsZS0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6U1RZTEVf
UlVMRToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NTdHlsZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NT
U3R5bGVSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NT
UnVsZTo6TUVESUFfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NNZWRpYVJ1bGUoc3Rh
dGljX2Nhc3Q8Q1NTTWVkaWFSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgQ1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6CisgICAgICAgICAgICByZXQgPSB3cmFw
Q1NTRm9udEZhY2VSdWxlKHN0YXRpY19jYXN0PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAg
ICAgICAgIHJldCA9IHdyYXBDU1NQYWdlUnVsZShzdGF0aWNfY2FzdDxDU1NQYWdlUnVsZSo+KHJ1
bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OklNUE9SVF9S
VUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENTU0ltcG9ydFJ1bGUoc3RhdGljX2Nhc3Q8Q1NT
SW1wb3J0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENT
U1J1bGU6OkNIQVJTRVRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NDaGFyc2V0UnVs
ZShzdGF0aWNfY2FzdDxDU1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAgICAgICAgICAgcmV0
ID0gd3JhcENTU1ZhcmlhYmxlc1J1bGUoc3RhdGljX2Nhc3Q8Q1NTVmFyaWFibGVzUnVsZSo+KHJ1
bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
cmV0ID0gd3JhcENTU1J1bGUocnVsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChydWxlLCByZXQpOworICAgIHJldHVybiBy
ZXQ7Cit9CisKK2dwb2ludGVyIHRvR0RPTShFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICgh
ZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBzaG91bGRuJ3QgYmUgb25l
PyBBU1NFUlQoIVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZWxlbWVudCkpOworICAg
IGdwb2ludGVyIGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChlbGVtZW50KTsK
KyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7
CisgICAgRG9jdW1lbnQqIGRvYyA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisKKyAgICBpZiAoZWxl
bWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBw
ZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CisjaWYgRU5BQkxFKFNWRykK
KyAgICBlbHNlIGlmIChlbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBOVUxMOyAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworICAgICAgICAvL3JldCA9IGNyZWF0
ZUdET01TVkdXcmFwcGVyKHN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihlbGVtZW50KSk7CisgICAg
fQorI2VuZGlmCisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwRWxlbWVudChlbGVtZW50KTsK
KworICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChlbGVtZW50LCByZXQp
OworfQorCitncG9pbnRlciB0b0dET00oU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBp
ZiAoIXN0eWxlU2hlZXQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29i
aiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHN0eWxlU2hlZXQpOworICAgIGlmIChn
b2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldDsKKyAgICBpZiAo
c3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJldCA9IHdyYXBDU1NTdHls
ZVNoZWV0KHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KSk7CisgICAgZWxz
ZQorICAgICAgICByZXQgPSB3cmFwU3R5bGVTaGVldChzdHlsZVNoZWV0KTsKKworICAgIHJldHVy
biBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChzdHlsZVNoZWV0LCByZXQpOworfQorCisv
KiBkZXJpdmVkIHNvdXJjZXMgYXV0by1nZW5lcmF0ZWQgKi8KK2dwb2ludGVyIHRvR0RPTShYTUxI
dHRwUmVxdWVzdFVwbG9hZCogb2JqKTsKKworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0KiB0
YXJnZXQpCit7CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBOVUxMOworCisjaWYg
MAorI2lmIEVOQUJMRShTVkcpCisgICAgLy8gU1ZHRWxlbWVudEluc3RhbmNlIHN1cHBvcnRzIGJv
dGggdG9TVkdFbGVtZW50SW5zdGFuY2UgYW5kCisgICAgLy8gdG9Ob2RlIHNpbmNlIHNvIG11Y2gg
bW91c2UgaGFuZGxpbmcgY29kZSBkZXBlbmRzIG9uIHRvTm9kZQorICAgIC8vIHJldHVybmluZyBh
IHZhbGlkIG5vZGUuCisgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSA9IHRhcmdldC0+
dG9TVkdFbGVtZW50SW5zdGFuY2UoKTsKKyAgICBpZiAoaW5zdGFuY2UpCisgICAgICAgIHJldHVy
biB0b0dET00oZXhlYywgaW5zdGFuY2UpOworI2VuZGlmCisjZW5kaWYKKworICAgIE5vZGUqIG5v
ZGUgPSB0YXJnZXQtPnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICByZXR1cm4gdG9H
RE9NKG5vZGUpOworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0KiB4aHIgPSB0YXJnZXQtPnRvWE1M
SHR0cFJlcXVlc3QoKSkKKyAgICAgICAgLy8gWE1MSHR0cFJlcXVlc3QgaXMgYWx3YXlzIGNyZWF0
ZWQgdmlhIEdET00sIHNvIHdlIGRvbid0IG5lZWQKKyAgICAgICAgLy8gdG8gdXNlIGNhY2hlRE9N
T2JqZWN0KCkgaGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2Jq
ZWN0KHhocik7CisKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdl
dC0+dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgpKQorICAgICAgICByZXR1cm4gdG9HRE9NKHVwbG9h
ZCk7CisKKyNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGlmIChET01B
cHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkp
CisgICAgICAgIC8vIERPTUFwcGxpY2F0aW9uQ2FjaGUgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdE
T00sIHNvIHdlIGRvbid0CisgICAgICAgIC8vIG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkg
aGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KGNhY2hl
KTsKKyNlbmRpZgorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE5VTEw7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9y
eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACisvKgorICogVEhJUyBGSUxFIElTIERF
UklWRUQgQlkgSEFORCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBJ
VCBJUyBOT1QgQU4gQVVUTy1HRU5FUkFURUQgRklMRSBJVCBXQVMgQ1JFQVRFRCBNQU5VQUxMWSAq
RlJPTSoKKyAqIEFOIEFVVE8tR0VORVJBVEVEIEZJTEUuCisgKiBrZWVwaW5nIGl0IHVwLXRvLWRh
dGUgY291bGQgcG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqIGEgbWFrZV9uYW1lcy5w
bCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogZ2VuZXJhdGVyIHdoaWNo
IHRha2VzIEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworCisjaWZuZGVmIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gK
KyNkZWZpbmUgR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAorCisjaW5jbHVkZSAiR2Rv
bU5vZGVQcml2YXRlLmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworICAgIGdwb2ludGVyIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPFdlYkNvcmU6
OkhUTUxFbGVtZW50Pik7Cit9CisKKyNlbmRpZiAvLyBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeV9oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vV2Via2l0RXZlbnRUYXJnZXROb2Rl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDc2IEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhh
cnJpIFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBD
b3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29w
eXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9w
Lm9yZz4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgR2RvbURPTUJp
bmRpbmdfaAorI2RlZmluZSBHZG9tRE9NQmluZGluZ19oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKworI2luY2x1ZGUgIkNTU1J1bGUuaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgor
I2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJOb2RlLmgi
CisjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKworI2luY2x1ZGUg
Ikdkb21Ob2RlLmgiCisjaW5jbHVkZSAiR2RvbU5vZGVQcml2YXRlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworICAgIGNsYXNzIEF0b21pY1N0cmluZzsKKyAgICBjbGFzcyBEb2N1bWVudDsK
KyAgICBjbGFzcyBFdmVudDsKKyAgICBjbGFzcyBGcmFtZTsKKyAgICBjbGFzcyBLVVJMOworICAg
IGNsYXNzIE5vZGU7CisgICAgY2xhc3MgU3RyaW5nOworCisjaWYgRU5BQkxFKFNWRykKKyAgICBj
bGFzcyBTVkdFbGVtZW50OworI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVz
cGFjZSBXZWJLaXQgeworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpDU1NSdWxlKiBub2Rl
KTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6Q1NTVmFsdWUqIG5vZGUpOworICAgIGdw
b2ludGVyIHRvR0RPTShXZWJDb3JlOjpEb2N1bWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKFdlYkNvcmU6OkVsZW1lbnQqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3Jl
OjpFdmVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkV2ZW50VGFyZ2V0
KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6SFRNTENvbGxlY3Rpb24qIG5v
ZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpOb2RlKiBub2RlKTsKKyAgICBncG9p
bnRlciB0b0dET00oV2ViQ29yZTo6U3R5bGVTaGVldCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9H
RE9NKFdlYkNvcmU6OlRleHQqIG5vZGUpOworCisgICAgY2xhc3MgR0RPTU9iamVjdENhY2hlIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBncG9pbnRlciBnZXRET01PYmplY3Qodm9pZCAq
b2JqZWN0SGFuZGxlKTsKKyAgICAgICAgc3RhdGljIGdwb2ludGVyIHB1dERPTU9iamVjdCh2b2lk
ICpvYmplY3RIYW5kbGUsIGdwb2ludGVyIHdyYXBwZXIpOworICAgICAgICBzdGF0aWMgdm9pZCBm
b3JnZXRET01PYmplY3Qodm9pZCAqb2JqZWN0SGFuZGxlKTsKKyAgICB9OworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBHZG9tRE9NQmluZGluZ19oCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vV2Via2l0RE9NT2JqZWN0UHJpdmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9nZG9tL1dlYmtpdERPTU9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HZG9tRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fz
c29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRp
biBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBbHAg
VG9rZXIgPGFscEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1
ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHZG9tRE9NT2JqZWN0UHJpdmF0ZS5oIgor
CitleHRlcm4gIkMiIHsKKworR19ERUZJTkVfVFlQRShHZG9tRE9NT2JqZWN0LCBnZG9tX2RvbV9v
YmplY3QsIEdfVFlQRV9PQkpFQ1QpOworCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfaW5p
dChHZG9tRE9NT2JqZWN0KiByZXF1ZXN0KQoreworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBw
cml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKHJlcXVlc3QpOworICAgIHJlcXVlc3Qt
PnByaXYgPSBwcml2OworfQorCitzdGF0aWMgdm9pZCBnZG9tX2RvbV9vYmplY3RfZmluYWxpemUo
R09iamVjdCogb2JqZWN0KQoreworICAgIEdfT0JKRUNUX0NMQVNTKGdkb21fZG9tX29iamVjdF9w
YXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCBnZG9tX2Rv
bV9vYmplY3RfY2xhc3NfaW5pdChHZG9tRE9NT2JqZWN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sK
KyAgICBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpLT5maW5hbGl6ZSA9IGdkb21fZG9tX29i
amVjdF9maW5hbGl6ZTsKKworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShyZXF1ZXN0Q2xh
c3MsIHNpemVvZihHZG9tRE9NT2JqZWN0UHJpdmF0ZSkpOworfQorCit9IC8qIGV4dGVybiAiQyIg
Ki8KKwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0
LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
R09iamVjdC5wbQkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yR09iamVjdC5wbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNTA5IEBACisjIENv
cHlyaWdodCAoQykgMjAwOCwgMjAwOSBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2Ns
QGxrY2wubmV0PgorIyBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9AZnJlZWRl
c2t0b3Aub3JnPgorIyBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNv
bT4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyMgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWludCB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAs
CisjIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JH
T2JqZWN0OworCisjIERlZmF1bHQgTGljZW5jZSBUZW1wbGF0ZXMKK215ICRsaWNlbmNlVGVtcGxh
dGUgPSA8PCAiRU9GIjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENh
c3NvbiBMZWlnaHRvbiA8bGtjbFxAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxw
IFRva2VyIDxhbHBcQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5j
LgorICovCitFT0YKKworbXkgJWltcGxJbmNsdWRlcyA9ICgpOworbXkgJWhkckluY2x1ZGVzID0g
KCk7CitteSAlaGRyUHJvcEluY2x1ZGVzID0gKCk7CitteSAlaW1wbFR5cGVkZWZzID0gKCk7CisK
KyMgRGVmYXVsdCBjb25zdHJ1Y3Rvcgorc3ViIG5ldyB7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0
OworICAgIG15ICRyZWZlcmVuY2UgPSB7IH07CisKKyAgICAkY29kZUdlbmVyYXRvciA9IHNoaWZ0
OworICAgICRvdXRwdXREaXIgPSBzaGlmdDsKKworICAgIGJsZXNzKCRyZWZlcmVuY2UsICRvYmpl
Y3QpOworICAgIHJldHVybiAkcmVmZXJlbmNlOworfQorCitzdWIgZmluaXNoIHsKKyAgICBteSAk
b2JqZWN0ID0gc2hpZnQ7Cit9CisKKyMgUGFyYW1zOiAnZG9tQ2xhc3MnIHN0cnVjdAorc3ViIEdl
bmVyYXRlSW50ZXJmYWNlIHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7CisgICAgbXkgJGRlZmluZXMgPSBzaGlmdDsKKworICAgIG15ICRuYW1lID0g
JGRhdGFOb2RlLT5uYW1lOworCisgICAgcHJpbnQgIiRuYW1lXG4iOworCisgICAgJG9iamVjdC0+
R2VuZXJhdGUoJGRhdGFOb2RlKTsKKworICAgICMgV3JpdGUgY2hhbmdlcworICAgIG15ICRmbmFt
ZSA9ICJHZG9tXyIgLiAkbmFtZTsgI2RlY2FtZWxpemUoJG5hbWUpOworICAgICRmbmFtZSA9fiBz
L18vL2c7CisgICAgJG9iamVjdC0+V3JpdGVEYXRhKCRmbmFtZSk7Cit9CisKKyMgUGFyYW1zOiAn
aWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdlbmVyYXRlTW9kdWxlIHsKKyAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAkbW9kdWxlID0gJGRh
dGFOb2RlLT5tb2R1bGU7Cit9CisKK3N1YiBDbHNUb0dPYmpUeXBlIHsKKyAgICBteSAkY2xhc3NO
YW1lID0gc2hpZnQ7CisgICAgcmV0dXJuIHVjKGRlY2FtZWxpemUoJGNsYXNzTmFtZSkpCit9CisK
K3N1YiBHZXRQYXJlbnRDbGFzc05hbWUgeworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisg
ICAgIyA/PyBxdWU/PworICAgICNyZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTGVnYWN5UGFyZW50In0gaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVn
YWN5UGFyZW50In07CisgICAgcmV0dXJuICJHZG9tRE9NT2JqZWN0IiBpZiBAeyRkYXRhTm9kZS0+
cGFyZW50c30gZXEgMDsKKyAgICByZXR1cm4gIkdkb20iIC4gJGNvZGVHZW5lcmF0b3ItPlN0cmlw
TW9kdWxlKCRkYXRhTm9kZS0+cGFyZW50cygwKSk7Cit9CisKK3N1YiBHZXRQYXJlbnRHT2JqVHlw
ZSB7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3Jl
dHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1
cm4gIkdET01fVFlQRV9ET01fT0JKRUNUIiBpZiBAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMDsK
KyAgICByZXR1cm4gIkdET01fVFlQRV8iIC4gQ2xzVG9HT2JqVHlwZSgkY29kZUdlbmVyYXRvci0+
U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKSk7Cit9CisKKworIyBBbGdvcml0aG0g
dGFrZW4gZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgY2FtZWxpemUgeworICAgIG15
ICRzID0gc2hpZnQ7CisgICAgam9pbignJywgbWFweyB1Y2ZpcnN0ICRfIH0gc3BsaXQoLyg/PD1b
QS1aYS16XSlfKD89W0EtWmEtel0pfFxiLywgJHMpKTsKK30KKworIyBBbGdvcml0aG0gdGFrZW4g
ZnJvbSBTdHJpbmc6OkNhbWVsQ2FzZSAwLjAxCitzdWIgZGVjYW1lbGl6ZSB7CisgICAgbXkgJHMg
PSBzaGlmdDsKKyAgICAkcyA9fiBzeyhbXmEtekEtWl0/KShbQS1aXSopKFtBLVpdKShbYS16XT8p
fXsKKyAgICAgICAgbXkgJGZjID0gcG9zKCRzKT09MDsKKyAgICAgICAgbXkgKCRwMCwkcDEsJHAy
LCRwMykgPSAoJDEsbGMkMixsYyQzLCQ0KTsKKyAgICAgICAgbXkgJHQgPSAkcDAgfHwgJGZjID8g
JHAwIDogJ18nOworICAgICAgICAkdCAuPSAkcDMgPyAkcDEgPyAiJHtwMX1fJHAyJHAzIiA6ICIk
cDIkcDMiIDogIiRwMSRwMiI7CisgICAgICAgICR0OworICAgIH1nZTsKKyAgICAkczsKK30KKwor
c3ViIEdldEhkck5hbWUgeworICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9k
dWxlKHNoaWZ0KTsKKworICAgIHJldHVybiAiR2RvbSRuYW1lIjsKK30KKworc3ViIEdldENsYXNz
TmFtZSB7CisgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoc2hpZnQp
OworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitzdWIgR2V0R0luY2x1ZGVIZHIgewor
ICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRIZHJOYW1lKCR0eXBlKTsK
KyAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUpKTsKKworICAgIHJl
dHVybiAiIiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImxv
bmciOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAiIiBp
ZiAkdHlwZSBlcSAiY2hhciI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJmbG9hdCI7Cisg
ICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAiIiBpZiAkdHlw
ZSBlcSAidW5zaWduZWQiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50
IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgIHJldHVy
biAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gIiIgaWYg
JHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkRP
TVRpbWVTdGFtcCI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsK
KyAgICByZXR1cm4gIlJhbmdlLmgiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1
cm4gImdkb20vR2RvbUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIiBpZiAkdHlwZSBlcSAiRE9N
T2JqZWN0IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGNoYXIiOworICAg
IHJldHVybiAiIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNz
IHdyYXBwZXIKKyAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBlIGVxICJET01TdHJp
bmciOworICAgIHJldHVybiAiR2RvbU5vZGUuaCIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsK
KworICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImZsb2F0IjsKKworICAg
IHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworCisgICAgcmV0
dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAgICByZXR1cm4gIiRu
YW1lLmgiOworfQorCisjIHJldHVybnMgMSBpZiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGdvYmplY3Qg
d3JhcHBlciBhcm91bmQgdGhlIHJldHVybiByZXN1bHQKK3N1YiBJc0dET01DbGFzc1R5cGUgewor
ICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFzc05hbWUoJHR5cGUp
OworCisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CisgICAgcmV0dXJu
IDAgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkV2
ZW50TGlzdGVuZXIiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAg
ICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVx
ICJkb3VibGUiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImxvbmci
OworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgInVjaGFyIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQiOworICAg
IHJldHVybiAwIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsK
KyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1
cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJldHVybiAwIGlmICR0eXBl
IGVxICJSR0JDb2xvciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorCisgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgInZvaWQiOworCisgICAgcmV0dXJuIDE7Cit9CisKK3N1YiBHZXRQ
cm9wR1R5cGUgeworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFz
c05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuICJzdHJpbmciIGlmICR0eXBlIGVxICJET01TdHJp
bmciOworICAgIHJldHVybiAiZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0dXJu
ICJub3R5ZXRzdXBwb3J0ZWQiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKKyAgICByZXR1cm4g
ImRvdWJsZSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJuICJib29sZWFuIiBpZiAk
dHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJjaGFyIiBpZiAkdHlwZSBlcSAiY2hhciI7
CisgICAgcmV0dXJuICJsb25nIiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJpbnQi
IGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0dXJuICJ1Y2hhciIgaWYgJHR5cGUgZXEgInVj
aGFyIjsKKyAgICByZXR1cm4gInVpbnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0
dXJuICJpbnQiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAidWludCIgaWYgJHR5cGUg
ZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICJ1aW50NjQiIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJ1bnNpZ25l
ZCBsb25nIjsKKyAgICByZXR1cm4gInVzaG9ydCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0
IjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RP
IC0gRE9NIGNsYXNzIHdyYXBwZXIKKworICAgIHJldHVybiAib2JqZWN0IjsKK30KKworc3ViIEdl
dEdUeXBlIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRuYW1lID0gR2V0Q2xhc3NO
YW1lKCR0eXBlKTsKKyAgICAjbXkgJG5hbWUgPSBjYW1lbGl6ZShHZXRDbGFzc05hbWUoJHR5cGUp
KTsKKworICAgIHJldHVybiAiR2RvbU5vZGUgKiIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IjsK
KyAgICByZXR1cm4gImdjaGFyICoiIGlmICR0eXBlIGVxICJET01TdHJpbmciOworICAgIHJldHVy
biAiZ2Zsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgIHJldHVybiAiV2ViQ29yZTo6UmFu
Z2U6OkNvbXBhcmVIb3cgIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CisgICAgcmV0dXJuICJn
ZG91YmxlIiBpZiAkdHlwZSBlcSAiZG91YmxlIjsKKyAgICByZXR1cm4gImdib29sZWFuIiBpZiAk
dHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICJnY2hhciIgaWYgJHR5cGUgZXEgImNoYXIi
OworICAgIHJldHVybiAiZ2xvbmciIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gImdz
aG9ydCIgaWYgJHR5cGUgZXEgInNob3J0IjsKKyAgICByZXR1cm4gImd1Y2hhciIgaWYgJHR5cGUg
ZXEgInVjaGFyIjsKKyAgICByZXR1cm4gImd1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQiOwor
ICAgIHJldHVybiAiZ2ludCIgaWYgJHR5cGUgZXEgImludCI7CisgICAgcmV0dXJuICJndWludCIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIGludCI7CisgICAgcmV0dXJuICJndWxvbmciIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBsb25nIjsKKyAgICByZXR1cm4gImd1aW50NjQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJldHVybiAiZ3VzaG9ydCIgaWYgJHR5cGUgZXEgInVu
c2lnbmVkIHNob3J0IjsKKyAgICByZXR1cm4gImd1bG9uZyIgaWYgJHR5cGUgZXEgIlJHQkNvbG9y
IjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICByZXR1cm4gInZvaWQiIGlm
ICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7Cit9CisKK3N1YiBnZXRJ
bmNIZHIgeworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaW5jbHVkZUhkciA9IEdl
dEdJbmNsdWRlSGRyKCR0eXBlKTsKKyAgICBpZiAoJGluY2x1ZGVIZHIpIHsKKyAgICAgICAgaWYg
KCR0eXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgIHJldHVybiAiR2RvbU5vZGUu
aCI7CisgICAgICAgIH0gZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgICAgICAg
ICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICAgICAg
ICAgcmV0dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRyOworICAgICAgICB9CisgICAgfQor
ICAgIHJldHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNIZHIgeworICAgIG15ICR0eXBlID0g
c2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBu
ZSAiIikgeworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAgICAg
ICAgJGhkciA9IHN1YnN0cigkaGRyLCAwLCBsZW5ndGgoJGhkciktMik7CisgICAgICAgICAgICAk
aGRyUHJvcEluY2x1ZGVzeyJnZG9tLyIuJGhkci4iLmgifSA9IDE7CisgICAgICAgICAgICAkaGRy
UHJvcEluY2x1ZGVzeyJnZG9tLyIuJGhkci4iUHJpdmF0ZS5oIn0gPSAxOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0K
KyAgICB9CisKK30KKworc3ViIGFkZEluY0hkciB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKwor
ICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgkaGRyIG5lICIiKSB7Cisg
ICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICAkaGRySW5j
bHVkZXN7Imdkb20vJGhkciJ9ID0gMTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRo
ZHJJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9CisKK30KKworc3ViIGFkZElu
Y0JvZHkgeworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRy
KCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NU
eXBlKCR0eXBlKSkgeworICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8kaGRyIn0gPSAx
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGltcGxJbmNsdWRlc3skaGRyfSA9IDE7
CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N1YiBHZXRQcml2Rm4geworICAgIG15ICRpbnRlcmZh
Y2VOYW1lID0gc2hpZnQ7CisgICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9IHNoaWZ0OworICAgIG15
ICRyZXMgPSBzaGlmdDsKKyAgICBteSAkcGFybSA9IHNoaWZ0OworCisgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlOjpOb2Rl
ICogJHJlcyA9IFdlYktpdDo6Y29yZShzZWxmKTsiOworICAgIH0KKyAgICByZXR1cm4gIldlYkNv
cmU6OiR7aW50ZXJmYWNlTmFtZX0gKiAkcmVzID0gV2ViS2l0Ojpjb3JlKCRwYXJtKTsiOworfQor
CitzdWIgc2tpcFByb3BUZW1wb3JhcmlseSB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBt
eSAkcHJvcF90eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXAgTWVkaWFMaXN0CisgICAgaWYgKCRw
cm9wX3R5cGUgZXEgInN0eWxlc2hlZXRzOjpNZWRpYUxpc3QiKSB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgICMgc2tpcCBDcnlwdG8KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQ3J5
cHRvIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAgQ1NTVmFyaWFi
bGVzRGVjbGFyYXRpb24KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFy
YXRpb24iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTU3R5bGVEZWNs
YXJhdGlvbiIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkNTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30KKworICAg
ICMgc2tpcCBFdmVudExpc3RlbmVyCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50TGlzdGVu
ZXIiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBET01XaW5kb3cK
KyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAjICAgIHJldHVybiAx
OworICAgICN9CisKKyAgICAjIHNraXAgQ29uc3RydWN0b3JzICh3aGF0ZXZlciB0aGV5IGFyZSkg
Zm9yIG5vdy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29uc3RydWN0b3IkLykgeworICAgICAg
ICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIGNhbnZhczJkLi4uLgorICAgIGlmICgkcHJvcF90
eXBlIGVxICJjdXN0b20iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmICgk
cHJvcF90eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAg
aWYgKCRwcm9wX3R5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCisgICAgIyBUT0RPOiBTVkcKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUG9kVHlw
ZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKSkgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBVc2VzTWFu
dWFsVG9HRE9NSW1wbGVtZW50YXRpb24geworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICAj
IHNraXBwZWQgb3V0IENhbnZhc1BpeGVsQXJyYXkgLSBzZWUgSlNDYW52YXNQaXhlbEFycmF5Q3Vz
dG9tLmNwcCBmb3Igd2h5LgorICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJOb2RlIiBvciAkdHlw
ZSBlcSAiRG9jdW1lbnQiIG9yICR0eXBlIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IKKyAgICAgICR0
eXBlIGVxICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5cGUgZXEg
IkNTU1J1bGUiIG9yICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IKKwkkdHlwZSBlcSAiRXZlbnQiIG9y
ICR0eXBlIGVxICJFbGVtZW50IiBvciAkdHlwZSBlcSAiVGV4dCI7CisgICAgcmV0dXJuIDA7Cit9
CisKKworIyBHZW5lcmF0ZSBoZWFkZXIgYW5kIGltcGwKK3N1YiBHZW5lcmF0ZSB7CisgICAgbXkg
JG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworCisgICAgbXkgJGhh
c0xlZ2FjeVBhcmVudCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBh
cmVudCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskZGF0YU5vZGUtPnBhcmVudHN9ID4g
MDsKKyAgICBteSAkaGFzUGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVu
dDsKKyAgICBteSAkcGFyZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRkYXRhTm9k
ZSk7CisgICAgbXkgJHBhcmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUoJGRhdGFOb2Rl
KTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkY2xh
c3NOYW1lID0gR2V0Q2xhc3NOYW1lKCRpbnRlcmZhY2VOYW1lKTsKKyAgICBteSAkaGRyTmFtZSA9
IEdldEhkck5hbWUoJGludGVyZmFjZU5hbWUpOworCisgICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1w
bCBoZWFkZXIgdGVtcGxhdGUKKyAgICBAY1ByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVt
cGxhdGUpOworICAgIHB1c2goQGNQcmVmaXgsICJcbiIpOworCisgICAgJGltcGxJbmNsdWRlc3si
R0RPTUJpbmRpbmcuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyRoZHJOYW1lLmgi
fSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke2hkck5hbWV9UHJpdmF0ZS5oIn0gPSAx
OworCisgICAgbXkgJHBhcmVudEludGVyZmFjZU5hbWUgPSAiRE9NT2JqZWN0IjsKKyAgICBteSAk
cGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2JqZWN0IjsKKyAgICBteSAkcGFyZW50SGRyTmFtZSA9
ICJHZG9tRE9NT2JqZWN0IjsKKyAgICBpZiAoJHBhcmVudENsYXNzTmFtZSBuZSAiR09iamVjdCIp
IHsKKyAgICAgICAgJHBhcmVudEludGVyZmFjZU5hbWUgPSBzdWJzdHIoJHBhcmVudENsYXNzTmFt
ZSwgNCk7CisgICAgICAgIGlmICgkcGFyZW50SW50ZXJmYWNlTmFtZSBuZSAiRE9NT2JqZWN0Iikg
eworICAgICAgICAgICAgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RPTSIuc3Vic3RyKCRwYXJlbnRD
bGFzc05hbWUsIDQpOworICAgICAgICAgICAgJHBhcmVudEhkck5hbWUgPSBHZXRIZHJOYW1lKCRw
YXJlbnRJbnRlcmZhY2VOYW1lKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRwYXJl
bnRHSWZhY2VOYW1lID0gIkdET01PYmplY3QiOworICAgICAgICB9CisgICAgICAgICRpbXBsSW5j
bHVkZXN7Imdkb20vJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAkaW1wbEluY2x1
ZGVzeyJnZG9tLyR7cGFyZW50SGRyTmFtZX1Qcml2YXRlLmgifSA9IDE7CisgICAgICAgICRoZHJJ
bmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgifSA9IDE7CisgICAgICAgICMkaGRySW5j
bHVkZXN7IlByaXZhdGUke3BhcmVudEhkck5hbWV9LmgifSA9IDA7CisgICAgfQorCisgICAgIyBU
T0RPIC0gbWFrZSB0aGVzZSBvbmx5IGluY2x1ZGUgd2hlcmUgbmVlZGVkLCBsaWtld2lzZSB0aGUK
KyAgICAjIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyB0b0dET00sIHRvbworICAgICRpbXBsSW5jbHVk
ZXN7Ik5vZGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJOb2RlTGlzdC5oIn0gPSAxOwor
ICAgICRpbXBsSW5jbHVkZXN7IkVsZW1lbnQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJD
U1NWYWx1ZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNTU1J1bGUuaCJ9ID0gMTsKKyAg
ICAkaW1wbEluY2x1ZGVzeyJDU1NSdWxlTGlzdC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7
IkNTU1N0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJIVE1MQ29s
bGVjdGlvbi5oIn0gPSAxOworICAgICMkaW1wbEluY2x1ZGVzeyJTVkdQYXRoU2VnLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siU3R5bGVTaGVldC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVk
ZXN7IkV2ZW50LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ2FudmFzUGl4ZWxBcnJheS5o
In0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkRPTVdpbmRvdy5oIn0gPSAxOworICAgICRpbXBs
SW5jbHVkZXN7IlRleHQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDb3VudGVyLmgifSA9
IDE7CisgICAgJGltcGxJbmNsdWRlc3siUmVjdC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7
IkltYWdlRGF0YS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkNhbnZhc0dyYWRpZW50Lmgi
fSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siVGV4dE1ldHJpY3MuaCJ9ID0gMTsKKyAgICAkaW1w
bEluY2x1ZGVzeyJEYXRhYmFzZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IkRPTVNlbGVj
dGlvbi5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IlhQYXRoUmVzdWx0LmgifSA9IDE7Cisg
ICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HU3RyaW5nQ29udmVydC5oIn0gPSAxOworCisgICAgcHVz
aChAY0JvZHksICJuYW1lc3BhY2UgV2ViS2l0IHtcbiIpOworCisgICAgIyBHZXQgY29ycmVjdCBw
YXNzL3N0b3JlIHR5cGVzIHJlc3BlY3RpbmcgUE9EVHlwZSBmbGFnCisgICAgbXkgJHBvZFR5cGUg
PSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07CisgICAgbXkgJHBh
c3NUeXBlID0gJHBvZFR5cGUgPyAiSlNTVkdQT0RUeXBlV3JhcHBlcjwkcG9kVHlwZT4qIiA6ICIk
aW50ZXJmYWNlTmFtZSoiOworCisgICAgaWYgKCFVc2VzTWFudWFsVG9HRE9NSW1wbGVtZW50YXRp
b24oJGludGVyZmFjZU5hbWUpKSB7CisJJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CitncG9pbnRl
ciB0b0dET00oV2ViQ29yZTo6JHBhc3NUeXBlIG9iaikKK3sKKyAgICBpZiAoIW9iaikKKwlyZXR1
cm4gTlVMTDsKKworICAgIGlmIChncG9pbnRlciByZXQgPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERP
TU9iamVjdChvYmopKQorCXJldHVybiByZXQ7CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hl
OjpwdXRET01PYmplY3Qob2JqLCBXZWJLaXQ6OndyYXAke2ludGVyZmFjZU5hbWV9KG9iaikpOwor
fQorRU9GCisKKyAgICAgICAgcHVzaChAY0JvZHksICRpbXBsQ29udGVudCk7CisgICAgfQorCisg
ICAgbXkgJGltcGxDb250ZW50ID0gIiI7CisKKyAgICBwdXNoKEBjQm9keSwgIn0gLyogbmFtZXNw
YWNlIFdlYktpdCAqL1xuIik7CisKKyAgICAjIFhYWCBUT0RPIHB1c2goQGNCb2R5LCAidXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiZXh0ZXJuIFwiQ1wi
IHtcblxuIik7CisKKyAgICAjIEFkZCB0aGUgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKKyAgICBA
aFByZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOworICAgICNwdXNoKEBoUHJl
Zml4LCAiXG4iKTsKKworICAgICMgSGVhZGVyIGd1YXJkCisgICAgbXkgJGd1YXJkID0gIl9fIiAu
ICRjbGFzc05hbWUgLiAiX0hfXyI7CisKKyAgICBteSAkY2xzQ2FwcyA9IHN1YnN0cihDbHNUb0dP
YmpUeXBlKCRjbGFzc05hbWUpLCA1KTsKKyAgICBteSAkbGNhc2VfaWZhY2VuYW1lID0gImdkb21f
IiAuIGRlY2FtZWxpemUoJGludGVyZmFjZU5hbWUpOworICAgICNteSAkcGFyZW50Q2xzQ2FwcyA9
ICJHRE9NXyIgLiBDbHNUb0dPYmpUeXBlKCRwYXJlbnRJbnRlcmZhY2VOYW1lKTsKKworICAgIEBo
UHJlZml4R3VhcmQgPSA8PCAiRU9GIjsKKyNpZm5kZWYgJGd1YXJkCisjZGVmaW5lICRndWFyZAor
RU9GCisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5fREVDTFMKKworRU9G
CisKKyAgICBwdXNoKEBoQm9keVByZSwgJGltcGxDb250ZW50KTsKKworICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworCisjZGVmaW5lIEdET01fVFlQRV8ke2Nsc0NhcHN9ICAgICAgICAgICAg
KCR7bGNhc2VfaWZhY2VuYW1lfV9nZXRfdHlwZSgpKQorI2RlZmluZSBHRE9NXyR7Y2xzQ2Fwc30o
b2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgR0RPTV9U
WVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfSkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfV9D
TEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBHRE9NX1RZ
UEVfJHtjbHNDYXBzfSwgJGNsYXNzTmFtZSlDbGFzcykKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0Nh
cHN9KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIEdET01f
VFlQRV8ke2Nsc0NhcHN9KSkKKyNkZWZpbmUgR0RPTV9JU18ke2Nsc0NhcHN9X0NMQVNTKGtsYXNz
KSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9
KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RB
TkNFX0dFVF9DTEFTUygob2JqKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAke2NsYXNzTmFtZX1D
bGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlICR7Y2xhc3NOYW1l
fVByaXZhdGU7CisKK3N0cnVjdCBfJHtjbGFzc05hbWV9IHsKKyAgICAke3BhcmVudENsYXNzTmFt
ZX0gcGFyZW50X2luc3RhbmNlOworICAgICR7Y2xhc3NOYW1lfVByaXZhdGUgKnByaXY7Cit9Owor
CitzdHJ1Y3QgXyR7Y2xhc3NOYW1lfUNsYXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2Ns
YXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQorJHtsY2FzZV9pZmFjZW5hbWV9X2dldF90eXBl
ICh2b2lkKTsKKworRU9GCisKKyAgICBwdXNoKEBoQm9keSwgJGltcGxDb250ZW50KTsKKworICAg
ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworI2lmbmRlZiAke2d1YXJkfV9QUk9QXworI2RlZmlu
ZSAke2d1YXJkfV9QUk9QXworRU9GCisKKyAgICBwdXNoKEBoQm9keVByb3BQcmUsICRpbXBsQ29u
dGVudCk7CisKKyAgICBwdXNoKEBoQm9keVByb3AsICJHX0JFR0lOX0RFQ0xTXG4iKTsKKworICAg
ICRoZHJQcm9wSW5jbHVkZXsiZ2xpYi1vYmplY3QuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcEluY2x1
ZGV7Imdkb20vJHtwYXJlbnRIZHJOYW1lfVByaXZhdGUuaCJ9ID0gMTsKKyAgICAkaGRyUHJvcElu
Y2x1ZGV7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKworICAgICRpbXBsSW5jbHVkZXN7Imdk
b20vJHtwYXJlbnRIZHJOYW1lfS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJm
YWNlTmFtZX0uaCJ9ID0gMTsKKworICAgICRpbXBsVHlwZWRlZnN7IiRjbGFzc05hbWUifSA9IDE7
CisgICAgJGltcGxUeXBlZGVmc3siJHtjbGFzc05hbWV9Q2xhc3MifSA9IDE7CisKKyAgICAkaW1w
bENvbnRlbnQgPSA8PCAiRU9GIjsKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJnbGli
LW9iamVjdC5oIgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisjaW5jbHVkZSA8
d2Via2l0L3dlYmtpdHByaXZhdGUuaD4gCisjaW5jbHVkZSAiRE9NV2luZG93LmgiIC8qIHl1a2s6
IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJOb2RlLmgiIC8qIHl1a2s6
IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlICJOYW1lZE5vZGVNYXAuaCIg
LyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZhc1Bh
dHRlcm4uaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUg
IkNhbnZhc0dyYWRpZW50LmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8K
KyNpbmNsdWRlICJDYW52YXNTdHlsZS5oIiAvKiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlv
bmFsICovCisjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIC8qIHl1a2s6IFRP
RE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01PYmplY3RQ
cml2YXRlLmg+IC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKy8qI2luY2x1
ZGUgPGdkb20vR2RvbUV2ZW50VGFyZ2V0Tm9kZS5oPiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9w
dGlvbmFsICovCisvKiAjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRUYXJnZXROb2RlUHJpdmF0ZS5o
PiB5dWtrOiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsIG9uIEV2ZW50VGFyZ2V0Ki8KKyNpbmNs
dWRlICIke2ludGVyZmFjZU5hbWV9LmgiCisjaW5jbHVkZSA8Z2RvbS8ke2hkck5hbWV9Lmg+Cisj
aW5jbHVkZSA8Z2RvbS8ke2hkck5hbWV9UHJpdmF0ZS5oPgorI2luY2x1ZGUgPGdkb20vJHtoZHJO
YW1lfXByb3BzLmg+CisKKyNpbmNsdWRlICJnZG9tL0dTdHJpbmdDb252ZXJ0LmgiCisKKyNpbmNs
dWRlICJDYW52YXNQaXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJU
ZXh0LmgiCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5j
bHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSA8Z2Rv
bS9HZG9tRXZlbnQuaD4KKworCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250
ZW50KTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCitHX0JFR0lOX0RFQ0xTCisK
K0dfREVGSU5FX1RZUEUoJHtjbGFzc05hbWV9LCAke2xjYXNlX2lmYWNlbmFtZX0sICR7cGFyZW50
R09ialR5cGV9KTsKKworc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlIHsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfT4gY29yZU9iamVjdDsKK307CisKK0dfRU5EX0RFQ0xT
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCiske2NsYXNzTmFtZX0gKgord3JhcCR7aW50ZXJmYWNl
TmFtZX0oUGFzc1JlZlB0cjxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9PiBwcnBDb3JlT2JqZWN0
KQoreworICAgIFJlZlB0cjxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9PiBjb3JlT2JqZWN0ID0g
cHJwQ29yZU9iamVjdDsKKworICAgICR7Y2xhc3NOYW1lfSAqd3JhcHBlciA9IEdET01fJHtjbHND
YXBzfShnX29iamVjdF9uZXcoR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sIE5VTEwpKTsKKyAgICBHZG9t
RE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShHRE9N
X0RPTV9PQkpFQ1Qod3JhcHBlcikpOworCisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAq
cmF3Q29yZU9iamVjdCA9IGNvcmVPYmplY3QuZ2V0KCk7CisgICAgcmF3Q29yZU9iamVjdC0+cmVm
KCk7CisgICAgcHJpdi0+Y29yZU9iamVjdCA9IHJhd0NvcmVPYmplY3Q7CisKKyAgICByZXR1cm4g
d3JhcHBlcjsKK30KKworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCitjb3JlKCR7Y2xhc3NO
YW1lfSAqcmVxdWVzdCkKK3sKKyAgICBpZiAocmVxdWVzdCA9PSBOVUxMKQorICAgICAgICByZXR1
cm4gTlVMTDsKKworICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JK
RUNUX0dFVF9QUklWQVRFKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKj4ocHJpdi0+Y29yZU9iamVjdCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYs
ICRpbXBsQ29udGVudCk7CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1l
UHJlZml4ID0gJGxjYXNlX2lmYWNlbmFtZTsgCisgIFNLSVBQUk9QOiBmb3JlYWNoIG15ICRhdHRy
aWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJvcF9uYW1l
ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICBteSAkcHJvcE5hbWUgPSBk
ZWNhbWVsaXplKCRwcm9wX25hbWUpOworICAgICAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT50eXBlOworICAgICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5
cGUpOworICAgICAgICBteSAkZnVuY3Rpb25TaWcgPSAiJGNsYXNzTmFtZSAqdGhpeiI7CisgICAg
ICAgIG15ICRjdXN0b20gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b20ifTsKKworICAgICAgICBpZiAoJHByb3BfbmFtZSBuZSAncmVzcG9uc2VUZXh0
JykgeyAjIGFsbG93IFhNTEh0dHBSZXF1ZXN0IHJlc3BvbnNlVGV4dAorICAgICAgICAgICAgaWYg
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRl
ciJ9KSB7CisgICAgICAgICAgICAgICAgbmV4dCBTS0lQUFJPUDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5oIn0gPSAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKyAgICAgICAgJGlt
cGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkcHJvcF90
eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKworICAgICAgICBpZiAoc2tpcFByb3BUZW1w
b3JhcmlseSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAgICAgICAgICAgIG5leHQgU0tJUFBST1A7
CisgICAgICAgIH0KKworICAgICAgICBhZGRQcm9wSW5jSGRyKCRwcm9wX3R5cGUpOworCisgICAg
ICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfQVBJICR0eXBlXG4kZnVuY3Rpb25OYW1lUHJl
Zml4IiAuICJfcHJvcF9nZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOwor
CisgICAgICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfQVBJIHZvaWRcbiRmdW5jdGlvbk5h
bWVQcmVmaXgiIC4gIl9wcm9wX3NldF8iIC4gIiRwcm9wTmFtZSAoJGZ1bmN0aW9uU2lnLCAkdHlw
ZSIgLiAidmFsdWUpO1xuXG4iKTsKKyAgICB9CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICAkaW1w
bENvbnRlbnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5fREVDTFMKKworZW51bSB7CisgICAgQlJPV1NF
Ul9FVkVOVCwKKyAgICBMQVNUX1NJR05BTAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25h
bHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OworCitlbnVtIHsKKyAgICBQUk9QXzAsCitFT0YKKyAg
ICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICBteSBAdHh0X2luc3RhbGxf
cHJvcHMgPSAoKTsKKyAgICBteSBAdHh0X3NldF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfZ2V0
X3Byb3BzID0gKCk7CisKKyAgICBteSAkcHJpdl9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNlTmFt
ZSwgJHtsY2FzZV9pZmFjZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworCisgICAgbXkgJHR4dF9n
ZXRfcHJvcCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRf
cHJvcGVydHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgIEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3Bl
YyAqIHBzcGVjKQoreworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShv
YmplY3QpOworICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBw
dXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X3By
b3AgPSA8PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3Bl
cnR5X2ZuKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNw
ZWMgKiBwc3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30o
b2JqZWN0KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAg
cHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisgICAgIyBJdGVyYXRlIG92ZXIg
dGhlIGludGVyZmFjZSBhdHRyaWJ1dGVzIGFuZCBnZW5lcmF0ZSBhIHByb3BlcnR5IGZvcgorICAg
ICMgZWFjaCBvbmUgb2YgdGhlbS4KKyAgU0tJUEVOVU06CisgICAgZm9yZWFjaCBteSAkYXR0cmli
dXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHByb3BfbmFtZSA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgbXkgJHNldHByb3BfbmFtZV9m
biA9ICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9wX25hbWUpOworICAgICAgICBteSAk
Z2V0cHJvcF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHByb3BfbmFtZSk7
CisKKyAgICAgICAgbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsKKyAgICAg
ICAgbXkgJHByb3BDYXBzID0gdWMoJHByb3BOYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlw
ZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BDYXBz
fSI7CisgICAgICAgIG15ICR7cHJvcF9ndHlwZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5cGUpOwor
ICAgICAgICBpZiAoJHByb3BfZ3R5cGUgZXEgImV2ZW50X3RhcmdldCIpIHsKKyAgICAgICAgICAg
ICRwcm9wX2d0eXBlID0gIm5vZGUiOworICAgICAgICB9CisgICAgICAgIG15ICR7cHJvcEdUeXBl
fSA9IHVjKCRwcm9wX2d0eXBlKTsKKyAgICAgICAgbXkgJGxjYXNlX2d0eXBlbmFtZSA9ICJnZG9t
XyIgLiAkcHJvcF9ndHlwZTsKKworICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07CisKKyAgICAgICAgaWYgKCRw
cm9wX25hbWUgbmUgJ3Jlc3BvbnNlVGV4dCcpIHsgIyBhbGxvdyBYTUxIdHRwUmVxdWVzdCByZXNw
b25zZVRleHQKKyAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgeworICAgICAgICAgICAgICAgIG5leHQgU0tJ
UEVOVU07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAkaW1wbEluY2x1ZGVz
eyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxIGlmICR0eXBlIGVxICJDU1NTdHls
ZURlY2xhcmF0aW9uIjsKKyAgICAgICAgaWYgKHNraXBQcm9wVGVtcG9yYXJpbHkoJHR5cGUsICRw
cm9wX3R5cGUpKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAgICB9CisKKyAg
ICAgICAgcHVzaChAY0JvZHlQcml2LCAiICAgICR7cHJvcEVudW19LFxuIik7CisKKyAgICAgICAg
bXkgJGd0eXBlID0gR2V0UHJvcEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAgICBteSAkZ3BhcmFt
ZmxhZyA9ICJHX1BBUkFNX1JFQURBQkxFIjsKKyAgICAgICAgbXkgJHdyaXRlYWJsZSA9ICRhdHRy
aWJ1dGUtPnR5cGUgIX4gL15yZWFkb25seS87CisgICAgICAgIG15ICRjb25zdCA9ICJyZWFkLW9u
bHkgIjsKKyAgICAgICAgaWYgKCRwcm9wX25hbWUgZXEgJ2xvY2F0aW9uJyAmJiAkaW50ZXJmYWNl
TmFtZSBlcSAnRG9jdW1lbnQnKSB7CisgICAgICAgICAgICBuZXh0IFNLSVBFTlVNOworICAgICAg
ICB9CisgICAgICAgIGlmICgkd3JpdGVhYmxlICYmICRjdXN0b20pIHsKKyAgICAgICAgICAgICRj
b25zdCA9ICJyZWFkLW9ubHkgKGR1ZSB0byBjdXN0b20gZnVuY3Rpb25zIG5lZWRlZCBpbiBnZG9t
d2Via2l0KSI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCR3cml0ZWFibGUgJiYgISRjdXN0b20p
IHsKKyAgICAgICAgICAgICRncGFyYW1mbGFnID0gIkdfUEFSQU1fUkVBRFdSSVRFIjsKKyAgICAg
ICAgICAgICRjb25zdCA9ICJyZWFkLXdyaXRlICI7CisgICAgICAgIH0KKworICAgICAgICBteSAk
X2d0eXBlID0gJGd0eXBlOworICAgICAgICBpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAg
ICAgICAgICAkX2d0eXBlID0gInVpbnQiOyAjIHl1ay4KKyAgICAgICAgfQorICAgICAgICAkbmlj
ayA9IGRlY2FtZWxpemUoIiR7aW50ZXJmYWNlTmFtZX1fJHtwcm9wTmFtZX0iKTsKKyAgICAgICAg
JGxvbmcgPSAiJHtjb25zdH0gJHt0eXBlfSAke2ludGVyZmFjZU5hbWV9LiR7cHJvcE5hbWV9IjsK
KyAgICAgICAgbXkgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5IChnX2tsYXNzLCAke3Byb3BFbnVtfSwKKyAgICAgICAgICAg
IGdfcGFyYW1fc3BlY18ke19ndHlwZX0gKCIke3Byb3BOYW1lfSIsIC8qIG5hbWUgKi8KKyAgICAg
ICAgICAgICAgICAiJG5pY2siLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAg
ICAgICIkbG9uZyIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1
ZmYgaGVyZSAqLworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2lu
c3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gIi8qIFRPRE8hICRndHlw
ZSAqL1xuIjsKKworICAgICAgICBpZiAoJHdyaXRlYWJsZSkgeworICAgICAgICAgICAgbXkgJG9r
ID0gMDsKKyAgICAgICAgICAgIG15ICRjb252ZXJ0X2ZuID0gIiI7CisKKyAgICAgICAgICAgIGlm
ICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAkY29udmVydF9mbiA9ICJX
ZWJDb3JlOjpTdHJpbmc6OmZyb21VVEY4IjsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhY
IFRPRE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5
ZXQKKyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgICAgICRv
ayA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRP
RE86IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQK
KyAgICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAgICAgICAkb2sg
PSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9uZyIpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoJHtpbnRlcmZhY2VOYW1lfSBuZSAiRE9NV2luZG93IikgeyAjWFhYIFRPRE86
IHNraXAgInB1dERpcmVjdCIgc3R1ZmYgLSBubyBpZGVhIHdoYXQgaXQncyBhYm91dCB5ZXQKKyAg
ICAgICAgICAgICAgICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9IGVsc2lmICgkZ3R5cGUgZXEgImxvbmciKSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50
ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3Qi
IHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAg
ICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBl
IGVxICJ1aW50IikgeworICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAg
ICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICAgICAk
b2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJjaGFyIikgeworICAgICAg
ICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjIFhYWCBUT0RP
IC0gc2tpcCBMb2NhdGlvbgorICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJMb2Nh
dGlvbiIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAwOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBpZiAoJG9rKSB7CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywg
IiAgICBjYXNlICR7cHJvcEVudW19OlxuICAgIHtcbiIpOworICAgICAgICAgICAgICAgIHB1c2go
QHR4dF9zZXRfcHJvcHMsICIgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xu
IikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKKyAgICAgICAgICAgICAgICBw
dXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBnc2VsZi0+c2V0JHtzZXRwcm9wX25hbWVfZm59
KCR7Y29udmVydF9mbn0oZ192YWx1ZV9nZXRfJGd0eXBlICh2YWx1ZSkpIik7CisKKyAgICAgICAg
ICAgICAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiLCBlYyIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0
dGVyRXhjZXB0aW9uc307CisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIik7
XG4iKTsKKworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRfcHJvcHMsICIgICAgICAgIGJy
ZWFrO1xuICAgIH1cbiIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVz
aChAdHh0X2dldF9wcm9wcywgIiAgIGNhc2UgJHtwcm9wRW51bX06XG4gICAge1xuIik7CisKKyAg
ICAgICAgbXkgJGV4Y2VwdGlvbiA9ICIiOworICAgICAgICBpZiAoQHskYXR0cmlidXRlLT5nZXR0
ZXJFeGNlcHRpb25zfSkgeworICAgICAgICAgICAgJGV4Y2VwdGlvbiA9ICJlYyI7CisgICAgICAg
ICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2Rl
IGVjID0gMDtcbiIpOworICAgICAgICB9CisKKyAgICAgICAgbXkgJGNvbnZlcnRfZm4gPSAiIjsK
KyAgICAgICAgbXkgJHBvc3RfY29udmVydF9mbiA9ICIiOworICAgICAgICBteSAkZG9uZSA9IDA7
CisgICAgICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKKyAgICAgICAgICAgIHB1c2goQHR4
dF9nZXRfcHJvcHMsICIgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcgKHZhbHVlLCBHU3RyaW5n
Q29udmVydChnc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7ZXhjZXB0aW9ufSkpKTtcbiIpOwor
ICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisgICAgICAgIGVsc2lmICgkZ3R5cGUg
ZXEgIm9iamVjdCIpIHsKKyAgICAgICAgICAgIG15ICRkb21vYmpUeXBlID0gIkdET00iLiRwcm9w
X3R5cGU7CisKKyAgICAgICAgICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAg
UGFzc1JlZlB0cjxXZWJDb3JlOjoke3Byb3BfdHlwZX0+IHB0ciA9IGdzZWxmLT4ke2dldHByb3Bf
bmFtZV9mbn0oJHtleGNlcHRpb259KTsKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0ICh2YWx1
ZSwgV2ViS2l0Ojp0b0dET00ocHRyLmdldCgpKSk7CitFT0YKKyAgICAgICAgICAgIHB1c2goQHR4
dF9nZXRfcHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgICAgICAgICAkZG9uZSA9IDE7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoISRkb25lKSB7CisgICAgICAgICAgICBwdXNoKEB0eHRf
Z2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3NldF8kX2d0eXBlICh2YWx1ZSwgJHtjb252ZXJ0
X2ZufWdzZWxmLT4ke2dldHByb3BfbmFtZV9mbn0oJHtleGNlcHRpb259KSR7cG9zdF9jb252ZXJ0
X2ZufSk7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIg
ICAgICAgIGJyZWFrO1xuICAgIH1cbiIpOworCisgICAgICAgICMgaXMgdGhpcyBfZW50aXJlbHlf
IG5lY2Vzc2FyeT8/PworICAgICAgICAjIGNhbiBpdCBiZSBkb25lIHdpdGggZ2VuZXJpYyBnX3Bh
cmFtX3NwZWNfZ3R5cGUKKyAgICAgICAgIyBhbmQgZ2V0dGluZyBhIGZldyB0aGluZ3MsIGlnbm9y
aW5nIHRoZSBtaW4tbWF4IGZvciBleGFtcGxlPworICAgICAgICBpZiAoJGd0eXBlIGVxICJpbnQi
KSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAg
ICAgICAgIEdfTUlOSU5ULCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhJ
TlQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitF
T0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJib29sZWFuIikgeworICAgICAgICAgICAg
JHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBGQUxTRSwgLyog
ZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZmxvYXQiKSB7Cisg
ICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAg
IEdfTUlORkxPQVQsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWEZMT0FU
LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiZG91YmxlIikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkRPVUJMRSwg
ICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYRE9VQkxFLCAvKiBtYXggKi8K
KyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAidWludDY0IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3By
b3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAg
ICAgICAgICAgICAgR19NQVhVSU5UNjQsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAg
ICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1bG9u
ZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAg
ICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUxPTkcs
IC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YK
KyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgJHR4dF9p
bnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkxPTkcsICAgICAg
ICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWExPTkcsIC8qIG1heCAqLworICAgICAg
ICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAo
JGd0eXBlIGVxICJ1aW50IikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAi
RU9GIjsKKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAg
ICAgR19NQVhVSU5ULCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVm
YXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidXNob3J0IikgeworICAg
ICAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAw
LCAgICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhVSU5UMTYsIC8qIG1heCAq
LworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICovCitFT0YKKyAgICAgICAg
fSBlbHNpZiAoJGd0eXBlIGVxICJ1Y2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5JTlQ4LCAgICAgICAgLyogbWlu
ICovCisgICAgICAgICAgICAgICAgR19NQVhJTlQ4LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAg
ICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBl
cSAiY2hhciIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7Cisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFY
VUlOVDgsIC8qIG1heCAqLworICAgICAgICAgICAgICAgIDAsICAgICAgICAvKiBkZWZhdWx0ICov
CitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAg
ICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgICIiLCAvKiBk
ZWZhdWx0ICovCitFT0YKKyAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7Cisg
ICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAg
IEdET01fVFlQRV8ke3Byb3BHVHlwZX0sIC8qIGdvYmplY3QgdHlwZSAqLworRU9GCisgICAgICAg
IH0KKyAgICAgICAgcHVzaChAdHh0X2luc3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsK
KyAgICAgICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAo
R1BhcmFtRmxhZ3MpJHtncGFyYW1mbGFnfSkpOworCitFT0YKKyAgICAgICAgcHVzaChAdHh0X2lu
c3RhbGxfcHJvcHMsICR0eHRfaW5zdGFsbF9wcm9wKTsKKyAgICB9CisKKyAgICBwdXNoKEBjQm9k
eVByaXYsICJ9O1xuXG4iKTsKKworCisgICAgJHR4dF9nZXRfcHJvcCA9IDw8ICJFT0YiOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmpl
Y3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisgICAg
cHVzaChAdHh0X2dldF9wcm9wcywgJHR4dF9nZXRfcHJvcCk7CisKKyAgICAkdHh0X3NldF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElE
X1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAg
ICB9Cit9CitFT0YKKyAgICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAkdHh0X3NldF9wcm9wKTsKKwor
ICAgIG15ICR0eHRfc2V0X2dldF9wcm9wcyA9IDw8ICJFT0YiOworICAgIGNhc2UgUFJPUF9BR0U6
CisgICAgICAgIHNlbGYtPmFnZSA9IGdfdmFsdWVfZ2V0X2ludCAodmFsdWUpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgUFJPUF9BR0U6CisgICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1
ZSwgc2VsZi0+YWdlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAgICAgKyAgIGdfdmFsdWVfaW5p
dCgmcGFyYW1zWzBdLCBHX1RZUEVfRlJPTV9JTlNUQU5DRShvYmplY3QpKTsKKyAgICAgICAgKyAg
IGdfdmFsdWVfc2V0X2luc3RhbmNlKCZwYXJhbXNbMF0sIChncG9pbnRlcilvYmplY3QpOworCitF
T0YKKworICAgICMgVE9ETzogd29yayBvdXQgaWYgaXQncyBhcHByb3ByaWF0ZSB0byBzcGxpdCB0
aGlzIGludG8gbWFueSBkaWZmZXJlbnQKKyAgICAjIHNpZ25hbHMgZS5nLiAiY2xpY2siIGV0Yy4K
KyAgICBteSAkdHh0X2luc3RhbGxfc2lnbmFscyA9ICIiOworCisgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJET01XaW5kb3ciIG9yCisgICAgICAgICRpbnRlcmZhY2VOYW1lIGVxICJOb2RlIiBv
cgorICAgICAgICAkaW50ZXJmYWNlTmFtZSBlcSAiWE1MSHR0cFJlcXVlc3QiKSB7CisgICAgICAg
ICR0eHRfaW5zdGFsbF9zaWduYWxzID0gPDwgIkVPRiI7CisgICAgZXZlbnRfc2lnbmFsc1tCUk9X
U0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisgICAgICAgIEdfVFlQ
RV9GUk9NX0NMQVNTKHJlcXVlc3RDbGFzcyksCisgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lH
TkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHX1NJR05BTF9ERVRBSUxFRCAgKSwKKyAgICAgICAgMCwKKyAg
ICAgICAgTlVMTCwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9f
T0JKRUNUX0JPT0xFQU4sCisgICAgICAgIEdfVFlQRV9OT05FLCAyLAorICAgICAgICBHRE9NX1RZ
UEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKK0VPRgorICAgIH0KKworICAgICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOworCitzdGF0aWMgdm9pZCAke2xjYXNlX2lmYWNlbmFtZX1fZmluYWxpemUo
R09iamVjdCogb2JqZWN0KQoreworICAgIEdkb21ET01PYmplY3QqIGRvbV9vYmplY3QgPSBHRE9N
X0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICBHZG9tRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IGRv
bV9vYmplY3QtPnByaXY7CisKKyAgICBpZiAocHJpdi0+Y29yZU9iamVjdCAhPSAwKSB7CisJV2Vi
S2l0OjpHRE9NT2JqZWN0Q2FjaGU6OmZvcmdldERPTU9iamVjdChwcml2LT5jb3JlT2JqZWN0KTsK
KwlzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICo+KHByaXYtPmNvcmVPYmpl
Y3QpLT5kZXJlZigpOworCXByaXYtPmNvcmVPYmplY3QgPSAwOworICAgIH0KKworICAgIEdfT0JK
RUNUX0NMQVNTKCR7bGNhc2VfaWZhY2VuYW1lfV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmpl
Y3QpOworfQorCitAdHh0X3NldF9wcm9wcworCitAdHh0X2dldF9wcm9wcworCitzdGF0aWMgdm9p
ZCAke2xjYXNlX2lmYWNlbmFtZX1fY2xhc3NfaW5pdCgke2NsYXNzTmFtZX1DbGFzcyogcmVxdWVz
dENsYXNzKQoreworICAgIEdPYmplY3RDbGFzcyAqZ19rbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChy
ZXF1ZXN0Q2xhc3MpOworICAgIGdfa2xhc3MtPmZpbmFsaXplID0gJHtsY2FzZV9pZmFjZW5hbWV9
X2ZpbmFsaXplOworICAgIGdfa2xhc3MtPnNldF9wcm9wZXJ0eSA9ICR7bGNhc2VfaWZhY2VuYW1l
fV9fc2V0X3Byb3BlcnR5X2ZuOworICAgIGdfa2xhc3MtPmdldF9wcm9wZXJ0eSA9ICR7bGNhc2Vf
aWZhY2VuYW1lfV9fZ2V0X3Byb3BlcnR5X2ZuOworCitAdHh0X2luc3RhbGxfcHJvcHMKKworJHR4
dF9pbnN0YWxsX3NpZ25hbHMKK30KKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2lu
aXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0KQoreworfQorCitFT0YKKyAgICBwdXNoKEBjQm9keVBy
aXYsICRpbXBsQ29udGVudCk7CisKKyAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb20ke2ludGVy
ZmFjZU5hbWV9UHJpdmF0ZS5oIn0gPSAxOworICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOwor
CisjaWZuZGVmICR7Z3VhcmR9X1BSSVZfCisjZGVmaW5lICR7Z3VhcmR9X1BSSVZfCisjaW5jbHVk
ZSAiZ2xpYi1vYmplY3QuaCIKKyNpbmNsdWRlICJnZG9tLyR7cGFyZW50SGRyTmFtZX0uaCIKKyNp
bmNsdWRlICIke2ludGVyZmFjZU5hbWV9LmgiCitFT0YKKyAgICBwdXNoKEBoQm9keVByaXYsICRp
bXBsQ29udGVudCk7CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKy8vfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKK3R5cGVkZWYgc3RydWN0IF8ke2NsYXNzTmFtZX0gJHtjbGFzc05hbWV9
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAke2NsYXNzTmFtZX0gKgorICAgIHdyYXAke2lu
dGVyZmFjZU5hbWV9KFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfT4gcHJwQ29y
ZU9iamVjdCk7CisKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICoKKyAgICBjb3JlKCR7
Y2xhc3NOYW1lfSAqcmVxdWVzdCk7CitFT0YKKyAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29u
dGVudCk7CisKKyAgICBpZiAoICFVc2VzTWFudWFsVG9HRE9NSW1wbGVtZW50YXRpb24oJGludGVy
ZmFjZU5hbWUpKSB7CisgICAgICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCisgICAgZ3Bv
aW50ZXIKKyAgICB0b0dET00oV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogbm9kZSk7CitFT0YK
KyAgICAgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworICAgIH0KKworICAgICRp
bXBsQ29udGVudCA9IDw8ICJFT0YiOworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
KiAke2d1YXJkfV9QUklWXyAqLworCitFT0YKKyAgICBwdXNoKEBoQm9keVByaXYsICRpbXBsQ29u
dGVudCk7CisKKyAgICAjaWYgKCRwYXJhbUlETFR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICAj
IFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJhdG9yLgorICAgICMgICAgJGlt
cGxJbmNsdWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0gMTsKKyAgICAjfSBl
bHNlIHsKKyAgICAjICAgICRpbXBsSW5jbHVkZXN7JGluY2x1ZGVIZHJ9ID0gMTsKKyAgICAjfQor
ICAgICRpbXBsSW5jbHVkZXN7IiR7aW50ZXJmYWNlTmFtZX0uaCJ9ID0gMTsKKyAgICAkaW1wbElu
Y2x1ZGVzeyJnZG9tL0dkb21ET01PYmplY3RQcml2YXRlLmgifSA9IDE7CisKKyAgTE9PUDoKKyAg
ICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKwkjbXkg
JGZ1bmN0aW9uTmFtZSA9IGRlY2FtZWxpemUoJGNsYXNzTmFtZSkgLiAiXyIgLiBkZWNhbWVsaXpl
KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKwlteSAkZm5fc2lnX25hbWUgPSAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+bmFtZTsKKwlteSAkZm5fc2lnX3R5cGUgPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+dHlwZTsKKwlteSAkZnVuY3Rpb25OYW1lID0gImdkb21fIiAuIGRlY2FtZWxpemUoJGlu
dGVyZmFjZU5hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX25hbWUpOworCW15ICRyZXR1
cm5UeXBlID0gR2V0R1R5cGUoJGZuX3NpZ190eXBlKTsKKwlteSAkcmV0X2lzX2Nsc190eXBlID0g
SXNHRE9NQ2xhc3NUeXBlKCRmbl9zaWdfdHlwZSk7CisKKwlteSAkZnVuY3Rpb25TaWcgPSAiJGNs
YXNzTmFtZSAqdGhpeiI7CisKKwlteSAkY2FsbF9pbXBsX3BhcmFtcyA9ICIiOworCW15ICRnZG9t
X2ZuX3ByZWZpeCA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRmbl9zaWdfdHlwZSk7CisKKwlpZiAo
JGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X3Byb3BlcnR5
IikgeworCSAgICAjIHJlc2VydmVkIG5hbWUgY2xhc2ggaW4gZ2xpYiEKKwkgICAgJGZ1bmN0aW9u
TmFtZSA9ICJnZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfY3NzX3Byb3BlcnR5IjsKKwl9
CisJIyBYWFggc2tpcCBDb21wYXJlSG93IGZ1bmN0aW9ucyBmb3Igbm93CisJaWYgKCRmdW5jdGlv
bk5hbWUgZXEgImdkb21fcmFuZ2VfY29tcGFyZV9ib3VuZGFyeV9wb2ludHMiKSB7CisJICAgIHB1
c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAk
e2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisJICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9E
Tzogc2tpcHBpbmcgQ29tcGFyZUhvdyBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7
CisJICAgIG5leHQgTE9PUDsKKwl9CisKKwkjIFhYWCBza2lwIFNWR0RvY3VtZW50IGZ1bmN0aW9u
cyBmb3Igbm93CisJaWYgKCRyZXR1cm5UeXBlIGVxICJHZG9tU1ZHRG9jdW1lbnQgKiIpIHsKKwkg
ICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBza2lwcGluZyBTVkdEb2N1bWVudCBmdW5j
dGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisJICAgIHB1c2goQGNCb2R5LCAiXG4vKiBY
WFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICov
XG5cbiIpOworCSAgICBuZXh0IExPT1A7CisJfQorCisJIyBYWFggZG9uJ3Qgc2tpcCBzb21lIGN1
c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworCW15ICRpc19jdXN0b21fZm4gPSAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworCWlmICgkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9pdGVtIiB8fAorCSAgICAkZnVuY3Rpb25OYW1l
IGVxICJnZG9tX2h0bWxfY29sbGVjdGlvbl9uYW1lZF9pdGVtIiB8fAorCSAgICAkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfc2VsZWN0aW9uX3JhbmdlIiB8fAor
CSAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX2h0bWxfZm9ybV9lbGVtZW50X3N1Ym1pdCIgfHwK
KwkgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X29wZW4iIHx8CisJ
ICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9zZXRfcmVxdWVzdF9o
ZWFkZXIiIHx8CisJICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9z
ZW5kIiB8fAorCSAgICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3RfZ2V0
X3Jlc3BvbnNlX2hlYWRlciIgfHwKKwkgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0
cF9yZXF1ZXN0X292ZXJyaWRlX21pbWVfdHlwZSIgfHwKKwkgICAgJGZ1bmN0aW9uTmFtZSBlcSAi
Z2RvbV94bWxfaHR0cF9yZXF1ZXN0X2Rpc3BhdGNoX2V2ZW50IiB8fAorCSAgICAkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZSIpIHsKKwkgICAgJGlzX2N1c3RvbV9m
biA9IDA7CisJfQorCSMgWFhYIHNraXAgc29tZSBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKwlp
ZiAoJGlzX2N1c3RvbV9mbiAmJiAKKwkgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0
ZXJhdG9yX25leHRfbm9kZSIgJiYgCisJICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9h
cHBlbmRfY2hpbGQiICYmIAorCSAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVtb3Zl
X2NoaWxkIiAmJiAKKwkgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2luc2VydF9iZWZv
cmUiICYmCisJICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9yZXBsYWNlX2NoaWxkIiAm
JgorCSAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3BhcmVudF9ub2RlIiAm
JiAKKwkgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9maXJzdF9jaGlsZCIg
JiYgCisJICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbGFzdF9jaGlsZCIg
JiYgCisJICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfc2li
bGluZyIgJiYgCisJICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9z
aWJsaW5nIiAmJiAKKwkgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wcmV2
aW91c19ub2RlIiAmJiAKKwkgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9u
ZXh0X25vZGUiICYmIAorCSAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfaXRlcmF0b3Jf
cHJldmlvdXNfbm9kZSIpIHsKKwkgICAgcHVzaChAaEJvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0
b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworCSAgICBwdXNoKEBjQm9keSwg
IlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7
CisJICAgIG5leHQgTE9PUDsKKwl9CisKKwlmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rpb24t
PnBhcmFtZXRlcnN9KSB7CisJICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7CisJ
ICAgIGFkZEluY0JvZHkoJHBhcmFtSURMVHlwZSk7CisJICAgIGFkZEluY0hkcigkcGFyYW1JRExU
eXBlKTsKKwkgICAgbXkgJHBhcmFtVHlwZSA9IEdldEdUeXBlKCRwYXJhbUlETFR5cGUpOworCSAg
ICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworCisJICAgICRmdW5j
dGlvblNpZyAuPSAiLCAkcGFyYW1UeXBlICRwYXJhbU5hbWUiOworCisJICAgIG15ICRwYXJhbV9p
c19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBlKTsKKwkgICAgaWYgKCRw
YXJhbV9pc19jbHNfdHlwZSkgeworCQlpZiAoJHBhcmFtSURMVHlwZSBuZSAiRE9NT2JqZWN0IiAm
JgorCQkgICAgJHBhcmFtSURMVHlwZSBuZSAiRXZlbnRUYXJnZXQiKSB7CisJCSAgICAkaW1wbElu
Y2x1ZGVzeyJnZG9tL0dkb20ke3BhcmFtSURMVHlwZX1Qcml2YXRlLmgifSA9IDE7CisJCSAgICAj
IHRoaXMgaXNuJ3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGJ1dCBvbmUgb2YgdGhlCisJCSAgICAjIGF1
dG8tZ2VuZXJhdGVkIGZpbGVzIG5lZWRlZCBpdCBzby4uLi4KKwkJICAgICRpbXBsSW5jbHVkZXN7
IiR7cGFyYW1JRExUeXBlfS5oIn0gPSAxOworCQl9CisJICAgIH0KKwkgICAgaWYgKCRwYXJhbV9p
c19jbHNfdHlwZSB8fCAoJHBhcmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikpIHsKKwkJJHBhcmFt
TmFtZSA9ICJfZ18iIC4gJHBhcmFtTmFtZTsKKwkgICAgfQorCSAgICBpZiAoJGNhbGxfaW1wbF9w
YXJhbXMpIHsKKwkJJGNhbGxfaW1wbF9wYXJhbXMgLj0gIiwgJHBhcmFtTmFtZSI7CisJICAgIH0g
ZWxzZSB7CisJCSRjYWxsX2ltcGxfcGFyYW1zID0gIiRwYXJhbU5hbWUiOworCSAgICB9CisJfQor
CisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tQXJndW1lbnRIYW5kbGluZyJ9KSB7CisKKwkgICAgaWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7
CisJCSRjYWxsX2ltcGxfcGFyYW1zIC49ICIsICZjYWxsU3RhY2siOworCSAgICB9IGVsc2Ugewor
CQkkY2FsbF9pbXBsX3BhcmFtcyA9ICImY2FsbFN0YWNrIjsKKwkgICAgfQorICAgICAgICAkaW1w
bEluY2x1ZGVzeyJTY3JpcHRDYWxsU3RhY2suaCJ9ID0gMTsKKyAgICB9CisKKwlhZGRJbmNIZHIo
JGZuX3NpZ190eXBlKTsKKwlpZiAoJHJldF9pc19jbHNfdHlwZSkgeworCSAgICAjICAgICRpbXBs
VHlwZWRlZnN7Ikdkb20ke2ZuX3NpZ190eXBlfSJ9ID0gMTsKKwl9CisKKwlpZiAoJHJldHVyblR5
cGUgbmUgInZvaWQiKSB7CisKKwkgICAgaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKwkJaWYgKCRm
bl9zaWdfdHlwZSBlcSAiRE9NT2JqZWN0IikgeworCQkgICAgIyBYWFggPz8/PyB3dGY/PyA6KSBj
b3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKwkJICAgICRpbXBsSW5jbHVkZXN7Imdkb20vR2RvbUNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIn0gPSAxOworCQl9IGVsc2UgeworCQkgICAgI2lmICgk
Zm5fc2lnX3R5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworCQkJIyRpbXBsSW5jbHVkZXN7Imdkb20v
R2RvbSR7Zm5fc2lnX3R5cGV9UHJpdmF0ZS5oIn0gPSAxOworCQkJIyRpbXBsSW5jbHVkZXN7Imdk
b20vR2RvbSR7Zm5fc2lnX3R5cGV9LmgifSA9IDE7CisJCSAgICAjfQorCQkgICAgJGltcGxJbmNs
dWRlc3siJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKyAgICAgICAgICAgICRjQm9keUdET017Imdw
b2ludGVyIHRvR0RPTShXZWJDb3JlOjoke2ZuX3NpZ190eXBlfSogbm9kZSk7In0gPSAxOworCQl9
CisJICAgIH0KKwl9CisKKwkjIFhYWCBza2lwIGN1c3RvbSBmdW5jdGlvbnMgZm9yIG5vdworCSMg
YnV0IHNraXAgZnJvbSBoZXJlIHRvIGFsbG93IHNvbWUgaGVhZGVycyB0byBiZSBjcmVhdGVkCisJ
IyBmb3IgYSBzdWNjZXNzZnVsIGNvbXBpbGUuCisJaWYgKCRpc19jdXN0b21fZm4gJiYKKwkgICAg
JGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisJICAgICRmdW5j
dGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorCSAgICAkZnVuY3Rpb25O
YW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKwkgICAgJGZ1bmN0aW9uTmFtZSBu
ZSAiZ2RvbV9ub2RlX2FwcGVuZF9jaGlsZCIpIHsKKwkgICAgcHVzaChAaEJvZHksICJcbi8qIFhY
WCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworCSAgICBw
dXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IGN1c3RvbSBmdW5jdGlvbiAke2Z1bmN0aW9uTmFt
ZX0gKi9cblxuIik7CisJICAgIG5leHQgTE9PUDsKKwl9CisKKyAgICBpZiAoJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Bcmd1bWVudEhhbmRsaW5nIn0p
IHsKKyAgICAgICAgIyBYWFggc2tpcCBjdXN0b20gYXJndW1lbnQgaGFuZGxpbmcgLSBjdXJyZW50
bHkgaW4gQ29uc29sZS5pZGwKKyAgICAgICAgIyByZXF1aXJlcyBFeGVjU3RhdGUgd2hpY2ggaGFz
IGJlZW4gcmVtb3ZlZCB1bnRpbCAjMTY0MDEgaXMgYWNjZXB0ZWQuCisJICAgIHB1c2goQGhCb2R5
LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGFyZ3VtZW50IGhhbmRsaW5nICR7ZnVuY3Rpb25OYW1l
fSAqL1xuXG4iKTsKKwkgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RPOiBjdXN0b20gYXJn
dW1lbnQgaGFuZGxpbmcgJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworCSAgICBuZXh0IExPT1A7
CisgICAgfQorCW15ICRfcmV0dXJuVHlwZSA9ICRyZXR1cm5UeXBlOworCW15ICRkb21vYmpUeXBl
ID0gIkdET00iLiRmbl9zaWdfdHlwZTsKKwlpZiAoJGZuX3NpZ190eXBlIGVxICdET01PYmplY3Qn
ICYmCisJICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRf
Y29udGV4dCcpIHsKKwkgICAgIyBYWFggSEFDSyEKKwkgICAgJF9yZXR1cm5UeXBlID0gJ0dkb21D
YW52YXNSZW5kZXJpbmdDb250ZXh0IConOworCSAgICAkZG9tb2JqVHlwZSA9ICdHRE9NQ2FudmFz
UmVuZGVyaW5nQ29udGV4dCc7CisJICAgICRnZG9tX2ZuX3ByZWZpeCA9ICdnZG9tX2NhbnZhc19y
ZW5kZXJpbmdfY29udGV4dCc7CisJICAgIG5leHQgTE9PUDsJICAgICAgICMgWFhYIC0gdG9vIGlu
dm9sdmVkIGZvciBub3cuICBza2lwIGl0LgorCSAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9i
amVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUgdG8gZmluZCBvdXQgaG93KQorCSAgICAjIGJldHRl
cjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBhIEdET01Eb21PYmplY3QKKwl9CisKKwlpZiAoJGZu
X3NpZ190eXBlIGVxICdET01PYmplY3QnICYmCisJICAgICRmdW5jdGlvbk5hbWUgZXEgJ2dkb21f
ZG9jdW1lbnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKwkgICAgIyBYWFggSEFDSyEKKwkg
ICAgJF9yZXR1cm5UeXBlID0gJ0dkb21DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgKic7CisJICAg
ICRkb21vYmpUeXBlID0gJ0dET01DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnOworCSAgICAkZ2Rv
bV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRleHQyZCc7CisJICAgIG5l
eHQgTE9PUDsJICAgICAgICMgWFhYIC0gdG9vIGludm9sdmVkIGZvciBub3cuICBza2lwIGl0Lgor
CSAgICAjIG11c3QgY29udmVydCB0byBhIERPTU9iamVjdCAoVE9ETzogYnJvd3NlIEpTIGNvZGUg
dG8gZmluZCBvdXQgaG93KQorCSAgICAjIGJldHRlcjogd29yayBvdXQgaG93IHRvIGNyZWF0ZSBh
IEdET01Eb21PYmplY3QKKwl9CisKKworCXB1c2goQGhCb2R5LCAiV0VCS0lUX0FQSSAkX3JldHVy
blR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisJcHVzaChAY0Jv
ZHksICIkX3JldHVyblR5cGVcbiRmdW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZylcbntcbiIpOwor
CisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tQXJndW1lbnRIYW5kbGluZyJ9KSB7CisgICAgICAgIG15ICRudW1QYXJhbWV0ZXJzID0gQHsk
ZnVuY3Rpb24tPnBhcmFtZXRlcnN9OworICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3Jl
OjpTY3JpcHRDYWxsU3RhY2sgY2FsbFN0YWNrKGV4ZWMsIGFyZ3MsICRudW1QYXJhbWV0ZXJzKTtc
biIpOworICAgIH0KKworCXB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFt
ZX0gKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHRoaXopO1xuIik7CisJaWYgKCRyZXR1cm5UeXBlIG5l
ICJ2b2lkIikgeworCSAgICAjIFhYWCBUT0RPOiByZXR1cm4gcHJvcGVyIGRlZmF1bHQgcmVzdWx0
CisJICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChpdGVtLCAwKTtc
biIpOworCX0gZWxzZSB7CisJICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwg
KGl0ZW0pO1xuIik7CisJfQorCisJZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfSkgeworCSAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUp
OworCSAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworCSAgICBteSAkcGFyYW1U
eXBlSXNQcmltaXRpdmUgPSAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCRwYXJhbUlE
TFR5cGUpOworCSAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBh
cmFtSURMVHlwZSk7CisJICAgIGFkZEluY0hkcigkcGFyYW1JRExUeXBlKTsKKwkgICAgaWYgKCRw
YXJhbV9pc19jbHNfdHlwZSkgeworCQkjICAgICRpbXBsVHlwZWRlZnN7Ikdkb20ke3BhcmFtSURM
VHlwZX0ifSA9IDE7CisJICAgIH0KKworICAgICAgICAjIFhYWCBUT0RPOiByZXNvbHZlIHdoaWNo
IGFyZ3VtZW50cyBzaG91bGQgLyBjYW4gYmUgTlVMTAorICAgICAgICAjIG9yIGhlY2sgcmVzb2x2
ZSBpZiBpdCdzIGV2ZW4gbmVjZXNzYXJ5IHRvIGNoZWNrISBPYmpDIGRvZXNuJ3QuCisgICAgICAg
ICMKKwkgICAgIyBpZiAoISRwYXJhbVR5cGVJc1ByaW1pdGl2ZSkgeworCQkjIGlmICgkcmV0dXJu
VHlwZSBuZSAidm9pZCIpIHsKKwkJIyAgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKCRwYXJhbU5hbWUsIDApO1xuIik7CisJCSMgfSBlbHNlIHsKKwkJIyAgICAgcHVz
aChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFpbCAoJHBhcmFtTmFtZSk7XG4iKTsKKwkJIyB9
CisJICAgICN9CisJfQorCisJJHJldHVyblBhcmFtTmFtZSA9ICIiOworCWZvcmVhY2ggbXkgJHBh
cmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKwkgICAgbXkgJHBhcmFtSURMVHlwZSA9
ICRwYXJhbS0+dHlwZTsKKwkgICAgbXkgJHBhcmFtVHlwZSA9IEdldEdUeXBlKCRwYXJhbUlETFR5
cGUpOworCSAgICBteSAkcGFyYW1OYW1lID0gZGVjYW1lbGl6ZSgkcGFyYW0tPm5hbWUpOworCisJ
ICAgIG15ICRwYXJhbV9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlwZSgkcGFyYW1JRExUeXBl
KTsKKwkgICAgIyBIQUNLIQorCSAgICBpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0
cF9yZXF1ZXN0X29wZW4iICYmCisJCSRwYXJhbS0+bmFtZSBlcSAidXJsIikgeworCisJCSMkaW1w
bEluY2x1ZGVzeyJLVVJMLmgifSA9IDE7CisJCXB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6OktV
UkwgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6S1VSTCgkcGFyYW1OYW1lKTtcbiIpOworCSAg
ICB9IGVsc2lmICgkcGFyYW1JRExUeXBlIGVxICJET01TdHJpbmciKSB7CisJCXB1c2goQGNCb2R5
LCAiICAgIFdlYkNvcmU6OlN0cmluZyBfZ18ke3BhcmFtTmFtZX0gPSBXZWJDb3JlOjpTdHJpbmc6
OmZyb21VVEY4KCRwYXJhbU5hbWUpO1xuIik7CisJICAgIH0KKwkgICAgaWYgKCRwYXJhbV9pc19j
bHNfdHlwZSkgeworCQlteSAkcGFyYW1fZ2RvbV9mbiA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRw
YXJhbUlETFR5cGUpOworCQlpZiAoJHBhcmFtSURMVHlwZSBlcSAiRXZlbnRUYXJnZXQiKSB7CisJ
CSAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb21Ob2RlUHJpdmF0ZS5oIn0gPSAxOworCQkgICAg
cHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6Tm9kZSAqIF9nXyR7cGFyYW1OYW1lfSA9IFdlYktp
dDo6Y29yZSgkcGFyYW1OYW1lKTtcbiIpOworCQl9IGVsc2UgeworCQkgICAgcHVzaChAY0JvZHks
ICIgICAgV2ViQ29yZTo6JHtwYXJhbUlETFR5cGV9ICogX2dfJHtwYXJhbU5hbWV9ID0gV2ViS2l0
Ojpjb3JlKCRwYXJhbU5hbWUpO1xuIik7CisJCX0KKyAgICAgICAgIyBYWFggVE9ETzogcmVzb2x2
ZSB3aGljaCBhcmd1bWVudHMgc2hvdWxkIC8gY2FuIGJlIE5VTEwKKyAgICAgICAgIyBvciBoZWNr
IHJlc29sdmUgaWYgaXQncyBldmVuIG5lY2Vzc2FyeSB0byBjaGVjayEgT2JqQyBkb2Vzbid0Lgor
ICAgICAgICAjCisJCSNpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiKSB7CisJCSMgICAgcHVzaChA
Y0JvZHksICIgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKF9nXyR7cGFyYW1OYW1lfSwgMCk7XG4i
KTsKKwkJI30gZWxzZSB7CisJCSMgICAgcHVzaChAY0JvZHksICIgICAgZ19yZXR1cm5faWZfZmFp
bCAoX2dfJHtwYXJhbU5hbWV9KTtcbiIpOworCQkjfQorCisJICAgIH0KKwkgICAgJHJldHVyblBh
cmFtTmFtZSA9ICJfZ18iLiRwYXJhbU5hbWUgaWYgJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiUmV0dXJuIn07CisJfQorCisJbXkgJGFzc2lnbiA9ICIiOworCW15ICRhc3NpZ25fcHJlID0g
IiI7CisJbXkgJGFzc2lnbl9wb3N0ID0gIiI7CisJJGdfcmVzID0gMDsKKwlpZiAoJHJldHVyblR5
cGUgbmUgInZvaWQiICYmICEkaXNfY3VzdG9tX2ZuKSB7CisKKwkgICAgaWYgKCRyZXRfaXNfY2xz
X3R5cGUpIHsKKwkJJGFzc2lnbiA9ICJQYXNzUmVmUHRyPFdlYkNvcmU6OiR7Zm5fc2lnX3R5cGV9
PiBnX3JlcyA9ICI7CisJCSRhc3NpZ25fcHJlID0gIldURjo6Z2V0UHRyKCI7CisJCSRhc3NpZ25f
cG9zdCA9ICIpIjsKKwkgICAgfSBlbHNlIHsKKwkJJGFzc2lnbiA9ICIke19yZXR1cm5UeXBlfSBy
ZXMgPSAiOworCSAgICB9CisJfQorCW15ICRleGNlcHRpb25zID0gIiI7CisJaWYgKEB7JGZ1bmN0
aW9uLT5yYWlzZXNFeGNlcHRpb25zfSkgeworCSAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworCSAgICBpZiAoJHtjYWxsX2ltcGxfcGFyYW1z
fSBuZSAiIikgeworCQkkZXhjZXB0aW9ucyA9ICIsIGVjIjsKKwkgICAgfSBlbHNlIHsKKwkJJGV4
Y2VwdGlvbnMgPSAiZWMiOworCSAgICB9CisJfQorCisJIyBuZWVkIHRoaXMgZm9yIGluY2x1ZGlu
ZyAuLi4gX3NvbWV0aGluZ18gLSBmb3IgdGhlIGNsYXNzIGFyZ3MKKwkjaWYgKCRyZXRfaXNfY2xz
X3R5cGUpIHsKKwkjICAgICRpbXBsSW5jbHVkZXN7Imdkb20ke2ZuX3NpZ190eXBlfS5oIn0gPSAx
OworCSN9CisJaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9hcHBlbmRfY2hpbGQiIHx8
CisJICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiB8fAorCSAg
ICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgfHwKKwkgICAgJGZ1
bmN0aW9uTmFtZSBlcSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIpIHsKKwkgICAgbXkgJGN1c3Rv
bV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkID0gPDwgIkVPRiI7CisgICAgYm9vbCBvayA9IGl0ZW0t
PiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9KTsKKyAgICBp
ZiAob2spCisgICAgeworICAgICAgICAke19yZXR1cm5UeXBlfSByZXMgPSBzdGF0aWNfY2FzdDwk
e19yZXR1cm5UeXBlfT4oV2ViS2l0Ojp0b0dET00oJHJldHVyblBhcmFtTmFtZSkpOworICAgICAg
ICByZXR1cm4gcmVzOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK0VPRgorCSAgICBwdXNoKEBj
Qm9keSwgJGN1c3RvbV9nZG9tX25vZGVfYXBwZW5kX2NoaWxkKTsKKwl9IGVsc2lmICgkZm5fc2ln
X3R5cGUgZXEgIkRPTU9iamVjdCIgJiYKKwkJICRmdW5jdGlvbk5hbWUgbmUgJ2dkb21fZG9jdW1l
bnRfZ2V0X2Nzc19jYW52YXNfY29udGV4dCcpIHsKKwkgICAgcHVzaChAY0JvZHksICIgICAgLyog
WFhYIFRPRE8gLSBnZXQgY2FudmFzIG9iamVjdCAoaXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtjYWxs
X2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30pKTsqL1xuIiApOworCisJfSBlbHNpZiAoJGZuX3Np
Z190eXBlIGVxICJET01TdHJpbmciKSB7CisJICAgIHB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdu
fUdTdHJpbmdDb252ZXJ0KGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30k
e2V4Y2VwdGlvbnN9KSk7XG4iICk7CisJfSBlbHNlIHsKKwkgICAgaWYgKCRnX3JlcykgeworCQkk
Z19yZXMgPSAiJHthc3NpZ259JHthc3NpZ25fcHJlfWl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2Fs
bF9pbXBsX3BhcmFtc30ke2V4Y2VwdGlvbnN9JHthc3NpZ25fcG9zdH0pIiA7CisJICAgIH0gZWxz
ZSB7CisJCXB1c2goQGNCb2R5LCAiICAgICR7YXNzaWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2Zu
X3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9
KTtcbiIgKTsKKwkgICAgfQorCX0KKwlpZiAoJHJldHVyblR5cGUgbmUgInZvaWQiICYmICEkaXNf
Y3VzdG9tX2ZuKSB7CisKKwkgICAgaWYgKCRmbl9zaWdfdHlwZSBuZSAiRE9NT2JqZWN0Iikgewor
CQlpZiAoJHJldF9pc19jbHNfdHlwZSkgeworCQkgICAgcHVzaChAY0JvZHksICIgICAgJHtfcmV0
dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nhc3Q8JHtfcmV0dXJuVHlwZX0+KFdlYktpdDo6dG9HRE9N
KGdfcmVzLmdldCgpKSk7XG4iKTsKKwkJfQorCSAgICB9CisJICAgIGlmICgkZm5fc2lnX3R5cGUg
ZXEgIkRPTU9iamVjdCIpIHsKKwkJcHVzaChAY0JvZHksICIgICAgcmV0dXJuIE5VTEw7IC8qIFhY
WCBUT0RPOiByZXR1cm4gY2FudmFzIG9iamVjdCAqL1xuIik7CisJICAgIH0gZWxzZSB7CisJCXB1
c2goQGNCb2R5LCAiICAgIHJldHVybiByZXM7XG4iKTsKKwkgICAgfQorCX0KKwlwdXNoKEBjQm9k
eSwgIlxuIik7CisKKwlwdXNoKEBjQm9keSwgIn1cblxuIik7CisgICAgfQorCisgICAgcHVzaChA
Y0JvZHksICJ9IC8qIGV4dGVybiBcIkNcIiAqL1xuXG4iKTsKKyAgICBwdXNoKEBjQm9keVByaXYs
ICJHX0VORF9ERUNMU1xuXG4iKTsKKworICAgIHB1c2goQGhCb2R5LCAiR19FTkRfREVDTFNcblxu
Iik7CisgICAgcHVzaChAaEJvZHksICIjZW5kaWYgLyogJGd1YXJkICovXG4iKTsKKworICAgIHB1
c2goQGhCb2R5UHJvcCwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2goQGhCb2R5UHJvcCwg
IiNlbmRpZiAvKiAke2d1YXJkfV9QUk9QXyovXG4iKTsKK30KKworIyBJbnRlcm5hbCBoZWxwZXIK
K3N1YiBXcml0ZURhdGEgeworICAgIG15ICgkb2JqZWN0LCAkbmFtZSkgPSBAXzsKKworICAgICMg
V3JpdGUgUHJpdmF0ZSBoZWFkZXIKKyAgICBteSAkaGRyRk5hbWVQcml2ID0gIiRvdXRwdXREaXIv
IiAuICRuYW1lIC4gIlByaXZhdGUuaCI7CisgICAgb3BlbihQUklWSEVBREVSLCAiPiRoZHJGTmFt
ZVByaXYiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWVQcml2IjsKKyAgICBw
cmludCBQUklWSEVBREVSIEBoUHJlZml4OworICAgIHByaW50IFBSSVZIRUFERVIgIlxuIjsKKyAg
ICBwcmludCBQUklWSEVBREVSIEBoQm9keVByaXY7CisgICAgY2xvc2UoUFJJVkhFQURFUik7CisK
KyAgICAjIFdyaXRlIHByb3BlcnRpZXMgaGVhZGVyIChhdm9pZHMgcmVjdXJzaXZlIG5pZ2h0bWFy
ZSkKKyAgICBteSAkaGRyUHJvcEZOYW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gInByb3Bz
LmgiOworICAgIG9wZW4oUFJPUEhFQURFUiwgIj4kaGRyUHJvcEZOYW1lIikgb3IgZGllICJDb3Vs
ZG4ndCBvcGVuIGZpbGUgJGhkclByb3BGTmFtZSI7CisKKyAgICAkaGRyUHJvcEluY2x1ZGVzeyJn
bGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgUFJPUEhFQURFUiBAaFByZWZpeDsKKyAg
ICBwcmludCBQUk9QSEVBREVSICIvKiByZWN1cnNpdmUgaW5jbHVkZXMgLyBkZWZpbmVzIGlzc3Vl
IGZvcmNlcyBzZXBhcmF0ZSBoZWFkZXIgZm9yIHByb3BlcnRpZXMuXG5wZXJoYXBzIC0gYmV0dGVy
IC0gYWxsIGdkb20gZ3RrIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW4gaGVyZSEqL1xuIjsKKyAgICBw
cmludCBQUk9QSEVBREVSIEBoQm9keVByb3BQcmU7CisgICAgcHJpbnQgUFJPUEhFQURFUiAiI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50IFBST1BIRUFERVIg
bWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsK
KyAgICBwcmludCBQUk9QSEVBREVSICJcbiIgaWYga2V5cyglaGRyUHJvcEluY2x1ZGVzKTsKKyAg
ICBwcmludCBQUk9QSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJPUEhFQURFUiBAaEJvZHlQcm9w
OworCisgICAgY2xvc2UoSEVBREVSKTsKKworICAgICMgV3JpdGUgcHVibGljIGhlYWRlci4KKyAg
ICBteSAkaGRyRk5hbWUgPSAiJG91dHB1dERpci8iIC4gJG5hbWUgLiAiLmgiOworICAgIG9wZW4o
SEVBREVSLCAiPiRoZHJGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRoZHJGTmFt
ZSI7CisKKyAgICAkaGRySW5jbHVkZXN7ImdsaWItb2JqZWN0LmgifSA9IDE7CisKKyAgICBwcmlu
dCBIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4R3VhcmQ7CisgICAg
cHJpbnQgSEVBREVSICIjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD5cbiI7CisgICAg
cHJpbnQgSEVBREVSIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWhkcklu
Y2x1ZGVzKTsKKyAgICBwcmludCBIRUFERVIgIlxuIiBpZiBrZXlzKCVoZHJJbmNsdWRlcyk7Cisg
ICAgcHJpbnQgSEVBREVSICJcbiI7CisgICAgcHJpbnQgSEVBREVSIEBoQm9keVByZTsKKyAgICBw
cmludCBIRUFERVIgbWFwIHsgInR5cGVkZWYgc3RydWN0IF8kXyAkXztcbiIgfSBzb3J0IGtleXMo
JWltcGxUeXBlZGVmcyk7CisgICAgcHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaW1wbFR5cGVk
ZWZzKTsKKyAgICBwcmludCBIRUFERVIgQGhCb2R5OworCisgICAgY2xvc2UoSEVBREVSKTsKKwor
ICAgICMgV3JpdGUgdGhlIGltcGxlbWVudGF0aW9uIHNvdXJjZXMKKyAgICBteSAkaW1wbEZpbGVO
YW1lID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5jcHAiOworICAgIG9wZW4oSU1QTCwgIj4k
aW1wbEZpbGVOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGltcGxGaWxlTmFtZSI7
CisKKyAgICBwcmludCBJTVBMIEBjUHJlZml4OworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIFwi
Y29uZmlnLmhcIlxuXG4iOworICAgIHByaW50IElNUEwgIiNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
XG4iOworICAgIHByaW50IElNUEwgbWFwIHsgIiNpbmNsdWRlIFwiJF9cIlxuIiB9IHNvcnQga2V5
cyglaW1wbEluY2x1ZGVzKTsKKyAgICBwcmludCBJTVBMICJcbiIgaWYga2V5cyglaW1wbEluY2x1
ZGVzKTsKKyAgICBwcmludCBJTVBMICJuYW1lc3BhY2UgV2ViS2l0IHtcbiI7CisgICAgcHJpbnQg
SU1QTCBtYXAgeyAiJF9cbiIgfSBzb3J0IGtleXMoJWNCb2R5R0RPTSk7CisgICAgcHJpbnQgSU1Q
TCAifTsgLy8gbmFtZXNwYWNlIFdlYktpdFxuIjsKKyAgICBwcmludCBJTVBMIEBjQm9keTsKKwor
ICAgIHByaW50IElNUEwgIlxuIjsKKyAgICBwcmludCBJTVBMIEBjQm9keVByaXY7CisKKyAgICBj
bG9zZShJTVBMKTsKKworICAgICVpbXBsSW5jbHVkZXMgPSAoKTsKKyAgICAlaW1wbFR5cGVkZWZz
ID0gKCk7CisgICAgJWhkckluY2x1ZGVzID0gKCk7CisgICAgQGhQcmVmaXggPSAoKTsKKyAgICBA
aEJvZHkgPSAoKTsKKyAgICBAaEJvZHlQcml2ID0gKCk7CisgICAgQGhCb2R5UHJvcCA9ICgpOwor
ICAgIEBoQm9keVByb3BQcmUgPSAoKTsKKworICAgIEBjUHJlZml4ID0gKCk7CisgICAgQGNCb2R5
R0RPTSA9ICgpOworICAgIEBjQm9keSA9ICgpOworICAgIEBjQm9keVByaXYgPSAoKTsKK30KKwor
MTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkocmV2aXNpb24gNDQ0NzMpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw3ICsyOCw5IEBACiAgICAgXSBIVE1MT3B0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOwogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRlZmF1bHRTZWxl
Y3RlZDsKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFT
Q1JJUFQKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZB
U0NSSVBUKSB8fCBcCisgICAgKGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0Vf
R09CSkVDVCkKKwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmlkbAkocmV2aXNpb24gNDQ0NzMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw4IEBACiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRleHQ7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
ICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBU
KSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBcCisgICAgIChkZWZpbmVkKExBTkdVQUdFX0dP
QkpFQ1QpICYmIExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5n
IHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVt
ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRs
CShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDE0ICszNSwxNiBAQAogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgY29kZTsKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGNv
ZGVCYXNlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgaGVpZ2h0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkg
JiYgTEFOR1VBR0VfSkFWQVNDUklQVAorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQp
ICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IFwKKyAgICAgKGRlZmluZWQoTEFOR1VBR0VfR09C
SkVDVCkgJiYgTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhzcGFjZTsKICNlbHNlCiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaHNwYWNlOwogI2Vu
ZGlmCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgb2JqZWN0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IFwKKyAgICAgKGRlZmluZWQoTEFO
R1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZzcGFjZTsKICNlbHNl
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgdnNw
YWNlOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAkocmV2aXNpb24gNDQ0NzMpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDcgKzMwLDggQEAKICAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZm
MC05NzhkLWY3NzNmMmRlZTZhMwogICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGFsaWduOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFO
R1VBR0VfSkFWQVNDUklQVAorI2lmIChkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExB
TkdVQUdFX0pBVkFTQ1JJUFQpIHx8IFwKKyAgKGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYg
TEFOR1VBR0VfR09CSkVDVCkKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKICNlbHNlCiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaGVpZ2h0OwpAQCAtMzgsNyArMzks
OCBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7Ci0jaWYgZGVmaW5lZChM
QU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCisjaWYgKGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgXAorICAoZGVm
aW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgd2lkdGg7
CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3RyaW5nXSBs
b25nIHdpZHRoOwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAkocmV2aXNpb24gNDQ0NzMpCisr
KyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTY1LDkg
KzY1LDEzIEBACiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAv
LyB2b2lkIHNlbmQoKTsKLSAgICAgICAgLy8gdm9pZCBzZW5kKGluIERPTVN0cmluZyBkYXRhKTsK
KyNpZiBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpCisgICAgICAgIHZvaWQgc2VuZChpbiBET01T
dHJpbmcgZGF0YSkKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworI2Vsc2UKICAg
ICAgICAgW0N1c3RvbV0gdm9pZCBzZW5kKGluIERvY3VtZW50IGRhdGEpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgogCiAgICAgICAgIHZvaWQgYWJvcnQoKTsKIApJ
bmRleDogV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAkocmV2aXNpb24gNDQ0NzMpCisrKyBXZWJDb3JlL3ht
bC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDggQEAKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKIAotI2lmIGRlZmlu
ZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAorI2lmIChkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQpIHx8IFwKKyAg
ICAgKGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0VfR09CSkVDVCkKICAgICAg
ICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CiAgICAgICAgIFtE
b250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDQ0NDczKQorKysgV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICsz
Nyw4IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CiAK
LSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQK
KyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBU
KSB8fCBcCisgICAgIChkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdVQUdFX0dPQkpF
Q1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAog
ICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlmCkluZGV4OiBD
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShyZXZpc2lvbiA0NDQ3MykKKysrIENo
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtODAzLDYgKzgwMywxNiBAQAogCiAgICAgICAgICog
V2ViS2l0LnBybzoKIAorMjAwOC0xMS0zMCAgbGtjbCAgPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5h
bTogYWRkIEdkb20qLmggZ2xpYiBET00gYmluZGluZ3MgaGVhZGVyIGZpbGVzLAorICAgICAgICAK
KyAgICAgICAgQWxzbyBhZGRlZCBnZG9tZW51bXR5cGVzLmNwcCxoIHdoaWNoIHByZXNlbnRseSBk
byBub3QKKyAgICAgICAgYWN0dWFsbHkgY29udGFpbiBhbnl0aGluZywgYmVjYXVzZSB0aGVyZSBh
cmUgbm8gZW51bXMKKyAgICAgICAgaW4gdGhlIGdsaWIgYmluZGluZ3MgLSB5ZXQuCisKIDIwMDgt
MTEtMjggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYW5kIHNsaWdodGx5IG1vZGlmaWVkIGJ5IEhvbGdlciBGcmV5dGhlci4KSW5kZXg6
IFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0dO
VW1ha2VmaWxlLmFtCShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYktpdFRvb2xzL0dOVW1ha2VmaWxl
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC02LDYgKzYsOCBAQAogUHJvZ3JhbXNfR3RrTGF1bmNoZXJf
Q1BQRkxBR1MgPSBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHRvcF9idWlsZGRp
cikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAorCS1JJCh0
b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKIAkkKGdsb2JhbF9jcHBmbGFncykgXAog
CSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MpCiAKQEAgLTM0LDYgKzM2LDggQEAKIAktSSQoc3Jj
ZGlyKS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsgXAogCS1JJChzcmNkaXIpL1dlYktp
dC9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dl
YktpdC9ndGsvd2Via2l0IFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBc
CiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQogCklu
ZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA0NDQ3MykKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMzYwOSw2ICszNjA5LDE4IEBACiAgICAgICAgIG1heGltdW0gbnVtYmVyIG9m
IGJ1aWxkcyBsZWZ0IHRvIHRlc3QgYWZ0ZXIgdGhlIGN1cnJlbnQgb25lLgogICAgICAgICAobWF4
KTogQWRkZWQuCiAKKzIwMDgtMTEtMzAgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06
IGFkZGVkIC1JIGluY2x1ZGVzIHRvIGd0ayB3ZWJraXQgc3ViZGlyZWN0b3JpZXMKKworICAgICAg
ICBHZG9tIGdsaWIgRE9NIGJpbmRpbmdzIGhhdmUgdGhlaXIgaGVhZGVyIGZpbGVzIGNvbnRhaW5p
bmcKKyAgICAgICAgI2luY2x1ZGUgImdkb20qIiB3aGVyZSAjaW5jbHVkZSA8d2Via2l0L2dkb20q
PiBpcyBub3QKKyAgICAgICAgcG9zc2libGUsIGFzIHRoZSBnZG9tKiBzb3VyY2UgYW5kIGhlYWRl
ciBmaWxlcyBhcmUgYXV0by1nZW5lcmF0ZWQKKyAgICAgICAgaW50byBEZXJpdmVkU291cmNlcy8g
bm90IERlcml2ZWRTb3VyY2VzL3dlYmtpdCwgZm9sbG93aW5nIHRoZQorICAgICAgICBleGFtcGxl
IG9mIHRoZSBKUyBEZXJpdmVkIFNvdXJjZXMuCisKIDIwMDgtMTEtMjcgIEFscCBUb2tlciAgPGFs
cEBudWFudGkuY29tPgogCiAgICAgICAgIEJ1aWxkIEd0a0xhdW5jaGVyIGFuZCBtaW5pZG9tIHdp
dGggdGhlICctYW5zaScgY29tcGlsZXIgZmxhZyB0byBkZXRlY3QK
</data>
<flag name="review"
          id="17034"
          type_id="1"
          status="-"
          setter="jmalonzo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32807</attachid>
            <date>2009-07-15 13:58:35 -0700</date>
            <delta_ts>2009-07-25 15:10:58 -0700</delta_ts>
            <desc>answering comments in #194 by sam</desc>
            <filename>f</filename>
            <type>text/plain</type>
            <size>3931</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVj
dC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQpp
bmRleCA5MmMwMWM1Li5mOTEzYWVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCkBAIC0zMjYsNiArMzI2LDE2IEBAIHN1YiBza2lwUHJv
cFRlbXBvcmFyaWx5IHsKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogCisgICAgIyBza2lwIE9i
amVjdAorICAgIGlmICgkcHJvcF90eXBlIGVxICJPYmplY3QiKSB7CisgICAgICAgIHJldHVybiAx
OworICAgIH0KKworICAgICMgc2tpcCBFdmVudAorICAgIGlmICgkcHJvcF90eXBlIGVxICJFdmVu
dCIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCiAgICAgIyBza2lwIENyeXB0bwogICAg
IGlmICgkcHJvcF90eXBlIGVxICJDcnlwdG8iKSB7CiAgICAgICAgIHJldHVybiAxOwpAQCAtMzg3
LDYgKzM5Nyw3IEBAIHN1YiBVc2VzTWFudWFsVG9HRE9NSW1wbGVtZW50YXRpb24gewogICAgICMg
c2tpcHBlZCBvdXQgQ2FudmFzUGl4ZWxBcnJheSAtIHNlZSBKU0NhbnZhc1BpeGVsQXJyYXlDdXN0
b20uY3BwIGZvciB3aHkuCiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIk5vZGUiIG9yICR0eXBl
IGVxICJEb2N1bWVudCIgb3IgJHR5cGUgZXEgIkhUTUxDb2xsZWN0aW9uIiBvcgogICAgICAgJHR5
cGUgZXEgIlNWR1BhdGhTZWciIG9yICR0eXBlIGVxICJTdHlsZVNoZWV0IiBvciAkdHlwZSBlcSAi
Q1NTUnVsZSIgb3IgJHR5cGUgZXEgIkNTU1ZhbHVlIiBvcgorICAgICAgJHR5cGUgZXEgIk9iamVj
dCIgb3IKIAkkdHlwZSBlcSAiRXZlbnQiIG9yICR0eXBlIGVxICJFbGVtZW50IiBvciAkdHlwZSBl
cSAiVGV4dCI7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC02NDYsMTYgKzY1NywyMSBAQCBFT0YKICAg
ICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKICAgICAg
ICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJvcF90eXBlKTsKICAgICAgICAgbXkgJGZ1bmN0aW9u
U2lnID0gIiRjbGFzc05hbWUgKnRoaXoiOwotICAgICAgICBteSAkY3VzdG9tID0gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn07Ci0KLSAgICAgICAg
aWYgKCRwcm9wX25hbWUgbmUgJ3Jlc3BvbnNlVGV4dCcpIHsgIyBhbGxvdyBYTUxIdHRwUmVxdWVz
dCByZXNwb25zZVRleHQKLSAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgewotICAgICAgICAgICAgICAgIG5l
eHQgU0tJUFBST1A7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyMgICAgICAgIG15ICRjdXN0
b20gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20i
fTsKKyMKKyMgICAgICAgIGlmICgkcHJvcF9uYW1lIG5lICdyZXNwb25zZVRleHQnKSB7ICMgYWxs
b3cgWE1MSHR0cFJlcXVlc3QgcmVzcG9uc2VUZXh0CisjICAgICAgICAgICAgaWYgKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7Cisj
ICAgICAgICAgICAgICAgIG5leHQgU0tJUFBST1A7CisjICAgICAgICAgICAgfQorIyAgICAgICAg
fQogICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0g
PSAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKICAgICAgICAgJGltcGxJbmNs
dWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkcHJvcF90eXBlIGVx
ICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKIAorICAgICAgICAjIHNraXAgSmF2YVNjcmlwdENhbGxG
cmFtZS50eXBlCisgICAgICAgIGlmICgoJHByb3BfbmFtZSBlcSAidHlwZSIpICYmICgkaW50ZXJm
YWNlTmFtZSBlcSAiSmF2YVNjcmlwdENhbGxGcmFtZSIpKXsKKyAgICAgICAgICAgIG5leHQgU0tJ
UFBST1A7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3JhcmlseSgkdHlw
ZSwgJHByb3BfdHlwZSkpIHsKICAgICAgICAgICAgIG5leHQgU0tJUFBST1A7CiAgICAgICAgIH0K
QEAgLTczMCwxNSArNzQ2LDIyIEBAIEVPRgogICAgICAgICBteSAke3Byb3BHVHlwZX0gPSB1Yygk
cHJvcF9ndHlwZSk7CiAgICAgICAgIG15ICRsY2FzZV9ndHlwZW5hbWUgPSAiZ2RvbV8iIC4gJHBy
b3BfZ3R5cGU7CiAKLSAgICAgICAgbXkgJGN1c3RvbSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9OworIworIyAgICAgICAgbXkgJGN1c3RvbSA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9Owor
IworIyAgICAgICAgaWYgKCRwcm9wX25hbWUgbmUgJ3Jlc3BvbnNlVGV4dCcpIHsgIyBhbGxvdyBY
TUxIdHRwUmVxdWVzdCByZXNwb25zZVRleHQKKyMgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVyIn0pIHsKKyMgICAg
ICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyMgICAgICAgICAgICB9CisjICAgICAgICB9CiAK
LSAgICAgICAgaWYgKCRwcm9wX25hbWUgbmUgJ3Jlc3BvbnNlVGV4dCcpIHsgIyBhbGxvdyBYTUxI
dHRwUmVxdWVzdCByZXNwb25zZVRleHQKLSAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSkgewotICAgICAgICAg
ICAgICAgIG5leHQgU0tJUEVOVU07Ci0gICAgICAgICAgICB9CisgICAgICAgICRpbXBsSW5jbHVk
ZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0
eWxlRGVjbGFyYXRpb24iOworCisgICAgICAgICMgc2tpcCBKYXZhU2NyaXB0Q2FsbEZyYW1lLnR5
cGUKKyAgICAgICAgaWYgKCgkcHJvcF9uYW1lIGVxICJ0eXBlIikgJiYgKCRpbnRlcmZhY2VOYW1l
IGVxICJKYXZhU2NyaXB0Q2FsbEZyYW1lIikpeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsK
ICAgICAgICAgfQogCi0gICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uLmgifSA9IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOwogICAgICAg
ICBpZiAoc2tpcFByb3BUZW1wb3JhcmlseSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKICAgICAgICAg
ICAgIG5leHQgU0tJUEVOVU07CiAgICAgICAgIH0KQEAgLTc1MiwxMCArNzc1LDEyIEBAIEVPRgog
ICAgICAgICBpZiAoJHByb3BfbmFtZSBlcSAnbG9jYXRpb24nICYmICRpbnRlcmZhY2VOYW1lIGVx
ICdEb2N1bWVudCcpIHsKICAgICAgICAgICAgIG5leHQgU0tJUEVOVU07CiAgICAgICAgIH0KLSAg
ICAgICAgaWYgKCR3cml0ZWFibGUgJiYgJGN1c3RvbSkgeworICAgICAgICAjaWYgKCR3cml0ZWFi
bGUgJiYgJGN1c3RvbSkgeworICAgICAgICBpZiAoJHdyaXRlYWJsZSkgewogICAgICAgICAgICAg
JGNvbnN0ID0gInJlYWQtb25seSAoZHVlIHRvIGN1c3RvbSBmdW5jdGlvbnMgbmVlZGVkIGluIGdk
b213ZWJraXQpIjsKICAgICAgICAgfQotICAgICAgICBpZiAoJHdyaXRlYWJsZSAmJiAhJGN1c3Rv
bSkgeworICAgICAgICAjIGlmICgkd3JpdGVhYmxlICYmICEkY3VzdG9tKSB7CisgICAgICAgIGlm
ICgkd3JpdGVhYmxlKSB7CiAgICAgICAgICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURX
UklURSI7CiAgICAgICAgICAgICAkY29uc3QgPSAicmVhZC13cml0ZSAiOwogICAgICAgICB9Cg==
</data>
<flag name="review"
          id="17173"
          type_id="1"
          status="-"
          setter="jmalonzo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33497</attachid>
            <date>2009-07-25 15:10:58 -0700</date>
            <delta_ts>2009-07-25 15:10:58 -0700</delta_ts>
            <desc>the monster (complete patch) updated to r46395, including reflected properties</desc>
            <filename>f</filename>
            <type>text/plain</type>
            <size>215510</size>
            <attacher name="Luke Kenneth Casson Leighton">lkcl</attacher>
            
              <data encoding="base64">SW5kZXg6IEdOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEdOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA0NjM5NSkKKysrIEdOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw3IEBACiAKICMgRGlyZWN0b3J5IGZvciBhdXRvZ2VuZXJhdGVkIHNvdXJjZXMKIEdFTlNPVVJD
RVMgOj0gJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCitHRU5TT1VSQ0VTR0RPTSA6PSAk
KHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvZ2RvbQogR0VOUFJPR1JBTVMgOj0gJCh0b3Bf
YnVpbGRkaXIpL1Byb2dyYW1zCiAKICMgU2NyaXB0IGZvciBjcmVhdGluZyBoYXNoIHRhYmxlcwpA
QCAtMTQxLDE0ICsxNDIsMTYgQEAKICMgQ29udmVuaWVuY2UgbGlicmFyaWVzCiBub2luc3RfTFRM
SUJSQVJJRVMgPSBcCiAJbGliSmF2YVNjcmlwdENvcmUubGEgXAotCWxpYldlYkNvcmUubGEKKwls
aWJXZWJDb3JlLmxhIFwKKwlsaWJnZG9tLmxhCiAKICMgSmF2YVNjcmlwdENvcmUKIGphdmFzY3Jp
cHRjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJk
aW5nSGVhZGVycyBcCiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvcGFyc2VyIFwKIAktSSQo
c3JjZGlyKS9KYXZhU2NyaXB0Q29yZS93dGYgXAotCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRT
b3VyY2VzCisJLUkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMgXAorCS1JJCh0b3BfYnVp
bGRkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ2RvbQogCiBub2Rpc3RfRVhUUkFfbGliSmF2YVNjcmlw
dENvcmVfbGFfU09VUkNFUyA9IFwKIAkkKGphdmFzY3JpcHRjb3JlX2J1aWx0X25vc291cmNlcykK
QEAgLTE4Myw2ICsxODYsMTAgQEAKIAkkKGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQogCiAjIFdl
YkNvcmUKK3dlYmNvcmVndGtfY3BwZmxhZ3MgKz0gXAorCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2
ZWRTb3VyY2VzL2dkb20gXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvZ2RvbQorCiBub2Rpc3Rf
RVhUUkFfbGliV2ViQ29yZV9sYV9TT1VSQ0VTID0gXAogCSQod2ViY29yZV9idWlsdF9ub3NvdXJj
ZXMpCiAKQEAgLTIwNCw2ICsyMTEsNTYgQEAKIGxpYldlYkNvcmVfbGFfQ1BQRkxBR1MgPSBcCiAJ
JChjb3Jla2l0X2NwcGZsYWdzKQogCisjIGxpYmdkb20KK2xpYmdkb21fYnVpbHRfc291cmNlcyA6
PQorbGliZ2RvbV9zb3VyY2VzIDo9CitsaWJnZG9tX2hfYXBpIDo9CitsaWJnZG9tX2NwcGZsYWdz
IDo9CitsaWJnZG9tX2xhZGlyID0gJChwcmVmaXgpL2luY2x1ZGUvd2Via2l0LTEuMC9nZG9tCits
aWJnZG9tX2xhX0hFQURFUlMgPSBcCisgICAgICAgICQobGliZ2RvbV9oX2FwaSkgXAorCQkkKHNy
Y2RpcikvV2ViS2l0L2d0ay9nZG9tL2dkb20uaCAKKworbGliZ2RvbV9jcHBmbGFncyArPSBcCisJ
JChnbG9iYWxfY3BwZmxhZ3MpIFwKKwktSSQoc3JjZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQodG9w
X2J1aWxkZGlyKS9XZWJLaXQvZ3RrIFwKKwktSSQodG9wX2J1aWxkZGlyKS9XZWJLaXQvZ2RvbSBc
CisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJp
dmVkU291cmNlcy9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcworCits
aWJnZG9tX2xhX1NPVVJDRVMgPSBcCisJJChsaWJnZG9tX3NvdXJjZXMpIAorCitub2Rpc3RfbGli
Z2RvbV9sYV9TT1VSQ0VTID0gXAorCSQobGliZ2RvbV9idWlsdF9zb3VyY2VzKSAKKworbGliZ2Rv
bV9sYV9DUFBGTEFHUyA9IFwKKwkkKGdsb2JhbF9jcHBmbGFncykgXAorCSQod2ViY29yZV9jcHBm
bGFncykgXAorCSQoR0xPQkFMREVQU19DRkxBR1MpIFwKKwkkKFdFQktJVERFUFNfQ0ZMQUdTKSBc
CisJJChFTkNIQU5UX0NGTEFHUykgXAorCSQoTElCU09VUF9DRkxBR1MpIFwKKwkkKGphdmFzY3Jp
cHRjb3JlX2NwcGZsYWdzKSBcCisJJChsaWJnZG9tX2NwcGZsYWdzKSAKKworbGliZ2RvbV9sYV9M
SUJBREQgPSBcCisJJChHTE9CQUxERVBTX0xJQlMpIFwKKwkkKFdFQktJVERFUFNfTElCUykgXAor
CSQoWFRfTElCUykgXAorCSQoTElCQ1VSTF9MSUJTKSBcCisJJChMSUJTT1VQX0xJQlMpIFwKKwkk
KEZSRUVUWVBFX0xJQlMpIFwKKwkkKFVOSUNPREVfTElCUykgXAorCSQoU1FMSVRFM19MSUJTKSBc
CisJJChHU1RSRUFNRVJfTElCUykgXAorCSQoTElCWFNMVF9MSUJTKSBcCisJJChISUxET05fTElC
UykgXAorCSQoSlBFR19MSUJTKSBcCisJLWxwdGhyZWFkCisKICMgV2ViS2l0CiBub2Rpc3RfbGli
d2Via2l0XzFfMF9sYV9TT1VSQ0VTID0gXAogCSQod2Via2l0Z3RrX2J1aWx0X3NvdXJjZXMpCkBA
IC0yMTEsOCArMjY4LDE1IEBACiBsaWJ3ZWJraXRfMV8wX2xhZGlyID0gJChwcmVmaXgpL2luY2x1
ZGUvd2Via2l0LTEuMC93ZWJraXQKIGxpYndlYmtpdF8xXzBfbGFfSEVBREVSUyA9IFwKIAkkKHdl
YmtpdGd0a19oX2FwaSkgXAorCSQobGliZ2RvbV9oX2FwaSkgXAogCVdlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGVudW10eXBlcy5oCiAKKyMgY29tbWVudCB0aGVzZSBvdXQgZm9yIG5vdywgc2VlIHdo
YXQgaGFwcGVucworIwkkKGxpYmdkb21faF9hcGkpIAorIwlXZWJLaXQvZ3RrL3dlYmtpdC9nZG9t
LmggCisjV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisjV2ViS2l0L2d0ay93ZWJr
aXQvZ2RvbWRlZmluZXMuaAorCiBsaWJ3ZWJraXRfMV8wX2xhX1NPVVJDRVMgPSBcCiAJJCh3ZWJr
aXRndGtfc291cmNlcykKIApAQCAtMjM2LDYgKzMwMCw3IEBACiAKIGxpYndlYmtpdF8xXzBfbGFf
TElCQUREID0gXAogCS1scHRocmVhZCBcCisJbGliZ2RvbS5sYSBcCiAJbGliSmF2YVNjcmlwdENv
cmUubGEgXAogCWxpYldlYkNvcmUubGEgXAogCWxpYldlYkNvcmVKUy5sYSBcCkBAIC0zMTQsNiAr
Mzc5LDE3OCBAQAogCS1ER0NDX0lOU1RSVU1FTlRfUFJPR1JBTV9GTE9XX0FSQ1MKIGVuZGlmCiAK
KworV2ViS2l0L2d0ay9nZG9tL2dkb20uaDoKKyMgVE9ETzogYXV0by1nZW5lcmF0ZSB0aGlzIGZp
bGUKKworCitsaWJnZG9tX2hfYXBpICs9IFwKKwkkKHNyY2RpcikvV2ViS2l0L2d0ay9nZG9tL0dk
b21ET01PYmplY3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Eb2N1bWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUF0dHIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21C
YXJJbmZvLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzR3JhZGllbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DYW52YXNQYXR0ZXJuLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNEQVRB
U2VjdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNoYXJhY3RlckRhdGEuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DbGlwYm9hcmQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21Db21tZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ29uc29sZS5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNvdW50ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NDaGFyc2V0UnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ZvbnRGYWNl
UnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ltcG9ydFJ1bGUuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DU1NNZWRpYVJ1bGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21DU1NQYWdlUnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ByaW1pdGl2
ZVZhbHVlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZS5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNTU1J1bGVMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
Q1NTU3R5bGVEZWNsYXJhdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxl
UnVsZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlU2hlZXQuaFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21DU1NWYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNTU1ZhbHVlTGlzdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0Rl
Y2xhcmF0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURhdGFiYXNlLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURv
Y3VtZW50VHlwZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUFwcGxpY2F0aW9uQ2Fj
aGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01Db3JlRXhjZXB0aW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NSW1wbGVtZW50YXRpb24uaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21ET01QYXJzZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxl
Y3Rpb24uaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01XaW5kb3cuaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50
aXR5LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRW50aXR5UmVmZXJlbmNlLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRXZlbnRFeGNlcHRpb24uaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21FdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50TGlzdGVuZXIu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21GaWxlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tRmlsZUxpc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IaXN0b3J5LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEFuY2hvckVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MQXBwbGV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxBcmVhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNl
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmxvY2txdW90ZUVsZW1lbnQuaFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQm9keUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MQlJFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TEJ1dHRvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQ2FudmFzRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxDb2xsZWN0aW9uLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERpcmVjdG9yeUVsZW1lbnQuaFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MRGl2RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxETGlzdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRG9jdW1l
bnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxFbWJlZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TEZvbnRFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvcm1FbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1lRWxlbWVudC5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MSGVhZGluZ0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSFJFbGVt
ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEh0bWxFbGVtZW50LmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTElGcmFtZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTElucHV0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJc0luZGV4
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxMSUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MTGlua0VsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWFwRWxl
bWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXJxdWVlRWxlbWVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNZW51RWxlbWVudC5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxNZXRhRWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxNb2RFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9iamVjdEVs
ZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT0xpc3RFbGVtZW50LmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9wdEdyb3VwRWxlbWVudC5oXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTFBhcmFncmFwaEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUGFy
YW1FbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUXVvdGVFbGVtZW50LmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MU2VsZWN0RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxT
dHlsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNlbGxFbGVtZW50
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ29sRWxlbWVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MVGV4dEFyZWFFbGVtZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRpdGxl
RWxlbWVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxVTGlzdEVsZW1lbnQuaFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21JbWFnZURhdGEuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
S2V5Ym9hcmRFdmVudC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0aW9uLmhcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVkaWFMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tTWVzc2FnZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTWVzc2FnZVBv
cnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5LmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tTWltZVR5cGUuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21N
b3VzZUV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTXV0YXRpb25FdmVudC5oXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5oXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5hdmlnYXRvci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0
ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob2RlLmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUxp
c3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3RhdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU92ZXJmbG93RXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Q
bHVnaW5BcnJheS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVBsdWdpbi5oXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21S
YW5nZUV4Y2VwdGlvbi5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlLmhcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmVjdC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJH
QkNvbG9yLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU2NyZWVuLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1FMRXJyb3IuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxS
ZXN1bHRTZXQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXRSb3dMaXN0
LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uaFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TdG9yYWdlRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TdG9yYWdlLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXRMaXN0LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tVGV4dEV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dE1ldHJp
Y3MuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21UZXh0LmhcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tVHJlZVdhbGtlci5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVVJRXZlbnQu
aFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21WYWxpZGl0eVN0YXRlLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVdlYktpdFBvaW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2hlZWxFdmVudC5oXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmhcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhN
TFNlcmlhbGl6ZXIuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5o
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhjZXB0aW9uLmhcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tWFBhdGhFeHByZXNzaW9uLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tWFBhdGhOU1Jlc29sdmVyLmhcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhSZXN1
bHQuaFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YU0xUUHJvY2Vzc29yLmgKKwogd2Via2l0
Z3RrX2hfYXBpICs9IFwKIAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXQuaCBcCiAJV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oIFwKQEAgLTMzMiwxMiArNTY5LDE3IEBACiAJV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuaCBcCiAJV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5oCiAKKyMgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2RvbWRlZmlu
ZXMuaAorCiB3ZWJraXRndGtfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0ZW51bXR5cGVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0bWFyc2hhbC5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdG1hcnNoYWwuaCBcCiAJV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZW51bXR5cGVzLmgKIAorIwlEZXJpdmVkU291cmNlcy9nZG9tZW51bXR5cGVzLmNwcCAKKyMJ
V2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oCisKIHdlYmtpdGd0a19zb3VyY2VzICs9
IFwKIAlXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgXAogCVdl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggXApAQCAtMzY4LDYgKzYx
MCw3IEBACiAJV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwIFwK
IAlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgXAogCVdlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIFwKKwlXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJl
dmVudC5jcHAgXAogCVdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1cmVzLmNw
cAogCiB3ZWJraXRndGtfY3BwZmxhZ3MgKz0gXApAQCAtMzc3LDcgKzYyMCw5IEBACiAJLUkkKHNy
Y2RpcikvV2ViS2l0L2d0ayBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dCBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAotCS1JJCh0b3BfYnVpbGRkaXIp
L1dlYktpdC9ndGsvd2Via2l0CisJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ay93ZWJraXQg
XAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGtcCisJLUkkKHRvcF9idWlsZGRpcikvRGVy
aXZlZFNvdXJjZXMKIAogaWYgVVNFX0dOT01FS0VZUklORwogd2Via2l0Z3RrX2NwcGZsYWdzICs9
IFwKQEAgLTQwMSw2ICs2NDYsOSBAQAogCXN0YW1wLXdlYmtpdGVudW10eXBlcy5jcHAgXAogCXN0
YW1wLXdlYmtpdGVudW10eXBlcy5oCiAKKyMJc3RhbXAtZ2RvbWVudW10eXBlcy5jcHAgCisjCXN0
YW1wLWdkb21lbnVtdHlwZXMuaCAKKwogV0VCS0lUX01BUlNIQUwgPSAkKEdFTlNPVVJDRVMpL3dl
YmtpdG1hcnNoYWwKIFdFQktJVF9NQVJTSEFMX0xJU1QgPSAkKHRvcF9zcmNkaXIpL1dlYktpdC9n
dGsvd2Via2l0bWFyc2hhbC5saXN0CiAKQEAgLTQ2Niw2ICs3MTQsNTcgQEAKIAkmJiBjcCB4Z2Vu
LWd0YyAkQCBcCiAJJiYgcm0gLWYgeGdlbi1ndGMKIAorV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVu
dW10eXBlcy5oOiBzdGFtcC1nZG9tZW51bXR5cGVzLmgKKwlAdHJ1ZQorc3RhbXAtZ2RvbWVudW10
eXBlcy5oOiAkKGxpYmdkb21faF9hcGkpIEdOVW1ha2VmaWxlCisJKGNkICQoc3JjZGlyKSBcCisJ
JiYgZ2xpYi1ta2VudW1zIFwKKwkJCS0tZmhlYWQgIiNpZm5kZWYgR0RPTV9FTlVNX1RZUEVTX0hc
biIgXAorCQkJLS1maGVhZCAiI2RlZmluZSBHRE9NX0VOVU1fVFlQRVNfSFxuXG4iIFwKKwkJCS0t
ZmhlYWQgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuXG4iIFwKKwkJCS0tZmhlYWQgIkdfQkVH
SU5fREVDTFNcblxuIiBcCisJCQktLWZ0YWlsICJHX0VORF9ERUNMU1xuXG4iIFwKKwkJCS0tZnRh
aWwgIiNlbmRpZlxuIiBcCisJCQktLWZwcm9kICIjaW5jbHVkZSA8QGZpbGVuYW1lQD5cblxuIiBc
CisJCQktLWVwcm9kICIjZGVmaW5lIEdET01fVFlQRV9ARU5VTVNIT1JUQCBAZW51bV9uYW1lQF9n
ZXRfdHlwZSgpXG5cbiIgXAorCQkJLS1lcHJvZCAiV0VCS0lUX0FQSSBHVHlwZVxuQGVudW1fbmFt
ZUBfZ2V0X3R5cGUodm9pZCk7XG5cbiIgXAorCQkJJChsaWJnZG9tX2hfYXBpKSB8IFwKKwkJCXNl
ZCAncyxXZWJLaXQvZ3RrLywsJyB8IFwKKwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIHwgXAorCQlz
ZWQgJ3MsR0RPTV9UWVBFX0tJVCxHRE9NX1RZUEUsJyBcCisJCSkgPiB4Z2VuLWNndGggXAorCSYm
IChjbXAgLXMgeGdlbi1jZ3RoIFdlYktpdC9ndGsvd2Via2l0L2dkb21lbnVtdHlwZXMuaCB8fCBj
cCB4Z2VuLWNndGggV2ViS2l0L2d0ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oKSBcCisJJiYgcm0g
LWYgeGdlbi1jZ3RoIFwKKwkmJiBlY2hvIHRpbWVzdGFtcCA+ICQoQEYpCisKKyMgICAgICAgICAg
ICAgIC0tZmhlYWQgIiNpbmNsdWRlIDx3ZWJraXQvZ2RvbWRlZmluZXMuaD5cblxuIiAKKworRGVy
aXZlZFNvdXJjZXMvZ2RvbWVudW10eXBlcy5jcHA6ICQobGliZ2RvbV9oX2FwaSkgR05VbWFrZWZp
bGUKKwkoY2QgJChzcmNkaXIpIFwKKwkmJiBnbGliLW1rZW51bXMgXAorCQkJLS1maGVhZCAiI2lu
Y2x1ZGUgPGNvbmZpZy5oPlxuIiBcCisJCQktLWZoZWFkICIjaW5jbHVkZSA8Z2xpYi1vYmplY3Qu
aD5cbiIgXAorCQkJLS1maGVhZCAiI2luY2x1ZGUgXCIkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0
ay93ZWJraXQvZ2RvbWVudW10eXBlcy5oXCJcblxuIiBcCisJCQktLWZoZWFkICJleHRlcm4gXCJD
XCIge1xuXG4iIFwKKwkJCS0tZnByb2QgIlxuLyogZW51bWVyYXRpb25zIGZyb20gXCJAZmlsZW5h
bWVAXCIgKi8iIFwKKwkJCS0tdmhlYWQgInN0YXRpYyBjb25zdCBHQFR5cGVAVmFsdWUgX0BlbnVt
X25hbWVAX3ZhbHVlc1tdID0geyIgXAorCQkJLS12cHJvZCAiICAgIHsgQFZBTFVFTkFNRUAsIFwi
QFZBTFVFTkFNRUBcIiwgXCJAdmFsdWVuaWNrQFwiIH0sIiBcCisJCQktLXZ0YWlsICIgICAgeyAw
LCBOVUxMLCBOVUxMIH1cbn07XG5cbiIgXAorCQkJLS12dGFpbCAiR1R5cGUgQGVudW1fbmFtZUBf
Z2V0X3R5cGUodm9pZClcbntcbiIgXAorCQkJLS12dGFpbCAiICAgIHN0YXRpYyBHVHlwZSB0eXBl
ID0gMDtcblxuIiBcCisJCQktLXZ0YWlsICIgICAgaWYgKCF0eXBlKVxuIiBcCisJCQktLXZ0YWls
ICIgICAgICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMoXCJARW51bU5hbWVAXCIs
IF9AZW51bV9uYW1lQF92YWx1ZXMpO1xuXG4iIFwKKwkJCS0tdnRhaWwgIiAgICByZXR1cm4gdHlw
ZTtcbn1cblxuIiBcCisJCQktLWZ0YWlsICJ9XG4iIFwKKwkJJChsaWJnZG9tX2hfYXBpKSB8IFwK
KwkJc2VkICdzLHdlYl9raXQsZ2RvbSwnIFwKKwkJKSA+IHhnZW4tY2d0YyBcCisJJiYgY3AgeGdl
bi1jZ3RjICRAIFwKKwkmJiBybSAtZiB4Z2VuLWNndGMKKworIyBFTkQgV0VCS0lUIEdUSysKKyMK
KwogIyBGaWxlcyB0aGF0IHdpbGwgYmUgZGlzdHJpYnV0ZWQKIEVYVFJBX0RJU1QgPSBcCiAJJChz
cmNkaXIpL2d0ay1kb2MubWFrZSBcCkBAIC01MTAsNiArODA5LDggQEAKIAktSSQoc3JjZGlyKS9K
YXZhU2NyaXB0Q29yZS9Gb3J3YXJkaW5nSGVhZGVycyBcCiAJLUkkKHNyY2RpcikvV2ViS2l0L2d0
ayBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHRvcF9idWlsZGRpcikv
V2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKKwktSSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNl
cyBcCiAJJChnbG9iYWxfY2ZsYWdzKSBcCiAJJChHTElCX0NGTEFHUykgXAogCSQoR1RLX0NGTEFH
UykgXApAQCAtNTg1LDYgKzg4Niw4IEBACiBCVUlMVF9TT1VSQ0VTIDo9IFwKIAkkKGphdmFzY3Jp
cHRjb3JlX2J1aWx0X3NvdXJjZXMpIFwKIAkkKGphdmFzY3JpcHRjb3JlX2J1aWx0X25vc291cmNl
cykgXAorCSQobGliZ2RvbV9idWlsdF9zb3VyY2VzKSBcCisJJChsaWJnZG9tX2J1aWx0X25vc291
cmNlcykgXAogCSQod2ViY29yZV9idWlsdF9zb3VyY2VzKSBcCiAJJCh3ZWJjb3JlX2J1aWx0X25v
c291cmNlcykgXAogCSQod2Via2l0Z3RrX2J1aWx0X3NvdXJjZXMpIFwKSW5kZXg6IFdlYktpdC9n
dGsvV0VCS0lUT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcAkocmV2aXNpb24gNDYzOTUpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA3LCAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmln
aHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4K
ICAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgogICogQ29w
eXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3Rp
YW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KQEAgLTgsNiArOSw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgSmFuIEFsb256byA8am1hbG9uem9AZ21haWwuY29tPgogICogQ29weXJp
Z2h0IChDKSAyMDA5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSA8Z25zQGdub21lLm9yZz4KICAqCisg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKICAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtMzUsMjIgKzM3LDMzIEBACiAjaW5jbHVkZSAi
QW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJE
b2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJXaW5kb3cuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3RrLmgiCiAj
aW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
R2RvbURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkdkb21ET01XaW5kb3dQcml2YXRlLmgiCisjaW5j
bHVkZSAiR2RvbURvY3VtZW50LmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgIkdkb21FdmVudC5oIgorI2luY2x1ZGUgIkdkb21FdmVudExpc3RlbmVyLmgiCisj
aW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1
ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSAiR0ND
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRN
TERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJK
U0xvY2suaCIKICNpbmNsdWRlICJQcmludENvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgotI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTdWJzdGl0dXRl
RGF0YS5oIgorI2luY2x1ZGUgIlRleHREb2N1bWVudC5oIgogCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQVBJQ2FzdC5oPgogCkBAIC03NiwxMiArODksMjEgQEAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAorbmFtZXNwYWNlIFdlYktpdCB7CisgICAg
Z3BvaW50ZXIgdG9HRE9NKERPTVdpbmRvdyogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oRG9j
dW1lbnQqIGRvYyk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFhNTEh0dHBSZXF1ZXN0KiBvYmopOwor
fQorCitleHRlcm4gIkMiIHsKKwogZW51bSB7CiAgICAgQ0xFQVJFRCwKICAgICBMT0FEX0NPTU1J
VFRFRCwKICAgICBMT0FEX0RPTkUsCiAgICAgVElUTEVfQ0hBTkdFRCwKICAgICBIT1ZFUklOR19P
VkVSX0xJTkssCisgICAgQlJPV1NFUl9FVkVOVCwKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAt
MjExLDYgKzIzMywxNyBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAgICAg
ICBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKIAorICAgIHdlYmtpdF93ZWJfZnJhbWVf
c2lnbmFsc1tCUk9XU0VSX0VWRU5UXSA9IGdfc2lnbmFsX25ldygiYnJvd3Nlci1ldmVudCIsCisg
ICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChH
U2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OIHwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX0RFVEFJTEVEKSwKKyAgICAgICAgICAgIDAs
CisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIHdlYmtp
dF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFOLAorICAgICAgICAgICAgR19UWVBFX05PTkUs
IDIsCisgICAgICAgICAgICBHRE9NX1RZUEVfRVZFTlQsIEdfVFlQRV9CT09MRUFOKTsKKwogICAg
IC8qCiAgICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAqLwpA
QCAtMzYyLDYgKzM5NSwxMDkgQEAKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF94
bWxfaHR0cF9yZXF1ZXN0OgorICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJl
dHVybnMgYSBHZG9tIHdyYXBwZXIgYXJvdW5kIGFuIFhNTEh0dHBSZXF1ZXN0CisgKgorICogUmV0
dXJuIHZhbHVlOiBhIEdkb21YTUxIdHRwUmVxdWVzdAorICovCitHZG9tWE1MSHR0cFJlcXVlc3Qq
IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3htbF9odHRwX3JlcXVlc3QoV2ViS2l0V2ViRnJhbWUqIGZy
YW1lKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJh
bWUpLCBOVUxMKTsKKworICAgIC8vV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUt
PnByaXY7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJU
KGNvcmVGcmFtZSk7CisgICAgcmV0dXJuIEdET01fWE1MX0hUVFBfUkVRVUVTVChXZWJLaXQ6OnRv
R0RPTShYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkuZ2V0KCkp
KTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fd2luZG93OgorICogQGZy
YW1lOiBhICNXZWJLaXRXZWJGcmFtZQorICoKKyAqIHJldHVybnMgYSBHZG9tIHdyYXBwZXIgYXJv
dW5kIGEgRE9NV2luZG93CisgKgorICogUmV0dXJuIHZhbHVlOiBhIEdkb21ET01XaW5kb3cKKyAq
LworR2RvbURPTVdpbmRvdyogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX3dpbmRvdyhXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9GUkFNRShmcmFtZSksIE5VTEwpOworCisgICAgLy9XZWJLaXRXZWJGcmFtZVByaXZhdGUqIHBy
aXYgPSBmcmFtZS0+cHJpdjsKKworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsK
KyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKyAgICBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luID0g
Y29yZUZyYW1lLT5kb21XaW5kb3coKTsKKyAgICByZXR1cm4gR0RPTV9ET01fV0lORE9XKFdlYktp
dDo6dG9HRE9NKHdpbi5nZXQoKSkpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0
X2RvbV9kb2N1bWVudDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKKyAqCisgKiByZXR1
cm5zIGEgR2RvbSB3cmFwcGVyIGFyb3VuZCBhIERvY3VtZW50IAorICoKKyAqIFJldHVybiB2YWx1
ZTogYSBHZG9tRG9jdW1lbnQKKyAqLworR2RvbURvY3VtZW50KiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9kb21fZG9jdW1lbnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIC8vV2Vi
S2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7CisKKyAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJUKGNvcmVGcmFtZSk7CisgICAgcmV0dXJu
IEdET01fRE9DVU1FTlQoV2ViS2l0Ojp0b0dET00oY29yZUZyYW1lLT5kb2N1bWVudCgpKSk7Cit9
CisKKy8qKgorICogd2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJh
bWU6IGEgI1dlYktpdFdlYkZyYW1lCisgKgorICogYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0
aGUgZnJhbWUncyBkb2N1bWVudAorICoKKyAqIFJldHVybiB2YWx1ZTogdGhlIG5hbWUgb2YgQGZy
YW1lCisgKi8KK0dkb21FdmVudExpc3RlbmVyKgord2Via2l0X3dlYl9mcmFtZV9hZGRfZXZlbnRf
bGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGV2ZW50X3R5cGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiB1c2VDYXB0dXJlKQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBG
QUxTRSk7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgQVNTRVJU
KGNvcmVGcmFtZSk7CisKKyAgICByZXR1cm4gd2Via2l0X2FkZF93aW5kb3dfZXZlbnRfbGlzdGVu
ZXIoZnJhbWUsIGNvcmVGcmFtZSwgZXZlbnRfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdXNlQ2FwdHVyZSk7Cit9CisKKy8qKgorICogd2Via2l0X3dl
Yl9mcmFtZV9yZW1vdmVfZXZlbnRfbGlzdGVuZXI6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZy
YW1lCisgKgorICogYWRkcyBhbiBldmVudCBsaXN0ZW5lciB0byB0aGUgZnJhbWUncyBkb2N1bWVu
dAorICoKKyAqIFJldHVybiB2YWx1ZTogdGhlIG5hbWUgb2YgQGZyYW1lCisgKi8KK3ZvaWQKK3dl
YmtpdF93ZWJfZnJhbWVfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBmcmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdkb21FdmVu
dExpc3RlbmVyKiBnbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyKiBldmVudF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpKTsKKworICAgIEZyYW1lKiBjb3JlRnJh
bWUgPSBjb3JlKGZyYW1lKTsKKyAgICBBU1NFUlQoY29yZUZyYW1lKTsKKworICAgIHdlYmtpdF9y
ZW1vdmVfd2luZG93X2V2ZW50X2xpc3RlbmVyKGNvcmVGcmFtZSwgZ2wsIGV2ZW50X3R5cGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUNhcHR1cmUp
OworfQorCisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWU6CiAgKiBAZnJhbWU6IGEg
I1dlYktpdFdlYkZyYW1lCiAgKgpAQCAtODU1LDMgKzk5MSw1IEBACiAKIH0KIAorfSAvKiBleHRl
cm4gIkMiICovCisKSW5kZXg6IFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvRXZlbnRMaXN0ZW5lck5vZGUuaAkocmV2
aXNpb24gMCkKKysrIFdlYktpdC9ndGsvd2Via2l0L0V2ZW50TGlzdGVuZXJOb2RlLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBL
ZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAor
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworCisjaWZuZGVmIEV2ZW50TGlz
dGVuZXJOb2RlX2gKKyNkZWZpbmUgRXZlbnRMaXN0ZW5lck5vZGVfaAorCisjaW5jbHVkZSA8Z2xp
Yi5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CisKKyNpbmNsdWRlICJnZG9t
L0dkb21Ob2RlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tRXZlbnRMaXN0ZW5lci5oIgorCitleHRl
cm4gIkMiIHsKK1dFQktJVF9BUEkKK0dkb21FdmVudExpc3RlbmVyKgord2Via2l0X2FkZF9ub2Rl
X2V2ZW50X2xpc3RlbmVyKEdkb21Ob2RlICp3ZiwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiB1c2VDYXB0dXJlKTsKK1dFQktJVF9BUEkKK3Zv
aWQgd2Via2l0X3JlbW92ZV9ub2RlX2V2ZW50X2xpc3RlbmVyKEdkb21Ob2RlICp3ZiwgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZG9tRXZlbnRMaXN0ZW5lciAqZ2wsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSk7Cit9
CisKKyNlbmRpZiAvKkV2ZW50TGlzdGVuZXJOb2RlX2gqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJr
aXQvRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0
ay93ZWJraXQvRXZlbnRMaXN0ZW5lclhNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDApCisrKyBX
ZWJLaXQvZ3RrL3dlYmtpdC9FdmVudExpc3RlbmVyWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5l
dGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpZm5kZWYgRXZlbnRMaXN0ZW5l
clhtbEh0dHBSZXF1ZXN0X2gKKyNkZWZpbmUgRXZlbnRMaXN0ZW5lclhtbEh0dHBSZXF1ZXN0X2gK
KworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgor
CisKKyNpbmNsdWRlICJnZG9tL0dkb21YTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUV2ZW50TGlzdGVuZXIuaCIKKworZXh0ZXJuICJDIiB7CitXRUJLSVRfQVBJCitHZG9tRXZl
bnRMaXN0ZW5lciAqCit3ZWJraXRfYWRkX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIo
R2RvbVhNTEh0dHBSZXF1ZXN0ICp3ZiwKKyAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUp
Owordm9pZCB3ZWJraXRfcmVtb3ZlX3htbF9odHRwX3JlcXVlc3RfZXZlbnRfbGlzdGVuZXIoR2Rv
bVhNTEh0dHBSZXF1ZXN0ICp3ZiwKKyAgICAgICAgICAgICAgICBHZG9tRXZlbnRMaXN0ZW5lciAq
Z2wsCisgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKK30KKworI2VuZGlmIC8qRXZl
bnRMaXN0ZW5lclhtbEh0dHBSZXF1ZXN0X2gqLwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJm
cmFtZS5oCShyZXZpc2lvbiA0NjM5NSkKKysrIFdlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcg
QWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtl
bm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0yOCw2ICsyOSwxMCBAQAogCiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4K
ICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21Eb2N1bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVdpbmRvdy5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRM
aXN0ZW5lci5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTkxLDYgKzk2LDE1IEBACiB3ZWJraXRf
d2ViX2ZyYW1lX25ldyAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92
aWV3KTsKICNlbmRpZgogCitXRUJLSVRfQVBJIEdkb21YTUxIdHRwUmVxdWVzdCAqCit3ZWJraXRf
d2ViX2ZyYW1lX2dldF94bWxfaHR0cF9yZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAg
ICAqZnJhbWUpOworCitXRUJLSVRfQVBJIEdkb21ET01XaW5kb3cgKgord2Via2l0X3dlYl9mcmFt
ZV9nZXRfZG9tX3dpbmRvdyAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKKwor
V0VCS0lUX0FQSSBHZG9tRG9jdW1lbnQgKgord2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3Vt
ZW50ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOworCiBXRUJLSVRfQVBJIFdl
YktpdFdlYlZpZXcgKgogd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcgICAgICAgKFdlYktp
dFdlYkZyYW1lICAgICAgICpmcmFtZSk7CiAKQEAgLTE0MCw2ICsxNTQsMTcgQEAKIFdFQktJVF9B
UEkgSlNHbG9iYWxDb250ZXh0UmVmCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4
dCAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKIAorV0VCS0lUX0FQSSBHZG9tRXZlbnRM
aXN0ZW5lciAqCit3ZWJraXRfd2ViX2ZyYW1lX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRXZWJG
cmFtZSogZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Z2NoYXIgICAgICAgICAgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2Jvb2xlYW4gICAgICAgICAgICAgIHVzZUNhcHR1cmUpOworCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF93ZWJfZnJhbWVfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyKFdlYktpdFdlYkZyYW1lKiBm
cmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZG9tRXZlbnRMaXN0
ZW5lciAqZ2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIgICAgICAgICAgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2Jvb2xlYW4gICAgICAgICAgICAgIHVzZUNhcHR1cmUpOworCiBXRUJLSVRfQVBJIEd0a1ByaW50
T3BlcmF0aW9uUmVzdWx0CiB3ZWJraXRfd2ViX2ZyYW1lX3ByaW50X2Z1bGwgICAgICAgICAoV2Vi
S2l0V2ViRnJhbWUgICAgICAgKmZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEd0a1ByaW50T3BlcmF0aW9uICAgICpvcGVyYXRpb24sCkluZGV4OiBXZWJLaXQvZ3Rr
L3dlYmtpdC9FdmVudExpc3RlbmVyV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93
ZWJraXQvRXZlbnRMaXN0ZW5lcldpbmRvdy5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0L2d0ay93
ZWJraXQvRXZlbnRMaXN0ZW5lcldpbmRvdy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKworI2lmbmRlZiBFdmVudExpc3RlbmVyV2luZG93X2gKKyNkZWZpbmUg
RXZlbnRMaXN0ZW5lcldpbmRvd19oCisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d2Vi
a2l0L3dlYmtpdGRlZmluZXMuaD4KKworI2luY2x1ZGUgIkdkb21FdmVudExpc3RlbmVyLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKworCitleHRlcm4gIkMiIHsKK0dkb21FdmVudExpc3RlbmVyKgor
d2Via2l0X2FkZF93aW5kb3dfZXZlbnRfbGlzdGVuZXIoV2ViS2l0V2ViRnJhbWUgKndmLCBXZWJD
b3JlOjpGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29s
ZWFuIHVzZUNhcHR1cmUpOwordm9pZCB3ZWJraXRfcmVtb3ZlX3dpbmRvd19ldmVudF9saXN0ZW5l
cihXZWJDb3JlOjpGcmFtZSAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdkb21FdmVudExpc3RlbmVyICpnbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSk7Cit9CisKKyNlbmRpZiAvKkV2ZW50TGlzdGVuZXJXaW5k
b3dfaCovCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJldmVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCShyZXZpc2lvbiAw
KQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZXZlbnQuY3BwCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDI1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQ
ZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24g
TGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
IkNTdHJpbmcuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1l
bnQuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXJYTUxIdHRwUmVxdWVzdC5oIgorI2luY2x1ZGUgIkV2
ZW50TGlzdGVuZXJXaW5kb3cuaCIKKyNpbmNsdWRlICJFdmVudExpc3RlbmVyTm9kZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgIkdkb21FdmVudC5o
IgorI2luY2x1ZGUgIkdkb21ET01PYmplY3QuaCIKKyNpbmNsdWRlICJHZG9tRXZlbnRMaXN0ZW5l
ci5oIgorI2luY2x1ZGUgIkdkb21FdmVudExpc3RlbmVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdk
b21Ob2RlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21YTUxIdHRwUmVxdWVzdFByaXZhdGUuaCIK
KyNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJOb2RlLmgiCisjaW5jbHVkZSAiU3RyaW5nSW1wbC5oIgorI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKKworCisKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIGdwb2ludGVyIHRvR0RPTShFdmVu
dCogZG9jKTsKKyAgICBncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSk7CisgICAgZ3BvaW50ZXIg
dG9HRE9NKEV2ZW50TGlzdGVuZXIqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShYTUxIdHRw
UmVxdWVzdCogbm9kZSk7Cit9CisKKworY2xhc3MgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVy
IDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKEdkb21YTUxIdHRwUmVxdWVzdCog
d2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5l
cih3ZikpOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KEV2ZW50KiwgYm9vbCB1c2VD
YXB0dXJlKTsKKworICAgIHZvaWQgc2V0X3R5cGUoY29uc3QgY2hhciAqZXZ0eXBlKSB7IG1fdHlw
ZSA9IGdfc3RyZHVwKGV2dHlwZSk7IH0KKyAgICBwcml2YXRlOgorICAgIGNoYXIgKm1fdHlwZTsK
KyAgICBYTUxIdHRwUmVxdWVzdEV2ZW50TGlzdGVuZXIoR2RvbVhNTEh0dHBSZXF1ZXN0KiB3ZikK
KyAgICAgICAgICAgOiBtX3R5cGUoTlVMTCkKKyAgICAgICAgICAgLCBtX3dmKHdmKQorICAgIHt9
CisgICAgflhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcigpCisgICAgeworICAgICAgICBpZiAo
bV90eXBlKQorICAgICAgICAgICAgZ19mcmVlKG1fdHlwZSk7CisgICAgfQorICAgIEdkb21YTUxI
dHRwUmVxdWVzdCogbV93ZjsKK307CisKK3ZvaWQgWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVy
OjpoYW5kbGVFdmVudChFdmVudCogZXZlbnQsIGJvb2wgdXNlQ2FwdHVyZSkKK3sKKyAgICBnYm9v
bGVhbiByZXR2YWw7CisgICAgY2hhciAqZXZuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCJicm93c2Vy
LWV2ZW50OjolcyIsIG1fdHlwZSk7CisgICAgR2RvbUV2ZW50ICp3ZXYgPSBHRE9NX0VWRU5UKFdl
YktpdDo6dG9HRE9NKGV2ZW50KSk7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2YsIGV2
bmFtZSwgd2V2LCB1c2VDYXB0dXJlLCAmcmV0dmFsKTsKKyAgICBnX2ZyZWUoZXZuYW1lKTsKK30K
KworY2xhc3MgTm9kZUV2ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Tm9kZUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShHZG9t
Tm9kZSogd2YpCisgICAgeyByZXR1cm4gYWRvcHRSZWYobmV3IE5vZGVFdmVudExpc3RlbmVyKHdm
KSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoRXZlbnQqLCBib29sIHVzZUNhcHR1
cmUpOworCisgICAgdm9pZCBzZXRfdHlwZShjb25zdCBjaGFyICpldnR5cGUpIHsgbV90eXBlID0g
Z19zdHJkdXAoZXZ0eXBlKTsgfQorcHJpdmF0ZToKKyAgICBjaGFyICptX3R5cGU7CisgICAgTm9k
ZUV2ZW50TGlzdGVuZXIoR2RvbU5vZGUqIHdmKQorICAgICAgICAgICAgOiBtX3R5cGUoTlVMTCkK
KyAgICAgICAgICAgICwgbV93Zih3ZikKKyAgICB7fQorICAgIH5Ob2RlRXZlbnRMaXN0ZW5lcigp
CisgICAgeworICAgICAgICBpZiAobV90eXBlKQorICAgICAgICAgICAgZ19mcmVlKG1fdHlwZSk7
CisgICAgfQorICAgIEdkb21Ob2RlKiBtX3dmOworfTsKKwordm9pZCBOb2RlRXZlbnRMaXN0ZW5l
cjo6aGFuZGxlRXZlbnQoRXZlbnQqIGV2ZW50LCBib29sIHVzZUNhcHR1cmUpCit7CisgICAgZ2Jv
b2xlYW4gcmV0dmFsOworICAgIGNoYXIgKmV2bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiYnJvd3Nl
ci1ldmVudDo6JXMiLCBtX3R5cGUpOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChX
ZWJLaXQ6OnRvR0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBl
dm5hbWUsIHdldiwgdXNlQ2FwdHVyZSwgJnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9
CisKK2NsYXNzIFdpbmRvd0V2ZW50TGlzdGVuZXIgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2luZG93RXZlbnRMaXN0ZW5lcj4gY3JlYXRl
KFdlYktpdFdlYkZyYW1lKiB3ZikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
V2luZG93RXZlbnRMaXN0ZW5lcih3ZikpOyAKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUV2ZW50KEV2ZW50KiwgYm9vbCBpc1dpbmRvd0V2ZW50KTsKKyAgICB2b2lkIHNldF90eXBlKGNv
bnN0IGNoYXIgKmV2dHlwZSkgeyBtX3R5cGUgPSBnX3N0cmR1cChldnR5cGUpOyB9Citwcml2YXRl
OgorICAgIGNoYXIgKm1fdHlwZTsKKyAgICBXaW5kb3dFdmVudExpc3RlbmVyKFdlYktpdFdlYkZy
YW1lKiB3ZikKKyAgICAgICAgICAgOiBtX3R5cGUoTlVMTCkKKyAgICAgICAgICAgLCBtX3dmKHdm
KQorICAgIHt9CisgICAgfldpbmRvd0V2ZW50TGlzdGVuZXIoKQorICAgIHsKKyAgICAgICAgaWYg
KG1fdHlwZSkKKyAgICAgICAgICAgIGdfZnJlZShtX3R5cGUpOworICAgIH0KKyAgICBXZWJLaXRX
ZWJGcmFtZSogbV93ZjsKK307CisKK3ZvaWQgV2luZG93RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZl
bnQoRXZlbnQqIGV2ZW50LCBib29sIGlzV2luZG93RXZlbnQpCit7CisgICAgY2hhciAqZXZuYW1l
ID0gZ19zdHJkdXBfcHJpbnRmKCJicm93c2VyLWV2ZW50OjolcyIsIG1fdHlwZSk7CisgICAgZ2Jv
b2xlYW4gcmV0dmFsOworICAgIEdkb21FdmVudCAqd2V2ID0gR0RPTV9FVkVOVChXZWJLaXQ6OnRv
R0RPTShldmVudCkpOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dmLCBldm5hbWUsIHdl
diwgaXNXaW5kb3dFdmVudCwgJnJldHZhbCk7CisgICAgZ19mcmVlKGV2bmFtZSk7Cit9CisKK2V4
dGVybiAiQyIgeworCitHZG9tRXZlbnRMaXN0ZW5lcioKK3dlYmtpdF9hZGRfeG1sX2h0dHBfcmVx
dWVzdF9ldmVudF9saXN0ZW5lcihHZG9tWE1MSHR0cFJlcXVlc3QgKndmLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3QgKnJlcSA9IFdlYktpdDo6Y29yZSh3Zik7CisgICAgaWYgKCFuYW1lKQorICAgICAg
ICByZXR1cm4gTlVMTDsKKyAgICBpZiAoIXJlcSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAg
ICBpZiAoc3RyY21wKG5hbWUsICJvbnJlYWR5c3RhdGVjaGFuZ2UiKSA9PSAwKQorICAgIHsKKyAg
ICAgICAgUmVmUHRyPFhNTEh0dHBSZXF1ZXN0RXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXI7CisgICAg
ICAgIGxpc3RlbmVyID0gWE1MSHR0cFJlcXVlc3RFdmVudExpc3RlbmVyOjpjcmVhdGUod2YpOwor
ICAgICAgICBsaXN0ZW5lci0+c2V0X3R5cGUobmFtZSk7CisgICAgICAgIHJlcS0+c2V0T25yZWFk
eXN0YXRlY2hhbmdlKGxpc3RlbmVyKTsKKyAgICAgICAgRXZlbnRMaXN0ZW5lciAqIGVsID0gV1RG
OjpnZXRQdHIobGlzdGVuZXIpOworICAgICAgICByZXR1cm4gR0RPTV9FVkVOVF9MSVNURU5FUihX
ZWJLaXQ6OnRvR0RPTShlbCkpOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30gCisKK3ZvaWQg
d2Via2l0X3JlbW92ZV94bWxfaHR0cF9yZXF1ZXN0X2V2ZW50X2xpc3RlbmVyKEdkb21YTUxIdHRw
UmVxdWVzdCAqd2YsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RvbUV2ZW50TGlzdGVu
ZXIgKmdsLCBjb25zdCBjaGFyICpuYW1lKQoreworICAgIFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
ICpyZXEgPSBXZWJLaXQ6OmNvcmUod2YpOworICAgIFdlYkNvcmU6OkV2ZW50TGlzdGVuZXIgICps
aXN0ZW5lciA9IFdlYktpdDo6Y29yZShnbCk7CisgICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1
cm47CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghcmVxKQor
ICAgICAgICByZXR1cm47CisKKyAgICByZXEtPnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgbGlz
dGVuZXIsIEZBTFNFKTsKK30gCisKK0dkb21FdmVudExpc3RlbmVyKgord2Via2l0X2FkZF9ub2Rl
X2V2ZW50X2xpc3RlbmVyKEdkb21Ob2RlICpnbiwgY29uc3QgY2hhciAqbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiB1c2VDYXB0dXJlKQoreworICAgIFdlYkNvcmU6
Ok5vZGUgKm5vZGUgPSBXZWJLaXQ6OmNvcmUoZ24pOworICAgIGlmICghbm9kZSkKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisKKyAgICBub2RlID0gbm9kZS0+dG9Ob2RlKCk7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIFJlZlB0cjxOb2RlRXZlbnRMaXN0ZW5lcj4g
bGlzdGVuZXIgPSBOb2RlRXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKGduKTsKKyAgICBsaXN0ZW5lci0+
c2V0X3R5cGUobmFtZSk7CisgICAgbm9kZS0+YWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5l
ciwgdXNlQ2FwdHVyZSk7CisgICAgRXZlbnRMaXN0ZW5lciAqIGVsID0gV1RGOjpnZXRQdHIobGlz
dGVuZXIpOworICAgIHJldHVybiBHRE9NX0VWRU5UX0xJU1RFTkVSKFdlYktpdDo6dG9HRE9NKGVs
KSk7Cit9IAorCit2b2lkIHdlYmtpdF9yZW1vdmVfbm9kZV9ldmVudF9saXN0ZW5lcihHZG9tTm9k
ZSAqZ24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RvbUV2ZW50TGlzdGVuZXIgKmds
LCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu
IHVzZUNhcHR1cmUpCit7CisgICAgV2ViQ29yZTo6Tm9kZSAqbm9kZSA9IFdlYktpdDo6Y29yZShn
bik7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBub2RlID0gbm9kZS0+
dG9Ob2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJDb3Jl
OjpFdmVudExpc3RlbmVyICAqbGlzdGVuZXIgPSBXZWJLaXQ6OmNvcmUoZ2wpOworICAgIGlmICgh
bmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghbGlzdGVuZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIG5vZGUtPnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgbGlzdGVuZXIsIHVzZUNh
cHR1cmUpOworfSAKKworR2RvbUV2ZW50TGlzdGVuZXIqCit3ZWJraXRfYWRkX3dpbmRvd19ldmVu
dF9saXN0ZW5lcihXZWJLaXRXZWJGcmFtZSAqd2YsIEZyYW1lICpmcmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgZ2Jvb2xlYW4gdXNlQ2Fw
dHVyZSkKK3sKKyAgICBET01XaW5kb3cqIHdpbiA9IGZyYW1lLT5kb21XaW5kb3coKTsKKworICAg
IFJlZlB0cjxXaW5kb3dFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IFdpbmRvd0V2ZW50TGlzdGVu
ZXI6OmNyZWF0ZSh3Zik7CisgICAgbGlzdGVuZXItPnNldF90eXBlKG5hbWUpOworICAgIHdpbi0+
YWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7CisgICAgRXZlbnRM
aXN0ZW5lciAqIGVsID0gV1RGOjpnZXRQdHIobGlzdGVuZXIpOworICAgIHJldHVybiBHRE9NX0VW
RU5UX0xJU1RFTkVSKFdlYktpdDo6dG9HRE9NKGVsKSk7Cit9IAorCit2b2lkIHdlYmtpdF9yZW1v
dmVfd2luZG93X2V2ZW50X2xpc3RlbmVyKEZyYW1lICpmcmFtZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHZG9tRXZlbnRMaXN0ZW5lciAqZ2wsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBET01X
aW5kb3cqIHdpbiA9IGZyYW1lLT5kb21XaW5kb3coKTsKKworICAgIFdlYkNvcmU6OkV2ZW50TGlz
dGVuZXIgICpsaXN0ZW5lciA9IFdlYktpdDo6Y29yZShnbCk7CisgICAgaWYgKCFuYW1lKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
d2luLT5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsKK30g
CisKK30gLyogZXh0ZXJuIEMgKi8KSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9XZWJraXRET01PYmpl
Y3RJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9XZWJraXRET01P
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0LmgJKHJldmlzaW9u
IDApCisrKyBXZWJLaXQvZ3RrL2dkb20vR2RvbURPTU9iamVjdC5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNz
b24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGlu
IFNvdG8gPHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBU
b2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisK
KyNpZm5kZWYgR2RvbURPTU9iamVjdF9oCisjZGVmaW5lIEdkb21ET01PYmplY3RfaAorCisjaW5j
bHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgor
CitHX0JFR0lOX0RFQ0xTCisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0IEdkb21ET01P
YmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfR2RvbURPTU9iamVjdENsYXNzIEdkb21ET01PYmplY3RD
bGFzczsKKworI2RlZmluZSBHRE9NX1RZUEVfRE9NX09CSkVDVCAgICAgICAgICAgIChnZG9tX2Rv
bV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUKG9iaikgICAgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIEdET01fVFlQRV9ET01fT0JK
RUNULCBHZG9tRE9NT2JqZWN0KSkKKyNkZWZpbmUgR0RPTV9ET01fT0JKRUNUX0NMQVNTKGtsYXNz
KSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV9ET01fT0JK
RUNULCBHZG9tRE9NT2JqZWN0Q2xhc3MpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1Qob2Jq
KSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFX0RP
TV9PQkpFQ1QpKQorI2RlZmluZSBHRE9NX0lTX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QpKQorI2Rl
ZmluZSBHRE9NX0RPTV9PQkpFQ1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VU
X0NMQVNTKChvYmopLCAgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RDbGFzcykp
CisKK3R5cGVkZWYgc3RydWN0IF9HZG9tRE9NT2JqZWN0UHJpdmF0ZSBHZG9tRE9NT2JqZWN0UHJp
dmF0ZTsKKworc3RydWN0IF9HZG9tRE9NT2JqZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudF9pbnN0
YW5jZTsKKworICAgIEdkb21ET01PYmplY3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9H
ZG9tRE9NT2JqZWN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9Owor
CitXRUJLSVRfQVBJIEdUeXBlCitnZG9tX2RvbV9vYmplY3RfZ2V0X3R5cGUgKHZvaWQpOworCitH
X0VORF9ERUNMUworCisjZW5kaWYgLyogR2RvbURPTU9iamVjdF9oICovCisKSW5kZXg6IFdlYktp
dC9ndGsvZ2RvbS9XZWJraXRFdmVudFRhcmdldE5vZGVQcml2YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRl
eDogV2ViS2l0L2d0ay9nZG9tL1dlYmtpdEV2ZW50VGFyZ2V0Tm9kZUludGVybmFsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpJbmRleDogV2ViS2l0L2d0ay9nZG9tL0NvbnZlcnRUb0dDaGFyUHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9Db252ZXJ0VG9HQ2hhclByaXZhdGUuaAkocmV2aXNp
b24gMCkKKysrIFdlYktpdC9ndGsvZ2RvbS9Db252ZXJ0VG9HQ2hhclByaXZhdGUuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtl
bm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIENvbnZlcnRUb0dD
aGFyUHJpdmF0ZV9oCisjZGVmaW5lIENvbnZlcnRUb0dDaGFyUHJpdmF0ZV9oCisKKy8qCisgKiBh
ZGRlZCB1bmRlciBidWcgIzI3NDI0IC0gMTlqdWwyMDA5CisgKi8KKworI2luY2x1ZGUgIkF0b21p
Y1N0cmluZy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworaW5saW5lIGdjaGFyKiBjb252ZXJ0VG9HY2hhcihX
ZWJDb3JlOjpTdHJpbmcgY29uc3QmIHMpCit7CisgICAgcmV0dXJuIGdfc3RyZHVwKHMudXRmOCgp
LmRhdGEoKSk7Cit9CisKK2lubGluZSBnY2hhciogY29udmVydFRvR2NoYXIoV2ViQ29yZTo6S1VS
TCBjb25zdCYgcykKK3sKKyAgICByZXR1cm4gY29udmVydFRvR2NoYXIocy5zdHJpbmcoKSk7Cit9
CisKK2lubGluZSBnY2hhciogY29udmVydFRvR2NoYXIoY29uc3QgSlNDOjpVU3RyaW5nJiBzKQor
eworICAgIHJldHVybiBnX3N0cmR1cChzLlVURjhTdHJpbmcoKS5jX3N0cigpKTsKK30KKworaW5s
aW5lIGdjaGFyKiBjb252ZXJ0VG9HY2hhcihXZWJDb3JlOjpBdG9taWNTdHJpbmcgY29uc3QmIHMp
Cit7CisgICAgcmV0dXJuIGdfc3RyZHVwKHMuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Cit9CisK
KyNlbmRpZiAvKiBDb252ZXJ0VG9HQ2hhclByaXZhdGVfaCovCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBXZWJLaXQvZ3RrL2dkb20vQ29udmVydFRvR0NoYXJQcml2YXRlLmgKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRl
ZDogc3ZuOm1lcmdlaW5mbwoKSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9XZWJraXRFdmVudFRhcmdl
dE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vZ2RvbS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9nZG9tLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvZ3Rr
L2dkb20vZ2RvbS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2NCBAQAorI2luY2x1ZGUgPGdk
b20vR2RvbURPTU9iamVjdC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUF0dHIuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21CYXJJbmZvLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tQ2FudmFzR3JhZGllbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DYW52YXNQYXR0ZXJuLmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tQ2FudmFzUGl4ZWxBcnJheS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNEQVRBU2VjdGlvbi5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbUNoYXJhY3RlckRhdGEuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DbGlwYm9h
cmQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21Db21tZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
Q29uc29sZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNvdW50ZXIuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21DU1NDaGFyc2V0UnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU0ZvbnRGYWNlUnVs
ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU0ltcG9ydFJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21DU1NNZWRpYVJ1bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21DU1NQYWdlUnVsZS5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUNTU1ByaW1pdGl2ZVZhbHVlLmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tQ1NTUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1J1bGVMaXN0Lmg+CisjaW5jbHVk
ZSA8Z2RvbS9HZG9tQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNT
U1N0eWxlUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1N0eWxlU2hlZXQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21DU1NWYWx1ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ZhbHVlTGlz
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uLmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tQ1NTVmFyaWFibGVzUnVsZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURh
dGFiYXNlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5oPgorI2luY2x1
ZGUgPGdkb20vR2RvbURvY3VtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRG9jdW1lbnRUeXBl
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tRE9NQXBwbGljYXRpb25DYWNoZS5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbURPTUNvcmVFeGNlcHRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21ET01JbXBs
ZW1lbnRhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVBhcnNlci5oPgorI2luY2x1ZGUg
PGdkb20vR2RvbURPTVNlbGVjdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbURPTVdpbmRvdy5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FbnRp
dHkuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21FdmVudEV4Y2VwdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUV2ZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnRMaXN0ZW5lci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUZp
bGUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21GaWxlTGlzdC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUhpc3RvcnkuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxBcHBsZXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTEFyZWFFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50Lmg+
CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxCbG9ja3F1b3RlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxC
b2R5RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxCUkVsZW1lbnQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21IVE1MQnV0dG9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhU
TUxDYW52YXNFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTENvbGxlY3Rpb24uaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxEaXZFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTERMaXN0RWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxEb2N1bWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTEVtYmVkRWxlbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21IVE1MRm9udEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRm9y
bUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2Rv
bUhUTUxIZWFkRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIZWFkaW5nRWxlbWVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxIUkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MSHRtbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MSUZyYW1lRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21IVE1MSW5wdXRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTElz
SW5kZXhFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbUhUTUxMZWdlbmRFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTExJRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5o
PgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxNYXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tSFRNTE1hcnF1ZWVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1lbnVFbGVt
ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tSFRNTE1vZEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT2JqZWN0
RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
SFRNTE9wdGlvbkVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MT3B0aW9uc0NvbGxl
Y3Rpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21I
VE1MUHJlRWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaD4K
KyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20v
R2RvbUhUTUxTZWxlY3RFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFN0eWxlRWxl
bWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21IVE1MVGFibGVDb2xFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFRhYmxl
RWxlbWVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnQuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21IVE1MVGl0
bGVFbGVtZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tSFRNTFVMaXN0RWxlbWVudC5oPgorI2lu
Y2x1ZGUgPGdkb20vR2RvbUltYWdlRGF0YS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbUphdmFTY3Jp
cHRDYWxsRnJhbWUuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21LZXlib2FyZEV2ZW50Lmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tTG9jYXRpb24uaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NZWRpYUxpc3Qu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21NZXNzYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21NaW1lVHlwZUFycmF5Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTWltZVR5cGUuaD4KKyNpbmNs
dWRlIDxnZG9tL0dkb21Nb3VzZUV2ZW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTXV0YXRpb25F
dmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5hbWVkTm9kZU1hcC5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbU5hdmlnYXRvci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU5vZGVGaWx0ZXIuaD4KKyNp
bmNsdWRlIDxnZG9tL0dkb21Ob2RlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZUl0ZXJhdG9y
Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tTm9kZUxpc3QuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21O
b3RhdGlvbi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbU92ZXJmbG93RXZlbnQuaD4KKyNpbmNsdWRl
IDxnZG9tL0dkb21QbHVnaW5BcnJheS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVBsdWdpbi5oPgor
I2luY2x1ZGUgPGdkb20vR2RvbVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbVByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21SYW5nZUV4Y2VwdGlv
bi5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVJhbmdlLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tUmVj
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVJHQkNvbG9yLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9t
U2NyZWVuLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMRXJyb3IuaD4KKyNpbmNsdWRlIDxnZG9t
L0dkb21TUUxSZXN1bHRTZXQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TUUxSZXN1bHRTZXRSb3dM
aXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tU1FMVHJhbnNhY3Rpb24uaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21TdG9yYWdlRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21TdG9yYWdlLmg+Cisj
aW5jbHVkZSA8Z2RvbS9HZG9tU3R5bGVTaGVldC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVN0eWxl
U2hlZXRMaXN0Lmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tVGV4dEV2ZW50Lmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tVGV4dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVRleHRNZXRyaWNzLmg+CisjaW5j
bHVkZSA8Z2RvbS9HZG9tVHJlZVdhbGtlci5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVVJRXZlbnQu
aD4KKyNpbmNsdWRlIDxnZG9tL0dkb21WYWxpZGl0eVN0YXRlLmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21XZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZS5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVdlYktpdFRyYW5zaXRpb25FdmVu
dC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVdlYktpdFBvaW50Lmg+CisjaW5jbHVkZSA8Z2RvbS9H
ZG9tV2hlZWxFdmVudC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTEh0dHBSZXF1ZXN0RXhjZXB0
aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuaD4KKyNpbmNsdWRlIDxn
ZG9tL0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaD4KKyNpbmNsdWRlIDxnZG9tL0dk
b21YTUxIdHRwUmVxdWVzdFVwbG9hZC5oPgorI2luY2x1ZGUgPGdkb20vR2RvbVhNTFNlcmlhbGl6
ZXIuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oPgorI2luY2x1ZGUgPGdk
b20vR2RvbVhQYXRoRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhFeHByZXNz
aW9uLmg+CisjaW5jbHVkZSA8Z2RvbS9HZG9tWFBhdGhOU1Jlc29sdmVyLmg+CisjaW5jbHVkZSA8
Z2RvbS9HZG9tWFBhdGhSZXN1bHQuaD4KKyNpbmNsdWRlIDxnZG9tL0dkb21YU0xUUHJvY2Vzc29y
Lmg+CkluZGV4OiBXZWJLaXQvZ3RrL2dkb20vV2Via2l0RE9NT2JqZWN0UHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KSW5kZXg6IFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvZ2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oCShyZXZpc2lv
biAwKQorKysgV2ViS2l0L2d0ay9nZG9tL0dkb21ET01PYmplY3RQcml2YXRlLmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAw
OCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEdkb21ET01PYmplY3RQcml2YXRl
X2gKKyNkZWZpbmUgR2RvbURPTU9iamVjdFByaXZhdGVfaAorCisjaW5jbHVkZSAiZ2RvbS9HZG9t
RE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiZ2xpYi1vYmplY3QuaCIKKworc3RydWN0IF9HZG9tRE9N
T2JqZWN0UHJpdmF0ZSB7CisgICAgZ3BvaW50ZXIgY29yZU9iamVjdDsKK307CisKKyNkZWZpbmUg
R0RPTV9ET01fT0JKRUNUX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJ
VkFURSgob2JqKSwgR0RPTV9UWVBFX0RPTV9PQkpFQ1QsIEdkb21ET01PYmplY3RQcml2YXRlKSkK
KworI2VuZGlmCisKSW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NjM5NSkKKysrIFdlYktpdC9ndGsvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0zMTk4LDYgKzMxOTgsMTUgQEAKICAgICAgICAgd2lsbCBi
ZSB0aGUgZmlyc3QgY29uc3VtZXIuCiAgICAgICAgIChtYWluKToKIAorMjAwOC0xMS0zMCAgbGtj
bCAgPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDMw
CisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOiBhZGRlZCBicm93c2VyLWV2
ZW50LCBzdXBwb3J0IGZvciBYTUxIdHRwUmVxdWVzdCwgZ2V0dGluZyBET00gV2luZG93LCBET00g
RG9jdW1lbnQsIGFuZCBXaW5kb3cgZXZlbnQgbGlzdGVuZXIuCisgICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmZyYW1lLmg6CisKIDIwMDgtMTItMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dApAQCAtMzIwOSw2
ICszMjE4LDE0IEBACiAKICAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CiAKKzIw
MDgtMTEtMzAgIGxrY2wgIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNzQyOAorCisgICAgICAgICogd2Via2l0L2dkb20uaDogQWRkZWQuICBUaGlzIGZp
bGUgcHVsbHMgaW4gYWxsIG9mIHRoZSBnZG9tIGdsaWIgaGVhZGVycy4gIGl0J3MgdGhlcmUgZm9y
IHBlb3BsZSB3aG8gd2FudCB0byBiZSBsYXp5IGFuZCBub3QgaGF2ZSB0byAjaW5jbHVkZSAzMDAg
ZmlsZXMuCisKIDIwMDgtMTItMDEgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgpAQCAtMzIzOCw2ICszMjU1LDE0IEBACiAg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1cmVzLmNwcDoKICAgICAgICAgKF9X
ZWJLaXRXZWJXaW5kb3dGZWF0dXJlc1ByaXZhdGU6OndlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVz
X25ld19mcm9tX2NvcmVfZmVhdHVyZXMpOgogCisyMDA4LTExLTMwICBsa2NsICA8bGtjbEBsa2Ns
Lm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNh
dGlvbik6CisgICAgICAgICogd2Via2l0L3dlYmtpdGRlZmluZXMuaDoKKwogMjAwOC0xMS0yOSAg
Q2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwu
bGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdAkocmV2aXNp
b24gNDYzOTUpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdG1hcnNoYWwubGlzdAkod29ya2luZyBjb3B5
KQpAQCAtMTUsNSArMTUsNiBAQAogVk9JRDpPQkpFQ1QsT0JKRUNUCiBWT0lEOk9CSkVDVCxQT0lO
VEVSLFBPSU5URVIKIFZPSUQ6T0JKRUNULFNUUklORworVk9JRDpPQkpFQ1QsQk9PTEVBTgogVk9J
RDpTVFJJTkcKIFZPSUQ6U1RSSU5HLFNUUklORwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gNDYz
OTUpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE1NCwx
MSArMTU0LDcgQEAKIAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgdGl0bGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgcmVmZXJyZXI7Ci0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBM
QU5HVUFHRV9KQVZBU0NSSVBUCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBkb21haW47Ci0jZWxzZQotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRvbWFpbjsKLSNlbmRpZgogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIFVSTDsKIAogICAgICAgICAvLyBGSVhNRTogdGhlIERPTSBzcGVj
IHN0YXRlcyB0aGF0IHRoaXMgYXR0cmlidXRlIGNhbiAKQEAgLTE4Myw2ICsxNzksMTEgQEAKICNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIExvY2F0aW9uIGxvY2F0aW9uOwogI2Vu
ZGlmCisgICAgICAgIC8vIEZJWE1FOiBnb2JqZWN0IGJpbmRpbmdzIG5lZWQgc3VwcG9ydCBmb3Ig
Y2hhbmdpbmcgbG9jYXRpb24ncworICAgICAgICAvLyBwcm9wZXJ0aWVzLiAgc2VlICMyNzQzNCBm
b3IgZGV0YWlscyBvZiB0aGUgZGlzY3Vzc2lvbi4KKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9HT0JK
RUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUKQorICAgICAgICAgICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW0N1c3RvbV0gTG9jYXRpb24gbG9jYXRpb247CisjZW5kaWYKIAogICAgICAgICAvLyBJ
RSBleHRlbnNpb25zCiAKQEAgLTE5MiwxMCArMTkzLDExIEBACiAKICAgICAgICAgRWxlbWVudCAg
ICAgICAgICAgIGVsZW1lbnRGcm9tUG9pbnQoaW4gbG9uZyB4LCBpbiBsb25nIHkpOwogCisgICAg
ICAgIC8vIEhUTUwgNQorICAgICAgICBET01TZWxlY3Rpb24gICAgICAgZ2V0U2VsZWN0aW9uKCk7
CisKICAgICAgICAgLy8gTW96aWxsYSBleHRlbnNpb25zCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9K
QVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgICAgIERPTVNlbGVjdGlvbiAg
ICAgICBnZXRTZWxlY3Rpb24oKTsKLSNlbmRpZgorCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgY2hhcmFjdGVyU2V0OwogCiAg
ICAgICAgIC8vIFdlYktpdCBleHRlbnNpb25zCkluZGV4OiBXZWJDb3JlL2RvbS9SYW5nZUV4Y2Vw
dGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsCShy
ZXZpc2lvbiA0NjM5NSkKKysrIFdlYkNvcmUvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNyArMjcsOCBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBM
QU5HVUFHRV9KQVZBU0NSSVBUCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYg
TEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgXAorICAgICAoZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KSAmJiBMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0
cmluZygpOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDQ2
Mzk1KQorKysgV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw3ICszOCw4IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG1l
c3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pB
VkFTQ1JJUFQKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBcCisgICAgIChkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdV
QUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxl
IGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOwogI2VuZGlm
CkluZGV4OiBXZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2aXNpb24gNDYzOTUpCisrKyBXZWJDb3JlL2Rv
bS9LZXlib2FyZEV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsMTEgQEAKICNp
ZiAhZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCAhTEFOR1VBR0VfSkFWQVNDUklQVAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBrZXlDb2RlOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICBjaGFyQ29kZTsKKyNlbmRp
ZgogICAgICAgICAKKyNpZiAoIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgIUxBTkdV
QUdFX0pBVkFTQ1JJUFQpICYmIFwKKyAgICAgKCFkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpIHx8
ICFMQU5HVUFHRV9HT0JKRUNUKQorICAgICAgICAKICAgICAgICAgdm9pZCBpbml0S2V5Ym9hcmRF
dmVudChpbiBET01TdHJpbmcgdHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gYm9vbGVhbiBjYW5CdWJibGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IGJvb2xlYW4gY2FuY2VsYWJsZSwgCkluZGV4OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9u
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAkocmV2
aXNpb24gNDYzOTUpCisrKyBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNyArMzYsOCBAQAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBM
QU5HVUFHRV9KQVZBU0NSSVBUCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYg
TEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgXAorICAgICAoZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNU
KSAmJiBMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEg
Y29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmco
KTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5QYWNrYWdlR3RrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblBhY2thZ2VHdGsuY3Bw
CShyZXZpc2lvbiA0NjM5NSkKKysrIFdlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luUGFja2FnZUd0
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAog
ICovCiAKKyNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlBsdWdpblBhY2thZ2UuaCIKIApJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ2MzkzKQorKysgV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTE3MzE2LDYgKzE3MzE2LDE4IEBACiAgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OnRyeURIVE1MQ29weSk6IEFkZGVkIGNoZWNrIGZvciBjYW5Db3B5KCkgYmVm
b3JlIGNsZWFyaW5nIFBhc3RlQm9hcmQKICAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dHJ5REhU
TUxDdXQpOiBBZGRlZCBjaGVjayBmb3IgY2FuQ3V0KCkgYmVmb3JlIGNsZWFyaW5nIFBhc3RlQm9h
cmQKIAorMjAwOS0wNy0yMyAgTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2Ns
Lm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKQorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzYwMworCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzQzNCNjMyBzdWdnZXN0cyB0
aGF0IHRoZQorICAgICAgICBkb21haW4gcHJvcGVydHkgYmUgbWFkZSByZWFkLXdyaXRlIGFuZCB0
aGF0IGFjY2VzcyB0byBnZXRTZWxlY3Rpb24gYmUKKyAgICAgICAgbWFkZSB1bml2ZXJzYWwgdG8g
YWxsIGJpbmRpbmdzLCB0byBtYXRjaCB0aGUgSFRNTDUgc3BlY2lmaWNhdGlvbi4KKworICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5pZGw6IHVwZGF0ZWQgdG8gbWF0Y2ggSFRNTCBzcGVjIG9uIGRvbWFp
biBhbmQgZ2V0U2VsZWN0aW9uCisKIDIwMDktMDYtMTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KQEAgLTE3MzUz
LDYgKzE3MzY1LDE0IEBACiAgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYU0xTdHlsZVNoZWV0Ojpk
aWRBZGRDbGllbnQpOgogICAgICAgICAqIGxvYWRlci9DYWNoZWRYU0xTdHlsZVNoZWV0Lmg6CiAK
KzIwMDktMDctMTggIEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBBZGQgR09i
amVjdCBDb2RlIEdlbmVyYXRvcgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yR09iamVjdC5wbTogQWRkZWQgZ29iamVjdCBiaW5kaW5ncyBhdXRvLWdlbmVyYXRvci4K
KwogMjAwOS0wNi0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBObyBSZXZpZXcKQEAgLTE3MzYyLDYgKzE3MzgyLDIwIEBACiAgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgogICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpwYWludCk6CiAKKzIwMDktMDctMjMgIEx1a2Ug
S2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mjc0MzcKKworICAgICAgICBNYWtlIHdpZHRoIGFuZCBoZWlnaHQgYXR0
cmlidXRlcyBET01TdHJpbmcgZXhjZXB0IGZvcgorICAgICAgICBMQU5HVUFHRV9PQkpFQ1RJVkVf
QyBkdWUgdG8gQVBJIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5CisgICAgICAgIHJlYXNvbnMuICBI
VE1MNSBzcGVjaWZpY2F0aW9uIGhhcyBIVE1MQXBwbGV0RWxlbWVudCBhbmQKKyAgICAgICAgSFRN
TEVtYmVkRWxlbWVudCB3aWR0aCBhbmQgaGVpZ2h0IG5vdyBtYXJrZWQgYXMgYSBET01TdHJpbmcu
CisKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbDogd2lkdGggYW5kIGhlaWdo
dCBhdHRyaWJ1dGVzIG1hZGUgdG8gYmUgRE9NU3RyaW5nIGV4Y2VwdCBmb3IgTEFOR1VBR0VfT0JK
RUNUSVZFX0Mgd2hlcmUgdGhleSBhcmUga2VwdCBhcyBsb25nCisgICAgICAgICogaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmlkbDogd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG1hZGUgdG8gYmUg
RE9NU3RyaW5nIGV4Y2VwdCBmb3IgTEFOR1VBR0VfT0JKRUNUSVZFX0Mgd2hlcmUgdGhleSBhcmUg
a2VwdCBhcyBsb25nCisKIDIwMDktMDYtMTYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KQEAgLTE3Mzc1LDYgKzE3
NDA5LDE4IEBACiAgICAgICAgICAgaGFuZGxpbmcgaW4gV29ya2VyIGNvbnN0cnVjdG9yIGZvciBW
OCBiaW5kaW5ncy4KICAgICAgICAgKFdlYkNvcmU6OkNBTExCQUNLX0ZVTkNfREVDTCk6CiAKKzIw
MDgtMTEtMzAgIEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0MzYKKworICAgICAgICBHT2JqZWN0IGJp
bmRpbmdzIGFyZSBjLWJhc2VkOiB5b3UgY2Fubm90IGhhdmUgdHdvIGMgZnVuY3Rpb25zCisgICAg
ICAgIGdkb21fa2V5Ym9hcmRfZXZlbnRfaW5pdF9rZXlib2FyZF9ldmVudCwgc28gb25lIG9mIHRo
ZW0gaXMKKyAgICAgICAgZGlzYWJsZWQgKGFzIGl0IGlzIG9uIHRoZSBKUyBiaW5kaW5ncyBhcyB3
ZWxsLCBhbHJlYWR5KS4KKworICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50LmlkbDogYWRkZWQg
TEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKwogMjAwOS0wNi0xNiAgQnJlbnQgRnVsZ2hh
bSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0
YWNob3dpYWsuCkBAIC0xNzM4OSw2ICsxNzQzNSwxNCBAQAogICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6CiAgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0pOgogCisyMDA4LTExLTMwICBMdWtlIEtlbm5ldGggQ2Fz
c29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NDM1CisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaWRsOiBhZGRlZCBMQU5H
VUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorCiAyMDA5LTA2LTE2ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KQEAgLTE3NDExLDYgKzE3NDY1LDIyIEBACiAgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZU1hYzo6cGFpbnRNZWRpYU11dGVCdXR0b24pOiBHZXQgc3RhdGUgZnJvbSBidXR0b24gaW5zdGVh
ZCBvZiBNZWRpYVBsYXllci4KICAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWlu
dE1lZGlhUGxheUJ1dHRvbik6IERpdHRvLgogCisyMDA5LTA3LTIzICBMdWtlIEtlbm5ldGggQ2Fz
c29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NDM0CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NDM0I2M0IG5vdGVzIHRoYXQKKyAgICAgICAgY2hhbmdpbmcgbG9jYXRpb24gcmVxdWly
ZXMgY3VzdG9tIGNvZGUuICByZWFkIGFjY2VzcyB0bworICAgICAgICBsb2NhdGlvbiBpcyBob3dl
dmVyIGVzc2VudGlhbCwgc28gYWNjZXNzIHRvIHRoaXMgcHJvcGVydHkKKyAgICAgICAgaW4gZ29i
amVjdCBiaW5kaW5ncyBpcyBiZWluZyBtYWRlIHRlbXBvcmFyaWx5IHJlYWQtb25seSwKKyAgICAg
ICAgYW5kIHRoZSBwcm9wZXJ0aWVzIG9mIExvY2F0aW9uIGFyZSBtYWRlIHJlYWQtb25seSBhcyB3
ZWxsLAorICAgICAgICBmb3IgZ29iamVjdCBiaW5kaW5ncy4KKworICAgICAgICAqIGRvbS9Eb2N1
bWVudC5pZGw6IExBTkdVQUdFX0dPQkpFQ1QgcmVhZC1vbmx5IGFjY2VzcyB0byBsb2NhdGlvbgor
ICAgICAgICAqIHBhZ2UvTG9jYXRpb24uaWRsOiBMQU5HVUFHRV9HT0JKRUNUIHJlYWQtb25seSBh
Y2Nlc3MgdG8gYWxsIHByb3BlcnRpZXMKKwogMjAwOS0wNi0xNiAgSmlhbiBMaSAgPGppYW5saUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkBAIC0xNzQ1
OCw2ICsxNzUyOCwyMCBAQAogICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKICAg
ICAgICAgKFdlYkNvcmU6OkJpdFN0YWNrOjpwdXNoKToKIAorMjAwOS0wNy0yMyAgTHVrZSBLZW5u
ZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKQorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNzQzMworCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGw6
IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMgSURMCisgICAgICAgICogcGFnZS9ET01T
ZWxlY3Rpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAg
ICAqIHhtbC9YUGF0aEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lm
aWMgSURMCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbDogYWRkZWQg
TEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwgCisgICAgICAgICogZG9tL0RPTUNvcmVFeGNl
cHRpb24uaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmljIElETAorICAgICAgICAq
IGRvbS9FdmVudEV4Y2VwdGlvbi5pZGw6IGFkZGVkIExBTkdVQUdFX0dPQkpFQ1Qtc3BlY2lmaWMg
SURMCisgICAgICAgICogZG9tL1JhbmdlRXhjZXB0aW9uLmlkbDogYWRkZWQgTEFOR1VBR0VfR09C
SkVDVC1zcGVjaWZpYyBJREwKKwogMjAwOS0wNi0xNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFt
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpAQCAtMTc0NzIs
NiArMTc1NTYsMTQgQEAKICAgICAgICAgICBBZGQgYSBjaGVjayBmb3IgbnVsbCBjb250ZXh0IGJl
Zm9yZSBhdHRlbXB0aW5nIHRvCiAgICAgICAgICAgcmV0cmlldmUgdGhlIENhaXJvIHN1cmZhY2Uu
CiAKKzIwMDgtMTEtMzAgIEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5u
ZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0MzIKKworICAgICAgICAqIGh0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsOiBhZGRlZCBMQU5HVUFHRV9HT0JKRUNULXNwZWNpZmlj
IElETAorCiAyMDA5LTA2LTE2ICBQZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCkBAIC0xNzQ4Niw2ICsxNzU3OCwxNSBA
QAogICAgICAgICAoV2ViQ29yZTo6UkdCQTMyQnVmZmVyOjpjb3B5Qml0bWFwRGF0YSk6CiAgICAg
ICAgIChXZWJDb3JlOjpSR0JBMzJCdWZmZXI6Om9wZXJhdG9yPSk6CiAKKzIwMDgtMTEtMzAgIEx1
a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkKKworICAgICAgICBBZGQgR09iamVjdCBDb2RlIEdlbmVy
YXRvciBMaWJyYXJ5IDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI3NDMxCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0TGlicmFyeTEucG06IEFkZGVkIGdvYmplY3QgbGlicmFyeSwgYmVnaW5uaW5nIHRoZSBw
cm9jZXNzIG9mIHNwbGl0dGluZyBDb2RlR2VuZXJhdG9yR09iamVjdC5wbSBpbnRvIGFzIG1hbnkg
ZmlsZXMgYXMgaXQgdGFrZXMgdG8gZ2V0IENvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIHRocm91Z2gg
cmV2aWV3LgorCiAyMDA5LTA2LTE2ICBQaWVycmUgZCdIZXJiZW1vbnQgIDxwZGhlcmJlbW9udEBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBTdWxsaXZhbgpAQCAtMTc0OTYs
NiArMTc1OTcsMTYgQEAKIAogICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzUVQuY3NzOgogCisy
MDA4LTExLTMwICBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uICA8bGtjbEBsa2NsLm5ldD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0MjgKKworICAgICAgICAqIGJpbmRp
bmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHA6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2dk
b20vR2RvbURPTU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dkb21E
T01PYmplY3RQcml2YXRlLmg6IEFkZGVkLgorCiAyMDA5LTA2LTE2ICBKaWFuIExpICA8amlhbmxp
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoIGFuZCBEYXZp
ZCBMZXZpbi4KQEAgLTE3NTMxLDYgKzE3NjQyLDE4IEBACiAgICAgICAgICAgVGhpcyB0byBtYWtl
IGl0IG1vcmUgZ2VuZXJpYyBzbyB3b3JrZXIgc2NyaXB0IGxvYWRpbmcgY291bGQgdXNlIGl0Lgog
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg6IEFkZGVkLgogCisy
MDA4LTExLTMwICBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uICA8bGtjbEBsa2NsLm5ldD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5H
OiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0MjYKKworICAgICAgICAqIGJpbmRpbmdzL2dk
b20vR0RPTUJpbmRpbmcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvR0RPTSk6Cisg
ICAgICAgICogYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oOiBBZGRlZC4KKwogMjAwOS0wNi0x
NiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KQEAgLTE3NTQxLDYgKzE3NjY0LDI0IEBACiAgICAgICAgICogcGxh
dGZvcm0vd2luL1dDRGF0YU9iamVjdC5jcHA6CiAgICAgICAgIChXZWJDb3JlOjpXQ0RhdGFPYmpl
Y3Q6OlF1ZXJ5SW50ZXJmYWNlKToKIAorMjAwOC0xMS0zMCAgTHVrZSBLZW5uZXRoIENhc3NvbiBM
ZWlnaHRvbiAgPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlc2UgdHdvIGZpbGVzIGFyZSBjb3BpZWQgbmVhci12ZXJiYXRp
bSBmcm9tIHRoZSBhdXRvLWdlbmVyYXRlZAorICAgICAgICB2ZXJzaW9ucywgRGVyaXZlZFNvdXJj
ZXMvSlMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LltjcHAvaF0KKyAgICAgICAgVGhleSBk
byBleGFjdGx5IHRoZSBzYW1lIGVxdWl2YWxlbnQgam9iIGFzIHRoZSBKUyB2ZXJzaW9ucywKKyAg
ICAgICAgZXhjZXB0IHRoYXQgRXhlY1N0YXRlKiBoYXMgYmVlbiByZW1vdmVkICh3aGljaCBpcyBv
biB0aGUgVE9ETworICAgICAgICBsaXN0IHRvIGFkZCBiYWNrIGluKS4gIEFsc28gb24gdGhlIFRP
RE8gbGlzdCBpcyB0byBhZGQgYW4KKyAgICAgICAgYXV0by1nZW5lcmF0b3IgdGhhdCB3aWxsIGF1
dG8tZ2VuZXJhdGUgdGhlc2UgdHdvIGZpbGVzLCBqdXN0CisgICAgICAgIGFzIHRoZSBKUyB2ZXJz
aW9ucyBhcmUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NDI1CisKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dET01IVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmNwcDogQWRkZWQuICBDb3BpZWQgZnJvbSB0aGUgYXV0by1nZW5lcmF0ZWQgSlNI
VE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAKKyAgICAgICAgKiBiaW5kaW5ncy9nZG9tL0dE
T01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5Lmg6ICBBZGRlZC4gIENvcGllZCBmcm9tIHRoZSBh
dXRvLWdlbmVyYXRlZCBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAorCisKIDIwMDktMDYt
MTYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEd1c3Rhdm8gTm9yb25oYS4KQEAgLTE3NTUwLDYgKzE3NjkxLDEyIEBACiAgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAg
ICAod2Via2l0X2FjY2Vzc2libGVfY2xhc3NfaW5pdCk6CiAKKzIwMDktMDctMjMgIEx1a2UgS2Vu
bmV0aCBDYXNzb24gTGVpZ2h0b24gIDxsa2NsQGxrY2wubmV0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIChjb252ZXJ0VG9HY2hhcik6IGJ1ZyAjMjc0
MjQgLSBhZGRlZCBDb252ZXJ0VG9HQ2hhclByaXZhdGUuaCB0byBoZWxwIEdPYmplY3QgYmluZGlu
Z3MgY29udmVydCB2YXJpb3VzIHR5cGVzIHRvIGdvYmplY3QgZ2NoYXIqIAorCiAyMDA5LTA2LTE2
ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBH
dXN0YXZvIE5vcm9uaGEuCkBAIC0xNzU2Myw0ICsxNzcxMCwzMSBAQAogICAgICAgICAoR2V0QXRr
SW50ZXJmYWNlVHlwZUZyb21XQUlUeXBlKToKICAgICAgICAgKGdldEludGVyZmFjZU1hc2tGcm9t
T2JqZWN0KToKIAorMjAwOC0xMS0zMCAgTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiAgPGxr
Y2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERFRCBPUiBDSEFOR0VECisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbTogYWRkZWQgTEFOR1VBR0VfR09CSkVDVCwgZ2xpYiBET00gYmluZGlu
Z3MgZmlsZXMsIGluY2x1ZGluZyBtYXJraW5nIFNWRyBhcyAiVE9ETyIKKyAgICAgICAgKiBiaW5k
aW5ncy9nZG9tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmFkZFdyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6cmVtb3ZlV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVXcmFw
cGVycyk6CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyU2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OndyYXBwZXJDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpkb21PYmplY3RzKToKKyAgICAgICAg
KFdlYkNvcmU6OkdET01TY3JpcHRJbnRlcnByZXRlcjo6Z2V0RE9NT2JqZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZV9nZG9tX29iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OnB1dERPTU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2Ny
aXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OmdldERPTU5vZGVGb3JEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU5vZGVGb3JEb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OnB1dERPTU5vZGVGb3JEb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9NU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldEFs
bERPTU5vZGVzRm9yRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6R0RPTVNjcmlwdEludGVy
cHJldGVyOjptYXJrRE9NTm9kZXNGb3JEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHRE9N
U2NyaXB0SW50ZXJwcmV0ZXI6OnVwZGF0ZURPTU5vZGVEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVHRE9NSFRNTFdyYXBwZXIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmlk
bDogYWRkZWQgTEFOR1VBR0VfR09CSkVDVC1zcGVjaWZpYyBJREwKKwogPT0gUm9sbGVkIG92ZXIg
dG8gQ2hhbmdlTG9nLTIwMDktMDYtMTYgPT0KSW5kZXg6IFdlYkNvcmUvcGFnZS9Mb2NhdGlvbi5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0xvY2F0aW9uLmlkbAkocmV2aXNpb24gNDYz
OTUpCisrKyBXZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00MCwx
MyArNDAsMjcgQEAKICAgICAgICAgRGVsZWdhdGluZ1Byb3RvdHlwZVB1dEZ1bmN0aW9uLAogICAg
ICAgICBDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0ZXIKICAgICBdIExvY2F0aW9uIHsKKyNpZiBk
ZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdVQUdFX0dPQkpFQ1QKKyAgICAgICAgICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtEb05vdENoZWNrRG9tYWluU2VjdXJpdHlPblNldCwg
Q3VzdG9tU2V0dGVyLCBWOERpc2FsbG93U2hhZG93aW5nXSBET01TdHJpbmcgaHJlZjsKKyNlbHNl
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbRG9Ob3RDaGVja0RvbWFpblNlY3VyaXR5T25T
ZXQsIEN1c3RvbVNldHRlciwgVjhEaXNhbGxvd1NoYWRvd2luZ10gRE9NU3RyaW5nIGhyZWY7Cisj
ZW5kaWYKIAogICAgICAgICBbQ3VzdG9tLCBWOE9uSW5zdGFuY2VdIHZvaWQgYXNzaWduKGluIERP
TVN0cmluZyB1cmwpOwogICAgICAgICBbQ3VzdG9tLCBWOE9uSW5zdGFuY2VdIHZvaWQgcmVwbGFj
ZShpbiBET01TdHJpbmcgdXJsKTsKICAgICAgICAgW0N1c3RvbSwgVjhPbkluc3RhbmNlXSB2b2lk
IHJlbG9hZCgpOwogCiAgICAgICAgIC8vIFVSSSBkZWNvbXBvc2l0aW9uIGF0dHJpYnV0ZXMKKyNp
ZiBkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdVQUdFX0dPQkpFQ1QKKyAgICAgICAg
ICAgICAgICAgLy8gc2VlICMyNzQzNAorICAgICAgICAgICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW0N1c3RvbVNldHRlcl0gRE9NU3RyaW5nIHByb3RvY29sOworICAgICAgICAgICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbVNldHRlcl0gRE9NU3RyaW5nIGhvc3Q7CisgICAgICAg
ICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgaG9z
dG5hbWU7CisgICAgICAgICAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVy
XSBET01TdHJpbmcgcG9ydDsKKyAgICAgICAgICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
dXN0b21TZXR0ZXJdIERPTVN0cmluZyBwYXRobmFtZTsKKyAgICAgICAgICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERPTVN0cmluZyBzZWFyY2g7CisgICAgICAgICAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgaGFzaDsK
KyNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJp
bmcgcHJvdG9jb2w7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBE
T01TdHJpbmcgaG9zdDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJd
IERPTVN0cmluZyBob3N0bmFtZTsKQEAgLTU0LDYgKzY4LDcgQEAKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERPTVN0cmluZyBwYXRobmFtZTsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDdXN0b21TZXR0ZXJdIERPTVN0cmluZyBzZWFyY2g7CiAgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tU2V0dGVyXSBET01TdHJpbmcgaGFzaDsKKyNlbmRp
ZgogCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NS
SVBUCiAgICAgICAgIFtEb250RW51bSwgQ3VzdG9tLCBWOE9uSW5zdGFuY2UsIFY4UmVhZE9ubHld
IERPTVN0cmluZyB0b1N0cmluZygpOwpJbmRleDogV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJKHJldmlzaW9u
IDQ2Mzk1KQorKysgV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTU4LDcgKzU4LDggQEAKICAgICAgICAgdm9pZCByZW1vdmVBbGxSYW5nZXMoKTsKICAgICAg
ICAgdm9pZCBhZGRSYW5nZShpbiBSYW5nZSByYW5nZSk7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdF
X0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKKyNpZiAoZGVmaW5lZChMQU5HVUFH
RV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBcCisgICAgIChkZWZpbmVk
KExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51
bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYKIApJbmRleDogV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA0
NjM5NSkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTIsMTMg
KzIsMjggQEAKIFdlYkNvcmUgOj0gJChzcmNkaXIpL1dlYkNvcmUKIAogRkVBVFVSRV9ERUZJTkVT
X0pBVkFTQ1JJUFQgOj0gTEFOR1VBR0VfSkFWQVNDUklQVD0xCitGRUFUVVJFX0RFRklORVNfR0RP
TSA6PSBMQU5HVUFHRV9HT0JKRUNUPTEKIFNWR19GRUFUVVJFUyA6PQogSFRNTF9GRUFUVVJFUyA6
PQogCiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUyA6PSAkKFdlYkNvcmUpL2Nzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluCiBXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUyA6PSAkKFdlYkNvcmUpL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCiAKK2xpYmdkb21fY3BwZmxhZ3MgKz0gXAorCSQoQ0FJUk9f
Q0ZMQUdTKSBcCisJJChHVEtfQ0ZMQUdTKSBcCisJJChMSUJYTUxfQ0ZMQUdTKSBcCisJLUkkKHNy
Y2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cCBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cyBcCisJLUkkKHNyY2RpcikvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsgXAorCS1JJChz
cmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyBcCisJLUkkKHRvcF9idWls
ZGRpcikvRGVyaXZlZFNvdXJjZXMKKwogd2ViY29yZV9jcHBmbGFncyArPSBcCisJLUkkKHNyY2Rp
cikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydCBc
CisJLUkkKHNyY2RpcikvV2ViS2l0L2d0ay93ZWJraXQgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUg
XAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYWNjZXNzaWJpbGl0eSBcCiAJLUkkKHNyY2RpcikvV2Vi
Q29yZS9iaW5kaW5ncy9qcyBcCkBAIC0zMSw2ICs0Niw3IEBACiAJLUkkKHNyY2RpcikvV2ViQ29y
ZS9wbGF0Zm9ybS9hbmltYXRpb24gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycyBc
CisJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZG9tIFwKIAktSSQoc3JjZGlyKS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvYm1wIFwKQEAgLTgyLDcgKzk4LDMxMiBAQAogCURlcml2ZWRTb3VyY2Vz
L1hNTE5hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvWE1MTmFtZXMuaAogCi1JRExfQklORElO
R1MgKz0gXAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21BdHRyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQXR0ci5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21CYXJJbmZvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQmFySW5mby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DREFUQVNlY3Rpb24uY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DREFUQVNlY3Rpb24uaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tQ1NTQ2hhcnNldFJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21DU1NDaGFyc2V0UnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NGb250
RmFjZVJ1bGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NGb250RmFjZVJ1bGUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTSW1wb3J0UnVsZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNTU0ltcG9ydFJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ1NTTWVkaWFSdWxlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTTWVk
aWFSdWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1BhZ2VSdWxlLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUGFnZVJ1bGUuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21DU1NQcmltaXRpdmVWYWx1ZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NSdWxl
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTUnVsZS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21DU1NSdWxlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUNTU1J1bGVMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlRGVjbGFy
YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NTdHlsZURlY2xhcmF0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlUnVsZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1N0eWxlUnVsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21DU1NTdHlsZVNoZWV0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ1NTU3R5
bGVTaGVldC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYWx1ZS5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNTU1ZhbHVlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhbHVl
TGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNEZWNsYXJhdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNTU1ZhcmlhYmxlc1J1bGUuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21DU1NWYXJpYWJsZXNSdWxlLmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUNhbnZhc0dyYWRpZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tQ2FudmFzR3JhZGllbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGF0
dGVybi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNhbnZhc1BhdHRlcm4uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ2FudmFzUGl4ZWxBcnJheS5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUNhbnZhc1BpeGVsQXJyYXkuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUNoYXJhY3RlckRhdGEuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21DaGFyYWN0
ZXJEYXRhLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUNsaXBib2FyZC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUNsaXBib2FyZC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21Db21tZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ29tbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db25zb2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tQ29uc29sZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Db3VudGVyLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tQ291bnRlci5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21ET01Db3JlRXhjZXB0aW9uLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tRE9NQ29yZUV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01JbXBs
ZW1lbnRhdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTUltcGxlbWVudGF0
aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURPTVBhcnNlci5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbURPTVBhcnNlci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21ET01TZWxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01TZWxlY3Rp
b24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRE9NV2luZG93LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tRE9NV2luZG93LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bURvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1lbnRGcmFnbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbURvY3VtZW50RnJhZ21lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tRG9jdW1lbnRUeXBlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRG9jdW1l
bnRUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUVudGl0eS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUVudGl0eS5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21FbnRpdHlSZWZlcmVuY2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
RXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21FdmVudEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUV2ZW50RXhjZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUV2ZW50
TGlzdGVuZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21FdmVudExpc3RlbmVyLmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21GaWxlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUZpbGVMaXN0LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tRmlsZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTEFuY2hvckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MQW5jaG9yRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXBw
bGV0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcHBsZXRFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxBcmVhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MQlJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEJSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQmFzZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEJhc2VGb250RWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCYXNlRm9udEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxCb2R5RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxCb2R5RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MQnV0dG9uRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTENhbnZhc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTENvbGxlY3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MQ29sbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRExpc3RF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERMaXN0RWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXJlY3RvcnlFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxEaXZFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTERpdkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TERvY3VtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTERvY3VtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTEVtYmVkRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxFbWJl
ZEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZpZWxkU2V0RWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZvbnRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbUhUTUxGb3JtRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxGb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1lRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEZyYW1lU2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21IVE1MSFJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tSFRNTEhSRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZEVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxIdG1sRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxIdG1sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSUZy
YW1lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJRnJhbWVFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJbWFnZUVsZW1lbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IVE1MSW5wdXRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxJc0luZGV4RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxJc0lu
ZGV4RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTElFbGVtZW50LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTExJRWxlbWVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MTGFiZWxFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSFRNTExhYmVsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21I
VE1MTGVnZW5kRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMZWdl
bmRFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxMaW5rRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWFwRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbUhUTUxNYXBFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhU
TUxNYXJxdWVlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxNYXJx
dWVlRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVudUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MTWVudUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTE1ldGFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bUhUTUxNb2RFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1vZEVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPTGlzdEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRN
TE9wdEdyb3VwRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MT3B0aW9u
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQYXJhZ3JhcGhFbGVtZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbUhUTUxQYXJhbUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MUGFyYW1FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxQ
cmVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxRdW90ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTFNjcmlwdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MU2NyaXB0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
U2VsZWN0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTZWxlY3RF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTdHlsZUVsZW1lbnQuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MVGFibGVDZWxsRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
SFRNTFRhYmxlQ29sRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFi
bGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlRWxlbWVu
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTFRhYmxlUm93RWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbUhUTUxUaXRsZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1M
VGl0bGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxVTGlzdEVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhpc3RvcnkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21IaXN0b3J5LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUltYWdlRGF0YS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUltYWdlRGF0YS5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21LZXlib2FyZEV2ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tS2V5Ym9hcmRF
dmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Mb2NhdGlvbi5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbUxvY2F0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bU1lZGlhTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1lZGlhTGlzdC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZXNzYWdlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21NZXNzYWdlRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
TWVzc2FnZVBvcnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZXNzYWdlUG9ydC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbU1pbWVUeXBlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1pbWVU
eXBlQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NaW1lVHlwZUFycmF5Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU1vdXNlRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21Nb3VzZUV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU11
dGF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NdXRhdGlvbkV2ZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbU5hbWVkTm9kZU1hcC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21OYXZpZ2F0b3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21OYXZpZ2F0b3Iu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbU5vZGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUZpbHRlci5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVGaWx0ZXIuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tTm9kZUl0ZXJhdG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tTm9kZUl0ZXJhdG9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbU5vZGVMaXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tTm9kZUxpc3QuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tTm90YXRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Ob3Rh
dGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21PdmVyZmxvd0V2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tT3ZlcmZsb3dFdmVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21QbHVnaW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21QbHVnaW4u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUGx1Z2luQXJyYXkuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21QbHVnaW5BcnJheS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUHJvZ3Jl
c3NFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVByb2dyZXNzRXZlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tUmFuZ2UuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21SYW5nZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21SYW5nZUV4Y2VwdGlv
bi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJhbmdlRXhjZXB0aW9uLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVJlY3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21SZWN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVJHQkNvbG9yLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tUkdCQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU2NyZWVuLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU2NyZWVuLmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hlZXQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TdHlsZVNoZWV0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0eWxlU2hl
ZXRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3R5bGVTaGVldExpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVRleHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dEV2ZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4dEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVRleHRNZXRyaWNzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVGV4
dE1ldHJpY3MuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVHJlZVdhbGtlci5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRyZWVXYWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tVUlFdmVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVVJRXZlbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tVmFsaWRpdHlTdGF0ZS5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVZhbGlkaXR5U3RhdGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21XZWJLaXRBbmltYXRpb25FdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21XZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVdlYktpdFBv
aW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0UG9pbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVdoZWVsRXZlbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21X
aGVlbEV2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0LmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3QuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVhNTEh0dHBSZXF1ZXN0VXBsb2FkLmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVhNTFNlcmlhbGl6ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YTUxT
ZXJpYWxpemVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhTTFRQcm9jZXNzb3IuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YU0xUUHJvY2Vzc29yLmggXAorCVdlYkNvcmUv
YmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAgXAorCVdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIAorCitJRExf
QklORElOR1MgKz0gIFwKIAlXZWJDb3JlL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAogCVdlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXAogCVdlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUu
aWRsIFwKQEAgLTI2NCw2ICs1ODUsMTQgQEAKIAlXZWJDb3JlL3htbC9YTUxTZXJpYWxpemVyLmlk
bCBcCiAJV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwKIAorbGliZ2RvbV9zb3VyY2VzICs9
IFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuY3BwIFwKKwlXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dkb21E
T01PYmplY3QuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5oIFwK
KwlXZWJDb3JlL2JpbmRpbmdzL2dkb20vR2RvbURPTU9iamVjdFByaXZhdGUuaCAKKworCiB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvV2ViQ29yZVByZWZpeC5oIFwKICAgICAgICAgV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIFwKQEAgLTE5NDQsNiArMjI3Myw5
IEBACiAjIEZyZWV0eXBlIGZvbnQgYmFja2VuZAogIyAtLS0KIGlmIFVTRV9GUkVFVFlQRQorbGli
Z2RvbV9jcHBmbGFncyArPSBcCisJLURVU0VfRlJFRVRZUEU9MQorCiB3ZWJjb3JlZ3RrX2NwcGZs
YWdzICs9IFwKIAktRFVTRV9GUkVFVFlQRT0xCiAKQEAgLTE5NTgsNiArMjI5MCw4IEBACiAjIFBh
bmdvIGZvbnQgYmFja2VuZAogIyAtLS0KIGlmIFVTRV9QQU5HTworbGliZ2RvbV9jcHBmbGFncyAr
PSBcCisJLURVU0VfUEFOR089MQogd2ViY29yZWd0a19jcHBmbGFncyArPSBcCiAJLURVU0VfUEFO
R089MQogCkBAIC0xOTkyLDcgKzIzMjYsMTEgQEAKICMgLS0tLQogaWYgRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTEKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21ET01BcHBsaWNhdGlvbkNhY2hlLmNwcAorCiBJRExf
QklORElOR1MgKz0gXAogCVdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuaWRsCiAKQEAgLTIwMzMsNyArMjM3MSwyMCBAQAogIyAtLS0tCiBpZiBFTkFCTEVfREFUQUJB
U0UKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9EQVRBQkFTRT0xCitGRUFU
VVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfREFUQUJBU0U9MQogCitsaWJnZG9tX2J1aWx0X3Nv
dXJjZXMgKz0gXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbURhdGFiYXNlLmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tRGF0YWJhc2UuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1FMRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxFcnJvci5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TUUxSZXN1bHRTZXQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNRTFJl
c3VsdFNldFJvd0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1FMVHJhbnNhY3Rp
b24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TUUxUcmFuc2FjdGlvbi5oIAorCiBJ
RExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5pZGwgXAogCVdlYkNv
cmUvc3RvcmFnZS9TUUxFcnJvci5pZGwgXApAQCAtMjExMSw3ICsyNDYyLDE0IEBACiAjIC0tLS0K
IGlmIEVOQUJMRV9ET01fU1RPUkFHRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5B
QkxFX0RPTV9TVE9SQUdFPTEKK0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9ET01fU1RP
UkFHRT0xCiAKK2xpYmdkb21fYnVpbHRfc291cmNlcyArPSBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU3RvcmFnZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVN0b3JhZ2UuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU3RvcmFnZUV2ZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU3RvcmFnZUV2ZW50LmggCisKIElETF9CSU5ESU5HUyArPSBcCiAJV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50
LmlkbApAQCAtMjE3Myw2ICsyNTMxLDcgQEAKICMgLS0tLQogaWYgRU5BQkxFX1ZJREVPCiBGRUFU
VVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfVklERU89MQorRkVBVFVSRV9ERUZJTkVT
X0dET00gKz0gRU5BQkxFX1ZJREVPPTEKIAogSFRNTF9GRUFUVVJFUyArPSBFTkFCTEVfVklERU89
MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9WSURFTz0xCkBAIC0yMTgxLDYgKzI1NDAs
MjIgQEAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURHU1RfRElTQUJMRV9ERVBSRUNBVEVECiBlbmRp
ZiAjIEVORCBFTkFCTEVfREVCVUcKIAorbGliZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21IVE1MQXVkaW9FbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tSFRNTEF1ZGlvRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21IVE1MTWVkaWFFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tSFRNTE1l
ZGlhRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21IVE1MU291cmNlRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxTb3VyY2VFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbUhUTUxWaWRlb0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21IVE1MVmlkZW9FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbU1lZGlhRXJyb3IuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21NZWRpYUVy
cm9yLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVRpbWVSYW5nZXMuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21UaW1lUmFuZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVZvaWRDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVZvaWRDYWxs
YmFjay5oIAorCiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmlk
bAogCkBAIC0yMjMyLDEzICsyNjA3LDI2IEBACiAjIC0tLS0KIGlmIEVOQUJMRV9YUEFUSAogRkVB
VFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hQQVRIPTEKK0ZFQVRVUkVfREVGSU5F
U19HRE9NICs9IEVOQUJMRV9YUEFUSD0xCiAKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVf
WFBBVEg9MQogCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1hQ
YXRoR3JhbW1hci5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1hQYXRoR3JhbW1hci5oCisJRGVyaXZl
ZFNvdXJjZXMvWFBhdGhHcmFtbWFyLmggCiAKK2xpYmdkb21fYnVpbHRfc291cmNlcyArPSBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBhdGhFdmFsdWF0b3IuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21YUGF0aEV2YWx1YXRvci5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21YUGF0aEV4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhj
ZXB0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVzc2lvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVhQYXRoRXhwcmVzc2lvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21YUGF0aE5TUmVzb2x2ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tWFBh
dGhSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21YUGF0aFJlc3VsdC5oIAor
CiBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmlkbCBcCiAJ
V2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsIFwKQEAgLTIzMDIsNiArMjY5MCw3IEBACiAj
IC0tLS0KIGlmIEVOQUJMRV9YU0xUCiBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFC
TEVfWFNMVD0xCitGRUFUVVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfWFNMVD0xCiAKIHdlYmNv
cmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfWFNMVD0xCiAKQEAgLTI0OTgsNiArMjg4Nyw3IEBACiAj
IC0tLS0KIGlmIEVOQUJMRV9TVkcKIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJM
RV9TVkc9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkc9MSAtIGJpZyBUT0RP
ISA6KQogCiBXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUyArPSAkKFdlYkNvcmUpL2Nzcy9TVkdD
U1NQcm9wZXJ0eU5hbWVzLmluIAogV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMgKz0gJChXZWJD
b3JlKS9jc3MvU1ZHQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtMjUwOCw2ICsyODk4LDI3MyBAQAog
CURlcml2ZWRTb3VyY2VzL1NWR05hbWVzLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvWExpbmtOYW1l
cy5jcHAKIAorbm90LXlldDoKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0FsdEdseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdBbmdsZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuZ2xlLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdBbmltYXRlZEFuZ2xlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
QW5pbWF0ZWRBbmdsZS5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEJv
b2xlYW4uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZEJvb2xlYW4u
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkRW51bWVyYXRpb24uaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmNwcCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWRJbnRlZ2VyLmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0FuaW1hdGVkTGVuZ3RoLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHQW5pbWF0ZWRMZW5ndGguaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0
ZWRMZW5ndGhMaXN0LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkTnVt
YmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXIuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJlY3QuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmltYXRlZFJlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdBbmltYXRlZFN0cmluZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdBbmlt
YXRlZFRyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQW5pbWF0
aW9uRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0FuaW1hdGlvbkVs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2lyY2xlRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0NpcmNsZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHQ2xpcFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0NvbG9yLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ29sb3IuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVs
ZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdDdXJzb3JF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHQ3Vyc29yRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZWZpbml0aW9uU3JjRWxlbWVudC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZmluaXRpb25TcmNFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RlZnNFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRGVmc0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRGVzY0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEZXNj
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdEb2N1bWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0RvY3VtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0VsZW1lbnRJbnN0YW5jZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50SW5zdGFuY2VMaXN0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudEluc3RhbmNlTGlzdC5oIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdFbGxpcHNlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0VsbGlwc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR0V4Y2VwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0V4Y2VwdGlv
bi5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUJsZW5kRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFQmxlbmRFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVk
U291cmNlcy9nZG9tL0dkb21TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGbG9vZEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRUZsb29kRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdGRUZ1bmNBRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
RnVuY0FFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFRnVuY0JFbGVt
ZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jQkVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVGdW5jR0VsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUZ1bmNHRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdGRUZ1bmNSRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFRnVuY1JFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRUlt
YWdlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFSW1hZ2VFbGVt
ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFTWVyZ2VFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZUVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR0ZFT2Zmc2V0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdG
RVBvaW50TGlnaHRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVQ
b2ludExpZ2h0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdG
RVNwb3RMaWdodEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGRVNw
b3RMaWdodEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVUaWxlRWxl
bWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFVGlsZUVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRmlsdGVyRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZpbHRlckVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHRm9udEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZUVsZW1lbnQu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZUVsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdGb250RmFjZU5hbWVFbGVtZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9t
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdH
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dFbGVtZW50LmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR0dseXBoRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdHcmFkaWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdHcmFkaWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHSW1hZ2VF
bGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHSW1hZ2VFbGVtZW50Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xlbmd0aC5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL2dkb20vR2RvbVNWR0xlbmd0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdM
ZW5ndGhMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTGVuZ3RoTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdMaW5lRWxlbWVudC5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR0xpbmVFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9t
L0dkb21TVkdNYXJrZXJFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
TWFya2VyRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNYXNrRWxlbWVu
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hc2tFbGVtZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01hdHJpeC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR01hdHJpeC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNZXRhZGF0
YUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdNZXRhZGF0YUVsZW1l
bnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHTnVtYmVyLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR051
bWJlckxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdOdW1iZXJMaXN0Lmgg
XAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhaW50LmNwcCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHUGFpbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0
aEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoRWxlbWVudC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdQYXRoU2VnQXJjQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0FyY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQXJjUmVsLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0FyY1JlbC5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficy5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicy5oIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJl
bC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRp
Y0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljQWJzLmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRv
UXVhZHJhdGljUmVsLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0N1
cnZldG9RdWFkcmF0aWNSZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNl
Z0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnMuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicy5oIFwKKwlEZXJpdmVkU291cmNl
cy9nZG9tL0dkb21TVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVs
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5ldG9BYnMuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvQWJzLmggXAorCURlcml2
ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRh
bFJlbC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvUmVsLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1JlbC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhTZWdMaXN0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0aFNlZ0xpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHUGF0aFNlZ01vdmV0b0Ficy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1BhdGhTZWdNb3ZldG9BYnMuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZH
UGF0aFNlZ01vdmV0b1JlbC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BhdGhT
ZWdNb3ZldG9SZWwuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUGF0dGVybkVsZW1l
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQYXR0ZXJuRWxlbWVudC5oIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2ludC5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L2dkb20vR2RvbVNWR1BvaW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50
TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1BvaW50TGlzdC5oIFwKKwlE
ZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQb2x5Z29uRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1BvbHlnb25FbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dk
b20vR2RvbVNWR1BvbHlsaW5lRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1BvbHlsaW5lRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHUmVjdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1JlY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2Rv
bS9HZG9tU1ZHUmVjdEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdS
ZWN0RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZW5kZXJpbmdJbnRl
bnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdSZW5kZXJpbmdJbnRlbnQuaCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU1ZHRWxlbWVudC5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL2dkb20vR2RvbVNWR1NWR0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9H
ZG9tU1ZHU2NyaXB0RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1Nj
cmlwdEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU2V0RWxlbWVudC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1NldEVsZW1lbnQuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RvcEVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdTdG9wRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdT
dHJpbmdMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3RyaW5nTGlzdC5o
IFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdTdHlsZUVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHU3dpdGNoRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1N3aXRjaEVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHU3ltYm9s
RWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1N5bWJvbEVsZW1lbnQu
aCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVFJlZkVsZW1lbnQuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9nZG9tL0dkb21TVkdUUmVmRWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9n
ZG9tL0dkb21TVkdUU3BhbkVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21T
VkdUU3BhbkVsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dENvbnRl
bnRFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RleHRFbGVtZW50LmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dEVsZW1lbnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvZ2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
Z2RvbS9HZG9tU1ZHVGV4dFBhdGhFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dk
b21TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1RpdGxlRWxlbWVudC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1RpdGxl
RWxlbWVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zvcm0uY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9nZG9tL0dkb21TVkdUcmFuc2Zvcm0uaCBcCisJRGVyaXZlZFNvdXJj
ZXMvZ2RvbS9HZG9tU1ZHVHJhbnNmb3JtTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL2dkb20v
R2RvbVNWR1RyYW5zZm9ybUxpc3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVW5p
dFR5cGVzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVW5pdFR5cGVzLmggXAor
CURlcml2ZWRTb3VyY2VzL2dkb20vR2RvbVNWR1VzZUVsZW1lbnQuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9nZG9tL0dkb21TVkdVc2VFbGVtZW50LmggXAorCURlcml2ZWRTb3VyY2VzL2dkb20vR2Rv
bVNWR1ZpZXdFbGVtZW50LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHVmlld0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHWm9vbUV2ZW50LmggCisKIElETF9CSU5ESU5HUyAr
PSBcCiAJV2ViQ29yZS9zdmcvRWxlbWVudFRpbWVDb250cm9sLmlkbCBcCiAJV2ViQ29yZS9zdmcv
U1ZHQUVsZW1lbnQuaWRsIFwKQEAgLTMwNjgsMzAgKzM3MjUsMzUgQEAKICMgU1ZHIEZlYXR1cmVz
CiBpZiBFTkFCTEVfU1ZHX1VTRQogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19VU0U9MQorI0ZFQVRVUkVfREVGSU5FU19HRE9NICs9IEVOQUJMRV9TVkdfVVNFPTEgIyBi
aWcgVE9ETyEKIFNWR19GRUFUVVJFUyArPSBFTkFCTEVfU1ZHX1VTRT0xCiB3ZWJjb3JlX2NwcGZs
YWdzICs9IC1ERU5BQkxFX1NWR19VU0U9MQogZW5kaWYKIAogaWYgRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVAogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1NWR19GT1JFSUdO
X09CSkVDVD0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT1JFSUdOX09C
SkVDVD0xIAogU1ZHX0ZFQVRVUkVTICs9IEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogd2Vi
Y29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1Q9MQogZW5kaWYKIAog
aWYgRU5BQkxFX1NWR19GT05UUwogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxF
X1NWR19GT05UUz0xCisjRkVBVFVSRV9ERUZJTkVTX0dET00gKz0gRU5BQkxFX1NWR19GT05UUz0x
CiBTVkdfRkVBVFVSRVMgKz0gRU5BQkxFX1NWR19GT05UUz0xCiB3ZWJjb3JlX2NwcGZsYWdzICs9
IC1ERU5BQkxFX1NWR19GT05UUz0xCiBlbmRpZgogCiBpZiBFTkFCTEVfU1ZHX0FTX0lNQUdFCiBG
RUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKKyNGRUFU
VVJFX0RFRklORVNfR0RPTSArPSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIFNWR19GRUFUVVJFUyAr
PSBFTkFCTEVfU1ZHX0FTX0lNQUdFPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZH
X0FTX0lNQUdFPTEKIGVuZGlmCiAKIGlmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCiBGRUFUVVJFX0RF
RklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfU1ZHX0FOSU1BVElPTj0xCisjRkVBVFVSRV9ERUZJ
TkVTX0dET00gKz0gRU5BQkxFX1NWR19BTklNQVRJT049MQogU1ZHX0ZFQVRVUkVTICs9IEVOQUJM
RV9TVkdfQU5JTUFUSU9OPTEKIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfU1ZHX0FOSU1B
VElPTj0xCiBlbmRpZgpAQCAtMzA5OSw2ICszNzYxLDcgQEAKICMgU1ZHIHRhZyBhbmQgYXR0cmli
dXRlIG5hbWVzIChuZWVkIHRvIHBhc3MgYW4gZXh0cmEgZmxhZyBpZiBzdmcgZXhwZXJpbWVudGFs
IGZlYXR1cmVzIGFyZSBlbmFibGVkKQogRGVyaXZlZFNvdXJjZXMvU1ZHTmFtZXMuY3BwOiBEZXJp
dmVkU291cmNlcy9TVkdFbGVtZW50RmFjdG9yeS5jcHA7CiBEZXJpdmVkU291cmNlcy9KU1NWR0Vs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6IERlcml2ZWRTb3VyY2VzL1NWR0VsZW1lbnRGYWN0b3J5
LmNwcAorRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tU1ZHRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNw
cDogRGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwCiAKIGlmIFNWR19GTEFHUwog
RGVyaXZlZFNvdXJjZXMvU1ZHRWxlbWVudEZhY3RvcnkuY3BwOiAkKFdlYkNvcmUpL2RvbS9tYWtl
X25hbWVzLnBsICQoV2ViQ29yZSkvc3ZnL3N2Z3RhZ3MuaW4gJChXZWJDb3JlKS9zdmcvc3ZnYXR0
cnMuaW4KQEAgLTMyNDAsNiArMzkwMywxNSBAQAogCiB2cGF0aCAlLmlkbCA9ICQoSURMX1BBVEgp
CiAKKworRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5oOiBEZXJpdmVkU291cmNlcy9nZG9tL0dk
b20lLmNwcDsKKworRGVyaXZlZFNvdXJjZXMvZ2RvbS9HZG9tJS5jcHA6ICUuaWRsICQoU0NSSVBU
U19CSU5ESU5HUykgXAorICAgICAgICAgICAgICAgICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbSBcCisgICAgICAgICAgICAgICAgJChXZWJDb3JlKS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0TGlicmFyeTEucG0KKwkkKFBFUkwp
IC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9kb20gLS1pbmNsdWRl
ICQoV2ViQ29yZSkvaHRtbCAtLWluY2x1ZGUgJChXZWJDb3JlKS9jc3MgLS1pbmNsdWRlICQoV2Vi
Q29yZSkvcGFnZSAtLWluY2x1ZGUgJChXZWJDb3JlKS94bWwgLS1pbmNsdWRlICQoV2ViQ29yZSkv
c3ZnIC0tb3V0cHV0RGlyICIkKEdFTlNPVVJDRVNHRE9NKSIgLS1kZWZpbmVzICIkKEZFQVRVUkVf
REVGSU5FU19HRE9NKSIgLS1nZW5lcmF0b3IgR09iamVjdCAkPAorCisKIERlcml2ZWRTb3VyY2Vz
L0pTJS5oOiBEZXJpdmVkU291cmNlcy9KUyUuY3BwOwogCiAuU0VDT05EQVJZOgpAQCAtMzMwMCw2
ICszOTcyLDcgQEAKIAlXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSW5GaWxlc1BhcnNlci5wbSBc
CiAJV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsIFwKIAlXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIFwKKwlXZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0gXAogCVdlYkNvcmUvY3NzL2h0bWwu
Y3NzIFwKIAlXZWJDb3JlL2Nzcy9xdWlya3MuY3NzIFwKIAlXZWJDb3JlL2Nzcy92aWV3LXNvdXJj
ZS5jc3MgXApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZpc2lvbiA0NjM5NSkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMSwx
NCArNTAxLDE4IEBACiAgICAgICAgIGhvc3RXaW5kb3coKS0+cmVwYWludChwYW5TY3JvbGxJY29u
RGlydHlSZWN0LCB0cnVlKTsKICAgICB9CiAKKyNpZmRlZiBESVNBQkxFX0JMSVRUSU5HCiAgICAg
aWYgKGNhbkJsaXRPblNjcm9sbCgpICYmICFyb290UHJldmVudHNCbGl0dGluZygpKSB7IC8vIFRo
ZSBtYWluIGZyYW1lIGNhbiBqdXN0IGJsaXQgdGhlIFdlYlZpZXcgd2luZG93CiAgICAgICAgLy8g
RklYTUU6IEZpbmQgYSB3YXkgdG8gYmxpdCBzdWJmcmFtZXMgd2l0aG91dCBibGl0dGluZyBvdmVy
bGFwcGluZyBjb250ZW50CiAgICAgICAgaG9zdFdpbmRvdygpLT5zY3JvbGwoLXNjcm9sbERlbHRh
LCBzY3JvbGxWaWV3UmVjdCwgY2xpcFJlY3QpOwogICAgIH0gZWxzZSB7IAorI2VuZGlmCiAgICAg
ICAgLy8gV2UgbmVlZCB0byBnbyBhaGVhZCBhbmQgcmVwYWludCB0aGUgZW50aXJlIGJhY2tpbmcg
c3RvcmUuICBEbyBpdCBub3cgYmVmb3JlIG1vdmluZyB0aGUKICAgICAgICAvLyB3aW5kb3dlZCBw
bHVnaW5zLgogICAgICAgIGhvc3RXaW5kb3coKS0+cmVwYWludCh1cGRhdGVSZWN0LCB0cnVlLCBm
YWxzZSwgdHJ1ZSk7IC8vIEludmFsaWRhdGUgdGhlIGJhY2tpbmcgc3RvcmUgYW5kIHJlcGFpbnQg
aXQgc3luY2hyb25vdXNseQorI2lmZGVmIERJU0FCTEVfQkxJVFRJTkcKICAgICB9CisjZW5kaWYK
IAogICAgIC8vIFRoaXMgY2FsbCB3aWxsIG1vdmUgY2hpbGRyZW4gd2l0aCBuYXRpdmUgd2lkZ2V0
cyAocGx1Z2lucykgYW5kIGludmFsaWRhdGUgdGhlbSBhcyB3ZWxsLgogICAgIGZyYW1lUmVjdHND
aGFuZ2VkKCk7CkBAIC03NDAsMjIgKzc0NCwyMiBAQAogICAgICAgICByZXR1cm47CiAKICAgICBJ
bnRSZWN0IGRvY3VtZW50RGlydHlSZWN0ID0gcmVjdDsKLSAgICBkb2N1bWVudERpcnR5UmVjdC5p
bnRlcnNlY3QoZnJhbWVSZWN0KCkpOwogCiAgICAgY29udGV4dC0+c2F2ZSgpOwogCiAgICAgY29u
dGV4dC0+dHJhbnNsYXRlKHgoKSwgeSgpKTsKICAgICBkb2N1bWVudERpcnR5UmVjdC5tb3ZlKC14
KCksIC15KCkpOwogCi0gICAgY29udGV4dC0+dHJhbnNsYXRlKC1zY3JvbGxYKCksIC1zY3JvbGxZ
KCkpOwotICAgIGRvY3VtZW50RGlydHlSZWN0Lm1vdmUoc2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwor
ICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtbV9zY3JvbGxPZmZzZXQud2lkdGgoKSwgLW1fc2Nyb2xs
T2Zmc2V0LmhlaWdodCgpKTsKKyAgICBkb2N1bWVudERpcnR5UmVjdC5tb3ZlKG1fc2Nyb2xsT2Zm
c2V0LndpZHRoKCksIG1fc2Nyb2xsT2Zmc2V0LmhlaWdodCgpKTsKIAotICAgIGNvbnRleHQtPmNs
aXAodmlzaWJsZUNvbnRlbnRSZWN0KCkpOworICAgIGRvY3VtZW50RGlydHlSZWN0LmludGVyc2Vj
dChlbmNsb3NpbmdJbnRSZWN0KHZpc2libGVDb250ZW50UmVjdCgpKSk7CisgICAgaWYgKCFkb2N1
bWVudERpcnR5UmVjdC5pc0VtcHR5KCkpIHsKKyAgICAgICAgY29udGV4dC0+Y2xpcChkb2N1bWVu
dERpcnR5UmVjdCk7IAorICAgICAgICBwYWludENvbnRlbnRzKGNvbnRleHQsIGRvY3VtZW50RGly
dHlSZWN0KTsKKyAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworICAgIH0KIAotICAgIHBhaW50
Q29udGVudHMoY29udGV4dCwgZG9jdW1lbnREaXJ0eVJlY3QpOwotCi0gICAgY29udGV4dC0+cmVz
dG9yZSgpOwotCiAgICAgLy8gTm93IHBhaW50IHRoZSBzY3JvbGxiYXJzLgogICAgIGlmICghbV9z
Y3JvbGxiYXJzU3VwcHJlc3NlZCAmJiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyIHx8IG1fdmVydGlj
YWxTY3JvbGxiYXIpKSB7CiAgICAgICAgIGNvbnRleHQtPnNhdmUoKTsKQEAgLTc2Myw2ICs3Njcs
MTAgQEAKICAgICAgICAgc2Nyb2xsVmlld0RpcnR5UmVjdC5pbnRlcnNlY3QoZnJhbWVSZWN0KCkp
OwogICAgICAgICBjb250ZXh0LT50cmFuc2xhdGUoeCgpLCB5KCkpOwogICAgICAgICBzY3JvbGxW
aWV3RGlydHlSZWN0Lm1vdmUoLXgoKSwgLXkoKSk7CisKKyAgICAgICAgLy8gMi85LzA5IENTaWRo
YWxsIFJlc2V0IHRoZSBjb250ZXh0IGZvciBzY3JvbGwgZGlydHkgcmVjdCBhcyBpdCBtaWdodCBi
ZSBkaWZmZXJlbnQKKyAgICAgICAgY29udGV4dC0+Y2xpcChzY3JvbGxWaWV3RGlydHlSZWN0KTsK
KwogICAgICAgICBpZiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyKQogICAgICAgICAgICAgbV9ob3Jp
em9udGFsU2Nyb2xsYmFyLT5wYWludChjb250ZXh0LCBzY3JvbGxWaWV3RGlydHlSZWN0KTsKICAg
ICAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dk
b20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlz
aW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZh
Y3RvcnkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0Pgor
ICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4K
KyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworCisvKiBOb3RlOiBUaGlzIGZpbGUgaXMgZGVyaXZlZCBieSBo
YW5kIGZyb20gYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQKKyBmaWxlLgorIAorIEtlZXBpbmcg
aXQgdXAtdG8tZGF0ZSBjb3VsZCBwb3RlbnRpYWxseSBiZSBkb25lIGJ5IGFkZGluZyBhCisgbWFr
ZV9uYW1lcy5wbCBnZW5lcmF0b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZSBnZW5lcmF0b3Ig
d2hpY2gKKyB0YWtlcyBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCBhcyBpbnB1dC4KKyov
CisKKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJnZG9tL0dkb21Ob2RlLmgi
CisjaW5jbHVkZSAiR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaCIKKyNpbmNsdWRlICJn
ZG9tL0dkb21IVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxBcHBs
ZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEFyZWFFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TEJhc2VGb250RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCbG9ja3F1b3RlRWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxCUkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQnV0dG9u
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MVGFibGVDb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE1vZEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRGlyZWN0b3J5RWxlbWVudC5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxEaXZFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TERMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxFbWJlZEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRmllbGRTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEZvbnRFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZvcm1FbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUg
Imdkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
SGVhZGluZ0VsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSGVhZEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSFJFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTElGcmFtZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxJc0luZGV4
RWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxMYWJlbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MTGVnZW5kRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxMSUVsZW1lbnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGlua0VsZW1lbnQuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MTWFwRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxNYXJxdWVlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNZW51RWxlbWVudC5o
IgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9MaXN0RWxl
bWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhU
TUxQYXJhZ3JhcGhFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFBhcmFtRWxlbWVu
dC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQcmVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTFF1b3RlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxTY3JpcHRF
bGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFNlbGVjdEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRN
TFRhYmxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MVGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTFRpdGxlRWxlbWVudC5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZVJvd0VsZW1l
bnQuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MVUxpc3RFbGVtZW50LmgiCisKKyNpbmNsdWRl
ICJnZG9tL0dkb21IVE1MRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
QW5jaG9yRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQXBwbGV0RWxl
bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQXJlYUVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEJhc2VFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxCYXNlRm9udEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEJsb2NrcXVvdGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxCb2R5RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MQlJFbGVt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxCdXR0b25FbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxDYW52YXNFbGVtZW50UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNhcHRpb25FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxUYWJsZUNvbEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTE1vZEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERp
cmVjdG9yeUVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERpdkVsZW1l
bnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTERMaXN0RWxlbWVudFByaXZhdGUu
aCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRW1iZWRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgImdkb20vR2RvbUhUTUxGaWVsZFNldEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2Rv
bS9HZG9tSFRNTEZvbnRFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxG
b3JtRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MRnJhbWVFbGVtZW50
UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxGcmFtZVNldEVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTEhlYWRpbmdFbGVtZW50UHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgImdkb20vR2RvbUhUTUxIZWFkRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MSFJFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxIdG1s
RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSUZyYW1lRWxlbWVudFBy
aXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MSW1hZ2VFbGVtZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgImdkb20vR2RvbUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAi
Z2RvbS9HZG9tSFRNTElzSW5kZXhFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2Rv
bUhUTUxMYWJlbEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExlZ2Vu
ZEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTExJRWxlbWVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTGlua0VsZW1lbnRQcml2YXRlLmgiCisjaW5j
bHVkZSAiZ2RvbS9HZG9tSFRNTE1hcEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9H
ZG9tSFRNTE1hcnF1ZWVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxN
ZW51RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1MTWV0YUVsZW1lbnRQ
cml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9iamVjdEVsZW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTE9MaXN0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJnZG9tL0dkb21IVE1MT3B0R3JvdXBFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20v
R2RvbUhUTUxPcHRpb25FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQ
YXJhZ3JhcGhFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxQYXJhbUVs
ZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFByZUVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFF1b3RlRWxlbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJnZG9tL0dkb21IVE1MU2NyaXB0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9t
L0dkb21IVE1MU2VsZWN0RWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJnZG9tL0dkb21IVE1M
U3R5bGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdkb20vR2RvbUhUTUxUYWJsZUVsZW1l
bnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRQ
cml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRhYmxlQ2VsbEVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9tSFRNTFRleHRBcmVhRWxlbWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJnZG9tL0dkb21IVE1MVGl0bGVFbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgImdk
b20vR2RvbUhUTUxUYWJsZVJvd0VsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiZ2RvbS9HZG9t
SFRNTFVMaXN0RWxlbWVudFByaXZhdGUuaCIKKworI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCisj
aW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQXBwbGV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxCYXNlRm9udEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
QmxvY2txdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNhcHRpb25F
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlQ29sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxNb2RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTERpcmVjdG9yeUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxETGlzdEVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MRW1iZWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZpZWxkU2V0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxGb250RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxGb3JtRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJh
bWVTZXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhlYWRpbmdFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEhSRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MSXNJbmRleEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTGFiZWxF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
TElFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TE1hcEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWFycXVlZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MTWVudUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MT2JqZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUGFyYWdyYXBoRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxQYXJhbUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MUHJlRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxRdW90ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFVMaXN0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6OkhUTUxOYW1l
czsKKwordHlwZWRlZiBncG9pbnRlciAoKkNyZWF0ZUhUTUxFbGVtZW50V3JhcHBlckZ1bmN0aW9u
KShQYXNzUmVmUHRyPEhUTUxFbGVtZW50Pik7CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVBbmNo
b3JXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IHdyYXBIVE1MQW5jaG9yRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUFwcGxldFdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxB
cHBsZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxBcHBsZXRFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQXJlYVdyYXBwZXIoUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxBcmVhRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MQXJlYUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRp
YyBncG9pbnRlciBjcmVhdGVCYXNlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJhc2VFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxC
YXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0
ZUJhc2VGb250V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiB3cmFwSFRNTEJhc2VGb250RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmFzZUZvbnRF
bGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlQmxv
Y2txdW90ZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gd3JhcEhUTUxCbG9ja3F1b3RlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQmxvY2txdW90
ZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVC
b2R5V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biB3cmFwSFRNTEJvZHlFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxCb2R5RWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUJSV3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJSRWxlbWVu
dChzdGF0aWNfY2FzdDxIVE1MQlJFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0
aWMgZ3BvaW50ZXIgY3JlYXRlQnV0dG9uV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTEJ1dHRvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEJ1dHRvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRl
ciBjcmVhdGVDYW52YXNXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIHdyYXBIVE1MQ2FudmFzRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MQ2FudmFz
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRh
YmxlQ2FwdGlvbldyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gd3JhcEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIg
Y3JlYXRlVGFibGVDb2xXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIHdyYXBIVE1MVGFibGVDb2xFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUYWJs
ZUNvbEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVh
dGVNb2RXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIHdyYXBIVE1MTW9kRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTW9kRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxE
aXJlY3RvcnlFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxEaXJlY3RvcnlFbGVtZW50Kj4oZWxlbWVu
dC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGl2V3JhcHBlcihQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTERpdkVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTERpdkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBncG9pbnRlciBjcmVhdGVETGlzdFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4g
ZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxETGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTERMaXN0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVy
IGNyZWF0ZUVtYmVkV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTEVtYmVkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRmllbGRT
ZXRXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IHdyYXBIVE1MRmllbGRTZXRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGaWVsZFNldEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVGb250V3JhcHBl
cihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRN
TEZvbnRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxGb250RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUZvcm1XcmFwcGVyKFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRm9ybUVsZW1lbnQoc3Rh
dGljX2Nhc3Q8SFRNTEZvcm1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlRnJhbWVXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MRnJhbWVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxG
cmFtZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVh
dGVGcmFtZVNldFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAg
ICByZXR1cm4gd3JhcEhUTUxGcmFtZVNldEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEZyYW1lU2V0
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUhl
YWRpbmdXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIHdyYXBIVE1MSGVhZGluZ0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEhlYWRpbmdFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSGVhZFdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhU
TUxIZWFkRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVIUldyYXBwZXIoUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxIUkVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTEhSRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2lu
dGVyIGNyZWF0ZUh0bWxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7
CisgICAgcmV0dXJuIHdyYXBIVE1MSHRtbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEh0bWxFbGVt
ZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlSUZyYW1l
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3
cmFwSFRNTElGcmFtZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTElGcmFtZUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVJbWFnZVdyYXBwZXIoUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxJbWFn
ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUlucHV0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxF
bGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTElucHV0RWxlbWVudChzdGF0
aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMg
Z3BvaW50ZXIgY3JlYXRlSXNJbmRleFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxl
bWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxJc0luZGV4RWxlbWVudChzdGF0aWNfY2FzdDxI
VE1MSXNJbmRleEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRl
ciBjcmVhdGVMYWJlbFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gd3JhcEhUTUxMYWJlbEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZUxlZ2Vu
ZFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4g
d3JhcEhUTUxMZWdlbmRFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxMZWdlbmRFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTElXcmFwcGVyKFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTElFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxMSUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0
YXRpYyBncG9pbnRlciBjcmVhdGVMaW5rV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBl
bGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTExpbmtFbGVtZW50KHN0YXRpY19jYXN0PEhU
TUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNy
ZWF0ZU1hcFdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBy
ZXR1cm4gd3JhcEhUTUxNYXBFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxNYXBFbGVtZW50Kj4oZWxl
bWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlTWFycXVlZVdyYXBwZXIo
UGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxN
YXJxdWVlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MTWFycXVlZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVNZW51V3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE1lbnVFbGVtZW50
KHN0YXRpY19jYXN0PEhUTUxNZW51RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3Rh
dGljIGdwb2ludGVyIGNyZWF0ZU1ldGFXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MTWV0YUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRN
TE1ldGFFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3Jl
YXRlT2JqZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiB3cmFwSFRNTE9iamVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9iamVjdEVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVPTGlzdFdy
YXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3Jh
cEhUTUxPTGlzdEVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTE9MaXN0RWxlbWVudCo+KGVsZW1lbnQu
Z2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcihQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE9wdEdy
b3VwRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4oZWxlbWVudC5nZXQo
KSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlT3B0aW9uV3JhcHBlcihQYXNzUmVmUHRy
PEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTE9wdGlvbkVsZW1l
bnQoc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisK
K3N0YXRpYyBncG9pbnRlciBjcmVhdGVQYXJhZ3JhcGhXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBIVE1MUGFyYWdyYXBoRWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MUGFyYWdyYXBoRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwor
c3RhdGljIGdwb2ludGVyIGNyZWF0ZVBhcmFtV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFBhcmFtRWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MUGFyYW1FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50
ZXIgY3JlYXRlUHJlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQorewor
ICAgIHJldHVybiB3cmFwSFRNTFByZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFByZUVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVRdW90ZVdyYXBw
ZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhU
TUxRdW90ZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFF1b3RlRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVNjcmlwdFdyYXBwZXIoUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxTY3JpcHRFbGVt
ZW50KHN0YXRpY19jYXN0PEhUTUxTY3JpcHRFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQor
CitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlU2VsZWN0V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFNlbGVjdEVsZW1lbnQoc3RhdGlj
X2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBn
cG9pbnRlciBjcmVhdGVTdHlsZVdyYXBwZXIoUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVu
dCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxTdHlsZUVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFN0
eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0
ZVRhYmxlV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJl
dHVybiB3cmFwSFRNTFRhYmxlRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVFbGVtZW50Kj4o
ZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGFibGVTZWN0aW9u
V3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3
cmFwSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUYWJs
ZUNlbGxXcmFwcGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0
dXJuIHdyYXBIVE1MVGFibGVDZWxsRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGFibGVDZWxsRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVRleHRB
cmVhV3JhcHBlcihQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVy
biB3cmFwSFRNTFRleHRBcmVhRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50
Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlVGl0bGVXcmFw
cGVyKFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIHdyYXBI
VE1MVGl0bGVFbGVtZW50KHN0YXRpY19jYXN0PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVtZW50Lmdl
dCgpKSk7Cit9CisKK3N0YXRpYyBncG9pbnRlciBjcmVhdGVUYWJsZVJvd1dyYXBwZXIoUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gd3JhcEhUTUxUYWJsZVJv
d0VsZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTFRhYmxlUm93RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkp
KTsKK30KKworc3RhdGljIGdwb2ludGVyIGNyZWF0ZVVMaXN0V3JhcHBlcihQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiB3cmFwSFRNTFVMaXN0RWxlbWVudChz
dGF0aWNfY2FzdDxIVE1MVUxpc3RFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCitncG9p
bnRlciBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJ
bXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24+IG1hcDsKKyAgICBpZiAobWFw
LmlzRW1wdHkoKSkgeworICAgICAgIG1hcC5zZXQoYVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUFuY2hvcldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYXBwbGV0VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlQXBwbGV0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChhcmVhVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQXJlYVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYmFz
ZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KGJhc2Vmb250VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQmFzZUZvbnRXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KGJsb2NrcXVvdGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVCbG9ja3F1b3RlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChib2R5VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlQm9keVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYnJUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVCUldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoYnV0dG9uVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQnV0dG9uV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVDYW52YXNXcmFwcGVyKTsKKyAg
ICAgICBtYXAuc2V0KGNhcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNh
cHRpb25XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
IGNyZWF0ZVRhYmxlQ29sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChkZWxUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGRpclRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZURpcmVjdG9yeVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
ZGl2VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRGl2V3JhcHBlcik7CisgICAgICAgbWFw
LnNldChkbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZURMaXN0V3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChlbWJlZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUVtYmVkV3JhcHBl
cik7CisgICAgICAgbWFwLnNldChmaWVsZHNldFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUZpZWxkU2V0V3JhcHBlcik7CisgICAgICAgbWFwLnNldChmb250VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlRm9udFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoZm9ybVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUZvcm1XcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGZyYW1lVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0
KGZyYW1lc2V0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlRnJhbWVTZXRXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGgxVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoaGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZUhlYWRXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGhyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSFJXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGh0bWxUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCBjcmVhdGVIdG1sV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpZnJhbWVUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVJRnJhbWVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGltZ1Rh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUlucHV0V3JhcHBlcik7CisgICAg
ICAgbWFwLnNldChpc2luZGV4VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSXNJbmRleFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQobGFiZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVMYWJlbFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQobGVnZW5kVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlTGVnZW5kV3JhcHBlcik7CisgICAgICAgbWFwLnNldChsaVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUxJV3JhcHBlcik7CisgICAgICAgbWFwLnNldChsaW5rVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTGlua1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQobWFw
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFwV3JhcHBlcik7CisgICAgICAgbWFwLnNl
dChtYXJxdWVlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWFycXVlZVdyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQobWVudVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU1lbnVXcmFw
cGVyKTsKKyAgICAgICBtYXAuc2V0KG1ldGFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVN
ZXRhV3JhcHBlcik7CisgICAgICAgbWFwLnNldChvYmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCBjcmVhdGVPYmplY3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9sVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlT0xpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KG9wdGdyb3VwVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0R3JvdXBXcmFwcGVyKTsKKyAgICAgICBtYXAu
c2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9wdGlvbldyYXBwZXIpOwor
ICAgICAgIG1hcC5zZXQocFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVBhcmFncmFwaFdy
YXBwZXIpOworICAgICAgIG1hcC5zZXQocGFyYW1UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVh
dGVQYXJhbVdyYXBwZXIpOworICAgICAgIG1hcC5zZXQocHJlVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChxVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlUXVvdGVXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHNjcmlwdFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNjcmlwdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQoc2Vs
ZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlU2VsZWN0V3JhcHBlcik7CisgICAgICAg
bWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVN0eWxlV3JhcHBlcik7
CisgICAgICAgbWFwLnNldCh0YWJsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRhYmxl
V3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0Ym9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQodGRUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVUYWJsZUNlbGxXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRleHRh
cmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGV4dEFyZWFXcmFwcGVyKTsKKyAgICAg
ICBtYXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGl0bGVXcmFwcGVy
KTsKKyAgICAgICBtYXAuc2V0KHRyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGFibGVS
b3dXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHVsVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlVUxpc3RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGNvbGdyb3VwVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlVGFibGVDb2xXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGgyVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
aDNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVIZWFkaW5nV3JhcHBlcik7CisgICAgICAg
bWFwLnNldChoNFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRpbmdXcmFwcGVyKTsK
KyAgICAgICBtYXAuc2V0KGg1VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVhZGluZ1dy
YXBwZXIpOworICAgICAgIG1hcC5zZXQoaDZUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVI
ZWFkaW5nV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbWFnZVRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUltYWdlV3JhcHBlcik7CisgICAgICAgbWFwLnNldChpbnNUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCBjcmVhdGVNb2RXcmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KGtleWdlblRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVNlbGVjdFdyYXBwZXIpOworICAgICAgIG1hcC5zZXQo
bGlzdGluZ1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZVByZVdyYXBwZXIpOworICAgICAg
IG1hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUYWJsZVNlY3Rpb25X
cmFwcGVyKTsKKyAgICAgICBtYXAuc2V0KHRoVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
VGFibGVDZWxsV3JhcHBlcik7CisgICAgICAgbWFwLnNldCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZVRhYmxlU2VjdGlvbldyYXBwZXIpOworICAgICAgIG1hcC5zZXQoeG1wVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlUHJlV3JhcHBlcik7CisgICAgfQorCisgICAgQ3Jl
YXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24gY3JlYXRlV3JhcHBlckZ1bmN0aW9uID0KKyAg
ICAgICAgbWFwLmdldChlbGVtZW50LT5sb2NhbE5hbWUoKS5pbXBsKCkpOworICAgIGlmIChjcmVh
dGVXcmFwcGVyRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBjcmVhdGVXcmFwcGVyRnVuY3Rpb24o
ZWxlbWVudCk7CisgICAgcmV0dXJuIHdyYXBIVE1MRWxlbWVudChlbGVtZW50LmdldCgpKTsKK30K
KworfQorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vV2Via2l0RXZlbnRUYXJnZXROb2Rl
UHJpdmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01C
aW5kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRp
bmcuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZG9tL0dET01CaW5kaW5n
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MjEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChD
KSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0
Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRv
biA8bGtjbEBsa2NsLm5ldD4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNv
dG9AZnJlZWRlc2t0b3Aub3JnPgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworLyoK
KyAqIGFkZGVkIHVuZGVyIGJ1ZyAjMjc0MjYKKyAqLworCisvLyBnY2MgMy54IGNhbid0IGhhbmRs
ZSBpbmNsdWRpbmcgdGhlIEhhc2hNYXAgcG9pbnRlciBzcGVjaWFsaXphdGlvbgorLy8gaW4gdGhp
cyBmaWxlCisjaWYgZGVmaW5lZCBfX0dOVUNfXyAmJiAhZGVmaW5lZCBfX0dMSUJDWFhfXyAvLyBs
ZXNzIHRoYW4gZ2NjIDMuNAorI2RlZmluZSBIQVNIX01BUF9QVFJfU1BFQ19XT1JLQVJPVU5EIDEK
KyNlbmRpZgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKy8qIHllcyB0aGVzZSBhcmUgb3V0LW9m
LW9yZGVyLCBidXQgdGhleSBhcmUgZ3JvdXBlZCBieQorICogcHVycG9zZS4gIHRoZSAjaW5jbHVk
ZXMgbmVlZGVkIGZvciB0b0dET00oRG9jdW1lbnQqKQorICogZ290IGFkZGVkLCBhbmQgdGhlIG9u
ZXMgZm9yIHRvR0RPTShDU1NSdWxlKikgZ290IGFkZGVkCisgKiBzZXBhcmF0ZWx5LCBhbmQgdGhl
biBzb21lIGFyZSBjb25kaXRpb25hbCBiYXNlZCBvbgorICogY29tcGlsZS10aW1lIG9wdGlvbnMs
IGFuZCB5ZXQgbW9yZSB3aWxsIGJlIGFkZGVkCisgKiBlLmcuIGZvciBTVkcgQ2FudmFzLgorICov
CisKKyNpbmNsdWRlICJnbGliLW9iamVjdC5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNs
dWRlICJHZG9tRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiR2RvbURPTU9iamVjdFByaXZhdGUuaCIK
KyNpbmNsdWRlICJHRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkdET01IVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmgiCisKKyNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiR2Rv
bUNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJHZG9tQ1NTU3R5bGVTaGVldFByaXZhdGUuaCIK
KworI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisKKyNpbmNsdWRlICJH
ZG9tTm9kZVByaXZhdGUuaCIKKworI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDREFUQVNl
Y3Rpb24uaCIKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2luY2x1ZGUgIkNvbW1lbnQuaCIKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudFR5cGUuaCIKKyNpbmNsdWRlICJFbnRpdHkuaCIKKyNpbmNsdWRlICJFbnRp
dHlSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkdkb21B
dHRyLmgiCisjaW5jbHVkZSAiR2RvbUF0dHJQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNoYXJh
Y3RlckRhdGEuaCIKKyNpbmNsdWRlICJHZG9tVGV4dC5oIgorI2luY2x1ZGUgIkdkb21DREFUQVNl
Y3Rpb24uaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkdkb21Eb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiR2RvbURv
Y3VtZW50VHlwZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHkuaCIKKyNpbmNsdWRlICJHZG9tRWxl
bWVudC5oIgorI2luY2x1ZGUgIkdkb21DU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJHZG9tQ1NT
UHJpbWl0aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UmVmZXJlbmNlLmgiCisjaW5j
bHVkZSAiR2RvbU5vdGF0aW9uLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkdkb21Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCIKKyNpbmNsdWRlICJOb3RhdGlvbi5o
IgorI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
I2luY2x1ZGUgIkdkb21DU1NSdWxlLmgiCisjaW5jbHVkZSAiQ1NTQ2hhcnNldFJ1bGUuaCIKKyNp
bmNsdWRlICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCisj
aW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiQ1NTUGFnZVJ1bGUuaCIKKyNpbmNs
dWRlICJDU1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJDU1NWYXJpYWJsZXNSdWxlLmgiCisjaW5j
bHVkZSAiR2RvbUNTU0NoYXJzZXRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0ZvbnRGYWNlUnVs
ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NJbXBvcnRSdWxlLmgiCisjaW5jbHVkZSAiR2RvbUNTU01l
ZGlhUnVsZS5oIgorI2luY2x1ZGUgIkdkb21DU1NQYWdlUnVsZS5oIgorI2luY2x1ZGUgIkdkb21D
U1NTdHlsZVJ1bGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFyaWFibGVzUnVsZS5oIgorCisjaW5j
bHVkZSAiR2RvbUV2ZW50UHJpdmF0ZS5oIgorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5j
bHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiR2RvbUNsaXBib2Fy
ZC5oIgorI2luY2x1ZGUgIkdkb21LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU1lc3Nh
Z2VFdmVudC5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbU11
dGF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudC5oIgorI2luY2x1ZGUg
Ikdkb21Qcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVRleHRFdmVudC5oIgorI2luY2x1
ZGUgIkdkb21VSUV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdEFuaW1hdGlvbkV2ZW50Lmgi
CisjaW5jbHVkZSAiR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudC5oIgorI2luY2x1ZGUgIkdkb21X
aGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiR2RvbVhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5o
IgorI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIK
KyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgorI2lu
Y2x1ZGUgIk92ZXJmbG93RXZlbnQuaCIKKyNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisjaW5j
bHVkZSAiVGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1ZGUgIldlYktp
dEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisj
aW5jbHVkZSAiV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5oIgorCisjaW5jbHVkZSAiR2RvbUhUTUxDb2xsZWN0aW9uLmgiCisKKyNpbmNsdWRlICJB
dG9taWNTdHJpbmcuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkhU
TUxPcHRpb25zQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkdkb21IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaCIKKworI2lmIEVOQUJMRShET01fU1RPUkFHRSkKKyNpbmNsdWRlICJHZG9tU3RvcmFnZUV2
ZW50LmgiCisjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCisjZW5kaWYKKworI2lmIEVOQUJMRShT
VkcpCisjaWYgMCAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworI2luY2x1ZGUgIkdkb21TVkdab29t
RXZlbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVNWR1pvb21FdmVudC5oIgorI2luY2x1ZGUg
IlNWR1pvb21FdmVudC5oIgorI2VuZGlmCisjZW5kaWYKKworI2lmIEVOQUJMRShTVkcpCisjaWYg
MCAvKiBYWFggVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyNpbmNsdWRlICJHZG9tU1ZHRWxlbWVudFdy
YXBwZXJGYWN0b3J5UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21TVkdFbGVtZW50V3JhcHBlckZh
Y3RvcnkuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisjZW5kaWYKKyNlbmRpZgorCisjaWYg
MAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiR2RvbVNWR0V4Y2VwdGlvbi5oIgorI2luY2x1
ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlmCisjZW5kaWYKKworI2luY2x1ZGUgIkdkb21DREFU
QVNlY3Rpb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU0NoYXJzZXRSdWxlUHJpdmF0ZS5o
IgorI2luY2x1ZGUgIkdkb21DU1NGb250RmFjZVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiR2Rv
bUNTU0ltcG9ydFJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUNTU01lZGlhUnVsZVByaXZh
dGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTUGFnZVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiR2Rv
bUNTU1ByaW1pdGl2ZVZhbHVlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NSdWxlUHJpdmF0
ZS5oIgorI2luY2x1ZGUgIkdkb21DU1NTdHlsZVJ1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiR2Rv
bUNTU1ZhbHVlTGlzdFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ1NTVmFsdWVQcml2YXRlLmgi
CisjaW5jbHVkZSAiR2RvbUNTU1ZhcmlhYmxlc1J1bGVQcml2YXRlLmgiCisjaW5jbHVkZSAiR2Rv
bUNsaXBib2FyZFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tQ29tbWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJHZG9tRG9jdW1lbnRGcmFnbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tRG9j
dW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbURvY3VtZW50VHlwZVByaXZhdGUuaCIKKyNp
bmNsdWRlICJHZG9tRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tRW50aXR5UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIkdkb21FbnRpdHlSZWZlcmVuY2VQcml2YXRlLmgiCisjaW5jbHVkZSAi
R2RvbUhUTUxDb2xsZWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21IVE1MRG9jdW1lbnRQ
cml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbUhUTUxPcHRpb25zQ29sbGVjdGlvblByaXZhdGUuaCIK
KyNpbmNsdWRlICJHZG9tS2V5Ym9hcmRFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tTWVz
c2FnZUV2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21Nb3VzZUV2ZW50UHJpdmF0ZS5oIgor
I2luY2x1ZGUgIkdkb21NdXRhdGlvbkV2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21Ob3Rh
dGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tT3ZlcmZsb3dFdmVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJHZG9tUHJvY2Vzc2luZ0luc3RydWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdk
b21Qcm9ncmVzc0V2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIkdkb21TdG9yYWdlRXZlbnRQcml2
YXRlLmgiCisjaW5jbHVkZSAiR2RvbVN0eWxlU2hlZXRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2Rv
bVRleHRFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tVGV4dFByaXZhdGUuaCIKKyNpbmNs
dWRlICJHZG9tVUlFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9tV2ViS2l0QW5pbWF0aW9u
RXZlbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiR2RvbVdlYktpdFRyYW5zaXRpb25FdmVudFByaXZh
dGUuaCIKKyNpbmNsdWRlICJHZG9tV2hlZWxFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJHZG9t
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50UHJpdmF0ZS5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6
SFRNTE5hbWVzOworCit0eXBlZGVmIEhhc2hNYXA8dm9pZCosIGdwb2ludGVyPiBET01PYmplY3RN
YXA7CisKK3N0YXRpYyBET01PYmplY3RNYXAmIGRvbU9iamVjdHMoKQoreworICAgIHN0YXRpYyBE
T01PYmplY3RNYXAgc3RhdGljRE9NT2JqZWN0czsKKyAgICByZXR1cm4gc3RhdGljRE9NT2JqZWN0
czsKK30KKworZ3BvaW50ZXIgR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3Qodm9pZCogb2Jq
ZWN0SGFuZGxlKQoreworICAgIGdwb2ludGVyIHJldCA9IGRvbU9iamVjdHMoKS5nZXQob2JqZWN0
SGFuZGxlKTsKKyAgICByZXR1cm4gcmV0OworfQorCitncG9pbnRlciBHRE9NT2JqZWN0Q2FjaGU6
OnB1dERPTU9iamVjdCh2b2lkKiBvYmplY3RIYW5kbGUsIGdwb2ludGVyIHdyYXBwZXIpCit7Cisg
ICAgZG9tT2JqZWN0cygpLnNldChvYmplY3RIYW5kbGUsIHdyYXBwZXIpOworICAgIHJldHVybiB3
cmFwcGVyOworfQorCit2b2lkIEdET01PYmplY3RDYWNoZTo6Zm9yZ2V0RE9NT2JqZWN0KHZvaWQq
IG9iamVjdEhhbmRsZSkKK3sKKyAgICBkb21PYmplY3RzKCkudGFrZShvYmplY3RIYW5kbGUpOwor
fQorCitncG9pbnRlciB0b0dET00oRG9jdW1lbnQqIGRvYykKK3sKKyAgICBpZiAoIWRvYykKKyAg
ICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9pbnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hl
OjpnZXRET01PYmplY3QoZG9jKTsKKyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7
CisKKyAgICBncG9pbnRlciByZXQ7CisKKyAgICBpZiAoZG9jLT5pc0hUTUxEb2N1bWVudCgpKQor
ICAgICAgICByZXQgPSB3cmFwSFRNTERvY3VtZW50KHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+
KGRvYykpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAoZG9jLT5pc1NWR0RvY3VtZW50
KCkpCisgICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogWFhYIFRPRE8gLSBzZWUgIzIwNTg2
ICovCisjaWYgMAorICAgICAgICByZXQgPSB3cmFwU1ZHRG9jdW1lbnQoc3RhdGljX2Nhc3Q8U1ZH
RG9jdW1lbnQqPihkb2MpKTsKKyNlbmRpZgorICAgIH0KKyNlbmRpZgorICAgIGVsc2UKKyAgICAg
ICAgcmV0ID0gd3JhcERvY3VtZW50KGRvYyk7CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hl
OjpwdXRET01PYmplY3QoZG9jLCByZXQpOworfQorCitzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlV3Jh
cHBlcihOb2RlKiBub2RlKTsKKworZ3BvaW50ZXIgdG9HRE9NTmV3bHlDcmVhdGVkKE5vZGUqIG5v
ZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVy
biBjcmVhdGVXcmFwcGVyKG5vZGUpOworfQorCitncG9pbnRlciB0b0dET00oTm9kZSogbm9kZSkK
K3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIg
cmV0ID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3Qobm9kZSk7CisgICAgaWYgKHJldCkK
KyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyKG5vZGUpOwor
fQorCitncG9pbnRlciB0b0dET00oQ1NTVmFsdWUqIHZhbHVlKQoreworICAgIGlmICghdmFsdWUp
CisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RD
YWNoZTo6Z2V0RE9NT2JqZWN0KHZhbHVlKTsKKworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1
cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldDsKKworICAgIGlmICh2YWx1ZS0+aXNWYWx1ZUxp
c3QoKSkKKyAgICAgICAgcmV0ID0gd3JhcENTU1ZhbHVlTGlzdChzdGF0aWNfY2FzdDxDU1NWYWx1
ZUxpc3QqPih2YWx1ZSkpOworI2lmIEVOQUJMRShTVkcpCisgICAgZWxzZSBpZiAodmFsdWUtPmlz
U1ZHUGFpbnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxMOyAvKiBUT0RPIC0gc2VlICMy
MDU4NiAqLworICAgICAgICAvL3JldCA9IHdyYXBTVkdQYWludChzdGF0aWNfY2FzdDxTVkdQYWlu
dCo+KHZhbHVlKSk7CisgICAgfQorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR0NvbG9yKCkpCisg
ICAgeworICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyAgICAg
ICAgLy9yZXQgPSB3cmFwU1ZHQ29sb3Ioc3RhdGljX2Nhc3Q8U1ZHQ29sb3IqPih2YWx1ZSkpOwor
ICAgIH0KKyNlbmRpZgorICAgIGVsc2UgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisg
ICAgICAgIHJldCA9IHdyYXBDU1NQcmltaXRpdmVWYWx1ZShzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKSk7CisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwQ1NTVmFsdWUo
dmFsdWUpOworCisgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KHZhbHVl
LCByZXQpOworfQorCitzdGF0aWMgQUxXQVlTX0lOTElORSBncG9pbnRlciBjcmVhdGVXcmFwcGVy
KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVCghU2NyaXB0SW50
ZXJwcmV0ZXI6OmdldERPTU9iamVjdChub2RlKSk7CisKKyAgICBEb2N1bWVudCogZG9jID0gbm9k
ZS0+ZG9jdW1lbnQoKTsKKyAgICBncG9pbnRlciByZXQgPSBOVUxMOworCisgICAgc3dpdGNoIChu
b2RlLT5ub2RlVHlwZSgpKSB7CisgICAgICAgIGNhc2UgTm9kZTo6RUxFTUVOVF9OT0RFOgorICAg
ICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICByZXQg
PSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKSk7
CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKG5vZGUtPmlzU1ZHRWxlbWVu
dCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2lmIDAgLyogWFhYIFRPRE8gLSBz
ZWUgIzIwNTg2ICovCisgICAgICAgICAgICAgICAgcmV0ID0gY3JlYXRlR0RPTVNWR1dyYXBwZXIo
c3RhdGljX2Nhc3Q8U1ZHRWxlbWVudCo+KG5vZGUpKTsKKyNlbmRpZgorI2VuZGlmCisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0ID0gd3JhcEVsZW1lbnQoc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6
OkFUVFJJQlVURV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcEF0dHIoc3RhdGljX2Nhc3Q8
QXR0cio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OlRF
WFRfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBUZXh0KHN0YXRpY19jYXN0PFRleHQqPihu
b2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNU
SU9OX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ0RBVEFTZWN0aW9uKHN0YXRpY19jYXN0
PENEQVRBU2VjdGlvbio+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE5vZGU6OkVOVElUWV9OT0RFOgorICAgICAgICAgICAgcmV0ID0gd3JhcEVudGl0eShzdGF0aWNf
Y2FzdDxFbnRpdHkqPihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBO
b2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFw
UHJvY2Vzc2luZ0luc3RydWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+
KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkNPTU1FTlRf
Tk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDb21tZW50KHN0YXRpY19jYXN0PENvbW1lbnQq
Pihub2RlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVO
VF9OT0RFOgorICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9jdW1l
bnQgaXRzZWxmIGluIHRoZSBwZXItZG9jdW1lbnQgZGljdGlvbmFyeQorICAgICAgICAgICAgcmV0
dXJuIHRvR0RPTShzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG5vZGUpKTsKKyAgICAgICAgY2FzZSBO
b2RlOjpET0NVTUVOVF9UWVBFX05PREU6CisgICAgICAgICAgICByZXQgPSB3cmFwRG9jdW1lbnRU
eXBlKHN0YXRpY19jYXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIE5vZGU6Ok5PVEFUSU9OX05PREU6CisgICAgICAgICAgICByZXQgPSB3
cmFwTm90YXRpb24oc3RhdGljX2Nhc3Q8Tm90YXRpb24qPihub2RlKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgorICAgICAg
ICAgICAgcmV0ID0gd3JhcERvY3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRGcmFn
bWVudCo+KG5vZGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE5vZGU6OkVO
VElUWV9SRUZFUkVOQ0VfTk9ERToKKyAgICAgICAgICAgIHJldCA9IHdyYXBFbnRpdHlSZWZlcmVu
Y2Uoc3RhdGljX2Nhc3Q8RW50aXR5UmVmZXJlbmNlKj4obm9kZSkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSB3cmFwTm9kZShub2RlKTsK
KyAgICB9CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3Qobm9kZSwg
cmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQor
eworICAgIGlmICghY29sbGVjdGlvbikKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBncG9p
bnRlciBnb2JqID0gR0RPTU9iamVjdENhY2hlOjpnZXRET01PYmplY3QoY29sbGVjdGlvbik7CisK
KyAgICBpZiAoZ29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7
CisgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKKyAgICAgICAgY2FzZSBTZWxlY3RP
cHRpb25zOgorICAgICAgICAgICAgcmV0ID0gd3JhcEhUTUxPcHRpb25zQ29sbGVjdGlvbihzdGF0
aWNfY2FzdDxIVE1MT3B0aW9uc0NvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAg
ICBicmVhazsKKyNpZiAwCisgICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OkRvY0FsbDoKKyAg
ICAgICAgICAgIHJldCA9IHdyYXBIVE1MQ29sbGVjdGlvbihzdGF0aWNfY2FzdDxIVE1MQ29sbGVj
dGlvbio+KGNvbGxlY3Rpb24pKTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSB3cmFwSFRNTENvbGxlY3Rpb24oc3RhdGljX2Nh
c3Q8SFRNTENvbGxlY3Rpb24qPihjb2xsZWN0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICByZXR1cm4gR0RPTU9iamVjdENhY2hlOjpwdXRET01PYmplY3QoY29sbGVjdGlv
biwgcmV0KTsKK30KKworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAo
IWV2ZW50KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGdwb2ludGVyIGdvYmogPSBHRE9N
T2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChldmVudCk7CisgICAgaWYgKGdvYmopCisgICAgICAg
IHJldHVybiBnb2JqOworCisgICAgZ3BvaW50ZXIgcmV0OworICAgIGlmIChldmVudC0+aXNVSUV2
ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50LT5pc0tleWJvYXJkRXZlbnQoKSkKKyAgICAgICAg
ICAgIHJldCA9IHdyYXBLZXlib2FyZEV2ZW50KHN0YXRpY19jYXN0PEtleWJvYXJkRXZlbnQqPihl
dmVudCkpOworICAgICAgICBlbHNlIGlmIChldmVudC0+aXNUZXh0RXZlbnQoKSkKKyAgICAgICAg
ICAgIHJldCA9IHdyYXBUZXh0RXZlbnQoc3RhdGljX2Nhc3Q8VGV4dEV2ZW50Kj4oZXZlbnQpKTsK
KyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAgICAgICAgICAgcmV0
ID0gd3JhcE1vdXNlRXZlbnQoc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KSk7CisgICAg
ICAgIGVsc2UgaWYgKGV2ZW50LT5pc1doZWVsRXZlbnQoKSkKKyAgICAgICAgICAgIHJldCA9IHdy
YXBXaGVlbEV2ZW50KHN0YXRpY19jYXN0PFdoZWVsRXZlbnQqPihldmVudCkpOworI2lmIEVOQUJM
RShTVkcpCisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5pc1NWR1pvb21FdmVudCgpKQorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogVE9ETyAtIHNlZSAjMjA1ODYgKi8KKyAg
ICAgICAgICAgIC8vcmV0ID0gd3JhcFNWR1pvb21FdmVudChzdGF0aWNfY2FzdDxTVkdab29tRXZl
bnQqPihldmVudCksIDApOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmV0ID0gd3JhcFVJRXZlbnQoc3RhdGljX2Nhc3Q8VUlFdmVudCo+KGV2ZW50KSk7Cisg
ICAgfSBlbHNlIGlmIChldmVudC0+aXNNdXRhdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IHdy
YXBNdXRhdGlvbkV2ZW50KHN0YXRpY19jYXN0PE11dGF0aW9uRXZlbnQqPihldmVudCkpOworICAg
IGVsc2UgaWYgKGV2ZW50LT5pc092ZXJmbG93RXZlbnQoKSkKKyAgICAgICAgcmV0ID0gd3JhcE92
ZXJmbG93RXZlbnQoc3RhdGljX2Nhc3Q8T3ZlcmZsb3dFdmVudCo+KGV2ZW50KSk7CisgICAgZWxz
ZSBpZiAoZXZlbnQtPmlzTWVzc2FnZUV2ZW50KCkpCisgICAgICAgIHJldCA9IHdyYXBNZXNzYWdl
RXZlbnQoc3RhdGljX2Nhc3Q8TWVzc2FnZUV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChl
dmVudC0+aXNQcm9ncmVzc0V2ZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50LT5pc1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpKQorICAgICAgICAgICAgcmV0ID0gd3JhcFhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudChzdGF0aWNfY2FzdDxYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQq
PihldmVudCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXQgPSB3cmFwUHJvZ3Jlc3NF
dmVudChzdGF0aWNfY2FzdDxQcm9ncmVzc0V2ZW50Kj4oZXZlbnQpKTsKKyAgICB9CisjaWYgRU5B
QkxFKERPTV9TVE9SQUdFKQorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1N0b3JhZ2VFdmVudCgpKQor
ICAgICAgICByZXQgPSB3cmFwU3RvcmFnZUV2ZW50KHN0YXRpY19jYXN0PFN0b3JhZ2VFdmVudCo+
KGV2ZW50KSk7CisjZW5kaWYKKyAgICBlbHNlIGlmIChldmVudC0+aXNXZWJLaXRBbmltYXRpb25F
dmVudCgpKQorICAgICAgICByZXQgPSB3cmFwV2ViS2l0QW5pbWF0aW9uRXZlbnQoc3RhdGljX2Nh
c3Q8V2ViS2l0QW5pbWF0aW9uRXZlbnQqPihldmVudCkpOworICAgIGVsc2UgaWYgKGV2ZW50LT5p
c1dlYktpdFRyYW5zaXRpb25FdmVudCgpKQorICAgICAgICByZXQgPSB3cmFwV2ViS2l0VHJhbnNp
dGlvbkV2ZW50KHN0YXRpY19jYXN0PFdlYktpdFRyYW5zaXRpb25FdmVudCo+KGV2ZW50KSk7Cisg
ICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwRXZlbnQoZXZlbnQpOworCisgICAgcmV0dXJuIEdE
T01PYmplY3RDYWNoZTo6cHV0RE9NT2JqZWN0KGV2ZW50LCByZXQpOworfQorCitncG9pbnRlciB0
b0dET00oVGV4dCogdGV4dCkKK3sKKyAgICBpZiAoIXRleHQpCisgICAgICAgIHJldHVybiBOVUxM
OworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHRl
eHQpOworICAgIGlmIChnb2JqKQorICAgICAgICByZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVy
IHJldCA9IHdyYXBUZXh0KHRleHQpOworICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERP
TU9iamVjdCh0ZXh0LCByZXQpOworfQorCitncG9pbnRlciB0b0dET00oQ1NTUnVsZSogcnVsZSkK
K3sKKyAgICBpZiAoIXJ1bGUpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIg
Z29iaiA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHJ1bGUpOworCisgICAgaWYgKGdv
YmopCisgICAgICAgIHJldHVybiBnb2JqOworCisgICAgZ3BvaW50ZXIgcmV0OworICAgIHN3aXRj
aCAocnVsZS0+dHlwZSgpKSB7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6U1RZTEVfUlVMRToKKyAg
ICAgICAgICAgIHJldCA9IHdyYXBDU1NTdHlsZVJ1bGUoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxl
Kj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUnVsZTo6TUVE
SUFfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NNZWRpYVJ1bGUoc3RhdGljX2Nhc3Q8
Q1NTTWVkaWFSdWxlKj4ocnVsZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Q1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6CisgICAgICAgICAgICByZXQgPSB3cmFwQ1NTRm9udEZh
Y2VSdWxlKHN0YXRpY19jYXN0PENTU0ZvbnRGYWNlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OlBBR0VfUlVMRToKKyAgICAgICAgICAgIHJl
dCA9IHdyYXBDU1NQYWdlUnVsZShzdGF0aWNfY2FzdDxDU1NQYWdlUnVsZSo+KHJ1bGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OklNUE9SVF9SVUxFOgorICAg
ICAgICAgICAgcmV0ID0gd3JhcENTU0ltcG9ydFJ1bGUoc3RhdGljX2Nhc3Q8Q1NTSW1wb3J0UnVs
ZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1J1bGU6OkNI
QVJTRVRfUlVMRToKKyAgICAgICAgICAgIHJldCA9IHdyYXBDU1NDaGFyc2V0UnVsZShzdGF0aWNf
Y2FzdDxDU1NDaGFyc2V0UnVsZSo+KHJ1bGUpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIENTU1J1bGU6OlZBUklBQkxFU19SVUxFOgorICAgICAgICAgICAgcmV0ID0gd3JhcENT
U1ZhcmlhYmxlc1J1bGUoc3RhdGljX2Nhc3Q8Q1NTVmFyaWFibGVzUnVsZSo+KHJ1bGUpKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0ID0gd3Jh
cENTU1J1bGUocnVsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBHRE9NT2Jq
ZWN0Q2FjaGU6OnB1dERPTU9iamVjdChydWxlLCByZXQpOworICAgIHJldHVybiByZXQ7Cit9CisK
K2dwb2ludGVyIHRvR0RPTShFbGVtZW50KiBlbGVtZW50KQoreworICAgIGlmICghZWxlbWVudCkK
KyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvLyBzaG91bGRuJ3QgYmUgb25lPyBBU1NFUlQo
IVNjcmlwdEludGVycHJldGVyOjpnZXRET01PYmplY3QoZWxlbWVudCkpOworICAgIGdwb2ludGVy
IGdvYmogPSBHRE9NT2JqZWN0Q2FjaGU6OmdldERPTU9iamVjdChlbGVtZW50KTsKKyAgICBpZiAo
Z29iaikKKyAgICAgICAgcmV0dXJuIGdvYmo7CisKKyAgICBncG9pbnRlciByZXQ7CisgICAgRG9j
dW1lbnQqIGRvYyA9IGVsZW1lbnQtPmRvY3VtZW50KCk7CisKKyAgICBpZiAoZWxlbWVudC0+aXNI
VE1MRWxlbWVudCgpKQorICAgICAgICByZXQgPSBjcmVhdGVHRE9NSFRNTFdyYXBwZXIoc3RhdGlj
X2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KSk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNl
IGlmIChlbGVtZW50LT5pc1NWR0VsZW1lbnQoKSkKKyAgICB7CisgICAgICAgIHJldHVybiBOVUxM
OyAvKiBUT0RPIC0gc2VlICMyMDU4NiAqLworICAgICAgICAvL3JldCA9IGNyZWF0ZUdET01TVkdX
cmFwcGVyKHN0YXRpY19jYXN0PFNWR0VsZW1lbnQqPihlbGVtZW50KSk7CisgICAgfQorI2VuZGlm
CisgICAgZWxzZQorICAgICAgICByZXQgPSB3cmFwRWxlbWVudChlbGVtZW50KTsKKworICAgIHJl
dHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChlbGVtZW50LCByZXQpOworfQorCitn
cG9pbnRlciB0b0dET00oU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBpZiAoIXN0eWxl
U2hlZXQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZ3BvaW50ZXIgZ29iaiA9IEdET01P
YmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHN0eWxlU2hlZXQpOworICAgIGlmIChnb2JqKQorICAg
ICAgICByZXR1cm4gZ29iajsKKworICAgIGdwb2ludGVyIHJldDsKKyAgICBpZiAoc3R5bGVTaGVl
dC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJldCA9IHdyYXBDU1NTdHlsZVNoZWV0KHN0
YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KSk7CisgICAgZWxzZQorICAgICAg
ICByZXQgPSB3cmFwU3R5bGVTaGVldChzdHlsZVNoZWV0KTsKKworICAgIHJldHVybiBHRE9NT2Jq
ZWN0Q2FjaGU6OnB1dERPTU9iamVjdChzdHlsZVNoZWV0LCByZXQpOworfQorCisvKiBkZXJpdmVk
IHNvdXJjZXMgYXV0by1nZW5lcmF0ZWQgKi8KK2dwb2ludGVyIHRvR0RPTShYTUxIdHRwUmVxdWVz
dFVwbG9hZCogb2JqKTsKKworZ3BvaW50ZXIgdG9HRE9NKEV2ZW50VGFyZ2V0KiB0YXJnZXQpCit7
CisgICAgaWYgKCF0YXJnZXQpCisgICAgICAgIHJldHVybiBOVUxMOworCisjaWYgMAorI2lmIEVO
QUJMRShTVkcpCisgICAgLy8gU1ZHRWxlbWVudEluc3RhbmNlIHN1cHBvcnRzIGJvdGggdG9TVkdF
bGVtZW50SW5zdGFuY2UgYW5kCisgICAgLy8gdG9Ob2RlIHNpbmNlIHNvIG11Y2ggbW91c2UgaGFu
ZGxpbmcgY29kZSBkZXBlbmRzIG9uIHRvTm9kZQorICAgIC8vIHJldHVybmluZyBhIHZhbGlkIG5v
ZGUuCisgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZSA9IHRhcmdldC0+dG9TVkdFbGVt
ZW50SW5zdGFuY2UoKTsKKyAgICBpZiAoaW5zdGFuY2UpCisgICAgICAgIHJldHVybiB0b0dET00o
ZXhlYywgaW5zdGFuY2UpOworI2VuZGlmCisjZW5kaWYKKworICAgIE5vZGUqIG5vZGUgPSB0YXJn
ZXQtPnRvTm9kZSgpOworICAgIGlmIChub2RlKQorICAgICAgICByZXR1cm4gdG9HRE9NKG5vZGUp
OworCisgICAgaWYgKFhNTEh0dHBSZXF1ZXN0KiB4aHIgPSB0YXJnZXQtPnRvWE1MSHR0cFJlcXVl
c3QoKSkKKyAgICAgICAgLy8gWE1MSHR0cFJlcXVlc3QgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdE
T00sIHNvIHdlIGRvbid0IG5lZWQKKyAgICAgICAgLy8gdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkg
aGVyZS4KKyAgICAgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KHhocik7
CisKKyAgICBpZiAoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+dG9YTUxI
dHRwUmVxdWVzdFVwbG9hZCgpKQorICAgICAgICByZXR1cm4gdG9HRE9NKHVwbG9hZCk7CisKKyNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgIGlmIChET01BcHBsaWNhdGlv
bkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCisgICAgICAg
IC8vIERPTUFwcGxpY2F0aW9uQ2FjaGUgaXMgYWx3YXlzIGNyZWF0ZWQgdmlhIEdET00sIHNvIHdl
IGRvbid0CisgICAgICAgIC8vIG5lZWQgdG8gdXNlIGNhY2hlRE9NT2JqZWN0KCkgaGVyZS4KKyAg
ICAgICAgcmV0dXJuIEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KGNhY2hlKTsKKyNlbmRp
ZgorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUhU
TUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2dkb20vR0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACisvKgorICogVEhJUyBGSUxFIElTIERFUklWRUQgQlkg
SEFORCBGUk9NIEFOIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEZJTEUuCisgKiBJVCBJUyBOT1Qg
QU4gQVVUTy1HRU5FUkFURUQgRklMRSBJVCBXQVMgQ1JFQVRFRCBNQU5VQUxMWSAqRlJPTSoKKyAq
IEFOIEFVVE8tR0VORVJBVEVEIEZJTEUuCisgKiBrZWVwaW5nIGl0IHVwLXRvLWRhdGUgY291bGQg
cG90ZW50aWFsbHkgYmUgZG9uZSBieSBhZGRpbmcKKyAqIGEgbWFrZV9uYW1lcy5wbCBnZW5lcmF0
b3IsIG9yIGJ5IHdyaXRpbmcgYSBzZXBhcmF0ZQorICogZ2VuZXJhdG9yIHdoaWNoIHRha2VzIEpT
SFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oIGFzIGlucHV0LgorICoKKyAqCisgKiBDb3B5cmln
aHQgKEMpIDIwMDUgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworCisjaWZuZGVmIEdET01IVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5X2gKKyNkZWZpbmUg
R0RPTUhUTUxFbGVtZW50V3JhcHBlckZhY3RvcnlfaAorCisjaW5jbHVkZSAiR2RvbU5vZGVQcml2
YXRlLmgiCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisgICAgY2xhc3MgSFRNTEVsZW1lbnQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIGdw
b2ludGVyIGNyZWF0ZUdET01IVE1MV3JhcHBlcihQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxFbGVt
ZW50Pik7Cit9CisKKyNlbmRpZiAvLyBHRE9NSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeV9oCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vV2Via2l0RXZlbnRUYXJnZXROb2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dkb20vR0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9HRE9NQmluZGluZy5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDc0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRl
biAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQg
KEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiAg
Q29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICog
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rv
biwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgR2RvbURPTUJpbmRpbmdfaAor
I2RlZmluZSBHZG9tRE9NQmluZGluZ19oCisKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVk
ZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIK
KyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkdkb21Ob2RlLmgiCisjaW5jbHVk
ZSAiR2RvbU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNs
dWRlICJOb2RlLmgiCisjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIlRleHQuaCIK
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisg
ICAgY2xhc3MgQXRvbWljU3RyaW5nOworICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNzIEV2
ZW50OworICAgIGNsYXNzIEZyYW1lOworICAgIGNsYXNzIEtVUkw7CisgICAgY2xhc3MgTm9kZTsK
KyAgICBjbGFzcyBTdHJpbmc7CisKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGNsYXNzIFNWR0VsZW1l
bnQ7CisjZW5kaWYKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdlYktpdCB7
CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkNTU1J1bGUqIG5vZGUpOworICAgIGdwb2lu
dGVyIHRvR0RPTShXZWJDb3JlOjpDU1NWYWx1ZSogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9N
KFdlYkNvcmU6OkRvY3VtZW50KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6
RWxlbWVudCogbm9kZSk7CisgICAgZ3BvaW50ZXIgdG9HRE9NKFdlYkNvcmU6OkV2ZW50KiBub2Rl
KTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6RXZlbnRUYXJnZXQqIG5vZGUpOworICAg
IGdwb2ludGVyIHRvR0RPTShXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbiogbm9kZSk7CisgICAgZ3Bv
aW50ZXIgdG9HRE9NKFdlYkNvcmU6Ok5vZGUqIG5vZGUpOworICAgIGdwb2ludGVyIHRvR0RPTShX
ZWJDb3JlOjpTdHlsZVNoZWV0KiBub2RlKTsKKyAgICBncG9pbnRlciB0b0dET00oV2ViQ29yZTo6
VGV4dCogbm9kZSk7CisKKyAgICBjbGFzcyBHRE9NT2JqZWN0Q2FjaGUgeworICAgIHB1YmxpYzoK
KyAgICAgICAgc3RhdGljIGdwb2ludGVyIGdldERPTU9iamVjdCh2b2lkICpvYmplY3RIYW5kbGUp
OworICAgICAgICBzdGF0aWMgZ3BvaW50ZXIgcHV0RE9NT2JqZWN0KHZvaWQgKm9iamVjdEhhbmRs
ZSwgZ3BvaW50ZXIgd3JhcHBlcik7CisgICAgICAgIHN0YXRpYyB2b2lkIGZvcmdldERPTU9iamVj
dCh2b2lkICpvYmplY3RIYW5kbGUpOworICAgIH07Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEdkb21ET01CaW5kaW5nX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2RvbS9X
ZWJraXRET01PYmplY3RQcml2YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2dkb20vV2Via2l0RE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dkb20vR2RvbURPTU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9nZG9tL0dkb21ET01PYmplY3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24g
PGxrY2xAbGtjbC5uZXQ+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9A
ZnJlZWRlc2t0b3Aub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2luY2x1ZGUgIkdET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiR2RvbURPTU9i
amVjdC5oIgorI2luY2x1ZGUgIkdkb21ET01PYmplY3RQcml2YXRlLmgiCisKK2V4dGVybiAiQyIg
eworCitHX0RFRklORV9UWVBFKEdkb21ET01PYmplY3QsIGdkb21fZG9tX29iamVjdCwgR19UWVBF
X09CSkVDVCk7CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9pbml0KEdkb21ET01PYmpl
Y3QqIHJlcXVlc3QpCit7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBHRE9NX0RP
TV9PQkpFQ1RfR0VUX1BSSVZBVEUocmVxdWVzdCk7CisgICAgcmVxdWVzdC0+cHJpdiA9IHByaXY7
Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9maW5hbGl6ZShHT2JqZWN0KiBvYmpl
Y3QpCit7CisgICAgR19PQkpFQ1RfQ0xBU1MoZ2RvbV9kb21fb2JqZWN0X3BhcmVudF9jbGFzcykt
PmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lkIGdkb21fZG9tX29iamVjdF9jbGFz
c19pbml0KEdkb21ET01PYmplY3RDbGFzcyogcmVxdWVzdENsYXNzKQoreworICAgIEdfT0JKRUNU
X0NMQVNTKHJlcXVlc3RDbGFzcyktPmZpbmFsaXplID0gZ2RvbV9kb21fb2JqZWN0X2ZpbmFsaXpl
OworCisgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKHJlcXVlc3RDbGFzcywgc2l6ZW9mKEdk
b21ET01PYmplY3RQcml2YXRlKSk7Cit9CisKK30gLyogZXh0ZXJuICJDIiAqLworCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3RMaWJyYXJ5MS5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmpl
Y3RMaWJyYXJ5MS5wbQkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yR09iamVjdExpYnJhcnkxLnBtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1
MjUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEx1a2UgS2VubmV0aCBDYXNzb24gTGVp
Z2h0b24gPGxrY2xAbGtjbC5uZXQ+CisjIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8
c290b0BmcmVlZGVza3RvcC5vcmc+CisjIENvcHlyaWdodCAoQykgMjAwOCBBbHAgVG9rZXIgPGFs
cEBhdG9rZXIuY29tPgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhaW50IHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAt
IFN1aXRlIDMzMCwKKyMgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisKK3BhY2thZ2UgQ29k
ZUdlbmVyYXRvckdPYmplY3Q7CisKKyMgRGVmYXVsdCBMaWNlbmNlIFRlbXBsYXRlcworbXkgJGxp
Y2VuY2VUZW1wbGF0ZSA9IDw8ICJFT0YiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsXEBsa2NsLm5ldD4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBbHAgVG9rZXIgPGFscFxAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAw
OCBBcHBsZSBJbmMuCisgKi8KK0VPRgorCitteSAlaW1wbEluY2x1ZGVzID0gKCk7CitteSAlaGRy
SW5jbHVkZXMgPSAoKTsKK215ICVoZHJQcm9wSW5jbHVkZXMgPSAoKTsKK215ICVpbXBsVHlwZWRl
ZnMgPSAoKTsKKworIyBEZWZhdWx0IGNvbnN0cnVjdG9yCitzdWIgbmV3IHsKKyAgICBteSAkb2Jq
ZWN0ID0gc2hpZnQ7CisgICAgbXkgJHJlZmVyZW5jZSA9IHsgfTsKKworICAgICRjb2RlR2VuZXJh
dG9yID0gc2hpZnQ7CisgICAgJG91dHB1dERpciA9IHNoaWZ0OworCisgICAgYmxlc3MoJHJlZmVy
ZW5jZSwgJG9iamVjdCk7CisgICAgcmV0dXJuICRyZWZlcmVuY2U7Cit9CisKK3N1YiBmaW5pc2gg
eworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKK30KKworc3ViIENsc1RvR09ialR5cGUgeworICAg
IG15ICRjbGFzc05hbWUgPSBzaGlmdDsKKyAgICByZXR1cm4gdWMoZGVjYW1lbGl6ZSgkY2xhc3NO
YW1lKSkKK30KKworc3ViIEdldFBhcmVudENsYXNzTmFtZSB7CisgICAgbXkgJGRhdGFOb2RlID0g
c2hpZnQ7CisKKyAgICAjID8/IHF1ZT8/CisgICAgI3JldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICByZXR1cm4gIkdkb21ET01PYmplY3QiIGlmIEB7
JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwOworICAgIHJldHVybiAiR2RvbSIgLiAkY29kZUdlbmVy
YXRvci0+U3RyaXBNb2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKTsKK30KKworc3ViIEdldFBh
cmVudEdPYmpUeXBlIHsKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgICMgPz8gcXVl
Pz8KKyAgICAjcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBh
cmVudCJ9IGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkxlZ2FjeVBhcmVudCJ9
OworICAgIHJldHVybiAiR0RPTV9UWVBFX0RPTV9PQkpFQ1QiIGlmIEB7JGRhdGFOb2RlLT5wYXJl
bnRzfSBlcSAwOworICAgIHJldHVybiAiR0RPTV9UWVBFXyIgLiBDbHNUb0dPYmpUeXBlKCRjb2Rl
R2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUtPnBhcmVudHMoMCkpKTsKK30KKworCisj
IEFsZ29yaXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1YiBjYW1lbGl6
ZSB7CisgICAgbXkgJHMgPSBzaGlmdDsKKyAgICBqb2luKCcnLCBtYXB7IHVjZmlyc3QgJF8gfSBz
cGxpdCgvKD88PVtBLVphLXpdKV8oPz1bQS1aYS16XSl8XGIvLCAkcykpOworfQorCisjIEFsZ29y
aXRobSB0YWtlbiBmcm9tIFN0cmluZzo6Q2FtZWxDYXNlIDAuMDEKK3N1YiBkZWNhbWVsaXplIHsK
KyAgICBteSAkcyA9IHNoaWZ0OworICAgICRzID1+IHN7KFteYS16QS1aXT8pKFtBLVpdKikoW0Et
Wl0pKFthLXpdPyl9eworICAgICAgICBteSAkZmMgPSBwb3MoJHMpPT0wOworICAgICAgICBteSAo
JHAwLCRwMSwkcDIsJHAzKSA9ICgkMSxsYyQyLGxjJDMsJDQpOworICAgICAgICBteSAkdCA9ICRw
MCB8fCAkZmMgPyAkcDAgOiAnXyc7CisgICAgICAgICR0IC49ICRwMyA/ICRwMSA/ICIke3AxfV8k
cDIkcDMiIDogIiRwMiRwMyIgOiAiJHAxJHAyIjsKKyAgICAgICAgJHQ7CisgICAgfWdlOworICAg
ICRzOworfQorCitzdWIgR2V0SGRyTmFtZSB7CisgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVyYXRv
ci0+U3RyaXBNb2R1bGUoc2hpZnQpOworCisgICAgcmV0dXJuICJHZG9tJG5hbWUiOworfQorCitz
dWIgR2V0Q2xhc3NOYW1lIHsKKyAgICBteSAkbmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1v
ZHVsZShzaGlmdCk7CisKKyAgICByZXR1cm4gIkdkb20kbmFtZSI7Cit9CisKK3N1YiBHZXRHSW5j
bHVkZUhkciB7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAkbmFtZSA9IEdldEhkck5h
bWUoJHR5cGUpOworICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENsYXNzTmFtZSgkdHlwZSkp
OworCisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAg
cmV0dXJuICIiIGlmICR0eXBlIGVxICJjaGFyIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEg
ImZsb2F0IjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CisgICAgcmV0dXJu
ICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7
CisgICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOworICAgIHJl
dHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJldHVybiAiIiBpZiAk
dHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKKyAgICByZXR1cm4gIiIgaWYgJHR5cGUgZXEgIkV2ZW50
TGlzdGVuZXIiOworICAgIHJldHVybiAiUmFuZ2UuaCIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ci
OworICAgIHJldHVybiAiZ2RvbS9HZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiIGlmICR0
eXBlIGVxICJET01PYmplY3QiOworICAgIHJldHVybiAiIiBpZiAkdHlwZSBlcSAidW5zaWduZWQg
Y2hhciI7CisgICAgI3JldHVybiAiIiBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RP
IC0gRE9NIGNsYXNzIHdyYXBwZXIKKyAgICByZXR1cm4gImdsaWItb2JqZWN0LmgiIGlmICR0eXBl
IGVxICJET01TdHJpbmciOworICAgIHJldHVybiAiR2RvbU5vZGUuaCIgaWYgJHR5cGUgZXEgIkV2
ZW50VGFyZ2V0IjsKKworICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImZs
b2F0IjsKKworICAgIHJldHVybiAiZ2xpYi1vYmplY3QuaCIgaWYgJHR5cGUgZXEgImJvb2xlYW4i
OworCisgICAgcmV0dXJuICJnbGliLW9iamVjdC5oIiBpZiAkdHlwZSBlcSAidm9pZCI7CisKKyAg
ICByZXR1cm4gIiRuYW1lLmgiOworfQorCisjIHJldHVybnMgMSBpZiB3ZSBuZWVkIHRvIGNyZWF0
ZSBhIGdvYmplY3Qgd3JhcHBlciBhcm91bmQgdGhlIHJldHVybiByZXN1bHQKK3N1YiBJc0dET01D
bGFzc1R5cGUgeworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5hbWUgPSBHZXRDbGFz
c05hbWUoJHR5cGUpOworCisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7
CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuIDAgaWYg
JHR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJDb21w
YXJlSG93IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiZmxvYXQiOworICAgIHJldHVybiAw
IGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJib29sZWFu
IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAiY2hhciI7CisgICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgImxvbmciOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJzaG9ydCI7CisgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgInVjaGFyIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5z
aWduZWQiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJpbnQiOworICAgIHJldHVybiAwIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ1bnNp
Z25lZCBsb25nIjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25n
IjsKKyAgICByZXR1cm4gMCBpZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICNyZXR1
cm4gMCBpZiAkdHlwZSBlcSAiUkdCQ29sb3IiOyAjIFhYWCBUT0RPIC0gRE9NIGNsYXNzIHdyYXBw
ZXIKKworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAxOwor
fQorCitzdWIgR2V0UHJvcEdUeXBlIHsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICRu
YW1lID0gR2V0Q2xhc3NOYW1lKCR0eXBlKTsKKworICAgIHJldHVybiAic3RyaW5nIiBpZiAkdHlw
ZSBlcSAiRE9NU3RyaW5nIjsKKyAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBlcSAiZmxvYXQi
OworICAgIHJldHVybiAibm90eWV0c3VwcG9ydGVkIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7
CisgICAgcmV0dXJuICJkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAi
Ym9vbGVhbiIgaWYgJHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiY2hhciIgaWYgJHR5
cGUgZXEgImNoYXIiOworICAgIHJldHVybiAibG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOworICAg
IHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAidWNoYXIiIGlm
ICR0eXBlIGVxICJ1Y2hhciI7CisgICAgcmV0dXJuICJ1aW50IiBpZiAkdHlwZSBlcSAidW5zaWdu
ZWQiOworICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICByZXR1cm4gInVp
bnQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBpbnQiOworICAgIHJldHVybiAidWludDY0IiBpZiAk
dHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKKyAgICByZXR1cm4gInVsb25nIiBpZiAkdHlw
ZSBlcSAidW5zaWduZWQgbG9uZyI7CisgICAgcmV0dXJuICJ1c2hvcnQiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBzaG9ydCI7CisgICAgI3JldHVybiAidWxvbmciIGlmICR0eXBlIGVxICJSR0JDb2xv
ciI7ICMgWFhYIFRPRE8gLSBET00gY2xhc3Mgd3JhcHBlcgorCisgICAgcmV0dXJuICJvYmplY3Qi
OworfQorCitzdWIgR2V0R1R5cGUgeworICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgJG5h
bWUgPSBHZXRDbGFzc05hbWUoJHR5cGUpOworICAgICNteSAkbmFtZSA9IGNhbWVsaXplKEdldENs
YXNzTmFtZSgkdHlwZSkpOworCisgICAgcmV0dXJuICJHZG9tTm9kZSAqIiBpZiAkdHlwZSBlcSAi
RXZlbnRUYXJnZXQiOworICAgIHJldHVybiAiZ2NoYXIgKiIgaWYgJHR5cGUgZXEgIkRPTVN0cmlu
ZyI7CisgICAgcmV0dXJuICJnZmxvYXQiIGlmICR0eXBlIGVxICJmbG9hdCI7CisgICAgcmV0dXJu
ICJXZWJDb3JlOjpSYW5nZTo6Q29tcGFyZUhvdyAiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsK
KyAgICByZXR1cm4gImdkb3VibGUiIGlmICR0eXBlIGVxICJkb3VibGUiOworICAgIHJldHVybiAi
Z2Jvb2xlYW4iIGlmICR0eXBlIGVxICJib29sZWFuIjsKKyAgICByZXR1cm4gImdjaGFyIiBpZiAk
dHlwZSBlcSAiY2hhciI7CisgICAgcmV0dXJuICJnbG9uZyIgaWYgJHR5cGUgZXEgImxvbmciOwor
ICAgIHJldHVybiAiZ3Nob3J0IiBpZiAkdHlwZSBlcSAic2hvcnQiOworICAgIHJldHVybiAiZ3Vj
aGFyIiBpZiAkdHlwZSBlcSAidWNoYXIiOworICAgIHJldHVybiAiZ3VpbnQiIGlmICR0eXBlIGVx
ICJ1bnNpZ25lZCI7CisgICAgcmV0dXJuICJnaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKKyAgICBy
ZXR1cm4gImd1aW50IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgaW50IjsKKyAgICByZXR1cm4gImd1
bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciOworICAgIHJldHVybiAiZ3VpbnQ2NCIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CisgICAgcmV0dXJuICJndXNob3J0IiBp
ZiAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgICNyZXR1cm4gImd1bG9uZyIgaWYgJHR5
cGUgZXEgIlJHQkNvbG9yIjsgIyBYWFggVE9ETyAtIERPTSBjbGFzcyB3cmFwcGVyCisKKyAgICBy
ZXR1cm4gInZvaWQiIGlmICR0eXBlIGVxICJ2b2lkIjsKKworICAgIHJldHVybiAiJG5hbWUgKiI7
Cit9CisKK3N1YiBnZXRJbmNIZHIgeworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAk
aW5jbHVkZUhkciA9IEdldEdJbmNsdWRlSGRyKCR0eXBlKTsKKyAgICBpZiAoJGluY2x1ZGVIZHIp
IHsKKyAgICAgICAgaWYgKCR0eXBlIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAgIHJl
dHVybiAiR2RvbU5vZGUuaCI7CisgICAgICAgIH0gZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3Qi
KSB7CisgICAgICAgICAgICAjIFhYWCA/Pz8/IHd0Zj8/IDopIGNvcGllZCBmcm9tIGpzZ2VuZXJh
dG9yLgorICAgICAgICAgICAgcmV0dXJuICJHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgi
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICRpbmNsdWRlSGRyOworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiAiIjsKK30KKworc3ViIGFkZFByb3BJbmNIZHIgewor
ICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAkaGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsK
KyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICBpZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBl
KSkgeworICAgICAgICAgICAgJGhkciA9IHN1YnN0cigkaGRyLCAwLCBsZW5ndGgoJGhkciktMik7
CisgICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJnZG9tLyIuJGhkci4iLmgifSA9IDE7Cisg
ICAgICAgICAgICAkaGRyUHJvcEluY2x1ZGVzeyJnZG9tLyIuJGhkci4iUHJpdmF0ZS5oIn0gPSAx
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGhkclByb3BJbmNsdWRlc3skaGRyfSA9
IDE7CisgICAgICAgIH0KKyAgICB9CisKK30KKworc3ViIGFkZEluY0hkciB7CisgICAgbXkgJHR5
cGUgPSBzaGlmdDsKKworICAgIG15ICRoZHIgPSBnZXRJbmNIZHIoJHR5cGUpOworICAgIGlmICgk
aGRyIG5lICIiKSB7CisgICAgICAgIGlmIChJc0dET01DbGFzc1R5cGUoJHR5cGUpKSB7CisgICAg
ICAgICAgICAkaGRySW5jbHVkZXN7Imdkb20vJGhkciJ9ID0gMTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICRoZHJJbmNsdWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9CisK
K30KKworc3ViIGFkZEluY0JvZHkgeworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICBteSAk
aGRyID0gZ2V0SW5jSGRyKCR0eXBlKTsKKyAgICBpZiAoJGhkciBuZSAiIikgeworICAgICAgICBp
ZiAoSXNHRE9NQ2xhc3NUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
Z2RvbS8kaGRyIn0gPSAxOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3skaGRyfSA9IDE7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N1YiBHZXRQcml2Rm4gewor
ICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CisgICAgbXkgJGxjYXNlX2lmYWNlbmFtZSA9
IHNoaWZ0OworICAgIG15ICRyZXMgPSBzaGlmdDsKKyAgICBteSAkcGFybSA9IHNoaWZ0OworCisg
ICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgcmV0dXJu
ICJXZWJDb3JlOjpOb2RlICogJHJlcyA9IFdlYktpdDo6Y29yZShzZWxmKTsiOworICAgIH0KKyAg
ICByZXR1cm4gIldlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKiAkcmVzID0gV2ViS2l0Ojpjb3Jl
KCRwYXJtKTsiOworfQorCitzdWIgc2tpcFByb3BUZW1wb3JhcmlseSB7CisgICAgbXkgJHR5cGUg
PSBzaGlmdDsKKyAgICBteSAkcHJvcF90eXBlID0gc2hpZnQ7CisKKyAgICAjIHNraXAgTWVkaWFM
aXN0CisgICAgaWYgKCRwcm9wX3R5cGUgZXEgInN0eWxlc2hlZXRzOjpNZWRpYUxpc3QiKSB7Cisg
ICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBPYmplY3QKKyAgICBpZiAoJHBy
b3BfdHlwZSBlcSAiT2JqZWN0IikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAj
IHNraXAgRXZlbnQKKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiRXZlbnQiKSB7CisgICAgICAgIHJl
dHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBDcnlwdG8KKyAgICBpZiAoJHByb3BfdHlwZSBl
cSAiQ3J5cHRvIikgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIHNraXAgQ1NT
VmFyaWFibGVzRGVjbGFyYXRpb24KKyAgICBpZiAoJHByb3BfdHlwZSBlcSAiQ1NTVmFyaWFibGVz
RGVjbGFyYXRpb24iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbgorICAgICNpZiAoJHByb3BfdHlwZSBlcSAiQ1NTU3R5
bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjICAgIHJldHVybiAxOworICAgICN9CisKKyAgICAjIHNr
aXAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24KKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkNT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uIikgeworICAgICMgICAgcmV0dXJuIDE7CisgICAgI30K
KworICAgICMgc2tpcCBFdmVudExpc3RlbmVyCisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkV2ZW50
TGlzdGVuZXIiKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgICMgc2tpcCBET01X
aW5kb3cKKyAgICAjaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAjICAgIHJl
dHVybiAxOworICAgICN9CisKKyAgICAjIHNraXAgQ29uc3RydWN0b3JzICh3aGF0ZXZlciB0aGV5
IGFyZSkgZm9yIG5vdy4KKyAgICBpZiAoJHByb3BfdHlwZSA9fiAvQ29uc3RydWN0b3IkLykgewor
ICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAjIGNhbnZhczJkLi4uLgorICAgIGlmICgk
cHJvcF90eXBlIGVxICJjdXN0b20iKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAg
IGlmICgkcHJvcF90eXBlIGVxICJBcnJheSIpIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQor
CisgICAgaWYgKCRwcm9wX3R5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsKKyAgICAgICAgcmV0dXJu
IDE7CisgICAgfQorCisgICAgIyBUT0RPOiBTVkcKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklz
UG9kVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBl
KSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N1YiBV
c2VzTWFudWFsVG9HRE9NSW1wbGVtZW50YXRpb24geworICAgIG15ICR0eXBlID0gc2hpZnQ7CisK
KyAgICAjIHNraXBwZWQgb3V0IENhbnZhc1BpeGVsQXJyYXkgLSBzZWUgSlNDYW52YXNQaXhlbEFy
cmF5Q3VzdG9tLmNwcCBmb3Igd2h5LgorICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJOb2RlIiBv
ciAkdHlwZSBlcSAiRG9jdW1lbnQiIG9yICR0eXBlIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IKKyAg
ICAgICR0eXBlIGVxICJTVkdQYXRoU2VnIiBvciAkdHlwZSBlcSAiU3R5bGVTaGVldCIgb3IgJHR5
cGUgZXEgIkNTU1J1bGUiIG9yICR0eXBlIGVxICJDU1NWYWx1ZSIgb3IKKyAgICAgICR0eXBlIGVx
ICJPYmplY3QiIG9yCisJJHR5cGUgZXEgIkV2ZW50IiBvciAkdHlwZSBlcSAiRWxlbWVudCIgb3Ig
JHR5cGUgZXEgIlRleHQiOworICAgIHJldHVybiAwOworfQorCisKKyMgR2VuZXJhdGUgaGVhZGVy
IGFuZCBpbXBsCitzdWIgR2VuZXJhdGUgeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBt
eSAkZGF0YU5vZGUgPSBzaGlmdDsKKworICAgIG15ICRoYXNMZWdhY3lQYXJlbnQgPSAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJMZWdhY3lQYXJlbnQifTsKKyAgICBteSAkaGFzUmVh
bFBhcmVudCA9IEB7JGRhdGFOb2RlLT5wYXJlbnRzfSA+IDA7CisgICAgbXkgJGhhc1BhcmVudCA9
ICRoYXNMZWdhY3lQYXJlbnQgfHwgJGhhc1JlYWxQYXJlbnQ7CisgICAgbXkgJHBhcmVudENsYXNz
TmFtZSA9IEdldFBhcmVudENsYXNzTmFtZSgkZGF0YU5vZGUpOworICAgIG15ICRwYXJlbnRHT2Jq
VHlwZSA9IEdldFBhcmVudEdPYmpUeXBlKCRkYXRhTm9kZSk7CisgICAgbXkgJGludGVyZmFjZU5h
bWUgPSAkZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJGNsYXNzTmFtZSA9IEdldENsYXNzTmFtZSgk
aW50ZXJmYWNlTmFtZSk7CisgICAgbXkgJGhkck5hbWUgPSBHZXRIZHJOYW1lKCRpbnRlcmZhY2VO
YW1lKTsKKworICAgICMgQWRkIHRoZSBkZWZhdWx0IGltcGwgaGVhZGVyIHRlbXBsYXRlCisgICAg
QGNQcmVmaXggPSBzcGxpdCgiXHIiLCAkbGljZW5jZVRlbXBsYXRlKTsKKyAgICBwdXNoKEBjUHJl
Zml4LCAiXG4iKTsKKworICAgICRpbXBsSW5jbHVkZXN7IkdET01CaW5kaW5nLmgifSA9IDE7Cisg
ICAgJGltcGxJbmNsdWRlc3siZ2RvbS8kaGRyTmFtZS5oIn0gPSAxOworICAgICRpbXBsSW5jbHVk
ZXN7Imdkb20vJHtoZHJOYW1lfVByaXZhdGUuaCJ9ID0gMTsKKworICAgIG15ICRwYXJlbnRJbnRl
cmZhY2VOYW1lID0gIkRPTU9iamVjdCI7CisgICAgbXkgJHBhcmVudEdJZmFjZU5hbWUgPSAiR0RP
TU9iamVjdCI7CisgICAgbXkgJHBhcmVudEhkck5hbWUgPSAiR2RvbURPTU9iamVjdCI7CisgICAg
aWYgKCRwYXJlbnRDbGFzc05hbWUgbmUgIkdPYmplY3QiKSB7CisgICAgICAgICRwYXJlbnRJbnRl
cmZhY2VOYW1lID0gc3Vic3RyKCRwYXJlbnRDbGFzc05hbWUsIDQpOworICAgICAgICBpZiAoJHBh
cmVudEludGVyZmFjZU5hbWUgbmUgIkRPTU9iamVjdCIpIHsKKyAgICAgICAgICAgICRwYXJlbnRH
SWZhY2VOYW1lID0gIkdET00iLnN1YnN0cigkcGFyZW50Q2xhc3NOYW1lLCA0KTsKKyAgICAgICAg
ICAgICRwYXJlbnRIZHJOYW1lID0gR2V0SGRyTmFtZSgkcGFyZW50SW50ZXJmYWNlTmFtZSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcGFyZW50R0lmYWNlTmFtZSA9ICJHRE9NT2Jq
ZWN0IjsKKyAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyJnZG9tLyR7cGFyZW50SGRy
TmFtZX0uaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5h
bWV9UHJpdmF0ZS5oIn0gPSAxOworICAgICAgICAkaGRySW5jbHVkZXN7Imdkb20vJHtwYXJlbnRI
ZHJOYW1lfS5oIn0gPSAxOworICAgICAgICAjJGhkckluY2x1ZGVzeyJQcml2YXRlJHtwYXJlbnRI
ZHJOYW1lfS5oIn0gPSAwOworICAgIH0KKworICAgICMgVE9ETyAtIG1ha2UgdGhlc2Ugb25seSBp
bmNsdWRlIHdoZXJlIG5lZWRlZCwgbGlrZXdpc2UgdGhlCisgICAgIyBmdW5jdGlvbiBkZWNsYXJh
dGlvbnMgdG9HRE9NLCB0b28KKyAgICAkaW1wbEluY2x1ZGVzeyJOb2RlLmgifSA9IDE7CisgICAg
JGltcGxJbmNsdWRlc3siTm9kZUxpc3QuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFbGVt
ZW50LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NTVmFsdWUuaCJ9ID0gMTsKKyAgICAk
aW1wbEluY2x1ZGVzeyJDU1NSdWxlLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siQ1NTUnVs
ZUxpc3QuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJDU1NTdHlsZURlY2xhcmF0aW9uLmgi
fSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siSFRNTENvbGxlY3Rpb24uaCJ9ID0gMTsKKyAgICAj
JGltcGxJbmNsdWRlc3siU1ZHUGF0aFNlZy5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7IlN0
eWxlU2hlZXQuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJFdmVudC5oIn0gPSAxOworICAg
ICRpbXBsSW5jbHVkZXN7IkNhbnZhc1BpeGVsQXJyYXkuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1
ZGVzeyJET01XaW5kb3cuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJUZXh0LmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siQ291bnRlci5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7
IlJlY3QuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJJbWFnZURhdGEuaCJ9ID0gMTsKKyAg
ICAkaW1wbEluY2x1ZGVzeyJDYW52YXNHcmFkaWVudC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVk
ZXN7IlRleHRNZXRyaWNzLmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siRGF0YWJhc2UuaCJ9
ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyJET01TZWxlY3Rpb24uaCJ9ID0gMTsKKyAgICAkaW1w
bEluY2x1ZGVzeyJYUGF0aFJlc3VsdC5oIn0gPSAxOworICAgICRpbXBsSW5jbHVkZXN7Imdkb20v
Q29udmVydFRvR0NoYXJQcml2YXRlLmgifSA9IDE7CisKKyAgICBwdXNoKEBjQm9keSwgIm5hbWVz
cGFjZSBXZWJLaXQge1xuIik7CisKKyAgICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMg
cmVzcGVjdGluZyBQT0RUeXBlIGZsYWcKKyAgICBteSAkcG9kVHlwZSA9ICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlBPRFR5cGUifTsKKyAgICBteSAkcGFzc1R5cGUgPSAkcG9kVHlw
ZSA/ICJKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPioiIDogIiRpbnRlcmZhY2VOYW1lKiI7
CisKKyAgICBpZiAoIVVzZXNNYW51YWxUb0dET01JbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlTmFt
ZSkpIHsKKwkkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKK2dwb2ludGVyIHRvR0RPTShXZWJDb3Jl
OjokcGFzc1R5cGUgb2JqKQoreworICAgIGlmICghb2JqKQorCXJldHVybiBOVUxMOworCisgICAg
aWYgKGdwb2ludGVyIHJldCA9IEdET01PYmplY3RDYWNoZTo6Z2V0RE9NT2JqZWN0KG9iaikpCisJ
cmV0dXJuIHJldDsKKworICAgIHJldHVybiBHRE9NT2JqZWN0Q2FjaGU6OnB1dERPTU9iamVjdChv
YmosIFdlYktpdDo6d3JhcCR7aW50ZXJmYWNlTmFtZX0ob2JqKSk7Cit9CitFT0YKKworICAgICAg
ICBwdXNoKEBjQm9keSwgJGltcGxDb250ZW50KTsKKyAgICB9CisKKyAgICBteSAkaW1wbENvbnRl
bnQgPSAiIjsKKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBuYW1lc3BhY2UgV2ViS2l0ICovXG4i
KTsKKworICAgICMgWFhYIFRPRE8gcHVzaChAY0JvZHksICJ1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTtcblxuIik7CisgICAgcHVzaChAY0JvZHksICJleHRlcm4gXCJDXCIge1xuXG4iKTsKKworICAg
ICMgQWRkIHRoZSBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQorICAgIEBoUHJlZml4ID0gc3BsaXQo
IlxyIiwgJGxpY2VuY2VUZW1wbGF0ZSk7CisgICAgI3B1c2goQGhQcmVmaXgsICJcbiIpOworCisg
ICAgIyBIZWFkZXIgZ3VhcmQKKyAgICBteSAkZ3VhcmQgPSAiX18iIC4gJGNsYXNzTmFtZSAuICJf
SF9fIjsKKworICAgIG15ICRjbHNDYXBzID0gc3Vic3RyKENsc1RvR09ialR5cGUoJGNsYXNzTmFt
ZSksIDUpOworICAgIG15ICRsY2FzZV9pZmFjZW5hbWUgPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgk
aW50ZXJmYWNlTmFtZSk7CisgICAgI215ICRwYXJlbnRDbHNDYXBzID0gIkdET01fIiAuIENsc1Rv
R09ialR5cGUoJHBhcmVudEludGVyZmFjZU5hbWUpOworCisgICAgQGhQcmVmaXhHdWFyZCA9IDw8
ICJFT0YiOworI2lmbmRlZiAkZ3VhcmQKKyNkZWZpbmUgJGd1YXJkCitFT0YKKworICAgICRpbXBs
Q29udGVudCA9IDw8ICJFT0YiOworR19CRUdJTl9ERUNMUworCitFT0YKKworICAgIHB1c2goQGhC
b2R5UHJlLCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisK
KyNkZWZpbmUgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30gICAgICAgICAgICAoJHtsY2FzZV9pZmFjZW5h
bWV9X2dldF90eXBlKCkpCisjZGVmaW5lIEdET01fJHtjbHNDYXBzfShvYmopICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBHRE9NX1RZUEVfJHtjbHNDYXBzfSwg
JHtjbGFzc05hbWV9KSkKKyNkZWZpbmUgR0RPTV8ke2Nsc0NhcHN9X0NMQVNTKGtsYXNzKSAgICAo
R19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIEdET01fVFlQRV8ke2Nsc0NhcHN9LCAk
Y2xhc3NOYW1lKUNsYXNzKQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc30ob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30p
KQorI2RlZmluZSBHRE9NX0lTXyR7Y2xzQ2Fwc31fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfVFlQRSgoa2xhc3MpLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30pKQorI2RlZmluZSBHRE9N
XyR7Y2xzQ2Fwc31fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChv
YmopLCAgR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfUNsYXNzKSkKKwordHlwZWRl
ZiBzdHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUgJHtjbGFzc05hbWV9UHJpdmF0ZTsKKworc3Ry
dWN0IF8ke2NsYXNzTmFtZX0geworICAgICR7cGFyZW50Q2xhc3NOYW1lfSBwYXJlbnRfaW5zdGFu
Y2U7CisgICAgJHtjbGFzc05hbWV9UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfJHtjbGFz
c05hbWV9Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJL
SVRfQVBJIEdUeXBlCiske2xjYXNlX2lmYWNlbmFtZX1fZ2V0X3R5cGUgKHZvaWQpOworCitFT0YK
KworICAgIHB1c2goQGhCb2R5LCAkaW1wbENvbnRlbnQpOworCisgICAgJGltcGxDb250ZW50ID0g
PDwgIkVPRiI7CisjaWZuZGVmICR7Z3VhcmR9X1BST1BfCisjZGVmaW5lICR7Z3VhcmR9X1BST1Bf
CitFT0YKKworICAgIHB1c2goQGhCb2R5UHJvcFByZSwgJGltcGxDb250ZW50KTsKKworICAgIHB1
c2goQGhCb2R5UHJvcCwgIkdfQkVHSU5fREVDTFNcbiIpOworCisgICAgJGhkclByb3BJbmNsdWRl
eyJnbGliLW9iamVjdC5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiZ2RvbS8ke3BhcmVu
dEhkck5hbWV9UHJpdmF0ZS5oIn0gPSAxOworICAgICRoZHJQcm9wSW5jbHVkZXsiJHtpbnRlcmZh
Y2VOYW1lfS5oIn0gPSAxOworCisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS8ke3BhcmVudEhkck5h
bWV9LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siJHtpbnRlcmZhY2VOYW1lfS5oIn0gPSAx
OworCisgICAgJGltcGxUeXBlZGVmc3siJGNsYXNzTmFtZSJ9ID0gMTsKKyAgICAkaW1wbFR5cGVk
ZWZzeyIke2NsYXNzTmFtZX1DbGFzcyJ9ID0gMTsKKworICAgICRpbXBsQ29udGVudCA9IDw8ICJF
T0YiOworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgImdsaWItb2JqZWN0LmgiCisjaW5j
bHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KKyNpbmNsdWRlIDx3ZWJraXQvd2Via2l0cHJp
dmF0ZS5oPiAKKyNpbmNsdWRlICJET01XaW5kb3cuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhp
cyBvcHRpb25hbCAqLworI2luY2x1ZGUgIk5vZGUuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhp
cyBvcHRpb25hbCAqLworI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIiAvKiB5dWtrOiBUT0RPIC0g
bWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzUGF0dGVybi5oIiAvKiB5dWtr
OiBUT0RPIC0gbWFrZSB0aGlzIG9wdGlvbmFsICovCisjaW5jbHVkZSAiQ2FudmFzR3JhZGllbnQu
aCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIkNhbnZh
c1N0eWxlLmgiIC8qIHl1a2s6IFRPRE8gLSBtYWtlIHRoaXMgb3B0aW9uYWwgKi8KKyNpbmNsdWRl
ICJDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIgLyogeXVrazogVE9ETyAtIG1ha2UgdGhpcyBv
cHRpb25hbCAqLworI2luY2x1ZGUgPGdkb20vR2RvbURPTU9iamVjdFByaXZhdGUuaD4gLyogeXVr
azogVE9ETyAtIG1ha2UgdGhpcyBvcHRpb25hbCAqLworI2luY2x1ZGUgIiR7aW50ZXJmYWNlTmFt
ZX0uaCIKKyNpbmNsdWRlIDxnZG9tLyR7aGRyTmFtZX0uaD4KKyNpbmNsdWRlIDxnZG9tLyR7aGRy
TmFtZX1Qcml2YXRlLmg+CisjaW5jbHVkZSA8Z2RvbS8ke2hkck5hbWV9cHJvcHMuaD4KKworI2lu
Y2x1ZGUgImdkb20vQ29udmVydFRvR0NoYXJQcml2YXRlLmgiCisKKyNpbmNsdWRlICJDYW52YXNQ
aXhlbEFycmF5LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0LmgiCisjaW5j
bHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJDU1NSdWxlLmgiCisjaW5jbHVkZSAiSFRNTENv
bGxlY3Rpb24uaCIKKyNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCisjaW5jbHVkZSA8Z2RvbS9HZG9tRXZlbnQu
aD4KKworCitFT0YKKworICAgIHB1c2goQGNCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKworICAg
ICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOworCitHX0JFR0lOX0RFQ0xTCisKK0dfREVGSU5FX1RZ
UEUoJHtjbGFzc05hbWV9LCAke2xjYXNlX2lmYWNlbmFtZX0sICR7cGFyZW50R09ialR5cGV9KTsK
Kworc3RydWN0IF8ke2NsYXNzTmFtZX1Qcml2YXRlIHsKKyAgICBSZWZQdHI8V2ViQ29yZTo6JHtp
bnRlcmZhY2VOYW1lfT4gY29yZU9iamVjdDsKK307CisKK0dfRU5EX0RFQ0xTCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCiske2NsYXNzTmFtZX0gKgord3JhcCR7aW50ZXJmYWNlTmFtZX0oUGFzc1Jl
ZlB0cjxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9PiBwcnBDb3JlT2JqZWN0KQoreworICAgIFJl
ZlB0cjxXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9PiBjb3JlT2JqZWN0ID0gcHJwQ29yZU9iamVj
dDsKKworICAgICR7Y2xhc3NOYW1lfSAqd3JhcHBlciA9IEdET01fJHtjbHNDYXBzfShnX29iamVj
dF9uZXcoR0RPTV9UWVBFXyR7Y2xzQ2Fwc30sIE5VTEwpKTsKKyAgICBHZG9tRE9NT2JqZWN0UHJp
dmF0ZSogcHJpdiA9IEdET01fRE9NX09CSkVDVF9HRVRfUFJJVkFURShHRE9NX0RPTV9PQkpFQ1Qo
d3JhcHBlcikpOworCisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqcmF3Q29yZU9iamVj
dCA9IGNvcmVPYmplY3QuZ2V0KCk7CisgICAgcmF3Q29yZU9iamVjdC0+cmVmKCk7CisgICAgcHJp
di0+Y29yZU9iamVjdCA9IHJhd0NvcmVPYmplY3Q7CisKKyAgICByZXR1cm4gd3JhcHBlcjsKK30K
KworV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCitjb3JlKCR7Y2xhc3NOYW1lfSAqcmVxdWVz
dCkKK3sKKyAgICBpZiAocmVxdWVzdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKwor
ICAgIEdkb21ET01PYmplY3RQcml2YXRlKiBwcml2ID0gR0RPTV9ET01fT0JKRUNUX0dFVF9QUklW
QVRFKEdET01fRE9NX09CSkVDVChyZXF1ZXN0KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdl
YkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0gKj4ocHJpdi0+Y29yZU9iamVjdCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCitFT0YKKyAgICBwdXNoKEBjQm9keVByaXYsICRpbXBsQ29udGVu
dCk7CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICBteSAkZnVuY3Rpb25OYW1lUHJlZml4ID0gJGxj
YXNlX2lmYWNlbmFtZTsgCisgIFNLSVBQUk9QOiBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRh
dGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkcHJvcF9uYW1lID0gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5uYW1lOworICAgICAgICBteSAkcHJvcE5hbWUgPSBkZWNhbWVsaXplKCRw
cm9wX25hbWUpOworICAgICAgICBteSAkcHJvcF90eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT50eXBlOworICAgICAgICBteSAkdHlwZSA9IEdldEdUeXBlKCRwcm9wX3R5cGUpOworICAgICAg
ICBteSAkZnVuY3Rpb25TaWcgPSAiJGNsYXNzTmFtZSAqdGhpeiI7CisgICAgICAgIAorICAgICAg
ICBteSAkcmVmbGVjdCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlJlZmxlY3QifTsKKyAgICAgICAgbXkgJHJlZmxlY3RVUkwgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0VVJMIn07CisKKyMgICAgICAgIG15
ICRjdXN0b20gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b20ifTsKKyMKKyMgICAgICAgIGlmICgkcHJvcF9uYW1lIG5lICdyZXNwb25zZVRleHQnKSB7
ICMgYWxsb3cgWE1MSHR0cFJlcXVlc3QgcmVzcG9uc2VUZXh0CisjICAgICAgICAgICAgaWYgKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9
KSB7CisjICAgICAgICAgICAgICAgIG5leHQgU0tJUFBST1A7CisjICAgICAgICAgICAgfQorIyAg
ICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5oIn0gPSAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKyAgICAgICAgJGlt
cGxJbmNsdWRlc3siQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMSBpZiAkcHJvcF90
eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIjsKKworICAgICAgICAjIHNraXAgSmF2YVNjcmlw
dENhbGxGcmFtZS50eXBlCisgICAgICAgIGlmICgoJHByb3BfbmFtZSBlcSAidHlwZSIpICYmICgk
aW50ZXJmYWNlTmFtZSBlcSAiSmF2YVNjcmlwdENhbGxGcmFtZSIpKXsKKyAgICAgICAgICAgIG5l
eHQgU0tJUFBST1A7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2tpcFByb3BUZW1wb3Jhcmls
eSgkdHlwZSwgJHByb3BfdHlwZSkpIHsKKyAgICAgICAgICAgIG5leHQgU0tJUFBST1A7CisgICAg
ICAgIH0KKworICAgICAgICBhZGRQcm9wSW5jSGRyKCRwcm9wX3R5cGUpOworCisgICAgICAgICNw
dXNoKEBoQm9keVByb3AsICJXRUJLSVRfQVBJICR0eXBlXG4kZnVuY3Rpb25OYW1lUHJlZml4IiAu
ICJfcHJvcF9nZXRfIiAuICIkcHJvcE5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworCisgICAg
ICAgICNwdXNoKEBoQm9keVByb3AsICJXRUJLSVRfQVBJIHZvaWRcbiRmdW5jdGlvbk5hbWVQcmVm
aXgiIC4gIl9wcm9wX3NldF8iIC4gIiRwcm9wTmFtZSAoJGZ1bmN0aW9uU2lnLCAkdHlwZSIgLiAi
dmFsdWUpO1xuXG4iKTsKKyAgICB9CisKKyAgICAjIFByb3BlcnRpZXMKKyAgICAkaW1wbENvbnRl
bnQgPSA8PCAiRU9GIjsKK0dfQkVHSU5fREVDTFMKKworZW51bSB7CisgICAgQlJPV1NFUl9FVkVO
VCwKKyAgICBMQVNUX1NJR05BTAorfTsKKworc3RhdGljIGd1aW50IGV2ZW50X3NpZ25hbHNbTEFT
VF9TSUdOQUxdID0geyAwLCB9OworCitlbnVtIHsKKyAgICBQUk9QXzAsCitFT0YKKyAgICBwdXNo
KEBjQm9keVByaXYsICRpbXBsQ29udGVudCk7CisKKyAgICBteSBAdHh0X2luc3RhbGxfcHJvcHMg
PSAoKTsKKyAgICBteSBAdHh0X3NldF9wcm9wcyA9ICgpOworICAgIG15IEB0eHRfZ2V0X3Byb3Bz
ID0gKCk7CisKKyAgICBteSAkcHJpdl9mbiA9IEdldFByaXZGbigkaW50ZXJmYWNlTmFtZSwgJHts
Y2FzZV9pZmFjZW5hbWV9LCAiZ3NlbGYiLCAic2VsZiIpOworCisgICAgbXkgJHR4dF9nZXRfcHJv
cCA9IDw8ICJFT0YiOworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X19nZXRfcHJvcGVy
dHlfZm4oR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICAgICAgICAgICAg
ICAgIEdWYWx1ZSAqIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAqIHBz
cGVjKQoreworICAgICR7Y2xhc3NOYW1lfSAqc2VsZiA9IEdET01fJHtjbHNDYXBzfShvYmplY3Qp
OworICAgICRwcml2X2ZuCisgICAgc3dpdGNoIChwcm9wX2lkKSB7CitFT0YKKyAgICBwdXNoKEB0
eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9wcm9wKTsKKworICAgIG15ICR0eHRfc2V0X3Byb3AgPSA8
PCAiRU9GIjsKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9fc2V0X3Byb3BlcnR5X2Zu
KEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgICAgICAgICAgICAgICAgICBj
b25zdCBHVmFsdWUgKiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKiBw
c3BlYykKK3sKKyAgICAke2NsYXNzTmFtZX0gKnNlbGYgPSBHRE9NXyR7Y2xzQ2Fwc30ob2JqZWN0
KTsKKyAgICAkcHJpdl9mbgorICAgIHN3aXRjaCAocHJvcF9pZCkgeworRU9GCisgICAgcHVzaChA
dHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisgICAgIyBJdGVyYXRlIG92ZXIgdGhlIGlu
dGVyZmFjZSBhdHRyaWJ1dGVzIGFuZCBnZW5lcmF0ZSBhIHByb3BlcnR5IGZvcgorICAgICMgZWFj
aCBvbmUgb2YgdGhlbS4KKyAgU0tJUEVOVU06CisgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChA
eyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAgICAgbXkgJHByb3BfbmFtZSA9ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKKyAgICAgICAgbXkgJHNldHByb3BfbmFtZV9mbiA9ICRj
b2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRwcm9wX25hbWUpOworICAgICAgICBteSAkZ2V0cHJv
cF9uYW1lX2ZuID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHByb3BfbmFtZSk7CisKKyAg
ICAgICAgbXkgJHByb3BOYW1lID0gZGVjYW1lbGl6ZSgkcHJvcF9uYW1lKTsKKyAgICAgICAgbXkg
JHByb3BDYXBzID0gdWMoJHByb3BOYW1lKTsKKyAgICAgICAgbXkgJHByb3BfdHlwZSA9ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgbXkgJHR5cGUgPSBHZXRHVHlwZSgkcHJv
cF90eXBlKTsKKyAgICAgICAgbXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BDYXBzfSI7Cisg
ICAgICAgIG15ICR7cHJvcF9ndHlwZX0gPSBkZWNhbWVsaXplKCRwcm9wX3R5cGUpOworICAgICAg
ICBpZiAoJHByb3BfZ3R5cGUgZXEgImV2ZW50X3RhcmdldCIpIHsKKyAgICAgICAgICAgICRwcm9w
X2d0eXBlID0gIm5vZGUiOworICAgICAgICB9CisgICAgICAgIG15ICR7cHJvcEdUeXBlfSA9IHVj
KCRwcm9wX2d0eXBlKTsKKyAgICAgICAgbXkgJGxjYXNlX2d0eXBlbmFtZSA9ICJnZG9tXyIgLiAk
cHJvcF9ndHlwZTsKKworICAgICAgICBteSAkcmVmbGVjdCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifTsKKyAgICAgICAgbXkgJHJlZmxlY3RV
UkwgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0
VVJMIn07CisgICAgICAgIG15ICRnZXRhcmcgPSAiIjsKKyAgICAgICAgbXkgJHNldGFyZyA9ICIi
OworICAgICAgICBteSAkY29udGVudEF0dHJpYnV0ZU5hbWUgPSAiIjsKKworICAgICAgICBpZiAo
JHJlZmxlY3QgfHwgJHJlZmxlY3RVUkwpIHsKKyAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkhU
TUxOYW1lcy5oIn0gPSAxOworICAgICAgICAgICAgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0gKCgk
cmVmbGVjdCB8fCAkcmVmbGVjdFVSTCkgZXEgIjEiKSA/ICRwcm9wTmFtZSA6ICgkcmVmbGVjdCB8
fCAkcmVmbGVjdFVSTCk7CisgICAgICAgICAgICAkZ2V0cHJvcF9uYW1lX2ZuID0gJHJlZmxlY3RV
UkwgPyAiZ2V0VVJMQXR0cmlidXRlIiA6ICJnZXRBdHRyaWJ1dGUiOworICAgICAgICAgICAgJHNl
dHByb3BfbmFtZV9mbiA9ICJBdHRyaWJ1dGUiOworICAgICAgICAgICAgJGdldGFyZyA9ICJXZWJD
b3JlOjpIVE1MTmFtZXM6OiR7Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0ciI7CisgICAgICAgICAg
ICAkc2V0YXJnID0gIldlYkNvcmU6OkhUTUxOYW1lczo6JHtjb250ZW50QXR0cmlidXRlTmFtZX1B
dHRyLCAiOworICAgICAgICB9CisKKyMKKyMgICAgICAgIG15ICRjdXN0b20gPSAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsKKyMKKyMgICAgICAg
IGlmICgkcHJvcF9uYW1lIG5lICdyZXNwb25zZVRleHQnKSB7ICMgYWxsb3cgWE1MSHR0cFJlcXVl
c3QgcmVzcG9uc2VUZXh0CisjICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9KSB7CisjICAgICAgICAgICAgICAg
IG5leHQgU0tJUEVOVU07CisjICAgICAgICAgICAgfQorIyAgICAgICAgfQorCisgICAgICAgICRp
bXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9IDEgaWYgJHR5cGUg
ZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOworCisgICAgICAgICMgc2tpcCBKYXZhU2NyaXB0Q2Fs
bEZyYW1lLnR5cGUKKyAgICAgICAgaWYgKCgkcHJvcF9uYW1lIGVxICJ0eXBlIikgJiYgKCRpbnRl
cmZhY2VOYW1lIGVxICJKYXZhU2NyaXB0Q2FsbEZyYW1lIikpeworICAgICAgICAgICAgbmV4dCBT
S0lQRU5VTTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChza2lwUHJvcFRlbXBvcmFyaWx5KCR0
eXBlLCAkcHJvcF90eXBlKSkgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsKKyAgICAgICAg
fQorCisgICAgICAgIHB1c2goQGNCb2R5UHJpdiwgIiAgICAke3Byb3BFbnVtfSxcbiIpOworCisg
ICAgICAgIG15ICRndHlwZSA9IEdldFByb3BHVHlwZSgkcHJvcF90eXBlKTsKKyAgICAgICAgbXkg
JGdwYXJhbWZsYWcgPSAiR19QQVJBTV9SRUFEQUJMRSI7CisgICAgICAgIG15ICR3cml0ZWFibGUg
PSAkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkvOworICAgICAgICBteSAkY29uc3QgPSAi
cmVhZC1vbmx5ICI7CisgICAgICAgIGlmICgkcHJvcF9uYW1lIGVxICdsb2NhdGlvbicgJiYgJGlu
dGVyZmFjZU5hbWUgZXEgJ0RvY3VtZW50JykgeworICAgICAgICAgICAgbmV4dCBTS0lQRU5VTTsK
KyAgICAgICAgfQorICAgICAgICAjaWYgKCR3cml0ZWFibGUgJiYgJGN1c3RvbSkgeworICAgICAg
ICBpZiAoJHdyaXRlYWJsZSkgeworICAgICAgICAgICAgJGNvbnN0ID0gInJlYWQtb25seSAoZHVl
IHRvIGN1c3RvbSBmdW5jdGlvbnMgbmVlZGVkIGluIGdkb213ZWJraXQpIjsKKyAgICAgICAgfQor
ICAgICAgICAjIGlmICgkd3JpdGVhYmxlICYmICEkY3VzdG9tKSB7CisgICAgICAgIGlmICgkd3Jp
dGVhYmxlKSB7CisgICAgICAgICAgICAkZ3BhcmFtZmxhZyA9ICJHX1BBUkFNX1JFQURXUklURSI7
CisgICAgICAgICAgICAkY29uc3QgPSAicmVhZC13cml0ZSAiOworICAgICAgICB9CisKKyAgICAg
ICAgbXkgJF9ndHlwZSA9ICRndHlwZTsKKyAgICAgICAgaWYgKCRndHlwZSBlcSAidXNob3J0Iikg
eworICAgICAgICAgICAgJF9ndHlwZSA9ICJ1aW50IjsgIyB5dWsuCisgICAgICAgIH0KKyAgICAg
ICAgJG5pY2sgPSBkZWNhbWVsaXplKCIke2ludGVyZmFjZU5hbWV9XyR7cHJvcE5hbWV9Iik7Cisg
ICAgICAgICRsb25nID0gIiR7Y29uc3R9ICR7dHlwZX0gJHtpbnRlcmZhY2VOYW1lfS4ke3Byb3BO
YW1lfSI7CisgICAgICAgIG15ICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAoZ19rbGFzcywgJHtwcm9wRW51bX0sCisgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfJHtfZ3R5cGV9ICgiJHtwcm9wTmFtZX0iLCAvKiBuYW1lICov
CisgICAgICAgICAgICAgICAgIiRuaWNrIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAg
ICAgICAgICAgICAiJGxvbmciLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEg
ZG9jIHN0dWZmIGhlcmUgKi8KK0VPRgorICAgICAgICBwdXNoKEB0eHRfaW5zdGFsbF9wcm9wcywg
JHR4dF9pbnN0YWxsX3Byb3ApOworICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9ICIvKiBUT0RP
ISAkZ3R5cGUgKi9cbiI7CisKKyAgICAgICAgaWYgKCR3cml0ZWFibGUpIHsKKyAgICAgICAgICAg
IG15ICRvayA9IDA7CisgICAgICAgICAgICBteSAkY29udmVydF9mbiA9ICIiOworCisgICAgICAg
ICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgJGNvbnZlcnRf
Zm4gPSAiV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCI7CisgICAgICAgICAgICAgICAgJG9rID0g
MTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2lmICgkZ3R5cGUgZXEgImJvb2xlYW4i
KSB7CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIp
IHsgI1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3Mg
YWJvdXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJmbG9hdCIpIHsKKyAgICAgICAgICAg
ICAgICAkb2sgPSAxOworICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJkb3VibGUiKSB7
CisgICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsg
I1hYWCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJv
dXQgeWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1aW50NjQiKSB7CisgICAgICAgICAgICAg
ICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCR7aW50ZXJmYWNlTmFtZX0gbmUgIkRPTVdpbmRvdyIpIHsgI1hY
WCBUT0RPOiBza2lwICJwdXREaXJlY3QiIHN0dWZmIC0gbm8gaWRlYSB3aGF0IGl0J3MgYWJvdXQg
eWV0CisgICAgICAgICAgICAgICAgICAgICRvayA9IDE7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfSBlbHNpZiAoJGd0eXBlIGVxICJsb25nIikgeworICAgICAgICAgICAgICAgIGlm
ICgke2ludGVyZmFjZU5hbWV9IG5lICJET01XaW5kb3ciKSB7ICNYWFggVE9ETzogc2tpcCAicHV0
RGlyZWN0IiBzdHVmZiAtIG5vIGlkZWEgd2hhdCBpdCdzIGFib3V0IHlldAorICAgICAgICAgICAg
ICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYg
KCRndHlwZSBlcSAidWludCIpIHsKKyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAg
ICAgfSBlbHNpZiAoJGd0eXBlIGVxICJ1c2hvcnQiKSB7CisgICAgICAgICAgICAgICAgJG9rID0g
MTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAg
ICAgICAgJG9rID0gMTsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAiY2hhciIpIHsK
KyAgICAgICAgICAgICAgICAkb2sgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgIyBY
WFggVE9ETyAtIHNraXAgTG9jYXRpb24KKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBl
cSAiTG9jYXRpb24iKSB7CisgICAgICAgICAgICAgICAgJG9rID0gMDsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKCRvaykgeworICAgICAgICAgICAgICAgIHB1c2goQHR4dF9zZXRf
cHJvcHMsICIgICAgY2FzZSAke3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEB0eHRfc2V0X3Byb3BzLCAiICAgICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVj
ID0gMDtcbiIpIGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CisgICAgICAgICAg
ICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiAgICAgICAgZ3NlbGYtPnNldCR7c2V0cHJvcF9u
YW1lX2ZufSgke3NldGFyZ30ke2NvbnZlcnRfZm59KGdfdmFsdWVfZ2V0XyRndHlwZSAodmFsdWUp
KSIpOworCisgICAgICAgICAgICAgICAgcHVzaChAdHh0X3NldF9wcm9wcywgIiwgZWMiKSBpZiBA
eyRhdHRyaWJ1dGUtPnNldHRlckV4Y2VwdGlvbnN9OworICAgICAgICAgICAgICAgIHB1c2goQHR4
dF9zZXRfcHJvcHMsICIpO1xuIik7CisKKyAgICAgICAgICAgICAgICBwdXNoKEB0eHRfc2V0X3By
b3BzLCAiICAgICAgICBicmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisgICAgICAgIHB1c2goQHR4dF9nZXRfcHJvcHMsICIgICBjYXNlICR7cHJvcEVudW19Olxu
ICAgIHtcbiIpOworCisgICAgICAgIG15ICRleGNlcHRpb24gPSAiIjsKKyAgICAgICAgaWYgKEB7
JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc30pIHsKKyAgICAgICAgICAgICRleGNlcHRpb24g
PSAiZWMiOworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgfQorCisgICAgICAgIG15ICRj
b252ZXJ0X2ZuID0gIiI7CisgICAgICAgIG15ICRwb3N0X2NvbnZlcnRfZm4gPSAiIjsKKyAgICAg
ICAgbXkgJGRvbmUgPSAwOworICAgICAgICBpZiAoJGd0eXBlIGVxICJzdHJpbmciKSB7CisgICAg
ICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5n
ICh2YWx1ZSwgY29udmVydFRvR2NoYXIoZ3NlbGYtPiR7Z2V0cHJvcF9uYW1lX2ZufSgke2dldGFy
Z30ke2V4Y2VwdGlvbn0pKSk7XG4iKTsKKyAgICAgICAgICAgICRkb25lID0gMTsKKyAgICAgICAg
fQorICAgICAgICBlbHNpZiAoJGd0eXBlIGVxICJvYmplY3QiKSB7CisgICAgICAgICAgICBteSAk
ZG9tb2JqVHlwZSA9ICJHRE9NIi4kcHJvcF90eXBlOworCisgICAgICAgICAgICAkdHh0X2dldF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6JHtwcm9wX3R5cGV9
PiBwdHIgPSBnc2VsZi0+JHtnZXRwcm9wX25hbWVfZm59KCR7Z2V0YXJnfSR7ZXhjZXB0aW9ufSk7
CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCAodmFsdWUsIFdlYktpdDo6dG9HRE9NKHB0ci5n
ZXQoKSkpOworRU9GCisgICAgICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAkdHh0X2dldF9w
cm9wKTsKKworICAgICAgICAgICAgJGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KCEkZG9uZSkgeworICAgICAgICAgICAgcHVzaChAdHh0X2dldF9wcm9wcywgIiAgICAgICAgZ192
YWx1ZV9zZXRfJF9ndHlwZSAodmFsdWUsICR7Y29udmVydF9mbn1nc2VsZi0+JHtnZXRwcm9wX25h
bWVfZm59KCR7Z2V0YXJnfSR7ZXhjZXB0aW9ufSkke3Bvc3RfY29udmVydF9mbn0pO1xuIik7Cisg
ICAgICAgIH0KKworICAgICAgICBwdXNoKEB0eHRfZ2V0X3Byb3BzLCAiICAgICAgICBicmVhaztc
biAgICB9XG4iKTsKKworICAgICAgICAjIGlzIHRoaXMgX2VudGlyZWx5XyBuZWNlc3Nhcnk/Pz8K
KyAgICAgICAgIyBjYW4gaXQgYmUgZG9uZSB3aXRoIGdlbmVyaWMgZ19wYXJhbV9zcGVjX2d0eXBl
CisgICAgICAgICMgYW5kIGdldHRpbmcgYSBmZXcgdGhpbmdzLCBpZ25vcmluZyB0aGUgbWluLW1h
eCBmb3IgZXhhbXBsZT8KKyAgICAgICAgaWYgKCRndHlwZSBlcSAiaW50IikgeworICAgICAgICAg
ICAgJHR4dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTklO
VCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYSU5ULCAvKiBtYXggKi8K
KyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0g
ZWxzaWYgKCRndHlwZSBlcSAiYm9vbGVhbiIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9w
cm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KK0VP
RgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImZsb2F0IikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHX01JTkZMT0FULCAg
ICAgICAgLyogbWluICovCisgICAgICAgICAgICAgICAgR19NQVhGTE9BVCwgLyogbWF4ICovCisg
ICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVs
c2lmICgkZ3R5cGUgZXEgImRvdWJsZSIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9w
ID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5ET1VCTEUsICAgICAgICAvKiBtaW4g
Ki8KKyAgICAgICAgICAgICAgICBHX01BWERPVUJMRSwgLyogbWF4ICovCisgICAgICAgICAgICAg
ICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUg
ZXEgInVpbnQ2NCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7
CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdf
TUFYVUlOVDY0LCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVs
dCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWxvbmciKSB7CisgICAgICAg
ICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAgIDAsICAg
ICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVMT05HLCAvKiBtYXggKi8KKyAg
ICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxz
aWYgKCRndHlwZSBlcSAibG9uZyIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0g
PDwgIkVPRiI7CisgICAgICAgICAgICAgICAgR19NSU5MT05HLCAgICAgICAgLyogbWluICovCisg
ICAgICAgICAgICAgICAgR19NQVhMT05HLCAvKiBtYXggKi8KKyAgICAgICAgICAgICAgICAwLCAg
ICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAidWlu
dCIpIHsKKyAgICAgICAgICAgICR0eHRfaW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAg
ICAgICAgICAgMCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVCwg
LyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIGRlZmF1bHQgKi8KK0VPRgor
ICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgInVzaG9ydCIpIHsKKyAgICAgICAgICAgICR0eHRf
aW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8qIG1p
biAqLworICAgICAgICAgICAgICAgIEdfTUFYVUlOVDE2LCAvKiBtYXggKi8KKyAgICAgICAgICAg
ICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAgIH0gZWxzaWYgKCRndHlw
ZSBlcSAidWNoYXIiKSB7CisgICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0Yi
OworICAgICAgICAgICAgICAgIEdfTUlOSU5UOCwgICAgICAgIC8qIG1pbiAqLworICAgICAgICAg
ICAgICAgIEdfTUFYSU5UOCwgLyogbWF4ICovCisgICAgICAgICAgICAgICAgMCwgICAgICAgIC8q
IGRlZmF1bHQgKi8KK0VPRgorICAgICAgICB9IGVsc2lmICgkZ3R5cGUgZXEgImNoYXIiKSB7Cisg
ICAgICAgICAgICAkdHh0X2luc3RhbGxfcHJvcCA9IDw8ICJFT0YiOworICAgICAgICAgICAgICAg
IDAsICAgICAgICAvKiBtaW4gKi8KKyAgICAgICAgICAgICAgICBHX01BWFVJTlQ4LCAvKiBtYXgg
Ki8KKyAgICAgICAgICAgICAgICAwLCAgICAgICAgLyogZGVmYXVsdCAqLworRU9GCisgICAgICAg
IH0gZWxzaWYgKCRndHlwZSBlcSAic3RyaW5nIikgeworICAgICAgICAgICAgJHR4dF9pbnN0YWxs
X3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLworRU9G
CisgICAgICAgIH0gZWxzaWYgKCRndHlwZSBlcSAib2JqZWN0IikgeworICAgICAgICAgICAgJHR4
dF9pbnN0YWxsX3Byb3AgPSA8PCAiRU9GIjsKKyAgICAgICAgICAgICAgICBHRE9NX1RZUEVfJHtw
cm9wR1R5cGV9LCAvKiBnb2JqZWN0IHR5cGUgKi8KK0VPRgorICAgICAgICB9CisgICAgICAgIHB1
c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAkdHh0X2luc3RhbGxfcHJvcCk7CisgICAgICAgICR0eHRf
aW5zdGFsbF9wcm9wID0gPDwgIkVPRiI7CisgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKSR7
Z3BhcmFtZmxhZ30pKTsKKworRU9GCisgICAgICAgIHB1c2goQHR4dF9pbnN0YWxsX3Byb3BzLCAk
dHh0X2luc3RhbGxfcHJvcCk7CisgICAgfQorCisgICAgcHVzaChAY0JvZHlQcml2LCAifTtcblxu
Iik7CisKKworICAgICR0eHRfZ2V0X3Byb3AgPSA8PCAiRU9GIjsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBw
c3BlYyk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KK0VPRgorICAgIHB1c2goQHR4dF9nZXRf
cHJvcHMsICR0eHRfZ2V0X3Byb3ApOworCisgICAgJHR4dF9zZXRfcHJvcCA9IDw8ICJFT0YiOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChv
YmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorRU9GCisg
ICAgcHVzaChAdHh0X3NldF9wcm9wcywgJHR4dF9zZXRfcHJvcCk7CisKKyAgICBteSAkdHh0X3Nl
dF9nZXRfcHJvcHMgPSA8PCAiRU9GIjsKKyAgICBjYXNlIFBST1BfQUdFOgorICAgICAgICBzZWxm
LT5hZ2UgPSBnX3ZhbHVlX2dldF9pbnQgKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBj
YXNlIFBST1BfQUdFOgorICAgICAgICBnX3ZhbHVlX3NldF9pbnQodmFsdWUsIHNlbGYtPmFnZSk7
CisgICAgICAgIGJyZWFrOworCisgICAgICAgICsgICBnX3ZhbHVlX2luaXQoJnBhcmFtc1swXSwg
R19UWVBFX0ZST01fSU5TVEFOQ0Uob2JqZWN0KSk7CisgICAgICAgICsgICBnX3ZhbHVlX3NldF9p
bnN0YW5jZSgmcGFyYW1zWzBdLCAoZ3BvaW50ZXIpb2JqZWN0KTsKKworRU9GCisKKyAgICAjIFRP
RE86IHdvcmsgb3V0IGlmIGl0J3MgYXBwcm9wcmlhdGUgdG8gc3BsaXQgdGhpcyBpbnRvIG1hbnkg
ZGlmZmVyZW50CisgICAgIyBzaWduYWxzIGUuZy4gImNsaWNrIiBldGMuCisgICAgbXkgJHR4dF9p
bnN0YWxsX3NpZ25hbHMgPSAiIjsKKworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2lu
ZG93IiBvcgorICAgICAgICAkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZSIgb3IKKyAgICAgICAgJGlu
dGVyZmFjZU5hbWUgZXEgIlhNTEh0dHBSZXF1ZXN0IikgeworICAgICAgICAkdHh0X2luc3RhbGxf
c2lnbmFscyA9IDw8ICJFT0YiOworICAgIGV2ZW50X3NpZ25hbHNbQlJPV1NFUl9FVkVOVF0gPSBn
X3NpZ25hbF9uZXcoImJyb3dzZXItZXZlbnQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhy
ZXF1ZXN0Q2xhc3MpLAorICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR19TSUdOQUxfREVUQUlMRUQgICksCisgICAgICAgIDAsCisgICAgICAgIE5VTEwsCisg
ICAgICAgIE5VTEwsCisgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9CT09MRUFO
LAorICAgICAgICBHX1RZUEVfTk9ORSwgMiwKKyAgICAgICAgR0RPTV9UWVBFX0VWRU5ULCBHX1RZ
UEVfQk9PTEVBTik7CitFT0YKKyAgICB9CisKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsK
Kworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFjZW5hbWV9X2ZpbmFsaXplKEdPYmplY3QqIG9iamVj
dCkKK3sKKyAgICBHZG9tRE9NT2JqZWN0KiBkb21fb2JqZWN0ID0gR0RPTV9ET01fT0JKRUNUKG9i
amVjdCk7CisgICAgR2RvbURPTU9iamVjdFByaXZhdGUqIHByaXYgPSBkb21fb2JqZWN0LT5wcml2
OworCisgICAgaWYgKHByaXYtPmNvcmVPYmplY3QgIT0gMCkgeworCVdlYktpdDo6R0RPTU9iamVj
dENhY2hlOjpmb3JnZXRET01PYmplY3QocHJpdi0+Y29yZU9iamVjdCk7CisJc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqPihwcml2LT5jb3JlT2JqZWN0KS0+ZGVyZWYoKTsK
Kwlwcml2LT5jb3JlT2JqZWN0ID0gMDsKKyAgICB9CisKKyAgICBHX09CSkVDVF9DTEFTUygke2xj
YXNlX2lmYWNlbmFtZX1fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKK30KKworQHR4
dF9zZXRfcHJvcHMKKworQHR4dF9nZXRfcHJvcHMKKworc3RhdGljIHZvaWQgJHtsY2FzZV9pZmFj
ZW5hbWV9X2NsYXNzX2luaXQoJHtjbGFzc05hbWV9Q2xhc3MqIHJlcXVlc3RDbGFzcykKK3sKKyAg
ICBHT2JqZWN0Q2xhc3MgKmdfa2xhc3MgPSBHX09CSkVDVF9DTEFTUyAocmVxdWVzdENsYXNzKTsK
KyAgICBnX2tsYXNzLT5maW5hbGl6ZSA9ICR7bGNhc2VfaWZhY2VuYW1lfV9maW5hbGl6ZTsKKyAg
ICBnX2tsYXNzLT5zZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX3NldF9wcm9wZXJ0
eV9mbjsKKyAgICBnX2tsYXNzLT5nZXRfcHJvcGVydHkgPSAke2xjYXNlX2lmYWNlbmFtZX1fX2dl
dF9wcm9wZXJ0eV9mbjsKKworQHR4dF9pbnN0YWxsX3Byb3BzCisKKyR0eHRfaW5zdGFsbF9zaWdu
YWxzCit9CisKK3N0YXRpYyB2b2lkICR7bGNhc2VfaWZhY2VuYW1lfV9pbml0KCR7Y2xhc3NOYW1l
fSogcmVxdWVzdCkKK3sKK30KKworRU9GCisgICAgcHVzaChAY0JvZHlQcml2LCAkaW1wbENvbnRl
bnQpOworCisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9HZG9tJHtpbnRlcmZhY2VOYW1lfVByaXZh
dGUuaCJ9ID0gMTsKKyAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworI2lmbmRlZiAke2d1
YXJkfV9QUklWXworI2RlZmluZSAke2d1YXJkfV9QUklWXworI2luY2x1ZGUgImdsaWItb2JqZWN0
LmgiCisjaW5jbHVkZSAiZ2RvbS8ke3BhcmVudEhkck5hbWV9LmgiCisjaW5jbHVkZSAiJHtpbnRl
cmZhY2VOYW1lfS5oIgorRU9GCisgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOwor
CisgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7CisvL30gLy8gbmFtZXNwYWNlIFdlYktpdAor
Cit0eXBlZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9ICR7Y2xhc3NOYW1lfTsKKworbmFtZXNwYWNl
IFdlYktpdCB7CisgICAgJHtjbGFzc05hbWV9ICoKKyAgICB3cmFwJHtpbnRlcmZhY2VOYW1lfShQ
YXNzUmVmUHRyPFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0+IHBycENvcmVPYmplY3QpOworCisg
ICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSAqCisgICAgY29yZSgke2NsYXNzTmFtZX0gKnJl
cXVlc3QpOworRU9GCisgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
aWYgKCAhVXNlc01hbnVhbFRvR0RPTUltcGxlbWVudGF0aW9uKCRpbnRlcmZhY2VOYW1lKSkgewor
ICAgICAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKKworICAgIGdwb2ludGVyCisgICAgdG9H
RE9NKFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIG5vZGUpOworRU9GCisgICAgICAgIHB1c2go
QGhCb2R5UHJpdiwgJGltcGxDb250ZW50KTsKKyAgICB9CisKKyAgICAkaW1wbENvbnRlbnQgPSA8
PCAiRU9GIjsKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLyogJHtndWFyZH1fUFJJ
Vl8gKi8KKworRU9GCisgICAgcHVzaChAaEJvZHlQcml2LCAkaW1wbENvbnRlbnQpOworCisgICAg
I2lmICgkcGFyYW1JRExUeXBlIGVxICJET01PYmplY3QiKSB7CisgICAgIyBYWFggPz8/PyB3dGY/
PyA6KSBjb3BpZWQgZnJvbSBqc2dlbmVyYXRvci4KKyAgICAjICAgICRpbXBsSW5jbHVkZXN7IkpT
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgifSA9IDE7CisgICAgI30gZWxzZSB7CisgICAgIyAg
ICAkaW1wbEluY2x1ZGVzeyRpbmNsdWRlSGRyfSA9IDE7CisgICAgI30KKyAgICAkaW1wbEluY2x1
ZGVzeyIke2ludGVyZmFjZU5hbWV9LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9H
ZG9tRE9NT2JqZWN0UHJpdmF0ZS5oIn0gPSAxOworCisgIExPT1A6CisgICAgZm9yZWFjaCBteSAk
ZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CisJI215ICRmdW5jdGlvbk5hbWUg
PSBkZWNhbWVsaXplKCRjbGFzc05hbWUpIC4gIl8iIC4gZGVjYW1lbGl6ZSgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+bmFtZSk7CisJbXkgJGZuX3NpZ19uYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWU7CisJbXkgJGZuX3NpZ190eXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7CisJ
bXkgJGZ1bmN0aW9uTmFtZSA9ICJnZG9tXyIgLiBkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSAu
ICJfIiAuIGRlY2FtZWxpemUoJGZuX3NpZ19uYW1lKTsKKwlteSAkcmV0dXJuVHlwZSA9IEdldEdU
eXBlKCRmbl9zaWdfdHlwZSk7CisJbXkgJHJldF9pc19jbHNfdHlwZSA9IElzR0RPTUNsYXNzVHlw
ZSgkZm5fc2lnX3R5cGUpOworCisJbXkgJGZ1bmN0aW9uU2lnID0gIiRjbGFzc05hbWUgKnRoaXoi
OworCisJbXkgJGNhbGxfaW1wbF9wYXJhbXMgPSAiIjsKKwlteSAkZ2RvbV9mbl9wcmVmaXggPSAi
Z2RvbV8iIC4gZGVjYW1lbGl6ZSgkZm5fc2lnX3R5cGUpOworCisJaWYgKCRmdW5jdGlvbk5hbWUg
ZXEgImdkb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3NldF9wcm9wZXJ0eSIpIHsKKwkgICAgIyBy
ZXNlcnZlZCBuYW1lIGNsYXNoIGluIGdsaWIhCisJICAgICRmdW5jdGlvbk5hbWUgPSAiZ2RvbV9j
c3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X2Nzc19wcm9wZXJ0eSI7CisJfQorCSMgWFhYIHNraXAg
Q29tcGFyZUhvdyBmdW5jdGlvbnMgZm9yIG5vdworCWlmICgkZnVuY3Rpb25OYW1lIGVxICJnZG9t
X3JhbmdlX2NvbXBhcmVfYm91bmRhcnlfcG9pbnRzIikgeworCSAgICBwdXNoKEBoQm9keSwgIlxu
LyogWFhYIFRPRE86IHNraXBwaW5nIENvbXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9
ICovXG5cbiIpOworCSAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBwaW5nIENv
bXBhcmVIb3cgZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworCSAgICBuZXh0IExP
T1A7CisJfQorCisJIyBYWFggc2tpcCBTVkdEb2N1bWVudCBmdW5jdGlvbnMgZm9yIG5vdworCWlm
ICgkcmV0dXJuVHlwZSBlcSAiR2RvbVNWR0RvY3VtZW50ICoiKSB7CisJICAgIHB1c2goQGhCb2R5
LCAiXG4vKiBYWFggVE9ETzogc2tpcHBpbmcgU1ZHRG9jdW1lbnQgZnVuY3Rpb24gJHtmdW5jdGlv
bk5hbWV9ICovXG5cbiIpOworCSAgICBwdXNoKEBjQm9keSwgIlxuLyogWFhYIFRPRE86IHNraXBw
aW5nIFNWR0RvY3VtZW50IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKwkgICAg
bmV4dCBMT09QOworCX0KKworCSMgWFhYIGRvbid0IHNraXAgc29tZSBjdXN0b20gZnVuY3Rpb25z
IGZvciBub3cKKwlteSAkaXNfY3VzdG9tX2ZuID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifTsKKwlpZiAoJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9o
dG1sX2NvbGxlY3Rpb25faXRlbSIgfHwKKwkgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9odG1s
X2NvbGxlY3Rpb25fbmFtZWRfaXRlbSIgfHwKKwkgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X3NlbGVjdGlvbl9yYW5nZSIgfHwKKwkgICAgJGZ1bmN0aW9u
TmFtZSBlcSAiZ2RvbV9odG1sX2Zvcm1fZWxlbWVudF9zdWJtaXQiIHx8CisJICAgICRmdW5jdGlv
bk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVuIiB8fAorCSAgICAkZnVuY3Rpb25O
YW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfc2V0X3JlcXVlc3RfaGVhZGVyIiB8fAorCSAg
ICAkZnVuY3Rpb25OYW1lIGVxICJnZG9tX3htbF9odHRwX3JlcXVlc3Rfc2VuZCIgfHwKKwkgICAg
JGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV94bWxfaHR0cF9yZXF1ZXN0X2dldF9yZXNwb25zZV9oZWFk
ZXIiIHx8CisJICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vdmVy
cmlkZV9taW1lX3R5cGUiIHx8CisJICAgICRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBf
cmVxdWVzdF9kaXNwYXRjaF9ldmVudCIgfHwKKwkgICAgJGZ1bmN0aW9uTmFtZSBlcSAiZ2RvbV9l
bGVtZW50X3NldF9hdHRyaWJ1dGUiKSB7CisJICAgICRpc19jdXN0b21fZm4gPSAwOworCX0KKwkj
IFhYWCBza2lwIHNvbWUgY3VzdG9tIGZ1bmN0aW9ucyBmb3Igbm93CisJaWYgKCRpc19jdXN0b21f
Zm4gJiYgCisJICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pdGVyYXRvcl9uZXh0X25v
ZGUiICYmIAorCSAgICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiAm
JiAKKwkgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX3JlbW92ZV9jaGlsZCIgJiYgCisJ
ICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9pbnNlcnRfYmVmb3JlIiAmJgorCSAgICAk
ZnVuY3Rpb25OYW1lIG5lICJnZG9tX25vZGVfcmVwbGFjZV9jaGlsZCIgJiYKKwkgICAgJGZ1bmN0
aW9uTmFtZSBuZSAiZ2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9kZSIgJiYgCisJICAgICRmdW5j
dGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfZmlyc3RfY2hpbGQiICYmIAorCSAgICAkZnVu
Y3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQiICYmIAorCSAgICAkZnVu
Y3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmciICYmIAorCSAg
ICAkZnVuY3Rpb25OYW1lIG5lICJnZG9tX3RyZWVfd2Fsa2VyX25leHRfc2libGluZyIgJiYgCisJ
ICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZSIgJiYg
CisJICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fdHJlZV93YWxrZXJfbmV4dF9ub2RlIiAmJiAK
KwkgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9ub2RlX2l0ZXJhdG9yX3ByZXZpb3VzX25vZGUi
KSB7CisJICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGZ1bmN0aW9uICR7
ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKwkgICAgcHVzaChAY0JvZHksICJcbi8qIFhYWCBUT0RP
OiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOworCSAgICBuZXh0IExP
T1A7CisJfQorCisJZm9yZWFjaCBteSAkcGFyYW0gKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkg
eworCSAgICBteSAkcGFyYW1JRExUeXBlID0gJHBhcmFtLT50eXBlOworCSAgICBhZGRJbmNCb2R5
KCRwYXJhbUlETFR5cGUpOworCSAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisJICAgIG15
ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKwkgICAgbXkgJHBhcmFtTmFt
ZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworCSAgICAkZnVuY3Rpb25TaWcgLj0gIiwg
JHBhcmFtVHlwZSAkcGFyYW1OYW1lIjsKKworCSAgICBteSAkcGFyYW1faXNfY2xzX3R5cGUgPSBJ
c0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisJICAgIGlmICgkcGFyYW1faXNfY2xzX3R5
cGUpIHsKKwkJaWYgKCRwYXJhbUlETFR5cGUgbmUgIkRPTU9iamVjdCIgJiYKKwkJICAgICRwYXJh
bUlETFR5cGUgbmUgIkV2ZW50VGFyZ2V0IikgeworCQkgICAgJGltcGxJbmNsdWRlc3siZ2RvbS9H
ZG9tJHtwYXJhbUlETFR5cGV9UHJpdmF0ZS5oIn0gPSAxOworCQkgICAgIyB0aGlzIGlzbid0IHN0
cmljdGx5IG5lY2Vzc2FyeSBidXQgb25lIG9mIHRoZQorCQkgICAgIyBhdXRvLWdlbmVyYXRlZCBm
aWxlcyBuZWVkZWQgaXQgc28uLi4uCisJCSAgICAkaW1wbEluY2x1ZGVzeyIke3BhcmFtSURMVHlw
ZX0uaCJ9ID0gMTsKKwkJfQorCSAgICB9CisJICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUgfHwg
KCRwYXJhbUlETFR5cGUgZXEgIkRPTVN0cmluZyIpKSB7CisJCSRwYXJhbU5hbWUgPSAiX2dfIiAu
ICRwYXJhbU5hbWU7CisJICAgIH0KKwkgICAgaWYgKCRjYWxsX2ltcGxfcGFyYW1zKSB7CisJCSRj
YWxsX2ltcGxfcGFyYW1zIC49ICIsICRwYXJhbU5hbWUiOworCSAgICB9IGVsc2UgeworCQkkY2Fs
bF9pbXBsX3BhcmFtcyA9ICIkcGFyYW1OYW1lIjsKKwkgICAgfQorCX0KKworICAgIGlmICgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFu
ZGxpbmcifSkgeworCisJICAgIGlmICgkY2FsbF9pbXBsX3BhcmFtcykgeworCQkkY2FsbF9pbXBs
X3BhcmFtcyAuPSAiLCAmY2FsbFN0YWNrIjsKKwkgICAgfSBlbHNlIHsKKwkJJGNhbGxfaW1wbF9w
YXJhbXMgPSAiJmNhbGxTdGFjayI7CisJICAgIH0KKyAgICAgICAgJGltcGxJbmNsdWRlc3siU2Ny
aXB0Q2FsbFN0YWNrLmgifSA9IDE7CisgICAgfQorCisJYWRkSW5jSGRyKCRmbl9zaWdfdHlwZSk7
CisJaWYgKCRyZXRfaXNfY2xzX3R5cGUpIHsKKwkgICAgIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9t
JHtmbl9zaWdfdHlwZX0ifSA9IDE7CisJfQorCisJaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikg
eworCisJICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisJCWlmICgkZm5fc2lnX3R5cGUgZXEg
IkRPTU9iamVjdCIpIHsKKwkJICAgICMgWFhYID8/Pz8gd3RmPz8gOikgY29waWVkIGZyb20ganNn
ZW5lcmF0b3IuCisJCSAgICAkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb21DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaCJ9ID0gMTsKKwkJfSBlbHNlIHsKKwkJICAgICNpZiAoJGZuX3NpZ190eXBlIG5l
ICJFdmVudFRhcmdldCIpIHsKKwkJCSMkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb20ke2ZuX3NpZ190
eXBlfVByaXZhdGUuaCJ9ID0gMTsKKwkJCSMkaW1wbEluY2x1ZGVzeyJnZG9tL0dkb20ke2ZuX3Np
Z190eXBlfS5oIn0gPSAxOworCQkgICAgI30KKwkJICAgICRpbXBsSW5jbHVkZXN7IiR7Zm5fc2ln
X3R5cGV9LmgifSA9IDE7CisgICAgICAgICAgICAkY0JvZHlHRE9NeyJncG9pbnRlciB0b0dET00o
V2ViQ29yZTo6JHtmbl9zaWdfdHlwZX0qIG5vZGUpOyJ9ID0gMTsKKwkJfQorCSAgICB9CisJfQor
CisJIyBYWFggc2tpcCBjdXN0b20gZnVuY3Rpb25zIGZvciBub3cKKwkjIGJ1dCBza2lwIGZyb20g
aGVyZSB0byBhbGxvdyBzb21lIGhlYWRlcnMgdG8gYmUgY3JlYXRlZAorCSMgZm9yIGEgc3VjY2Vz
c2Z1bCBjb21waWxlLgorCWlmICgkaXNfY3VzdG9tX2ZuICYmCisJICAgICRmdW5jdGlvbk5hbWUg
bmUgImdkb21fbm9kZV9yZW1vdmVfY2hpbGQiICYmIAorCSAgICAkZnVuY3Rpb25OYW1lIG5lICJn
ZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgJiYKKwkgICAgJGZ1bmN0aW9uTmFtZSBuZSAiZ2RvbV9u
b2RlX3JlcGxhY2VfY2hpbGQiICYmCisJICAgICRmdW5jdGlvbk5hbWUgbmUgImdkb21fbm9kZV9h
cHBlbmRfY2hpbGQiKSB7CisJICAgIHB1c2goQGhCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9t
IGZ1bmN0aW9uICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKwkgICAgcHVzaChAY0JvZHksICJc
bi8qIFhYWCBUT0RPOiBjdXN0b20gZnVuY3Rpb24gJHtmdW5jdGlvbk5hbWV9ICovXG5cbiIpOwor
CSAgICBuZXh0IExPT1A7CisJfQorCisgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQXJndW1lbnRIYW5kbGluZyJ9KSB7CisgICAgICAgICMg
WFhYIHNraXAgY3VzdG9tIGFyZ3VtZW50IGhhbmRsaW5nIC0gY3VycmVudGx5IGluIENvbnNvbGUu
aWRsCisgICAgICAgICMgcmVxdWlyZXMgRXhlY1N0YXRlIHdoaWNoIGhhcyBiZWVuIHJlbW92ZWQg
dW50aWwgIzE2NDAxIGlzIGFjY2VwdGVkLgorCSAgICBwdXNoKEBoQm9keSwgIlxuLyogWFhYIFRP
RE86IGN1c3RvbSBhcmd1bWVudCBoYW5kbGluZyAke2Z1bmN0aW9uTmFtZX0gKi9cblxuIik7CisJ
ICAgIHB1c2goQGNCb2R5LCAiXG4vKiBYWFggVE9ETzogY3VzdG9tIGFyZ3VtZW50IGhhbmRsaW5n
ICR7ZnVuY3Rpb25OYW1lfSAqL1xuXG4iKTsKKwkgICAgbmV4dCBMT09QOworICAgIH0KKwlteSAk
X3JldHVyblR5cGUgPSAkcmV0dXJuVHlwZTsKKwlteSAkZG9tb2JqVHlwZSA9ICJHRE9NIi4kZm5f
c2lnX3R5cGU7CisJaWYgKCRmbl9zaWdfdHlwZSBlcSAnRE9NT2JqZWN0JyAmJgorCSAgICAkZnVu
Y3Rpb25OYW1lIGVxICdnZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2NvbnRleHQnKSB7CisJ
ICAgICMgWFhYIEhBQ0shCisJICAgICRfcmV0dXJuVHlwZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5n
Q29udGV4dCAqJzsKKwkgICAgJGRvbW9ialR5cGUgPSAnR0RPTUNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQnOworCSAgICAkZ2RvbV9mbl9wcmVmaXggPSAnZ2RvbV9jYW52YXNfcmVuZGVyaW5nX2NvbnRl
eHQnOworCSAgICBuZXh0IExPT1A7CSAgICAgICAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93
LiAgc2tpcCBpdC4KKwkgICAgIyBtdXN0IGNvbnZlcnQgdG8gYSBET01PYmplY3QgKFRPRE86IGJy
b3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhvdykKKwkgICAgIyBiZXR0ZXI6IHdvcmsgb3V0IGhv
dyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0CisJfQorCisJaWYgKCRmbl9zaWdfdHlwZSBlcSAn
RE9NT2JqZWN0JyAmJgorCSAgICAkZnVuY3Rpb25OYW1lIGVxICdnZG9tX2RvY3VtZW50X2dldF9j
c3NfY2FudmFzX2NvbnRleHQnKSB7CisJICAgICMgWFhYIEhBQ0shCisJICAgICRfcmV0dXJuVHlw
ZSA9ICdHZG9tQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIConOworCSAgICAkZG9tb2JqVHlwZSA9
ICdHRE9NQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEJzsKKwkgICAgJGdkb21fZm5fcHJlZml4ID0g
J2dkb21fY2FudmFzX3JlbmRlcmluZ19jb250ZXh0MmQnOworCSAgICBuZXh0IExPT1A7CSAgICAg
ICAjIFhYWCAtIHRvbyBpbnZvbHZlZCBmb3Igbm93LiAgc2tpcCBpdC4KKwkgICAgIyBtdXN0IGNv
bnZlcnQgdG8gYSBET01PYmplY3QgKFRPRE86IGJyb3dzZSBKUyBjb2RlIHRvIGZpbmQgb3V0IGhv
dykKKwkgICAgIyBiZXR0ZXI6IHdvcmsgb3V0IGhvdyB0byBjcmVhdGUgYSBHRE9NRG9tT2JqZWN0
CisJfQorCisKKwlwdXNoKEBoQm9keSwgIldFQktJVF9BUEkgJF9yZXR1cm5UeXBlXG4kZnVuY3Rp
b25OYW1lICgkZnVuY3Rpb25TaWcpO1xuXG4iKTsKKworCXB1c2goQGNCb2R5LCAiJF9yZXR1cm5U
eXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rpb25TaWcpXG57XG4iKTsKKworICAgIGlmICgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUFyZ3VtZW50SGFu
ZGxpbmcifSkgeworICAgICAgICBteSAkbnVtUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfTsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6U2NyaXB0Q2FsbFN0
YWNrIGNhbGxTdGFjayhleGVjLCBhcmdzLCAkbnVtUGFyYW1ldGVycyk7XG4iKTsKKyAgICB9CisK
KwlwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9ICogaXRlbSA9IFdl
YktpdDo6Y29yZSh0aGl6KTtcbiIpOworCWlmICgkcmV0dXJuVHlwZSBuZSAidm9pZCIpIHsKKwkg
ICAgIyBYWFggVE9ETzogcmV0dXJuIHByb3BlciBkZWZhdWx0IHJlc3VsdAorCSAgICBwdXNoKEBj
Qm9keSwgIiAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoaXRlbSwgMCk7XG4iKTsKKwl9IGVsc2Ug
eworCSAgICBwdXNoKEBjQm9keSwgIiAgICBnX3JldHVybl9pZl9mYWlsIChpdGVtKTtcbiIpOwor
CX0KKworCWZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKKwkg
ICAgbXkgJHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKwkgICAgbXkgJHBh
cmFtSURMVHlwZSA9ICRwYXJhbS0+dHlwZTsKKwkgICAgbXkgJHBhcmFtVHlwZUlzUHJpbWl0aXZl
ID0gJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkcGFyYW1JRExUeXBlKTsKKwkgICAg
bXkgJHBhcmFtX2lzX2Nsc190eXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRwYXJhbUlETFR5cGUpOwor
CSAgICBhZGRJbmNIZHIoJHBhcmFtSURMVHlwZSk7CisJICAgIGlmICgkcGFyYW1faXNfY2xzX3R5
cGUpIHsKKwkJIyAgICAkaW1wbFR5cGVkZWZzeyJHZG9tJHtwYXJhbUlETFR5cGV9In0gPSAxOwor
CSAgICB9CisKKyAgICAgICAgIyBYWFggVE9ETzogcmVzb2x2ZSB3aGljaCBhcmd1bWVudHMgc2hv
dWxkIC8gY2FuIGJlIE5VTEwKKyAgICAgICAgIyBvciBoZWNrIHJlc29sdmUgaWYgaXQncyBldmVu
IG5lY2Vzc2FyeSB0byBjaGVjayEgT2JqQyBkb2Vzbid0LgorICAgICAgICAjCisJICAgICMgaWYg
KCEkcGFyYW1UeXBlSXNQcmltaXRpdmUpIHsKKwkJIyBpZiAoJHJldHVyblR5cGUgbmUgInZvaWQi
KSB7CisJCSMgICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICgkcGFy
YW1OYW1lLCAwKTtcbiIpOworCQkjIH0gZWxzZSB7CisJCSMgICAgIHB1c2goQGNCb2R5LCAiICAg
IGdfcmV0dXJuX2lmX2ZhaWwgKCRwYXJhbU5hbWUpO1xuIik7CisJCSMgfQorCSAgICAjfQorCX0K
KworCSRyZXR1cm5QYXJhbU5hbWUgPSAiIjsKKwlmb3JlYWNoIG15ICRwYXJhbSAoQHskZnVuY3Rp
b24tPnBhcmFtZXRlcnN9KSB7CisJICAgIG15ICRwYXJhbUlETFR5cGUgPSAkcGFyYW0tPnR5cGU7
CisJICAgIG15ICRwYXJhbVR5cGUgPSBHZXRHVHlwZSgkcGFyYW1JRExUeXBlKTsKKwkgICAgbXkg
JHBhcmFtTmFtZSA9IGRlY2FtZWxpemUoJHBhcmFtLT5uYW1lKTsKKworCSAgICBteSAkcGFyYW1f
aXNfY2xzX3R5cGUgPSBJc0dET01DbGFzc1R5cGUoJHBhcmFtSURMVHlwZSk7CisJICAgICMgSEFD
SyEKKwkgICAgaWYgKCRmdW5jdGlvbk5hbWUgZXEgImdkb21feG1sX2h0dHBfcmVxdWVzdF9vcGVu
IiAmJgorCQkkcGFyYW0tPm5hbWUgZXEgInVybCIpIHsKKworCQkjJGltcGxJbmNsdWRlc3siS1VS
TC5oIn0gPSAxOworCQlwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpLVVJMIF9nXyR7cGFyYW1O
YW1lfSA9IFdlYkNvcmU6OktVUkwoJHBhcmFtTmFtZSk7XG4iKTsKKwkgICAgfSBlbHNpZiAoJHBh
cmFtSURMVHlwZSBlcSAiRE9NU3RyaW5nIikgeworCQlwdXNoKEBjQm9keSwgIiAgICBXZWJDb3Jl
OjpTdHJpbmcgX2dfJHtwYXJhbU5hbWV9ID0gV2ViQ29yZTo6U3RyaW5nOjpmcm9tVVRGOCgkcGFy
YW1OYW1lKTtcbiIpOworCSAgICB9CisJICAgIGlmICgkcGFyYW1faXNfY2xzX3R5cGUpIHsKKwkJ
bXkgJHBhcmFtX2dkb21fZm4gPSAiZ2RvbV8iIC4gZGVjYW1lbGl6ZSgkcGFyYW1JRExUeXBlKTsK
KwkJaWYgKCRwYXJhbUlETFR5cGUgZXEgIkV2ZW50VGFyZ2V0IikgeworCQkgICAgJGltcGxJbmNs
dWRlc3siZ2RvbS9HZG9tTm9kZVByaXZhdGUuaCJ9ID0gMTsKKwkJICAgIHB1c2goQGNCb2R5LCAi
ICAgIFdlYkNvcmU6Ok5vZGUgKiBfZ18ke3BhcmFtTmFtZX0gPSBXZWJLaXQ6OmNvcmUoJHBhcmFt
TmFtZSk7XG4iKTsKKwkJfSBlbHNlIHsKKwkJICAgIHB1c2goQGNCb2R5LCAiICAgIFdlYkNvcmU6
OiR7cGFyYW1JRExUeXBlfSAqIF9nXyR7cGFyYW1OYW1lfSA9IFdlYktpdDo6Y29yZSgkcGFyYW1O
YW1lKTtcbiIpOworCQl9CisgICAgICAgICMgWFhYIFRPRE86IHJlc29sdmUgd2hpY2ggYXJndW1l
bnRzIHNob3VsZCAvIGNhbiBiZSBOVUxMCisgICAgICAgICMgb3IgaGVjayByZXNvbHZlIGlmIGl0
J3MgZXZlbiBuZWNlc3NhcnkgdG8gY2hlY2shIE9iakMgZG9lc24ndC4KKyAgICAgICAgIworCQkj
aWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIikgeworCQkjICAgIHB1c2goQGNCb2R5LCAiICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsIChfZ18ke3BhcmFtTmFtZX0sIDApO1xuIik7CisJCSN9IGVsc2Ug
eworCQkjICAgIHB1c2goQGNCb2R5LCAiICAgIGdfcmV0dXJuX2lmX2ZhaWwgKF9nXyR7cGFyYW1O
YW1lfSk7XG4iKTsKKwkJI30KKworCSAgICB9CisJICAgICRyZXR1cm5QYXJhbU5hbWUgPSAiX2df
Ii4kcGFyYW1OYW1lIGlmICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJldHVybiJ9Owor
CX0KKworCW15ICRhc3NpZ24gPSAiIjsKKwlteSAkYXNzaWduX3ByZSA9ICIiOworCW15ICRhc3Np
Z25fcG9zdCA9ICIiOworCSRnX3JlcyA9IDA7CisJaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAm
JiAhJGlzX2N1c3RvbV9mbikgeworCisJICAgIGlmICgkcmV0X2lzX2Nsc190eXBlKSB7CisJCSRh
c3NpZ24gPSAiUGFzc1JlZlB0cjxXZWJDb3JlOjoke2ZuX3NpZ190eXBlfT4gZ19yZXMgPSAiOwor
CQkkYXNzaWduX3ByZSA9ICJXVEY6OmdldFB0cigiOworCQkkYXNzaWduX3Bvc3QgPSAiKSI7CisJ
ICAgIH0gZWxzZSB7CisJCSRhc3NpZ24gPSAiJHtfcmV0dXJuVHlwZX0gcmVzID0gIjsKKwkgICAg
fQorCX0KKwlteSAkZXhjZXB0aW9ucyA9ICIiOworCWlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhj
ZXB0aW9uc30pIHsKKwkgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSBlYyA9IDA7XG4iKTsKKwkgICAgaWYgKCR7Y2FsbF9pbXBsX3BhcmFtc30gbmUgIiIpIHsKKwkJ
JGV4Y2VwdGlvbnMgPSAiLCBlYyI7CisJICAgIH0gZWxzZSB7CisJCSRleGNlcHRpb25zID0gImVj
IjsKKwkgICAgfQorCX0KKworCSMgbmVlZCB0aGlzIGZvciBpbmNsdWRpbmcgLi4uIF9zb21ldGhp
bmdfIC0gZm9yIHRoZSBjbGFzcyBhcmdzCisJI2lmICgkcmV0X2lzX2Nsc190eXBlKSB7CisJIyAg
ICAkaW1wbEluY2x1ZGVzeyJnZG9tJHtmbl9zaWdfdHlwZX0uaCJ9ID0gMTsKKwkjfQorCWlmICgk
ZnVuY3Rpb25OYW1lIGVxICJnZG9tX25vZGVfYXBwZW5kX2NoaWxkIiB8fAorCSAgICAkZnVuY3Rp
b25OYW1lIGVxICJnZG9tX25vZGVfaW5zZXJ0X2JlZm9yZSIgfHwKKwkgICAgJGZ1bmN0aW9uTmFt
ZSBlcSAiZ2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQiIHx8CisJICAgICRmdW5jdGlvbk5hbWUgZXEg
Imdkb21fbm9kZV9yZW1vdmVfY2hpbGQiKSB7CisJICAgIG15ICRjdXN0b21fZ2RvbV9ub2RlX2Fw
cGVuZF9jaGlsZCA9IDw8ICJFT0YiOworICAgIGJvb2wgb2sgPSBpdGVtLT4ke2ZuX3NpZ19uYW1l
fSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSk7CisgICAgaWYgKG9rKQorICAgIHsK
KyAgICAgICAgJHtfcmV0dXJuVHlwZX0gcmVzID0gc3RhdGljX2Nhc3Q8JHtfcmV0dXJuVHlwZX0+
KFdlYktpdDo6dG9HRE9NKCRyZXR1cm5QYXJhbU5hbWUpKTsKKyAgICAgICAgcmV0dXJuIHJlczsK
KyAgICB9CisgICAgcmV0dXJuIE5VTEw7CitFT0YKKwkgICAgcHVzaChAY0JvZHksICRjdXN0b21f
Z2RvbV9ub2RlX2FwcGVuZF9jaGlsZCk7CisJfSBlbHNpZiAoJGZuX3NpZ190eXBlIGVxICJET01P
YmplY3QiICYmCisJCSAkZnVuY3Rpb25OYW1lIG5lICdnZG9tX2RvY3VtZW50X2dldF9jc3NfY2Fu
dmFzX2NvbnRleHQnKSB7CisJICAgIHB1c2goQGNCb2R5LCAiICAgIC8qIFhYWCBUT0RPIC0gZ2V0
IGNhbnZhcyBvYmplY3QgKGl0ZW0tPiR7Zm5fc2lnX25hbWV9KCR7Y2FsbF9pbXBsX3BhcmFtc30k
e2V4Y2VwdGlvbnN9KSk7Ki9cbiIgKTsKKworCX0gZWxzaWYgKCRmbl9zaWdfdHlwZSBlcSAiRE9N
U3RyaW5nIikgeworCSAgICBwdXNoKEBjQm9keSwgIiAgICAke2Fzc2lnbn1jb252ZXJ0VG9HY2hh
cihpdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9JHtleGNlcHRpb25zfSkp
O1xuIiApOworCX0gZWxzZSB7CisJICAgIGlmICgkZ19yZXMpIHsKKwkJJGdfcmVzID0gIiR7YXNz
aWdufSR7YXNzaWduX3ByZX1pdGVtLT4ke2ZuX3NpZ19uYW1lfSgke2NhbGxfaW1wbF9wYXJhbXN9
JHtleGNlcHRpb25zfSR7YXNzaWduX3Bvc3R9KSIgOworCSAgICB9IGVsc2UgeworCQlwdXNoKEBj
Qm9keSwgIiAgICAke2Fzc2lnbn0ke2Fzc2lnbl9wcmV9aXRlbS0+JHtmbl9zaWdfbmFtZX0oJHtj
YWxsX2ltcGxfcGFyYW1zfSR7ZXhjZXB0aW9uc30ke2Fzc2lnbl9wb3N0fSk7XG4iICk7CisJICAg
IH0KKwl9CisJaWYgKCRyZXR1cm5UeXBlIG5lICJ2b2lkIiAmJiAhJGlzX2N1c3RvbV9mbikgewor
CisJICAgIGlmICgkZm5fc2lnX3R5cGUgbmUgIkRPTU9iamVjdCIpIHsKKwkJaWYgKCRyZXRfaXNf
Y2xzX3R5cGUpIHsKKwkJICAgIHB1c2goQGNCb2R5LCAiICAgICR7X3JldHVyblR5cGV9IHJlcyA9
IHN0YXRpY19jYXN0PCR7X3JldHVyblR5cGV9PihXZWJLaXQ6OnRvR0RPTShnX3Jlcy5nZXQoKSkp
O1xuIik7CisJCX0KKwkgICAgfQorCSAgICBpZiAoJGZuX3NpZ190eXBlIGVxICJET01PYmplY3Qi
KSB7CisJCXB1c2goQGNCb2R5LCAiICAgIHJldHVybiBOVUxMOyAvKiBYWFggVE9ETzogcmV0dXJu
IGNhbnZhcyBvYmplY3QgKi9cbiIpOworCSAgICB9IGVsc2UgeworCQlwdXNoKEBjQm9keSwgIiAg
ICByZXR1cm4gcmVzO1xuIik7CisJICAgIH0KKwl9CisJcHVzaChAY0JvZHksICJcbiIpOworCisJ
cHVzaChAY0JvZHksICJ9XG5cbiIpOworICAgIH0KKworICAgIHB1c2goQGNCb2R5LCAifSAvKiBl
eHRlcm4gXCJDXCIgKi9cblxuIik7CisgICAgcHVzaChAY0JvZHlQcml2LCAiR19FTkRfREVDTFNc
blxuIik7CisKKyAgICBwdXNoKEBoQm9keSwgIkdfRU5EX0RFQ0xTXG5cbiIpOworICAgIHB1c2go
QGhCb2R5LCAiI2VuZGlmIC8qICRndWFyZCAqL1xuIik7CisKKyAgICBwdXNoKEBoQm9keVByb3As
ICJHX0VORF9ERUNMU1xuXG4iKTsKKyAgICBwdXNoKEBoQm9keVByb3AsICIjZW5kaWYgLyogJHtn
dWFyZH1fUFJPUF8qL1xuIik7Cit9CisKKyMgSW50ZXJuYWwgaGVscGVyCitzdWIgV3JpdGVEYXRh
IHsKKyAgICBteSAoJG9iamVjdCwgJG5hbWUpID0gQF87CisKKyAgICAjIFdyaXRlIFByaXZhdGUg
aGVhZGVyCisgICAgbXkgJGhkckZOYW1lUHJpdiA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICJQ
cml2YXRlLmgiOworICAgIG9wZW4oUFJJVkhFQURFUiwgIj4kaGRyRk5hbWVQcml2Iikgb3IgZGll
ICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1lUHJpdiI7CisgICAgcHJpbnQgUFJJVkhFQURF
UiBAaFByZWZpeDsKKyAgICBwcmludCBQUklWSEVBREVSICJcbiI7CisgICAgcHJpbnQgUFJJVkhF
QURFUiBAaEJvZHlQcml2OworICAgIGNsb3NlKFBSSVZIRUFERVIpOworCisgICAgIyBXcml0ZSBw
cm9wZXJ0aWVzIGhlYWRlciAoYXZvaWRzIHJlY3Vyc2l2ZSBuaWdodG1hcmUpCisgICAgbXkgJGhk
clByb3BGTmFtZSA9ICIkb3V0cHV0RGlyLyIgLiAkbmFtZSAuICJwcm9wcy5oIjsKKyAgICBvcGVu
KFBST1BIRUFERVIsICI+JGhkclByb3BGTmFtZSIpIG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxl
ICRoZHJQcm9wRk5hbWUiOworCisgICAgJGhkclByb3BJbmNsdWRlc3siZ2xpYi1vYmplY3QuaCJ9
ID0gMTsKKworICAgIHByaW50IFBST1BIRUFERVIgQGhQcmVmaXg7CisgICAgcHJpbnQgUFJPUEhF
QURFUiAiLyogcmVjdXJzaXZlIGluY2x1ZGVzIC8gZGVmaW5lcyBpc3N1ZSBmb3JjZXMgc2VwYXJh
dGUgaGVhZGVyIGZvciBwcm9wZXJ0aWVzLlxucGVyaGFwcyAtIGJldHRlciAtIGFsbCBnZG9tIGd0
ayBmdW5jdGlvbnMgc2hvdWxkIGJlIGluIGhlcmUhKi9cbiI7CisgICAgcHJpbnQgUFJPUEhFQURF
UiBAaEJvZHlQcm9wUHJlOworICAgIHByaW50IFBST1BIRUFERVIgIiNpbmNsdWRlIDx3ZWJraXQv
d2Via2l0ZGVmaW5lcy5oPlxuIjsKKyAgICBwcmludCBQUk9QSEVBREVSIG1hcCB7ICIjaW5jbHVk
ZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJpbnQgUFJP
UEhFQURFUiAiXG4iIGlmIGtleXMoJWhkclByb3BJbmNsdWRlcyk7CisgICAgcHJpbnQgUFJPUEhF
QURFUiAiXG4iOworICAgIHByaW50IFBST1BIRUFERVIgQGhCb2R5UHJvcDsKKworICAgIGNsb3Nl
KEhFQURFUik7CisKKyAgICAjIFdyaXRlIHB1YmxpYyBoZWFkZXIuCisgICAgbXkgJGhkckZOYW1l
ID0gIiRvdXRwdXREaXIvIiAuICRuYW1lIC4gIi5oIjsKKyAgICBvcGVuKEhFQURFUiwgIj4kaGRy
Rk5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaGRyRk5hbWUiOworCisgICAgJGhk
ckluY2x1ZGVzeyJnbGliLW9iamVjdC5oIn0gPSAxOworCisgICAgcHJpbnQgSEVBREVSIEBoUHJl
Zml4OworICAgIHByaW50IEhFQURFUiBAaFByZWZpeEd1YXJkOworICAgIHByaW50IEhFQURFUiAi
I2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+XG4iOworICAgIHByaW50IEhFQURFUiBt
YXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVoZHJJbmNsdWRlcyk7CisgICAg
cHJpbnQgSEVBREVSICJcbiIgaWYga2V5cyglaGRySW5jbHVkZXMpOworICAgIHByaW50IEhFQURF
UiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaEJvZHlQcmU7CisgICAgcHJpbnQgSEVBREVSIG1h
cCB7ICJ0eXBlZGVmIHN0cnVjdCBfJF8gJF87XG4iIH0gc29ydCBrZXlzKCVpbXBsVHlwZWRlZnMp
OworICAgIHByaW50IEhFQURFUiAiXG4iIGlmIGtleXMoJWltcGxUeXBlZGVmcyk7CisgICAgcHJp
bnQgSEVBREVSIEBoQm9keTsKKworICAgIGNsb3NlKEhFQURFUik7CisKKyAgICAjIFdyaXRlIHRo
ZSBpbXBsZW1lbnRhdGlvbiBzb3VyY2VzCisgICAgbXkgJGltcGxGaWxlTmFtZSA9ICIkb3V0cHV0
RGlyLyIgLiAkbmFtZSAuICIuY3BwIjsKKyAgICBvcGVuKElNUEwsICI+JGltcGxGaWxlTmFtZSIp
IG9yIGRpZSAiQ291bGRuJ3Qgb3BlbiBmaWxlICRpbXBsRmlsZU5hbWUiOworCisgICAgcHJpbnQg
SU1QTCBAY1ByZWZpeDsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSBcImNvbmZpZy5oXCJcblxu
IjsKKyAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8d3RmL0dldFB0ci5oPlxuIjsKKyAgICBwcmlu
dCBJTVBMIG1hcCB7ICIjaW5jbHVkZSBcIiRfXCJcbiIgfSBzb3J0IGtleXMoJWltcGxJbmNsdWRl
cyk7CisgICAgcHJpbnQgSU1QTCAiXG4iIGlmIGtleXMoJWltcGxJbmNsdWRlcyk7CisgICAgcHJp
bnQgSU1QTCAibmFtZXNwYWNlIFdlYktpdCB7XG4iOworICAgIHByaW50IElNUEwgbWFwIHsgIiRf
XG4iIH0gc29ydCBrZXlzKCVjQm9keUdET00pOworICAgIHByaW50IElNUEwgIn07IC8vIG5hbWVz
cGFjZSBXZWJLaXRcbiI7CisgICAgcHJpbnQgSU1QTCBAY0JvZHk7CisKKyAgICBwcmludCBJTVBM
ICJcbiI7CisgICAgcHJpbnQgSU1QTCBAY0JvZHlQcml2OworCisgICAgY2xvc2UoSU1QTCk7CisK
KyAgICAlaW1wbEluY2x1ZGVzID0gKCk7CisgICAgJWltcGxUeXBlZGVmcyA9ICgpOworICAgICVo
ZHJJbmNsdWRlcyA9ICgpOworICAgIEBoUHJlZml4ID0gKCk7CisgICAgQGhCb2R5ID0gKCk7Cisg
ICAgQGhCb2R5UHJpdiA9ICgpOworICAgIEBoQm9keVByb3AgPSAoKTsKKyAgICBAaEJvZHlQcm9w
UHJlID0gKCk7CisKKyAgICBAY1ByZWZpeCA9ICgpOworICAgIEBjQm9keUdET00gPSAoKTsKKyAg
ICBAY0JvZHkgPSAoKTsKKyAgICBAY0JvZHlQcml2ID0gKCk7Cit9CisKKzE7CkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0
LnBtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisjIENvcHlyaWdodCAoQykgMjAwOCwg
MjAwOSBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorIyBDb3B5
cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorIyBDb3B5
cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyMKKyMgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyMgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisjIEJvc3RvbiwgTUEgMDIx
MTEtMTMwNywgVVNBLgorCitwYWNrYWdlIENvZGVHZW5lcmF0b3JHT2JqZWN0OworCisjIHRoaXMg
ZmlsZSBpcyBpbmNsdWRlZCBpbiBhIHNlcGFyYXRlIHBhdGNoOiBjdXJyZW50bHkgIzI3NDMxCisj
IGl0IGlzIG5vdCBpbmNsdWRlZCBpbiAjMjc0MTAgYmVjYXVzZSB0aGF0IHdvdWxkIHJlcXVpcmUg
cmV2aWV3CisjIG9mIDEsNTAwIGxpbmVzIG9mIGNvZGUuCityZXF1aXJlICJDb2RlR2VuZXJhdG9y
R09iamVjdExpYnJhcnkxLnBtIjsKKworIyBQYXJhbXM6ICdkb21DbGFzcycgc3RydWN0CitzdWIg
R2VuZXJhdGVJbnRlcmZhY2UgeworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkZGF0
YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkZGVmaW5lcyA9IHNoaWZ0OworCisgICAgbXkgJG5hbWUg
PSAkZGF0YU5vZGUtPm5hbWU7CisKKyAgICAkb2JqZWN0LT5HZW5lcmF0ZSgkZGF0YU5vZGUpOwor
CisgICAgIyBDb21taXQgY2hhbmdlcyEKKyAgICBteSAkZm5hbWUgPSAiR2RvbV8iIC4gJG5hbWU7
IAorICAgICRmbmFtZSA9fiBzL18vL2c7CisgICAgJG9iamVjdC0+V3JpdGVEYXRhKCRmbmFtZSk7
Cit9CisKKyMgUGFyYW1zOiAnaWRsRG9jdW1lbnQnIHN0cnVjdAorc3ViIEdlbmVyYXRlTW9kdWxl
IHsKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisK
KyAgICAkbW9kdWxlID0gJGRhdGFOb2RlLT5tb2R1bGU7Cit9CisKKworMTsKSW5kZXg6IFdlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmlkbAkocmV2aXNpb24gNDYzOTUpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw5IEBACiAg
ICAgXSBIVE1MT3B0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOwogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZDsKLSNpZiBkZWZp
bmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKKyNpZiAoZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBcCisg
ICAgKGRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgJiYgTEFOR1VBR0VfR09CSkVDVCkKKwogICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nICAgICAgICAgICAgdGV4dAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogI2Vsc2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAko
cmV2aXNpb24gNDYzOTUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw4IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgc2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHRleHQ7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pB
VkFTQ1JJUFQKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9K
QVZBU0NSSVBUKSB8fCBcCisgICAgIChkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1QpICYmIExBTkdV
QUdFX0dPQkpFQ1QpCiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAj
ZW5kaWYKIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaWRsCShyZXZpc2lvbiA0NjM5
NSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDE0ICszNSwxNCBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgY29kZTsKICAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdD1jb2RlYmFzZV0g
RE9NU3RyaW5nIGNvZGVCYXNlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nLCBSZWZsZWN0XSBET01TdHJpbmcgaGVpZ2h0OwotI2lmIGRlZmluZWQo
TEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAorI2lmICFkZWZpbmVk
KExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9N
U3RyaW5nIGhzcGFjZTsKICNlbHNlCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dEZyb21TdHJpbmddIGxvbmcgaHNwYWNlOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmcsIFJlZmxlY3RdIERPTVN0cmluZyBuYW1lOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLCBSZWZs
ZWN0XSBET01TdHJpbmcgb2JqZWN0OwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkg
JiYgTEFOR1VBR0VfSkFWQVNDUklQVAorI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9D
KSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZywgUmVmbGVjdF0gRE9NU3RyaW5nIHZzcGFjZTsKICNlbHNl
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgdnNw
YWNlOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmlkbAkocmV2aXNpb24gNDYzOTUpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDcgKzMwLDcgQEAKICAgICAgICAgSW1wbGVtZW50YXRpb25VVUlEPTkzZTA0MDdhLTgzODAtNGZm
MC05NzhkLWY3NzNmMmRlZTZhMwogICAgIF0gSFRNTEVtYmVkRWxlbWVudCA6IEhUTUxFbGVtZW50
IHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGFsaWduOwotI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgJiYgTEFO
R1VBR0VfSkFWQVNDUklQVAorI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAh
TEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGhlaWdodDsKICNlbHNlCiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBbQ29udmVydEZyb21TdHJpbmddIGxvbmcgaGVpZ2h0OwpAQCAtMzgsNyAr
MzgsNyBAQAogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7Ci0jaWYgZGVmaW5l
ZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCisjaWYgIWRlZmlu
ZWQoTEFOR1VBR0VfT0JKRUNUSVZFX0MpIHx8ICFMQU5HVUFHRV9PQkpFQ1RJVkVfQwogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
d2lkdGg7CiAjZWxzZQogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnRGcm9tU3Ry
aW5nXSBsb25nIHdpZHRoOwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAkocmV2aXNpb24gNDYz
OTUpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDkgKzY1LDEzIEBACiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAg
ICAgICAvLyB2b2lkIHNlbmQoKTsKLSAgICAgICAgLy8gdm9pZCBzZW5kKGluIERPTVN0cmluZyBk
YXRhKTsKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNU
KQorICAgICAgICB2b2lkIHNlbmQoaW4gRE9NU3RyaW5nIGRhdGEpCisgICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyNlbHNlCiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2VuZChpbiBE
b2N1bWVudCBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYK
IAogICAgICAgICB2b2lkIGFib3J0KCk7CiAKSW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0
aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHJl
dmlzaW9uIDQ2Mzk1KQorKysgV2ViQ29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw3ICszNyw4IEBACiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgICAgICAgIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
ICAgICAgIG1lc3NhZ2U7CiAKLSNpZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExB
TkdVQUdFX0pBVkFTQ1JJUFQKKyNpZiAoZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBM
QU5HVUFHRV9KQVZBU0NSSVBUKSB8fCBcCisgICAgIChkZWZpbmVkKExBTkdVQUdFX0dPQkpFQ1Qp
ICYmIExBTkdVQUdFX0dPQkpFQ1QpCiAgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBj
b21wYXRpYmxlIGZvcm1hdAogICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygp
OwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCShy
ZXZpc2lvbiA0NjM5NSkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsOCBAQAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nICAgICAgICBtZXNzYWdlOwogCi0jaWYgZGVmaW5lZChMQU5HVUFHRV9KQVZBU0NS
SVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCisjaWYgKGRlZmluZWQoTEFOR1VBR0VfSkFWQVND
UklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgXAorICAgICAoZGVmaW5lZChMQU5HVUFH
RV9HT0JKRUNUKSAmJiBMQU5HVUFHRV9HT0JKRUNUKQogICAgICAgICAvLyBPdmVycmlkZSBpbiBh
IE1vemlsbGEgY29tcGF0aWJsZSBmb3JtYXQKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcg
dG9TdHJpbmcoKTsKICNlbmRpZgpJbmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENoYW5n
ZUxvZwkocmV2aXNpb24gNDYzOTUpCisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEw
MTYsNiArMTAxNiwxNiBAQAogCiAgICAgICAgICogV2ViS2l0LnBybzoKIAorMjAwOC0xMS0zMCAg
bGtjbCAgPGxrY2xAbGtjbC5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogYWRkIEdkb20qLmggZ2xpYiBET00gYmlu
ZGluZ3MgaGVhZGVyIGZpbGVzLAorICAgICAgICAKKyAgICAgICAgQWxzbyBhZGRlZCBnZG9tZW51
bXR5cGVzLmNwcCxoIHdoaWNoIHByZXNlbnRseSBkbyBub3QKKyAgICAgICAgYWN0dWFsbHkgY29u
dGFpbiBhbnl0aGluZywgYmVjYXVzZSB0aGVyZSBhcmUgbm8gZW51bXMKKyAgICAgICAgaW4gdGhl
IGdsaWIgYmluZGluZ3MgLSB5ZXQuCisKIDIwMDgtMTEtMjggIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYW5kIHNsaWdodGx5IG1vZGlm
aWVkIGJ5IEhvbGdlciBGcmV5dGhlci4KSW5kZXg6IFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA0NjM5
NSkKKysrIFdlYktpdFRvb2xzL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC02LDYg
KzYsOCBAQAogUHJvZ3JhbXNfR3RrTGF1bmNoZXJfQ1BQRkxBR1MgPSBcCiAJLUkkKHNyY2Rpcikv
V2ViS2l0L2d0ayBcCiAJLUkkKHRvcF9idWlsZGRpcikvV2ViS2l0L2d0ayBcCisJLUkkKHNyY2Rp
cikvV2ViS2l0L2d0ay93ZWJraXQgXAorCS1JJCh0b3BfYnVpbGRkaXIpL1dlYktpdC9ndGsvd2Vi
a2l0IFwKIAkkKGdsb2JhbF9jcHBmbGFncykgXAogCSQoamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3Mp
CiAKQEAgLTM1LDYgKzM3LDggQEAKIAktSSQoc3JjZGlyKS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsgXAogCS1JJChzcmNkaXIpL1dlYktpdC9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIp
L1dlYktpdC9ndGsgXAorCS1JJChzcmNkaXIpL1dlYktpdC9ndGsvd2Via2l0IFwKKwktSSQodG9w
X2J1aWxkZGlyKS9XZWJLaXQvZ3RrL3dlYmtpdCBcCiAJJChnbG9iYWxfY3BwZmxhZ3MpIFwKIAkk
KGphdmFzY3JpcHRjb3JlX2NwcGZsYWdzKQogCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NjM5NSkKKysr
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMjYwNyw0ICsyNjA3LDE2
IEBACiAKICAgICAgICAgKiBTY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nOgogCisyMDA4LTExLTMw
ICBsa2NsICA8bGtjbEBsa2NsLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGRlZCAtSSBpbmNsdWRlcyB0byBn
dGsgd2Via2l0IHN1YmRpcmVjdG9yaWVzCisKKyAgICAgICAgR2RvbSBnbGliIERPTSBiaW5kaW5n
cyBoYXZlIHRoZWlyIGhlYWRlciBmaWxlcyBjb250YWluaW5nCisgICAgICAgICNpbmNsdWRlICJn
ZG9tKiIgd2hlcmUgI2luY2x1ZGUgPHdlYmtpdC9nZG9tKj4gaXMgbm90CisgICAgICAgIHBvc3Np
YmxlLCBhcyB0aGUgZ2RvbSogc291cmNlIGFuZCBoZWFkZXIgZmlsZXMgYXJlIGF1dG8tZ2VuZXJh
dGVkCisgICAgICAgIGludG8gRGVyaXZlZFNvdXJjZXMvIG5vdCBEZXJpdmVkU291cmNlcy93ZWJr
aXQsIGZvbGxvd2luZyB0aGUKKyAgICAgICAgZXhhbXBsZSBvZiB0aGUgSlMgRGVyaXZlZCBTb3Vy
Y2VzLgorCiA9PSBSb2xsZWQgb3ZlciB0byBDaGFuZ2VMb2ctMjAwOS0wNi0xNiA9PQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>